Simulace Sjezdovky (NetLogo)

= Zadání =

Název simulace: Simulace sjezdovky

Autor: Michal Pokorný

Typ modelu: Multiagentní

Modelovací nástroj: NetLogo

Popis Modelu: Simulace pohybu lyžařů/snowboardistů na svahu. Účastníci simulace jsou nejdříve vyvezeni vlekem/ky na vrcholek svahu a následně v závislosti na svojí strategii sjedou svah dolů. Simulace by řešila průchodnost tratě a počet nehod v závislosti na počtu účastníků, tvaru trati a porovnání jednotlivých strategií účastníků (jejich rychlosti lyžování, četnosti zátačení a rychlosti mimo sjezdovku) s pravděpodobností jejich srážky s jiným účastníkem.

= Metoda =

Model je vytvořen v softwaru NetLogo, který je určen především pro modelování multiagentních systémů. Lze v něm pomocí různých způsobů inputů měnit vlastnosti modelu v průběhu simulace. Stejně tak lze pomocí monitorovacích objektů sledovat klíčové hodnoty probíhající simulace a sledovat jejich průběh v čase pomocí grafů. Model sjezdovky vychází ze skutečníé sjezdovky nacházející se ve ski areálu Pec pod Sněžkou - Černá Hora, Jarov, 1b. Tato sjezdovka je obsluhována jedním vlekem.

= Model =

Globální Vlastnosti Modelu
Entry_x: X souřadnice vstupu, Y souřadnice je 0 (úpatí svahu)

Exit_x: X souřadnice vstupu, Y souřadnice je 0 (úpatí svahu)

Tow_x: X souřadnice vleku

Nastavitelné Vlastnosti Modelu
People_max: Maximální počet lidí v areálu

Speed_tow: Rychlost vleku

Width_env: Šířka hranice sjezdovky, nastavitelná pouze před vygenerováním modelu

Ski_max_global: Maximální počet sjezdů

Monitorované vlastnosti modelu
People_ski_count: Počet úspěšných sjezdů lyžaři (pro každou skupinu)

People_total: Celkový počet lidí, kteří vstoupili do areálu (pro každou skupinu)

People_injured_nonski: Počet lidí, kteří se zasekli (zranili) při jiné činnosti než je lyžování (pro každou skupinu)

People_injured_ski: Počet lidí, kteří se srazili s jinými lidmi (pro každou skupinu)

People_injured_ski_env: Počet lidí, kteří se srazili s hranicemi sjezdovky (Borders) (pro každou skupinu)

Agenti
People: Lidé přicházející na sjezdovku a využívající jejích služeb

Borders: Hranice sjezdovky, omezující pohyb lyžařů. Jejich jedinou vlastností jsou souřadnice, kde se nácházejí.

Životní Cyklus People
Appear: Agenti se náhodně vytvářejí na startovní pozici. Náhodně se jim přiřadí jedna ze 3 skupin a podle této skupiny se jim přiřadí vlastnosti. Jejich další akci je tow-want

Tow-want: Agent se snaží dostat k vleku. Další akcí je tow

Tow: Agent je vynesen na vrcholek vleku. Na vrcholku vleku má šanci vlek opustit předčasně. Další akci je ski-want

Ski-want: Agent si náhodně vybere místo na vrcholku a snaží se k němu dostat. Další akcí je ski

Ski: Agent lyžuje směrem dolů ze svahu. Agent lyžuje směrem dolů pod úhlem 45 stupňů a náhodně mění směr v závislosti na svých vlastnostech. Agent se snaží vyhýbat ostatním agentům (People a Borders). V případě, že se dva agenti nacházejí na stejném místě, srazí se, zvýší statistiky o srážkách a zmizí. Pokud se agent dostane na konec svahu, rozhodne se podle počtu svých sjezdů jestli jeho další akce bude tow-want nebo leave

Leave: Agent se snaží dostat k východu.

Nastavitelné Vlastnosti People
Speed_ski: Rychlost při lyžování (pro každou skupinu)

Turn_ski: Jak často se rozhoduje o změně směru (vyšší číslo = méně často) (pro každou skupinu)

Speed_normal: Rychlost v nelyžařských prostorech (pro každou skupinu)

Ski_max: Maximální počet sjezdů před opuštěním areálu

Pomocné Vlastnosti People
Action: Aktuální akce životního cyklu

Group: Skupina do které daný člověk patří, vlastnosti členů skupiny lze nastavovat globálně. Každému člověku je přiřazena skupina náhodně při jeho vstupu do areálu

