oraz spełnia warunki: (*) dla wszystkich wierzchołków

Podobne dokumenty
Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Wstp. Warto przepływu to

Szukanie najkrótszych dróg z jednym ródłem

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Temat: Algorytmy aproksymacyjne dla wybranych NP-trudnych problemów grafowych

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych.

Temat: Algorytmy aproksymacyjne (przyblione) cz. I. Majc do rozwizania trudny obliczeniowo problem, moemy wybra jedno z dwóch nastpujcych podej:

Digraf. 13 maja 2017

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Temat: Algorytmy zachłanne

Sieć (graf skierowany)

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Gramatyki regularne i automaty skoczone

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Amortyzacja rodków trwałych

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:.

Kolorowanie wierzchołków

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Zagadnienie transportowe

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Poniszy rysunek przedstawia obraz ukoczonej powierzchni wykorzystywanej w wiczeniu.

Zapisów 17 ust. 4-6 nie stosuje si do przesuni midzy kategoriami wydatków, które s wynikiem przeprowadzenia procedury zamówie publicznych.

Poprawa efektywnoci metody wstecznej propagacji bdu. Jacek Bartman

TEORETYCZNE PODSTAWY INFORMATYKI

Planowanie adresacji IP dla przedsibiorstwa.

Klonowanie MAC adresu oraz TTL

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Sposoby przekazywania parametrów w metodach.

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Publikacje nauczycieli

Nieklasyczne modele kolorowania grafów

stopie szaro ci piksela ( x, y)

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

Rys1 Rys 2 1. metoda analityczna. Rys 3 Oznaczamy prdy i spadki napi jak na powyszym rysunku. Moemy zapisa: (dla wzłów A i B)

PRAWIDŁOWE ODPOWIEDZI DO ZADA ZAMKNITYCH

Art. 1. W ustawie z dnia 20 pa dziernika 1994 r. o specjalnych strefach ekonomicznych (Dz. U. z 2007 r. Nr 42, poz. 274) wprowadza si nast puj ce

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

Problemy optymalizacyjne - zastosowania

geometry a w przypadku istnienia notki na marginesie: 1 z 5

Metodydowodzenia twierdzeń

Ustalenie optymalnego układu lokalizacyjnodystrybucyjnego

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1

Algorytmy kodowania predykcyjnego

Informacje pomocnicze

SPECYFIKACJE TECHNICZNE ST TYCZENIE TRASY I ODTWORZENIE PUNKTÓW WYSOKOCIOWYCH

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Pojcie grafu. { {v 1, v 2 }, {v 2, v 3 }, {v 3, v 4 }, {v 4, v 1 },{v 2, v 4 } } )

Macierze i Wyznaczniki

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

12: Znajdowanie najkrótszych ±cie»ek w grafach

Przeszukiwanie przestrzeni stanów. Wprowadzenie do Sztucznej Inteligencji. Podstawowe problemy teorii przeszukiwania przestrzeni stanów

Podstawowe obiekty AutoCAD-a

! "#$!%&'(#!) "34! /(5$67%&'8#!)

Metodologia porównywania taryf telekomunikacyjnych. Koszyki PSTN (2010) Koszyki PSTN (2010) Koszyki PSTN przed Koszyki OECD

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

Projektowanie algorytmów rekurencyjnych

Sieć (graf skierowany)

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1

Projekt okablowania strukturalnego dla I semestru Akademii CISCO we WSIZ Copernicus we Wrocławiu

Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego.

M ZASYPANIE WYKOPÓW WRAZ Z ZAGSZCZENIEM

Zagadnienie transportowe

Algorytmika Problemów Trudnych

Macierze i Wyznaczniki

IV Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 1 kwietnia 2016

Programowanie liniowe

Instrukcja obsługi programu CalcuLuX 4.0

Sortowanie topologiczne skierowanych grafów acyklicznych

Przycisk pracy. Przycisk stopu/kasowanie

wiczenie 5 Woltomierz jednokanaowy

Temat: Struktury do przechowywania danych w pamici zewntrznej. B - drzewa. B * - drzewa. B + - drzewa.

1 Bª dy i arytmetyka zmiennopozycyjna

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

5c. Sieci i przepływy

PROCEDURY REGULACYJNE STEROWNIKÓW PROGRAMOWALNYCH (PLC)

KLUCZ PUNKTOWANIA ODPOWIEDZI

Algorytmiczna teoria grafów Przepływy w sieciach.

MATERIAŁ WICZENIOWY Z MATEMATYKI

Grafy i Zastosowania. 6: Najkrótsze ±cie»ki. c Marcin Sydow. Najkrótsze cie»ki. Warianty. Relaksacja DAG. Algorytm Dijkstry.

a) 7 b) 19 c) 21 d) 34

