Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
|||||||||||||||||||||||||||
Ako GA pracujú?Ako GA pracujú?Najprv je potrebné vybrať počiatočnú populáciu prístupných riešení. To sa deje väčšinou náhodne, ale ak máme k dispozícii nejaké heuristiky, môžeme ich uplatniť práve v tomto kroku. Ďalej, pretože budeme chcieť na tieto riešenia uplatňovať genetické operátory, ako kríženie a mutácia, potrebujeme ich mať k tomuto účelu reprezentované v nejakej vhodnej podobe. Ako dostatočne všeobecné sa javí kódovanie vo forme reťazca či poľa hodnôt. Máme teda nejakú počiatočnú populáciu organizmov (kde každý organizmus zodpovedá jednému chromozómu) a zápas o život môže začať. Prvý na radu prichádza výber jedincov, ktorí sa budú podieľať na vzniku novej generácie. Klasický prístup k tomuto problému obnáša ohodnotenie jedincov aktuálnej populácie na základe cieľovej funkcie a následný výber, kde pravdepodobnosť výberu daného jedinca je úmerná jeho relatívnemu ohodnoteniu. Štandardný genetický algoritmus pracuje s populáciou konštantnej veľkosti, takže sa vyberá presne toľko jedincov, aká je táto veľkosť. Samotný výber ešte samozrejme nedá vzniknúť žiadnym novým štruktúram. Na to sú tu genetické operátory, ako kríženie a mutácia. Kríženie samo o sebe znamená výmenu genetického materiálu, teda častí reťazcov medzi oboma jedincami. Mutácia slúži na udržovanie genetickej variácie v populácii a tým bráni, aby proces hľadania skĺzol len do oblasti nejakého lokálneho optima. Úlohou EA je teda nájsť globálny extrém hyperplochy a neuviaznuť pri jeho hľadaní v niektorom z lokálnych extrémov. EA pracujú obvykle paralelne s viacerými jedincami tvoriacimi populáciu - analogicky ako sa to deje v prírode. Jedná sa pritom o proces diskrétny v čase - postupne sa striedajú jednotlivé generácie. Proces opakujeme tak dlho, kým nie je splnená ukončovacia podmienka, ktorá môže byť daná napr. vo forme maximálneho počtu generácií alebo vo forme nejakého prijateľného limitu. Na prehľadávanie problémového priestoru existujú vo všeobecnosti dva spôsoby:
Zapísané vo forme pseudo-kódu by štandardný genetický algoritmus vyzeral nasledovne:
![]() Schéma jedného kroku algoritmu - prechod z jednej generácie na ďalšiu (detailnejšie pozri "ilustračný príklad"). |
|||||||||||||||||||||||||||
Kontakt: Marek Bundzel |