Problem maksymalnego przepływu

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Problem maksymalnego przepływu – zagadnienie często spotykane w informatyce. Polega ono na znalezieniu dla danej sieci przepływowej takiego przepływu f, którego wartość jest maksymalna, gdzie wartość przepływu jest zdefiniowana jako łączny przepływ opuszczający źródło. Bardziej formalnie, dla danego przepływu f w sieci G=(V,E) o źródle s i ujściu t, jego wartość jest zdefiniowana następująco:

|f|=uVf(s,u).

Istnieje też uogólnienie tego problemu, w którym sieć G zawiera wiele źródeł i ujść. Można jednak w prosty sposób sprowadzić je do przedstawionej wersji: Dla sieci G=(V,E) zawierającej n źródeł s1,s2,,sn oraz m ujść t1,t2,,tm konstruujemy sieć G=(V,E), gdzie:

V=V{s,t},
E=E{(s,s1),(s,s2),,(s,sn),(t1,t),(t2,t),,(tm,t)}.

Ponadto:

c(s,si)= dla każdego i=1,2,,n,
c(tj,t)= dla każdego j=1,2,,m.

Innymi słowy, dodajemy do sieci G wierzchołek s połączony krawędziami o nieskończonej przepustowości ze wszystkimi źródłami oraz wierzchołek t połączony krawędziami o nieskończonej przepustowości ze wszystkimi ujściami. Wierzchołek s zwany jest superźródłem, zaś wierzchołek tsuperujściem.

Maksymalny przepływ można znaleźć m.in. za pomocą algorytmu Edmondsa-Karpa opartego na metodzie Forda-Fulkersona.

Bibliografia