|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
| SPIS TREŚCI |
|
| Tematy pomocnicze |
| Podrozdziały |
Sieć przepływowa (ang. flow network) jest
spójnym grafem skierowanym
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). Możemy wyobrazić sobie, iż czynnik przepływający poprzez sieć jest wytwarzany w źródle s, następnie przemieszcza się poprzez krawędzie grafu docierając różnymi drogami do ujścia t, gdzie jest w jakiś sposób odprowadzany.
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ć (tzn. czynnika przepływającego przez
kanał może być mniej od jego przepustowości, lecz nigdy więcej).
Przepustowość jest nieujemną funkcją rzeczywistą oznaczaną zwykle przez

Na powyższym rysunku przedstawiamy bardzo prosty przykład sieci
przepływowej. Jej graf składa się z 5 wierzchołków: źródła s, trzech
wierzchołków pośredniczących
Przepływ
to funkcja rzeczywista o argumentach będących parą wierzchołków grafu, oznaczana
zwykle przez
Dla każdej pary wierzchołków
Warunek ten mówi, iż przepływ w kanale
Dla każdej pary wierzchołków
Dla każdego wierzchołka
Funkcję
Przepływ sieci jest definiowany jako suma przepływów netto ze źródła s do wszystkich pozostałych wierzchołków sieci:

Ponieważ przepływ netto

Jeśli graf sieci przepływowej będzie reprezentowany w pamięci komputera za pomocą list sąsiedztwa, to wierzchołki sąsiednie znajdziemy bardzo szybko odczytując je po kolei z listy sąsiedztwa wierzchołka s. Takie podejście pozwala przyspieszyć wyliczanie przepływu sieci.
Załóżmy, że mamy daną sieć przepływową w postaci grafu skierowanego

W powyższej sieci przepływowej zaznaczyliśmy dla każdego kanału jego
przepływ:przepustowość. Na przykład w kanale
Przepustowość rezydualna
cf(u,v) = c(u,v)-f(u,v)
Ponieważ:
c(v,u) = 0 f(v,u) =-f(u,v)
to
cf(v,u) = 0-(-f(u,v)) = f(u,v)
Przepustowości rezydualne liczy się również w kierunku przeciwnym, chociaż 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)
Przepustowość rezydualna w kierunku zgodnym ze zwrotem kanału jest "zapasem" przepływu, który dodatkowo można przez ten kanał przepuścić. W kierunku przeciwnym jest natomiast równa aktualnemu przepływowi w kanale.
Przepustowości rezydualne indukują tzw. sieć rezydualną
(ang. residual network), która zawiera wszystkie wierzchołki
oryginalnej sieci przepływowej oraz krawędzie łączące wierzchołki, dla
których przepustowość rezydualna jest większa od zera – oznacza to, iż
![]() |
→ |
![]() |
W otrzymanej przez nas sieci rezydualnej każdy kanał pierwotnej sieci przepływowej jest reprezentowany przez dwa przeciwnie skierowane kanały. Ponieważ sieć rezydualna jest zwykle modyfikowana przez różne algorytmy przepływowe, umówmy się, iż dany kanał nie "istnieje" w sieci rezydualnej, jeśli jego przepustowość rezydualna spadnie do 0 – tzn. fizycznie kanał może istnieć, ale nie można już przez niego przepuszczać więcej przepływu – staje się on jakby nieużyteczny, niedrożny. Takie podejście znakomicie ułatwia tworzenie sieci rezydualnej.
W sieci przepływowej może występować wiele źródeł oraz wiele ujść:

Na szczęście taką sieć można w bardzo prosty sposób sprowadzić do sieci
z jednym źródłem i z jednym ujściem. W tym celu dodajemy jeden wierzchołek
superźródła S oraz jeden wierzchołek superujścia
T. Superźródło S łączymy kanałami z poszczególnymi
źródłami

Przepływ sieci jest równy sumie przepływów sieciowych poszczególnych źródeł i jest generowany przez superźródło:

Czasami mamy do czynienia z przypadkiem, gdy ograniczony zostaje maksymalny przepływ przez węzeł – np. bez względu na przepustowości autostrad wchodzących do miasta i wychodzących z niego Rada Miejska postanowiła ograniczyć ruch samochodowy przepływający przez miasto (np. ze względu na ochronę zdrowia mieszkańców). Zatem otrzymujemy sieć przepływową, w której oprócz przepustowości kanałów mamy również przepustowość węzłów. Sieć taką powinniśmy sprowadzić do zwykłej sieci przepływowej, co ułatwi jej przetwarzanie przez algorytmy przepływowe.
![]() |
→ |
![]() |
Zadanie rozwiązujemy w bardzo prosty sposób. Węzeł z ograniczeniem przepływu zastępujemy dwoma węzłami. Do pierwszego z nich podłączamy wszystkie kanały wejściowe. Do drugiego węzła podłączamy wszystkie kanały wyjściowe. Następnie oba węzły łączymy kanałem o przepustowości równej maksymalnemu przepływowi dozwolonemu w pierwotnym węźle. W wyniku otrzymujemy zwykłą sieć przepływową.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.