Головна ШІ та Машинне навчання Оптимізатор Маршрутів Доставки — Симульоване Відпалювання Наживо

🚚 Оптимізатор Маршрутів Доставки — Симульоване Відпалювання Наживо

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

ШІ та Машинне навчання3DСкладний60 FPS
ai-supply-chain-route-optimization ↗ Відкрити окремо
DRAG · SCROLL · CLICK — керуйте прямо у вікні симуляції.

Про цю симуляцію

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

🔬 Що показано

Кожен кадр анімації пропонує кілька випадкових ходів 2-opt: обираються дві позиції в маршруті, і сегмент між ними розвертається, що еквівалентно заміні двох ребер на два інших. Точна зміна довжини маршруту (Δ) обчислюється лише з чотирьох задіяних довжин ребер. Якщо Δ < 0, хід завжди приймається; інакше він приймається з ймовірністю e^(−Δ/T). Температура T спадає щоітерації як T ← α·T, тож на початку маршрут стрибає й іноді навіть подовжується, а пізніше він осідає в гладке, монотонне покращення.

🎮 Як користуватись

Перетягніть повзунок зупинок доставки (8–40) або натисніть «Нова випадкова карта», щоб згенерувати свіжу компонування міста. Швидкість охолодження α контролює, наскільки повільно падає температура — значення близько 0,9999 досліджують набагато більше, перш ніж зафіксуватися, значення близько 0,985 поводяться майже як чистий жадібний 2-opt. Початкова температура встановлює, наскільки агресивно приймаються ранні ходи. Кроки на кадр контролюють швидкість відтворення. Перезапуск перетасовує маршрут і скидає графік на тій самій карті; Пауза заморожує відпалювання, щоб ви могли дослідити поточний стан.

💡 Чи знали ви?

Симульоване відпалювання бере свою назву — і своє правило прийняття — безпосередньо з металургії: нагрівання металу й повільне охолодження дозволяє його атомам знайти кристалічну решітку з низькою енергією й малою кількістю дефектів, тоді як занадто швидке охолодження «заморожує» невпорядковану структуру вищої енергії. Кіркпатрик, Ґелатт і Веккі застосували точно цю фізичну аналогію до комбінаторної оптимізації в 1983 році, і оптимізація маршрутів — задача комівояжера — була одним з їхніх оригінальних тестових випадків.

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

Що таке симульоване відпалювання і чому воно використовується для оптимізації маршрутів?

Симульоване відпалювання — це ймовірнісна техніка оптимізації, натхненна металургійним процесом нагрівання металу й повільного його охолодження так, щоб його атоми осіли в кристалічній структурі з низькою енергією. Застосована до задачі комівояжера/маршрутизації транспорту, «енергія» — це загальна відстань маршруту. За високої температури алгоритм приймає багато погіршувальних ходів, дозволяючи широко досліджувати й вистрибувати з поганих локальних компоновок; у міру падіння температури він стає дедалі жадібнішим, уточнюючи маршрут, доки не зійдеться близько до короткого маршруту. Він популярний для маршрутизації, бо простір пошуку можливих упорядкувань зупинок факторіальний за розміром, занадто великий для вичерпного пошуку, проте околиці 2-opt у поєднанні з відпалюванням надійно знаходять маршрути в межах кількох відсотків від оптимуму.

Що таке хід 2-opt і чому розвертати сегмент?

Хід 2-opt видаляє два ребра з маршруту й повторно з'єднує чотири кінцеві точки єдиним іншим способом, що зберігає єдиний замкнений цикл, що еквівалентно розвороту порядку зупинок між двома точками розрізу. Це найпростіший хід локального пошуку, що може розкрутити маршрут: щоразу, коли два сегменти маршруту перетинаються на карті, точно один хід 2-opt розпрямляє їх і скорочує загальну відстань. Оскільки змінюються лише два ребра, зміну довжини маршруту (дельту) можна обчислити, порівнявши лише ці два старих і два нових довжини ребер, без повторного підсумовування всього маршруту.

Що таке критерій прийняття Метрополіса?

Після обчислення дельти вартості кандидатного ходу алгоритм завжди приймає ходи, що скорочують маршрут (Δ < 0). Для ходів, що подовжують його, він приймає з ймовірністю e^(−Δ/T), де T — поточна температура. Це означає, що великий погіршувальний хід рідко приймається, але малі погіршувальні ходи все ще досить ймовірні на початку, коли T висока. У міру спадання T до нуля, e^(−Δ/T) стягується до нуля для будь-якого позитивного Δ, тож алгоритм фактично стає чистим жадібним спуском — підйом на пагорб заборонений, і виживають лише покращувальні ходи.

Як графік охолодження впливає на результат?

Ця симуляція використовує геометричне охолодження: T множиться на швидкість охолодження α (близьку до, але меншу за 1) після кожного запропонованого ходу, тож T спадає експоненційно з кількістю ітерацій. Швидкість охолодження дуже близька до 1 (наприклад, 0,9995) охолоджує повільно, даючи пошуку багато ітерацій при вищих температурах для широкого дослідження, перш ніж зафіксуватися на уточненні рішення, — це зазвичай знаходить коротші маршрути, але потребує більше часу для осідання. Нижча швидкість охолодження (наприклад, 0,985) охолоджує швидко й поводиться майже як жадібний локальний пошук 2-opt, швидко сходячись, але з більшою ймовірністю застрягання в посередньому локальному мінімумі.

Чому довжина маршруту іноді погіршується, перш ніж покращитися?

У цьому вся суть відпалювання: за високої температури критерій Метрополіса навмисно приймає деякі ходи, що збільшують довжину. Маршрут може виглядати локально оптимальним (жоден окремий хід 2-opt його не покращує), водночас все ще будучи далеким від найкоротшого можливого маршруту — це локальний мінімум. Іноді приймаючи гірший хід, пошук може вибратися з басейну цього локального мінімуму й пізніше потрапити в інший, коротший. Спостерігаючи за графіком відстані, ви зазвичай побачите, що спочатку він швидко падає, іноді різко зростає, поки T ще висока, а потім осідає в гладке монотонне зниження в міру наближення T до нуля.

Як це пов'язано з реальним плануванням маршрутів доставки?

Реальні логістичні компанії вирішують задачі маршрутизації транспорту (VRP) із сотнями чи тисячами зупинок, кількома транспортними засобами, часовими вікнами та обмеженнями місткості — NP-складну комбінаторну задачу, де точні рішення обчислювально неможливі понад кілька десятків зупинок. Метаевристики на кшталт симульованого відпалювання, поряд із генетичними алгоритмами, оптимізацією мурашиної колонії та табу-пошуком, — галузеві стандартні інструменти для знаходження дуже хороших (хоча й не доведено оптимальних) маршрутів за секунди-хвилини. Ця симуляція моделює однотранспортне ядро цієї задачі — класичну задачу комівояжера — той самий комбінаторний двигун, що лежить в основі виробничого програмного забезпечення маршрутизації.

Схожі симуляції