Przepływy w sieciach. Twierdzenie minimaksowe. Katarzyna Osowska 14.10.2011r.
Plan prezentacji Sieci przepływowe Przepustowość Przepływ Ścieżka residualna Ścieżka rozszerzająca Przekrój Maksymalny przepływ sieciowy. Algorytm Forda-Fulkersona
Sieć przepływowa Przez sieć przepływową (ang. flow network) będziemy rozumieli spójny graf skierowany G=(V,E) (ang. connected directed graph lub conected digraph), w którego krawędziach odbywa się przepływ (ang. flow) jakiegoś czynnika. W sieci przepływowej wyróżnia się jeden wierzchołek s, z którego wychodzą przepływy - jest to tzw. źródło (ang. source), oraz jeden wierzchołek t, do którego zbiegają się przepływy - jest to tzw. ujście (ang. sink).
PrzEpustowość Z każdą krawędzią grafu (w terminologii sieci przepływowych krawędzie nazywamy kanałami - ang. chanels) skojarzony jest parametr określający tzw. przepustowość (ang.capacity), która oznacza maksymalną ilość czynnika mogącego przez tę krawędź przepływać. Przepustowość jest nieujemną funkcją rzeczywistą oznaczaną zwykle przez c(u,v), gdzie u i v ∈ V. Jeśli wierzchołki u i v są połączone kanałem, czyli (u,v) ∈ E, to przepustowość tego kanału spełnia warunek c(u,v) ≥ 0. Jeśli wierzchołki u i v nie są połączone kanałem, czyli(u,v) ∉ E, to c(u,v) = 0.
s-źródło, t-ujście, A,B,C- wierzchołki pośredniczące
Przepływ Przepływ to funkcja rzeczywista o argumentach będących parą wierzchołków grafu, oznaczana zwykle przez f(u,v). Funkcja przepływu musi spełniać trzy warunki. Funkcję f(u,v) nazywamy przepływem netto (ang. net flow) od wierzchołka u do wierzchołka v. Funkcja ta może przyjmować wartości dodatnie i ujemne.
Warunkek I Ograniczenia przepustowości (ang. capacity constraints) Dla każdej pary wierzchołków u i v ∈ V zachodzi f(u,v) ≤ c(u,v). Warunek ten mówi, iż przepływ w kanale (u,v) ∈ E nie może przekroczyć jego przepustowości. Zwróć uwagę, iż z warunku tego i własności przepustowości kanału wynika od razu, iż jeśli pomiędzy wierzchołkami u i v nie ma kanału, to przepływ f(u,v) = 0, ponieważ c(u,v) = 0.
Warunek II Skośna symetria (ang. skew symmetry) Dla każdej pary wierzchołków u i v ∈ V zachodzi f(u,v) = -f(v,u). Warunek ten oznacza, iż przepływ w odwrotnym kierunku jest ujemny. Z warunku tego wynika od razu, iż f(u,u) = -f(u,u) = 0 - przepływ pomiędzy tym samym wierzchołkiem grafu jest zawsze zerowy.
Warunek III Zachowanie przepływu (ang. flow conservation) Dla każdego wierzchołka u ∈ V - {s,t} suma wszystkich przepływów f(u,v), v ∈ V, jest równa zero. Warunek ten oznacza, iż suma wszystkich przepływów wpływających do wierzchołka jest równa sumie przepływów wypływających z wierzchołka.
Przepływ Przepływ sieci jest definiowany jako suma przepływów netto ze źródła s do wszystkich pozostałych wierzchołków sieci:
Przepływ Ponieważ przepływ netto f(u,v) = 0, jeśli pomiędzy wierzchołkami u i v nie istnieje kanał, to przepływ sieci można w prosty sposób określić sumując przepływy netto z wierzchołka s do wszystkich jego sąsiadów, czyli:
Przykład Niech N=(V,c) będzie siecią taką, że V={u,v,w,x,y} oraz c(uy)=7, c(vw)=1, c(vy)=1, c(wu)=3, c(wx)=2, c(wy)=2, c(xu)=4, c(xv)=3, c(xw)=3, a wszystkie pozostałe przepustowości są zerami.
Przykład
Pamiętając o tym, że „przepływ” nie może być większy od zdefiniowanej przepustowości, wyznaczamy przykładowe „przepływy”:
Sieć residualna Przepustowość residualna cf(u,v) (ang. residual capacity) danego kanału (u,v) jest równa różnicy przepustowości oraz przepływu w tym kanale: cf(u,v) = c(u,v) - f(u,v) Przepustowości residualne liczy się również w kierunku przeciwnym - pomimo, że w sieci może nie występować kanał zwrotny. W takim przypadku, zgodnie z definicją przepustowości i własnością skośnej symetrii przepływu, mamy: cf(v,u) = c(v,u) - f(v,u) Ponieważ c(v,u) = 0, f(v,u) = - f(u,v), to cf(v,u) = 0 - (-f(u,v)) = f(u,v)
Sieć residualna Przepustowości residualne indukują tzw. sieć residualną (ang. residual network) , która zawiera wszystkie wierzchołki oryginalnej sieci przepływowej oraz krawędzie łączące wierzchołki, dla których przepustowość residualna jest większa od zera - oznacza to, iż w sieci residualnej nie umieszczamy krawędzi pomiędzy wierzchołkami u i v, jeśli cf(u,v) = 0. Na poniższym rysunku przedstawiamy sieć residualną dla przykładowej sieci przepływowej:
Sieć residualna
Ścieżka rozszerzająca Ścieżka rozszerzająca jest ścieżką w sieci residualnej (to ważne - w pierwotnej sieci takiej ścieżki może nie być!!!) łączącą źródło s z ujściem t. Wszystkie kanały leżące na ścieżce rozszerzającej muszą posiadać niezerowe przepustowości residualne. Przepustowość residualna ścieżki rozszerzającej jest równa najmniejszej przepustowości residualnej kanałów należących do tej ścieżki. Fakt ten zapisujemy następująco: cf(p) = min{cf(u,v) | (u,v) ∈p}
Ścieżka rozszerzająca
Przekrój Przekrój rozdzielający x od y jest to zbiór krawędzi, których usunięcie pozostawia sieć nie mającą nietrywialnych przepływów z x do y. Przepustowość przekroju jest sumą przepustowości wszystkich krawędzi należących do przekroju.
Twierdzenie minimaksowe. Między dowolnymi dwoma wierzchołkami z oraz y należącymi do sieci zachodzi Minimalna przepustowość Maksymalna wartość Przekroju, który przepływu Rozdziela x od y z x do y
Algorytm Forda – Fulkersona W każdej iteracji metody Forda–Fulkersona odnajdujemy dowolną ścieżkę powiększającą i zwiększamy przepływ na każdej krawędzi o przepustowość rezydualną .
Literatura Brylant Victor „Aspekty kombinatoryki” http://edu.i- lo.tarnow.pl/inf/utils/002_roz/ol029.php http://wazniak.mimuw.edu.pl/index.php?titl e=Zaawansowane_algorytmy_i_struktury_dan ych/Wykład_9