Wenn es Zyklen von negativem Gewicht in der Box, der formale Algorithmus Floyd-Worschella gilt nicht für eine solche Zeile.
Tatsächlich funktioniert der Algorithmus für diejenigen Spitzen i und j, zwischen denen das negative Gewicht nicht erreicht werden kann.
Für die gleichen Paare von Peaks, für die keine Antwort besteht (wegen des negativen Zyklus zwischen ihnen), wird der Floyd-Algorithmus eine Anzahl (möglicherweise negativ, aber nicht notwendig) finden. Allerdings kann der Floyd-Algorithmus verbessert werden, so dass er solche Peaks für sie sorgfältig verarbeiten und entfernen kann, beispielsweise- Ja.♪
Beispielsweise kann Folgendes geschehen:Kriterium"Nein." Okay, lassen Sie uns einen regelmäßigen Floyd-Algorithmus auf dieser Zählung haben. Dann gibt es keinen kürzesten Weg zwischen den Oberseiten von i und j zu der Zeit und nur, wenn es einen solchen Peak t, erzielbar von i und erzielbar j, für den es erfüllt ist- Ja.♪
Darüber hinaus sollte mit dem Floyd-Algorithmus für negative Zyklenzahlen daran erinnert werden, dass die im Laufe der Operation auftretenden Abstände sehr weit bis minus, exponentiell mit jeder Phase gehen können. Maßnahmen sollten daher gegen die Anzahl der überfüllten Maßnahmen ergriffen werden, die alle Abstände auf jeden Wert begrenzen (z.B.)- Ja.)
Eine seltene Lösung kann so beschrieben werden, dass
Nachdem Floyd-Worschellas Algorithmus für die vordere Reihe funktioniert, nehmen wir alle Spitzen.- Ja.Und für jedes dieser Paare überprüfen wir, ob die kürzeste Route von i zu j oder nicht. Wir nehmen den dritten Top-T dafür, und wenn es sich herausstellt, sie zu sein.- Ja.(d.h., es ist im negativen Gewichtszyklus) und es ist von und von i erzielbar j ist der Pfad- Ja.kann eine unendlich kleine Länge haben.