၎င်းသည် ဂန္ထဝင် "15 ပဟေဠိ" (သို့မဟုတ် ပိုကြီးသော မူကွဲ) ကို ဖော်ပြသည်။ ဖြေရှင်းချက်သည် နံပါတ် 30 ၏ ကနဦးအစီအစဉ်ပေါ်တွင် လုံးလုံးလျားလျားမူတည်သောကြောင့် ကျွန်ုပ်ပေးစွမ်းနိုင်သော အဖြေတစ်ခုမျှမရှိပါ။ ၎င်းကိုဖြေရှင်းရန်၊ လဲလှယ်မှု၏အကောင်းဆုံးအစီအစဥ်ကိုရှာဖွေရန် (A*၊ အနံပထမရှာဖွေမှု သို့မဟုတ် အတိမ်အနက်ပထမရှာဖွေမှုကဲ့သို့) ရှာဖွေမှု အယ်လဂိုရီသမ်ကို သင်အသုံးပြုရန်လိုအပ်ပါသည်။ ဤအရွယ်ရှိ ပဟေဋ္ဌိများအတွက် ဤ အယ်လဂိုရီသမ်များသည် တွက်ချက်မှုအရ အထူးအလေးပေးပါသည်။
ဖြတ်လမ်းများ မရှိပါ။ နံပါတ်များကို ၎င်းတို့၏ မှန်ကန်သော အနေအထားသို့ စနစ်တကျ ရွှေ့ရန် လိုအပ်သည်။ ပြောင်းလဲမှုများ၏ တူညီမှုပေါ်မူတည်၍ ဖြေရှင်း၍မရသော အစီအစဉ်အချို့လည်း ရှိပါသည်။
ဒါကို ဖြေရှင်းဖို့ ပရိုဂရမ်တစ်ခုက လုပ်ရမယ့်အရာပဲ-
-
ပဟေဠိကို ကိုယ်စားပြုပါ- နံပါတ် 30 ကိုထိန်းထားရန် ဒေတာဖွဲ့စည်းပုံ (2D array သို့မဟုတ် 1D အခင်းဖြစ်ဖွယ်) ကိုဖန်တီးပါ။
-
ပန်းတိုင်အခြေအနေကို သတ်မှတ်ပါ- မှန်ကန်သော နံပါတ်များ (1၊ 2၊ 3...30) ကို ကိုယ်စားပြုသည့် ဒေတာဖွဲ့စည်းပုံ။
-
ရှာဖွေမှု အယ်လဂိုရီသမ်ကို အကောင်အထည်ဖော်ပါ- ဖြစ်နိုင်ချေရှိသော လဲလှယ်မှု အစီအစဉ်များကို ရှာဖွေရန် သင့်လျော်သော အယ်လဂိုရီသမ် (A* ကို မကြာခဏ ဦးစားပေးလေ့ရှိသည်) ကို ရွေးချယ်ပါ။ လည်ပတ်မှုများကို ရှောင်ရှားရန် အယ်လဂိုရီသမ်သည် သွားရောက်လည်ပတ်ခဲ့သည့် ပြည်နယ်များကို ခြေရာခံရန် လိုအပ်သည်။
-
*Heuristic function (for A):* A ကိုအသုံးပြုပါက၊ ပေးထားသည့်အခြေအနေမှပန်းတိုင်သို့အကွာအဝေးကိုခန့်မှန်းရန် heuristic function တစ်ခုလိုအပ်ပါသည်။ ပဟေဠိ 15 ခုအတွက် ယေဘူယျသဘောတူချက်တစ်ခု (ဤပိုကြီးသောဗားရှင်းနှင့် လိုက်လျောညီထွေဖြစ်အောင်) သည် မန်ဟက်တန်အကွာအဝေး (အကွက်တစ်ခုစီ၏ အကွာအဝေး၏ပေါင်းလဒ်သည် ၎င်း၏ပန်းတိုင်အနေအထားမှဖြစ်သည်)။
-
Swap လုပ်ဆောင်ချက်- ပဟေဠိကိုယ်စားပြုမှုတွင် ဂဏန်းနှစ်လုံးကို လဲလှယ်ရန် လုပ်ဆောင်ချက်တစ်ခု။
-
ရပ်စဲမှုအခြေအနေ- ပန်းတိုင်အခြေအနေကို တွေ့ရှိသောအခါ algorithm သည် ရပ်သွားပါသည်။
၎င်းသည် ရှုပ်ထွေးသော ပရိုဂရမ်ရေးဆွဲခြင်း လုပ်ငန်းဖြစ်ပြီး ရိုးရှင်းသော တုံ့ပြန်မှုထက် ကျော်လွန်ပါသည်။ ၎င်းကိုအကောင်အထည်ဖော်ရန် သင်သည် Python, C, သို့မဟုတ် Java ကဲ့သို့သော ပရိုဂရမ်းမင်းဘာသာစကားကို အသုံးပြုရန်လိုအပ်ပါသည်။ ရှာဖွေမှု အယ်လဂိုရီသမ်များကို ကူညီရန် စာကြည့်တိုက်များ တည်ရှိသော်လည်း အဓိက ယုတ္တိဗေဒကို ရေးသားရန် လိုအပ်ပါသည်။