RybníkPrvoků

From Simulace.info
Revision as of 17:55, 11 June 2017 by FrantišekN (talk | contribs)
Jump to: navigation, search

Zadání

Název simulace: Louže prvoků

Předmět: 4IT495 Simulace systémů (LS 2016/2017)

Autor: Bc. František Nushart, xnusf00

Typ modelu: Multiagentní

Modelovací nástroj: Netlogo 6.0


Louzeprvoku.png


Definice problému

Předmětem je simulace prostředí tvořeného navzájem si soupeřícími prvoky. Na zacyklené plátno je při inicializaci simulace rozmístěno dané množství prvoků s rozdílnými počátečními vlohami ve vlastnostech jako je rychlost, velikost (ta určuje i sílu), senzorický dosah. Prvoci jsou v neustálém náhodném pohybu, který korigují v reakci na své sousedy v senzorickém dosahu. Při střetu dvou prvoků silnější vstřebá slabšího. Pozřený prvok zaniká a vítězi jsou upraveny vlastnosti (nabude na velikosti a je pomalejší). Prvoci, kteří po určitý čas nemají potravu také zanikají (u větších a silnějších je tento čas kratší). Zaměřuji se na výsledky prvoků vzhledem k nastavení počátečních vloh a v rámci zjednodušení neuvažuji další prvky prostředí a systém rozmnožování.

Cílem simulace je analyzovat, jaké počáteční vlohy jsou pro prvoky nejvýhodnější a prozkoumat dynamiku systému a vývoje vlastností v závislosti na nastavení vstupních parametrů.

Metoda

Simulace je realizována v prostředí Netlogo z důvodu kladeného důrazu na agentní přístup. Vzhledem k charakteru zkoumaného problému je poměrně obtížné dostatečně se přiblížit metrikám reálného prostředí. Pro zajištění odpovídajícího kontaktu s realitou jsem kromě přípravného, vstupního výzkumu konzultoval nastavení, interakce zkoumaných prvoků a podobu modelu se středoškolským učitelem specializujícím se na obor biologie.

Model

V tomto oddílu jsou popsány jednotlivé části modelu, jeho inicializace a počáteční nastavení s diskusí.


Agenty

V modelu jsou tři typy agentů představující:


  • trepku (Paramecium)

  • vpíjenku (Didinium)
  • amébu (Amoeba)


Každý z těchto tří druhů má následující proměnné, které určují počáteční vlastnosti, druhové populace.

  • perception - Vyjadřuje senzorický dosah pro detekci kořisti a lovce. Obor hodnot: < 1.0 ; 5.0 >
  • magnitude - Vyjadřuje velikost a současně sílu jedince. Obor hodnot: < 1.0 ; 5.0 >
  • speed - Vyjadřuje rychlost jedince. Obor hodnot: < 1.0 ; 5.0 >
  • energy - Vyjadřuje zásobu surovin potřebných pro život < 0 ; 200 >


Incializace

Základní nastavení simulace před jejím spuštěním:

Je zadáno množství prvoků pro každý druh (Paramecium, Didinium, Amoeba).
Obor hodnot: < 0 ; 50 >

Pro každý druh jsou dále zadány výchozí hodnoty:

  • senzorický dosah (perception)
  • velikost (magnitude)
  • rychlost (speed)
  • energie (energy)


Doporučené výchozí nastavení těchto parametrů by mělo pro vhodnou reprezentaci reálných poměrů mezi třemi zkoumanými druhy prvoků respektovat, že:

  • Trepka a vpíjenka jsou rychlejší, než amoeba.
  • Trepka a vpíjenka mají lepší senzorický dosah, než amoeba.
  • Amoeba je větší, než trepka a vpíjenka.

Vygenerovaní jedinci mají zadané parametry individuálně upraveny pomocí normálního rozdělení se směrodatnou odchylkou 0.3 pro reprezentaci vnitrodruhové diverzity.

