Biorąc pod uwagę nieważony DAG (skierowane acykliczny wykres) oraz dwa wierzchołki i , jest możliwe znalezienie najkrótszej ścieżki, a najdłuższy z na w czasie wielomianowym? Długości ścieżek są mierzone liczbą krawędzi.s t s t
Interesuje mnie znalezienie zakresu możliwych długości ścieżek w czasie wielomianowym.
Ps., To pytanie jest duplikatem pytania StackOverflow Najdłuższa ścieżka w DAG .
źródło
Niechi. Niech oznacza ciężar krawędzi . Załóżmy, że chcesz znaleźć minimalny i maksymalny koszt ścieżki od do .m = | E ( G ) | w ( a → b ) ( a → b ) s tn=|V(G)| m=|E(G)| w(a→b) (a→b) s t
Począwszy od , wykonaj następujące czynności:b:=t
Jeśli zostało już odwiedzone, zwróć już obliczone i . W przeciwnym razie oznacz jako odwiedzone.b min(b) max(b) b
Określ i zapisz i w następujący sposób.min(b) max(b)
Powinieneś być w stanie udowodnić, że ten algorytm działa w czasie , pomijając czas wymagany do zainicjowania wszystkich zmiennych wierzchołków.O(m)
źródło