Darwinovy pěnkavy (NetLogo)
Contents
- 1 Zadání
- 2 Definování tématu simulace
- 3 Cíl simulace
- 4 Metoda
- 5 Model simulace
- 6 Agenti simulace
- 7 Procedury
- 8 Základní nastavení simulovaného prostředí
- 9 Ovladače simulace
- 10 Monitory a grafy (ploty)
- 11 Uživatelské rozhraní
- 12 Definice problému
- 13 Postup
- 14 Měřené výsledky
- 15 Závěr a hodnocení
- 16 Možnosti rozšíření modelu
- 17 Přílohy a zdrojový kód
- 18 Zdroje
- 19 Komentáře
Zadání
Název simulace: Darwinovy pěnkavy
Předmět: 4IT495 Simulace systémů (LS 2015/2016)
Autor: Bc. Marek Bartoušek
Typ modelu: Multiagentní
Modelovací nástroj: NetLogo
Definování tématu simulace
Tato simulace bude založena na práci Charlese Darwina a jeho pozorování evolučního vývoje a přizpůsobení se na dané prostředí galapágských pěnkav. Právě toto pozorování bylo zrodem původní myšlenky darwinovy evoluční teorie.
Souostroví Galapágy se nachází v Tichém oceánu přibližně 1000 km západně od Ekvádoru. Jed celkem o 18 sopečných ostrovů, které jsou zajímavé právě velkou rozdílností fauny a flory. Na jednotlivých ostrovech se nachází rozdílné druhy rostlin i živočichů, z nichž nejzajímavější jsou právě pěnkavy, které se nacházejí na všech ostrovech.
Postupem času se vyvynuly a přizpůsobily prostředí a potravě jednotlivých ostrovů, na kterých žijí. Nyní tak můžeme v rámci galapágských ostrovů pozorovat 4 druhy pěnkav a jejich výrazné evoluční odlišnosti. Nejvýraznější je bezpochyby velikost a tvar zobáku, který se přizpůsobil dostupné potravě (semínka, oříšky, malý létavý hmyz, větší pozemní hmyz). Velkou zajímavostí je, že tato evoluční změna proběhla oproti běžným evolučním procesům velmi rychle a již v intervalu jednoho roku je možné u pěnkav pozorovat minimální změny a přizpůsobení se prostředí.
Hlavním předmětem simulace by tedy bylo pozorování evolučního vývoje parametrů a postupně se rozvýjející míra odlišností z jednoho původního druhu pěnkav ve čtyři druhy současné.
Cíl simulace
Cílem simulace je vytvoření multiagentního prostoru, v němž bude možné pozorovat evoluční vývoj agentů simulace a zejména jejich určitých parametrů. Na základě pozorování by mělo být možné ověřit pozorování galapágských pěnkav Charlesem Darwinem.
Metoda
Jak již bylo uvedeno výše, jedná se multiagentní simulaci. Primárním úkolem bude simulovat správné prostředí, v němž se budou agenti pohybovat a z něhož budou získávat životně důležité zdroje. Dle klasické definice evolučního vývoje, agenti, kteří si nedokáží získat dostatek životně důležitých zdrojů uhynou a nebudou tak schopni předat své genetické informace dalším pokolením. Pro tento typ multiagentní simulace se bezpochyby hodí NetLogo, jelikož jeho funkce umožní výborně nastavit a řídit chování agentů a zcela nezávisle i jejich prostředí.
Model simulace
Model simulace je možné rozdělit do tří navazujících částí.
Inicializace simulace
- Na úvod je potřeba nastavit simulované prostředí. Jako první krok tedy proběhne vytvoření 4 resortů, které reprezentují 4 resorty galapágských ostrovů. Rozdílnost resortů je dána převážně rozdílným dominantním druhem potravy v každém resortu.
- Jako druhý krok se inicializují základní hodnoty globálních proměnných, které následně řídí simulované prostředí. Jedná se o určení základní úrodnosti jednotlivých resortů a citlivost evolučního vývoje. Tyto proměnné je možné i nadále během průběhu simulace ovlivňovat a pozorovat tak vliv jejich změn na populace pěnkav.
- Třetí krokem je inicializace agentů pro všechny resorty. Pro každý resort, je potřeba inicializovat agenty zvlášť, aby bylo následně možné pozorovat jednotlivé druhy agentů samostatně.
Spuštění a průběh simulace
- Simulace probýhá v jednotlivých kolech. Jedno kolo je rovno jednomu týdnu reálného času. V rámci jednoho kola se dějí následující události.
- Správa zásob jídla - generování nových jednotek, postaršení existujících a odstranění prošlých (jednotlivé typy jídla mají svou reálnou trvanlivost)
- Životní cyklus pěnkav - hledání potravy, pohyb, lov a jídlo, stárnutí, umírání, hledání partnera
- Hnízdění a reprodukce - jednou ročně v určitých měsících
Pozorování a závěr simulace
- V průběhu simulace je možné pozorovat vývoj jednotlivých druhů pěnkav, jednotlivých druhů potravy a další obecně informace. Je možné také průběh simulace ovlivňovat zásahem do počtů nově generovaných zdrojů jídla, což může například simulovat různé přírodní změny a nečekané kritické události.
- Závěr simulace se hodnotí složitěji. Simulace jakožto evoluce nemá přirozený konec a její vývoj je možné pozorovat neomezenou dobu. Konec může nastat jen v případě, že některý z druhů pěnkav díky nepříznivým vlivům prostředí kompletně vyhyne.
Agenti simulace
Pěnkavy
Hlavním pozorovaným agentem simulace jsou pěnkavy. Pěnkavy jsou obecně brány jako jeden typ agentů, který se na 4 druhy dělí pouze pomocí hodnoty klíčového identifikačního atributu. Atributy si můžeme rozdělit do několika skupin. První skupinou jsou dlouhodobé základní atributy, které se v průběhu simulace generují jen jednou, na začátku existence agenta. Druhá skupina jsou životní parametry, které se v průběhu života agenta stále vyvýjí a mění a jejich hodnoty jsou hlavní objektem pozorování. Třetí skupina jsou atributy pomocné, které agent obsahuje jen pro realizací určitých simulačních algoritmů a nejsou pro reálný život agenta či výsledky simulace podstatné a nereprezentují tak žádné reálné hodnoty.
atributy:
- kind - základní atribut - Nabývá hodnoty 1 - 4 a reprezentuje druh, ke kterému agent/pěnkava patří. V každém resortu souostroví se nachází pouze jeden druh pěnkav. Resorty jsou tak pro přehlednost také indexovány čísly odpovídajícímy číslům typu pěnkav na nich žijících.
- gender - základní atribut - Pohlaví jednotlivých pěnkav. Pouze samice přivádí na svět potomky a předávají jim nejvíce ze svých genetických informací (atributů). Naopak pouze samci se účastní fáze námluv a hledají si své životní partnerky.
- pace - základní atribut - Pohyblivost, rychlost, jakou jsou pěnkavy schopné se pohybovat.
- max-age - pomocný atribut - Obsahuje informaci o maximálním možném věku každé pěnkavy. Tento atribut je náhodně generován. Průměrný maximální věk pěnkav je 10 let. Hodnota parametru je uchovávána v týdnech a je generována náhodným poissonovým rozdělením - random-poisson 520.
- just-born - pomocný atribut - Atribut obsahují informaci o stavu právě narozených pěnkav. Jeho základní hodnota je 0 a hned při prvním nastavování agenta (setup a alokace) je tato hodnota nastavována na true. To je mimo jiné jedinná chvíle, kdy je tento atribut používán a díky tomu se vždy nové atributy generují pouze novým agentům. Při stárnutí pěnkav se dále tento atribut nastavuje na hodnotu false, ale ani tak již nemá další využití.
- nested-this-year - pomocný atribut - Jeho hodnota udává, zda se tento agent již letos reprodukoval. Pokud již reprodukce proběhla, atribut má hodnotu true a čeká do dalšího roku(ledna) na opětovné nastavení hodnoty na false. S toutou hodnotou je poté agent opět připraven na reprodukci.
- age - životní atribut - Udává aktuální věk agenta v týdnech. Tento atribut je inkrementován každé kolo právě o jedna nehledě na další okolnosti. Pokud je jeho hodnota větší než hodnota atributu max-age, agent umírá stářím.
- stamina - životní atribut - Životní energie agenta. Stamina je spotřebovávána pohybem a obnovována jídlem. Pokud je tento atribut roven nule, agent není schopen pohybu, lovu ani žádných jiných aktivit a umírá vyčerpáním. Pozorováním hodnot tohoto parametru je možné hodnotit aktuální "zdravotní stav" pěnkav.
- partner - životní atribut - Obsahuje odkaz na jiného agenta opačného pohlaví. Tento parametr je nastavován ve fázi námluv, kdy nezadaní samci hledají samičky svého druhu ve svém okolí. Partner u pěnkav je životní. Každá pěnkava má vždy právě jednoho partnera a nového partnera si pěnkavy hledají pouze ve chvíli, kdy ten starý zemře.
- to-hunt - životní atribut - Pěnkavy si vyhlédnou kořist a tu sledují a snaží se ji sníst či ulovit. Tato proměnná ovlivňuje směr pohybu pěnkav. Může se stát, že pěnkava nebude schopná kořist sníst a tak ji v tu chvíli nechá být a najde si jinou. Stejně tak může být kořist ulovena jinou pěnkavou dříve, než se k ní stihne původní pěnkava dostat. Kořist je pro stravování pěnkav důležitá. Každý druh pěnkav preferuje jiný druh potravy a pokud pěnkava jí svou kořist, v rámci simulace se jedná o trénink a pěnkava si tak vylepšuje své parametry, které k ulovení kořisti potřebovala.
- beak-length - životní atribut - Délka zobáku je klíčový atribut pro předmět simulace. Jeho hodnota ovlivňuje pohyblivost a sílu zobáku. Jelikož je u galapágských pěnkav možné pozorovat minimální vývojové změny již v rámci jednoho roku, mohou si pěnkavy pomocí tréninku (lovem či získáváním svého preferovaného druhu potravy) velmi mírně tento atribut uzpůsobovat. Uzpůsobení je ovlivněno náhodným generováním, nemusí se tedy povést. Hodnota parametru se pohybuje v reálných číslech (13 - 45 mm) měřených u všech čtyř typů galapágských pěnkav.
- beak-height - životní atribut - Výška zobáku (bráno u hlavy) je klíčový atribut pro předmět simulace. Jeho hodnota ovlivňuje pohyblivost a sílu zobáku. Jelikož je u galapágských pěnkav možné pozorovat minimální vývojové změny již v rámci jednoho roku, mohou si pěnkavy pomocí tréninku (lovem či získáváním svého preferovaného druhu potravy) velmi mírně tento atribut uzpůsobovat. Uzpůsobení je ovlivněno náhodným generováním, nemusí se tedy povést. Hodnota parametru se pohybuje v reálných číslech (6 - 25 mm) měřených u všech čtyř typů galapágských pěnkav.
- beak-width - životní atribut - Šířka zobáku (bráno u hlavy) je klíčový atribut pro předmět simulace. Jeho hodnota ovlivňuje pohyblivost a sílu zobáku. Jelikož je u galapágských pěnkav možné pozorovat minimální vývojové změny již v rámci jednoho roku, mohou si pěnkavy pomocí tréninku (lovem či získáváním svého preferovaného druhu potravy) velmi mírně tento atribut uzpůsobovat. Uzpůsobení je ovlivněno náhodným generováním, nemusí se tedy povést. Hodnota parametru se pohybuje v reálných číslech (6 - 20 mm) měřených u všech čtyř typů galapágských pěnkav.
- beak-agility - životní atribut - Pohyblivost zobáku pěnkav je hlavní pozorovaný parametr. Určována je pomocí rovnice x = 100 - (délka + výška + šířka). To odráží fakt, že větší zobák je méně pohyblivý a zároveň je díky této rovnici atribut plně inverzí k atributu sílý zobáku (čím větší zobák, tím silnější). Díky tréninku a úpravě atributů je nemožné, aby součet délky, výšky a šířky přesáhl číslo 100 a tím se hodnota dostala do mínusu. Již při dosažení nereálných rozměrů si pěnkava není schopná zajistit dostatek potravy a umírá vyčerpáním = nerozmnožuje se. Dosažení nereálných rozměrů tak může být považováno za hříčku přírody či genetickou poruchu, která se místy objeví, ale nepřenáší se dál/není dědičná.
- beak-power - životní atribut - Síla zobáku pěnkav je hlavní pozorovaný parametr. Určována je pomocí rovnice x = délka + výška + šířka. To odráží fakt, že větší zobák je silnější a zároveň je díky této rovnici atribut plně inverzí k atributu pohyblivosti zobáku (čím větší zobák, tím méně pohyblivý). Díky tréninku a úpravě atributů je nemožné, aby součet délky, výšky a šířky přesáhl číslo 100 a tím hodnota narušila běh simulace. Již při dosažení nereálných rozměrů si pěnkava není schopná zajistit dostatek potravy a umírá vyčerpáním = nerozmnožuje se. Dosažení nereálných rozměrů tak i v tomto případě může být považováno za hříčku přírody či genetickou poruchu, která se místy objeví, ale nepřenáší se dál/není dědičná.
Procedury
Základní nastavení simulovaného prostředí
Ovladače simulace
Monitory a grafy (ploty)
Uživatelské rozhraní
Definice problému
Postup
Měřené výsledky
Závěr a hodnocení
Možnosti rozšíření modelu
Přílohy a zdrojový kód
File:Darwinovy pěnkavy.nlogo | Zdrojový kód simulace