Darwinovy pěnkavy (NetLogo)
Obsah této stránky je stále upravován. |
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 Uživatelské rozhraní
- 10 Ovladače simulace
- 11 Monitory a grafy (ploty)
- 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
Finches (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á.
Seeds (semínka)
Zdroj potravy. Hlavní zdroj potravy v prvním resortu ostrovů. Pro příjem tohoto typu potravy je potřeba, aby zobák pěnkav dosahoval pohyblivosti alespoň 25 a síly alespoň 10. Tento typ potravy se běžně nepohybuje. Zároveň není chráněn žádnou pevnou slupkou a pro jeho získání tak není potřeba žádné velké síly. Semínka naopak často bývají zapadlá v menších prostorech a prasklinách, mezi kamínky nebo je potřeba je vyhrabávat ze země, a proto je potřeba k jejich získání úměrná střední hodnota pohyblivosti zobáku.
atributy:
- new - Atribut uchovávající hodnotu true nebo false. Značí, zda je tento druh potravy v simulovaném prostoru nově zrozený a zda mu mají být nastaveny potřebné parametry, nebo zda již existuje delší dobu.
- age - Atribut uchovávající informaci o věku jednotky potravy reprezentované agentem. Základní jednotkou věku je jedno kolo simulace - týden. Pokud je hodnota tohoto atributu vyšší než hodnota atributu max-age, končí jeho životnost a agent zaniká.
- max-age - Pomocný atribut informující o maximální možné životnosti daného agenta. V případě semínek se jedná o hodnotu generovanou náhodným poissonovým rozdělením - random-poisson 200.
Nuts (oříšky)
Zdroj potravy. Hlavní zdroj potravy ve druhém resortu ostrovů. Pro příjem tohoto typu potravy je potřeba, aby zobák pěnkav dosahoval pohyblivosti alespoň 10 a síly alespoň 65. Tento typ potravy se běžně nepohybuje. Je ovšem většinou chráněn velmi pevnou slupkou a pro jeho získání je potřeba poměrně velké síly. Oříšky se naopak povalují téměř všude na zemi a jsou dobře dostupné. Pro jejich získání tak není potřeba žádné výrazné pohyblivosti.
atributy:
- new - Atribut uchovávající hodnotu true nebo false. Značí, zda je tento druh potravy v simulovaném prostoru nově zrozený a zda mu mají být nastaveny potřebné parametry, nebo zda již existuje delší dobu.
- age - Atribut uchovávající informaci o věku jednotky potravy reprezentované agentem. Základní jednotkou věku je jedno kolo simulace - týden. Pokud je hodnota tohoto atributu vyšší než hodnota atributu max-age, končí jeho životnost a agent zaniká.
- max-age - Pomocný atribut informující o maximální možné životnosti daného agenta. V případě semínek se jedná o hodnotu generovanou náhodným poissonovým rozdělením - random-poisson 140.
Flying insect (malý létavý hmyz)
Zdroj potravy. Hlavní zdroj potravy ve třetím resortu ostrovů. Pro příjem tohoto typu potravy je potřeba, aby zobák pěnkav dosahoval pohyblivosti alespoň 60 a síly alespoň 10. Tento typ potravy se běžně pohybuje, ve vzduchu velmi dobře manévruje. Podle velikosti může jeho rychlost pohybu dosahovat téměř i rychlosti pohybu poamlejších pěnkav. Díky svým drobným rozměrům je létavý hmyz velmi křehký a k jeho požití není potřeba žádné velké síly zobáku. Naopak díky pohyblivosti a manévrování je k jeho získání potřeba poměrně vysoké hodnoty pohyblivosti zobáku.
atributy:
- new - Atribut uchovávající hodnotu true nebo false. Značí, zda je tento druh potravy v simulovaném prostoru nově zrozený a zda mu mají být nastaveny potřebné parametry, nebo zda již existuje delší dobu.
- age - Atribut uchovávající informaci o věku jednotky potravy reprezentované agentem. Základní jednotkou věku je jedno kolo simulace - týden. Pokud je hodnota tohoto atributu vyšší než hodnota atributu max-age, končí jeho životnost a agent zaniká.
- max-age - Pomocný atribut informující o maximální možné životnosti daného agenta. V případě semínek se jedná o hodnotu generovanou náhodným poissonovým rozdělením - random-poisson 70.
Land insect (větší pozemní hmyz)
Zdroj potravy. Hlavní zdroj potravy ve čtvrtém resortu ostrovů. Pro příjem tohoto typu potravy je potřeba, aby zobák pěnkav dosahoval pohyblivosti alespoň 35 a síly alespoň 45. Tento typ potravy se běžně pohybuje po zemi. Jeho rychlost nikdy nedosahuje rychlosti žádných pěnkav, je vždy pomalejší. Pozemní hmyz je o trochu větší, než létavý a většinou má navíc i další ochranné prvky, jako například krovky. Proto je k jeho ulovaní potřeba vyšší síly. Stejně tak jeho efektivní pohyb po zemi a tendence schovávat se před lovcem klade nároky i na vyšší pohyblivost zobáku pěnkav.
atributy:
- new - Atribut uchovávající hodnotu true nebo false. Značí, zda je tento druh potravy v simulovaném prostoru nově zrozený a zda mu mají být nastaveny potřebné parametry, nebo zda již existuje delší dobu.
- age - Atribut uchovávající informaci o věku jednotky potravy reprezentované agentem. Základní jednotkou věku je jedno kolo simulace - týden. Pokud je hodnota tohoto atributu vyšší než hodnota atributu max-age, končí jeho životnost a agent zaniká.
- max-age - Pomocný atribut informující o maximální možné životnosti daného agenta. V případě semínek se jedná o hodnotu generovanou náhodným poissonovým rozdělením - random-poisson 60.
Procedury
Jednotlivé procedury jsou seřazeny v pořadí, v jakém jsou prováděny během simulace. Procedury můžeme logicky rozdělit na dva typy. Nastavovací a simulační. Zatímco nastavovací procedury probýhají pouze jednou na začástku simulace, simulační se opakují v každém kole simulace.
- setup-islands - nastavovací - Základní procedura, která nastavuje barvu políček prostoru na hnědou a vytvoří modré předěly mezi resorty. Totu barevnost následně využívají pěnkavy při pohybu, jelikož nejsou schopny cestovat mezi resorty.
- setup-finches - nastavovací - Proceduraje volána s parametry kind a amount. Defaultně je amount nastaven na 20. Tím se vytvoří 20 pěnkav s náhodně generovanými parametry. Jejich umístěný závisí na parametru kind, který představuje druh pěnkav a zároven resort, kde budou pěnkavy "žít". Tato procedura se během nastavování simulace volá celkem čtyřikrát, pro každý druh pěnkav jednou. Vznikne nám tedy na úvod 80 agentů/pěnkav, dvacet od každého druhu a v každém resortu.
- setup-defaults - nastavovací - Jednoduchá procedura nastavující defaultní hodnoty posuvníků a ovládacích prvků simulace. Nastavuje také tvary agentů.
- birth-food-supply - simulační - Pro přehlednost kódu tato procedura obsahuje pouze 4 další "podprocedury" (birth-seeds, birth-nuts, birth-f-insects, birth-l-insects) a nemá žádnou samostatnou funkci. V uvedených "podprocedurách" se následně vždy generuje určitý počet zásob/agentů pro každý resort.
- aging-food-supply - simulační - Stárnutí všech agentů představujících potravu. Všechny zdroje jsou postaršeny o jeden týden.
- expire-food-supply - simulační - Tato procedura kontroluje, zda nějaký z agentů potravy (seeds, nuts, f-insects, l-insects) nepřekročil svou vlastní dobu epirace a nemá být odstraněn. Případně zdroj/agenta ihned odstraní. Simulační prostor se tak nezahltí nevyužitou potravou.
- move-insects - simulační - Dva druhy agentů potravy se mohou také pohybovat (f-insects, l-insects). Jejich pohyb je prováděn právě v rámci této procedury, která jim generuje naprosto náhodný směr a pohyb o náhodnou vzdálenost (v intervalu závislém na rodu agenta) v daném směru.
- move-finch - simulační - Procedura pohybu pěnkav. Tato procedura kontroluje všechny pěnkavy, zda jejich stamina je vyšší než 0. Pokud není, pěnkava umírá. Pokud je vyšší, pěnkava se pohne ve směru své kořisti (to-hunt). Pokud pěnkava nemá kořist, pokusí se ve svém dohledu nějakou najít a až následně se pohnout v jejím směru. Pokud se pěnkavě nepodaří ádnou koříst najít, pohne se zcela náhodně (pěnkavy hledají a cestují, nechtějí zůstat na jednom neúrodném místě). Pohyb stojí pěnkavy právě 1 staminu.
- eat-hunt - simulační - Pokud je pěnkava v operační vzdálenosti, loví svou koříst (získává potravu). Tato procedura kontroluje dostupnost kořisti. Pokud je kořist dostupná, pěnkava se ji pokusí ulovit/získat (a tím si vylepšit atributy zobáku) a tím si doplnit staminu. Pokud je kořist stále daleko či se jí nepodaří ulovit/získat (například příliš tvrdá skořápka ořechu), ohlédne se pěnkava po svém operačním okolí a zkusí ulovit/získat jiný, náhodný zdroj potravy (jedná už se o zoufalý akt a pěnkava z něho nemá žádný další užitek, kromě doplnění staminy). Jelikož trávicí ústrojí pěnkav se přizpůsobuje jejich potravě, získání a spotřebování agenta potravy pěnkavám doplňuje vždy právě 1 bod staminy.
- aging-finches - simulační - Všechny pěnkavy jsou postaršeny o 1 týden. Během této procedury se první týden v roce kontroluje a nuluje hodnota parametru nested-this-year.
- die-finches - simulační - Procedura kontroluje všechny pěnkavy a ty, jejichž age převyšuje max-age umírají stářím. U této procedury je důležité vynulování parametrů partner, jelikož přeživší pěnkavy si mohou najít nového partnera.
- look-for-partner - simulační - Procedura, během níž si samci pěnkav hledají samičky. Během této procedury se nastavuje parametr partner, který je neměnný právě do konce života jednoho z partnerů.
- nest-finches - simulační - Hlavní procedura evolučního vývoje pěnkav. Během této fáze pěnkavy hnízdí a pěnkavy, které mají partnera, přivádí na svět své potomky. Pěnkavy běžně mají ročně max 4 mláďata. Svým mláďatům poté předají část svých genetických informací (atributy zobáku). Tyto informace jsou ještě ovlivněny globální proměnnou evolution-tenderness. Citlivost evoluce udává rychlost, s jakou se evoluční změny projevují z generace na generaci pěnkav.
Základní nastavení simulovaného prostředí
Defaultní nastavení simulace se provádí vždy automaticky v proceduře setup-defaults po stisknutí tlačítka setup. Ovladače (posuvníky) sloužili převážně pro odladění citlivosti celé simulace a jejich defaultní hodnota by se měla měnit pouze s jasným záměrem pozorovýní jistých změn. Nastavují se totiž hodnoty (maximální hodnoty intervalu) pro generování nových zdrojů (v každém resortu se pravidelně generuje jeden dominantní a tři podpůrné druhy potravy) a evoluční citlivost.
Uživatelské rozhraní
Ovladače simulace
Na obrázku je vidět ovládací panel simulace. Vzhledem k cíly simulace (viz výše) tento panel obsahuje malé množství ovládacích prvků.
- tlačítko setup - Základní ovládací prvek. Simulace by měla začít stiskem tohoto tlačítka. stiskem se připraví základní rozložení simulačního prostoru (procedura setup-islands), iniciují se první agenti simulace (procedura setup-finches) a nastaví se defaultní hodnoty ostatních ovládacích prvků (procedura setup-defaults).
- talčítko go - Tlačítko s funkcí spínače. Po jeho stisknutí se spustí jeho efekt, který se opakuje ve smyčce dokud není tlačítko znovu stisknuto. Efekt tlačítka je 1 cyklus simulace (1 týden)(volány jsou postupně všechny procedury, které neobsahují v názvu slovo "setup").
- posuvník dominant-food-supply - Hodnota posuvníku je v modelu simulace uchovávána jako globální proměnná. Určuje horní mez intervalu pro počet nově generovaných agentů dominantního zdroje potravy pro každý resort.
- posuvník supporting-food-supply - Hodnota posuvníku je v modelu simulace uchovávána jako globální proměnná. Určuje horní mez intervalu pro počet nově generovaných agentů tří podpůrných zdrojů potravy pro každý resort.
- posuvník evolution-tenderness - Hodnota posuvníku je v modelu simulace uchovávána jako globální proměnná. Určuje hodnotu citlivosti evoluce, která je využívána v proceduře nest-finches při předávání genetických informací z rodičů na potomky.
Monitory a grafy (ploty)
- Základní sada monitorů obsahující obecné informace (počet uplynulých let, počet úmrtí, úmrtnost pěnkav za rok, počet pěnkav, počet samců a počet samic).
- Plot a několik měnších monitorů informujících o základním rozložení jednotlivých druhů pěnkav. Plot zobrazuje kontinuální graf s počty jednotlivých druhů pěnkav, monitory následně ukazují přesné číslo pro počet pěnkav, počet samic a počet samců pro každý druh pěnkav zvlášť. (formát popisku monitoru je následující: druh - pohlaví)
- Další sekce obsahuje dva ploty a několik menších monitorů, které přinášejí podrobné informace o stavu potravy v celém simulačním prostředí. První plot zobrazuje kontinuální graf jednotlivých druhů potravy, monitory vedle něho pak informují o přesných aktuálních počtech. V pravé části jsou monitory, které přinášejí informace o využití všech vygenerovaných druhů potravy. Hhodnotí se zde zejména poměr využité a prošlé potravy, což přehledně zobrazuje i plot pomocí kontinuálního grafu.
- Dalším oddíl se zabývá ukazatelem stamina, jakožto obrazu obecného zdraví pěnkav. Plot zobrazuje kontinuální graf průměrné hodnoty staminy, monitory pak zobrazují aktuální přesnou minimální, průměrnou a maximální hodnotu staminy.
- Podélný pás u spodu uživatelského rozhraní přináší detailní informace o pozorovaných atributech jednotlivých druhů pěnkav. Dá se rozdělit na 4 bloky, přičemž každý blok obsahuje informace o jednom druhu pěnkav. Nachází se zde monitory s aktulními minimálními, průměrnými a maximálními hodnotami pohyblivosti a síly zobáků pěnkav v rámci celého druhu. Data jsou poté i reprezentována průběžně pomocí kontinuálního grafu na plotu.
- Levá část uživatelského rozhraní je vyhrazena pro dva ploty, které obsahují pro porovnání kontinuální grafy všech druhů pěnkav. Ploty jsou zaměřeny na pohyblivost a sílu zobáků jednotlivých druhů pěnkav.
- Grafický průběh simulačního modelu a chování agentů. Plátno rozdělené na 4 resorty očíslované pomocí čísel druhů pěnkav, které se na nich nachází.
Definice problému
Hlavní problémem simulace je prokázání teorie přirozené evoluce galapágských pěnkav na základě jejich snahy přizpůsobit se svému postředí. Nejobtížnější je najít způsob, jakým by se evoluční vývoj dal monitorovat a pozorovat. Společně s tím je velmi obtížné připravit prostředí, které by bylo dostatečně proměnlivé a nutilo pěnkavy/agenty se dlouhodobě přizpůsobovat bez razantního jednorázového vyhynutí.
Postup
Prostředí, ve kterém pěnkavy žijí je velmi proměnlivé a to ovlivňuje zejména jejich potravu. Ta se liší resort od resortu a pěnkavy musí být dostatečně schopné se dané potravě přizpůsobit - konkrétně jejich trávicí ústrojí by mělo být schopné příjmu daných typů potravy. Simulace tedy pracuje právě s evolucí parametrů zobáku. Pro potřeby této simulace a určité zjednodušení problému byly zanedbány aspekty zobáku, jako jsou přesný tvar, ergonometrie, zakřivení, ostrost apod. Naopak jsem se detailně zaměřil na sílu a pohyblivost, jakožto dva přímo neúměrné parametry zobáku. Ty přímo vyplývají z rozměrů zobáku, které byly pro potřeby této simulace rovněž dostatečně zjednodušeny na délku, výšku (u hlavy) a šířku (u hlavy). Reálné rozměry vycházejí ze studie "Evolution of Darwin's Finches Caused by a Rare Climatic Event" , auth. B. Rosemary Grant a Peter R. Grant. Transformace rozměrů do pohyblivosti a síly poté probýhá pomocí jednoduchých rovnic (pohyblivost: x = 100 - (délka + výška + šířka); síla: x = délka + výška + šířka). Vzhledem k tomu, že oba parametry jsou dokonale přímo neúměrné a pro příjem potravy je vždy zapotřebí kombinace alespoň minimálních hodnot obou dvou, nemůže dojít ke vzniku "super pěnkavy", která by si vybudovala oba parametry na maximální hodnoty a byla přírodou "neohrozitelná".
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
Zdroje
Všechny podklady a detailní informace byly čerpány z práce "Evolution of Darwin's Finches Caused by a Rare Climatic Event" , auth. B. Rosemary Grant a Peter R. Grant.