Skip to content

Latest commit

 

History

History
80 lines (49 loc) · 10 KB

File metadata and controls

80 lines (49 loc) · 10 KB

ဂျင်နက်တစ် အယ်လဂိုရီသမ်များ

ဂျင်နက်တစ် အယ်လဂိုရီသမ်များ (GA) သည် AI ကို အဆင့်ဆင့်တိုးတက်မှုနည်းလမ်း အပေါ် အခြေခံထားပြီး၊ လူဦးရေတစ်စု၏ တိုးတက်မှုနည်းလမ်းများကို အသုံးပြု၍ ပေးထားသော ပြဿနာအတွက် အကောင်းဆုံးဖြေရှင်းနည်းကို ရယူရန် အသုံးပြုသည်။ ၎င်းကို 1975 ခုနှစ်တွင် John Henry Holland က အဆိုပြုခဲ့သည်။

ဂျင်နက်တစ် အယ်လဂိုရီသမ်များသည် အောက်ပါ အယူအဆများအပေါ် အခြေခံထားသည်-

  • ပြဿနာအတွက် သက်ဆိုင်သော ဖြေရှင်းနည်းများကို ဂျင်းများ အဖြစ် ကိုယ်စားပြုနိုင်သည်။
  • Crossover သည် ဖြေရှင်းနည်းနှစ်ခုကို ပေါင်းစပ်ပြီး သက်ဆိုင်သော ဖြေရှင်းနည်းအသစ်ကို ရယူနိုင်စေသည်။
  • Selection သည် fitness function တစ်ခုကို အသုံးပြု၍ ပိုမိုကောင်းမွန်သော ဖြေရှင်းနည်းများကို ရွေးချယ်ရန် အသုံးပြုသည်။
  • Mutations သည် အကောင်းဆုံးဖြေရှင်းနည်းကို ရှာဖွေရာတွင် တည်ငြိမ်မှုကို ဖျက်ဆီးပြီး local minimum မှ ထွက်နိုင်စေရန် အသုံးပြုသည်။

ဂျင်နက်တစ် အယ်လဂိုရီသမ်ကို အကောင်အထည်ဖော်လိုပါက အောက်ပါအချက်များလိုအပ်သည်-

  • ဂျင်းများ g∈Γ ကို အသုံးပြု၍ ပြဿနာဖြေရှင်းနည်းများကို ကုဒ်ဖြင့် ကိုယ်စားပြုရန် နည်းလမ်းတစ်ခု ရှာဖွေရန်
  • ဂျင်းများ Γ အပေါ် fitness function fit: Γ→R ကို သတ်မှတ်ရန်။ function တန်ဖိုးများ ပိုငယ်လျှင် ပိုကောင်းသော ဖြေရှင်းနည်းများကို ကိုယ်စားပြုသည်။
  • Crossover နည်းလမ်းကို သတ်မှတ်၍ ဂျင်းနှစ်ခုကို ပေါင်းစပ်ပြီး သက်ဆိုင်သော ဖြေရှင်းနည်းအသစ်ကို ရယူရန် crossover: Γ2→Γ။
  • Mutation နည်းလမ်းကို သတ်မှတ်ရန် mutate: Γ→Γ။

အများအားဖြင့် crossover နှင့် mutation သည် ဂျင်းများကို ကိန်းဂဏန်းအစီအစဉ်များ သို့မဟုတ် bit vectors အဖြစ် ပြောင်းလဲရန် ရိုးရှင်းသော အယ်လဂိုရီသမ်များဖြစ်သည်။

ဂျင်နက်တစ် အယ်လဂိုရီသမ်၏ အကောင်အထည်ဖော်မှုသည် အခြေအနေအလိုက် ကွဲပြားနိုင်သော်လည်း၊ အခြေခံဖွဲ့စည်းမှုမှာ အောက်ပါအတိုင်းဖြစ်သည်-

  1. မူလ လူဦးရေ G⊂Γ ကို ရွေးချယ်ပါ။
  2. ဒီအဆင့်တွင် ဆောင်ရွက်မည့် လုပ်ဆောင်မှုကို ရွေးချယ်ပါ- crossover သို့မဟုတ် mutation
  3. Crossover:
  • ဂျင်းနှစ်ခု g1, g2 ∈ G ကို ရွေးချယ်ပါ။
  • crossover g=crossover(g1,g2) ကို တွက်ချက်ပါ။
  • fit(g)<fit(g1) သို့မဟုတ် fit(g)<fit(g2) ဖြစ်ပါက- လူဦးရေတွင် သက်ဆိုင်သော ဂျင်းကို g ဖြင့် အစားထိုးပါ။
  1. Mutation - random ဂျင်း g∈G ကို ရွေးချယ်ပြီး mutate(g) ဖြင့် အစားထိုးပါ။
  2. fit တန်ဖိုးအလွန်ငယ်သို့ရောက်သည်အထိ သို့မဟုတ် အဆင့်အရေအတွက်ကန့်သတ်ချက်ကို ရောက်သည်အထိ အဆင့် 2 မှ ပြန်လုပ်ဆောင်ပါ။

