Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Úvod
Tutoriál
Download
Linky
O tejto kapitole



Ostatné kapitoly
Swarm
RePast
LEM
SDML
Eos
DDLab


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


Úvod

Program LEM bol prvotne vyvíjaný ako jednoúčelový program pre študovanie lokálnych environmentálnych procesov v prostredí. Bol navrhnutý na štúdium dennej migrácie pávov. Neskôr sa však z neho vyvinul nástroj na sledovanie lokálnych environmentálnych procesov. Napríklad sa ním dá študovať aký bude mať dopad na prostredie ekologická katastrofa, ktorá sa však bude týkať iba obmedzeného prostredia.

Teoreticky navrhol systém LEM S. Krivov. Sám sa podieľal aj na jeho návrhu. Poslednú verziu systému LEM skompiloval A. Kuchikov.

Na simuláciu LEM používa model prostredia. Model prostredia je mriežka miest (grid of sites). Pri definovaní mriežky si volíme jej veľkosť (napríklad na 20 x 20 buniek), pričom ešte každá bunka má svoju vnútornú štruktúru. Je rozdelená ešte na menšie oblasti, kde každé predstavuje jeden pixel. Každá bunka teda môže obsahovať viacerých agentov súčasne, ktorí môžu medzi sebou interagovať. Mriežka môže byť definovaná ako obdĺžniková alebo toroidná plocha. Ak je definovaná ako plocha, agent, ktorý príde na koniec mriežky, sa otočí o 1800 a pokračuje ďalej. Ak je mriežka definovaná ako toroid, potom agent pokračuje ďalej na opačnej strane mriežky.

LEM obsahuje agentov (agents). Agenti sú základným stavebným blokom celého systému LEM. Tvoria vlastne všetko to, čo sa v prostredí nachádza. Toto sa týka všetkých objektov, či už živých alebo neživých. Agenti sa v systéme LEM delia do troch kategórií:

  • Envo-agenti

    Sú to neživí agenti. Reprezentujú v prostredí budovy, skaly, cesty a podobne. Sami nemôžu vyvolať interakciu s ostatnými agentmi, ale ostatní agenti môžu interagovať s nimi.

  • Producenti

    Sú to producenti prostredia ako napríklad stromy tráva a podobne. Sú identifikovaní svojou biomasou a prírastkom za jeden krok simulácie.

  • Etho-agenti

    Etho-agenti sú najdôležitejší zo všetkých agentov. Bez nich by neexistovala interakcia v systéme. Sú to väčšinou predátori prostredia. Môžu vyvolávať interakcie a aj ich prijímať. Môžu sa rozmnožovať, pohybovať, konzumovať potravu ale aj umierať. V prostredí môže byť naraz viacero rôznych agentov, preto tvorcovia programu LEM pristúpili na riešenie, že každý etho-agent je definovaný vo vlastnom súbore.

Je ešte ďalší druh agentov. Nie sú to síce agenti v pravom slova zmysle, ale zaraďujú sa medzi nich. Sú to tzv. značky v prostredí (landmarks). Tie sa využívajú vtedy, ak chceme nariadiť po akej ceste sa majú agenti presúvať.

Všetci agenti môžu medzi sebou interagovať (etho-agenti interagujú dokonca aj so značkami prostredia). Musíme definovať ako majú agenti medzi sebou interagovať a aká bude reakcia na interakciu ostatných agentov. Toto je zahrnuté v tabuľke práv alebo pravidiel (The Law). Všetky práva a pravidlá sú zahrnuté v jednom súbore. Tabuľka pravidiel je teda jeden z najdôležitejších prvkov celého systému LEM.

