Dopravní situace ve Vietnamu

Tento článek slouží jako zpráva o simulaci dopravní situace ve Vietnamu v prostředí NetLogo.

=Definice problému=

Předmětem simulace je křižovatka ve tvaru X v centru vietnamského velkoměsta, kde řidiči nedodržují žádné dopravní předpisy, většina řidičů jezdí po pravé straně, ale v rámci zkrácení si cesty je běžné jezdit i vlevo, proti proudu ostatních vozidel. Na silnici jezdí převážná většina motocyklů, ale také automobily, autobusy, nákladní vozidla, jízdní kola. Rychlostní limity se pohybují mezi 30 a 40 km/h, ale běžně jsou ignorovány. Počet jízdních pruhů je neomezený, závisí na šířce současně jedoucích vozidel. Dopravní nehody jsou na denním pořádku a denně na jejich následky zemře nejméně 30 lidí, většinou chodců.

Cílem je nasimulovat přechod chodců přes rušnou ulici a porovnat dvě odlišné taktiky chůze. První taktikou je chůze proměnlivou rychlostí a možným zastavováním se uprostřed silnice. Druhou taktikou je plynulá chůze konstantní rychlostí bez ohledu na výskyt dopravních prostředků okolo - takzvaně zavřít oči a jít.(Video) Důvodem pro takovouto zdánlivě nebezpečnou chůzi je fakt, že zastavení či zpomalení chůze nemohou řidiči předvídat. Pokud však chodec jde plynule, řidiči lépe odhadnou jeho další počínání a proto ho mohou bezpečněji objet.

=Metoda=

Pro řešení problému bylo využito multiagentního modelu v prostředí NetLogo, které bylo pro potřeby modelu plně dostačující.

=Model= Simulační model je vytvořen v prostředí NetLogo 5.0.1. Základem je čtvercový svět o rozměru 51x51px, v němž je bílou barvou vyznačena křižovatka ve tvaru x.



Druhy agentů a jejich atributy
Svět obsahuje následující druhy agentů:
 * motorcycles


 * bicycles


 * cars


 * trucks


 * buses


 * pedestrians

Agenti motorcycles, bicycles, cars, trucks a buses představují jednotlivé typy dopravních prostředků vyskytujících se v křižovatce. Mají atributy speed (okamžitá rychlost), speed-limit (maximální rychlost), cilheading (daný směr jízdy) a turn (příznak zda dopravní prostředek uprostřed křižovatky zatočil) Tyto typy agentů se liší pouze rychlostí, tvarem a velikostí; souhrnně jsou označovány jako traffic.

Agenti pedestrians představují chodce, kteří přecházejí přes křižovatku. Kromě atributů speed, speed-limit a cilheading mají navíc atribut wait-before-go, který označuje náhodný čas, po který chodec čeká před vkročením do křižovatky.

Nastavení počátečního stavu
Pro nastavení počátečního stavu simulace je vytvořeno tlačítko setup volající stejnojmennou proceduru. Tato procedura vymaže předchozí data a počítadlo ticků a spustí proceduru setup-road pro vykreslení silnice a dále procedury pro vytvořejí jednotlivých typů agentů a nastavení jejich počátečních dat.

Počty vytvořených agentů je možné nastavit pomocí posuvníků. Atributy speed a speed-limit agentů dopravních prostředků sou nastaveny podle následující tabulky:

Maximální rychlosti dopravních prostředků a chodců v modelu
Nejedná se však o stejnou hodnotu pro každého agenta. Rychlost je vždy počítána náhodně z intervalu maximální hodnoty a hodnoty snížené o 0,5 steps/tick (u jízdních kol je interval 0,2 - 0,5 steps/tick).

U typu pedestrians je rychlost nastavována posuvníkem.

Po nastavení rychlosti je pro každého agenta volána procedura allocate-traffic, resp. allocate-pedestrians, která náhodně rozmisťuje dopravní prostředky a chodce do křižovatky podle následujících pravidel:

Rozmisťování dopravních prostředků
Vozidla jsou v počátečním stavu umístěna do všech čtyř krajů světa (na čtyři silnice vstupující do křižovatky). Většina vozidel je umístěna k pravé straně vozovky, ale menší část i vlevo (pojedou v protisměru). Může tedy nastat 8 situací (vždy 2 pro každou světovou stranu - s větší pravděpodobností bude vozidlo umístěno doprava, s menší doleva) Dále je podle výsledného umístění nastaven heading, tedy směr umístění agenta. Poté je agentovi nastavena výsledná souřadnice a směr (ten je ukládán dvakrát - do atributu heading, který se však v průběhu jízdy může měnit, a do atributu cilheading, který udává výslednou trasu vozidla

Dále musí být zaručeno, aby se dopravní prostředek neumístil na místo, kde už nějaký je. V tom případě je agent posunut a procedura allocate-traffic spuštěna znovu.

Rozmisťování chodců
Chodci jsou náhodně umísťováni na všechny kraje vozovky. Opět tedy může pro umístění jednotlivého chodce nastat 8 možností:

Pravidla jízdy
V každém "ticku" je testováno, zda má vozidlo před sebou volnou cestu. Pokud se na následujícím políčku již něco vyskytuje, vozidlo může zahnout doleva nebo doprava (opět v případě, že je zde volno). Pokud zatočit nelze, musí vozidlo zpomalit nebo zastavit. V případě zatočení je v následujícím ticku nastaven zpět původní směr jízdy z atributu cilheading.

Zatáčení dopravních prostředků
Pokud se dopravní prostředek dostane doprostřed křižovatky, nemusí jet vždy rovně, ale může zatočit o 90 stupňů doleva nebo doprava. To je určováno náhodně po celou dobu průjezdu středem křižovatky. Atribut turn slouží k tomu, aby dopravní prostředek, který již zatočil (změnil se jeho atribut cilheading) nezatočil znovu.

Výjezd z křižovatky
V případě, že dopravní prostředek úspěšně projede křižovatkou a dosáhne tedy v jedné ze souřadnic hodnoty -25 nebo 25, je "zabit" a místo něj je na kraji světa vytvořen nový dopravní prostředek stejného typu. Počet prostředků v křižovatce je tedy pro zjednodušení simulace stále konstantní. Stejné chování je nastaveno v případě, že se dopravní prostředek dostane mimo vozovku (do černého pole) - to je možno interpretovat jako zaparkování.

Vznik kolizí
V případě, že se na jednom políčku vyskytne současně dopravní prostředek a chodec, je tato situace označena jako potenciální kolize. Počet těchto kolizí je ukládán do globální proměnné collisions. Vznik kolize v modelu neznamená kolizi v reálném světě (dopravní nehodu), ale v případě výskytu potenciální kolize existuje malá pravděpodobnost, že k opravdové kolizi dojde (zranění či úmrtí chodce).

Chování chodců
Chodci jsou vytvořeni s náhodně určeným atributem wait-before-go, což je počet "ticků" před vkročením do křižovatky. Na počátku simulace tedy chodci stojí kolem křižovatky a v náhodném čase začnou přecházet. V případě, že chodec přejde křižovatku (dostane se do černého políčka), je "zabit" a místo něj je vytvořen jeden nový chodec - počet chodců je tedy stejně jako počet dopravních prostředků v simulovaném prostředí konstantní.

Cílem simulace je porovnat dva typy chování chodců. V prvním případě chodci mohou měnit rychlost své chůze a zastavovat. Pokud je v jejich blízkosti (vpředu, vpravo či vlevo) vozidlo, chodci náhodně buďto zpomalí nebo zastaví. Ve druhém případě chodci přechází křižovatku stylem "zavři oči a jdi"; udržují tedy stále stejnou rychlost chůze bez ohledu na dopravní prostředky v okolí.

=Výsledky=

Pro porovnání dvou odlišných taktik chůze bylo provedeno vždy 10 běhů simulace trvající 10 000 ticků za následujících podmínek:


 * Počet motocyklů: 60
 * Počet jízdních kol: 40
 * Počet automobilů: 10
 * Počet autobusů: 10
 * Počet nákladních vozidel: 10

Průměrná rychlost všech dopravních prostředků dohromady se pohybovala okolo 0.9 steps/tick

V grafu jsou zobrazeny průměrné hodnoty počtu potenciálních kolizí (tedy situací, kdy se dopravní prostředek a chodec ocitli na stejném políčku) v závislosti na rychlosti chůze.

Z grafu je patrné, že za simulovaných podmínek vzniklo nejméně potenciálních kolizí při pravidelné chůzi bez zastavování rychlostí 0,20 steps/tick, což odpovídá 7,2 km/h.

Průměrný počet zraněných a mrtvých chodců získaný ze stejných vstupních dat však s výše uvedeným grafem nekoresponduje.

=Závěr= Cílem simulace bylo porovnat dvě odlišné taktiky chodců při přechodu silnice. Z výsledku simulace a uvedeného grafu je patrné, že méně potenciálních kolizí vzniká při plynulé chůzi bez změny rychlosti chůze či zastavování se. Potenciální kolize byla definována jako situace, kdy se chodec a dopravní prostředek vyskytnou na stejném políčku - což nutně nemusí znamenat kolizi opravdovou. Předpokládám však menší pravděpodobnost výskytu dopravní nehody při menším počtu potenciálních kolizí. Výsledek tedy může do jisté míry potvrzovat tvrzení, že plynulá chůze je bezpečnější - řidiči lépe předvídají a chodci se vyhnou. Dále je patrné, že s rostoucí rychlostí chůze počet potenciálních kolizí nepatrně klesá. Rychlost 0,2 steps/tick (7,2 km/h) je však již mírný běh a nejsem přesvědčen, že je bezpečnější než chůze pomalejší. Nižší počet potenciálních kolizí je zřejmě dán spíše kratší dobou výskytu chodce v křižovatce. Rozdíly však nejsou moc markantní.

Metoda získávání počtu zraněných a mrtvých chodců byla však zřejmě zvolena nevhodně - výsledky s počtem potenciálních kolizí nekorespondují. Tento fakt by mohl být podnětem k dalšímu rozšíření a zpřesnění modelu.

=Kód=
 * [[File:xskaf03.nlogo]] - soubor se simulací pro NetLogo

=Citace= = Externí odkazy =
 * Přechod přes ulici v Hanoi - Video na YouTube
 * Přechod přes ulici v Ho Chi Minhově městě – Video na YouTube