Найкоротша проблема відстані з довжиною як функції часу


10

Мотивація

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

Всі ми знаємо класичну "Найкоротшу задачу шляху": Дано спрямований графік з довжинами ребер w eR + 0 ,Г=(V,Е) і дві вершини s , t V , знайдіть найкоротший шлях між s і t (тобто шлях, мінімізуючи загальну довжину ребра). Якщо припустити негативні довжини ребер, існують різні алгоритми, і проблема проста.шеR0+,еЕс,тVст

Це гарна модель для випадку, по якому ми ходимо, наприклад. Вершини є перехрестями в нашій мережі доріг, і кожен край має фіксовану довжину - наприклад, у метрах. Інша можлива інтерпретація ребрових ваг це час , що вона приймає нас , щоб перейти від однієї з його вершин до іншого. Це інтерпретація, яка мене зараз цікавить.ше

Проблема

Зараз я хочу моделювати таку ситуацію. Я хочу подорожувати з пункту А до пункту В у місті на громадському транспорті та скоротити час . Мережу громадського транспорту можна легко моделювати як орієнтований графік, як можна було б очікувати. Цікавою частиною є обважнювачі (цей модельний час) - громадський транспорт (наприклад, автобуси) виїжджає лише через певні проміжки часу, які відрізняються для кожної зупинки (вершина у графі). Іншими словами - ваги кромки не є постійними, вони змінюються залежно від часу, у який ми хочемо використовувати край.

Як моделювати цю ситуацію: У нас є орієнтований граф і від краю ваги функції ш : Е × R + 0R + 0 , що займає час в якості аргументу і повертає час , який потрібен , щоб використовувати край на нашому шляху. Наприклад, якщо шина від вершини v до вершини u залишає при t = 10 і це займає 5 разів, і ми приходимо до вершини v при t = 8Г=(V,Е) ш:Е×R0+R0+vут=105vт=8, тоді - вага краю. Зрозуміло, w ( v u , 10 ) = 5 .ш(vу,8)=7ш(vу,10)=5

Визначити загальну вагу шляху трохи непросто, але ми можемо це робити рекурсивно. Нехай - спрямований шлях. Якщо k = 1, то w ( P ) = 0 . Інакше w ( P ) = w ( P ) + w ( v k - 1 v k , w ( P ) )П=v1v2vк-1vкк=1ш(П)=0ш(П)=ш(П')+ш(vк-1vк,ш(П')), де - підпункт P без v k . Це природне визначення, що відповідає ситуації в реальному світі.П'Пvк

Тепер ми можемо вивчити задачу за різними припущеннями щодо функції . Природним припущенням є w ( e , t ) w ( e , t + Δ ) + Δ  для всіх  e E , Δ 0 , що моделює "очікування на Δ час".ш

ш(е,т)ш(е,т+Δ)+Δ для усіх еЕ,Δ0,
Δ

Якщо функція "поводиться добре", можливо, можна звести цю проблему до класичної проблеми найкоротшого шляху. Але ми могли б запитати, що відбувається, коли вагові функції погіршуються А що, якщо ми відкинемо припущення про очікування?

Запитання

Мої запитання такі.

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

ТV'=Т×V(t0,v0)(t1,v1)t1=w((v0,v1),t0)TwT

Один простий варіант цієї проблеми (де ваги ребер лінійно залежать від часу) називається " параметричним найкоротшим шляхом ".
Ніл Янг

Відповіді:


8

нΘ(журналн)

Алгоритм Dijkstra дійсно може бути використаний для цієї проблеми, коли нав'язується політика очікування, тобто чекайте у вузлі, якщо це зменшує кінцевий час прибуття. Без політики очікування ситуація набагато дикіша: найкоротший шлях може бути не простим, підпункт найкоротшого шляху може бути не найкоротшим між двома кінцевими точками підпутника, шляхи, що проходять через нескінченну кількість країв, можуть мати кінцевий час прибуття тощо Перегляньте ще раз статті Орди та Рома для більшого обговорення.


3

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


1

Якщо ви вважаєте, що часи є цілісними (що має сенс у випадку громадського транзиту), ви можете створити розширену часом мережу, аналогічну тій, яку запропонував Ford-Fulkerson для максимального потоку в часі (або швидкого потоку) і знайти на цьому графіку найкоротший шлях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.