Ford-Fulkersonův algoritmus
1. Popis standardní metody algoritmu
Ford-Fulkersonův algoritmus slouží k vyhledání maximálního toku v síti (Síť je orientovaný graf, kde ohodnocení každé hrany znamená maximální množství energie, které skrze hranu může procházet). Pracujeme tedy se sítí G = (V, E), kde V je množina vrcholů včetně zdroje S a stoku T, E je množina orientovaných hran. Návěští každé hrany zapisujeme ve formátu F/C, kde C značí její kapacitu a F tok, tj. množství energie, které v ní proudí.
- Na počátku algoritmu nastavíme u všech hran nulový tok.
- Opakovaně hledáme nenasycenou cestu od zdroje ke stoku. Jakmile ji nalezneme, zjistíme minimální rezervu kapacity všech jejích hran, o kterou následně navýšíme tok v síti.
Při běžném provedení algoritmu pracujeme s vizuální reprezentací sítě, u níž měníme návěští hran. Na Obrázku 1 je znázorněna síť N o sedmi vrcholech s aktuálním tokem 1 (viz cesta S → A → C → T). Je zvýrazněna nenasycená cesta S → B → D → T, u níž je minimální rezerva kapacity hran rovna 1. Můžeme tedy v dalším kroku zvýšit tok v síti a upravit návěští hran nenasycené cesty, tj. modifikovat 0/1 na 1/1 v případě hran S → B, B → D a 0/3 na 1/3 u hrany D → T.
Pro názornost uvádíme i konkrétní příklad sítě a Animaci 1 naznačující výpočet maximálního toku pomocí Ford-Fulkersonova algoritmu.
Příklad 2: síť N
-
- Počátek algoritmu – síť N o sedmi uzlech S, A, B, C, D, E, T
- S: S–1–A S–1–B S–5–E
A: A–1–C A–1–E
B: B–1–D
C: C–3–T
D: D–3–T
E: E–1–B E–2–C E–2–D E–1–T
TNezobrazovat tento popisek