Ich lese gerade eine Einführung in Algorithmen und komme von Johnsons Algorithmus, der davon abhängt, ob alle Pfade positiv sind.
Das Algo hängt davon ab, eine neue Gewichtsfunktion (w ') zu finden, die für alle Kanten positiv ist und die Richtigkeit der Beziehungen der kürzesten Wege beibehält.
Dazu werden die Werte für h (s) und h (d) berechnet, die zum ursprünglichen Wert von w addiert werden sollen.
Meine Frage ist, warum nicht einfach das kleinste w im Diagramm finden und an allen Kanten hinzufügen? Dies erfüllt beide Bedingungen und erfordert weniger Berechnung.
Antworten:
Durch Hinzufügen einer Gewichtung zu jeder Kante werden lange Pfade stärker gewichtet als kurze Pfade. (Lang im Sinne vieler Kanten.)
quelle
Das Erhöhen jedes Kantengewichts um den gleichen Betrag erhöht nicht notwendigerweise jeden Pfad um den gleichen Abstand. Vielmehr ist die Zunahme der Pfade oft unverhältnismäßig, was davon abhängt, wie viele Kanten der Pfad hat.
quelle