Stuck_check_x, Stuck_check_y, Confused: Vlastnosti pro kontrolování zaseknutí se v nelyžařských prostorech

Crashed, Crashed_environment: Vlastnosti pro kontrolování srážky s jinými agenty

=Obrázky=



Vysvětlivky
Bílá: Sjezdovka

Světle modrá: Pohyb mezi sjezdovkou a Vlekem

Tmavě modrá: Vlek

Modrá: Konec vleku

Zelená: Hranice sjezdovky (Stromy)

Žlutá: Vstup do areálu

Červená: Východ z areálu

=Výsledky=

Výsledný model je velkým zjednodušením reality, agenti nemohou v průběhu sjezdu měnit svou rychlost a mohou lyžovat pouze jedním ze 3 směrů a pouze v diskrétních intervalech. Z těchto důvodů docházi k velmi četným srážkám i přez svoji snahu vyhýbat překážkám a jiným agentům (Před každou změnou směru se agent podívá na obě strany a vybere si tu kde nevidí žádnou překážku, případně jede přímo dolů). Hlavním přínosem modelu je tedy především porovnání jednotlivých nastavení agentů a modelu mezi sebou a nikoli absolutní čísla o zraněných lyžařích (Protože se jedná spíše o Free for All Battle Royal v tomto případě)

V tabulce níže jsou hodnoty parametrů modelu použité pro všechny vlastnosti které nejsou explicitně porovnávány v dané simulaci. V podkapitolách níže jsou výsledky simulací porovnávájící různé hodnoty zkoumané vlastnosti. Simulace byly v těchto případech omezeny na 50 000 ticků.

Minimální hranice X Široké hranice
V případě minimálního nastavení hranic nejsou na trati žádně překážky a hranice jsou naprosto rovné. V případě nejširších hranic je na trati zig-zag vzor viditelný na přiloženém obrázku.

Široké hranice (a související členitost tratě) podle očekávání zvyšují pravděpodobnost srážky s okolním prostředí. Z tohoto důvodu se také snižuje pravděpodbnost srážky s jiným lyžařem, celková pravděpodobnost nedokončení trati je ale výrazně vyšší.

Rychlost vleku
V případě rychlejšího vleku se dle očekávání zvýší absolutní počet sjezdů a % srážek zůstava v rámci chyby stejné.

Maximální počet sjezdů na agenta
V případě vytrvalejších návštěvíků areálu se dle očekávání sníží celkový počet návštěvníků (z důvodu limitu návštěvníků v areálu) a zvýší pravděpodobnost, že daný návštěvník utrpí zranění. Z důvodu lepšího využití času (žádný čas stráveny na opouštění areálu) se také dle očekávání zvýšil celkový počet sjezdů.

Maximální počet lidí v areálu
Při zvýšení počtu lidí v areálu se dle očekávání zvýší pravděpodobnost srážky s jiným návštěvníkem, celkový počet návštěvníků a úspěšný počet sjezdů.

Rychlost sjezdu agenta
Na rozdíl od předchozích porovnání, v tomto případě všechny 3 typy agentů projížděli tratí najednou. Nejpomalejší lyžaři měli největší šanci nedokončit trať a největší šanci srážky s hranicí trati, což je způsobeno nejspíše největší četností změny směru, kdy je možné, že lyžař 'zabloudí' do místa odkud si neví rady. Překvapením je, že středně rychlí lyžaři měli nejmenší šanci srážky a tedy i nejvíce úspěšných sjezdů, ačkoli jim sjezd trvá déle než nejrychlejěím lyžařům.

Četnost zatáčení agenta
Stejně jako v případě rychlosti (nejmenší rychlost - nejvíce změn směru), agenti s nejvíce změny směru mají největší šanci se srazit s okolní krajinou. Tito lyžaři se ale naopak ukazují lepší ve vyhýbání ostatním lyžařům, jejich celková pravděpodbnost srážky je ale i tak vyšší než v případě rozhodnějších agentů.

Rychlost pohybu agenta mimo sjezdovku
Největším překvapením jsou vyýsledky v závilosti na parametru, který by měl mít nejmenší vliv. Lyžaři s nejpomalejším pohybem mimo sjezdovku mají výrazně menší pravděpodobnost srážky s okolím a největší šanci, že úspěšně dokončí sjezd. V tomto průběhu simulace se také v některých případech stalo, že agenti se navzájem zaseknou (mimo trať) a nedokážou se sami zkovu rozejít. Vzhledem k tomu, že se to stávalo pouze v tomto nastavení je to nejspíše způsobeno různými rychlostmi pohybu agentů mimo sjezdovku.

=Kód=

Zdrojový kód simulace: