Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
Popis AvidyAvida 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 ***). |
||
Kontakt: Marek Bundzel |