Sieci przepływowe

Transkrypt

Sieci przepływowe
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
1. Sieci przep÷ywowe
Wyobraźmy sobie sieć energetyczna¾ lub teleinformatyczna,
¾ czyli pewna¾ ilość w¾
ez÷
ów po÷
ac¾
zonych kablami, którymi przesy÷
ana jest energia (dane). Kable maja¾określona¾przepustowość
powodujac
¾ a¾ ograniczenia w przesyle energii. Zajmiemy sie¾ problemem maksymalizacji ilości
energii przesy÷
anej z jednego w¾
ez÷
a (źród÷
a) do innego (ujścia). Opiszemy model takiej sieci
wykorzystujacy
¾ grafy skierowane.
Niech G = (V; E) bedzie
¾
prostym grafem skierowanym, c : V V ! [0; 1) funkcja¾ taka,¾
z·e c (a; b) = 0, gdy (a; b) 2
= E oraz s, t róz·nymi wierzcho÷
kami w G. Czwórk¾
e N = (G; c; s; t)
nazywamy siecia¾ przep÷
ywowa¾ lub krótko siecia,
¾ funkcje¾ c funkcja¾ przepustowości lub
przepustowościa,
¾ wierzcho÷
ek s źród÷
em oraz wierzcho÷
ek t ujściem tej sieci. Przep÷
ywem w sieci nazywamy dowolna¾ funkcje¾ f : V V ! R taka,
¾ z·e
(P1)
(P2)
(P3)
8
a;b2V
8
f (a; b)
c (a; b) (warunek przepustowości).
f (a; b) = f (b; a) (warunek skośnej symetryczności).
X
8
f (a; b) = 0 (warunek zachowania przep÷
ywu).
a;b2V
a2V nfs;tg
b2V
Liczbe¾ c (a; b) nazywamy przepustowościa¾ miedzy
¾
wierzcho÷
kami a i b lub przepustowościa¾ krawedzi
¾
(a; b), natomiast liczbe¾ f (a; b) przep÷
ywem z wierzcho÷
ka a do
wierzcho÷
ka b.
Potraktujmy wierzcho÷
ki digrafu jako w¾
ez÷
y sieci energetycznej oraz kraw¾
edzie jako kable
pomiedzy
¾
w¾
ez÷
ami. Przepustowość c (a; b) interpretujemy wtedy jako maksymalna¾ ilość energii jaka¾moz·emy przes÷
ać miedzy
¾
a i b w jednostce czasu. Warunek c (a; b) = 0, gdy (a; b) 2
=E
mówi, z·e nie da sie¾ przesy÷
ać energii jeśli nie ma kabla. Moz·e sie¾ jednak zdarzyć, z·e (a; b) 2 E
i c (a; b) = 0, czyli dopuszczamy kable o przepustowości 0.
Sieć przep÷
ywowa opisuje "infrastrukture"
¾ dzieki
¾ której moz·emy przesy÷
ać energie.
¾ Sposób
w jaki ja¾ przesy÷
amy opisuje funkcja przep÷
ywu f . Przep÷
ywem jest np. funkcja toz·samościowo równa zero f (a; b) = 0 dla a; b 2 V . Na ogó÷moz·na zde…niować równiez· przep÷
ywy
niezerowe. Warunek przepustowości (P1) mówi, z·e ilość energii jaka¾ moz·na przes÷
ać miedzy
¾
wierzcho÷
kami a i b nie moz·e być wieksza
¾
niz· przepustowość kabla ÷
acz
¾ acego
¾
te wierzcho÷
ki.
Warunek skośnej symetryczności (P2) ma charakter techniczny. Pokazuje, z·e jez·eli z a
do b przysy÷
amy pewna¾ ilość energii f (a; b) > 0, to z b do a przep÷
ywa ilość przeciwna
f (b; a) = f (a; b) < 0. Mówimy wtedy, z·e energia wyp÷
ywa z a oraz wp÷
ywa do b.
Warunek zachowania przep÷
ywu (P3) oznacza, z·e ze wszystkich wierzcho÷
ków, poza źród÷
em
i ujściem, wyp÷
ywa tyle samo energii ile do nich wp÷
ywa.
1
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
2
Uz·yty przez nas model sieci nie jest jedynym moz·liwym. W niektórych pracach (np. w
ksia¾z·ce Forda i Fulkersona "Przep÷
ywy w sieciach") rozwaz·a sie¾ wy÷
acznie
¾
przyp÷
ywy nieujemne. Przyjmuje sie,
¾ z·e jeśli f (a; b) > 0, to f (b; a) = 0. Przy takiej de…nicji trzeba
zmody…kować warunki (P2) i (P3).
Zauwaz·my, z·e nasz model jest uproszczeniem rzeczywistości. Rozwaz·amy wy÷
acznie
¾
digrafy
proste, czyli energie¾ miedzy
¾
ustalonymi w¾
ez÷
ami moz·na przesy÷
ać tylko po jednym kablu.
Ponadto warunek skośnej symetryczności nie pozwala na jednoczesne przesy÷
anie energii z a
do b i z b do a. Oznacza to, z·e w naszym modelu rozwaz·amy sumaryczny przep÷
yw miedzy
¾
wierzcho÷
kami. Jeśli w rzyczywistej sieci mamy kilka kabli miedzy
¾
wierzcho÷
kami, to jako
f (a; b) przyjmujemy sum¾
e przep÷
ywów przez poszczególne kable. Jeśli zaś przesy÷
amy energie¾
zarówno z a do b jak i z b do a, to jako f (a; b) przyjmujemy róz·nice¾ przep÷
ywów.
Przy rysowaniu sieci przep÷
ywowych przyjmuje sie¾ umow¾
e, z·e nie sa¾ rysowane kraw¾
edzie o
przepustowości 0 oraz nie zaznacza sie¾ przep÷
ywów ujemnych i zerowych.
Pojedyncza liczba oznacza przepustowość. Dwie liczby, np. 11=16 oznaczaja¾ przep÷
yw i przepustowość. Brak kraw¾
edzi oznacza przepustowość 0. Jeśli nie jest podana wartość przep÷
ywu,
to przyjmujemy, z·e jest równa zero lub ujemna (w zalez·ności od przep÷
ywu w przeciwnym
kierunku). Przyk÷
adowo w powyz·szej sieci mamy
c (s; a) = 16; c (a; s) = 0;
c (a; b) = 10; c (b; a) = 4; c (s; c) = c (c; s) = 0;
f (s; a) = 11; f (a; s) = 11; f (a; b) = 1; f (b; a) = 1; f (s; c) = f (c; s) = 0:
Ćwiczenie 1. Sprawdzi´c, ·ze funkcja f zde…niowana na ostatnim rysunku jest przep÷ywem.
Uwaga 1. Uwa·zny czytelnik móg÷zwróci´c uwage¾ na to, ·ze digraf G nie gra praktycznie ·zadnej
roli w de…nicji sieci przep÷ywowej. Funkcje c i f sa¾okre´slone na V V , a nie na E. Gdyby
z de…nicji usuna´c
¾ G (czyli nie wyró·znia´c ·zadnych krawedzi),
¾
to upro´sci÷aby sie¾ nawet, bo
mogliby´smy zrezygnowa´c z warunku "c (a; b) = 0, gdy (a; b) 2
= E". Przyczyna, dla której w
de…nicji sieci u·zyli´smy grafu skierowanego stanie sie¾ jasna w dalszej cze¾´sci wyk÷adu. W wielu
miejscach wygodnie bedzie
¾
u·zywa´c terminologii zwiazanej
¾
z grafami. Szczególnie przydatne
bed
¾ a¾pojecia
¾ krawedzi
¾ i ´scie·zki.
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
3
Zanim sformu÷
ujemy g÷
ówny problem zwiazany
¾
z sieciami przep÷
ywowymi, wprowadzimy
jeszcze uproszczone oznaczenia. Dla dowolnych a; b 2 V i A; B V przyjmujemy:
P P
fab = f (a; b) ; f (A; B) =
fab ;
a2A b2B
f (a; B) = f (fag ; B) ; f (B; a) = f (B; fag) ;
f (A n a; B) = f (A n fag ; B) ; f (B; A n a) = f (B; A n fag)
oraz analogiczne oznaczenia stosujemy dla funkcji c (i kaz·dej innej określonej na V
Z de…nicji przep÷
ywu ÷
atwo wynika
eB
W÷
asność 1. Niech f bedzie
¾
przep÷ywem w sieci. Dla dowolnych zbiorów A; A;
e = ; zachodzi
·ze A \ A
V ).
V takich,
(1) f (A; B) = f (B; A) ;
(2) f (A; A) = 0;
e B = f (A; B) + f A;
eB ;
(3) f A [ A;
e = f (B; A) + f B; A
e :
(4) f B; A [ A
Dowód.
(1) f (A; B) =
P P
P2
fab =
P P
( fba ) =
a2A b2B
a2A b2B
P P
(2) Z (1) wynika, z·e f (A; A) = f (A; A). Stad
¾ f (A; A) = 0.
P
P
P
P
P
e
A\
A=;
eB =
(3) f A [ A;
fab
=
fab +
e
a2A[A
a2A
b2B
fba
=
f (B; A) :
b2B a2A
b2B
e
a2A
P
fab
= f (A; B) +
b2B
eB .
f A;
Warunek (4) moz·na wywnioskować z (3) i (1), albo udowodnić tak jak (3).
Niech f bedzie
¾
przep÷
ywem w sieci ((V; E) ; c; s; t). Wartościa¾ przep÷
ywu f nazywamy
liczbe¾
X
jf j = f (s; V ) =
fsa ;
a2V
czyli ilość "energii" wyp÷
ywajacej
¾ ze źród÷
a, a dok÷
adniej róz·nice¾ miedzy
¾
tym co wyp÷
ywa a
tym co wp÷
ywa.
Ćwiczenie 2. Obliczy´c warto´s´c przep÷ywu z ostatniego przyk÷adu.
W÷
asność 2. Je·zeli f jest przep÷ywem w sieci, to
jf j = f (V; t) .
Dowód. Z de…nicji przep÷
ywu oraz poprzedniej w÷
asności mamy
(2)
(3)
(1)
0 = f (V; V ) = f (s; V ) + f (t; V ) + f (V n fs; tg ; V ) =
!
X
X
P3
= f (s; V ) f (V; t) +
fab = f (s; V ) f (V; t) +
a2V nfs;tg
= f (s; V )
f (V; t) :
Stad
¾ f (V; t) = f (s; V ) = jf j.
b2V
X
a2V nfs;tg
0=
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
4
W dalszych rozwaz·aniach bedziemy
¾
czesto
¾ szukać niezerowego przep÷
ywu w sieci. Najprostsza¾ metoda¾ jest znalezienie ściez·ki bez powtarzajacych
¾
sie¾ wierzcho÷
ków ze źród÷
a do ujścia
z÷
oz·onej z kraw¾
edzi o dodatnich przepustowościach, a nastepnie
¾
zde…niowanie przep÷
ywu w
oparciu o kraw¾
edzie tej ściez·ki.
Niech d bedzie
¾
ściez·ka¾ bez powtarzajacych
¾
sie¾ wierzcho÷
ków ze źród÷
a do ujścia w sieci
przep÷
ywowej (G; c; s; t). Przepustowościa¾ ściez·ki d nazywamy liczbe¾
c (d) = min fcab ; (a; b) 2 dg :
Ćwiczenie 3. W poni·zszej sieci znale´z´c pie¾´c ró·znych ´scie·zek bez powtarzajacych
¾
sie¾ wierzcho÷ków ze ´zród÷a do uj´scia i obliczy´c ich przepustowo´sci.
Twierdzenie 1. Je·zeli d jest ´scie·zka¾bez powtarzajacych
¾
sie¾ wierzcho÷ków ze ´zród÷a do uj´scia
w sieci przep÷ywowej, to funkcja f d : V V ! R okre´slona wzorem
8
>
(a; b) 2 d;
< c (d) ;
d
fab =
c (d) ;
(b; a) 2 d;
>
:
0; (a; b) 2
= d ^ (b; a) 2
=d
jest przep÷ywem oraz f d = c (d).
Dowód. Poniewaz· w d nie powtarzaja¾sie¾ wierzcho÷
ki, wiec
¾ do d nie moga¾jednocześnie nalez·eć
kraw¾
edzie (a; b) i (b; a). Zatem de…nicja funkcji f d jest poprawna. Pokaz·emy, z·e f d spe÷
nia
warunki (P1)-(P3).
·
Warunek skośnej symetryczności jest oczywisty. Zeby
udowodnić warunek przpustowości
rozpatrzmy przypadki. Jeśli (a; b) 2 d, to
d
= c (d) = min fcxy ; (x; y) 2 dg
fab
Jeśli (b; a) 2 d, to
d
fab
=
c (d)
0
cab :
cab .
Jeśli natomiast (a; b) 2
= d i (b; a) 2
= d, to
d
=0
fab
cab .
Dowodzi to warunku (P1). Udowodnimy teraz warunek zachowania przep÷
ywu. Niech a 2
V n fs; tg. Jeśli a 2
= d, to
X
X
d
fab
=
0 = 0:
b2V
b2V
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
5
Za÷
óz·my z kolei, z·e a 2 d. Istnieja¾ wtedy wierzcho÷
ki x, y takie, z·e (x; a) ; (a; y) 2 d. Stad
¾
X
X
X
d
d
d
d
fab
= fax
+ fay
+
fab
= c (d) + c (d) +
0 = 0,
b2V
b2V nfx;yg
b2V nfx;yg
co dowodzi warunku (P3). Do zakończenia dowodu pozostaje obliczenie f d . Poniewaz· s
jest poczatkiem
¾
ściez·ki d, wiec
¾ (a; s) 2
= d dla a 2 V oraz istnieje dok÷
adnie jeden wierzcho÷
ek
x 2 V taki, z·e (s; x) 2 d. Stad
¾
X
fd =
fsa = fsx = c (d) :
a2V
Ćwiczenie 4. Wyznaczy´c przep÷ywy generowane przez´scie·zki znalezione w poprzednim´cwiczeniu.
Niech d1 ; d2 ; : : : ; dk bed
¾ a¾ ściez·kami prostymi w gra…e skierowanym lub nieskierowanym
(k 2 N). Ściez·ki te nazywamy krawedziowo
¾
roz÷
acznymi
¾
jez·eli dowolne dwie z nich nie
maja¾ wspólnych kraw¾
edzi.
Ćwiczenie 5. W sieci z ostatniego przyk÷adu wskaza´c trzy pary krawedziowo
¾
roz÷¾
acznych
¾
roz÷¾
acznych ´scie·zek
´scie·zek prostych ze ´zród÷a do uj´scia. Czy istnieje zbiór krawedziowo
prostych ze ´zród÷a do uj´scia majacy
¾ wiecej
¾ ni·z dwa elementy?
Ćwiczenie 6. Niech d1 ; d2 ; : : : ; dk bed
¾ a¾ krawedziowo
¾
roz÷¾
acznymi ´scie·zkami bez powtarzaja¾
d1
d2
dk
cych sie¾ wierzcho÷ków ze ´zród÷a do uj´scia w sieci przep÷ywowej oraz f ; f ; : : : ; f bed
¾ a¾
def. d1
przep÷ywami generowanymi przez te ´scie·zki. Przyjmijmy f = f + f d2 + : : : + f dk . Udowodni´c, ·ze
(1) f jest przep÷ywem,
(2) jf j = f d1 + f d2 + : : : + f dk = c (d1 ) + c (d2 ) + : : : + c (dk ),
(3) je·zeli´scie·zki d1 ; d2 ; : : : ; dk nie zawieraja¾·zadnej pary krawedzi
¾ przeciwnych (x; y), (y; x),
to dla dowolnych wierzcho÷ków a, b zachodzi
8
>
gdy (a; b) 2 di
dla pewnego i = 1; : : : ; k;
< c (di )
fab =
c (di ) gdy (b; a) 2 di
dla pewnego i = 1; : : : ; k;
>
: 0
gdy (a; b) 2
= di oraz (b; a) 2
= di dla wszystkich i = 1; : : : ; k:
Mówimy, z·e f0 jest przep÷
ywem maksymalnym w sieci przep÷
ywowej jez·eli dla dowolnego przep÷
ywu f zachodzi jf j
jf0 j. Problem szukania przep÷
ywu maksymalnego jest
podstawowym zagadnieniem zwiazanym
¾
z sieciami przep÷
ywowymi. Zacznijmy od pytania
o istnienie przep÷
ywu maksymalnego. Przypomnijmy, z·e zgodnie z wcześniejsza¾ umowa,
¾
rozwaz·amy tylko sieci skończone. Dzieki
¾ temu moz·na dość ÷
atwo udowodnić istnienie przep÷
ywu
maksymalnego. Dowód opiera sie¾ na twierdzeniu Weierstrassa mówiacym,
¾
z·e funkcja ciag÷
¾ a
n
określona na domknietym
¾
i ograniczonym (czyli zwartym) podzbiorze przestrzeni R osiaga
¾
swoje kresy.
Twierdzenie 2. W dowolnej sieci przep÷ywowej istnieje przep÷yw maksymalny.
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
6
Ćwiczenie 7. Udowodni´c poprzednie twierdzenie korzystajac
¾ z poni·zszych wskazówek.
(1) Oznaczy´c V
V = fe1 ; e2 ; : : : ; en g i zde…niowa´c zbiór
D = [ c (e1 ) ; c (e1 )]
(2)
(3)
(4)
(5)
(6)
[ c (e2 ) ; c (e2 )]
:::
[ c (en ) ; c (en )]
Rn :
Pokaza´c, ·ze zbiór D jest domkniety
¾ i ograniczony.
Uto·zsami´c dowolny przep÷yw f : V V ! R z punktem zbioru D.
Udowodni´c, ·ze zbiór F wszystkich przep÷ywów jest domknietym
¾
podzbiorem D.
Udowodni´c, ·ze funkcja F 3 f 7 ! jf j jest ciag÷
¾ a.
Korzystajac
¾ z twierdzenia Weierstrassa pokaza´c, ·ze istnieje przep÷yw maksymalny.
Idea szukania przep÷
ywu maksymalnego opisana dalej polega na znalezieniu jakiegokolwiek
przep÷
ywu (np. zerowego), a nastepnie
¾
sukcesywnym poprawianiu go. W zwiazku
¾
z tym
szczególnie interesuja¾ nas kraw¾
edzie, dla których nie wykorzystaliśmy pe÷
nej przepustowości,
czyli takie, z·e fab < cab . Bedziemy
¾
je nazywać krawedziami
¾
nienasyconymi. Do ich
badania wykorzystamy zde…niowane niz·ej pojecia.
¾
Niech f bedzie
¾
przep÷
ywem w sieci N = ((V; E) ; c; s; t). Funkcje¾ cf = c f nazywamy
przepustowościa¾ rezydualna.
¾ Siecia¾ rezydualna¾ indukowana¾ przez przep÷
yw f nazyf
wamy sieć Nf = (V; Ef ) ; c ; s; t , gdzie
n
o
f
Ef = (a; b) 2 V V ; cab > 0 :
Poniz·ej przedstawiona jest sieć N z przep÷
ywem f oraz sieć rezydualna Nf
Przepustowość rezydualna kraw¾
edzi pokazuje o ile moz·na zwiekszyć
¾
przep÷
yw przez te¾
kraw¾
edź w sieci oryginalnej lub o ile moz·na zmniejszyć przep÷
yw przez kraw¾
edź przeciwna.¾
W rozwaz·aniej sieci rezydualnej mamy na przyk÷
ad
cfsa = 5 - w sieci N moz·na zwiekszyć
¾
przep÷
yw przez (s; a) o 5.
f
cas = 11 - w sieci N moz·na zmniejszyć przep÷
yw przez (s; a) o 11.
f
cab = 11 - w sieci N moz·na zwiekszyć
¾
przep÷
yw przez (a; b) o 10 oraz zmniejszyć
przep÷
yw przez (b; a) o 1.
Twierdzenie 3. Je·zeli f jest przep÷ywem w sieci N , za´s f 0 przep÷ywem w sieci rezydualnej
Nf , to funkcja f + f 0 jest przep÷ywem w N oraz
jf + f 0 j = jf j + jf 0 j :
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
7
Dowód. Warunki (P2) i (P3) oraz równość jf + f 0 j = jf j + jf 0 j wynikaja¾ z w÷
asności dodawania. Z kolei warunek (P1) dostajemy z de…nicji przepustowości rezydualnej oraz warunku
przepustowości dla f 0 :
0
(f + f 0 )ab = fab + fab
fab + cfab = fab + (cab
fab ) = cab :
Ćwiczenie 8. Zapisa´c dowody warunków (P2), (P3) oraz równo´sci jf + f 0 j = jf j + jf 0 j.
Niech f bedzie
¾
przep÷
ywem w sieci N . Ściez·ka¾ powiekszaj
¾
ac
¾ a¾dla f nazywamy dowolna¾
ściez·k¾
e bez powtarzajacych
¾
sie¾ wierzcho÷
ków ze źród÷
a do ujścia w sieci rezydualnej Nf .
Twierdzenie 4. Je·zeli f jest przep÷ywem w sieci N oraz p ´scie·zka¾powiekszaj
¾
ac
¾ a,¾ to funkcja
p
f + f jest przep÷ywem w N takim, ·ze
jf + f p j > jf j :
Dowód. Z twierdzenia 1 wynika, z·e f p jest przep÷
ywem w sieci rezydualnej Nf . Poniewaz·
wszystkie kraw¾
edzie w sieci rezydualnej maja¾ dodatnie przepustowości, wiec
¾
n
o
f
jf j = c (p) = min cab ; (a; b) 2 p > 0:
p
f
Korzystajac
¾ z twierdzenia 3 stwierdzamy, z·e f + f p jest przep÷
ywem w N oraz
jf + f p j = jf j + jf p j > jf j :
O przep÷
ywie f + f p mówimy, z·e jest to przep÷
yw f powiekszony
¾
wzd÷
uz· ściez·ki p.
W sieci z poprzedniego przyk÷
adu ściez·ka¾ powiekszaj
¾
ac
¾ a¾ jest p = sbct.
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
Przepustowość rezydualna ściez·ki p wynosi cf (p) = 4.
przep÷
yw f + f p oraz odpowiadajac
¾ a¾ mu sieć rezydualna.¾
8
Poniz·sze rysunki przedstawiaja¾
×atwo sprawdzić, z·e w ostatniej sieci rezydualnej nie da sie¾ znaleźć ściez·ki powiekszaj
¾
acej.
¾
Twierdzenie 4 jest podstawa¾ dzia÷
ania metody Forda-Fulkersona, pierwszego opisanego
sposobu szukania maksymalnego przep÷
ywu.
Ford-Fulkerson(N )
f := 0
while istnieje ściez·ka powiekszaj
¾
aca
¾ w Nf do
p := ściez·ka powiekszaj
¾
aca
¾
p
f := f + f
fmax := f
Mówiac
¾ o metodzie Forda-Fulkersona uz·yliśmy terminu "metoda", a nie "algorytm" bo
opisany schemat postepowania
¾
nie zawiera, kluczowego dla wydajności, sposobu znajdowania
ściez·ki powiekszaj
¾
acej.
¾
Moz·emy zde…niować róz·ne algorytmy oparte na metodzie FordaFulkersona, precyzujac
¾ jak znajdujemy ściez·k¾
e powiekszaj
¾
ac
¾ a.
¾ Zainteresowanych odsy÷
am do
ksia¾z·ki "Wprowadzenie do algorytmów".
Twierdzenie 5. Je·zeli przepustowo´s´c w sieci N przyjmuje tylko warto´sci wymierne, to
wynikiem dzia÷ania procedury Ford-Fulkerson jest przep÷yw maksymalny fmax .
Twierdzenie 5 udowodnimy później, bo jego dowód bedzie
¾
wykorzystywać twierdzenie o
maksymalnym przep÷
ywie i minimalnym przekroju. Zanim jednak zajmiemy sie¾ tematem
przekrojów w sieci, przećwiczymy znajdowanie maksymalnego przep÷
ywu metoda¾ FordaFulkersona.
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
9
Ćwiczenie 9. W poni·zszych sieciach znale´z´c maksymalny przep÷yw i wyznaczy´c jego warto´s´c.
2)
1)
Niech N = ((V; E) ; c; s; t) bedzie
¾
siecia¾przep÷
ywowa.¾ Dowolna¾pare¾ zbiorów (A; B) takich,
z·e A V , B = V n S, s 2 A i t 2 B nazywamy przekrojem w tej sieci. Przepustowościa¾ przekroju (A; B) nazywamy liczbe¾ c (A; B). Przekrojem minimalnym nazywamy
przekrój o najmniejszej przepustowości. Poniewaz· liczba wszystkich przekrojów w sieci jest
skończona, wiec
¾ przekrój minimalny zawsze istnieje. Jez·eli f jest przep÷
ywem w N , to liczbe¾
f (A; B) nazywamy przep÷
ywem przez przekrój (A; B).
Ćwiczenie 10. W sieci zde…niowany jest przep÷yw f . Obliczy´c warto´s´c przep÷ywu jf j, przepustowo´s´c przekroju c (A; B) i przep÷yw przez przekrój f (A; B) dla
(1) A = fsg ;
B = fa; b; c; d; tg :
(2) A = fs; ag ;
B = fb; c; d; tg :
(3) A = fs; a; bg ;
B = fc; d; tg :
(4) A = fs; a; b; dg ; B = fc; tg :
(5) A = fs; dg ;
B = fa; b; c; tg :
W÷
asność 3. Dla dowolnego przep÷ywu f i dowolnego przekroju (A; B) zachodzi
jf j = f (A; B)
c (A; B) :
Dowód. Z (P3) oraz w÷
asności 1 wynika, z·e
X
P3
jf j = f (s; V ) = f (s; V ) +
f (a; V ) = f (s; V ) + f (A n s; V ) =
a2Anfsg
= f (A; V ) = f (A; A) + f (A; B) = f (A; B) :
Nierówność f (A; B)
c (A; B) wynika z (P1).
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
10
Twierdzenie 6. Niech f bedzie
¾
przep÷ywem w sieci N . Nastepuj
¾ ace
¾ warunki sa¾równowa·zne.
(1) Przep÷yw f jest maksymalny.
(2) Sie´c rezydualna Nf nie zawiera ´scie·zek powiekszaj
¾
acych.
¾
(3) Istnieje przekrój (A; B) taki, ·ze jf j = c (A; B).
Dowód.
(1) ) (2) Teza wynika z twierdzenia 4.
(2) ) (3) Za÷
óz·my, z·e sieć rezydualna nie zawiera ściez·ek powiekszaj
¾
acych.
¾
Niech A bedzie
¾
zbiorem wszystkich wierzcho÷
ków osiagalnych
¾
ze źród÷
a w sieci rezydualnej Nf oraz
niech B = V n A. Oczywiście s 2 A. Z twierdzenia ?? wynika, z·e t 2 B. Weźmy
dowolne a 2 A i b 2 B. Pokaz·emy, z·e
(*)
(a; b) 2
= Ef .
Przypuśćmy nie wprost, z·e (a; b) 2 Ef . Poniewaz· a 2 A, wiec
¾ w digra…e Gf istnieje
ściez·ka z s do a. Dodajac
¾ do niej kraw¾
edź (a; b) dostajemy ściez·k¾
e z s do b, czyli
b 2 A. Otrzymana sprzeczność dowodzi warunku (*). W konsekwencji cfab = 0, czyli
cab = fab dla a 2 A, b 2 B:
Z w÷
asności 3 wnioskujemy wiec,
¾ z·e
XX
XX
c (A; B) =
cab =
fab = f (A; B) = jf j :
a2A b2B
a2A b2B
(3) ) (1) Z w÷
asności 3 wynika, z·e dla dowolnego przep÷
ywu g zachodzi
jgj
c (A; B) = jf j ;
czyli f jest przep÷
ywem maksymalnym.
Twierdzenie 7 (O maksymalnym przep÷
ywie i minimalnym przekroju). Warto´s´c maksymalnego przep÷ywu w sieci przep÷ywowej jest równa przepustowo´sci minimalnego przekroju w tej
sieci.
Dowód. Niech f bedzie
¾
przep÷
ywem maksymalnym. Z twierdzenia 6 wynika, z·e istnieje
przekrój (A; B) taki, z·e c (A; B) = jf j. Zatem na mocy w÷
asności 3, dla dowolnego przekroju
0
0
0
0
(A ; B ) zachodzi c (A; B) = jf j c (A ; B ), czyli (A; B) jest przekrojem minimalnym.
Twierdzenie o maksymalnym przep÷
ywie i minimalnym przekroju jest wnioskiem z ogólniejszego twierdzania 6. W niektórych ksia¾z·kach twierdzenie 6 lub twierdzenia do niego
podobne bywaja¾ równiez· określane ta¾ nazwa.
¾
Twierdzenie o maksymalnym przep÷
ywie i minimalnym przekroju jest przyk÷
adem twierdzeń
minimaksowych mówiacych,
¾
z·e dla pewnych obiektów maksymalna wartość jednego parametru jest równa minimalnej wartości innego. W dalszej czesci
¾ wyk÷
adu sformu÷
ujemy kilka
innych twierdzeń tego typu.
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
11
Rozwaz·my sieć
W trakcie wcześniejszych rozwaz·ań znaleźliśmy przep÷
yw f generujacy
¾ sieć rezydualna¾ Nf
Widać, z·e w Nf nie istnieje ściez·ka powiekszaj
¾
aca.
¾
Z twierdzenia 6 wynika wiec,
¾ z·e f jest
przep÷
ywem maksymalnym. Wyznaczymy przekrój minimalny w N . Wystarczy powtórzyć
postepowanie
¾
z dowodu twierdzenia 6, tzn. przyjać
¾ jako A zbiór wszystkich wierzcho÷
ków
osiagalnych
¾
ze źród÷
a w sieci rezydualnej. Mamy wiec
¾
A = fs; a; b; dg ; B = fc; tg :
Poniewaz· c (A; B) = 12 + 7 + 4 = 23 = jf j, wiec
¾ na podstawie twierdzenia 6, przekrój (A; B)
istotnie jest przekrojem minimalnym.
Przekrój minimalny moz·na równiez· wyznaczyć badajac
¾ przepustowości wszystkich przekrojów, których jest 2jV j 2 (w rozwaz·anym przyk÷
adzie 16). Dla duz·ych grafów jest to metoda
nieefektywna (z÷
oz·oność obliczeniowa wyk÷
adnicza).
Przekrój zosta÷zde…niowany jako para zbiorów (A; B). Jednak "istota"
¾ przekroju sa¾
kraw¾
edzie ÷
acz
¾ ace
¾ wierzcho÷
ki tych zbiorów. Przekrój wyznacza nam sposób "rozciecia"
¾
sieci
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
12
miedzy
¾
zbiorami A i B, czyli "w poprzek" kraw¾
edzi biegnacych
¾
z A do B. Przepustowość
przekroju jest suma¾ przepustowości tych kraw¾
edzi. Przekrój minimalny moz·na interpretować
jako "waskie
¾
gard÷
o" sieci. Jeśli chcemy zwiekszyć
¾
przep÷
yw przez sieć, powiekszaj
¾
ac
¾ przepustowości niektórych kraw¾
edzi, to nie da sie¾ tego osiagn
¾ ać
¾ bez powiekszenia
¾
przepustowości
którejś kraw¾
edzi z przekroju minimalnego.
Ćwiczenie 11. Znale´z´c przekroje minimalne w sieciach z ´cwiczenia 9.
Moz·emy teraz udowodnić poprawność metody Forda-Fulkersona dla sieci o przepustowościach wymiernych.
Dowód twierdzenia 5. Pokaz·emy przede wszystkim, z·e procedura zakończy prace.
¾ Przypuśćmy nie wprost, z·e tak nie jest, czyli warunek logiczny w petli
¾ jest zawsze prawdziwy.
Za÷
óz·my najpierw, z·e przepustowość c przyjmuje tylko wartości ca÷
kowite. W trakcie
wykonywania procedury obliczane sa¾ wartości przepustowości rezydualnej cf := c f , przepustowości ściez·ki powiekszaj
¾
acej
¾ c (p) oraz kolejnego przep÷
ywu f := f + f p . Obliczenie tych
wielkości polega na wykonaniu skończonej liczby operacji odejmowania, wyznaczenia minimum i dodawania. Poniewaz· przepustowość c i poczatkowy
¾
przep÷
yw f = 0 sa¾ funkcjami
o wartościach ca÷
kowitych, wiec
¾ w dowolnym miejscu procedury liczby jf j i jf p j = c (p) sa¾
ca÷
kowite. Oznaczmy przez f0 poczatkow
¾
a¾ wartość przep÷
ywu (tzn. f0 = 0) oraz przez fn
wartość przep÷
ywu po n-tej iteracji. Przepustowość ściez·ki powiekszaj
¾
acej
¾ pn (z sieci rezydualnej Nfn ) jest ca÷
kowita i dodatnia. Zatem przep÷
ywy fn spe÷
niaja¾ warunki
(1) jf0 j = 0;
(2) jfn+1 j = jfn j + jfnp j = jfn j + c (pn )
jfn j + 1 dla n
0:
Prosty dowód indukcyjny pokazuje, z·e z (1) i (2) wynika
(3) jfn j
n dla n
0;
co jest sprzeczne z istnieniem przep÷
ywu maksymalnego. Otrzymana sprzeczność dowodzi,
z·e w przypadku przepustowości ca÷
kowitoliczbowych procedura zakończy prace.
¾
Za÷
óz·my teraz, z·e przepustowości przyjmuja¾ wartości wymierne. Niech M bedzie
¾
najmniejsza¾ wspólna¾ wielokrotnościa¾ mianowników wszystkich niezerowych przepustowości cab .
Dla dowolnych a; b 2 V mamy wtedy
k
gdzie k 2 Z.
M
Moz·emy teraz powtórzyć poprzednie rozumowanie zastepuj
¾ ac
¾ warunki (2) i (3) warunkami
cab =
(2’) jfn+1 j
(3’) jfn j
jfn j + M1 dla n
n
dla n 0:
M
0;
Udowodniliśmy, z·e procedura zakończy prace.
¾ Pozostaje jeszcze pokazać, z·e fmax jest
przep÷
ywem maksymalnym. Z petli
¾ wychodzimy gdy sieć rezydualna Nf nie ma ściez·ek
powiekszaj
¾
acych.
¾
Zatem na podstawie twierdzenia 6, przep÷
yw fmax = f jest maksymalny.
W dowodzie zosta÷
o pokazane, z·e jez·eli przepustowości w sieci przyjmuja¾wy÷
acznie
¾
wartości
ca÷
kowite, to w algorytmie Forda-Fulkersona, we wszystkich iteracjach, przep÷
yw f przyjmuje
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
13
wartości ca÷
kowite. W konsekwencji przep÷
yw maksymalny otrzymany ta¾metoda¾jest ca÷
kowitoliczbowy. Powyz·sza¾ uwage¾ moz·na zapisać w postaci twierdzenia.
Twierdzenie 8 (O przep÷
ywie ca÷
kowitoliczbowym). Je·zeli w sieci przep÷ywowej wszystkie
przepustowo´sci maja¾warto´sci ca÷kowite, to istnieje przep÷yw maksymalny przyjmujacy
¾ wy÷¾
acznie
warto´sci ca÷kowite.
Poniz·szy przyk÷
ad pokazuje, z·e w sieci o przepustowościach ca÷
kowitych istnieja¾ przep÷
ywy
maksymalne majace
¾ wartości nieca÷
kowite.
jf1 j = 2
jf2 j = 2
Wróćmy do twierdzenia 5. Naturalne jest pytanie, czy za÷
oz·enie o wymiernych wartościach
przepustowości jest istotne. Okazuje sie,
¾ z·e w przypadku gdy funkcja przepustowości przyjmuje wartości niewymierne, metoda Forda-Fulkersona moz·e nie dzia÷
ać (procedura "zapetla
¾
sie").
¾ Przyk÷
ad takiej sieci znajduje sie¾ w ksia¾z·ce Forda i Fukkersona "Przep÷
ywy w sieciach".
Poniz·szy (prostszy) przyk÷
ad pochodzi z pracy Uri Zwicka "The smallest networks on which
the Ford-Fulkerson maximum ‡ow procedure may fail to terminate". Dane bibliogra…czne
oraz szkic dowodu mo
z·na znaleźć w angielskiej wersji Wikipedii (has÷
o: Ford–Fulkerson algop
5 1
rithm). Niech r = 2 .
Przyjmijmy p0 = sbct, p1 = sdcbat, p2 = sbcdt, p3 = sabct. Moz·na pokazać, z·e w procedurze
Ford-Fulkerson da sie¾ uzyskać nieskończony ciag
¾ ściez·ek powiekszaj
¾
acych:
¾
p0 ; p1 ; p2 ; p1 ; p3 ; p1 ; p2 ; p1 ; p3 ; p1 ; p2 ; p1 ; p3 ; : : :
{z
} |
{z
} |
{z
}
|
Ćwiczenie 12. Udowodni´c, ·ze w powy·zszej sieci, ´scie·zki:
p0 ; p1 ; p2 ; p1 ; p3 ; p1 ; p2 ; p1 ; p3 ; p1 ; p2 ; p1 ; p3 ; : : :
|
{z
} |
{z
} |
{z
}
moga¾by´c przyjete
¾ jako´scie·zki powiekszaj
¾
ace
¾ w kolejnych iteracjach procedury Ford-Fulkerson.
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
14
Kolejny problem to wydajność metody Forda-Fulkersona. Rozwaz·my sieć
Widać, z·e przep÷
yw maksymalny ma wartość 2000. Dla f0 = 0 wybierzmy ściez·k¾
e powieksza¾
jac
¾ a¾ sabt. Ma ona przepustowość 1. Powiekszaj
¾
ac
¾ przep÷
yw f0 wzd÷
uz· tej ściez·ki dostajemy
przep÷
yw f1
f1
Sieć rezydualna Nf1
W sieci rezydualnej wybierzmy ściez·k¾
e powiekszaj
¾
ac
¾ a¾ sbat (przepustowość 1). Powiekszaj
¾
ac
¾
przep÷
yw f1 wzd÷
uz· tej ściez·ki dostajemy przep÷
yw f2
f2
Sieć rezydualna Nf2
Postepuj
¾ ac
¾ nadal w podobny sposób, przep÷
yw maksymalny znajdziemy po 2000 iteracji.
Wybierajac
¾ jako ściez·k¾
e powiekszaj
¾
ac
¾ a¾ sat, a nastepnie
¾
sbt, ten sam wynik dostajemy po 2
iteracjach.
Widać, z·e sposób wyznaczania ściez·ki powiekszaj
¾
acej
¾ ma olbrzymie znaczenie dla predkości
¾
dzia÷
ania algorytmów opartych na metodzie Forda-Fulkersona. W ksia¾z·ce "Wprowadzenie do
algorytmów" opisany jest oparty na tej metodzie algorytm Edmondsa-Karpa. Wybierana
jest w nim najkrótsza (w sensie liczby kraw¾
edzi) ściez·ka powiekszaj
¾
aca.
¾ Algorytm ten dzia÷
a
2
w czasie O jV j jEj .
Najszybsze znane obecnie algorytmy szukania maksymalnego przep÷
ywu nie korzystaja¾ z
metody Forda-Fulkersona. Oparte sa¾ one na metodzie "prześlij i przemianuj", której
opis takz·e moz·na znaleźć we "Wprowadzeniu do algorytmów".
Rozwaz·ania dotyczace
¾ sieci przep÷
ywowych zakończymy kilkoma uwagami dotyczacymi
¾
sieci z wieloma źród÷
ami i ujściami. Praktycznym przyk÷
adem takiej sieci jest sieć transportowa …rmy posiadajacej
¾ kilka fabryk (źród÷
a) i kilku odbiorców (ujścia).
Siecia¾przep÷
ywowa¾(z wieloma źród÷
ami i ujściami) nazywamy czwórk¾
e N = (G; c; S; T ),
gdzie G = (V; E) jest prostym grafem skierowanym, c : V
V ! [0; 1) funkcja¾ taka,
¾ z·e
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
15
c (a; b) = 0, gdy (a; b) 2
= E (funkcja przepustowości) oraz S, T niepustymi i roz÷
acznymi
¾
podzbiorami V . Elementy zbioru S nazywamy źród÷
ami, a elementy zbioru T ujściami
sieci. Jak widać przyjmujac
¾ S = fsg i T = ftg dostajemy sieć z jednym źród÷
em i jednym
ujściem jaka¾ rozwaz·aliśmy do tej pory.
Przep÷
ywem w sieci z wieloma źród÷
ami i ujściami nazywamy dowolna¾funkcje¾ f : V V !
R spe÷
niajac
¾ a¾ warunki
(P1)
(P2)
(P3’)
8
a;b2V
8
f (a; b)
c (a; b) (warunek przepustowości).
f (a; b) = f (b; a) (warunek skośnej symetryczności).
X
8
fab = 0 (warunek zachowania przep÷
ywu).
a;b2V
a2V n(S[T )
b2V
Wartościa¾ przep÷
ywu f jest liczba
jf j = f (S; V ) =
XX
fsa .
s2S a2V
Przekrojem w sieci nazywamy dowolna¾ pare¾ zbiorów (A; B) takich, z·e A V , B = V n A,
S
AiT
B. Przepustowość przekroju (A; B) de…niujemy tak jak poprzednio, czyli
jako c (A; B).
Poniz·szy rysunek przedstawia sieć ze źród÷
ami S = fs1 ; s2 ; s3 g i ujściami T = ft1 ; t2 g,
przep÷
yw f w tej sieci o wartości jf j = 34 oraz przekrój A = fs1 ; s2 ; s3 ; a2 ; a3 ; a4 ; a7 g, B =
fa1 ; a5 ; a6 ; t1 ; t2 g o przepustowości c (A; B) = 46.
Problem szukania maksymalnego przep÷
ywu w sieci z wieloma źród÷
ami i ujściami moz·na
sprowadzić do szukania maksymalnego przep÷
ywu w pewnej sieci z jednym źród÷
em i ujściem.
Niech N = ((V; E) ; c; S; T ) bedzie
¾
siecia¾ przep÷
ywowa¾ z wieloma źród÷
ami i ujściami.
Zde…niujmy graf skierowany (V0 ; E0 ) dodajac
¾ do (V; E) dwa nowe wierzcho÷
ki s0 i t0 oraz
kraw¾
edzie ÷
acz
¾ ace
¾ s0 ze źród÷
ami i kraw¾
edzie ÷
acz
¾ ace
¾ ujścia z t0 , tzn.
V0 = V [ fs0 ; t0 g , gdzie s0 ; t0 2
= V i s0 6= t0 ,
E0 = E [ f(s0 ; s) ; s 2 Sg [ f(t; t0 ) ; t 2 T g .
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
16
Wierzcho÷
ek s0 nazywamy superźród÷
em, zaś wierzcho÷
ek t0 superujściem. Funkcje¾ przepustowości c0 : V0 V0 ! [0; 1) de…niujemy przyjmujac
¾
8
>
< c (a; b) ; a; b 2 V;
c0 (a; b) =
M
; (a; b) 2 E0 n E;
>
: 0
; w pozosta÷
ych przypadkach,
gdzie
M = c (S; V ) + 1:
Twierdzenie 9.
(1) N0 = ((V0 ; E0 ) ; c0 ; s0 ; t0 ) jest siecia¾przep÷ywowa¾(z jednym ´zród÷em
i uj´sciem).
(2) Je·zeli f0 jest przep÷ywem w N0 , to f = f0 jV V jest przep÷ywem w N oraz jf j = jf0 j.
(3) Je·zeli f0 jest przep÷ywem maksymalnym w N0 , to f jest przep÷ywem maksymalnym w
N.
Sieć z ostatniego przyk÷
adu generuje nastepuj
¾ ac
¾ a¾ sieć z jednym źród÷
em i ujściem
Twierdzenie 10.
(1) Je·zeli (A; B) jest przekrojem w N0 takim, ·ze S
AiT
B, to
(A n fs0 g ; B n ft0 g) jest przekrojem w N oraz c (A n fs0 g ; B n ft0 g) = c0 (A; B).
(2) Je·zeli (A; B) jest przekrojem minimalnym w N0 , to (A n fs0 g ; B n ft0 g) jest przekrojem minimalnym w N oraz c (A n fs0 g ; B n ft0 g) = c0 (A; B).
Ćwiczenie 13. Udowodni´c twierdzenia 9 i 10.
Z dwóch ostatnich twierdzeń wynika, z·e twierdzenia "O maksymalnym przep÷
ywie i minimalnym przekroju" oraz "O przep÷
ywie ca÷
kowitoliczbowym" pozostaja¾ prawdziwe dla sieci
z wieloma źród÷
ami i ujściami.
Twierdzenie 11 (O maksymalnym przep÷
ywie i minimalnym przekroju). Warto´s´c maksymalnego przep÷ywu w sieci z wieloma ´zród÷ami i uj´sciami jest równa przepustowo´sci minimalnego przekroju w tej sieci.
TEORIA GRAFÓW I SIECI - ROZDZIA×VII
17
Twierdzenie 12 (O przep÷
ywie ca÷
kowitoliczbowym). Je·zeli w sieci z wieloma ´zród÷ami i
uj´sciami wszystkie przepustowo´sci maja¾ warto´sci ca÷kowite, to istnieje przep÷yw maksymalny
przyjmujacy
¾ wy÷¾
acznie warto´sci ca÷kowite.
Ćwiczenie 14. Znale´z´c maksymalny przep÷yw i minimalny przekrój w sieci z ostatniego
przyk÷adu.
Uwaga 2. W de…nicji funkcji c0 mo·zna jako M przyja´c
¾ dowolna¾liczbe¾ wieksz
¾ a¾ni·z c (S; V ).
W podrecznikach
¾
na ogó÷jest przyjmowane M = 1, co nale·zy rozumie´c jako M > c (S; V ).
Ćwiczenie 15. Udowodni´c, ·ze maksymalny przep÷yw i minimalny przekrój w sieci N0 nie
zale·za¾od sta÷ej M . Dok÷adniej, niech N bedzie
¾
siecia¾z wieloma ´zród÷ami i uj´sciami, M1 , M2
liczbami takimi, ·ze M1 > c (S; V ) i M2 > c (S; V ) oraz N1 , N2 sieciami z jednym ´zród÷em i
uj´sciem generowanymi przez N i sta÷e M1 , M2 . Pokaza´c, ·ze
(1) f jest przep÷ywem maksymalnym w N1 wtedy i tylko wtedy, gdy f jest przep÷ywem
maksymalnym w N2 .
(2) (A; B) jest przekrojem minimalnym w N1 wtedy i tylko wtedy, gdy (A; B) jest przekrojem minimalnym w N2 .
Ćwiczenie 16. Znale´z´c maksymalny przep÷yw i minimalny przekrój w sieci

Podobne dokumenty