Využití nočního parkoviště (Netlogo)

From Simulace.info
Revision as of 15:21, 4 June 2017 by Monika (talk | contribs) (Možná rozšíření modelu)
Jump to: navigation, search

Zadání

Název simulace: Využití nočního parkoviště městské části Prahy 10
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 10 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ž parkovací zóny pro Prahu 10 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 městská část Prahy 10 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 Úřadě městské části Prahy 10.

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 10, 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í.

Inicializace

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
  • ! 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
    Buildings – představují budovy, do kterých nesmí agenty během simulace narazit

    • Buildx – xsová souřadnice budovy
    • Buildy – ypsilonová souřadnice budovy

    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

    • Doorx – xsová souřadnice výjezdu
    • Vstupní parametry
    • Doory – ypsilonová souřadnice výjezdu

    Vstupní parametry modelu

    • 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

    Ovládání simulace

    • 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í)

    Procedury simulace

    1. 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í.
      • 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
        
        
      • 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)
      • 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
        
      • reset-ticks – návrat k výchozímu nastavení ticků (= počtu kroků/času)
      • (v této simulaci: 1 tick = 1 s)

    2. Metoda to go – spuštění vlastní simulace
      • 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
        
      • park-employees, park-unemployees, park-retirees, park-students – na parkoviště přijíždí řidiči různých kategorií (zaměstnaní, nezaměstnaní, důchodci a studenti). Vždy se zeptají parking_zone (parkovacího místa) na cenu, a pokud s ní souhlasí a pokud je místo volné, zaparkují. Pokud ne, hledají dál.
      • 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
        
      • avoid – metoda to avoid zajišťuje vyhnutí se budovám (pokud se řidič příliš přiblíží budově, kousek zacouvá a změní směr)
      • to avoid
          ask people [
            if(any? neighbors with [pcolor = grey])[
            back 3
            right 45
           ]]
        end
        
      • leave – metoda to leave má na starosti řidiče, jež ztratí s parkováním trpělivost. Pokud je zaplněno více než 80% všech parkovacích míst či pokud uplyne 2000 ticků (= 2000s = 33 minut), řidič parkování vzdá a oblast opustí.
      • 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
        
      • edge – pokud se řidič přiblíží okraji sledované oblasti, změní směr a vrací se blíže parkovacím místům
      • count-zona1, count-zona2, count-zona3, count-zona4 - tyto metody počítají počet zaparkovaných aut v jednotlivých zónách. Pokud řidič zaparkuje, jeho barva se změní na barvu zaparkování (color 47), ale především se připočítá do statistik zaparkovaného auta v dané zóně.
      • 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
        
      • if ((not any? people with [pace != 0]) or (ticks > 2500))[stop] - zastavení simulace, pokud jsou všechna auta zaparkována či pokud čas hledání volného místa dosáhne 42 minut. Tato podmínka zajišťuje ukončení simulace i v případě, že by bylo nějaké auto zablokováno jiným a jejich odblokování by trvalo déle než 33 minut (viz leave metoda).

    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
    • Sledované ukazatele

      Grafické rozhraní simulace

      Níže je uvedeno grafické rozhraní simulace Využití nočního parkoviště.

      Grafické rozhraní simulace

      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.

      VR.PNG

      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.

      Ceny nyní.PNG

      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.

      4 1.png


      Ukazatelé čtvrté varianty nastavení cen

      Závěr

      Simulace měla za cíl nastínit noční využitelnost parkovacích míst městské části Prahy 10 v závislosti na jejich cenách a celkové tržby pro Prahu 10 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á městská část Prahy 10 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%), úplně 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ž parkovací zóny pro Prahu 10 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 10. 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

      1. 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
      2. Č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.
      3. Ú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)