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

From Simulace.info
Revision as of 22:18, 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 a jejich vlastnosti

Cestující

Eskalátory

Východy

Zdi

Vstupní parametry a nastavení modelu

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. is-poisson - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.
  3. 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í
  4. p-of-clogging - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu <0;0,3> (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)
  5. keep-distance - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)
  6. unstuck-timeout - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost <0;0.5>. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.


Nastavení eskalátorů

  1. escalator-length - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu <0;100>
  2. escalator-n - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor (escalator-1, escalator-2, escalator-3, escalator-4)
  3. escalator-n-speed - Rychlost každého z eskalátorů (escalator-1-speed, escalator-2-speed, escalator-3-speed, escalator-4-speed)

Další nastavení

  1. debug - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.
  2. frame-rate - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota "frame rate" v nastavení modelu a model musí být v "normal speed" rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.

Nastavení nákladů

  1. fixed-costs-per-escalator - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)
  2. variable-costs-per-second - Náklady na každý aktivní eskalátor za každou vteřinu provozu.

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ětovný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í.
  • Master Reset - Nastaví všechny hodnoty na výchozí a provede Setup.

Sledované ukazatelé

Číselné ukazatelé

  1. total-passengers' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby is-poisson, kdy není počet cestujících přímo zadaný.
  2. actual-costs - (Současné náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.
  3. time - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).
  4. half-time - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.
  5. walking-time - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.
  6. standing-time - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.

Grafy

  1. Celkový počet cestujících v systému - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.
  2. Počet cestujících dle preference - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).
  3. Počty cestujících dle fáze - Zobrazuje vývoj počtu cestujících v jednotlivých fázích
    • Fáze 1 - spodní podlaží (žlutá)
    • Fáze 2 - eskalátory (zelená)
    • Fáze 3 - horní podlaží (červená)

Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách

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