ZAGADNIENIE TRANSPORTOWE(ZT)

Wprowadzenie do kompilatorów

Zagadnienie najkrótszej drogi w sieci

M E R I D I A N. Sobota, 11 lutego 2006

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

WYKŁAD 9. Wzorce projektowe czynnociowe Observer Visitor

Skd mamy pienidze i na co je wydajemy? czyli BUDET POWIATU KIELECKIEGO

Interpolacja funkcjami sklejanymi

Wykład 8. Drzewo rozpinające (minimum spanning tree)

ROZPORZDZENIE MINISTRA INFRASTRUKTURY 1)

Transkrypt:

Temat: Problem najtaszego przepływu. Definicja problemu, przykład zastosowania. Algorytm Kleina. Algorytm Busackera Gowena. 1. Definicja problemu najtaszego przepływu Wejcie: Graf zorientowany G = <V, E, w, c, b> z funkcjami: kosztu w oraz przepustowoci c, okrelonymi dla wszystkich krawdzi grafu. Dla kadego wierzchołka grafu i V okrelona jest ponadto warto dopływu/odpływu b(i) taka, e. Wyjcie: Funkcja przepływu f, która minimalizuje warto: oraz spełnia warunki: (*) dla wszystkich wierzchołków i V (**) dla wszystkich krawdzi (i, j) E. Załoenia 1. Wszystkie dane, tj. wartoci b(i), w ij, c ij s liczbami całkowitymi. 2. Istnieje co najmniej jedna funkcja przepływu f spełniajca warunki (*) oraz (**). 3. Wartoci kosztu w ij s nieujemne. Ponadto przez W oznaczmy maksymalny koszt krawdzi grafu, a przez C maksymaln skoczon przepustowo krawdzi grafu.

Uwaga W klasycznym sformułowaniu problemu najtaszego przepływu nie wymaga si, aby do sieci naleały wyrónione wierzchołki ródła s i ujcia sieci t, a funkcja przepływu f spełniała warunek: dla wszystkich wierzchołków i V (i {s, t}) Przykład b(2)= 0 (2, 4) 2 2 (3, 3) 0 (2, 2) (1, 5) 2 4 Pary (w ij, c ij ) okrelaj odpowiednio: w ij - koszt krawdzi (i, j) oraz c ij - przepustowo krawdzi (i, j). Pojedyncze wartoci pod krawdzi to wartoci wynikowego najtaszego przepływu f. Warto

2. Problem produkcji i dystrybucji (Glover i Klingman [1976]) Pewna firma ma p fabryk, produkujcych m rónych modeli samochodów pewnej marki. Znanie s specyfikacje zamówie s salonów sprzeday tej marki. Salon okrela, ile sztuk poszczególnych modeli zamawia. Znane s równie koszty transportu aut midzy poszczególnymi fabrykami a salonami. Naley okreli optymaln wielko produkcji kadego modelu w kadej fabryce, tak, aby zrealizowa zamówienia kadego salonu, a łczny koszt transportu i produkcji aut był moliwie najniszy. Przykład p = 2, s = 2, m = 3; Wzły sieci: p 1, p 2 fabryki, r 1, r 2 salony, p i /m j fakt produkcji modelu m j w fabryce p i r i /m j fakt zamówienia modelu m j w salonie r i p 1 /m 1 r 1 /m 1 p 1 r 1 /m 2 r 1 p 1 /m 2 r 1 /m 3 p 2 /m 1 p 2 p 2 /m 2 r 2 /m 1 r 2 p 2 /m 3 r 2 /m 2

