Difference between revisions of "Stádo pakoňů"

From Simulace.info
Jump to: navigation, search
(Agenti)
Line 13: Line 13:
 
Simulace byla provedena čtyřikrát za různých počátečních podmínek zdrojů: 25 %, 50 %, 75 % a 100 % dostupnosti zdrojů.  
 
Simulace byla provedena čtyřikrát za různých počátečních podmínek zdrojů: 25 %, 50 %, 75 % a 100 % dostupnosti zdrojů.  
  
=== Model ===
+
=Model=
 +
== Agenti ==
 +
=== Pakůň ===
  
==== Agenti ====
+
V simulaci je chování pakoňů definováno následovně:
  
===== Pakůň =====
+
'''Krmení''': Pakoně vyhledávají trsy trávy a konzumují je, čímž se zvyšuje jejich proměnná "hlad". Jakmile zkonzumují trs trávy, změní se jeho barva na šedou, což znamená, že byl sněden.
  
====== Chování v simulaci ======
+
'''Pití''': Když jejich proměnná "žízeň" klesne pod určitou mez, hledají políčka s vodou, aby se napili, a zvyšují si tak úroveň "žízně".
  
V simulaci je chování pakoňů definováno následovně:
+
'''Únik''': Aby se vyhnuli ulovení lvem, utíkají před lvy za předpokladu, že se dostanou příliž blízko a jejich stav je "lovení". Používají flocking algoritmus, aby se vyhnuli kolizím a sladili svůj směr s blízkými pakoni.
  
'''Krmení''': Pakoně vyhledávají trsy trávy a konzumují je, čímž se zvyšuje jejich proměnná "hlad". Jakmile zkonzumují trs trávy, změní se jeho barva na šedou, což znamená, že byl sněden.
 
'''Pití''': Když jejich proměnná "žízeň" klesne pod určitou mez, hledají políčka s vodou, aby se napili, a zvyšují si tak úroveň "žízně".
 
'''Běhání''': Aby se vyhnuli ulovení lvem, utíkají před lvy za předpokladu, že se dostanou příliž blízko a jejich stav je "lovení". Používají flocking algoritmus, aby se vyhnuli kolizím a sladili svůj směr s blízkými pakoni.
 
 
'''Žití''': Pakoně mohou zemřít hladem, žízní nebo na následky lovu lvů. Když pakoně zemřou, stanou se z nich "mrtvoly", které mohou lvi sežrat. Každý pakůň má určitou váhu, která udává i váhu mrtvoly. Po sežrání (vyčerpání váhy) mrtvoly mrtvola zmizí.
 
'''Žití''': Pakoně mohou zemřít hladem, žízní nebo na následky lovu lvů. Když pakoně zemřou, stanou se z nich "mrtvoly", které mohou lvi sežrat. Každý pakůň má určitou váhu, která udává i váhu mrtvoly. Po sežrání (vyčerpání váhy) mrtvoly mrtvola zmizí.
 +
 
'''Reprodukce''': Samice pakoňů mohou v období páření zabřeznout a porodit mláďata. Mláďata následují svou matku, dokud nedosáhnou určitého věku, nespotřebovávají po tuto dobu zdroje (předpoklad, že jsou kojeni).
 
'''Reprodukce''': Samice pakoňů mohou v období páření zabřeznout a porodit mláďata. Mláďata následují svou matku, dokud nedosáhnou určitého věku, nespotřebovávají po tuto dobu zdroje (předpoklad, že jsou kojeni).
  
### Lvi
+
=== Lev ===
 
 
#### Chování v simulaci
 
  
 
V simulaci je chování lvů definováno následovně:
 
V simulaci je chování lvů definováno následovně:
  
 
'''Lov''': Lvi loví pakoně pro potravu. Mohou se zaměřit buď na živé pakoně, nebo primárně na jejich mrtvoly, přičemž při úspěšném lovu se jim zvyšuje proměnná "hlad".
 
'''Lov''': Lvi loví pakoně pro potravu. Mohou se zaměřit buď na živé pakoně, nebo primárně na jejich mrtvoly, přičemž při úspěšném lovu se jim zvyšuje proměnná "hlad".
 +
 
'''Pití''': Když proměnná "žízeň" klesne pod určitou hranici, lvi hledají vodní nádrže, aby se napili, a zvyšují si tak úroveň "žízně".
 
'''Pití''': Když proměnná "žízeň" klesne pod určitou hranici, lvi hledají vodní nádrže, aby se napili, a zvyšují si tak úroveň "žízně".
 +
 
