အဲလ်လား၏ အယ်လ်ဂိုရီသံ မြေဇ် ထုတ်လုပ်သူ
ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၆ UTC ၂၀:၃၉:၄၆
နောက်ဆုံး မွမ်းမံပြင်ဆင်သည်- ၂၀၂၆၊ ဇန်နဝါရီ ၁၂ UTC ၀၉:၀၄:၃၃
Eller's Algorithm Maze Generator
Eller ရဲ့ algorithm သည် row-by-row ချဉ်းကပ်မှုကို အသုံးပြု၍ ပြီးပြည့်စုံသော maze များ (ကွင်းများမရှိဘဲ အမှတ်နှစ်ခုကြားတွင် လမ်းကြောင်းတစ်ခုတည်းရှိသော maze များ) ကို ထိရောက်စွာထုတ်လုပ်ပေးသည့် maze generation algorithm တစ်ခုဖြစ်သည်။ ၎င်းသည် Kruskal ရဲ့ algorithm နှင့်ဆင်တူသော maze များကို ထုတ်လုပ်ပေးသော်လည်း maze တစ်ခုလုံးကို မှတ်ဉာဏ်တွင် သိမ်းဆည်းရန်မလိုအပ်ဘဲ တစ်ကြိမ်လျှင် တစ်တန်းတည်းကိုသာ ထုတ်လုပ်ခြင်းဖြင့် ပြုလုပ်ပေးသည်။ ၎င်းသည် အလွန်ကန့်သတ်ထားသော စနစ်များတွင် အလွန်ကြီးမားသော maze များကို ထုတ်လုပ်ရန်နှင့် လုပ်ထုံးလုပ်နည်းဆိုင်ရာ အကြောင်းအရာများ ထုတ်လုပ်ရန်အတွက် အသုံးဝင်စေသည်။
ပြီးပြည့်စုံသော ဝင်္ကပါသည် ဝင်္ကပါရှိ မည်သည့်မှတ်တိုင်မှ အခြားနေရာသို့ လမ်းကြောင်းတစ်ခု အတိအကျ ရှိသည့် ဝင်္ကပါတစ်ခုဖြစ်သည်။ ဆိုလိုတာက သင် လှည့်ပတ်ပြီး နောက်ကြောင်းပြန်ဖို့ တွန်းအားပေးတဲ့ အသေအဆုံးတွေကို မကြာခဏ ကြုံတွေ့ရပါလိမ့်မယ်။
ဤနေရာတွင် ထုတ်လုပ်လိုက်သော ဝင်္ကပါမြေပုံများတွင် မည်သည့်အစမှအဆုံး အနေအထားများ မပါရှိဘဲ မူရင်းဗားရှင်းပါ၀င်သည်၊ ထို့ကြောင့် ၎င်းတို့ကို သင်ကိုယ်တိုင် ဆုံးဖြတ်နိုင်သည်- ဝင်္ကပါရှိ မည်သည့်အမှတ်မှ အခြားအမှတ်အထိ အဖြေတစ်ခု ရှိလိမ့်မည်။ သင်သည် လှုံ့ဆော်မှုကို လိုချင်ပါက၊ အကြံပြုထားသော အစနှင့် အပြီးသတ် အနေအထားကို ဖွင့်နိုင်သည် - နှစ်ခုကြားမှ ဖြေရှင်းချက်ကိုပင် ကြည့်နိုင်သည်။
Eller ရဲ့ Algorithm အကြောင်း
Eller ရဲ့ Algorithm ကို David Eller က မိတ်ဆက်ခဲ့ပါတယ်။
ဒီ algorithm ဟာ maze ဖန်တီးရာမှာ ထိရောက်တဲ့ row-by-row ချဉ်းကပ်မှုကြောင့် ထင်ရှားပြီး အဆုံးမရှိတဲ့ maze တွေ ဒါမှမဟုတ် real-time မှာ ထုတ်လုပ်ထားတဲ့ maze တွေအတွက် အသင့်တော်ဆုံးပါပဲ။ လုပ်ထုံးလုပ်နည်းဆိုင်ရာ အကြောင်းအရာ ဖန်တီးမှုနဲ့ maze-generation စာပေတွေမှာ မကြာခဏ ကိုးကားလေ့ရှိပေမယ့် မူရင်းထုတ်ဝေမှုကို အသေးစိတ်ဖော်ပြထားတဲ့ မူလရင်းမြစ်တွေကိုတော့ ရှာမတွေ့ခဲ့ပါဘူး။
Maze Generation အတွက် Eller ရဲ့ Algorithm ဘယ်လိုအလုပ်လုပ်လဲ
Eller ရဲ့ algorithm ဟာ ချိတ်ဆက်ထားတဲ့ cell အစုံတွေကို ထိန်းသိမ်းပြုပြင်ပြီး တစ်တန်းချင်းစီကို လုပ်ဆောင်ပါတယ်။ loop တွေကို ရှောင်ရှားရင်း ချိတ်ဆက်မှုကို သေချာစေပြီး၊ maze ကို အောက်ဘက်ကို ထိရောက်စွာ တိုးချဲ့ပေးပါတယ်။
၎င်းကို သီအိုရီအရ အဆုံးမဲ့ ပဟေဠိများ ဖန်တီးရန် အသုံးပြုနိုင်သော်လည်း၊ ထုတ်လုပ်ထားသော ပဟေဠိသည် အမှန်တကယ် ဖြေရှင်းနိုင်ကြောင်း သေချာစေရန်အတွက် ပဟေဠိကို အပြီးသတ်ရန် တစ်ချိန်ချိန်တွင် "နောက်ဆုံးတန်း" ယုတ္တိဗေဒသို့ ပြောင်းရန် လိုအပ်ပါသည်။
အဆင့် ၁: ပထမဆုံးအတန်းကို initialize လုပ်ပါ
- အတန်းထဲက ဆဲလ်တစ်ခုချင်းစီကို ထူးခြားတဲ့ set ID တစ်ခု သတ်မှတ်ပေးပါ။
အဆင့် ၂: အနီးနားရှိဆဲလ်အချို့ကို အလျားလိုက်ဆက်ပါ
- တူညီသော ID သို့ သတ်မှတ်ခြင်းဖြင့် အနီးနားရှိဆဲလ်များကို ကျပန်းပေါင်းစပ်ပါ။ ၎င်းက အလျားလိုက်အပိုင်းများရှိကြောင်း သေချာစေသည်။
အဆင့် ၃: နောက် Row သို့ Vertical Connections များ ဖန်တီးပါ
- အတန်းထဲတွင် ပေါ်လာသော အစုံတစ်ခုစီအတွက် အနည်းဆုံး ဆဲလ်တစ်ခုသည် အောက်ဘက်သို့ ချိတ်ဆက်ထားရမည် (ချိတ်ဆက်မှုကို သေချာစေရန်)။
- နောက်အတန်းသို့ ချိတ်ဆက်ရန် အစုံတစ်ခုစီမှ ဆဲလ်တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဆဲလ်များကို ကျပန်းရွေးချယ်ပါ။
အဆင့် ၄: နောက်အတန်းသို့ ရွှေ့ပါ
- အောက်ဖော်ပြပါ သက်ဆိုင်ရာဆဲလ်များသို့ တူညီသော ID ကို သတ်မှတ်ပေးခြင်းဖြင့် ဒေါင်လိုက်ချိတ်ဆက်မှုများကို ဆက်လက်သယ်ဆောင်သွားပါ။
- သတ်မှတ်မထားသော မည်သည့်ဆဲလ်များသို့မဆို set ID အသစ်များ သတ်မှတ်ပါ။
အဆင့် ၅: နောက်ဆုံးတန်းရောက်သည်အထိ အဆင့် ၂ မှ ၄ ကို ပြန်လုပ်ပါ
- အတန်းလိုက် ဆက်လက်လုပ်ဆောင်ပါ။
အဆင့် ၆: နောက်ဆုံးတန်းကို လုပ်ဆောင်ပါ
- ကျန်ရှိနေသော သီးခြားအစုံများကို ပေါင်းစည်းခြင်းဖြင့် နောက်ဆုံးတန်းရှိ ဆဲလ်အားလုံးသည် တူညီသောအစုံနှင့် သက်ဆိုင်ကြောင်း သေချာပါစေ။
နောက်ထပ်စာဖတ်ခြင်း။
ဤပို့စ်ကို သင်နှစ်သက်ပါက၊ ဤအကြံပြုချက်များကို သင်လည်း နှစ်သက်နိုင်ပါသည်-
- Kruskal ၏ Algorithm Maze မီးစက်
- Recursive Backtracker Maze မီးစက်
- ကြီးထွားနေသော သစ်ပင် မြေဇ် ထုတ်လုပ်သူ
