Problem najkrótszej odległości z długością jako funkcją czasu

10

Motywacja

Pewnego dnia podróżowałem po mieście środkami transportu publicznego i stworzyłem interesujący problem graficzny, modelujący problem znalezienia najkrótszego połączenia między dwoma miejscami.

Wszyscy znamy klasyczny „problem najkrótszej ścieżki”: biorąc pod uwagę ukierunkowany wykres o długości krawędzi i dwóch wierzchołkach , znalezienie najkrótszej ścieżki pomiędzy i (to znaczy ścieżka minimalizację całkowitej długości krawędzi). Zakładając nieujemne długości krawędzi, istnieją różne algorytmy, a problem jest łatwy.w eR + 0 ,sol=(V.,mi)s , t V s twmiR0+,mimis,tV.st

Jest to dobry model na przykład w przypadku, gdy idziemy. Wierzchołki są skrzyżowaniem w naszej sieci dróg, a każda krawędź ma stałą długość - na przykład w metrach. Inną możliwą interpretacją wag krawędzi jest czas , jaki zajmuje nam przejście od jednego z jego wierzchołków do drugiego. Ta interpretacja mnie teraz interesuje.wmi

Problem

Chcę teraz modelować następującą sytuację. Chcę podróżować z punktu A do punktu B w mieście transportem publicznym i zminimalizować czas . Sieć transportu publicznego można łatwo modelować jako ukierunkowany wykres, tak jak można się spodziewać. Interesującą częścią są wagi krawędzi (ten model czasu) - transport publiczny (na przykład autobusy) odjeżdża tylko w określonych odstępach czasu, które są różne dla każdego przystanku (wierzchołek na wykresie). Innymi słowy - wagi krawędzi nie są stałe, zmieniają się w zależności od czasu, w którym chcemy użyć krawędzi.

Sposób modelowania tej sytuacji: Mamy skierowaną wykres oraz krawędzi masy funkcji , które ma czas jako argument i zwraca czas potrzebny na wykorzystanie krawędzi na naszej ścieżce. Na przykład, jeśli autobus z wierzchołka do wierzchołka odjeżdża o i zajmuje to czasu, a my osiągamy wierzchołek przy , to jest wagą krawędzi. Oczywiście .w : E × R + 0R + 0 v u t = 10 5 v t = 8 w ( v u , 8 ) = 7 w ( v u , 10 ) = 5sol=(V.,mi) w:mi×R0+R0+vut=105vt=8w(vu,8)=7w(vu,10)=5

Określenie całkowitej masy ścieżki jest nieco trudne, ale możemy to zrobić rekurencyjnie. Niech będzie ścieżką skierowaną. Jeśli to . W przeciwnym razie , gdzie jest ścieżką podrzędną bez . Jest to naturalna definicja odpowiadająca rzeczywistej sytuacji. k = 1 w ( P ) = 0 w ( P ) = w ( P ) + w ( v k - 1 v k , w ( P ) ) P P v kP.=v1v2)vk-1vkk=1w(P.)=0w(P.)=w(P.)+w(vk-1vk,w(P.))P.P.vk

Możemy teraz przestudiować problem przy różnych założeniach dotyczących funkcji . Naturalnym założeniem jest który modeluje „oczekiwanie na time”.w

w(mi,t)w(mi,t+Δ)+Δ dla wszystkich mimi,Δ0,
Δ

Jeśli funkcja „zachowuje się ładnie”, możliwe jest zredukowanie tego problemu do klasycznego problemu Najkrótszej ścieżki. Ale moglibyśmy zapytać, co się stanie, gdy szaleją funkcje wagowe. A co, jeśli porzucimy założenie oczekiwania?

pytania

Moje pytania są następujące.

  • Czy wcześniej zadawano ten problem? Wydaje się to trochę naturalne.
  • Czy są na to jakieś badania? Wydaje mi się, że istnieją różne podproblemy, które należy zadać i zbadać - głównie w odniesieniu do właściwości funkcji wagi.
  • Czy możemy sprowadzić ten problem (być może przy pewnych założeniach) do klasycznego problemu najkrótszej ścieżki?
JS_
źródło
Oto naturalne podejście podstawowe, z którym można porównać więcej odpowiedzi na poziomie badań. Model go jako problem osiągalności przez dyskretyzację jednostek czasu do kolekcji momentami i zrobić nowy wykres z wierzchołków V ' = T x V . Następnie można umieścić krawędzie ( t 0 , v 0 ) ( t 1 , v 1 ) gdzie t 1 = w ( ( v 0 , v 1 ) , t 0 )T.V.=T.×V.(t0,v0)(t1,v1)t1=w((v0,v1),t0). Jest to już skuteczne w wielu przypadkach użycia (np. Przy rozkładach autobusów, po prostu pozwalasz być czasem, kiedy autobusy przyjeżdżają / opuszczają swoje przystanki), ale nie działa idealnie cały czas (rozważ, kiedy w zmienia się w sposób ciągły w ciągu czas) i jest wolny, jeśli T jest duży. T.wT.
Andrew Morgan,
Jeden prosty wariant tego problemu (gdzie wagi krawędzi zależą liniowo od czasu) nazywa się „ parametryczną najkrótszą ścieżką ”.
Neal Young,

Odpowiedzi:

8

Jest to znane jako problem „najkrótszej ścieżki zależnej od czasu”. Rzeczywiście przeprowadzono badania nad tym problemem; patrz na przykład klasyczny papier Ordy i Roma oraz ten najnowszy papier SODA, który dowodzi, że gdy funkcja ciężaru każdej krawędzi jest wielomianowo-liniowo kawałkowa, wówczas najkrótsza ścieżka między dwoma stałymi punktami zmienia się razy .nΘ(logn)

Algorytm Dijkstry można rzeczywiście zastosować w przypadku tego problemu, gdy narzucona jest zasada oczekiwania, to znaczy poczekaj w węźle, jeśli skróci to czas przybycia. Bez zasady oczekiwania sytuacja jest znacznie bardziej szalona: najkrótsza ścieżka może nie być prosta, podścieżka najkrótszej ścieżki może nie być najkrótsza między dwoma punktami końcowymi podścieżki, ścieżki przechodzące przez nieskończoną liczbę krawędzi mogą mieć skończony czas przybycia itp. Zobacz ponownie artykuł Ordy i Roma, aby uzyskać więcej dyskusji.

Hsien-Chih Chang 張顯 之
źródło
3

Czy zdajesz sobie sprawę z problemu „najkrótszych ścieżek, które nie zmniejszają się”? Zdefiniowano go do modelowania takich sytuacji. Chociaż jest to nieco mniej wyraziste w porównaniu z twoją formułą, istnieją szybkie glony.

Ryan Williams
źródło
1

Jeśli przyjmiesz, że czasy są integralne (co ma sens w przypadku transportu publicznego), możesz stworzyć sieć rozszerzoną w czasie, podobną do tej sugerowanej przez Forda-Fulkersona dla maksymalnego przepływu w czasie (lub najszybszego przepływu) i zamiast tego znajdź najkrótszą ścieżkę na tym wykresie.

Hel
źródło