Krawdzie sieci: krawdzie produkcji: (p i, p i /m j ) z kosztem oznaczajcym koszt produkcji jednego auta modelu m j przez fabryk p i i przepustowoci oznaczajc maksymaln wielko produkcji modeli m j przez fabryk p i krawdzie transportowe: (p i /m j, r k /m j ) z kosztem transportu jednego auta modelu m j z fabryki p i do salonu r k i przepustowoci oznaczajc maksymaln liczb aut w jednej transzy transportu tego modelu z fabryki p i do salonu r k krawdzie zamówienia: (r i /m j, r i ) z kosztem zerowym i przepustowoci oznaczajc warto zamówienia (liczb aut) na model m j złoonego przez salon r i Wartoci b(k) dla wzłów p i /m j oraz r i /m j s równe zero. Wartoci b(p i ) s sum kosztów krawdzi wychodzcych z p i, a wartoci b(r i ) s sum kosztów krawdzi wchodzcych do wzła r i. Najtaszy przepływ w tak skonstruowanej sieci ustali wysoko produkcji poszczególnych modeli w poszczególnych fabrykach. Przepływ ten musi by maksymalny. Musi te nasyca krawdzie wchodzce do wzłów r i, bo tylko wtedy moliwe bdzie ustalenie takiej wysokoci produkcji poszczególnych modeli w poszczególnych fabrykach, aby wszystkie zamówienia w salonach mogły by zrealizowane. Dodatkowo, wartoci wynikowego przepływu na krawdziach transportowych ustal, ile aut danego modelu z jakiej fabryki i do jakiego salonu przewie, aby łczna warto produkcji i transportu była optymalna (minimalna). 3. Algorytm Kleina Algorytm Kleina opiera si na spostrzeeniu, e powikszanie przepływu f w sieci G, w celu uzyskania najtaszego przepływu, powinno by kontynuowane tak długo, jak długo w sieci rezydualnej G w (f) bd istniały cykle ujemne. Def. Sieci rezydualn G w (f) dla grafu G = <V, E, w, c, b> z ustalonym przepływem f nazywamy sie, w której kada krawd (i, j) E jest zastpiona dwoma krawdziami (i, j) oraz

(j, i). Krawd (i, j) ma koszt w ij i rezydualn przepustowo r ij = c ij - f ij, a krawd (j, i) ma koszt -w ij i rezydualn przepustowo r ji = f ij. Do sieci nale tylko krawdzie z dodatni przepustowoci rezydualn. Przykład Sie G z ustalonym przepływem f b(2)=0 (2, 4) 3 0 (3, 3) 3 (2, 2) (1, 5) 1 1 Pary (w ij, c ij ) okrelaj odpowiednio: w ij - koszt krawdzi (i, j) oraz c ij przepustowo krawdzi. Liczby pod krawdziami to wartoci przepływu f. Sie rezydualna G w (f) b(2)=0 (2, 1) (-2,3) (-3, 3) (2, 1) (1, 4) (-2,1) (-1, 1)

algorytm cycle_canceling; wyznacz wykonalny dla danej sieci G i wartoci b(i) przepływ f ; while ( G w (f) zawiera cykle ujemne ) { wyznacz cykl ujemny CU ; δ = min{r ij : (i, j) CU}; powiksz przepływ o warto δ na cyklu CU ; uaktualnij sie rezydualn G w (f) ; } Przykład Sie G z przepływem f = 0 b(2)=0 (2, 4) (3, 3) (2, 2) (1, 5) Pary (w ij, c ij ) okrelaj odpowiednio: w ij - koszt krawdzi (i, j) oraz c ij przepustowo krawdzi. Aby wyznaczy wykonalny dla tej sieci przepływ dodajemy wzły: s - startowy, t ujcie, a take krawdzie: (s, i) dla wierzchołków i V takich, e b(i)>0. Krawdzie te maj przepustowo równ b(i), (i, t) dla wierzchołków i V takich, e b(i)<0. Krawdzie te maj przepustowo równ -b(i),

