Problem der kürzesten Entfernung mit der Länge als Funktion der Zeit

10

Motivation

Neulich war ich mit öffentlichen Verkehrsmitteln in der Stadt unterwegs und habe mir ein interessantes Grafikproblem ausgedacht, das das Problem modelliert, die kürzeste Verbindung zwischen zwei Orten zu finden.

Wir alle kennen das klassische "Problem des kürzesten Weges": Gegeben ist ein gerichteter Graph mit Kantenlängen und zwei Eckpunkten finden Sie den kürzesten Pfad zwischen und (dh den Pfad, der die gesamte Kantenlänge minimiert). Unter der Annahme nicht negativer Kantenlängen gibt es verschiedene Algorithmen und das Problem ist einfach.G=(V,E)weR0+,eEs,tVst

Dies ist ein gutes Modell für den Fall, dass wir zum Beispiel gehen. Die Eckpunkte sind Kreuzungen in unserem Straßennetz und jede Kante hat eine feste Länge - zum Beispiel in Metern. Eine andere mögliche Interpretation der Kantengewichte ist die Zeit , die wir , um von einem ihrer Eckpunkte zum anderen zu gelangen. Dies ist die Interpretation, die mich jetzt interessiert.we

Problem

Ich möchte nun die folgende Situation modellieren. Ich möchte mit öffentlichen Verkehrsmitteln von Punkt A nach Punkt B in einer Stadt fahren und die Zeit minimieren . Das öffentliche Verkehrsnetz kann wie erwartet einfach als gerichteter Graph modelliert werden. Der interessante Teil sind die Kantengewichte (diese Modellzeit) - öffentliche Verkehrsmittel (z. B. Busse) fahren nur in bestimmten Intervallen ab, die für jede Haltestelle unterschiedlich sind (Scheitelpunkt in der Grafik). Mit anderen Worten - die Kantengewichte sind nicht konstant, sie ändern sich abhängig von der Zeit, zu der wir die Kante verwenden möchten.

Wie diese Situation zu modellieren: Wir haben einen gerichteten Graphen und eine Kante Gewicht Funktion das braucht Zeit als Argument und gibt die Zeit zurück , die erforderlich ist, um die Kante in unserem Pfad zu verwenden. Wenn zum Beispiel der Bus vom Scheitelpunkt zum Scheitelpunkt bei abfährt und es Mal dauert und wir bei Scheitelpunkt gelangen , dann ist das Kantengewicht. Es ist klar, dass .G=(V,E) w:E×R0+R0+vut=105vt=8w(vu,8)=7w(vu,10)=5

Es ist etwas schwierig, das Gesamtgewicht des Pfades zu definieren, aber wir können es rekursiv tun. Sei ein gerichteter Pfad. Wenn dann ist . Andernfalls ist , wobei der Unterpfad von ohne . Dies ist eine natürliche Definition, die der realen Situation entspricht.P=v1v2vk1vkk=1w(P)=0w(P)=w(P)+w(vk1vk,w(P))PPvk

Wir können das Problem nun unter verschiedenen Annahmen zur Funktion . Die natürliche Annahme ist was "Warten auf Zeit" modelliert .w

w(e,t)w(e,t+Δ)+Δ for all eE,Δ0,
Δ

Wenn sich die Funktion "gut verhält", kann dieses Problem möglicherweise auf das klassische Problem des kürzesten Pfades reduziert werden. Aber wir könnten fragen, was passiert, wenn die Gewichtsfunktionen wild werden. Und was ist, wenn wir die Annahme des Wartens fallen lassen?

Fragen

Meine Fragen sind die folgenden.

  • Wurde dieses Problem schon einmal gestellt? Es scheint irgendwie natürlich.
  • Gibt es irgendwelche Forschungen darüber? Es scheint mir, dass verschiedene Teilprobleme zu stellen und zu untersuchen sind - hauptsächlich in Bezug auf die Eigenschaften der Gewichtsfunktion.
  • Können wir dieses Problem (möglicherweise unter bestimmten Voraussetzungen) auf das klassische Problem des kürzesten Weges reduzieren?
JS_
quelle
Hier ist ein natürlicher Basisansatz, mit dem mehr Antworten auf Forschungsebene verglichen werden können. Modellieren Sie es als Erreichbarkeitsproblem, indem Sie die Zeiteinheiten in eine Sammlung von Zeitpunkten diskretisieren und einen neuen Graphen mit den Eckpunkten . Sie können dann Kanten wobei . Dies ist bereits für viele Anwendungsfälle effizient (z. B. bei Busfahrplänen lassen Sie einfach die Zeiten sein, zu denen die Busse ankommen / ihre Haltestellen verlassen), funktioniert jedoch nicht immer einwandfrei (berücksichtigen Sie, wenn sich kontinuierlich ändert Zeit) und ist langsam, wenn groß ist. TV=T×V(t0,v0)(t1,v1)t1=w((v0,v1),t0)TwT
Andrew Morgan
Eine einfache Variante dieses Problems (bei der die Kantengewichte linear von der Zeit abhängen) wird als " parametrischer kürzester Weg " bezeichnet.
Neal Young

Antworten:

8

Dies ist als "zeitabhängiger kürzester Weg" bekannt. In der Tat wurde für dieses Problem geforscht; siehe zum Beispiel das klassische Papier von Orda und Rom und dieses kürzlich erschienene SODA-Papier, das beweist, dass sich der kürzeste Weg zwischen zwei Fixpunkten ändert, wenn die Gewichtsfunktion jeder Kante stückweise linear von Polynomgröße ist mal.nΘ(logn)

Der Dijkstra-Algorithmus kann tatsächlich für dieses Problem verwendet werden, wenn die Warterichtlinie auferlegt wird, dh an einem Knoten warten, wenn dies die endgültige Ankunftszeit verringert. Ohne die Wartepolitik ist die Situation viel wilder: Der kürzeste Pfad ist möglicherweise nicht einfach, der Unterpfad eines kürzesten Pfades ist möglicherweise nicht der kürzeste zwischen den beiden Endpunkten des Unterpfads, Pfade, die durch eine unendliche Anzahl von Kanten verlaufen, haben möglicherweise eine begrenzte Ankunftszeit usw. Siehe noch einmal das Papier von Orda und Rom für weitere Diskussionen.

Hsien-Chih Chang 張顯 之
quelle
3

Kennen Sie das Problem "kürzeste nicht abnehmende Pfade"? Es wurde definiert, um Situationen wie diese zu modellieren. Obwohl es im Vergleich zu Ihrer Formulierung etwas weniger ausdrucksstark ist, gibt es schnelle Algen dafür.

Ryan Williams
quelle
1

Wenn Sie davon ausgehen, dass die Zeiten ganzheitlich sind (was im Fall von öffentlichen Verkehrsmitteln sinnvoll ist), können Sie ein zeitlich erweitertes Netzwerk erstellen, ähnlich dem von Ford-Fulkerson vorgeschlagenen für den maximalen Durchfluss über die Zeit (oder den schnellsten Durchfluss) und Suchen Sie stattdessen den kürzesten Pfad in diesem Diagramm.

Helium
quelle