ГоловнаСтаттіKinematics & Mechanics

Projectile Motion Simulation

Experiment with different projectile launch conditions and witness the impact on their flight path, solidifying your grasp of fundamental physics principles.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Визначені часові проміжки проти навчання з черги

Звичайний світлофор працює за фіксованим часовим циклом: зелений для сходу-заходу на 30 секунд, потім червоне утримання, а потім зелений для заходу-сходу на 30 секунд, повторюється безперервно, незалежно від того, чи є будь-який транспортний засіб на жодній з під’їздів. Це просто і передбачувано, але надзвичайно неефективно використовує зелені часові проміжки на порожніх під’їздах о 2:00 ночі та позбавляє від завантаженості під’їзд під час пік часу. Ця симуляція навчить агента Q-навчання в режимі реального часу, у вашому браузері, керувати тим самим перехрестя, читаючи довжини черги та вибираючи, який напрямок отримує зелений колір — і порівнює його з фіксованим часовим циклом, щоб розрив був видимим, а не просто заявленим.

жива демонстрація · пов'язана симуляція● LIVE

Оцінка перетину як Марковського процесу рішень

Для навчання з підкріпленням потрібний стан, набір дій та винагорода. У цьому випадку станом є дискриміноване представлення перетину — зазвичай довжина черги на кожному під'їзді, яка групується в невелику кількість рівнів, плюс який режим зараз активний і як довго він активний. Дія полягає у тому, що це невелика дія: зберігати поточний режим або переходити до наступного. Винагорода, що видається після кожної дії, негативна та пропорційна чомусь, що дійсно важливо для міста — загальній кількості транспортних засобів, які чекають, або сумарному часу очікування — тому агент явно намагається мінімізувати накопичений час очікування, а не максимізувати пропускну здатність як абстрактне число.

state  = (queue_N, queue_S, queue_E, queue_W, current_phase, phase_duration)
action = { keep_phase, switch_phase }
reward = - (total vehicles waiting this step)

Оцінювання за допомогою Q-навчання: оновлення правила

Q-навчання підтримує таблицю Q(s, a), яка оцінює довгостроковий знижений прибуток від виконання дії a в стані s і подальше оптимальне дію вічно. Кожен крок він спостерігає перехід (s, a, r, s') і змушує таблицю рухатися до спостережуваних даних:

Q(s, a) Термін у дужках є тимчасова похибка: різниця між тим, що очікував агент (стара Q-значення) і тим, що він тепер вважає ближчим до правди (отриманий приз плюс найкраща оцінка всього після нього). Повторюється тисячами перетинів циклів, таблиця сходиться до справжньої оптимальної функції дії-цінності без будь-якого повідомлення про основні принципи черги — він навчається лише за допомогою спроб, помилок і сигналу винагороди.

Q(s, a) <- Q(s, a) + alpha * [ r + gamma * max_a' Q(s', a') - Q(s, a) ]

alpha = learning rate   (how much to trust the newest sample)
gamma = discount factor  (how much future reward matters vs. immediate)

Дослідження проти експлуатації

Агент, який завжди обирає дію з найвищим поточним Q-значенням, може застрягти, експлуатуючи посередню політику, яку він виявив на ранньому етапі, ніколи не відкриваючи кращої. Епсилон-грибний пошук вирішує це простим компромісом: з ймовірністю епсилона виконується випадкова дія замість слідуючої, і епсилон зменшується в процесі навчання, щоб агент міг активно досліджувати на ранньому етапі (коли таблиця Q ще ненадійна) та впевнено експлуатувати пізніше (когда таблиця зафіксувалась). Цей графік зменшення є найбільш помітним регулюванням у темпі зростання кривої навчання в демонстрації — недостатньо дослідження призводить до того, що агент рано приймає погану політику; надмірна експлуатація витрачає час на те, щоб ніколи не зафіксуватись.

action = random(actions)         with probability epsilon(t)
       = argmax_a Q(state, a)     with probability 1 - epsilon(t)
epsilon(t) decays from ~1.0 toward ~0.05 over training

Чому фіксований час оптимальний лише для точного трафіку, а реальний трафік коливається в залежності від часу доби, тижня та непередбачуваних подій.

Фіксоване часове планування є оптимальним лише для точної трафікової схеми, на яку було налагоджено агента, а реальний трафік не відповідає цій схемі — він коливається в залежності від часу доби, тижня та непередбачуваних подій. Стан черги довжини у Q-learning агента надає йому те, чого фіксоване часове планування структурно не може мати: воно бачить зараз, скільки трафіку чекає на кожній артерії, і може тримати зелене світло на кілька секунд довше для заблокованої артерії або скоротити зелене світло на кілька секунд для порожньої. Протягом будь-якого епізоду з реальним коливанням прибуття, ця реактивна перевага накопичується і призводить до значно нижчого середнього часу очікування — що точно відображає розбіжність між двома кривими навчання в режимі реального часу в демонстрації, а не просто стверджується.

Вимоги та компроміси є реальними, а не деталями реалізації, які можна ігнорувати. Повний табличний формат дії-стану масштабується погано — кожна додаткова артерія або більш дрібний контейнер черги множить розмір таблиці — тому масштабні розгортання міст все частіше використовують функціональне наближення (Глибокі Q-мережі) замість прямої таблиці, коли обсяг простору стану перевищує кілька перехресть. І Q-learning агент, навчений трафіку одного перехрестя, не автоматично узагальнюється до трафіку іншого перехрестя з різною геометрією або шаблоном прибуття; його потрібно перенавчати або, щонайменше, налаштовувати.

Часті запитання

Що саме навчає агент – фіксований графік?

Ні. Він навчається політиці: правила, яке відображає поточний стан черги на дію (тримати або перейти в наступну фазу). На відміну від фіксованого часового графіка, ця політика реагує по-різному на завантажену чергу, ніж на порожнє перехрестя вночі, оскільки вона базується на довжині черг, які спостерігаються на кожному кроці, а не на фіксованому часі.

Чому агент іноді діє випадково замість того, щоб завжди обирати найкращу відому дію?

Це епсилон-гридний пошук. На ранніх етапах навчання Q-таблиця не надійна, тому довіра лише до неї (чистий видобуток) ризикує зафіксувати посередню політику, яку агент випадково знайшов першим. Приймання періодичних випадкових дій дозволяє йому відкрити кращі варіанти; епсилон зменшується з часом, тому агент досліджує менше та експлуатує більше, коли оцінки стають надійними.

Чи масштабується цей підхід до всього міста перехресть?

Ні, безпосередньо з використанням чистої Q-таблиці – таблиця експоненціально зростає комбінаторно зі збільшенням кількості підходів, більш дрібним розбиттям черг або координацією між сусідніми перехрестями. Реальні системи на рівні міста зазвичай замінюють таблицю нейронною мережевою функціональною аппроксимацією (Глибокі Q-мережі) та часто координують агентів кількох перехресть, що є значно складнішою багатоагентською задачею машинного навчання, ніж показана тут з одним перехрестям.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Traffic Signal Optimization і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Traffic Signal Optimization

Що ви знайшли?

Додати кроки відтворення (опційно)