Strona głównaAI i MLOptymalizator sygnalizacji świetlnej

🚦 Optymalizator sygnalizacji świetlnej — Q-learning na żywo

Obserwuj, jak prawdziwy agent tabelarycznego Q-learningu uczy się polityki taktowania sygnalizacji świetlnej metodą prób i nagród, skracając symulowany czas oczekiwania na skrzyżowaniu w miarę zbieżności tabeli Q w kolejnych epizodach.

AI i ML3DZaawansowany60 FPS
ai-traffic-signal-optimization ↗ Otwórz osobno

O tej symulacji

Ten symulator stawia prawdziwego agenta tabelarycznego Q-learningu na czele symulowanego skrzyżowania czterowlotowego i pozwala mu uczyć się, wyłącznie metodą prób i nagród, jak taktować sygnalizację świetlną. Nic w polityce taktowania nie jest zaskryptowane: agent zaczyna z pustą tabelą Q i bez żadnego pojęcia, jak wygląda „dobra” kontrola ruchu, i odkrywa strategię niskiego opóźnienia jedynie przez wielokrotne działanie, mierzenie powstałych kolejek pojazdów i aktualizowanie swoich estymat wartości prawdziwym równaniem Bellmana.

🔬 Co pokazuje

Widok z góry na skrzyżowanie 3D z pojazdami tworzącymi kolejki na każdym z czterech wlotów (Północ, Południe, Wschód, Zachód), gdy narastają przyjazdy, a sygnalizacja okresowo odprowadza po jednej parze kierunków naraz. Pod spodem prawdziwa tabela Q z 1250 zdyskretyzowanymi stanami × 2 akcjami jest aktualizowana przy każdym kroku decyzyjnym wzorem Q(s,a) ← Q(s,a) + α[r + γ·max Q(s′,a′) − Q(s,a)], gdzie nagroda to ujemna wartość rzeczywistego symulowanego opóźnienia w pojazdo-sekundach. Żywa krzywa uczenia śledzi średni czas oczekiwania na epizod treningowy, a mapa cieplna polityki wizualizuje, które kubełki stanów agent nauczył się przełączać, a które utrzymywać.

🎮 Jak korzystać

Dostosuj współczynnik uczenia α, współczynnik dyskonta γ, początkową stopę eksploracji ε i jej zanikanie na epizod, aby zmienić sposób uczenia się agenta. Ustaw częstości przyjazdów dla każdego wlotu, by stworzyć asymetryczny lub symetryczny popyt na ruch. Użyj suwaka szybkości treningu, by przyspieszyć wiele kroków decyzyjnych na klatkę renderowania, tak by tabela Q zbiegała się w sekundy zamiast minut, przełącz na widok mapy cieplnej polityki, by bezpośrednio sprawdzić wyuczone różnice wartości Q, lub naciśnij „Obserwuj zachłannie”, aby zamrozić eksplorację i zobaczyć czysty przebieg aktualnej najlepszej polityki.

💡 Czy wiesz, że...

Ponieważ przestrzeń stanów jest tu wystarczająco mała, by dokładnie ją wyliczyć (1250 stanów × 2 akcje = 2500 wpisów w tabeli), to jeden z niewielu problemów uczenia ze wzmocnieniem, w którym można obserwować zbieżność na żywo każdej pojedynczej komórki tabeli Q, zamiast ufać czarnoskrzynkowemu aproksymatorowi funkcji. Rzeczywiste adaptacyjne systemy sygnalizacji świetlnej (np. SCOOT, SCATS i różne wdrożenia badawcze) używają bogatszych wersji dokładnie tego samego pomysłu — kształtowania nagrody wokół opóźnienia oraz funkcji wartości uczonych lub strojonych online.

Najczęściej zadawane pytania

Czym jest Q-learning?

Q-learning to bezmodelowy algorytm uczenia ze wzmocnieniem, który uczy się oczekiwanej długoterminowej wartości Q(stan, akcja) wykonania każdej akcji w każdym stanie, bez potrzeby posiadania modelu dynamiki środowiska. Aktualizuje tabelę wartości Q za pomocą równania Bellmana, Q(s,a) ← Q(s,a) + α[r + γ·max Q(s′,a′) − Q(s,a)], gdzie α to współczynnik uczenia, γ to współczynnik dyskonta, a r to nagroda otrzymana po wykonaniu akcji. Po wielu próbach tabela Q zbiega się do prawdziwej optymalnej funkcji wartości akcji, z której polityka zachłanna (zawsze wybierz akcję o najwyższej wartości) staje się niemal optymalna.