'''Odpočinek''': Lvi mají stav odpočinku, během něhož se odeberou do stínu pod strom.
 
'''Odpočinek''': Lvi mají stav odpočinku, během něhož se odeberou do stínu pod strom.
 +
 
'''Žití''': Na rozdíl od pakoňů lvi v simulaci umírají pouze hladem nebo žízní, protože jsou vrcholovými predátory.
 
'''Žití''': Na rozdíl od pakoňů lvi v simulaci umírají pouze hladem nebo žízní, protože jsou vrcholovými predátory.
 
    
 
    
 
U obou agentů, pakoňů i lvů, se v pravidelných intervalech (každý "tick" simulace) aktualizuje jejich výdrž, hlad a žízeň. Rovněž řídí stavy svého chování na základě různých podnětů z prostředí a vnitřních proměnných, jako je hlad a žízeň.
 
U obou agentů, pakoňů i lvů, se v pravidelných intervalech (každý "tick" simulace) aktualizuje jejich výdrž, hlad a žízeň. Rovněž řídí stavy svého chování na základě různých podnětů z prostředí a vnitřních proměnných, jako je hlad a žízeň.
  
=== Výsledky ===
+
Data pro vytvoření agentů byla sebrána z reálných dat, jako například doba, po které se mládě osamostatní, trvání březosti etc. Hodnoty jako je bazální metabolický výdej nebo množství spotřebované potravy je možné do modelu dosadit, ovšem jelikož je simulace prováděná pouze pro několik dní (z důvodu omezeného výkonu NetLogo) nic moc by se v těchto dnech nedělo jelikož například lvy loví pouze párkrát v týdnu.
 +
 
 +
== Prostředí ==
 +
 
 +
=== Prostředí simulace ===
 +
 
 +
'''Generování heat mapy'''
 +
Vzhledem k tomu, že program NetLogo není schopen generovat Perlinův šumu, musel být použí externí generátor Perlinova šumu. Perlinův šum byl použit k vytvoření 2D heat mapy, která představuje rozložení vody a trávy v prostředí. Barvy na mapě se pohybují od bílé po černou, přičemž černé oblasti označují vodu a různé odstíny šedé trávu, přičemž světlejší odstíny označují hustší trávu.
 +
 
 +
[[File:Příklad.jpg]]
 +
 
 +
'''
 +
Převod na CSV'''
 +
Vygenerovaná Perlinova mapa šumu mapa byla poté převedena do souboru CSV, kde každý sloupec představuje hodnotu pixelu. To umožnilo importovat 2D mapu do programu NetLogo jako datovou matici. Zatímco program NetLogo podporuje import obrázků pro nastavení barev políček, byla zde nutná flexibilitaa, kterou nabízí soubor CSV, aby bylo možné hodnoty ve stupních šedi použít více kontrolovaně a určit tak rozložení vody a trávy.
 +
 
 +
 
 +
'''Vytvoření prostředí v aplikaci NetLogo'''
 +
Po importu souboru CSV ve stupních šedi do programu NetLogo bylo vytvořeno simulační prostředí. Kód interpretuje hodnoty stupňů šedi ze souboru CSV a pomocí nich diktuje přítomnost vody a trávy. Nižší hodnoty představují vodní plochy, zatímco zbývající plocha je pokryta trávou s různou hustotou na základě hodnot stupňů šedi.
 +
 
 +
[[File:Příklad.jpg]]
 +
 
 +
'''Entity zvířat'''
 +
Prostředí je osídleno entitami pakoňů a lvů, z nichž každá je vizuálně rozlišitelná podle příslušné barvy.
 +
*Lvy - bílá šipka
 +
*Pakůň samec - modrá šipka
 +
*Pakůň samice - červená šipka
 +
*Pakůň mládě - žlutá šipka
 +
*Pakůň mrtvola - červený křížek
 +
 
 +
[[File:Příklad.jpg]]
 +
 
 +
'''Dynamické prostředí'''
 +
Prostředí se v průběhu času vyvíjí a napodobuje tak skutečnou dynamiku savany. Hladina vody se mění, což demonstruje přírodní jevy, jako je vypařování nebo doplňování vody deštěm a také především pití zvířat. Podobně dochází ke konzumaci trávy a její obnově deštěm.
  
Byly shromážděny údaje o počtu pakoňů průběhu času, jejich průměrném zdraví a četnosti lovů lvů.  
+
[[File:Příklad.jpg]]
 +
 
 +
= Výsledky =
 +
 
 +