4 3 4 2 2 4 5 W tak skonstruowanej sieci wyznaczamy maksymalny przepływ. 3/4 3/3 4/4 1/2 0/2 4/4 1/5

Sie G z ustalonym przepływem wykonalnym f wyglda nastpujco: b(2)= 0 (2, 4) (3, 3) 3 3 0 (2, 2) (1, 5) 1 1 Sie rezydualna G w (f) jest nastpujca: b(2)=0 (2, 1) (-3, 3) (-2,3) (2, 1) (1, 4) (-2,1) (-1, 1)

Ustalamy cykl ujemny CU w sieci G w (f). CU: 4 2 3 4. Jego koszt wynosi -3+1+1=-1. Wyznaczamy warto δ = min{r ij : (i, j) CU}. Dla naszego cyklu δ = 2, a nastpnie powikszamy przepływ o warto δ na cyklu CU i aktualizujemy sie G w (f) b(2)=0 (2, 1) (-2,3) (2, 1) (-1, 2) (-3, 2) (3, 1) (-2,1) (-1, 3) Ustalamy kolejny cykl ujemny CU w sieci G w (f). CU: 4 2 1 3 4. Jego koszt wynosi -3+(-2)+2+1=-2. Wyznaczamy warto δ = min{r ij : (i, j) CU}. Dla naszego cyklu δ = 1, a nastpnie powikszamy przepływ o warto δ na cyklu CU i aktualizujemy sie G w (f) b(2)=0 (2, 2) (-2,2) (3, 3) (-1, 2) (1, 1) (-2,2) (-1, 4)

W sieci G w (f) nie ma ju cyklu ujemnego, wic algorytm si zatrzymuje i wygenerowany jest przepływ wynikowy (najtaszy). b(2)= 0 (2, 4) 2 0 (3, 3) 2 (2,2) 2 4 (1, 5) Koszt algorytmu Kleina: Krok polegajcy na wyznaczeniu przepływu wykonalnego w sieci G mona zrealizowa wykorzystujc dowolny algorytm rozwizujcy problem maksymalnego przepływu, wic czas realizacji tego kroku wynosi O(n 2 m) (gdy uyjemy np. algorytmu Dinica). Ptla główna algorytmu Kleina wykonuje si tak długo, jak długo w sieci rezydualnej G w (f) s ujemne cykle. Górne ograniczenie dla najtaszego przepływu w danej sieci wynosi mwc, a dolne ograniczenie wynosi mwc. Nawet, jeeli w jednym kroku głównej ptli warto przepływu wzronie tylko o jedn jednostk, to tych kroków nie bdzie wicej ni 2mWC. Wszystkie instrukcje w ptli algorytmu Kleina jestemy w stanie zaimplementowa tak, aby ich koszt nie przekroczył łcznie O(nm). Zatem koszt całego algorytmu wynosi O(nm 2 WC). Koszt O(nm 2 WC) powoduje, e algorytm Kleina jest niestety pseudowielomianowy, bo warto W jak i C moe by bardzo dua i wynosi np. 2 n. Znana jest poprawiona wersja algorytmu Kleina algorytm Goldberga Tarjana, którego koszt czasowy wynosi: O(n 2 m 3 logn). Poprawka ta polega na tym, e w pierwszej kolejnoci wybieramy taki cykl CU o ujemnym koszcie, który ma moliwie najniszy koszt

