Algorithms za Kijenetiki (GA) zinategemea mbinu ya mageuzi katika AI, ambapo mbinu za mageuzi ya idadi ya watu zinatumika kupata suluhisho bora kwa tatizo fulani. Zilianzishwa mwaka 1975 na John Henry Holland.
Algorithms za Kijenetiki zinategemea mawazo yafuatayo:
- Suluhisho sahihi za tatizo zinaweza kuwakilishwa kama jini
- Crossover inatuwezesha kuchanganya suluhisho mbili pamoja ili kupata suluhisho jipya sahihi
- Uchaguzi hutumika kuchagua suluhisho bora zaidi kwa kutumia kazi ya ufanisi
- Mabadiliko huletwa ili kuvuruga uboreshaji na kututoa kwenye kiwango cha chini cha ndani
Ikiwa unataka kutekeleza Algorithm ya Kijenetiki, unahitaji yafuatayo:
- Kupata njia ya kuweka suluhisho za tatizo letu kwa kutumia jini g∈Γ
- Kwenye seti ya jini Γ tunahitaji kufafanua kazi ya ufanisi fit: Γ→R. Thamani ndogo za kazi zinahusiana na suluhisho bora.
- Kufafanua mfumo wa crossover wa kuchanganya jini mbili pamoja ili kupata suluhisho jipya crossover: Γ2→Γ.
- Kufafanua mfumo wa mabadiliko mutate: Γ→Γ.
Katika hali nyingi, crossover na mabadiliko ni algorithms rahisi za kudhibiti jini kama mfuatano wa namba au veki za biti.
Utekelezaji maalum wa algorithm ya kijenetiki unaweza kutofautiana kulingana na kesi, lakini muundo wa jumla ni kama ifuatavyo:
- Chagua idadi ya watu ya awali G⊂Γ
- Chagua kwa nasibu moja ya operesheni zitakazofanywa katika hatua hii: crossover au mutation
- Crossover:
- Chagua kwa nasibu jini mbili g1, g2 ∈ G
- Hesabu crossover g=crossover(g1,g2)
- Ikiwa fit(g)<fit(g1) au fit(g)<fit(g2) - badilisha jini husika katika idadi ya watu kwa g.
- Mutation - chagua jini moja kwa nasibu g∈G na ibadilishe kwa mutate(g)
- Rudia kutoka hatua ya 2, hadi tupate thamani ndogo ya kutosha ya fit, au hadi kikomo cha idadi ya hatua kifikiwe.
Kazi zinazotatuliwa mara kwa mara na Algorithms za Kijenetiki ni pamoja na:
- Uboreshaji wa ratiba
- Ufungaji bora
- Ukataji bora
- Kuharakisha utafutaji wa kina
Endelea kujifunza katika daftari zifuatazo:
Nenda kwenye daftari hili kuona mifano miwili ya kutumia Algorithms za Kijenetiki:
- Mgawanyo wa haki wa hazina
- Tatizo la Malkia 8
Algorithms za Kijenetiki zinatumika kutatua matatizo mengi, ikiwa ni pamoja na masuala ya usafirishaji na utafutaji. Uwanja huu umechochewa na utafiti uliochanganya mada za Saikolojia na Sayansi ya Kompyuta.
"Algorithms za kijenetiki ni rahisi kutekeleza, lakini tabia zake ni ngumu kuelewa." chanzo Fanya utafiti ili kupata utekelezaji wa algorithm ya kijenetiki kama kutatua fumbo la Sudoku, na eleza jinsi inavyofanya kazi kwa mchoro au mtiririko wa hatua.
Tazama video hii nzuri inayozungumzia jinsi kompyuta inavyoweza kujifunza kucheza Super Mario kwa kutumia mitandao ya neva iliyofunzwa na algorithms za kijenetiki. Tutajifunza zaidi kuhusu kompyuta kujifunza kucheza michezo kama hiyo katika sehemu inayofuata.
Lengo lako ni kutatua kinachoitwa mlinganyo wa Diophantine - mlinganyo wenye mizizi ya namba kamili. Kwa mfano, fikiria mlinganyo a+2b+3c+4d=30. Unahitaji kupata mizizi ya namba kamili inayokidhi mlinganyo huu.
Kazi hii imechochewa na chapisho hili.
Vidokezo:
- Unaweza kuzingatia mizizi kuwa katika kipengele [0;30]
- Kama jini, fikiria kutumia orodha ya thamani za mizizi
Tumia Diophantine.ipynb kama sehemu ya kuanzia.