Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vyvíjajúci sa Floyi - applet
Applet je vytvorený pomocou vlákien - každý jedinec je jedno vlákno. Preto môže byť beh appletu pri voľbe veľkého počtu jedincov a vysokej rýchlosti trhaný, nepravidelný a v tom prípade treba jednu z hodnôt znížiť (je to spôsobené tým, že s počtom jedincov časová náročnosť kvadraticky narastá). Rýchlosť pohybu jedincov závisí od výkonu počítača, na ktorom je applet spustený.
Pravidlá vývinu EFloyi sa vyvíjajú tak, že každý eFloy je potomok dvoch rodičov. Matka a otec sú vybraný podľa mechanizmu neprirodzeného výberu (Survival of the Fittest by Unnatural Selection). Vhodnosť je definovaná dvoma hodnotami: energia a bezpečie. Tieto hodnoty sa počas života eFloya zvyšujú a znižujú. Tieto hodnoty sú tým vyššie čím je viac eFloy najedený (fitter). To sú odmeny a tresty, ktoré ovplyvňujú vhodnosť. Celková vhodnosť sa vypočíta:
e - energia E - koeficient váhy energie b - bezpečie B - koeficient váhy bezpečia s - spolupráca S - koeficient váhy spolupráce (štandartne sa S = 0)
Proces vývinu Mechanizmus vývoja sa skladá z troch vrstiev: Najspodnejšia vrstva je genotyp: Je to aktuálny chromozomálny reťazec, v ktorom sú zakódované gény. V eFloyovom genetickom algoritme každé miesto v chromozóme reprezentuje špecifickú vlastnosť. Na tejto úrovni máme iba charakteristické reťazce, ktoré neznamenajú nič kým nebudú interpretované. Stredná vrstva je fenotyp: Tu sú informácie kódované v génoch preložené na správanie, ktoré môžeme vidieť. Napríklad špecifický znak na špecifickom mieste v chromozóme môže znamenať špecifické eFloyové zrýchlenie. Tretia vrstva je vývojová vhodnosť: Vhodnosť závisí na fenotypickej vlastnosti, ale nie vždy priamo. Nie sú tam žiadne gény pre vhodnosť. eFloyové vhodnosť sa maximalizuje keď energia a bezpečnosť sú maximálne, eFloy musí dobehnúť votrelca pred ostatnými eFloymi, takže musí byť odvážny a nezávislý. Na druhej strane súčin bezpečia z vhodnosti sa zmenšuje keď je ďaleko od svojich susedov. Uhryznutie zvyšuje energiu ale rýchly pohyb ju znižuje a byť rýchly je nevyhnutné aby sa dostal ku votrelcovi prvý.
Takže máme takúto postupnosť: Evolučný výber sa robí podľa vhodnosti, vhodnosť závisí na fenotypických vlastnostiach a tie sú definované podľa genetického reťazca. Evolučné operátory (reprodukcia, kríženie, mutácia) pôsobia na chromozómový reťazec. Celý proces je celkom zložitý. Percento prežitia, koeficient mutácie a koeficient kríženia sú vlastnosti evolučných operátorov, ktoré môžeme ovplyvniť. A výsledok môže byť nepredvídateľný: Po zmene špecifických vlastností, ovplyvníme nečakané správanie, ktoré nie je vždy ľahko predvídať. Je zaujímavé sledovať správanie a vývoj eFloyov aj keď je to jednoduchý systém. Ovládanie appletu:
Kolízia votrelca a miestneho eFloya znamená pre votrelca, že bol uhryznutý a pre miestneho eFloya, že uhryzol votrelca. Pri uhryznutí votrelca miestnym eFloyom klesne votrelcovi energia o 1 a miestnemu eFloyovi sa energia zvýši o maximálny energetický podiel. Tabuľka vopred definovaných vlastností
Tento applet vznikol obmenou programu, ktorý vytvoril Ariel Dolan. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kontakt: Marek Bundzel |