Byly shromážděny údaje o počtu pakoňů v průběhu času, jejich průměrném zdraví a četnosti lovů lvů.  
  
 
Výsledky simulace ukázaly minimální rozdíly mezi čtyřmi podmínkami zdrojů, s výjimkou podmínky 25 %, kdy pakoně nakonec zemřeli hlady.  
 
Výsledky simulace ukázaly minimální rozdíly mezi čtyřmi podmínkami zdrojů, s výjimkou podmínky 25 %, kdy pakoně nakonec zemřeli hlady.  
  
=== Závěr ===
+
= Nedostatky a prstor pro budoucí vylepšení =
 +
 
 +
Současná implementace ekosystému v programu NetLogo úspěšně simulovala řadu klíčových ekologických interakcí. Stejně jako všechny modely však není bez omezení a potenciálních oblastí pro zlepšení. Níže je popsáno několik nedostatků a návrhů na vylepšení:
 +
 
 +
==== Kompromis mezi měřítkem a realismem====
 +
 
 +
Nedostatek efektivních paralelních výpočetních schopností NetLogo a podpora výpočtů na grafických procesorech (CUDA) značně omezuje měřítko simulace. To nás nutí volit mezi velkými, realističtějšími stády a rychlejšími simulacemi v menším měřítku. V reálných scénářích se rozsáhlá stáda pohybují po rozlehlých planinách, což je náročné věrně zobrazit v simulaci bez značných výpočetních prostředků a času. Budoucí vylepšení by mohlo zahrnovat převedení modelu na platformu, která lépe podporuje paralelní výpočty nebo využívá GPU akceleraci, což by umožnilo provádět simulace ve větším měřítku a přesněji.
 +
 
 +
==== Zjednodušená navigace (pathfinding) ====
 +
V současné době jsou zvířata v simulaci schopna navigovat skrze vodu, což sice nereprezentuje skutečné chování, ale je to praktický kompromis. Implementace algoritmu pro hledání cesty, který by tomuto chování zabránil, je teoreticky možná, ale vzhledem k výpočetním omezením NetLogo by taková implementace byla pravděpodobně neúměrně pomalá. Budoucí iterace modelu by mohly zahrnovat sofistikovanější navigační chování, pokud je lze efektivně implementovat.
 +
 
 +
==== Nedostatečně využitá mechanika životního cyklu pakoňů ====  
 +
Ačkoli jsou v modelu implementovány aspekty jako rozmnožování, stárnutí, smrt nebo déšť (doplňování zdrojů) jsou často nedostatečně využity kvůli zvolenému kompromisu mezi velikostí stáda a dobou trvání simulace. Toto nedostatečné využití má za následek nevyužití možnosti studovat dlouhodobou populační dynamiku a ekologické procesy. Budoucí výzkum by se mohl zaměřit na implementaci účinných způsobů simulace těchto prvků v delším časovém horizontu, případně prozkoumat techniky pro urychlení životního cyklu v rámci modelu.
 +
 
 +
= Závěr =
  
 
Výsledky simulace naznačují, že dostupnost zdrojů má přímý vliv na přežití stád pakoňů. Jakmile se dostupnost zdrojů sníží na 25 %, hrozí populaci pakoňů vyhynutí v důsledku hladovění. Co se četnosti lovu lvy týče je tato hodota nezměněna v závislosti na množství zdrojů.  
 
Výsledky simulace naznačují, že dostupnost zdrojů má přímý vliv na přežití stád pakoňů. Jakmile se dostupnost zdrojů sníží na 25 %, hrozí populaci pakoňů vyhynutí v důsledku hladovění. Co se četnosti lovu lvy týče je tato hodota nezměněna v závislosti na množství zdrojů.  
  
=== Kód ===
+
= Kód =
  
 
(Zde uveďte nastavovací část kódu. Nezapomeňte, že skutečný kód bude třeba přiložit jako doplňkový soubor v rámci vašeho úkolu).
 
(Zde uveďte nastavovací část kódu. Nezapomeňte, že skutečný kód bude třeba přiložit jako doplňkový soubor v rámci vašeho úkolu).

Revision as of 22:43, 12 June 2023

Stádo pakoňů

Křehká rovnováha života na savaně závisí na složitých ekologických vztazích, kde mohou mít sebemenší změny podmínek vlnivý dopad na populace zvířat, které ji obývají. Klíčovým prvkem v této složité síti života jsou pakoně, ikonický druh obývající tyto rozlehlé pastviny, které jsou významně ovlivňovány výkyvy teplot a srážek. Tato simulace se zabývá dynamickou souhrou mezi pakoni, jejich hlavním predátorem - lvem - a rozmarností prostředí a zaměřuje se na to, jak dostupnost zdrojů ovlivňuje jejich přežití.

