630 likes | 763 Views
Traffix. Ágens Alapú Közlekedési Szimulációs Keretrendszer B álint Balázs bbalint@aitia.ai. Bevezetés. A hatékony közlekedésszervezés sok időt és pénzt takaríthat meg, csökkentheti a környezeti terhelést és növelheti a biztonságot. Bevezetés.
E N D
Traffix Ágens Alapú Közlekedési Szimulációs Keretrendszer Bálint Balázs bbalint@aitia.ai
Bevezetés • A hatékony közlekedésszervezés sok időt és pénzt takaríthat meg, csökkentheti a környezeti terhelést és növelheti a biztonságot.
Bevezetés • Egy ideális világban a közlekedés minden résztvevője saját érdekeit félretéve működne együtt azért, hogy a közlekedést a lehető leghatékonyabbá tegye.
Bevezetés • Ebben az esetben egy modellezett úthálózaton egy mindenható központi agy minden egyes időpillanatra meg tudná határozni az járművek ideális sebességét, pozícióját, gyorsulását és az összes többi releváns paraméterét.
Bevezetés • De a valós életben a vezetőknek különböző elképzeléseik vannak arról mi a helyes viselkedés az utakon. • Egyesek szigorúan betartják a szabályokat • Mások nem is ismerik jelentős részüket • Sokan udvariasak és együttműködők • Néhányan ellenségnek tekintik a többi vezetőt • És még ugyanaz az ember is máshogy vezet mikor dühös, siet vagy éppen álmos.
Bevezetés • Az ágens alapú szimuláció sokkal alkalmasabb a probléma kezelésére. • Az ágenseknek különböző jellemzőik lehetnek • Egymástól eltérően viselkedhetnek • Idővel változhat a viselkedésük.
Bevezetés • Az közlekedési szimulációk írásánál az egyik fő kihívás megtalálni a kompromisszumot a realisztikus viselkedés és a számításigény között.
Bevezetés • A Traffix közlekedési keretrendszerben ezt úgy oldottuk meg, hogy: • A realisztikus viselkedés érdekében külön-külön az összes járművet és vezetőt implementáljuk (nem úgy mint a tradicionális folyadék alapú modellekben) • De számításigény csökkentéséhez az autók „hozzá vannak ragasztva a sávokhoz, úgy követik őket mintha sínen futnának
Technikai leírás • A Traffix egy általános közlekedési szimulációs keretrendszer amely sokféle közlekedési forgatókönyv modellezésére alkalmas, mint például: • Egyszerű kereszteződések • Többsávos utak • Vagy akár egész városrészek forgalmának szimulációja.
Technikai Leírás • Egy kereszteződés modellezése
Technikai Leírás • Egy városrész modellezése
Technikai leírás • Java – ban íródott • A Repast 3.1 ágens-alapú szimulációs platformra épül • A felhasználók felülírhatják a keretrendszer komponenseit.
Technikai leírás • Lehetővé teszi minimális Java képzettséggel rendelkező modellezők számára, hogy: • Bonyolult közlekedési forgatókönyveket hozzanak létre • Különböző vezetői viselkedéseket határozzanak meg • Különböző tulajdonságokkal rendelkező autókat hozzanak létre
Technikai leírás • Lehetővé teszi a kísérletezést különböző • sávváltó • követési távolság tartó • útvonalkereső • stb. viselkedésekkel.
Egy Traffix modell főbb komponensei • Úthálózat • Közlekedési tárgyak (lámpák stb) • Vezetők • Autók
Úthálózat • Az úthálózat gráfja a következőkből áll • Csúcsok • a kereszteződéseket illetve az utakat reprezentáló törtvonalak töréspontjait jelölik. • Élek • az utak egyenes szakaszait jelölik • Sávok • Értelemszerűen egy sávot jelöl egy élen.
Úthálózat • Az úthálózatot kétféle forrásból veheti a modell • Egy speciális szintaktikájú szövegfájlból • A felhasználók által definiált úthálózatokhoz • ESRI Shapefile-ból • Valódi úthálózatokhoz.
Egy él és sávjai • <a kezdőcsúcs X koordinátája <double>> <a kezdőcsúcs Y koordinátája <double>> • <a végcsúcs X koordinátája <double>> • <a végcsúcs Y koordinátája <double>> • <az élhez rendelt sávok száma <int>> • <az él kezdetéhez tartozó eltolás érték • <double>> <az él végéhez tartozó eltolás érték <double>>
Sávok öszekapcsolása • <”s”> <annak az élnek az azonosítója, amelynek a végpontjához kapcsolni akarunk egy másik élt <int>> • Ezt számhármasok követik: • <a másik él azonosítója <int>> <az első élhez tartozó sáv sorszáma <int>> <a másik élhez tartozó sáv sorszáma <int>>
Traffix Tárgyak • Közlekedési lámpák • Záró és szaggatott vonalak • Útlezárások
Lámpák • laneId: Annak a sávnak az azonosítója, amihez a lámpa tartozik • red_time: Az idő (szimulációs lépésekben), amikor a lámpa piros • green_time: Az idő (szimulációs lépésekben), amikor a lámpa zöld • red_and_yellow_time: Az idő (szimulációs lépésekben), amikor a lámpa piros-sárga • yellow_time: Az idő (szimulációs lépésekben), amikor a lámpa sárga • initial_time: • position
Járművek I • Fizikai attribútumok • Hossz • Szélesség • Gyorsulás – pillanatnyi és maximális • Típus • Sebesség – pillanatnyi és maximális • Pozíció
Jármű II • Implementálja a vezetője • sávváltó • Kereszteződésen áthajtó • Autó követő • Közlekedési lámpánál tanúsított viselkedését
Vezető • Meghatározza az autó útvonalát. • A default viselkedés az, hogy a lehető legrövidebb utat választja a lehető legkevesebb sávváltással. • Nem kommunikálnak egymással vagy a modell bármilyen más komponensével. • Megfigyelik a többi autót és reagálnak rájuk.
Új szimuláció létrehozása • Örököltessünk egy új modell osztályt a TrafficModel osztályból. • Adjuk meg a forrásfájlokat az • úthálózathoz • a közlekedési lámpákhoz • az autókhoz
Örököltetés a TrafficModel Osztályból • Meg lehet határozni melyik jármű illetve vezető osztályt használja a szimuláció. • Két előre meghatározott jármű osztály és egy vezető osztály létezik. • Belőlük lehet új jármű és vezető osztályokat örököltetni.
Az úthálózat forrásfájlja • Felhasználó által meghatározott úthálózathoz. • Két szövegfájl ami leírja • Az éleket és a rajtuk található sávokat. • Hogyan folytatódnak egymásban a szomszédos élek sávjai. • Térképpel megadott úthálózathoz • ESRI Shapefile
A közlekedési lámpák forrásfájlja • Lámpánként a következőket tartalmazza • Melyik sávhoz tartozik • A pozíciója a sávon • A különböző állapotainak ideje (Piros, piros-sárga stb.) • A ciklusának hányadik lépésében van a szimuláció kezdetekor
Az autók forrásfájlja • Start-cél párokat és a hozzájuk egy-egy pozitív egész számot (n) tartalmaz • Minden n-ik lépésben egy új autó kezdi meg az útját a megadott startból a megadott célba. • Tehát a szimulációnkban tetszőleges pontokból tetszőleges gyakoriságokkal indíthatunk autókat az általunk kiválasztott célok felé.
Alapvető Mérőszámok • Sebesség – V • Sűrűség – K (Jármű/km) • Flow vagy Áteresztőképesség: Egy adott ponton időegység alatt áthaladó járművek száma
Az áteresztőképességet a sebesség és a sűrűség szorzataként kapjuk: Q=V*K • Mértékegysége jármű/óra
A sebesség és a sűrűség összefüggése kevésbé nyilvánvaló. • Greenshields (1934) szerint így függnek össze (Vmax az elméleti maximális sebesség, Kd a maximális sűrűség dugó esetén):
A közlekedés sebessége csökken az elméleti maximum értékről ahogy a sűrűség közelíti a maximumát, mivel a vezetőknek • egyre több autóra kell figyelniük, • gyakrabban és intenzívebben kell fékezniük.
A két képletet kombinálva: • Ahogy a sűrűség nő a flow először növekszik majd miután elérte maximumát csökkenni kezd. Ez a küszöb (ahol a flow maximális) jelzi az úthálózat kapacitását, gyakran c-vel jelölik. • A küszöbértéknél a flow instabillá válik és a sűrűség növekedésével csökkenni kezd.
A Traffix-os szimulációkban is igazak a fenti összefüggések • Terveztünk egy egyszerű úthálózatot ahol minden autó ugyanolyan hosszú utat tesz meg
A sebességet hosszegység/szimulációs lépésben mértük • A sűrűséget jármű/1000 hosszegységben • A flow-t jármű/5000 szimulációs lépésben • 12 különböző forgatókönyvvel végeztünk futtatásokat, ahol a legnagyobb forgalomnál 5 lépésenként léptek be autók, míg a legkisebbnél 70 lépésenként. • Az adatgyűjtés 500 szimulációs lépés megtétele után kezdődött és 5000 lépésen keresztül tartott.
A K és V közti lineáris összefüggés nem áll, de a monoton csökkenés itt is megfigyelhető. • A másik két görbe alakja is kevésbé szabályos, de tulajdonságaik megfelelnek az elméleti párjaik tulajdonságainak.
Háromféle forrásfájlt használtunk az autók betevéséhez, melyek kis, közepes és nagy forgalomnak feleltek meg. • Négyféle forrásfájl a lámpákhoz, minden egyes fájlban kétszer hosszabb ideig zöld mint az előzőben, a sárga mindig ugyanannyi ideig tart.
Mértük a • teljes vezetői populáció átlagos utazási idejét mértük • valamint a throughput-ot, a céljukat elért autók számát. • Minden autó forrásfájl – lámpa forrásfájl párral öt mérést csináltunk és ezeket átlagoltuk.
Kis és közepes forgalomnál a throughput nem függ a lámpák hangolásától. De az átlagos utazási idő jelentősen romlik ahogy a lámpák egyre több idő telik el két váltás közt, mivel általában az első zöldön át tudnak menni, és minél később tovább tart a piros annál többet várnak.
Nagy forgalomnál az autóknak több lámpaváltást is ki kell várniuk mielőtt áthaladhatnak a kereszteződésen. Mikor zöldre vált a lámpa az elől várakozó autóknak időbe telik míg felgyorsulnak, ezért a zöld elején kevesebb autó és lassabban halad át mint később. Minél hosszabb ideig zöld a lámpa annál több autó megy át a kereszteződésen nagy sebességgel. Következésképp nő a throughput és csökken az átlagos utazási idő.
0, 20, 40, 80 és 160 egység hosszú kanyarodósávokat használtunk. • Négyféle forrásfájlt az autókhoz a kis forgalomtól a csúcsforgalomig. • Mértük a vízszintes utakon egyenesen közlekedők átlagos utazási sebességét és a throughputot. • Megint öt futtatást csináltunk minden párral (kanyarodósáv – autó forrás fájl)
Kis forgalomnál a kanyarodásra várakozók nem tartják fel jelentősen az egyenesen menőket, még akkor sem ha nincs is kanyarodósáv. Ahogy a forgalom nő egyre hosszabb kanyarodósávokra van szükség ahhoz, hogy ne tartsák fel a kanyarodók az egyenesen menőket.