redni (tj. najmniejsz warto ilorazu: koszt cyklu ujemnego/liczba krawdzi w cyklu). Pytanie: Jak wyznaczy cykl ujemny w grafie o minimalnym rednim koszcie? 4. Algorytm Busackera Gowena Kolejny algorytm rozwizujcy problem najtaszego przepływu wykorzystuje pojcia psudoprzepływu i nierównowagi wierzchołka. Def. Pseudoprzepływem w sieci G =<V, E, w, c, b> nazywamy tak funkcj f : E R +, która spełnia jedynie warunek : dla wszystkich krawdzi (i, j) E. Nie musi by spełniony warunek: dla poszczególnych wierzchołków i V Def. Nierównowag (ang. imbalance) wierzchołka i w sieci G z danym pseudoprzepływem f nazwiemy warto: Jeeli wartoci e(i) > 0, to nazwiemy j nadmiarem wierzchołka i, a gdy e(i) < 0, to nazwiemy j deficytem wierzchołka i. Jeeli natomiast e(i) = 0, to powiemy, e wierzchołek i jest zrównowaony. Ponadto, przez N oznaczmy zbiór wierzchołków z nadmiarem, a przez D zbiór wierzchołków z deficytem. Algorytm Busackera-Gowena dy do takiej sytuacji, w której sie nie bdzie zawierała wierzchołków z nadmiarem. Jeeli wierzchołek k ma nadmiar, to rozładowanie tego nadmiaru bdzie realizowane przez zwikszanie przepływu wzdłu najkrótszej cieki z tego wierzchołka do jakiego wierzchołka l, który ma deficyt. W sieci powstaje pseudo przepływ, który ostatecznie staje si przepływem. Długo cieki jest przy tym mierzona sum wag krawdzi na tej ciece, a nie liczb krawdzi.

Niech d oznacza tablic długoci najkrótszych cieek z wierzchołka k do pozostałych wierzchołków w sieci rezydualnej G(f). Odległoci te mona wyznaczy stosujc, na przykład, algorytm Dijkstry. Jeeli wyznaczymy najkrótsze cieki z wzła k do pozostałych wierzchołków, to powinnimy te zredukowa wagi w ij sieci rezydualnej. Nowa waga krawdzi (i, j) musi by pomniejszona o rónic midzy minimalnymi odległociami d(j) i d(i), bo skoro wykrylimy krótsze połczenie midzy wzłami i oraz j ni wynosi waga w ij, to połczenie wierzchołków i oraz j, moe by zrealizowane niszym kosztem. Nowa waga krawdzi w ij bdzie równa w ij (d(j)- d(i)). algorytm succesive_shortest_path; f = 0; for (i V) e(i) = b(i); N = {i: e(i)>0}; D = { i: e(i)<0}; while (N ) { wybierz wierzchołek k N i wierzchołek l D ; wyznacz najkrótsze odległoci d(j) z wzła k do pozostałych wzłów sieci rezydualnej G(f) ; for ((i, j) E ) w ij = w ij (d (j)- d (i)); niech P bdzie najkrótsz ciek midzy wzłami k oraz l ; δ = min { e(k), -e(l), min{r ij : (i, j) P}}; zwiksz o δ przepływ na ciece P ; uaktualnij sie rezydualn G(f), zbiory N i D oraz wartoci nadmiaru/deficytu ; }

Przykład Sie G z przepływem f = 0 i pocztkowymi wartociami nierównowagi wierzchołków. Zbiór wierzchołków z nadmiarem N ={1}, zbiór wierzchołków z deficytem D = {4} e(2)=0 (2, 4) (3, 3) e(1)=4 e(4)= -4 (2, 2) (1, 5) e(3)= 0 Wybieramy wzeł k ze zbioru N i wzeł l ze zbioru D. k = 1, l = 4. Wyznaczamy, stosujc na przykład algorytm Dijkstry, minimalne odległoci midzy wzłem k a pozostałymi wierzchołka sieci. Tabela minimalnych odległoci ma w naszym przykładzie nastpujc zawarto: d: 0 2 2 3. 1 2 3 4 Redukujemy wagi krawdzi w sieci rezydualnej: w 12 =w 12 (d(2) - d(1)) = 2 (2 0) = 0 w 13 =w 13 (d(3) - d(1)) = 2 (2 0) = 0 w 23 =w 23 (d(3) - d(2)) = 1 (2 2) = 1 w 24 =w 24 (d(4) - d(2)) = 3 (3 2) = 2 w 34 =w 34 (d(4) - d(3)) = 1 (3 2) = 0

