Next: Maksymalny przepływ a dualność
Up: Metody sieciowe
Previous: Sieci
  Spis rzeczy
  Indeks
W sieci może być wyróżniony pewien wierzchołek , nazywany źródłem
i inny
wierzchołek, powiedzmy , który nazywać będziemy odpływem.
Niech będzie siecią o źródla i odpływie oraz nieujemnej funkcji przepustowości . O nieujemnej funkcji
mówimy, że jest
przepływem z do w jeżeli spełnia następujące
warunki:
(8.2) |
|
(8.3) |
|
Liczbę
nazywamy wartością przepływu .
Przykład 8.2
Niech
będzie siecią jak na rysunku 8.3. Liczby wypisane obok łuków w kwadracikach
oznaczają przepustowości łuków, a te bez kwadracików przepływy. Jest bardzo łatwym
sprawdzenie, że na rysunku poprawnie zdefiniowany jest przepływ (spełnia warunki
(
) i (
)), a wartoć tego przepływu wynosi
.
Rys. 8.3
Problem optymalizacyjny narzuca się teraz sam.
Problem maksymalnego przepływu.
Dla danej sieci o źródle i odpływie znaleźć przepływ
o maksymalnej wartości.
W dalszym ciągu będzie nam wygodnie będzie nam przyjąć zamiast
,
i istnienie wszystkich możliwych łuków w sieci. Interpretacja takiej umowy jest oczywista: nie ma przepływu (a raczej jest przepływ zerowy) na nieistniejących łukach8.6.
Wtedy warunki () i () można zapisać, odpowiednio,
(8.4) |
|
(8.5) |
|
a wzór na wartość przepływu
(8.6) |
|
Zauważmy, że przepływ w przykładzie
nie jest maksymalny. Zwiększając przepływ na łukach:
i
o otrzymamy przepływ (warunki () i () są dalej spełnione)
i wartość tego
przepływu wynosi . Okaże się, że ten prosty pomysł znajdowania ścieżki prowadzącej
z do wzdłóż której można zwiększyć przepływ na poszczególnych łukach
o stałą wartość, jest kluczową ideą prowadzącą do rozwiązania problemu maksymalnego
przepływu w sieciach.
Jest najzupełniej oczywiste, że problem maksymalnego przepływu jest
problemem programowania
liniowego. Wierzchołki sieci nazwiemy
, z , a przepływ
na łuku oznaczymy przez (zamiast a
przepustowość łuku
przez . Nasz problem maksymalnego przepływu jest PPL:
(8.7) |
|
Zauważmy, że jeśli zbiór wierzchołków sieci jest skończony (a tylko takie sieci
tu rozważamy) a przepustowości łuków są liczbami skończonymi, to problem
() jest ograniczony, posiada więc rozwiązanie optymalne.
Z powyższego oraz twierdzenia wynika następujący wniosek.
Wniosek 8.2
Jeśli funkcja przepustowości łuków przyjmuje wartości całkowite, to problem
maksymalnego przepływu w tej sieci ma całkowite rozwiązanie optymalne.
Ważnym pojęciem dla problemu maksymalnego przepływu są przekrój i jego wartość.
Niech będzie dana sieć ze źródłem i odpływem i niech będzie
takim podzbiorem , że i . Zbiór oznaczmy przeż .
Zbiór łuków
nazywamy przekrojem rozdzielającym od
lub krótko przekrojem. Liczbę
nazywamy przepustowością przekroju
.
Twierdzenie 8.3
Niech
będzie siecią o źródle
i odpływie
. Dla dowolnego przepływu
i dla dowolnego przekroju
zachodzi nierówność
Dowód. Sumując odpowiednio wzory () i () po wszystkich
i pamiętając, że
, otrzymamy
Zauważmy, że
,
a wobec tego
(8.8) |
|
Wartości są nieujemne, uwzględniając więc nierówności ()
otrzymujemy
(8.9) |
|
co kończy dowód.
Uwaga 8.1
Jeżeli uda nam się znaleźć przepływ
i przekrój
takie, że
to na mocy twierdzenia
jest przepływem maksymalnym (a przekrój
ma minimalną przepustowość).
Niejako po drodze w dowodzie twierdzenia otrzymaliśmy ważną
równość () którą teraz zapiszemy nieco inaczej.
Uwaga 8.2
Dla każdego przepływu
i przekroju
zachodzi wzór
(8.10) |
|
Wniosek oznacza, że w przyrodzie nic nie ginie, to co
wypłynęło ze źródła wpływa do odpływu!
Dowód wniosku .
Wystarczy zastosować wzór () do
.
Twierdzenie da nam możliwość udowodnienia twierdzenia o
maksymalnym przepływie i minimalnym przekroju, odkrytego niezależnie przez Forda i
Fulkersona [8] oraz Eliasa, Feinsteina i Shannona [7].
Twierdzenie 8.5 (Max flow min cut theorem)
Maksymalna wartość
przepływu
ze źródła
do odpływu
w sieci jest równa wartości minimalnego przekroju
rozdzielającego
od
:
Dowód twierdzenia polega de facto na wskazaniu algorytmu
pozwalającego znależć maksymalny przepływ w sieci, tzw.
algorytm ścieżki powiększającej
Forda-Fulkersona (p. [9]). Formalnie algorytm ten zostanie przedstawiony później.
Niech będzie przepływem maksymalnym w sieci ze źródła do
odpływu . Utwórzmy rekurencjnie zbiór w następujący sposób:
-
- jeśli
to
- jeśli
i to .
Kluczową ideą dowodu jest obserwacja, że dla każdego wierzchołka istnieje ścieżka
taka, że
i dla każdego zachodzi albo
(8.11) |
|
albo
(8.12) |
|
Inaczej mówiąc: wartość przepływu jest mniejsza od przepustowości na wszystkich łukach zgodnych i dodatnia na niezgodnych łukach ścieżki .
Gdyby należało do , to istniałaby ścieżka z do (tj. taka, że
i ) spełniająca warunki ()-(). Niech
oraz
Jest oczywistym, że
, i że dodając do funkcji przepływu na łukach ścieżki zgodnych i odejmując na łukach ścieżki niezgodnych, inaczej mówiąc: definiując funkcję
otrzymalibyśmy nową funkcję przepływu której wartość wynosiłaby
co byłoby sprzeczne z maksymalnościa przepływu .
Stąd wynika, że nie jest elementem zbioru i zbiór ma następujące własności:
-
-
- jeśli
to
- jeśli
to
Wobec (1) i (2) jest przekrojem rozdzielającym i .
Łuki spełniające (3) nazywają sie nasyconymi
, a takie które spełniają (4)
wyschniętymi.
Wobec (3) i (4) mamy
co wobec twierdzenia dowodzi, że
jest przekrojem o przepustowości minimalnej.
Next: Maksymalny przepływ a dualność
Up: Metody sieciowe
Previous: Sieci
  Spis rzeczy
  Indeks