MATSim labor - mérési feladatok

MATSim mérési feladatok

A mérés során a forgalom-szimulátor alapvető funkcióival fog megismerkedni.

A mérés első szakaszában a felhasználói felület segítségével fog az előre elkészített konfigurációs file-ok alapján hálózati forgalmat szimulálni. Megismeri a MATSim kimeneti formátumát, a különböző származtatott eredményeket. A szimuláció menetét a Via vizualizációs eszközzel követi.

A második szakaszban megtanulja, hogyan kell fejlesztőkörnyezetből futtatni a MATSim rendszert. Ezek után hálózati file-t fog előállítani az Open Street Map adatbázisából, és elkészíti az első forráskódból generált populációt.

Végül a mérés harmadik szakaszában megismerkedik a stratégiákkal, és a tervválasztással.

A kérdések megválaszolásakor válaszát indokolja, ne feledje el megjelölni a válasz forrását (konfigurációs file, kimeneti könyvtár/file)!

A jegyzőkönyvhöz mellékelje a konfigurációs file-ok tömörített könyvtárát!

Exportálja és mellékelje a jegyzőkönyvhöz az elkészült Eclipse projektet!

 

0. Virtuális környezet

A MATsim méréshez létrehoztunk egy virtuális gépet, ami a MATsim -- Ubuntu image elindításával érhető el. Az image betöltése után automatikusan elindul a VBox, amiben a matsim virtuális gépet kell elindítani. A belépési felhasználónév matsim, a jelszó a táblán lesz elérhető. A matsim felhasználó superuser jogokkal rendelkezik. Ha a virtuális gép nem használja ki a teljes képernyőfelületet, akkor a kiterjesztéséhez az

xrandr -s 1920x1080

parancs használható.

A rendszer által használt betűméretet ezután a Settings > Appearance menü alatt, a képernyő felbontásának (DPI) megadásával szabhatja testre, a 96dpi jó érték, a pipát kell kivenni és visszatenni.

A virtuális gépen 1.8-as Sun Java és Eclipse Mars van telepítve.

A matsim és via programok a /home/matsim/Work könyvtárban érhetőek el.

Az eclipse a /home/matsim/eclipse könyvtárban érhető el.

1. Ismerkedés a MATSim programmal

A mérés első szakaszában a bináris disztibúciót fogja használni a szimuláció menetének megismeréséhez.

1.0. Előkészületek

Mérési feladat

  1. Töltse le és tömörítse ki a lentebb csatolt konfigurációs file-okat!
  2. Navigáljon a MATSim könyvtárba, és indítsa el a matsim.0.7.0.jar állományt!
  3. Szerezzen licenszet a Via programohoz, és adja hozzá a Via-hoz!
  4. 1.1. Hello World!

Mérési feladat

  1. A matsim alkalmazásba töltse be és indítsa el a config_01_01.xml szimulációt!
  2. Vizsgálja meg a konfigurációs file-okat és a kimeneti könyvtár-struktúrát (a kimeneti könyvtárat a config file-ban állíthatja be, a config file betöltésekor megjelenik a matsim felületen)!
  3. Töltse be a Via programba a kimeneti hálózatot és eredményeket (lsd segédlet), majd játsza vissza az utolsó iterációt!

Kérdések

  1. Hány felhasználót modellezz a mérés?
  2. Hány iteráción át fut a mérés?
  3. Milyen pontszámot ért el a felhasználó?
  4. Mennyi idővel töltött többet a munkahelyén, mint tervezett?
  5. Mekkora távolságot tett meg összesen a nap folyamán?
  6. Mennyivel volt hosszabb a hazaútja, mint a munkába vezető útja? Miért?
  7. Milyen hibát kap, ha újra futtatja a szimulációt?
  8. Biztosítsa, hogy a szimuláció újra futtatható legyen, és növelje meg ezerre az iterációk számát! Milyen hibát tapasztal a szimuláció futtatásakor?

1.2. Útválasztás

Mérési feladat

  1. Töltse be és indítsa el a config_01_02.xml szimulációt!
  2. Vizsgálja meg a konfigurációs file-okat, és a kimeneti könyvtár-struktúrát, használja a Via programot!
  3. Készítsen alternatív hálózati file-t square_02_diagonal.xml néven. A hálózat tartalmazzon egy kétirányú gyors forgalmú utat (130km/h-s sebességűt) a négyzet lakóhelyhez közeli és munkahelyhez közeli csúcsa közt. Készítsen konfigurációt config_02_diagonal.xml, mely az alternatív hálózatot használja.
  4. Futtasson szimulációt ezzel az alternatív konfigurációval!
  5. Hozzon létre egy square_02_diagonal_slow.xml hálózatot és konfigurációt! Keresse meg azt a sebesség-értéket, ahol már nem éri meg a felhasználónak az átlót választania!

Kérdések

  1. Miben tér el a topológia az előző méréshez képest? Hogyan befolyásolja ez a szimuláció futását?
  2. Mennyivel növeli meg a felhasználó napjának hasznosságát (score) a gyorsforgalmi út?

2. MATSim programozása

