Prírodou inšpirované algoritmy
študijné materiály pre projekt mobilnej triedy umelej inteligencie
|
|
Biomorph
Zdroj
Program napísaný v Jave. Autor: Alain Gogniat.
Program
Po spustení programu sa zobrazí 8 náhodne vygenerovaných biomorfov.
Stačí vybrať otca a matku, a kliknutím na REPRODUCTION vytvoriť novú
generáciu. Takýmto spôsobom sa vytvára evolúcia podľa vzťahu: reprodukcia + mutácia = evolúcia.
Ak sa vyberie iba jeden biomorf, kliknutím na CLONE sa vytvorí 8 kópií biomorfu, ktoré sa navzájom líšia iba nepatrnými zmenami.
MIGRATE nám náhodne vygeneruje 8 nových biomorfov ( okrem rodičov ).
Gény
Genetický kód potomkov je vlastne kombináciou gen. kódov oboch rodičov.Kombinácia gen. kódov rodičov a mutácia vlastného gen. kódu spôsobí,že aj potomkovia sa navzájom líšia. Program používa na reprezentáciu biomorfu 9 génov:
- prvé 4 gény určujú uhly medzi jednotlivými vetvami
- prvé dva gény určujú uhol vetvenia ľavého podstromu. Sú
kodované písmenami od A po M. Písmeno A znamená 1°.
Každé ďalšie písmeno znamená o 1° viac (M=13°). Čiže,kombináciou
2 génov môžme vytvoriť uhol z intervalu 1°,...,169°.
- druhá dvojica génov určuje uhol vetvenia pre pravý
podstrom. Význam jednotlivých génov je totožný s ľavým
podstromom. Takže ako už bolo spomenuté vyššie, tak
zmena niektorého z prvých štyroch bitov genotypu sa prejaví
zmenou uhla vetvenia.
- ďalšie 4 gény určujú dĺžku jednotlivých čiar pri vetvení
- prvé dva gény určujú dĺžku vetvy ľavého podstromu.
Algoritmus kódovania je taký istý ako pri určovaní
uhlov. Gény nadobúdajú hodnoty od A po M.
Kombináciou 2 génov určíme dĺžku vetvy v pixeloch.
- druhé dva gény určujú dĺžku vetvy pravého podstromu a sú
kodované taktiež písmenami od A po M, ktoré nám určujú
jednotlivé dĺžky.
- posledný gén určuje hĺbku rekurzie.Nadobúda hodnoty od I po N,
kde I=9,J=10,...,N=14.
Kliknutím na "Show genome" sa pri každom biomorfe zobrazí jeho genetický kód.
Príklad
Screenshot niekoľkých biomorfov aj s génmi. Po kliknutí na obr. sa zobrazí
viac príkladov biomorfov.
Software
(applet)
|
|
Kontakt: Marek Bundzel |