2016-05-02 8 views
1

Ich habe die Funktion shortest_paths aus dem Paket igraph verwendet, um den kürzesten Weg zwischen zwei Verbindungen zu berechnen.sna: Änderung des Dijkstra-Algorithmus (kürzeste Wege)

Mein igraph Objekt enthält die gewichteten Links.

Der integrierte Dijkstra-Algorithmus verwendet Summen, um den kürzesten Pfad auszudrücken.

Wie kann ich das Produkt anstelle der Summe verwenden?

+1

Bitte zeigen Sie Ihren Code wird es helfen, Ihre Frage zu erkennen –

Antwort

2

Log ist eine monoton steigende Funktion, so dass der Pfad, der das Produkt der Kantengewichte minimiert, auch den Logarithmus des Produkts der Kantengewichte oder äquivalent die Summe des Logarithmus der Kantengewichte minimiert. Daher können Sie die Kantengewichtungen einfach durch ihre Protokollumwandlung ersetzen und die Funktion für den kürzesten Pfad verwenden.