Definice: Síť je , kde je orientovaný graf, a je kapacitní funkce.

Definice: Tok je kde platí

  1. Velikostí toku rozumíme .

Věta: Existuje maximální tok.

Princip hledání maximálního toku v síti (celočíselné kapacity)

Mějme síť a chceme najít maximální možný tok ze do , tj. přiřadit každé hraně hodnotu tak, aby platilo:

  • Omezení kapacity:
  • Zachování toku (mimo a ):
    Kde jsou hrany vstupující do a jsou hrany vystupující z .

Ford–Fulkersonův algoritmus:

  1. Inicializuj tok pro všechny .
  2. Opakuj:
    • Najdi posilující cestu (augmenting path) z do v tzv. reziduální síti:
      • Hrany, po kterých lze „posílit“ tok, mají reziduální kapacitu .
      • Přidáme i „zpětné hrany“ s kapacitou pro případné „vrácení toku“.
    • Pokud taková cesta existuje, zvětši tok podél této cesty o minimální reziduální kapacitu.
  3. Pokud žádná posilující cesta neexistuje, skonči – tok je maximální.

Vlastnosti:

  • Pokud jsou všechny kapacity celočíselné, pak:
    • Algoritmus skončí v konečně mnoha krocích.
    • Každý tok bude celočíselný.
  • Maximální tok odpovídá kapacitě minimálního řezu mezi a (věta o max toku a min řezu).