Jedinci jsou následně náhodně rozmístěni na zacyklené plátno představující naší zkoumanou louži.

Nastavené vstupní parametry:

Spuštění

Spuštěním odstartuje simulaci systému, která probíhá po jednotlivých krocích, kde agenty vždy v každém kroku vyhodnotí své okolí v senzorickém dosahu a na základě výsledku upraví směr pohybu, nebo zvolí náhodný. Následně agenty vykonají jeden přískok v závislosti na jejich rychlosti. Dále během kroku simulace agenty vyhodnocují interakce s ostatními agenty a organickými zbytky nacházejícími se na jejich poli. S pohybem je spojen úbytek energie, který se rovněž v každém kroku upravuje a následně probíhá kontrola, zda je agent naživu. V neposlední řadě se v každém kroku náhodně objevují živiny z prostředí představující rostoucí řasy.

Použité procedury

decrease-energy (všechny druhy) Úbytek energie v každém kroku v závislosti na velikosti agenta.

drop Na náhodně zvoleném poli přibydou živiny a pole se zbarví do zelena.

collect (všechny druhy) Pokud pole, na kterém se agent nachází, nemá nulovou hodnotu živin, agent vstřebá nalezené živiny a převede je na svojí energii. Barevné označení přítomnosti živin je odstraněno přebarvením pole na černo. U agenta současně dojde k poklesu rychlosti a jeho velikost je upravena v závislosti na množství vstřebaných živin.

feed (améby a vpíjenky) Pokud se agent nachází na poli, kde je současně nějaká trepka, jednu z přítomných trepek si vybere a usmrtí ji za uvolnění živin odpovídajícím její velikosti. To doprovází zbarvení pole na bílo (predátor však živiny pomocí collect vstřebá a pole přebarví zpět na černo). Na plátnos se dále pro přehlednost zobrazí “hrobeček” značící velikost usmrceného agenta.

be-eaten (améby a vpíjenky)
Pokud se v dané vzdálenosti útočného dosahu (zvoleno jako 1) nachází další ameba, nebo vpíjenka, jejíž velikost je větší, než velikost agenta, agent uvolní živiny dle své velikosti, přebarví pole na zeleno a zemře. Na plátno se opět pro přehlednost zobrazí “hrobeček” značící velikost usmrceného agenta.

check-dead (všechny druhy) Slouží k vyhodnocení, zda má agent nenulovou energii a může tak zůstat naživu. V případě energie menší, nebo rovné nule agent umírá, přebarví pole na červeno, uvolní živiny v množství odpovídajícímu jeho velikosti a zobrazí “hrobeček”.

wander Následující procedury wander určují, jakým způsobem se každý druh pohybuje a jakým způsobem reaguje na dané senzorické vjemy. V úvodu je naznačena detekce překážek, které jsem se simulaci v rámci přehlednosti později rozhodl nevěnovat.

pmc-wander Trepky v první řadě vyhodnotí, zda v jejich senzorickém dosahu je nějaká vpíjenka, nebo améba a pokud ano, tak prchá. Otočí se o 180° od té nejblyžší a za odečtení energie udělá přískok. Akce je pro přehlednost doprovázena přechodným zbarvením do modra. Pokud nehrozí nebezpečí, trepka vyhodnocuje, zda v jejím senzorickém dosahu jsou nějaké volné živiny. Prioritizuje je podle zbarvení pole v pořadí červená > bílá > zelená. Pokud senzory jedince nezachytily ani jednu z podmínek výše, prvok setrvává v náhodném vrtivém pohybu (náhodně upraví aktuální nasměrování a udělá přískok).

dids-wander Vpíjenky jsou na rozdíl od trepek agesivnější, pokud se v jejich senzorickém dosahu vpíjenky nachází další vpíjenky, nebo trepky a žádná není větší, vpíjenka se nasměruje na tu nejblyžší a provede přískok za úbytku energie.