Wyznaczamy najkrótsz ciek P z wzła 1 do 4. P: 1-3 - 4 e(2)= 0 (0, 4) (2, 3) e(1)=4 e(4)= -4 (0, 2) (0, 5) e(3)= 0 Wyznaczamy warto δ, o któr mona zwikszy przepływ na ciece P, rozładowujc nadmiar wierzchołka 1 i zmniejszajc deficyt wierzchołka 4. δ = min { e(k), -e(l), min{r ij : (i, j) P}}=min{4, 4, 2, 5} = 2 Zwikszamy przepływ o 2 na ciece P, uaktualniamy sie rezydualn, wartoci nadmiaru/deficytu, zbiory N oraz D. N = {1}, D = {4} e(2)= 0 (0, 4) (2, 3) e(1)=2 e(4)= -2 (0, 2) (0, 3) (0, 2) e(3)= 0

Wybieramy wzeł k ze zbioru N i wzeł l ze zbioru D. k = 1, l = 4. Wyznaczamy minimalne odległoci midzy wzłem k a pozostałymi wierzchołka sieci. Tabela minimalnych odległoci ma w naszym przykładzie nastpujc zawarto: d: 0 0 1 1. 1 2 3 4 Redukujemy wagi krawdzi w sieci: w 12 =w 12 (d(2) - d(1)) = 0 (0 0) = 0 w 23 =w 23 (d(3) - d(2)) = 1 (1 0) = 0 w 24 =w 24 (d(4) - d(2)) = 2 (1 0) = 1 w 31 =w 31 (d(3) - d(1)) = 0 (0 1) = 1 w 34 =w 34 (d(4) - d(3)) = 0 (1 1) = 0 w 43 =w 43 (d(4) - d(3)) = 0 (1 1) = 0 Wyznaczamy najkrótsz ciek P z wzła 1 do 4. P: 1-2 - 3-4 e(2)= 0 (0, 4) (1, 3) e(1)=2 (0, 2) e(4)= -2 (0, 3) (0, 2) e(3)= 0 Ustalamy warto δ, o któr mona zwikszy przepływ na ciece P, rozładowujc nadmiar wierzchołka 1 i zmniejszajc deficyt wierzchołka 4. δ = min { e(k), -e(l), min{r ij : (i, j) P}}=min{2, 2, 4, 2, 3} = 2

Zwikszamy przepływ o 2 na ciece P, uaktualniamy sie rezydualn, wartoci nadmiaru/deficytu, zbiory N oraz D. N =, D = e(2)= 0 (0, 2) (1, 3) (0, 2) e(1)=0 (0, 2) e(4)= 0 (0, 4) (0, 1) e(3)= 0 W sieci rezydualnej nie ma ju wierzchołków w nadmiarem, wic algorytm si zatrzymuje. Wygenerowany w chwili zatrzymania algorytmu przepływ jest wynikowy. Koszt algorytmu Busackera Gowena: Ptla główna algorytmu wykona si maksymalnie nc razy, bo co najwyej C razy musimy rozładowywa nadmiar jednego wierzchołka, a wierzchołków jest n. Załómy, e koszt ustalenia długoci najkrótszych cieek wynosi O(nlogn) (algorytm Dijkstry). Pozostałe instrukcje w ptli mona realizowa kosztem O(n+m). Zatem łczny koszt algorytmu wynosi O(Cn 2 logn+cn 2 m).