Linearer Zeitalgorithmus zum Finden von


8

Definition. Bei einem gegebenen Graphen und zwei Scheitelpunkte s und t , die k -shortest-Pfade Problem ist das Finden der k kürzesten einfache Wege zwischen s und t in G .G=(V,E)stkkstG

Es ist zu beachten, dass die Länge dieser Pfade nicht notwendigerweise gleich ist und die Eckpunkte und t notwendigerweise k- verbunden sind. Ich habe mich gefragt, ob es für dieses Problem einen linearen Zeitalgorithmus (in Bezug auf n und m ) gibt.stknm

Ich habe mir einige Artikel in der Literatur angesehen, wie zum Beispiel " Eine neue Implementierung von Yens Algorithmus für schleifenlose Pfade ", aber die zeitliche Komplexität ist wirklich hoch . In der anderen Veröffentlichung von Epstein " Finden der k kürzesten Pfade " wird ein Algorithmus vorgestellt, der die k kürzesten Pfade findet, die nicht unbedingt einfache Pfade mit der Laufzeit O ( n + m + k ) sind .O(Kn(m+nlogn))kO(n+m+k)

Gibt es einen linearen Zeitalgorithmus für das Problem der einfachen kürzesten Wege?k


@ DW Eppsteins Algorithmus findet Pfade, die nicht unbedingt einfach sind. OP möchte einen ähnlichen Algorithmus, möglicherweise in derselben Laufzeit, der die kürzesten einfachen Pfade findet. Der Ranking-Algorithmus von Yen ist dafür zu langsam. k
Yuval Filmus

Antworten:


7

Die Antwort, die hier gilt, wurde von Raphael bereits in den Kommentaren zu der Frage gegeben: " Da wir nicht einmal wissen, wie man einen einfachen kürzesten Weg in linearer Zeit findet, bezweifle ich dies. " Ich gehe daher davon aus, dass Sie daran interessiert sind, die besten verfügbaren Algorithmen nach dem aktuellen Stand der Technik zu kennen. Im Folgenden beschreibe ich die beste Worst-Case-Bindung (nach bestem Wissen), aber auch einen Algorithmus, der in bestimmten Fällen in linearer Zeit ausgeführt werden kann.

Bevor ich jedoch die neuesten Entwicklungen auf dem neuesten Stand der Technik beschrieb, wollte ich die Bedeutung einfacher Wege für dieses spezielle Problem hervorheben . Tatsächlich übersehen viele Menschen die Bedeutung dieser Anforderung und einige verstehen sie nicht einmal auf den ersten Blick.

Bei der Berechnung des kürzesten Pfades von einem Startscheitelpunkt zu einem Zielscheitelpunkt ist der optimale Pfad notwendigerweise einfach , dh er wiederholt keine Scheitelpunkte. Wenn jedoch optimale Pfade berechnet werden, sind die zweiten, dritten, ... besten Pfade möglicherweise nicht einfach. Um dies zu beweisen, stelle ich hier ein Beispiel zur Verfügung, das von Hershberger, Maxel & Suri, 2007, leicht angepasst wurde:k

Geben Sie hier die Bildbeschreibung ein

stπ1:s,A,B,C,D,tπ2:s,A,B,C,D,C,D,tπ3:s,A,B,A,B,C,D,tπ2:s,F,tπ3:s,G,t

G(V,E)Vu,vE,u,vVuv

kO(|E|+|V|log|V|+k)K

O(k|V|(|E|+|V|log|V|))O(k(|E|+|V|log|V|))k

k

Hoffe das hilft,

Literaturverzeichnis

Kk

k

k

k

k

k

k


O(n+m)

Freut mich zu hören, dass es Ihnen gefällt @kezzos
Carlos Linares López
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.