Eddig a MATSim-et mint egy alkalmazást futtatta. A mérésnek ebben a szakaszában meg fogja ismerni, hogyan kell könyvtárként használni a MATSim-et. Ehhez az alábbi előkészületekre lesz szüksége.

2.0. Előkészületek

Mérési feladat

  1. Indítsa el az Eclipse fejlesztőkörnyezetet!
  2. Hozzon létre egy matsim nevű Java projektet (File > New > Java Project)
  3. Alakítsa át a projektet Maven projektté (Jobb kattintás a projekten, Configure > Convert to Maven project)!
  4. Másolja hozzá a http://www.matsim.org/downloads oldalon elérhető kiadott (Latest Release) Maven konfigurációs részletet a pom.xml file-hoz a <build> tag elé. Mielőtt elmentené a file-t, csökkentse a verziót 0.7.0-ra. A file mentését követően a Maven Dependencies-ben megjelenik a matsim könyvtár és függőségei. Ellenőrizze, hogy a függőségek közt 0.7.0 verzióval jelent-e meg a matsim!
  5. Indítsa el a matsim felhasználói felületet, most már Eclipse alól!
    ​Run > Run Configurations... > New launch configuration
    Project: matsim, Main class: org.matsim.run.gui.Gui
  6. Futtassa le valamelyik konfigurációt!

 

2.1. Térképfile létrehozása OSM térképből

Mérési feladat

  1. Az http://www.openstreetmap.org/export oldalról töltse le az egyetem környékét ábrázoló térképrészletet (például Móricz - Lágymányosi híd budai hídfő).
  2. Töltse le a RunPNetworkGenerator osztályt, és adja hozzá a projekthez.
  3. Igazítsa az osm mezőt a letöltött file-hoz, és a NetworkWriter write metódusának kimenetét az elvárt kimeneti hálózathoz.
  4. Futtassa le a programot!
  5. Hozzon létre hozzá egy populációs file-t amiben egy magányos egyetemista jár be reggeltől estig tanulni az egyetemre!
  6. Futtassa a scenáriót!

2.2. Populáció létrehozása programkódból

Ennek a feladatnak a során programkódból fogja felépíteni a konfigurációkat és a szimulációt!

Mérési feladat

  1. Tanulmányozza a RunPCreateDrivingAgents mintakódot!
  2. Ez alapján hozzon létre egy új osztályt, ami létrehoz 499 (ennyit enged vizualizálni a Via az ingyenes licensszel) MSc kollegistát, akik mind bemennek egy gyakorlatra 8-12-ig, aztán 15 percre elmennek ebédelni, majd kettőre visszamennek egy előadásra, végül a tanulószobában tanulnak.
  3. A kimeneti mappa meghatározásához a Controler.setOutputDirectory() metódust használhatja.
  4. Használja az előző feladatban létrehozott térkép-fileban meghatározott koordinátákat!
  5. Használja az előző feladatban létrehozott térkép file-t, és futtassa a mintakódnak megfelelően a scenáriót!
  6. Tanulmányozza a kimenetet!

3. Több iterációs szimulációk

Megismerkedhet a MATSim igazi erősségével: az evolúciós modellel. A keretrendszer a megadott stratégia szerint fogja optimalizálni a szereplők napját iterációról iterációra.

3.1. Egyszerű evolúció

Mérési feladat

  1. Töltse be és indítsa el a config_03_01.xml szimulációt!

Kérdések

  1. Milyen evolúciós lépést használ a konfiguráció?
  2. Milyen mértékű javulást ért el a felhasználó a hasznosságban a futások során?
  3. Hányadik iteráció után éri el a felhasználó az optimumot?

3.2. Hasznosságfüggvény

Mérési feladat

  1. Töltse be és indítsa el a config_03_02.xml szimulációt!

Kérdések

  1. Milyen evolúciós lépést használ a konfiguráció?
  2. Értelmezze a pontozásban meghatározott paramétereket!
  3. Vizsgálja meg, hogy milyen közel került az optimumhoz az ágens terve az iterációk alatt!
  4. Készítsen optimális tervet a paraméterekhez, futtassa újra a szimulációt! Mlyen hasznosságot tapasztal?
  5. Becsülje, majd mérje meg, hogy hány iteráció lenne szükséges ennek az optimumnak az eléréséhez. Becslését indokolja!

3.3. A legjobb nap

Térjen vissza az egyetemi térképhez.

Mérési feladat

  1. Készítsen egy konfiguráicós file-t, mely különböző evolúciós lépéseket használ (lsd mérési segédlet)
  2. Hozza létre az egyetemisták hasznosságfüggvényének megfelelő pontozást! Támogasson négy tevékenységet: alvás (h) előadások (w1,w2,w3...) ebéd (l) és önállólabor munka (hw), figyeljen arra, hogy 30 percnél kevesebb időre nem érdemes elővenni az önlabot
  3. Készítsen “egyetemistát”, egy egyszemélyes populációt. Vértezze fel különböző tervekkel, amik az egyetemisták valós döntéseit tükrözik
  4. Futtassa a szimulációt, nézze meg, hogy mi a legjobb terv!