Arki hat geschrieben:
So wie ich das verstanden habe, gibt es im Endeffekt zwischen FIFO Label-Correcting und Bellman-Ford keine nennenswerten Unterschiede. Die Dequeue-Variante ist im Endeffekt eine Modifikation des FIFO Label-Correcting Algorithmus. Dein CORRECT sieht etwas anders aus, da du ja - je nach Situation - Knoten an den Anfang oder das Ende der Queue stellst.
Der Bellman-Ford-Algorithmus verwendet gar keine Queues... Genausowenig die CORRECT-Prozedur.
Das ist auch der Grund, warum ich die FIFO- und Deque-Varienten eher für Implementierungen des modifizierten Label-Correcting-Algorithmus halte und nicht direkt für Varienten des Bellman-Ford-Algorithmus'. Die Folien sind diesbezüglich nur etwas seltsam angeordnet.
Arki hat geschrieben:
Die Knotenlabels sind während der Ausführung des Algorithmus *nicht* permanent. Sie werden erst in Iteration n-1 zu permanenten Knotenlabels.
Der Satz will also, wenn ich das zusammenfassen darf, sagen: "Nach der Durchführung eines Label-Correcting-Algorithmus" hat jeder Knoten v einen ausgezeichneten Knoten pi(v)."
Arki hat geschrieben:
Du kannst natürlich on-the-fly testen. Das ist dann möglich, wenn du C (maximaler Wert über alle Kantenkosten) kennst, denn ein kürzester Weg kann ja aus nicht mehr als n-1 Kanten bestehen. Ergo hast du nen positiven (negativen) Zyklus, wenn das Distanzlabel d(v) > nC bzw. d(v) < -nC wird.
Ich habe da gerade nochmal drübergelesen und das kann man so nicht sehen...
Die Schranken nC sind sinnvoll und können jederzeit getestet werden, wenn man ein Label updatet. Das hat aber mit dem Erkennen negativer Zyklen nichts zu tun ("We can *also* stop ...").
Die behauptung steht, man könne in O(n) auf Existenz negativer Zyklen testen. Wie geht das?
Und damit die Frage nicht untergeht, bislang noch unbesprochen:
- (S. 142) Wie kommt man darauf, dass die Yen-Variante nur n/2 Durchläufe braucht?