Darwinovy pěnkavy (NetLogo)

From Simulace.info
Revision as of 00:43, 8 June 2016 by Xbarm96 (talk | contribs) (Komentáře)
Jump to: navigation, search

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í.

Darwinovy pěnkavy.jpg

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í -
  • setup-finches - nastavovací -
  • setup-defaults - nastavovací -
  • birth-food-supply - simulační - birth-seeds birth-nuts birth-f-insects birth-l-insects
  • aging-food-supply - simulační -
  • expire-food-supply - simulační -
  • move-insects - simulační -
  • move-finch - simulační -
  • eat-hunt - simulační -
  • aging-finches - simulační -
  • die-finches - simulační -
  • look-for-partner - simulační -
  • nest-finches - simulační -

Základní nastavení simulovaného prostředí

Uživatelské rozhraní

01 basic.png

Ovladače simulace

Monitory a grafy (ploty)

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

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.

Komentáře

--Xbarm96 (talk) 18:24, 7 June 2016 (CEST)

--Xbarm96 (talk) 01:43, 8 June 2016 (CEST)