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