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”

Podobne dokumenty