Definice problému

Cílem této práce je simulovat chování stád pakoňů v různých podmínkách prostředí, zejména pokud jde o dostupnost vody a potravy. Cílem simulace je pochopit vliv faktorů prostředí na přežití stád pakoňů v přítomnosti jejich přirozených predátorů, lvů.

Metoda

Simulace byla provedena v rámci prostředí NetLogo. Byly modelovány interakce a chování pakoňů a lvů v prostředí savany. Pro simulaci byly zahrnuty parametry, jako je věk, zdraví, rychlost, vytrvalost nebo hlad a žízeň.

Simulace byla provedena čtyřikrát za různých počátečních podmínek zdrojů: 25 %, 50 %, 75 % a 100 % dostupnosti zdrojů.

Model

Agenti

Pakůň

V simulaci je chování pakoňů definováno následovně:

Krmení: Pakoně vyhledávají trsy trávy a konzumují je, čímž se zvyšuje jejich proměnná "hlad". Jakmile zkonzumují trs trávy, změní se jeho barva na šedou, což znamená, že byl sněden.

Pití: Když jejich proměnná "žízeň" klesne pod určitou mez, hledají políčka s vodou, aby se napili, a zvyšují si tak úroveň "žízně".

Únik: Aby se vyhnuli ulovení lvem, utíkají před lvy za předpokladu, že se dostanou příliž blízko a jejich stav je "lovení". Používají flocking algoritmus, aby se vyhnuli kolizím a sladili svůj směr s blízkými pakoni.

Žití: Pakoně mohou zemřít hladem, žízní nebo na následky lovu lvů. Když pakoně zemřou, stanou se z nich "mrtvoly", které mohou lvi sežrat. Každý pakůň má určitou váhu, která udává i váhu mrtvoly. Po sežrání (vyčerpání váhy) mrtvoly mrtvola zmizí.

Reprodukce: Samice pakoňů mohou v období páření zabřeznout a porodit mláďata. Mláďata následují svou matku, dokud nedosáhnou určitého věku, nespotřebovávají po tuto dobu zdroje (předpoklad, že jsou kojeni).

Lev

V simulaci je chování lvů definováno následovně:

Lov: Lvi loví pakoně pro potravu. Mohou se zaměřit buď na živé pakoně, nebo primárně na jejich mrtvoly, přičemž při úspěšném lovu se jim zvyšuje proměnná "hlad".

Pití: Když proměnná "žízeň" klesne pod určitou hranici, lvi hledají vodní nádrže, aby se napili, a zvyšují si tak úroveň "žízně".

Odpočinek: Lvi mají stav odpočinku, během něhož se odeberou do stínu pod strom.

Žití: Na rozdíl od pakoňů lvi v simulaci umírají pouze hladem nebo žízní, protože jsou vrcholovými predátory.

U obou agentů, pakoňů i lvů, se v pravidelných intervalech (každý "tick" simulace) aktualizuje jejich výdrž, hlad a žízeň. Rovněž řídí stavy svého chování na základě různých podnětů z prostředí a vnitřních proměnných, jako je hlad a žízeň.

Data pro vytvoření agentů byla sebrána z reálných dat, jako například doba, po které se mládě osamostatní, trvání březosti etc. Hodnoty jako je bazální metabolický výdej nebo množství spotřebované potravy je možné do modelu dosadit, ovšem jelikož je simulace prováděná pouze pro několik dní (z důvodu omezeného výkonu NetLogo) nic moc by se v těchto dnech nedělo jelikož například lvy loví pouze párkrát v týdnu.

Prostředí

Prostředí simulace

Generování heat mapy Vzhledem k tomu, že program NetLogo není schopen generovat Perlinův šumu, musel být použí externí generátor Perlinova šumu. Perlinův šum byl použit k vytvoření 2D heat mapy, která představuje rozložení vody a trávy v prostředí. Barvy na mapě se pohybují od bílé po černou, přičemž černé oblasti označují vodu a různé odstíny šedé trávu, přičemž světlejší odstíny označují hustší trávu.

Příklad.jpg

Převod na CSV Vygenerovaná Perlinova mapa šumu mapa byla poté převedena do souboru CSV, kde každý sloupec představuje hodnotu pixelu. To umožnilo importovat 2D mapu do programu NetLogo jako datovou matici. Zatímco program NetLogo podporuje import obrázků pro nastavení barev políček, byla zde nutná flexibilitaa, kterou nabízí soubor CSV, aby bylo možné hodnoty ve stupních šedi použít více kontrolovaně a určit tak rozložení vody a trávy.