Jak skrzyżowanie zamienia się w proces decyzyjny Markowa?

Ciągły, rzeczywisty stan ruchu jest dyskretyzowany: każda z czterech kolejek na wlotach (Północ, Południe, Wschód, Zachód) jest przypisywana do jednego z pięciu poziomów (0, 1, 2, 3, 4 lub więcej pojazdów) i łączona z bieżącą fazą sygnalizacji (zielone Północ-Południe lub zielone Wschód-Zachód), tworząc jeden z 1250 możliwych stanów. Agent ma tylko dwie dostępne akcje w każdym punkcie decyzyjnym: zachować bieżącą fazę lub spróbować ją przełączyć (z zastrzeżeniem minimalnego czasu zielonego światła, by światła nie migały). To dokładnie taka struktura stan/akcja/nagroda, jakiej potrzebuje agent tabelarycznego Q-learningu.

Jaki sygnał nagrody napędza uczenie?

Po każdym kroku decyzyjnym symulator liczy całkowitą liczbę pojazdo-sekund opóźnienia nagromadzonych na wszystkich czterech wlotach podczas tego kroku (przyjęty zastępczy wskaźnik rzeczywistego czasu oczekiwania na skrzyżowaniu) i przyznaje agentowi nagrodę równą ujemnej wartości tego opóźnienia, z dodatkową karą odejmowaną za każdym razem, gdy faktycznie dochodzi do przełączenia fazy (reprezentującą stracony czas interwału bursztynowego/pełnej czerwieni). Ponieważ agent jest nagradzany za minimalizację opóźnienia, jego wyuczona polityka jest dosłownie strategią taktowania, która najbardziej skraca symulowany czas oczekiwania, a nie zaskryptowanym czy z góry ustalonym harmonogramem.

Czemu eksploracja epsilon-zachłanna ma znaczenie?

Na wczesnym etapie treningu tabela Q jest całkowicie zerowa, więc czysto zachłanny agent utknąłby, powtarzając cokolwiek, czego spróbował jako pierwsze. Wybór akcji epsilon-zachłanny wybiera losową akcję z prawdopodobieństwem epsilon, a w przeciwnym razie aktualnie najlepiej znaną akcję, gwarantując, że każda para stan-akcja zostanie w końcu spróbowana, by można było nauczyć się jej wartości Q. Epsilon zanika w każdym epizodzie w kierunku małego minimum, więc agent na początku intensywnie eksploruje, a w miarę postępu treningu coraz bardziej wykorzystuje wyuczoną politykę — dokładnie tę krzywą epsilon można obserwować na żywo w panelu statystyk.

Czy krzywa uczenia jest prawdziwa, czy zaskryptowana?

Jest obliczana na żywo na podstawie rzeczywistej wydajności agenta: co 120 kroków decyzyjnych (jeden symulowany epizod) symulator dzieli całkowitą nagromadzoną liczbę pojazdo-sekund opóźnienia przez liczbę pojazdów, które przyjechały, uzyskując prawdziwy średni czas oczekiwania dla tego epizodu, i wykreśla go jako nowy punkt. Żadna docelowa krzywa nie jest narysowana z góry — jeśli źle ustawisz hiperparametry (na przykład zbyt wysokie alfa lub zbyt szybko zanikające epsilon), krzywa może wcześnie osiągnąć plateau lub pozostać zaszumiona, dokładnie tak, jak miałoby to miejsce dla prawdziwego agenta tabelarycznego Q-learningu.

⚙ Co pod maską

Prawdziwy agent tabelarycznego Q-learningu kontroluje symulowane skrzyżowanie czterowlotowe: zdyskretyzowane stany długości kolejek, politykę epsilon-zachłanną nad przestrzenią 2 akcji oraz prawdziwą aktualizację Bellmana działającą na żywo w przeglądarce, trenowaną nieprzerwanie przez wiele symulowanych epizodów.

Reinforcement LearningQ-LearningMarkov Decision ProcessTraffic ControlBellman Equation

3D · renderer Three.js / WebGL · cel 60 FPS · działa w całości w przeglądarce, bez instalacji

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)