Využití nočního parkoviště (Netlogo)
Contents
Zadání
Název simulace: Využití nočního parkoviště městské části Prahy
Předmět: 4IT495 Simulace systémů (LS 2016/2017)
Autor: Bc. Monika Vampolová
Typ modelu: Multiagentní
Modelovací nástroj: NetLogo 6.0.1
Definice problému
Simulace zkoumá noční využitelnost parkovacích míst městské části Prahy v závislosti na jejich cenách. Ve zkoumané oblasti bydlí studenti, důchodci, zaměstnaní a nezaměstnaní, jež jsou ochotni platit za parkovací místa odlišné ceny. Ceny jednotlivých míst se liší podle toho, zda se místa nacházejí přímo u bytů či v okrajových částech. Platba za parkování se platí na každý večer zvlášť v parkovacím automatu. Pokud řidič nenajde místo na parkování za určitý čas či pokud jsou místa obsazena, tuto oblast opustí.
Obyvatelé se v této lokalitě nachází v poměru 50% zaměstnaných, 7% nezaměstnaných (včetně matek na mateřské), 30% důchodců a 13% studentů. Ve zkoumané oblasti se nyní nachází 153 registrovaných vlastníků aut.
Z vykonaného průzkumu vyplynulo, že zaměstnaní jsou ochotni zaplatit maximálně 80 Kč, nezaměstnaní 55 Kč, důchodci 50 Kč a studenti 60 Kč za jeden večer. Městská část je rozdělena do čtyř parkovacích zón, přičemž v nynější době stojí noční parkování v první zóně 75Kč, ve druhé 60Kč, ve třetí 50 Kč, a ve čtvrté 40 Kč. Aby pražská část neztrácela, minimální hranice nejlevnější části je 30Kč za večer (pod tuto částku nemůže cena za parkování nikdy klesnout).
Současně je ve zkoumané oblasti 177 parkovacích míst, z toho 67 v první zóně, 34 ve druhé, 32 ve třetí a 44 ve čtvrté parkovací zóně.
Cíl
Pomocí variabilního nastavení vstupních parametrů, jež představují ceny jednotlivých zón, a počet parkujících osob, simulace zkoumá, zda se v této městské části nachází dostatek cenově dostupných parkovacích míst. Dále zkoumá, zda jsou ceny jednotlivých zón adekvátně nastaveny v závislosti na ochotě řidičů tyto sumy zaplatit. V neposlední řadě se simulace zaměřuje na přehodnocení cen jednotlivých zón v závislosti na výnosech, jež tyto parkovací zóny pro Prahu představují. Konkrétní cíl lze tedy shrnout následovně:
„Nastavit ceny jednotlivých zón tak, aby byla parkovací místa co nejvíce využita a současně aby tato městská část Prahy utržila co nejvíce.“
Metoda
Pro tuto simulaci se ukázalo být nejlepším programovatelným prostředím NetLogo, jež umožnuje zkoumat rozdíly jednotlivých výsledků v závislosti na přenastavení vstupních parametrů. Jelikož jednotlivé agenty pracují nezávisle na sobě, toto simulační prostředí umožňuje prozkoumat chování jednotlivých jedinců, stejně dobře jako jejich vzájemnou interakci.
K procentuálnímu rozdělení obyvatel do kategorií zaměstnaní, nezaměstnaní, důchodci a studenti byly použity statistiky Českého statistického úřadu[1] a Sociálně demografická analýza městské části Prahy 10[2][3].
Pro výši cen, jež jsou dané skupiny ochotny zaplatit za noční parkování, byl vykonán průzkum. Z každé relevantní skupiny bylo osloveno deset zástupců, jejichž názory na výši cen parkovacích míst byly zprůměrovány.
V neposlední řadě byly ověřeny informace o rozdělení parkovacích zón na Magistrátu hlavního města Prahy.
Model - detailní popis
Omezení modelu
- Všechna auta přijíždí parkovat ve stejný čas a zůstávají na parkovišti přes noc.
- Cena za parkování se platí každý večer zvlášť v parkovacím automatu – parkovací karty tato simulace nezohledňuje.
- Základní model počítá se 153 registrovanými řidiči v této oblasti. V nynější době je však možné registrovat automobil i v jiné části než v místě trvalého bydliště. Počet pravidelně parkujících řidičů se tak hůře odhaduje a počet 153 (+ ostatní nepředvídatelní řidiči) nemusí být úplně přesný.
- Auta přijíždějí a odjíždějí z daných míst (ovlivnění viditelnosti jednotlivých míst). Nejsou tak brány v potaz další možné příjezdy a odjezdy, jak je tomu ve většině případů ve skutečnosti (viz Možná rozšíření modelu).
- Auta nemají předem dané silnice , tudíž se pohybují libovolně (viz Možná rozšíření modelu).
Popis modelu
Předmětem simulace je vymezená část Prahy, jež obsahuje 177 parkovacích míst. Tento počet je nastaven defaultně a nelze měnit (stejně jako v praxi není jednoduché přistavět nová parkovací místa). Místa jsou rozdělena a barevně označena do čtyř zón v závislosti na jejich cenách. Počet registrovaných řidičů této oblasti je 153, nicméně na parkovišti parkují i automobily registrované jinde, tudíž je tento vstup variabilní.
Logika simulace je značně přímočará. Auta přijíždějí z jednoho místa a hledají místo k zaparkování. Pokud je místo volné a řidiči jsou ochotni zaplatit určitý obnos, pak zaparkují. Pokud ne, hledají místo dál.
Inicializace
= nastavení simulace před jejím spuštěním
Před samotným spuštěním simulace se inicializují volná parkovací místa jednotlivých zón, jež jsou barevně označena.
1. zóna | červená |
2. zóna | oranžová |
3. zóna | zelená |
4. zóna | modrá |
Dále se inicializují čtyři šedé budovy, do nichž agenty během simulace nesmí vjet či narazit a také výjezd z této čtvrti (exit). V neposlední řadě se inicializují řidiči dle rozdělení: 50% zaměstnaných, 7% nezaměstnaných, 30% důchodců a 13% studentů. V ukazatelích se vyplní vstupní hodnoty ohledně obsazenosti jednotlivých zón a rozvržení obyvatelstva do čtyř skupin.
Spuštění simulace
Při spuštění simulace přijíždí jednotliví řidiči do dané oblasti a hledají volná místa k zaparkování. Vždy se „zeptají“ parkovacího místa kolik stojí a tuto informaci porovnají se svou preferencí. Pokud s cenou souhlasí a pokud je místo volné, zaparkují, jinak pokračují v hledání. Veškeré statistiky se průběžně zaznamenávají, čímž je uživateli umožněno sledovat vývoj výsledků.
Ukončení simulace
Simulace končí ve třech možných variantách. První je skutečnost, že by veškerá přijíždějící auta zaparkovala. Druhou skutečností je, že za určitý čas bude zaplněno 80% parkovacích míst, nezaparkovaní řidiči přestanou hledat a oblast opustí. Třetí situace nastane, pokud sice není obsazeno 80% míst, nicméně řidiči hledají místa už moc dlouho, ztratí trpělivost a oblast opustí.
Agenty a jejich vlastnosti
Zde je uveden výčet agentů simulace včetně jejich vlastností.
People – představují řidiče
- Headx – xsová souřadnice místa, kam řidič míří
- Heady – ypsilonová souřadnice místa, kam řidič míří
- Pace – aktuální rychlost řidiče v závislosti na tom, zda je v pohybu či je zaparkován
! u agentů people je důležitá jejich barva. Následující tabulka udává vysvětlení jednotlivých barev.
Yellow | Zaměstnaný |
Violet | Nezaměstnaný |
Gray | Důchodce |
Lime | Student |
Color 47 (světle žlutá) | Zaparkované auto |
Parking_zones – představují jednotlivé parkovací zóny
- Posx – xsová souřadnice překážky
- Posy – ypsilonová souřadnice překážky
- Buildx – xsová souřadnice budovy
- Buildy – ypsilonová souřadnice budovy
- Doorx – xsová souřadnice výjezdu
- Doory – ypsilonová souřadnice výjezdu
- Počet parkovacích míst – pevně stanoveno na hodnotu 177
- Počet řidičů přijíždějících do oblasti – posuvníkem nastavitelná hodnota od 0 do 10
- Cena 1. zóny – posuvníkem nastavitelná hodnota od 30 do 100
- Cena 2. zóny - posuvníkem nastavitelná hodnota od 30 do 100
- Cena 3. zóny - posuvníkem nastavitelná hodnota od 30 do 100
- Cena 4. Zóny - posuvníkem nastavitelná hodnota od 30 do 100
- Setup – zahájí inicializaci simulace na základě vstupních parametrů
- Go – spustí vlastní simulaci (opětovným klikem na toto tlačítko se simulace pozastaví, pro její spuštění od začátku je však nutné znovu kliknout na „setup“ pro inicializaci nového prostředí)
- Metoda to setup - zahájí inicializaci simulace na základě vstupních parametrů
- clear-all – smažou se veškerá data z předchozích simulací
- setup-parking_zones – tato metoda vytvoří zóny pro parkování podle neměnných předpokladů (stejně jako v reálném světě)
- setup-buildings – tato metoda vytvoří domy, do kterých agenty nemohou během simulace narazit (s budovami se během simulace nedá hýbat)
- setup-exits – tato metoda vytvoří výjezdy, jež agenty využijí v případě již moc dlouhého hledání volného místa
- setup-room – tato metoda vykresluje veškeré objekty místnosti (parkovací zóny, domy a exity) včetně jejich barevného rozvržení a dále vykresluje podlahu v barvě brown + 5
- setup-people - tato metoda generuje jednotlivé řidiče do čtyř kategorií (zaměstnaný, nezaměstnaný, důchodce, student). Agenty people mají nejprve nepředvídatelný směr pohybu, velikost 1, tvar auta a rychlost pohybu dle náhodného normálního rozdělení.
- adjust-prices – metoda udávající cenu parkovacího místa v závislosti na barvě parking_zone (ceny zón jsou variabilními vstupními parametry)
- reset-ticks – návrat k výchozímu nastavení ticků (= počtu kroků/času)
! u agenta parking_zones je velmi důležitá barva patche („dlaždice plátna“). Následující tabulka udává vysvětlení jednotlivých barev.
Red | 1.zóna |
Orange | 2.zóna |
Green | 3.zóna |
Blue | 4.zóna |
Black | Okraj městské části |
Exits – představují výjezdy z dané oblasti, přičemž preferovaný je výjezd na druhé straně města, neboť při poslední cestě přes město je ještě možné nějaké volné místo najít
Vstupní parametry modelu
Ovládání simulace
Procedury simulace
to setup-people create-people persons ask people [ set heading random xcor set heading random ycor set size 1 set shape "car" set pace random-normal 1 0.2 if random 100 < 50 [ set color yellow set employees employees + 1] if random 100 < 7 [ set color violet set unemployees unemployees + 1] if random 100 < 30 [ set color gray set retirees retirees + 1] if random 100 < 13 [ set color lime set students students + 1] ] end
to adjust-prices ask patches [ if pcolor = red [ set price zona1] if pcolor = orange [ set price zona2] if pcolor = blue[ set price zona3 ] if pcolor = green[ set price zona4 ]] end
(v této simulaci: 1 tick = 1 s)
- make-step – metoda zajišťující pohyb každého řidiče. Řidič se může posunout dopředu (rychlostí, jež byla definována metodou to create-people) pokud se před ním nikdo nenachází. Pokud je místo obsazené, podívá se, zda se nikdo nenachází o 45 stupňů vpravo nebo vlevo, anebo o 90 stupňů vpravo a posune se tam, kde je volné místo. Tato skutečnost simuluje reálné chování řidičů, jež se překážku snaží objet, jak jen se dá.
to make-step ask people [ ifelse (patch-ahead pace != nobody) and ((not any? turtles-on patch-ahead pace) or ((count turtles-on patch-ahead pace = 1) and (one-of turtles-on patch-ahead pace = self))) [ jump pace ] [ ifelse (patch-right-and-ahead 45 pace != nobody) and (not any? turtles-on patch-right-and-ahead 45 pace) [ right 45 jump pace ] [ ifelse (patch-left-and-ahead 45 pace != nobody) and (not any? turtles-on patch-left-and-ahead 45 pace)[ left 45 jump pace ][ ifelse (patch-left-and-ahead 90 pace != nobody) and (not any? turtles-on patch-left-and-ahead 90 pace)[ left 90 jump pace ][ if (patch-right-and-ahead 90 pace != nobody) and (not any? turtles-on patch-right-and-ahead 90 pace) [ right 90 jump pace ]] ]]]] end
to park-employees ask people with [color = yellow] [ if ((patch-here != nobody) and ((not any? turtles-on patch-here ) or ((count turtles-on patch-here = 1) and(one-of turtles-on patch-here = self)))) [ ask patch-here [ if (price >= 30 and price <= 80)[ ask myself[ set pace 0 set parked-employees parked-employees + 1 set parked parked + 1 set color 46 ]]]]] end
to avoid ask people [ if(any? neighbors with [pcolor = grey])[ back 3 right 45 ]] end
to leave if ((((parked / persons) = 1) or ((zona-1 + zona-2 + zona-3 + zona-4) / 177 > 0.80)) or (ticks > 1500))[ ask people [ facexy xcor 64 facexy ycor 64 ask patch-here [ if (pcolor = brown) [ ask myself [ die ]]]]] end
to count-zona1 ask people with [color = 46 or color = 116 or color = 6 or color = 66][ ask patch-here [ if(pcolor = red)[ ask myself[ set zona-1 zona-1 + 1 set color 47 ]]]] end
Sledované ukazatele
Vývoj důležitých ukazatelů je sledován průběžně během simulace.- Celkem zaparkovaných – celkové množství zaparkovaných aut
- Zaparkovaní v % - ukazuje kolik % z celkového počtu řidičů našlo parkovací místo
- Zaparkovaní zaměstnaní, zaparkovaní nezaměstnaní, zaparkovaní důchodci, zaparkovaní studenti – statistiky ohledně zaparkovaných aut jednotlivých kategorií + jejich procentuální vyjádření z celkového množství osob dané kategorie
- Volná místa celkem – ukazuje, kolik zbývá volných míst ze 177 možných
- Obsazenost všech parkovacích míst – ukazatel ukazující procentuální obsazenost veškerých parkovacích míst
- Zona-1, zona-2, zona-3, zona-4 – ukazuje kolik aut je v jednotlivých zónách zaparkováno
- + jejich procentuální vyjádření k celkovému počtu dostupných míst jednotlivých zón
- + ukazatel zbývajících volných míst dané zóny
- Tržby celkem – ukazatel ukazující kolik městská část utrží celkem za parkování ve všech zónách
- Zona-1, zona-2, zona-3, zona-4 – kolik městská část utží za parkování v jednotlivých zónách
- Graf - ukazuje parkování v jednotlivých zónách s přibývajícím časem
-
Grafické rozhraní simulace
Níže je uvedeno grafické rozhraní simulace Využití nočního parkoviště.
Výsledky simulace
Jelikož simulace v této části Prahy předpokládá 153 vlastníků automobilů, předpokládá taktéž v této oblasti jejich parkování a přidává dalších 47 náhodných parkujících (např. ze sousedících městských částí Prahy, apod.). Celkově bylo zkoumáno jedenáct různých nastavení cen parkovacích zón pro 200 parkujících osob. Jednotlivé výsledky simulací lze nalézt mezi soubory ke stažení (viz Soubory ke stažení). Dále byla simulace dvakrát spuštěna pro 300 parkujících osob, 500 osob a poté jednou pro tisíc osob. Jelikož jsou parkovací místa pevně daná a jejich kapacita je přesně 177, je evidentní, že při počtu 1000 osob budou veškerá místa obsazena, nicméně zaparkovaných lidí bude jen okolo 18%.
Následující tabulka shrnuje nejdůležitější zaznamenané výsledky.
Z tabulky je patrné, že při příjezdu 200 řidičů není nastavení cen jednotlivých zón zcela přímočaré, nicméně nynější nastavení cen se nedá považovat za optimální. Následující tabulky ukazují detailnější výsledky nynější varianty.
Nejvyšší procentuální počet zaparkovaných aut byl dosažen při nastavení cen č. 9, obsazenost všech míst byla taktéž nejvyšší, nicméně tržby malinko pokulhávaly. Nejvyšší tržba byla naopak při nastavení č. 10, nicméně procentuální obsazenost všech míst nebyla optimální. Pokud vezmeme v úvahu nastavení č. 4, procentuální počet zaparkovaných aut byl druhý nejvyšší (66,50%), obsazenost všech míst byla taktéž druhá nejvyšší (75,14%), stejně jako tržby (7230,-).
Následující tabulky ukazují podrobné výsledky čtvrté varianty nastavení cen. Graf této varianty udává, jak se měnila obsazenost jednotlivých zón s přibývajícím časem.
Závěr
Simulace měla za cíl nastínit noční využitelnost parkovacích míst městské části Prahy v závislosti na jejich cenách a celkové tržby pro Prahu z parkování v této oblasti. Jak se ukázalo, výsledné nastavení cen je velmi diskutabilní a odvíjí se od toho, jaké má tato městská část Prahy preference (výše tržeb, spokojenost řidičů či celková obsazenost parkovacích míst). Pokud by městská část tolik nehleděla na své tržby, pak by se optimálním řešením jevilo nastavení cen č. 9.
Z mého pohledu si ovšem myslím, že nejoptimálnějším řešením je čtvrté nastavení cen. Rozdíl oproti deváté variantě není v obsazenosti míst a počtu zaparkovaných řidičů tak velký, nicméně v tržbách je značně viditelný. Ze čtyř zón by se vytvořily pouze dvě, jež by se lišily deseti korunami za noc (60,- a 50,-). Procentuální počet zaparkovaných aut byl při tomto nastavení cen druhý nejvyšší (66,50%), obsazenost míst byla taktéž druhá nejvyšší (75,14%), stejně jako tržby (7230,-). Celkové tržby za parkování přesáhly i tržby při nastavení nejvyšších možných cen všech zón, jež jsou jednotlivé kategorie řidičů ochotny za parkování zaplatit.
Možná rozšíření modelu
- Simulace by mohla zohledňovat parkovací karty residentů dané oblasti a sledovat vývoj tržeb v závislosti na počtu a ceně takovýchto karet.
- Simulace nezohledňuje, zda řidiči tuto oblast znají či nikoli. Jistá znalost parkovacích míst by zajisté ovlivnila rychlost, ale taktéž zaplněnost jednotlivých zón, neboť by řidiči hledali místa k zaparkování pravděpodobně kratší dobu.
- Auta nemají předepsané silnice, po kterých se mohou pohybovat. Rozšířením by bylo nastavení silnic (včetně jednosměrek, zákazu otáčení, apod.).
- Auta přijíždějí a odjíždějí z daných míst, což ovlivňuje viditelnost jednotlivých parkovacích míst. Rozšířením by mohlo být více vjezdů do dané oblasti, jako je tomu v reálném světě.
Zhodnocení naplnění cíle
Cílem této simulace bylo pomocí variabilního nastavení vstupních parametrů zjistit, zda se v této městské části nachází dostatek cenově dostupných parkovacích míst. Zda jsou ceny jednotlivých zón adekvátně nastaveny v závislosti na ochotě řidičů tyto sumy zaplatit a v neposlední řadě na přehodnocení cen jednotlivých zón v závislosti na výnosech, jež tyto parkovací zóny pro Prahu představují.
Provedením simulace byla nalezena odpověď na otázku: „Jak by měly být ceny nastaveny, aby byla parkovací místa co nejvíce využita a současně aby tato městská část Prahy utržila co nejvíce?“. Odpovědi jsou dvě, přičemž záleží na preferencích městské části Prahy. Pokud je preference této městské části spokojenost obyvatel a využití co nejvíce parkovacích míst, poté se nejoptimálnější variantou jeví nastavení č. 9. Pokud se do preferencí řadí ještě tržby za parkování, pak je optimálním řešením nastavení cen čtvrté.
Reference
- ↑ CENTRUM PRO KOMUNITNÍ PRÁCI STŘEDNÍ ČECHY, 2012. Sociálně demografická analýza městské části Prahy 10 [online]. Praha [cit. 2017-06-03]. Dostupné z: http://socialniportal.praha10.cz/Portals/12/Dokumenty%20-%20kpss/oso_soc_dem_anal.pdf
- ↑ ČESKÝ STATISTICKÝ ÚŘAD. Městské části hlavního města Prahy [online]. Praha, 2016 [cit. 2017-06-02]. Dostupné z: https://www.czso.cz/csu/xa/mesta_a_obce.
- ↑ ÚTVAR ROZVOJE HL. MĚSTA PRAHY. Statistické údaje 2012: Územně analytické podklady hlavního města Prahy [online]. Praha, 2012 [cit. 2017-06-02]. Dostupné z: http://www.iprpraha.cz/uploads/assets/soubory/data/UAP/UAP2012/priloha_statisticke_udaje_uap_2012.pdf
Soubory ke stažení
File:Parkoviste.nlogo | Vlastní simulace v programu NetLogo 6.0.1 File:Vysledky parkoviste excel.xlsx | Pomocný soubor se všemi výsledky (excel)