Algorytm Edmondsa-Karpa problem

0

Witam.

Mam problem z interpretacja pseudokodu tego algorytmu i z tego powodu wynik, ktory otrzymnuje jest niepoprawny. Link : http://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm

M := array(1..n) (Capacity of found path to node)
M[s] := ∞

Problem tkwi w tym miejscu. Przy kazdym wywolaniu metody BFS jest tworzona ta tablica? CZym powinna byc inicjalizowana, aby algorytm wykonywal sie poprawnie? Jak beda zera, to juz na zawsze tamzostana, poniewaz

M[v] := min(M[u], C[u,v] - F[u,v])

Prosze o pomoc.

0

Tablica jest inicjowana nieskończonością po to, żeby nie trzeba było obsługiwać brzegowego przypadku. Jeśli chcesz to zaimplementować zainicjuj tablicę b. dużą wartością, która na pewno nie wystąpi, najlepiej maksymalną wartością dla danego typu (np. dla integera bez znaku będzie to 0xFFFFFFFF).
Jeżeli piszesz to w C++: std::numeric_limits<T>::max() gdzie T to typ tablicy.

0

Wydaje mi sie, ze tylko M[s] jest nieskonczonosc, gdzie s to zrodlo. (na wikipedii w pseudkodzie algorytmu widac to lepiej). Ale tak czy owak sprawdze i dla nieskonczonosci.

1 użytkowników online, w tym zalogowanych: 0, gości: 1