Optimalizace nastavení eskalátorů v metru (NetLogo)

From Simulace.info
Revision as of 21:41, 2 June 2016 by Xrojr01 (talk | contribs)
Jump to: navigation, search


Zadání

Název simulace: Optimalizace nastavení eskalátorů v metru

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

Autor: Bc. Robert Rojo

Typ modelu: Multiagentní

Modelovací nástroj: NetLogo

Definice problému

Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.


Metoda

Model

Jak to celé funguje

Samotnou simulaci je možné rozdělit do několika odlišných fází.

Fáze 1 - Příchod cestujících k eskalátorům.

Zde jde o jednoduché přemístění cestujících k předem určenému bodu.

  1. Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.
  2. Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke "spravedlivému" rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.
  3. Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)
  4. Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).
  5. Když se cestující dostanou k eskalátoru, dostávají se do fáze 2

Fáze 2 - Stairway to heaven

V této fázi jsou cestující vyvezeni na povrch.

  1. Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).
  2. Preferuje-li levou stranu, mohou nastat dvě situace:
    • a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)
    • b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)
  3. V pohybu se cestující chovají podle těchto pravidel:
    • preferují-li stání, stojí, dokud nejsou vyvezeni nahoru
    • preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.
  4. Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3


Fáze 3 - Opouštění eskalátorů

V této fázi cestující opouští eskalátory a jdou k východu.

  1. Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.
  2. Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.

Agenti

Cestující

Eskalátory

Východy

Zdi

Vstupní parametry

Nastavení cestujících (pasažérů)

  1. passengers-count - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou is-poisson)
  2. escalator-1 - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor (escalator-1, escalator-2, escalator-3, escalator-4)
  3. escalator-1-speed - Rychlost každého z eskalátorů (escalator-1-speed, escalator-2-speed, escalator-3-speed, escalator-4-speed)
  4. escalator-length - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu <0;100>
  5. walkers-ratio - Poměr stojících a chodících cestujících z intervalu <0;1>, 0 znaměná pouze stojící cestující, 1 pouze chodící

Nastavení eskalátorů

Další nastavení

Nastavení nákladů

  1. ...TODO

Ovládání

Ovládat simulaci lze následujícími tlačítky, které jsou v sekci Ovládání:

  • Setup - Připraví model k použití s aktuálně nastavenými parametry
  • Go - Spustí simulaci. Opětnovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.
  • Step - Při krokování opět dojde k "rozbití" měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.

Sledované ukazatele

  1. Aktuální počet cestujících dole ve fázi 1 (graf)
  2. Aktuální počet cestujících na eskalátoru ve fázi 2(graf)
  3. Aktuální počet cestujících nahoře ve fázi 3 (graf)
  4. Celkový počet cestujících v systému (hodnota, graf)
  5. Doba opuštění posledního cestujícího
  6. Střední doba opuštění (doba, za kterou opustí systém polovina cestujících)
  7. ... TODO


Grafické rozhraní

Výsledky

Závěr

Zhodnocení naplnění cíle

Možná rozšíření modelu

Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:

  • Předbíhání na eskalátorech - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.
  • Možnost říct "s dovolením" - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.
  • Více východů/přestupy - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.
  • Rozšíření o běžné schodiště - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.
  • Přidání lidí v opačném směru - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.
  • Přidání třetí dimenze - Zde by šlo spíše o lepší vizuální přehlednost.

Zdroje