Menetrend optimalizálása genetikus algoritmussal Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Evolúciós algoritmusok intelligens ágensek optimalizálására Menetrend optimalizálása genetikus algoritmussal Készítette: Svigruha Gergely BSc Konzulens: Kovács Dániel László MIT
Tartalom Probléma Lehetséges megközelítések Genetikus algoritmusok A probléma egy megoldása Teszteredmények Összefoglalás és kitekintés
Kiindulási probléma Menetrend optimalizálása
Feladat kiírás „Olyan rendszer készítése, amely optimalizálja egy tömegközlekedési hálózat menetrendjét!” Bizonyos előre megadott szakaszok mentén minimalizáljuk az áthaladás költségét Költség az áthaladási idő Konkretizálások Csak busz járatok A menetrend ezen járatok egy elrendezése Csak járat csatlakozásra optimalizál
A feladat modellje Város úthálózata irányított gráf Időbeli késleltetés élsúlyok Járatok körök a gráfban Állomások kitüntetett csúcsok a gráfban Teszt utak utak a gráfban Buszok száma Hozzárendelés az egyes járatokhoz Lehetséges megközelítések Analitikus Heurisztikus Keresési módszerek Lágy számítási módszerek Genetikus algoritmus Genetikus algoritmusok előnyei Genetikus algoritmus hátrányai Kezelhető komplexitás Véges időben általában szuboptimális Egyszerű megvalósítás Nem triviális paraméter beállítások Konvergál a globális optimumhoz
Genetikus algoritmusok Egyed génlánc Populáció Általában fix méretű Fitness minden egyedre jellemző „jósági” számérték Generáció Szelekció Rulett kerék módszer Legjobb n egyed Elitizmus Kereszteződés Egy / több pontú Valószínűség Mutáció Leállási feltételek Genetikus operátorok
Specifikáció és implementáció Egyed Menetrend(Járat elrendezés) körök halmaza Gén Egy adott járat Egy adott kör a gráfban Fitness adott járat elrendezés mellett összesített várakozási idő várható értéke a súlyozott teszt utak mentén Szelekció rulett kerék módszer, elitizmus Kereszteződés egy pontú Mutáció véletlen kör keresése (séta) a gráfban Implementáció Szoftver platform: MATLAB Gyors, egyszerű fejlesztés Támogatás a hatékony algoritmus implementációkhoz Probléma generáló program C#-ban
Tesztek, értékelés Paraméterek hangolása tapasztalatok alapján Pm: 0.05-0.1 Pc: 0.5 Populáció mérete: 20-30 Futási idő Csak a gráf méretével lineárisan arányos Ha a gráf méretével arányosan növeljük a teszt utak és a járatok számát, akkor O(n3)
Összefoglalás és kitekintés További terveim Kevésbé elnagyolt modell Napszakok figyelembe vétele Járatokhoz kapacitás rendelése Több típusú járat Más fajta költség értelmezések Implementáció hatékonyabbá tétele Ergonomikusabb GUI Több szálúvá tétel Más programnyelvek, platformok használata Evolúciós algoritmusok (főképp genetikus) megismerése Modell megtervezése Algoritmusok megtervezése, összevetése (mutáció, szelekció) MATLAB-os implementáció Véletlen probléma generátor készítése Batch tesztek, értékelések, paraméter hangolások Grafikus probléma szerkesztő
Köszönöm a figyelmet! Kérdések ?