အခြေခံလုပ်ငန်းများ

ဂျင်နက်တစ် အယ်လဂိုရီသမ်များဖြင့် အခြေခံအားဖြင့် ဖြေရှင်းနိုင်သော လုပ်ငန်းများမှာ-

  1. အချိန်ဇယား အကောင်းဆုံးဖြစ်စေရန်
  2. အကောင်းဆုံး ထုပ်ပိုးမှု
  3. အကောင်းဆုံး ဖြတ်တောက်မှု
  4. အလုံးစုံရှာဖွေမှုကို မြန်ဆန်စေရန်

✍️ လေ့ကျင့်မှုများ: ဂျင်နက်တစ် အယ်လဂိုရီသမ်များ

အောက်ပါ notebook များတွင် သင့်လေ့လာမှုကို ဆက်လက်လုပ်ဆောင်ပါ-

ဒီ notebook သို့ သွားပြီး ဂျင်နက်တစ် အယ်လဂိုရီသမ်များကို အသုံးပြုသော နမူနာနှစ်ခုကို ကြည့်ပါ-

  1. အမွေအနေနှင့် တရားမျှတမှု
  2. 8 Queens Problem

နိဂုံး

ဂျင်နက်တစ် အယ်လဂိုရီသမ်များကို လိုဂျစ်စတစ်နှင့် ရှာဖွေမှုဆိုင်ရာ ပြဿနာများအတွက် ဖြေရှင်းရန် အသုံးပြုသည်။ ၎င်းနယ်ပယ်သည် စိတ်ပညာနှင့် ကွန်ပျူတာသိပ္ပံကို ပေါင်းစပ်ထားသော သုတေသနမှ စိတ်အားထက်သန်မှုရရှိထားသည်။

🚀 စိန်ခေါ်မှု

"ဂျင်နက်တစ် အယ်လဂိုရီသမ်များကို အကောင်အထည်ဖော်ရန် ရိုးရှင်းသော်လည်း၊ ၎င်း၏ အပြုအမူကို နားလည်ရန် ခက်ခဲသည်။" source ဂျင်နက်တစ် အယ်လဂိုရီသမ်ကို အသုံးပြု၍ Sudoku puzzle ကို ဖြေရှင်းသည့် နမူနာတစ်ခုကို ရှာဖွေပြီး၊ ၎င်းအလုပ်လုပ်ပုံကို sketch သို့မဟုတ် flowchart အဖြစ် ရှင်းပြပါ။

ပြန်လည်သုံးသပ်ခြင်းနှင့် ကိုယ်တိုင်လေ့လာခြင်း

ဒီအလွန်ကောင်းမွန်သော ဗီဒီယို ကို ကြည့်ပါ၊ ဂျင်နက်တစ် အယ်လဂိုရီသမ်များဖြင့် neural networks ကို လေ့ကျင့်ခြင်းအားဖြင့် ကွန်ပျူတာသည် Super Mario ကို ကစားနိုင်ပုံကို ရှင်းပြထားသည်။ ၎င်းလိုမျိုး ကစားပုံကို သင်ယူရန် နောက်အပိုင်းတွင် ဆက်လက်လေ့လာပါ။

သင်၏ရည်မှန်းချက်မှာ Diophantine equation ဟုခေါ်သော integer roots ပါသော အချိုးအစားကို ဖြေရှင်းရန်ဖြစ်သည်။ ဥပမာအားဖြင့် a+2b+3c+4d=30 ဟုဆိုပါက၊ ၎င်းအချိုးအစားကို ဖြေရှင်းနိုင်သော integer roots ကို ရှာဖွေပါ။

ဤအလုပ်ကို ဒီ post မှ အားကျ၍ ဖန်တီးထားသည်။

အကြံပြုချက်များ-

  1. roots များကို [0;30] အတွင်းတွင် ရှိသည်ဟု သတ်မှတ်နိုင်သည်။
  2. gene အဖြစ် root values များ၏ စာရင်းကို အသုံးပြုပါ။

Diophantine.ipynb ကို စတင်ရန် အသုံးပြုပါ။