Loading [MathJax]/jax/output/HTML-CSS/jax.js
Přejít na obsah messages.homepage.accessibility

Ford-Fulkersonův algoritmus

1. Popis standardní metody algoritmu

2. Návrh možných adaptací

1. Práce se sítí v jednom listu tabulkového procesoru:

Síť je opět nabízena ve formě tabulky a organizována podobným způsobem jako v případě 1. metody adaptace Dijkstrova algoritmu. V prvním sloupci jsou vypsány uzly sítě, do dalších buněk na stejném řádku pro daný uzel X zapisujeme všechny hrany, které začínají v uzlu X. Uvádíme je ve formátu  YF/C, kde Y je uzel, ve kterém orientovaná hrana z X končí, F je aktuální tok skrze hranu a C je její kapacita. Uvažujme tutéž síť N, jakou jsme znázornili na Obrázku 1. Následující Tabulka 1 zachycuje fázi algoritmu, při níž jsme již nalezli jednu nenasycenou cestu S → A → C → T.

Příklad 3: síť N
S *A1/1 B0/1 E0/5
A *C1/1 E0/1
B D0/1
C T1/3
D T0/5
E B0/1 C0/2 D0/2 T0/1
T
Tabulka 1: Síť N formou tabulky po nalezení a zpracování první nenasycené cesty S → A → C → T

Nevidomý student nejprve najde nenasycenou cestu od zdroje S ke stoku T. Prochází postupně tabulkou a pamatuje si posloupnost uzlů, kterými cesta vede, i aktuální minimální rezervu jejích hran. Ve druhém průchodu již upravuje tok a nasycené hrany označuje hvězdičkou.

2. Organizace hran pod sebou na jednotlivých řádcích v běžném textovém editoru:

Každou hranu zapisujeme na samostatném řádku ve formátu XF/CY, kde X je počáteční uzel hrany, Y koncový uzel hrany, F aktuální tok skrze hranu a C její kapacita. Hrany řadíme abecedně dle uzlu, ze kterého vycházejí. Pracujeme s nimi obdobným způsobem jako u první metody, tj. procházíme hrany vždy dvakrát, poprvé, abychom nalezli nenasycenou cestu od zdroje ke stoku, podruhé, abychom upravili tok na této cestě.

3. Diskuze nad výhodami a nevýhodami