System zarządzania ruchem bazujący na symulacji komputerowej
Transkrypt
System zarządzania ruchem bazujący na symulacji komputerowej
System zarządzania ruchem bazujący na symulacji komputerowej Paweł Gora Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski [email protected] http://www.mimuw.edu.pl/~pawelg Problemy z istniejącymi systemami zarządzania ruchem Reaktywność, ale nie proaktywność (reagują na przeszłe warunki, nie przewidują przyszłych) Problemy z istniejącymi systemami zarządzania ruchem Reaktywność, ale nie proaktywność (reagują na przeszłe warunki, nie przewidują przyszłych) Mogą być wystarczające dla regularnych, powtarzalnych warunków, ale nie będą wystarczające w przypadku dużych zmian (wypadek, zła pogoda) Problemy z istniejącymi systemami zarządzania ruchem Reaktywność, ale nie proaktywność (reagują na przeszłe warunki, nie przewidują przyszłych) Mogą być wystarczające dla regularnych, powtarzalnych warunków, ale nie będą wystarczające w przypadku dużych zmian (wypadek, zła pogoda) Relatywnie mała liczba możliwych modyfikacji Problemy z istniejącymi systemami zarządzania ruchem Reaktywność, ale nie proaktywność (reagują na przeszłe warunki, nie przewidują przyszłych) Mogą być wystarczające dla regularnych, powtarzalnych warunków, ale nie będą wystarczające w przypadku dużych zmian (wypadek, zła pogoda) Relatywnie mała liczba możliwych modyfikacji Brak dokładnej ewaluacji zmian wprowadzonych do systemu zarządzania ruchem Problemy z istniejącymi systemami zarządzania ruchem Reaktywność, ale nie proaktywność (reagują na przeszłe warunki, nie przewidują przyszłych) Mogą być wystarczające dla regularnych, powtarzalnych warunków, ale nie będą wystarczające w przypadku dużych zmian (wypadek, zła pogoda) Relatywnie mała liczba możliwych modyfikacji Brak dokładnej ewaluacji zmian wprowadzonych do systemu zarządzania ruchem Brak skalowalno ci, wątpliwa efektywno ć w przypadku dużych sieci drogowych Czy możemy znaleźć optymalne ustawienia dla nietypowych warunków lub dużego popytu? To jest zbyt złożone dla istniejących metod! Złożoność: 10700 (liczba możliwych gier w Go) Złożoność: 120800 (liczba możliwych ustawień sygnalizacji świetlnej) Rozwiązanie System zarządzania ruchem bazujący na symulacji komputerowej System zarządzania ruchem bazujący na symulacji komputerowej Jak to działa? Pozyskiwanie danych rzeczywistych Budowa wirtualnego modelu ruchu Zastosowanie symulacji, AI i chmury obliczeniowej do znajdowania (sub)optymalnych ustawień sygnalizacji Zastosowanie (sub)optymalnych ustawień do kontroli rzeczywistego ruchu I to wszystko w czasie rzeczywistym! Zbieranie danych rzeczywistych Dane GNSS pozyskane przez urządzenia mobilne lub komputery pokładowe wyznaczają trasę pojazdu (sekwencja położeń i prędkości) Wsparcie SBAS (EGNOS) Dane GNSS Dane GNSS Dane GNSS Pętle indukcyjne, kamery, radary, lidary i komunikacja pojazd-pojazd (V2V) mogą poprawić dokładność Zbieranie danych rzeczywistych Wsparcie SBAS (EGNOS) Dane GNSS Dane GNSS V2I Komunikacja pojazd-infrastruktura (V2I) może dać nawet lepszą dokładność (dokładna lokalizacja odbiorników V2I może być wyznaczona dzięki danym GNSS) Zbieranie danych rzeczywistych Drony z sensorami / kamerami mogą również poprawić dokładno ć wyznaczania lokalizacji Dane GNSS Wsparcie SBAS (EGNOS) Lokalizacja pojazdów Dane GNSS V2I Zbieranie danych rzeczywistych Chmura obliczeniowa Komunikacja V2I może być realizowana poprzez Dedicated Short-Range Communication (DSRC) V2I (pozycja, prędkość, trasa) Dane rzeczywiste (pozycja, prędkość, trasa wszystkich pojazdów + ustawienia sygnalizacji + warunki pogodowe + inne warunki) Jeśli pewne trasy nie są dostępne (np., kierowca nie chce udostępnić swojej trasy), mogą być prognozowane w oparciu o trasę pojazdu, domyślną macierz podróży i historyczne dane rzeczywiste (brakujące dane mogą być aproksymowane). Budowa wirtualnego modelu ruchu Dane rzeczywiste (pozycja, prędkość, trasa wszystkich pojazdów + ustawienia sygnalizacji + warunki pogodowe + inne warunki) Statyczne dane (struktura sieci drogowej + domyśla macierz OŹ + parametry modelu ruchu + inne dane statyczne) Wirtualny model ruchu ((estymowane) macierze OD + trasy + profile kierowców / pojazdów + reguły symulacji + inne warunki początkowe) Zastosowanie symulacji, AI i chmury obliczeniowej do znajdowania (sub)optymalnych ustawień sygnalizacji Wirtualny model ruchu Jako ć ustawienia sygnalizacji Zastosowanie symulacji, AI i chmury obliczeniowej do znajdowania (sub)optymalnych ustawień sygnalizacji Traffic Simulation Framework Mikroskopowy i mezoskopowy model ruchu Duże obszary miejskie (np. Warszawa, Pekin) Mapy z serwisu OpenStreetMap GUI przyjazny użytkownikowi Dobra efektywność Screencast: http://www.mimuw.edu.pl/~pawelg/traffic_simulator/Screencast/tsf.wmv Zastosowanie symulacji, AI i chmury obliczeniowej do znajdowania (sub)optymalnych ustawień sygnalizacji Ustawienia sygnalizacji, trasy dekodowanie Wirtualny model ruchu Obliczenia w klastrach kodowanie Genotypy selekcja reprodukcja mutacja ~100 000 ustawień ewaluowanych przez symulację Ewaluacja Trenowanie sieci neuronowych Co można optymalizować w czasie rzeczywistym? Ustawienia sygnalizacji Trasy Wiadomości dla uczestników ruchu Algorytmy jazdy (CAVs) Znajdowanie optymalnych ustawień sygnalizacji Problem: • dany jest graf skierowany sieci drogowej • pojazdy mają początkowe położenia na krawędziach, statyczne trasy i reguły ruchu • niektóre wierzchołki są lokalizacjami sygnalizacji • atrybuty sygnalizacji: czas trwania fazy wiatła czerwonego, czas trwania fazy wiatła zielonego i offset, które mogą być modyfikowane • globalne ustawienie sygnalizacji: offsety dla wszystkich sygnalizacji • funkcja F oblicza jako ć globalnego ustawienia sygnalizacji Znajdź globalne ustawienie sygnalizacji, które jest optymalne dla F. Problem jest NP-trudny nawet dla bardzo prostych przypadków. [Yang, Yeh, 1996] Jak działa optymalizacja w czasie rzeczywistym? Konstrukcja procedury ewaluacyjnej 1. Podzbiór ustawień (np. 100 000 ustawień) jest ewaluowany poprzez mikroskopowe (lub mezoskopowe) symulacje by stworzyć zbiór treningowy dla algorytmów machine learning, mających na celu aproksymację wyników symulacji. Jak działa optymalizacja w czasie rzeczywistym? Konstrukcja procedury ewaluacyjnej 1. Podzbiór ustawień (np. 100 000 ustawień) jest ewaluowany poprzez mikroskopowe (lub mezoskopowe) symulacje by stworzyć zbiór treningowy dla algorytmów machine learning, mających na celu aproksymację wyników symulacji. 2. Ewaluacja może być zrównoleglona (uruchamianie symulacji w klastrze obliczeniowym (wiele rdzeni) przy użyciu Apache Spark + zrównoleglanie pojedynczej symulacji). Jak działa optymalizacja w czasie rzeczywistym? Konstrukcja procedury ewaluacyjnej 1. Podzbiór ustawień (np. 100 000 ustawień) jest ewaluowany poprzez mikroskopowe (lub mezoskopowe) symulacje by stworzyć zbiór treningowy dla algorytmów machine learning, mających na celu aproksymację wyników symulacji. 2. Ewaluacja może być zrównoleglona (uruchamianie symulacji w klastrze obliczeniowym (wiele rdzeni) przy użyciu Apache Spark + zrównoleglanie pojedynczej symulacji). 3. Sieci neuronowe (lub inne algorytmy machine learning) są trenowane (np. przy użyciu metody Adam [Kingma, Ba, 2014]) celem aproksymacji wyników ewaluacji; w typowych warunkach trenowanie jest uruchamiane raz na godzinę (lub rzadziej), w nietypowych – w czasie rzeczywistym. Jak działa optymalizacja w czasie rzeczywistym? Konstrukcja procedury ewaluacyjnej 1. Podzbiór ustawień (np. 100 000 ustawień) jest ewaluowany poprzez mikroskopowe (lub mezoskopowe) symulacje by stworzyć zbiór treningowy dla algorytmów machine learning, mających na celu aproksymację wyników symulacji. 2. Ewaluacja może być zrównoleglona (uruchamianie symulacji w klastrze obliczeniowym (wiele rdzeni) przy użyciu Apache Spark + zrównoleglanie pojedynczej symulacji). 3. Sieci neuronowe (lub inne algorytmy machine learning) są trenowane (np. przy użyciu metody Adam [Kingma, Ba, 2014]) celem aproksymacji wyników ewaluacji; w typowych warunkach trenowanie jest uruchamiane raz na godzinę (lub rzadziej), w nietypowych – w czasie rzeczywistym. 4. By przyspieszyć proces trenowania, algorytmy machine learning (np. sieci neuronowe) mogą być zastosowane ponownie (np. sieci neuronowe mogą być trenowane, aby wyznaczyć wpływ zmian na istniejącą, domyślną sieć neuronową, aby ją przebudować). Jak działa optymalizacja w czasie rzeczywistym? Konstrukcja procedury ewaluacyjnej 1. Podzbiór ustawień (np. 100 000 ustawień) jest ewaluowany poprzez mikroskopowe (lub mezoskopowe) symulacje by stworzyć zbiór treningowy dla algorytmów machine learning, mających na celu aproksymację wyników symulacji. 2. Ewaluacja może być zrównoleglona (uruchamianie symulacji w klastrze obliczeniowym (wiele rdzeni) przy użyciu Apache Spark + zrównoleglanie pojedynczej symulacji). 3. Sieci neuronowe (lub inne algorytmy machine learning) są trenowane (np. przy użyciu metody Adam [Kingma, Ba, 2014]) celem aproksymacji wyników ewaluacji; w typowych warunkach trenowanie jest uruchamiane raz na godzinę (lub rzadziej), w nietypowych – w czasie rzeczywistym. 4. By przyspieszyć proces trenowania, algorytmy machine learning (np. sieci neuronowe) mogą być zastosowane ponownie (np. sieci neuronowe mogą być trenowane, aby wyznaczyć wpływ zmian na istniejącą, domyślną sieć neuronową, aby ją przebudować). 5. Trenowane algorytmy machine learning mogą być użyte do ewaluacji znacznie większego zbioru możliwych ustawień (każda ewaluacja zajmuje tylko milisekundy lub mniej). Jak działa optymalizacja w czasie rzeczywistym? Zastosowanie procedury ewaluacji 6. Gdy możemy obliczać dużą liczbę ewaluacji w czasie rzeczywistym, możemy zastosować je w algorytmach metaheurystycznych (np. algorytm genetyczny) do znajdowania (sub)optymalnych konfiguracji. Jak działa optymalizacja w czasie rzeczywistym? Zastosowanie procedury ewaluacji 6. Gdy możemy obliczać dużą liczbę ewaluacji w czasie rzeczywistym, możemy zastosować je w algorytmach metaheurystycznych (np. algorytm genetyczny) do znajdowania (sub)optymalnych konfiguracji. 7. Skupiam się na algorytmie genetycznym, który dotychczas dał najlepsze wyniki. Najpierw: ustawienia są kodowane jako genotypy, ich losowo wybrany podzbiór jest poddawany ewaluacji. Jak działa optymalizacja w czasie rzeczywistym? Zastosowanie procedury ewaluacji 6. Gdy możemy obliczać dużą liczbę ewaluacji w czasie rzeczywistym, możemy zastosować je w algorytmach metaheurystycznych (np. algorytm genetyczny) do znajdowania (sub)optymalnych konfiguracji. 7. Skupiam się na algorytmie genetycznym, który dotychczas dał najlepsze wyniki. Najpierw: ustawienia są kodowane jako genotypy, ich losowo wybrany podzbiór jest poddawany ewaluacji. 8. Selekcja: najlepsze genotypy są wybierane zgodnie z wynikami ewaluacji (np., square root selection lub fitness proportional selection). Jak działa optymalizacja w czasie rzeczywistym? Zastosowanie procedury ewaluacji 6. Gdy możemy obliczać dużą liczbę ewaluacji w czasie rzeczywistym, możemy zastosować je w algorytmach metaheurystycznych (np. algorytm genetyczny) do znajdowania (sub)optymalnych konfiguracji. 7. Skupiam się na algorytmie genetycznym, który dotychczas dał najlepsze wyniki. Najpierw: ustawienia są kodowane jako genotypy, ich losowo wybrany podzbiór jest poddawany ewaluacji. 8. Selekcja: najlepsze genotypy są wybierane zgodnie z wynikami ewaluacji (np., square root selection lub fitness proportional selection). 9. Reprodukcja: pary najlepszy genotypów krzyżują się i tworzą nowe genotypy (geny mogą być grupowane wg geograficznej bliskości sygnalizacji). Pewne wartości nowych genotypów są mutowane. Jak działa optymalizacja w czasie rzeczywistym? Zastosowanie procedury ewaluacji 6. Gdy możemy obliczać dużą liczbę ewaluacji w czasie rzeczywistym, możemy zastosować je w algorytmach metaheurystycznych (np. algorytm genetyczny) do znajdowania (sub)optymalnych konfiguracji. 7. Skupiam się na algorytmie genetycznym, który dotychczas dał najlepsze wyniki. Najpierw: ustawienia są kodowane jako genotypy, ich losowo wybrany podzbiór jest poddawany ewaluacji. 8. Selekcja: najlepsze genotypy są wybierane zgodnie z wynikami ewaluacji (np., square root selection lub fitness proportional selection). 9. Reprodukcja: pary najlepszy genotypów krzyżują się i tworzą nowe genotypy (geny mogą być grupowane wg geograficznej bliskości sygnalizacji). Pewne wartości nowych genotypów są mutowane. 10. Procedura jest powtarzana aż spełniony będzie warunek stopu (np. uda się znale ć dostatecznie dobre ustawienie, z dużym prawdopodobieństwem zapewniające, że nie będą tworzyć się korki). źfektywność, niezawodność i skalowalność tego procesu jest zapewniana poprzez Apache Spark i zastosowanie chmury obliczeniowej. Znajdowanie optymalnych ustawień sygnalizacji 18.12% redukcja czasów czekania (najlepszy wynik osiągnięty do tej pory ) Znajdowanie optymalnych ustawień sygnalizacji Model mikroskopowy Model mezoskopowy Dokładno ć aproksymacji przy użyciu sieci neuronowych (względna różnica między czasami czekania) redni błąd: 2.09% Maks. błąd: 9.8% redni błąd: 0.07% Maks. błąd: 0.41% Skuteczno ć optymalizacji przy użyciu algorytmu genetycznego (redukcja czasów czekania) Najlepszy wynik: 3.11% Najlepszy wynik: 5.7118.12% Zastosowanie (sub)optymalnych ustawień do rzeczywistego ruchu Dane rzeczywiste (pozycja, prędko ć, trasa wszystkich pojazdów + ustawienia sygnalizacji + warunki pogodowe + inne warunki) Trasy, ustawienia sygnalizacji V2I (pozycja, prędko ć, trasa) Trasa Ustawienia sygnalizacji Przyszłość może być jeszcze lepsza! Pojazdy autonomiczne i komunikujące się (CAVs) zrewolucjonizują transport Zachowanie człowieka-kierowcy jest praktycznie nieprzewidywalne Zachowanie CAVs może być dużo bardziej przewidywalne Pojazdy autonomiczne i komunikujące się (CAVs) zrewolucjonizują transport Można będzie symulować algorytmy jazdy i interakcji CAV Można będzie przewidywać warunki ruchu ze znacznie większą dokładnością Można będzie znajdować lepsze ustawienia sygnalizacji świetlnej System zarządzania ruchem bazujący na symulacji komputerowej może dać jeszcze lepsze wyniki Bezzałogowe pojazdy latające Mój pomysł może być skuteczny również w przypadku dronów i bezzałogowych pojazdów latających (gdy ich ilo ć w powietrzu będzie bardzo dużaŚ http://www.airbusgroup.com/int/en/news-media/corporate-magazine/Forum-88/My-Kind-Of-Flyover.html ) ródło: https://www.amazon.com/b?node=8037720011 Podobne podej cia (zastosowanie metod z zarządzania ruchem drogowym do zarządzania ruchem powietrznym) jest testowane przez NASA: https://utm.arc.nasa.gov . Dlaczego mój pomysł może okazać się lepszy niż istniejące rozwiązania? Uwzględnianie pojazdów autonomicznych i komunikujących się (ruch będzie mógł być prognozowany ze znacznie większą dokładno cią!) Dlaczego mój pomysł może okazać się lepszy niż istniejące rozwiązania? Uwzględnianie pojazdów autonomicznych i komunikujących się (ruch będzie mógł być prognozowany ze znacznie większą dokładno cią!) Dane satelitarne (GNSS), V2X, lidary, radary, a nie (tylko) kamery i pętle indukcyjne (lepsza dokładno ć detekcji, istotniejsze dane, mniejsza cena instalacji i utrzymania) Dlaczego mój pomysł może okazać się lepszy niż istniejące rozwiązania? Uwzględnianie pojazdów autonomicznych i komunikujących się (ruch będzie mógł być prognozowany ze znacznie większą dokładno cią!) Dane satelitarne (GNSS), V2X, lidary, radary, a nie (tylko) kamery i pętle indukcyjne (lepsza dokładno ć detekcji, istotniejsze dane, mniejsza cena instalacji i utrzymania) Zaawansowana predykcja ruchu (symulacje + algorytmy machine learning) Dlaczego mój pomysł może okazać się lepszy niż istniejące rozwiązania? Uwzględnianie pojazdów autonomicznych i komunikujących się (ruch będzie mógł być prognozowany ze znacznie większą dokładno cią!) Dane satelitarne (GNSS), V2X, lidary, radary, a nie (tylko) kamery i pętle indukcyjne (lepsza dokładno ć detekcji, istotniejsze dane, mniejsza cena instalacji i utrzymania) Zaawansowana predykcja ruchu (symulacje + algorytmy machine learning) Niezawodno ć i skalowalno ć zapewniona przez działanie w chmurze obliczeniowej Dlaczego mój pomysł może okazać się lepszy niż istniejące rozwiązania? Uwzględnianie pojazdów autonomicznych i komunikujących się (ruch będzie mógł być prognozowany ze znacznie większą dokładno cią!) Dane satelitarne (GNSS), V2X, lidary, radary, a nie (tylko) kamery i pętle indukcyjne (lepsza dokładno ć detekcji, istotniejsze dane, mniejsza cena instalacji i utrzymania) Zaawansowana predykcja ruchu (symulacje + algorytmy machine learning) Niezawodno ć i skalowalno ć zapewniona przez działanie w chmurze obliczeniowej Ewaluacja większej liczby ustawień Dlaczego mój pomysł może okazać się lepszy niż istniejące rozwiązania? Uwzględnianie pojazdów autonomicznych i komunikujących się (ruch będzie mógł być prognozowany ze znacznie większą dokładno cią!) Dane satelitarne (GNSS), V2X, lidary, radary, a nie (tylko) kamery i pętle indukcyjne (lepsza dokładno ć detekcji, istotniejsze dane, mniejsza cena instalacji i utrzymania) Zaawansowana predykcja ruchu (symulacje + algorytmy machine learning) Niezawodno ć i skalowalno ć zapewniona przez działanie w chmurze obliczeniowej Ewaluacja większej liczby ustawień Lepsza adaptowalno ć do warunków nietypowych (wypadek, zła pogoda) Dziękuję! Paweł Gora [email protected] http://www.mimuw.edu.pl/~pawelg „Logic can get you from A to B. Imagination will take you everywhere.” A. Einstein „Sky is not the limit”