Finden kth-kürzeste Pfade?

Finden, den kürzesten Pfad zwischen zwei Punkten in einem Graphen ist eine klassische algorithmen Frage mit vielen guten Antworten (Der Dijkstra-Algorithmus, Bellman-Ford, etc.) Meine Frage ist, ob es einen effizienten Algorithmus, der, gegeben ein gerichteter, gewichteter graph, ein paar von Knoten s und t, und ein Wert k, findet die kth-kürzeste Pfad zwischen s und t ist. Im Falle, dass es mehrere Pfade gleicher Länge, die alle binden, die für die kth-kürzeste, es ist in Ordnung für den Algorithmus zurück, einer von Ihnen.

Ich vermute, dass dieser Algorithmus kann wahrscheinlich gemacht werden, die in polynomialer Zeit, aber ich bin mir bewusst, dass es möglicherweise zu einer Reduktion von der längster Pfad problem würde, dass es NP-hart.

Kennt jemand so ein Algorithmus, oder eine Reduktion, die zeigen, dass es NP-hart?

  • springerlink.com/content/pl0054nt2d0d2u3t
  • Sie sind fast definitiv unter Bezugnahme auf die Allgemeine k-th shortest path problem, aber wenn Sie interessiert sind, in Rand-disjunkte Pfade, die Sie finden können Sie Sie mit dem Edmonds-Karp-Algorithmus: mat.uc.pt/~eqvm/OPP/KSPP/KSPP.html
  • Nur zur info: Yen-Algorithmus ist geeignet, wenn Sie nur erwägen, einfache Pfade, in der Erwägung, dass Eppstein-Algorithmus ist für den Fall, dass nicht-einfache Pfade sind erlaubt (z.B. Pfade sind erlaubt, zu überdenken, die den gleichen Knoten mehrmals). Tangential, wenn Sie wollen, dass die streng-zweite kürzesten Weg (ich weiß, dass Sie angegeben haben, die das Gegenteil), die nicht-einfache version ist in P, der einfache, ungerichtete version ist in P (Krasikov-Edel/Zhang-Nagamochi), und die einfache gerichtete version ist NP-schwer (Lalgudi-Papaefthymiou). Auch, für was es Wert ist, ich habe nicht gesehen, alle sehr gute Beschreibungen der Yen-Algorithmus, aber ich hätte gern eine!
  • Haben Sie einen Blick auf meine Antwort in diesem Beitrag.
Schreibe einen Kommentar