LEM pracuje na tzv. TRR algoritme (Trial - Resolution - Result), čo v preklade znamená Pokus - Rozhodnutie - Výsledok. TRR pracuje nasledovne:

  • V prvom kroku všetci agenti vyberú akciu, ktorú zvážia ako najrelevantnejšiu ku svojej pozícii. Akcie môžu byť tranzitívne a netranzitívne. Vstup do interakcie s iným agentom stojí nejaké úsilie.
  • V druhom kroku je definovaný výsledok interakcie. Tabuľka pravidiel je pripravená pre to, aby definovala výsledky týchto interakcií. Na základe nej sa vyvolá reakcia. Na základe reakcie sa zisťuje, či bola daná akcia úspešná, alebo nie.
  • V treťom kroku sa len modifikuje model podľa výsledných akcií a reakcií.

Súbory a ich význam, ktoré sú potrebné pre prácu so systémom LEM sú tieto:

  • *.md

    Súbor so špecifikáciou modelu. Je len jediný. Obsahuje ako má vyzerať výsledný model ekosystému. Definuje sa tu veľkosť a typ mriežky, či ide o cyklickú simuláciou (striedanie dňa a noci), či daný model bude lineárny, alebo či bude evolučný. Evolučný model nie je celkom dotiahnutý, obsahuje kríženie a mutáciu, ale nefunguje tak ako by mal. Toto upozornenie nájdete aj v oficiálnom pomocníkovi v angličtine.

  • *.lw

    Súbor so špecifikáciou práv. Tabuľka práv špecifikuje správanie agentov a interakcie medzi nimi. Je jediná a uvádzajú sa v nej všetky pravidlá, ktoré chceme do systému zakomponovať. Návrh tabuľky práv je najobtiažnejšia záležitosť celej prípravy pre simuláciu.

  • *.ens

    Súbor so špecifikáciou envo-agentov. Všetci envo-agenti sú definovaní v jednom súbore. Predstavujú neživé elementy prostredia. Definícia tohto súboru môže chýbať. Ak je definovaný, tak len raz.

  • *.prs

    Súbor so špecifikáciou producentov. Predstavujú nepohyblivých agentov. Sú definovaní v jednom súbore. Majú svoj objem biomasy a majú definované, koľko biomasy im pribudne za jeden krok.

  • *.esp

    Súbor so špecifikáciou jedného etho-agenta. Etho-agentov teda môže byť v modeli viac. Ak ich je viac druhov, je nutné všetky druhy týchto etho-agentov uviesť v modelovom súbore. Etho-agenti môžu vyvolávať akcie a prostredie im k tomu vyvoláva reakcie. Takto je stanovený tlak na etho-agentov, ktorý musia zniesť. Reakcie sú dané v tabuľke pravidiel.

  • *.ag

    Súbor, ktorý špecifikuje, kde sú daní agenti v modeli umiestnení. Tento súbor vytvorí aj simulátor, keď ho požiadame o uloženie aktuálneho modelu.

  • *.pt

    Súbor, ktorý vytvára simulátor, ak ho požiadame o to, aby zaznamenal udalosti, ktoré sa stali počas simulácie. Toto úzko súvisí s databázou, ktorú používa program LEM. LEM využíva databázu, ktorú poskytuje Visual Prolog.

Simulátor má grafické rozhranie. Pracuje pod operačným systémom Windows. Je nám v mnohých veciach nápomocný. Má integrované prostredie pre písanie textových súborov, pomocou ktorých je v simulátore definované všetko. Obsahuje najdôležitejšie príkazy pre prácu s textom, ako vložiť vystrihnúť, kopírovať a podobne. Pomáha nám vytvoriť model sveta, špecifikácie agentov. Nemusíme ručne písať, kde sa agenti v prostredí nachádzajú, jednoducho len vyberieme agenta a klikneme myšou na miesto, kde má byť umiestnený a program vykoná všetko za nás. Zobrazuje prostredie na obrazovke, poskytuje výpisy o aktuálnom kroku, o aktuálnom stave v modeli, môže poskytnúť graf vývoja populácie a podobne. Poskytuje uloženie a načítanie modelu do a zo súboru. Je dobré, že simulácia sa dá spúšťať po krokoch, po desiatich krokoch, po sto krokoch, alebo sa dá pustiť neobmedzene, kým ju jednoducho nezastavíme.

Hore
Kontakt: Marek Bundzel