Ford-Bellman algoritmasının kendisi birkaç aşamadan oluşur (
n-1
). Her aşamada, grafiğin tüm kenarları incelenir ve algoritma
c
maliyetinin her bir kenarı
(a, b)
boyunca gevşemeye çalışır.
Sınır boyunca gevşeme — bu,
d[a]
'nin anlamını iyileştirme girişimidir;
d[b] + c
değeri. Aslında bu, kenar ve en üstteki geçerli yanıt.
d
dizisi, tıpkı Dijkstra'da olduğu gibi, başlangıç köşe noktasından itibaren en kısa uzunlukları içeren bir dizidir, başlangıçta, koymanız gereken başlangıç köşesi dışında mümkün olduğu kadar büyük sayılarla doldururuz. 0.
Kenarları saklamak için bitişiklik matrisi veya ağırlık matrisi değil, kenarın hangi düğümden ayrıldığını (
from
), nereye geldiğini (
to
) ve ağırlığı (
maliyet
).
yapı kenarı {
int from, to, cost;
};
vektör<kenar> kenarlar;
INF
sabiti "sonsuz" sayısını belirtir - olası tüm yol uzunluklarını açıkça aşacak şekilde seçilmelidir.