XXVI. ASR '2001 Seminar, Instruments and Control, Ostrava, April 26 - 27, 2001
Paper 35
SWARM - Vývojové prostředí umělého života LAMBERT, Jiří Ing.,
Institut 545, Hornicko-geologická fakulta, Vysoká škola báňská - Technická
univerzita Ostrava, 17. listopadu 15, 708 33 Ostrava - Poruba, http://homen.vsb.cz/~lam013
[email protected],
Abstrakt: Příspěvek popisuje poměrně novou vědní disciplínu - umělý život, která nám může pomoci pochopit některé mechanismy odehrávající se v přírodě. Umělý život lze ovšem použít nejen na aplikace z ekologie, ale například i z chemie, sociologie apod. Zvláštní pozornost je věnována vývojovému prostředí SWARM, u něhož jsou popsány jeho charakteristické vlastnosti. Klíčová slova: SWARM, umělý život, simulace,
1 Život Již v roce 1878 vyslovil fyziolog Claude Bernard pět všeobecných vlastností, kterými se živé "věci" vyznačují. Jsou to: -
organizace reprodukce výživa vývoj ovlivnitelnost chorobami a smrtí
V polovině minulého století se objevila myšlenka, že je život založen na kódové abecedě. Tento předpoklad vychází z identifikace struktury DNA, o kterou se zasloužili v roce 1953 Watson a Crick. Molekula tedy obsahuje univerzální genetický pro molekuly bílkovin. Existuje několik definicí života, které jsou odvozeny podle oblasti původu (např. fyziologická, genetická, biochemická, metabolická aj.). Žádná z definic ovšem nepopisuje život zcela přesně, a proto používá současná biologie jejich kombinaci. Výsledná kombinaci již dostačuje k popisu většiny pozemských forem života. Reálný život lze specifikovat mimo jiné těmito vlastnostmi: -
život je forma v čase a prostoru život se chce sebereprodukovat život je spojen s uchováním informací o sebereprezentaci život se vyvíjí pomocí metabolismu život vstupuje do funkčních interakcí s prostředím život není individuum, ale vývojová linie se schopností vývoje -1-
2 Umělý život Umělý život a jeho simulace se potýkají s množstvím problémů. Jedním z nich je, jak definovat život a charakteristické vlastnosti vzniklých virtuálních organizmů. Bonabeau a Theraulaz definovali vyslovili charakteristiku, která asi nejlépe vyhovuje našim potřebám: Umělý život je všeobecná metoda, jejíž podstatou je generovat z jednoduchých mikroskopických prvků také chování na makroskopické úrovni, které je možno interpretovat jako projev života. Umělý život popisují tyto teze: -
Podstatou života je informace a ne materiální forma, která slouží k jejímu uchování a zpracování. Život vyžaduje určitou míru složitosti: struktura získává, po dosáhnutí určité meze složitosti, schopnost rozmnožovat se a to nejen vytvářením svých identických kopií, ale i tak, že jeho potomkové budou složitější. Informace má v živých organizmech dvojí podobu: neinterpretovaná informace (genotyp) slouží k rozmnožování - je odevzdávána potomkům; interpretovaná informace (fenotyp) slouží jako podklad k vytváření struktury nového jedince. Prostředkem vývoje směrem k složitějším, dokonalejším strukturám - evoluci - je v případě všech forem života samoreprodukce, mutace a selekce. Syntetický proces probíhá zespodu nahoru: od elementárních řízených jednoduchými pravidly ke složitým strukturám vykazujícím složité chování. Tento přístup se liší od procesu shora dolů, charakteristického pro většinu metod umělé inteligence.
Díky umělému životu máme možnost využívat uvedené evoluční teorie, případně jejich kombinace, při simulaci složitých systémů. Virtuální prostor nemá teoreticky žádné omezení, a proto můžeme provádět experimenty, které bychom nebyli schopni za normálních podmínek realizovat nebo ty, které by trvaly příliš dlouho. Takto můžeme za krátký okamžik provést simulaci například miliónů generací.
3 Simulátory Simulátory umělého života můžeme rozdělit podle několika hledisek. Prvním může být komplexnost vlastností populace, kterou je simulátor schopen obsáhnout a zachytit. Druhým hlediskem je například způsob evoluce, který ten který simulátor používá. Zde existují dva principy. Buď jsou naučené vlastnosti rodiče děděny na jeho potomka a nebo k dědění naučených vlastností nedochází. Tato vlastnost má hlavní vliv na chování populace a tvoří jeden ze základních charakteristický rysů simulačních systémů. Simulátory můžeme také rozdělit podle interakce mezi jednotlivými organismy v daném simulačním prostředí na simulátory s lokální nebo globální interakcí. Jádrem vývoje složitosti v živých systémech je metoda stochastického přenosu informace z prostředí do genomu adoptované buňky pomocí mutace, jak můžeme pozorovat právě v simulátorech umělého života.
-2-
3.1 Tierra Tierra je virtuální počítač MIMD (Multiple Instruction Multiple Data), který simuluje výpočtové prostředí pro populaci samoreprodukujících se počítačových programů. Tělo těchto programů tvoří strojový kód, který je odolný proti chybám. Každý program v simulátoru Tierra má přiřazen vlastní procesor (virtuální procesor, procesorový čas) na svoje vykonávání. Tento virtuální procesor obsahuje položky jako ukazatel na instrukci, registry, zásobník atd. V tomto simulátoru dochází k dědění naučených vlastností z rodičů na potomky v plné míře. Genotyp je v tomto případě i fenotypem a při vzniku nového jedince dochází k jeho úplnému překopírování. Tento proces může být narušen mutací, případně překřížením vlivů náhodných změn a nedeterministickým vykonáním instrukcí. 3.2 Avida Tento systém je založen na čistě lokálních interakcích s aktualizačním mechanizmem připomínajícím 2D celulární automaty. Je navržen, stejně jako Tierra, na evoluci směrem ke složitosti. Za účelem univerzálnosti je však v některých stránkách jednodušší. Je zde zachován charakter systému z toho hlediska, že členové populace jsou řetězci instrukcí strojově orientovaného jazyka, spouštěnými na virtuálním počítači. Tyto řetězce (genomy) si můžeme představit jako kolmé na mřížku, která označuje fyzické umístění řetězců. Interakce mezi jednotlivými body mřížky jsou podobné jako u celulárních automatů. Hlavním rozdílem (který zároveň zaručuje schopnost evoluce) je, že pravidla pro aktualizaci nejsou fixně dána, ale jsou závislá na genomech okolních buněk. Genomy jsou na mřížce vystaveny náhodné mutaci (s poissonovským rozdělením) což dovoluje evoluční adaptaci pomocí implicitní darwinovské selekce.
3.3 LEE "Latent Energy Environments" (LEE) - prostředí se skrytou energií je model a zároveň programový nástroj používaný na simulace, jejíž organismy jsou implementovány s použitím neuronové sítě, senzoricko-motorického systému a "vnitřností" obsahující zásobník energie. Standardní model "potravy" jako prvku prostředí, který je potřebný pro přežití, je nahrazen skupinou pasivních "atomických prvků". Tyto prvky musí organismy kombinovat za účelem získání energie, kterou potřebují k přežití. Senzorický systém, kterým organismus zjišťuje potravu vyskytující se ve svém okolí a její typ, se skládá z uživatelem definované množiny senzorů, které jsou namapovány na vstupní neurony neuronové sítě. Síť může mít libovolný počet skrytých vrstev. Aktivační hodnoty výstupní vrstvy jsou namapovány na pohybový systém, který může uživatel také libovolně konfigurovat (počet motorů). Životní prostor je reprezentován diskrétním světem s buňkami umístěnými na dvojrozměrné mřížce. Mřížka má tvar anuloidu. Jediným zdrojem (pozitivní nebo negativní) latentní energie jsou binární reakce, takže výsledkem sloučení dvou základních prvků je zisk nebo ztráta energie a další prvky jako vedlejší produkt. Množství práce potřebné na uvolnění energie se definuje vzdáleností, kterou musí překonat jeden prvek reakce, aby se dostal na buňku druhého. Ovládáním prostorového rozmístění typů prvků ve světě můžeme dynamicky regulovat množství práce potřebné k jejich kombinaci. Podobně, jako přiřazujeme potenciální energii k posloupnosti reakcí, tak můžeme odhadnout optimální energetické účinnosti. V podstatě máme kvalitativní znalosti -3-
o tom, kolik skryté energie je ve světě k dispozici a kolik práce se musí vykonat na uvolnění této energie. Životní cyklus každého organismu se skládá z pěti kroků: 1. 2. 3. 4. 5.
Sbírání informací o okolním světě pomocí senzorů Použití těchto informací k pohybu Vykonání pohybu pomocí množiny motorů Použití nových informací ze senzorů k učení neuronové sítě Následkem pohybu se spotřebuje energie. Tato může stoupnout nebo klesnout, v závislosti na obsahu políčka a toho co se s organismem děje
3.3 StarLogo a AgentLab StarLogo a AgentLab jsou ukázkou interakčních simulačních nástrojů, které mají snadné použití. Oba poskytují prostředí pro vývoj modelů s více agenty. Simulovaný svět má tvar dvojrozměrné mřížky, která může obsahovat agenty a zdroje. Aktivními složkami jsou v modelu agenti, kteří mohou být v interakci s dalšími agenty nebo prostředím. Jejich chování je nastaveno jednoduchými specifikovanými pravidly. Hlavní výhoda těchto simulačních nástrojů spočívá v jejich interakčnosti. Umožňují vývoj modelů s více agenty bez zkušeností s programováním. Není nutno každou novou aplikaci kompilovat, jak je tomu u nástrojů, kde je model navržen napsáním přímo zdrojového kódu. Toto je ovšem vykoupeno menší univerzálností a omezenou složitostí modelu. Není možné implementovat rysy, které nejsou podporovány originálním systémem, např. výsuvný model mechanismu evoluce.
4 SWARM Swarm byl spuštěn v roce 1994 Chrisem Langtonem na Sante Fe Institute in New Mexico. Dále na vývoji spolupracovali: Roger Burkhart, Nelson Minar, Manor Askenazi, Glen Ropella, Sven Thommesen, Marcus Daniels, Alex Lancaster a Vladimir Jojic. V roce 1995 byla vydána beta verze, v lednu 1997 verze 1.0, v dubnu 1998 verze 1.1 s podporou Win95/NT a v dubnu 1999 verze 2.0 s jazykem Java. Momentálně je nejnovější verze 2.1.1. Cílem autorů bylo vytvořit dělenou simulační platformu pro ABM a usnadnit vývoj modelů. 4.1 Základní charakteristika Swarm je multiagentová softwarová platforma pro simulaci komplexních adaptivních systémů v diskrétním čase vycházející z přístupu zespodu nahoru. V simulaci jsou soubory nezávislých agentů, kteří jsou v interakci přes diskrétní události. Agenti jsou organizováni do objektů swarm (hejno). Swarm je soubor agentů a seznamu událostí pro tyto agenty. Seznamy tvoří páry objekt-správa. Modelování plynutí času je tvoře vykonáváním událostí podle dané posloupnosti, která je definována právě v seznamech (rozvrzích). Swarm podporuje hierarchické modelování, takže se mohou agenti skládat z jiných swarm agentů. Takto můžeme dosáhnout simulace na několika úrovních. Systém Swarm je realizován jako soubor knihoven v objektově orientovaném jazyce C. Grafika je tvořena přes skriptovací jazyk a GUI widgets (Tcl/Tk). Knihovny obsahují nejčastěji používané nástroje na vytváření, analýzu, zobrazování, měření a ovládání modelů. -4-
V současnosti je systém distribuován ve verzi pro operační systémy Unix a Windows 95/98/NT. Velkou výhodou je přenositelnost aplikací. Bez zásadních změn ve zdrojovém kódu můžeme spustit aplikaci napsanou pod systémem Windows i na systému Unix. Tvorba Swarm modelu probíhá v těchto krocích: 1. 2. 3. 4.
createBegin, createEnd - inicializuje paměť a parametry buildObjects - stavba všech agentů a objektů v modelu buildActions - definuje uspořádání a načasování událostí activate - nahrání do nejvyšší úrovně swarmu nebo start běhu swarmu
4.2 Ukázka modelu Na představení prostředí Swarm, použiji model Heatbugs, který simuluje společenství brouků, kteří jsou zdrojem tepla. Jejich cílem je být v prostředí s pro ně výhodnou teplotní pohodou. K ovládání běhu simulace slouží komponenta ObserverSwarm. Jejím úkolem je ovládání, nastavování parametrů, zobrazování grafů a čtení dat modelu. Spuštění, pozastavení, uložení a ukončení běhu simulace je prováděno přes standardní ovládací panel (obr.1).
Obrázek 1 - Standardní ovládací panel Přehled tlačítek: -
START - začátek běhu simulace STOP - přerušení běhu NEXT - posun simulace o jeden krok SAVE - uložení parametrů QUIT - ukončení programu
-5-
Dalším panelem používaným ve swarm modelu je sonda (obr.2). Přes toto dialogové okno můžeme nastavovat jednotlivé parametry objektů. Lze libovolně určit, které parametry lze a které nelze měnit.
Obrázek 2 - Okno nastavování parametrů Abychom mohli pozorovat dění v námi vytvořeném virtuálním světě, lze zobrazit samotný svět. V programu Heatbugs jsou v dvojrozměrném prostoru zobrazeni brouci a tepelné vlastnosti prostředí (obr.3).
Obrázek 3 - Zobrazení světa
-6-
K usnadnění analýzy vytvořeného modelu slouží například sloupcové či časové grafy. Na obrázku 4 je zobrazen časový graf, který znázorňuje nespokojenost brouků ve vytvořeném světě. Nespokojenost se odvíjí od teploty prostředí, v němž se nacházejí. Užitečnou vlastností časových grafů je možnost vybranou oblast několikanásobně zvětšit a takto si prohlédnou pouze pro nás důležitou či zajímavou oblast.
Obrázek 4 - Časový graf Zobrazení průběhů hodnot jednotlivých proměnných je určitě velice důležité pro základní představu o chování modelu a zpřehlednění celé aplikace. Pro zpracování výsledků simulace je však toto řešení nepoužitelné. Těžko lze porovnávat např. dva grafy. Aby byly výsledky našich experimentů reprodukovatelné a srovnatelné, lze použít místo metody ObserverSwarm metodu BatchSwarm. BarchSwarm běží bez grafického rozhranní a vstupní parametry jsou do simulace načteny ze souboru. Stejně tak se i výstupní data ukládají do souboru. Frekvenci ukládání lze nastavit přes proměnnou Frequency. 4.3 Využití SWARMu Ačkoliv se může zdát, že simulátor umělého života může sloužit pouze k simulaci biologických či ekologických modelů (např. modelování chemických procesů, dynamiky ekosystémů, růst baktérií, chování medonosných včel, dynamika lesního porostu atd.), vědní disciplína Umělý život nachází uplatnění i v dalších oblastech. Příkladem mohou být simulace vytvořené v oblasti kultury, antropologie, průmyslu, vojenských systémů, ekonomiky atd. Ukázkou simulace ekonomického systému je BankNet Model. V systému je stanovený počet agentů, kteří mezi sebou vzájemně obchodují. Každý agent má přidělenu určitou částku peněz na rok. Mezi agenty existují dva typy vazeb - buď agent půjčku poskytuje nebo si sám půjčuje. Typy vazeb jsou ve výsledném zobrazení odlišeny různou barvou čar. Výsledek simulace je zobrazen na obrázku 5. Agenti mají ve skutečnosti představovat jednotlivé banky.
-7-
Obrázek 5 - BankNet Model
5 Závěr Vědní disciplína Umělý život si i přes svou poměrně krátkou historii již vybudovala mezi ostatními své místo a věřím, že se bude nadále rozvíjet. Lze ji využít k teoreticky neomezenému počtu simulací různých oblastí našeho života. Je použitelná hlavně v případech, kdy stavíme model zespodu nahoru. Velice silným nástrojem je vývojové prostředí Swarm. Jeho výhodou je orientace na objektové programování, hierarchické stavba modelu umožňující i velice složité modely, uživatelsky příjemné rozhranní pro změnu parametrů, možnost různých výstupních grafů a zápis hodnot do výstupního souboru. Swarm se vyvíjí a zdokonaluje, takže jsou k dispozici stále nové a nové knihovny, které uživateli ulehčují realizaci jeho vlastních aplikací. Informace o aktualizacích a doplňcích lze sledovat na internetových stránkách. Takto se bude použitelnost a přístupnost Umělého života čím dál více rozšiřovat a ten najde uplatnění i v dalších nových oblastech.
-8-
Nevýhodou práce v oblasti umělého života je poměrně malá dostupnost literatury v českém jazyce, což může působit problémy se začátky studia této problematiky. V anglickém jazyce je však (převážně na Internetu) zdrojů a učebních textů dostatek.
6 Literatura Swarm 2.1.1 CD–ROM Development Kit, © 1996–2000 Swarm Development Group URL: http://www.swarm.org URL: http://alife.tuke.sk URL: http://alife.fusebox.com
-9-