Bellman-Ford 的關鍵在於,對於一組中間相隔最遠有 n 個 edge 的 source node & destination node 來說,最多只需要對每個 edge 都 relax n 次,就一定可以求出他們之間的 shortest path。以上圖來說,只需要對中間那四條 edge relax 4 次,就可以得出 A 到 E 的 shortest path。
也就是說,對於一個有 n 個 node 的 graph 來說,因為任意兩個 node 的最遠距離不會超過 n - 1 條 edge,因此最多只需要對每條 edge 各 relax n - 1 次就可以求出任意的 single source shortest path。
至於 detect negative cycle,請見 use Bellman-Ford to Detect Negative Cycle。