Ich suche nach einer Dijkstra-Algorithmus-Implementierung, die auch die Anzahl der durchlaufenen Knoten berücksichtigt. Ein typischer Dijkstra-Algorithmus berücksichtigt das Gewicht der Kanten, die die Knoten verbinden, während er die kürzeste Route von Knoten A zu Knoten B berechnet. Ich möchte hier einen weiteren Parameter einfügen.Ein Kürzester-Pfad-Algorithmus mit der Mindestanzahl von überfahrenen Knoten
Ich möchte, dass der Algorithmus der Anzahl der durchlaufenen Knoten auch eine gewisse Gewichtung gibt.
So ist die unter bestimmten Werten von A nach B berechnete kürzeste Route möglicherweise nicht die kürzeste Route, sondern die Route mit der geringsten Anzahl der durchlaufenen Knoten.
Irgendwelche Gedanken dazu?
Cheers,
RD
Edit:
Ich entschuldige mich. Ich hätte es besser erklären sollen. Also, sagen wir, die kürzeste Route von
(A, B) ist A -> C -> D -> E -> F -> B umfasst insgesamt 10 Einheiten
Aber ich möchte den Algorithmus zu finden die Route A -> M -> N -> B mit insgesamt 12 Einheiten.
Also, was ich will, ist, in der Lage zu sein, die Anzahl der Knoten, nicht nur die Entfernung der verbundenen Knoten etwas Gewicht zu geben.
Sie können die Gewichtungen ändern, indem Sie jede Kante um eine Konstante erhöhen, was die Verwendung von mehr Kanten (äquiv. Mehr Knoten) in einem Pfad benachteiligt. Grundsätzlich müssen Sie klarer artikulieren, welche Zielfunktion minimiert wird. – hardmath
Sie haben Bedingungen angegeben, die zu vage sind, um wirklich hilfreich zu sein. Das ist eine schlecht formulierte Frage. Ein offensichtlicher Kommentar: Wenn die Art, die Anzahl der berücksichtigten Knoten zu berücksichtigen, additiv ist, dann ziehen Sie in Betracht, Ihren Gewichten einen einheitlichen Betrag hinzuzufügen, damit jeder Knoten eine einheitliche Menge länger braucht. – Kaganar
Es klingt wie Sie sagen: Die Route, die Sie zurückgeben, MUSS die kürzeste Anzahl der durchlaufenen Knoten sein, aber zusätzlich von allen Lösungen, die die kürzeste Anzahl der durchlaufenen Knoten sind, möchten Sie das geringste Kantengewicht? – Jeremy