Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Úvod
Popis Avidy
Uživateľské prostredie
Inštalácia Avidy
Experimenty
Literatúra a linky
O tejto kapitole
Popis súboru genesis



Ostatné kapitoly
LEE
Framsticks
EINSTein
Nerve garden
Poly World
Simulácia evolúcie rozhodovania
Nornovia
Creatures 3
Primordial Life
Core War
Desktop Garp
Tierra
Avida


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


Popis Avidy

Avida narába s jednoduchou umelou chémiou. Molekuly (jedince, reťazce) sú počítačové programy a chemická aktivita týchto molekúl sa dosahuje spustením (vykonávaním) týchto programov. Svet, v ktorom tieto programy žijú je v tvare anuloidu. Pre jednoznačnosť je nadefinovaný ako dvojrozmerná pravidelná mriežka. Jedince v populácii si môžete predstaviť ako kolmé reťazce na body tejto mriežky. Avida predstavuje špeciálny typ celulárneho automatu (porušuje podmienku homogenity, kým lokálnosť a paralelnosť sú splnené) s tzv. úplným susedstvom (t.j každý jedinec v avide má 8 susedov). Veľkosť samotnej mriežky je nastaviteľná (*** podrobnosti, aj pre ostatné nastavenia hľadajte v popise genesis súboru ***).

Evolúcia začína umiestnením prvého reťazca-jedinca (prapredka) na mriežku. Tento prapredok musí mať schopnosť samoreplikácie. Ak túto podmienku nespĺňa, evolúcia nezačne. V avide v adresári genebank je tento prapredok nadefinovaný v súbore "creature.base". Užívateľ má možnosť nadefinovať si aj vlastného prapredka. Vďaka samoreplikácii má tento prapredok schopnosť sa rozmnožovať, presúvať svoje informácie - časti kódu ďalej, do nasledujúcej generácie. Čím viac je tento jedinec (jeho kód) lepší, tým je jeho šanca na prežitie vyššia. Vhodnosť jedinca je najčastejšie mapovaná na základe splnenia úloh, ktoré jeho kód dokáže vykonať. V avidesú tieto úlohy, ako aj časové bonusy za ich splnenie, nadefinované v adresári WORK v súbore "task_set". Užívateľ má podľa mňa možnosť nadefinovať si aj vlastné úlohy, a to ich doplnením do zdrojového kódu a ich následným skompilovaním. Avida je naprogramovaná v C++.

Dynamika typického chodu avidy závisí na nastaveniach, ktoré určujú charakter sveta. Je to napríklad rýchlosť a typ mutácie, mechanizmus, akým sú bunky v populácii nahradzované (metóda selekcie) a pod.(*** podrobnosti, aj pre ostatné nastavenia hľadajte v popise genesis súboru ***).

Hore
Kontakt: Marek Bundzel