Vytvoření prostředí v aplikaci NetLogo Po importu souboru CSV ve stupních šedi do programu NetLogo bylo vytvořeno simulační prostředí. Kód interpretuje hodnoty stupňů šedi ze souboru CSV a pomocí nich diktuje přítomnost vody a trávy. Nižší hodnoty představují vodní plochy, zatímco zbývající plocha je pokryta trávou s různou hustotou na základě hodnot stupňů šedi.

Příklad.jpg

Entity zvířat Prostředí je osídleno entitami pakoňů a lvů, z nichž každá je vizuálně rozlišitelná podle příslušné barvy.

  • Lvy - bílá šipka
  • Pakůň samec - modrá šipka
  • Pakůň samice - červená šipka
  • Pakůň mládě - žlutá šipka
  • Pakůň mrtvola - červený křížek

Příklad.jpg

Dynamické prostředí Prostředí se v průběhu času vyvíjí a napodobuje tak skutečnou dynamiku savany. Hladina vody se mění, což demonstruje přírodní jevy, jako je vypařování nebo doplňování vody deštěm a také především pití zvířat. Podobně dochází ke konzumaci trávy a její obnově deštěm.

Příklad.jpg

Výsledky

Byly shromážděny údaje o počtu pakoňů v průběhu času, jejich průměrném zdraví a četnosti lovů lvů.

Výsledky simulace ukázaly minimální rozdíly mezi čtyřmi podmínkami zdrojů, s výjimkou podmínky 25 %, kdy pakoně nakonec zemřeli hlady.

Nedostatky a prstor pro budoucí vylepšení

Současná implementace ekosystému v programu NetLogo úspěšně simulovala řadu klíčových ekologických interakcí. Stejně jako všechny modely však není bez omezení a potenciálních oblastí pro zlepšení. Níže je popsáno několik nedostatků a návrhů na vylepšení:

Kompromis mezi měřítkem a realismem

Nedostatek efektivních paralelních výpočetních schopností NetLogo a podpora výpočtů na grafických procesorech (CUDA) značně omezuje měřítko simulace. To nás nutí volit mezi velkými, realističtějšími stády a rychlejšími simulacemi v menším měřítku. V reálných scénářích se rozsáhlá stáda pohybují po rozlehlých planinách, což je náročné věrně zobrazit v simulaci bez značných výpočetních prostředků a času. Budoucí vylepšení by mohlo zahrnovat převedení modelu na platformu, která lépe podporuje paralelní výpočty nebo využívá GPU akceleraci, což by umožnilo provádět simulace ve větším měřítku a přesněji.

Zjednodušená navigace (pathfinding)

V současné době jsou zvířata v simulaci schopna navigovat skrze vodu, což sice nereprezentuje skutečné chování, ale je to praktický kompromis. Implementace algoritmu pro hledání cesty, který by tomuto chování zabránil, je teoreticky možná, ale vzhledem k výpočetním omezením NetLogo by taková implementace byla pravděpodobně neúměrně pomalá. Budoucí iterace modelu by mohly zahrnovat sofistikovanější navigační chování, pokud je lze efektivně implementovat.

Nedostatečně využitá mechanika životního cyklu pakoňů

Ačkoli jsou v modelu implementovány aspekty jako rozmnožování, stárnutí, smrt nebo déšť (doplňování zdrojů) jsou často nedostatečně využity kvůli zvolenému kompromisu mezi velikostí stáda a dobou trvání simulace. Toto nedostatečné využití má za následek nevyužití možnosti studovat dlouhodobou populační dynamiku a ekologické procesy. Budoucí výzkum by se mohl zaměřit na implementaci účinných způsobů simulace těchto prvků v delším časovém horizontu, případně prozkoumat techniky pro urychlení životního cyklu v rámci modelu.

Závěr

Výsledky simulace naznačují, že dostupnost zdrojů má přímý vliv na přežití stád pakoňů. Jakmile se dostupnost zdrojů sníží na 25 %, hrozí populaci pakoňů vyhynutí v důsledku hladovění. Co se četnosti lovu lvy týče je tato hodota nezměněna v závislosti na množství zdrojů.

Kód

(Zde uveďte nastavovací část kódu. Nezapomeňte, že skutečný kód bude třeba přiložit jako doplňkový soubor v rámci vašeho úkolu).

Reference

(Zde uveďte všechny odkazy nebo zdroje, které jste použili při tvorbě simulace a psaní článku).