Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Produkčné pravidlá
Parametrizácia produkčných pravidiel
Objektovo orientované produkčné pravidlá
Bunkové kódovanie
Gramatický prístup v praxi



Ostatné kapitoly
Genetické algoritmy
Genetické programovanie
Umelá embryogenéza
Evolučný dizajn
Interaktívny evolučný výpočet
Ekogramatiky
Evolučný hardware


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


Bunkové kódovanie

Bunkové kódovanie používa gramatické stromy na kódovanie krokov vo vývoji neurónových sietí, začínajúc z jedinej prvotnej bunky. Jeho pravidlá sa aplikujú na jednotlivé bunky v rastúcej sieti.

Bunkového kódovanie
Bunkového kódovanie

Gramatický strom je na ľavej strane a rast siete je ukázaný zhora dolu v piatich krokoch napravo. Sieť začína na kroku 1 ako jediná bunka. V každom kroku, každá z buniek siete číta zo svojej časti stromu. Bodkované čiary identifikujú umiestnenie v strome, z ktorého každá bunka číta svoj krok. Keď sa bunka delí, jej nástupnícke bunky si zvolia rozdielne cesty v strome. „Inkrementový register spojení“ inštrukcie je spôsob ako bunka vie, na ktoré spojenie má aplikovať nejaké podradené spojové inštrukcie. V tomto príklade sa takáto inštrukcia objavuje hneď po inštrukcii spojového registra, zapríčiňujúc zvýšenie hodnoty spojenia, čo je v sieti reprezentované zhrubnutím čiary. Bias neurónovej aktivácie je reprezentovaný tmavosťou bunky.

Vyvíjanie buniek v bunkovom kódovaní číta s rôznych častí gramatického stromu súčasne. Čítacia hlava pre každú bunku indikuje, z ktorej časti gramatického stromu bunka práve číta. Ak bunka načíta končiacu inštrukciu, jej stav je finálny a prestáva čítať. Bunkové kódovanie používa First In Firt Out (FIFO) zásobník buniek na to, aby si zachovala stopu, z ktorej bunky práve spúšťajú inštrukciu a v akom poradí majú byť spúšťané. Bunka na začiatku frontu spúšťa inštrukciu na ktorú jej ukazuje hlava, presunie svoju hlavu na podradenú inštrukciu v gramatickom strome a potom ide na koniec radu. Niekedy bunka načíta inštrukcie na rozdelenie (existuje množstvo metód pre bunkové delenie), v tomto prípade pôvodná bunka presunie hlavu na ľavú časť stromu podstromu a nová na pravú časť. Takto bunkové delenia dovoľujú bunkám s rôznym pôvodom nasledovať rôzne cesty vývoja.

Hore
Kontakt: Marek Bundzel