Obecnie czytam wprowadzenie do algorytmów i przyszedłem przez algorytm Johnsona, który polega na upewnieniu się, że wszystkie ścieżki są pozytywne.
algo zależy od znalezienia nowej funkcji wagi (w '), która jest dodatnia dla wszystkich krawędzi i zachowuje poprawność relacji najkrótszych ścieżek.
Odbywa się to poprzez obliczenie wartości h (s), h (d), które należy dodać do pierwotnej wartości w.
Moje pytanie brzmi: dlaczego nie znaleźć najmniejszego w na wykresie i dodać go do wszystkich krawędzi? spełni to oba warunki i będzie wymagało mniej obliczeń.
Odpowiedzi:
Dodanie ciężaru do każdej krawędzi zwiększa ciężar długich ścieżek niż ścieżek krótkich. (Długi w znaczeniu posiadania wielu krawędzi.)
źródło
Zwiększenie ciężaru każdej krawędzi o tę samą kwotę niekoniecznie zwiększa każdą ścieżkę o tę samą odległość. Wzrost ścieżek jest często nieproporcjonalny, co zależy od tego, ile krawędzi ma ścieżka.
źródło