Zagadnienia optymalizacji na grafach

Podobne dokumenty
Zagadnienie najkrótszej drogi w sieci

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

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

Algorytmiczna teoria grafów Przepływy w sieciach.

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

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Sieć (graf skierowany)

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Digraf. 13 maja 2017

Sortowanie topologiczne skierowanych grafów acyklicznych

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

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

Algorytmiczna teoria grafów

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Matematyczne Podstawy Informatyki

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Sieć (graf skierowany)

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

TEORIA GRAFÓW I SIECI

Programowanie sieciowe. Tadeusz Trzaskalik

Matematyka dyskretna

Ogólne wiadomości o grafach

5c. Sieci i przepływy

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

5. Najkrótsze ścieżki

Zagadnienie transportowe

Graf. Definicja marca / 1

Programowanie dynamiczne i algorytmy zachłanne

G. Wybrane elementy teorii grafów

TEORETYCZNE PODSTAWY INFORMATYKI

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

TEORIA GRAFÓW I SIECI

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Minimalne drzewa rozpinające

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Matematyka dyskretna - 7.Drzewa

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Podstawowe własności grafów. Wykład 3. Własności grafów

Zagadnienie transportowe (badania operacyjne) Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

TEORIA GRAFÓW I SIECI

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Podejście zachłanne, a programowanie dynamiczne

ZAGADNIENIE TRANSPORTOWE

Układy równań i nierówności liniowych

7. Teoria drzew - spinanie i przeszukiwanie

Matematyczne Podstawy Informatyki

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Rozdział 8 PROGRAMOWANIE SIECIOWE

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Matematyka dyskretna - 5.Grafy.

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

6. Wstępne pojęcia teorii grafów

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

ZAGADNIENIE TRANSPORTOWE(ZT)

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Znajdowanie wyjścia z labiryntu

Matematyczne Podstawy Informatyki

Suma dwóch grafów. Zespolenie dwóch grafów

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Znajdowanie skojarzeń na maszynie równoległej

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011).

Algorytmy i Struktury Danych.

Programowanie liniowe

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

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

BADANIA OPERACYJNE. dr Adam Sojda Pokój A405

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji

E ' E G nazywamy krawędziowym zbiorem

Luty 2001 Algorytmy (4) 2000/2001

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Metody uporządkowania

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Lista 4. Kamil Matuszewski 22 marca 2016

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

Teoretyczne podstawy programowania liniowego

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Grafy. Graf ( graf ogólny) to para G( V, E), gdzie:

OPTYMALIZACJA W LOGISTYCE

Schemat programowania dynamicznego (ang. dynamic programming)

Matematyka dyskretna - 6.Grafy

Transkrypt:

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 1 Zagadnienia optymalizacji na grafach Podstawowe pojęcia z teorii grafów i sieci Graf nieskierowany(symetryczny) G = (V, E) składa się ze skończonego zbioru wierzchołków(nazywanychrównieżwęzłami) V = {v 1,v 2,...,v n }iskończonegozbiorukrawędzi E = {e 1,e 2,...,e m }.Wzastosowaniachnajczęściejprzyjmuje się,że V = {1,2,...,n}.Każdejkrawędzi eodpowiadanieuporządkowanapara różnychwierzchołków {u,v},októrychmówisię,żesąincydentneze.grafnazywamy skierowanym lub digrafem, jeśli para wierzchołków (u, v) incydentnych z krawędzią e(nazywaną w tym przypadku łukiem) jest para uporządkowaną. Mówimywtedy,żełuk ejestskierowanyzwierzchołkaudowierzchołkav,akierunek ten jest zaznaczony na rysunku grotem strzałki. Siecią nazywamy graf skierowany (lub nieskierowany), w którym każdemu łukowi(lub krawędzi) jest przyporzadkowana liczba, nazywana najczęściej wagą tego łuku. W zastosowaniach waga może reprezentować długość drogi, koszt jej budowy, niezawodność połączenia, prawdopodobieństwo przejścia, przepustowość itp. Jeśliwdigrafie Gistniejełuk l = (u,v),to vnazywasiębezpośrednimnastępnikiem wierzchołka u, a u bezpośrednim poprzednikiem wierzchołka v. Wierzchołki u oraz v są w tym przypadku sąsiednimi lub przyległymi. Drogązwierzchołka v 1 dowierzchołka v k (skierowanązv 1 do v k )wdigrafie Gnazywamyciągłuków P = ((v 1,v 2 ),(v 2,v 3 ),...,(v k 2,v k 1 ),(v k 1,v k )),gdzie (v i,v i+1 ) Edlakażdego i = 1,...,k 1.Takądrogęzapisujemyrównieżprzez podanieciąguwierzchołkówprzezktóreprzechodzitj. P = (v 1,v 2,...,v k ).Droga, wktórejwszystkiewierzchołki v 1,v 2,...,v k sąróżnewteoriigrafównazywasię drogąprostą.dlagrafusymetrycznego Gdroga Pmiędzy v 1 a v k definiujesię podającwęzłyprzezktóreprzechodzitj. P = (v 1,v 2,...,v k ),gdzie {v i,v i+1 } E dlakażdego i = 1,...,k 1. Cyklem(konturem w digrafie) nazywamy drogę zamkniętą, czyli taką, że v 1 = v k,gdzie k > 2(k 2dladigrafu).Grafniezawierającyżadnegocyklunazywamy acyklicznym(bezkonturowym dla digrafu). Wagą drogi P w sieci jest sumawagłukówjątworzących.siećmożezawieraćwieledrógzwierzchołka sdo t. Drogę o najmniejszej wadze, spośród dróg od ustalonego węzła s do innego węzła t, nazywa się najkrótszą drogą od s do t. Dróg najkrótszych może być wiele. Podgrafem grafu G = (V, E) nazywamy graf, którego wierzchołki i łuki należą do grafu G. Nieskierowany graf nazywamy spójnym, jeśli między każdą para wierzchołków uivistniejedrogawg.grafskierowany Gjestspójny,jeślispójny jest nieskierowany graf otrzymany z G poprzez pozbycie się orientacji łuków. Spójny nieskierowany graf acykliczny nazywamy drzewem, natomiast zbiór drzew nazywamy lasem. Wybrane własności drzew: Między każdą parą wierzchołków w drzewie istnieje dokładnie jedna droga. Dołączenie jednej krawędzi do drzewa powoduje powstanie dokładnie jednego cyklu. Usunięcie jednej krawędzi z drzewa rozspaja ten graf na dwa rozłączne podgrafy. Drzewo o n wierzchołkach zawiera dokładnie n 1 krawędzi. Drzewem rozpinającym, w spójnym grafie nieskierowanym G, nazywamy acykliczny podgraf, który jest spójny i zawiera wszystkie wierzchołki grafu G. Graf spójnymożezawieraćwieledrzewrozpinających(aż n n 2 ).Wagądrzewarozpinającego T jest suma wag krawędzi tworzących T. Drzewo rozpinające o najmniejszej wadze nazywamy minimalnym(lub najkrótszym) drzewem rozpinajacym. Zagadnienia optymalizacji na sieciach:

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 2 Zagadnienie minimalnego drzewa rozpinającego. Zagadnienie najkrótszej drogi. Zagadnienie maksymalnego przepływu. Zagadnienie minimalnego przepływu. Zagadnienie minimalnego drzewa rozpinajacego Niech G = (V,E)będziegrafemsymetrycznym,gdzie V = n, E = m.dlakażdej krawędzi {i,j} Ejejdługość(lubkoszt)oznaczamyprzez c ij. Definicja 1. Drzewem rozpinającym T grafu G jest każdy spójny, acykliczny podgraf G zawierający wszystkie wierzchołki grafu G. Każde drzewo rozpinające grafu G ma n 1 krawędzi. Rozważać będziemy teraz następującyproblem:wyznaczyćdrzeworozpinające T dlagrafugominimalnej sumie długości krawędzi. Dla powyższego zagadnienia formułuje się warunki optymalności na dwa sposoby: Warunek optymalności definiowany przy pomocy pojęcia przekroju(nazywany PWO). Warunek optymalności definiowany przy użyciu pojęcia drogi(nazywany DWO). Oba te warunki są równoważne. Pierwszy z nich jest podstawą algorytmu Prima, a na drugim bazuje algorytm Kruskala. Podamy teraz pojęcie przekroju i sformułujemy dwie elementarne własności drzew, które sa wykorzystywane w tych warunkach. Niech Sbędziepodzbioremwęzłów G(tj. S V),a S = V S. Definicja2.Przekrojemwgrafie G,dalejoznaczanymprzez (S, S)nazywamyzbiór krawędzi,którychjedenkoniecnależydo Sadrugido S: (S, S) = {{i,j} : i S,j S}. Niech Tbędziedrzewemrozpinającymgrafu G = (V,E).Wtedy 1.Dlakażdejkrawędzi {k,l} TistniejewTjedynadrogaodkdol.Krawędź {k,l}łącznieztądrogątworzącykl. 2.JeślizdrzewaTusuniesiędowolnąkrawędź {i,j}todrzewotrozpadasię na dwa rozłączne podgrafy. Krawędzie grafu G, których końce znajdują się w różnych podgrafach tworzą przekrój. Twierdzenie 1 (PWO). Drzeworozpinające T jestminimalnewtedyitylko wtedy,gdyspełnionyjestnastępujcywarunek:dlakażdejkrawędzi {i,j} T jest spełniona nierówność c ij c kl, gdzie {k,l}jestdowolnąkrawędziąnależącadoprzekrojuotrzymanegozdrzewa T przez usunięcie z niego krawędzi {i, j}. Z powyższego twierdzenia wynika, że każda krawędź minimalnego drzewa rozpinajcego(oznaczanego dalej przez MDR) jest najkrótszą wsród krawędzi przekroju otrzymanego przez usuniecie jej z MDR. Co więcej wynika z niego nieco silniejsza własność.

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 3 Własność 1. Niech F będzie podzbiorem krawędzi pewnego MDR a S zbiorem węzłów pewnej składowej F. Załóżmy dalej, że {i, j} jest najkrótszą krawędzią przekroju (S, S).Wtedyistniejeminimalnedrzeworozpinające,którezawierawszystkie krawędzie zbioru S oraz krawędź {i, j}. PWO daje zewnętrzną charakterystyką MDR opartą na relacji pomiędzy pojedyńczą krawędzią drzewa a innymi krawędziami spoza drzewa. Teraz podamy wewnętrzny warunek optymalności, który dotyczy relacji pomiędzy pojedyńczą krawędzią nie należącą do MDR a pewnymi krawędziami w drzewie. Twierdzenie2(DWO).Drzeworozpinające T jestminimalnymdrzewemrozpinającym wtedy i tylko wtedy, gdy jest spełniony następujący warunek: Dla każdej krawędzi {k,l}grafu Gnienależącejdo T prawdziwajestnierówność c ij c kl, gdzie {i,j}jestdowolnąkrawędziądrogiłączącejwęzłykorazlwt. Analogiczne twierdzenia mogą być sformułowane dla zagadnienia maksymalnego drzewa rozpinającego. DWO daje następujcy algorytm wyznaczania minimalnego drzewa rozpinającego: Rozpocząć od dowolnego drzewa rozpinającego T i zbadać, czyzachodzidwo.jeśli Tspełniatenwarunek,to Tjestoptymalnymdrzewem.W przeciwnymprzypadkumamy c i,j > c k,l dlapewnejkrawędzi {k,l} Torazkrawędzi {i,j}drogiwtod kdo l.dodajemykrawędź {k,l}do Tausuwamykrawędź {i, j} co daje nowe drzewo rozpinające o mniejszym koszcie. Powtarzając to postępowanie otrzymamy po skończonej liczbie kroków MDR. Nie jest to jednak algorytm efektywny. Bardziej efektywnym obliczeniowo jest algorytm Kruskala, którego idea jest następująca: Posortować najpierw wszystkie krawędzie w kolejności niemalejącej i utworzyć zbiór AT dla pamiętania kolejnych krawędzi konstruowanego MDR. Na początku AT =. Następnie sprawdzamy, w kolejności posortowania, każdą krawędź, czy jejdodanieutworzycyklzkrawędziami AT.Jeślinietododajemytękrawędźdo AT. W przeciwnym przypadku ją pomijamy. Kończymy postępowanie, gdy zbiór AT liczy n 1 elementów(lub rozpatrzyliśmy już wszystkie krawędzie, co ma miejsce w przypadku, gdy wyjściowy graf nie jest spójny). Zbiór krawędzi AT tworzy minimalnedrzeworozpinające T (lubminimalnylas,gdygraf Gniejestspójny). Poprawność algorytmu wynika z faktu, że pomijamy każdą krawędź {k,l}, która na pewnym etapie tworzy cykl z już istniejącymi krawędziami zbioru AT. Zauważmy, że koszt krawędzi {k,l} jest nie mniejszy niż koszt każdej krawędzi cyklu ponieważ krawędzie sprawdzane są w kolejności niemalejących kosztów. Stąd wynika, że drzeworozpinające T spełniadwo,czylijestdrzewemoptymalnym.bardziejformalny zapis tego algorytmu może być następujący:

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 4 Algorytm Kruskala Uporządkujzbiórkrawędzi E = {{i 1 j 1 }, {i 2 j 2 },...,{i m j m }} grafu G w kolejności niemalejących kosztów tj. tak, aby c i1j 1 c i2j 2 c imj m ; AT := ; k := 1; while AT < n 1and k mdo if AT {i k j k }niezawieracyklu then AT := AT {i k j k }; k := k + 1 end end Analogicznie jak DWO warunek PWO pozwala na podanie prostego algorytmu wyznaczania MDR nazywanego algorytmem Prima. Algorytm ten buduje drzewo rozpinające zaczynając od pojedyńczego węzła i w każdym kroku dodaje jedną krawędź. Mając dane drzewo rozpinające na zbiorze węzłów S dodaje do tego zbioru węzełnajbliższy.realizujesiętowybierajączprzekroju (S, S)krawędźonajmniejszym koszcie. Postępowanie kontynuuje się do momentu, gdy S = V. Optymalność wynika bezpośrednio z Własności 1. Podamy teraz bardziej formalny zapis tego algorytmu. Algorytm Prima Niech sbędziedowolnymwęzłem,av T, E T odpowiedniozbioramiwęzłówikrawędzi konstruowanego minimalnego drzewa T; V T := {s}; E T := ; while V T < ndo Wyznacz krawędź {u,v} E taką, że E T := E T {u,v}; V T := V T {v} end end. c uv = min {c ij }; i V T,j V V T

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 5 Zagadnienie najkrótszej drogi ZND Rozważmysieć S = (N,A,c),gdzie N = n, A = m,graf G = (N,A)jestgrafem skierowanym(digrafem) a c jest funkcją okresloną na zbiorze łuków A. Wartość tejfunkcjinałuku (i,j) A,którąoznaczaćbędziemy c ij możebyćdługością lub kosztem przejazdu tego łuku. W grafie tym wyróżnimy pewien wierzchołek początkowy s.niech P = (s = i 0,i 1,...,i l,i l+1 = t),gdzie (i j,i j+1 ) Adla każdego j = 0,...,l,będziedrogąod sdowęzła t.długośćdrogi P(oznaczaćją będziemy przez d(p)) jest sumą długości jej łuków, czyli l+1 d(p) = c ik 1 i k. k=1 Zagadnienie najkrótszej drogi(nazywane dalej skrótowo przez ZND) polega na wyznaczeniunajkrótszejdrogiodwęzła sdokażdegoinnegowęzła t N {s}. Zagadnienie to może być również sformułowane jako problem przesłania, od węzła s do każdego węzła zbioru N {s}, jednostki towaru w możliwie najtańszy sposób. Daje to następujący liniowy model tego zagadnienia: c ij x ij min j:(i,j) A x ij (i,j) A j:(j,i) A x ji = { n 1 dla i = s 1 dla i N {s} x ij 0 dla (i,j) A Algorytmy, które zostaną dalej podane wymagają przyjęcia nastpujących założeń: 1. Długości łuków(wartości funkcji c) są liczbami całkowitymi. 2.Graf Gjestgrafemspójnym(istniejedrogaodsdokażdegoinnegowęzław grafie). 3. Sieć S nie zawiera konturów, których długość jest liczbą ujemną(o ujemnej długości). 4. Graf G jest grafem skierowanym(digrafem). Algorytm Dijkstry długości łuków nieujemne W ZNDwyznaczasięnajkrótszedrogiodpewnegowęzłanp.sdowszystkichpozostałych (n 1)węzłów.Dozapamiętaniatychdrógnietrzeba (n 1) 2 (dowolna droga może bowiem zawierać co najwyżej n 1 łuków) elementów pamięci, a jedynie n 1.Wynikatozfaktu,żeistniejedrzewoskierowane(odwęzła s),wktórym jedyna droga od s do danego węzła jest drogą najkrótszą. Drzewo takie nazywa się drzewem najkrótszych dróg. Algorytmy, które dalej zostaną podane wyznaczają takie drzewo. Jego istnienie wynika z następujących własności: Własność2.Jeślidroga (s = i 1,...,i h = k)jestnajkrótsządrogąod sdo k,to dlakażdego q = 2,...,h 1droga (s = i 1,...,i q )jestrównieżnajkrótsządrogąod sdowęzła i q. Własność 3. Niech współrzędne wektora d(.) reprezentują długości najkrótszych drógodwęzła sdowszystkichpozostaychwęzłówwsieci.droga P odwęzła sdo węzła kjestnajkrótsządrogąwtedyitylkowtedy,gdydlakażdegołuku (i,j) P zachodzi d(j) = d(i) + c ij

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 6 Obecnie podamy Algorytm Dijkstry wyznaczania najkrótszej drogi w sieci zawierającej tylko łuki o nieujemnych długościach(wagach). Algorytm ten wyznacza najkrótsze drogi od węzła s do wszystkich pozostałych wierzchołków w sieci. Każdy węzeł i sieci otrzymuje cechę d(i), która jest oszcowaniem z góry długości najkrótszejdrogiod sdotegowęzła.wkażdymkrokualgorytmuwęzłypodzielonesąna dwie grupy: węzły o cechach stałych i węzły o cechach tymczasowych. Cecha stała węzła reprezentuje długość najkrótszej drogi do tego węzła. Wartość cechy tymczasowej jest oszacowaniem z góry tej długości. Na początku algorytmu tylko węzeł s otrzymuje stałą cechę zero a każdy inny wierzchołek tymczasową cechę. Następne cechy stałe nadawane są węzłom w kolejności ich odległości od s. W każdej iteracji cecha węzła i jest długością najkrótszej drogi, przechodzącej przez węzły o cechach stałych(za wyjątkiem być może węzła i). Zasadniczy element algorytmu polega na wyborze węzła i o minimalnej wartości cechy tymczasowej(w przypadku niejednoznacznego minimum wybór jest arbitralny) i przemianowaniu cechy tego węzła na cechę stałą. Wykorzystując następnie tę cechę dokonuje się aktualizacji cech węzłów sąsiednich do węzła i. Algorytm wyznacza drzewo skierowane T(od węzła s) najkrótszych dróg. W tym celu zapamiętuje się w węźle j oprócz cechy d(j) indeks węzła poprzedniego jako pred(j)tj.jeśli (i,j) Tto pred(j) = i.ponadtodlakażdegołuku (i,j)należącego dodrzewaspełnionyjestwarunek d(j) = d(i) + c ij przezaktualnecechywęzów i oraz j. Zapewnia on(własność 2), że na końcu algorytmu cechy przedstawiają długości najkrótszych dróg a T jest drzewem najkrótszych dróg. Bardziej formalny zapis tego algorytmu podajemy poniżej. Algorytm Dijkstra S := ; S := N; d(j) := ;dlakażdegowęzła i N; d(s) := 0 pred(s) := 0; while S < ndo Niech i Sbędziewęzłemdlaktórego d(i) = min{d(j) : j S}; S := S {i}; S;= S {i}; forkażdego (i,j) Ado if d(j) > d(i) + c ij then d(j) := d(i) + c ij and pred(j) := i; Algorytm Dijkstry długości łuków dowolne Przypomnijmy, że zagadnienie najkrótszej drogi polega na wyznaczeniu najkrótszej drogi od wierzchołka s do każdego innego węzła j N {s}. Dalej podamy algorytm wyznaczania najkrótszej drogi w sieci dopuszczajcej łuki o ujemnych długościach (wagach) ale nadal zakłada się, że sieć nie zawiera konturów o długości ujemnej. Algorytm ten nazywany algorytmem korekcji cech nadaje cechę d(j) każdemu węzłowi j N sieci. Na pośrednim etapie algorytmu cecha d(j) jest oszacowaniem(z góry) długości najkrótszej drogi od węzła s do węzła j natomiast na końcu algorytmu cecha ta reprezentuje dugość najkrótszej drogi. Zanim formalnie zapiszemy algorytm podamy teraz pewne własności najkrótszych dróg, z których korzysta algorytm.niech d(j)dla j soznaczadługośćnajkrótszejdrogiod sdowęzła j

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 7 (przyjmujemy, że d(s) = 0). Jeśli cechy węzłów są długościami najkrótszych dróg, to muszą spełniać następujący konieczny warunek optymalności: d(j) d(i) + c ij,dlakażdego (i,j) A (1) Powyższy warunek optymalności stwierdza, że dla każdego łuku (i, j) w sieci długość najkrótszej drogi do węzła j jest nie większa niż dugość najkrótszej drogi do węzła i plus długość łuku (i, j). Warunki te są również dostateczne dla optymalności w tymsensie,żejeśli d(j)jestdługościąpewnejdrogiodźródładowęzła joraz jest spełniony warunek optymalności, to d(j) jest optymalne tj. d(j) jest długością najkrótszej drogi do węzła j. Warunki te możemy zapisać w postaci następującego twierdzenia: Twierdzenie 3(Warunki optymalności dla minimalnej drogi). Niech dla każdegowęzła j N, d(j)będziedługościąpewnejdrogiodwęzła sdowęzła j. Liczby d(j) s długościami najkrótszych dróg wtedy i tylko wtedy, gdy spełniony jest następujący warunek optymalności dla minimalnych dróg: dlakażdegołuku (i,j) A. d(j) d(i) + c ij c d ij Zdefiniujemy jeszcze tzw. zredukowany koszt łuku (i, j)- oznaczany dalej przez -względemcech d(.)jako: c d ij = c ij + d(i) d(j) oraz podamy jego własności. (a)dladowolnegokonturu W, (i,j) W cd ij = (i,j) W c ij. (b)dladowolnejdrogipodwęzła kdowęzła l, c d ij = c ij + d(k) d(l). (i,j) P (i,j) P (c)jeśli d(.)reprezentujedługościnajkrótszychdróg,to c d ij 0dlakażdegołuku (i,j) A. Obecnie podany zostanie algorytm bazowy, nazywany algorytmem korekcji cech, a następnie podamy jego bardziej efektywną obliczeniowo modyfikację tzw. zmodyfikowany algorytm korekcji cech. Wersja bazowa algorytmu operuje na każdym etapie cechami węzłów. Wartość cechy d(j) jest albo równa, gdy jeszcze nie wyznaczono najkrótszejdrogiod sdowęzła jalbojestdługościąpewnejdrogiod sdowęzła j. W każdym węzle j zapamiętuje się oprócz cechy również indeks węzła poprzedniego -nabieżącejdrodzedo jodługoci d(j)-jako pred(j).pozwalatopozakończeniu obliczeń wyznaczyć przebieg najkrótszej drogi do węzła j. Algorytm jest procedurą uaktualniania cech aż do momentu, gdy wszystkie cechy będą spełniać warunek optymalności(1). Bardziej formalny zapis tego algorytmu podajemy poniżej.

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 8 Algorytm korekcji cech d(s) := 0; pred(s) := s; d(j) := ;dlakażdegowęzła j N {s}; whilepewienłuk (i,j)spełnia d(j) > d(i) + c ij do d(j) := d(i) + c ij ; pred(j) := i; Z definicji zredukowanych kosztów wynika, że cechy d(.) spełniaja warunek optymalności(1),jeśli c d ij 0dlakażdego (i,j) APodanyalgorytmkorekcjicech wybierałuk (i,j)niespełniającytegowarunku,tj. c d ij < 0iwykorzystujegodo aktualizacji cechy węzła j. Ta operacja zmniejsza wartość cechy węzła j i nadaje zredukowanemu kosztowi na łuku (i, j) wartość zero. W algorytmie zapamiętuje się indeks węzła poprzedniego(w tablicy pred(.)) dla każdego węzła o skończonej wartości cechy. Zbiór łuków (pred(j), j)(za wyjątkiem węzła s) nazywamy grafem poprzedników. Jest to drzewo T skierowane od węzła s zawierające wszystkie węzły o skończonych wartościach cech. Algorytm zachowuje,wtrakcieobliczeń,następującąwłasność: c d ij 0dlakażdegołuku (i,j)grafu poprzedników. Aby to wykazać zastosujemy indukcję względem liczby iteracji. Zauważmy, że algorytm dodaje łuk (i, j) do grafu poprzedników w trakcie aktualizacji cechy,coimplikuje,że d(j) = d(i) + c ij lub c ij + d(i) d(j) = c d ij = 0.Wnastępnychiteracjachcecha d(i)możesięzmniejszyćiwartość c d ij możestaćsięujemna. Następnie zaobserwujmy, że jeśli d(j) zmniejszy się w trakcie algorytmu, wtedy dlapewnegołuku (i,j)grafupoprzedników c d ij możestaćsiędodatnie,coprzeczy własności, której zachodzenie założyliśmy. Ale w tym przypadku, natychmiast usuwamy łuk (i, j) z grafu poprzedników i tym samym zakładana własność zachodzi. W sytuacji, gdy nie ma konturów o ujemnej długości graf poprzedników jest zawsze drzewem.graftenzawierajedynądrogęodwęzła sdokażdegowęzła kodługości co najwyżej d(k). Gdy algorytm kończy pracę, każdy łuk grafu poprzedników ma zerowy koszt zredukowany, co implikuje, że długość drogi od węzła s do każdego węzła k wynosi d(k) i tym samym graf poprzedników jest drzewem najkrótszych dróg. Podany algorytm korekcji cech nie określa sposobu sprawdzania warunku optymalności. Jednym ze sposobów może być przeglądnięcie kolejno listy łuków i idetyfikacja łuku nie spełniającego tego warunku. Procedura ta nie jest jednak efektywna. Opiszemy teraz podejście, które jest bardziej efektywne. Załóżmy teraz, że mamy listę łuków, które mogą nie spełniać warunku optymalności i listę tę oznaczymy przez LISTA. Jeśli LISTA jest pusta, to mamy rozwiązanie optymalne. W przeciwnym przypadku sprawdzamy tę listę i wybieramy łuk (i, j) nie spełniający warunku optymalności. Usuwamy ten łuk z LISTY i jeśli nie spełnia on warunku optymalności, to wykorzystujemy go do aktualizacji cechy węzła j. Zauważmy, że zmniejszenie wartości cechy węzła j zmniejsza koszt zredukowany wszystkich łuków wychodzących z węzła j co może spowodować, że pewne łuki mogą przestać spełniać warunek optymalności. Takie zmniejszenie wartości cechy węzła j zachowuje warunek optymalności wszystkich łuków wchodzących do węzła j. Zatem jeśli zmniejszymy wartość cechy d(j), to musimy dodać wszystkie łuki (j, k) A do LI- STA. Następnie zaobserwujmy, że dodając łuk do LISTA dodajemy wszystkie łuki wychodzące z pojedyńczego węzła. To rozważanie sugeruje, że zamiast pamiętać listę wszystkich łuków, które mogą nie spełniać warunku optymalności możemy pamiętać listę węzów spełniających następującą własność:

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 9 jeśli łuk (i, j) nie spełnia warunku optymalności, to LISTA musi zawierać węzeł i. Zapamiętywanie listy węzłów wymaga mniej pracy i prowadzi do szybszych algorytmów w praktyce. To jest istotą zmodyfikowanego algorytmu korekcji cech, który podany jest poniżej. Poprawność jego wynika z własności, że zbiór LISTA zawiera każdy węzeł i incydentny z łukiem (i, j) nie spełniającym warunku optymalności. Indukcją po liczbie iteracji można wykazać, że ta własność zachowana jest w algorytmie. Zmodyfikowany algorytm korekcji cech d(s) := 0; pred(s) := s; d(j) := ;dlakażdegowęzła j N {s}; LISTA := {s}; while LISTA do usuń element(i) z listy LISTA; forkażdegołuku (i,j) Ado if d(j) > d(i) + c ij then d(j) := d(i) + c ij ; pred(j) := i; if j LISTAthendodajwęzeł jdo LISTA; Dotąd zakładaliśmy, że sieć nie zawierała konturów o długości ujemnej. Podamy teraz modyfikację, wymaganą w algorytmach, która pozwala wykryć obecność konturu o ujemnej długości, o ile istnieje. W algorytmie podstawowym zauważmy, że jeśli sieć zawiera kontur ujemny, to nie istnieją cechy węzłów spełniające warunek optymalności. Zatem algorytm korekcji cech będzie stale zmniejszał wartości cech i nigdy się nie skończy. Jeśli przez C oznaczymy długość najdłuższego łuku w sieci, to wartość nc będzie oszacowaniem z dołu wartości cechy, gdy sieć nie zawiera konturu ujemnego. Zatem jeśli cecha pewnego węzła k otrzyma wartość niższą niż nc, to kończymy obliczenia. Kontur ujemny otrzymujemy wykorzystując poprzedniki węzłów zaczynając od węzła k. Zagadnienie maksymalnego przepływu (N, A, u)- sieć, gdzie (N, A) jest grafem skierowanym(digrafem) z wyróżnionymi dwomawęzłami sitnazywanymiodpowiedniożródłemiujściem.funkcję u : A R + {0}nazywamyprzepustowościąłuków.Niech N = {1,2,...,n}aa = (i,j) A. Wartosć funkcji u na łuku a nazywamy przepustowością tego łuku i oznaczamy u(a) = u(i,j) = u ij. Definicja3.Przepływemwsieciodźródła sdoujścia towartości vnazywamy funkcję X = (x ij ) (i,j) A spełniającąnastępującewarunki: {j:(i,j) A} x ij {j:(j,i) A} v dla i = s, x ji = 0 dla i s,t, v dla i = t, 0 x ij u ij dla (i,j) A.

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 10 Definicja 4. Przekrojem rozdzielajacym s od t nazywamy zbiór łuków: gdzie s S, t Sa S = N S. (S,S) = {(i,j) A : i S, j S}, Definicja 5. Przepustowością przekroju (S, S) oznaczaną jako u(s, S) jest suma przepustowości jego łuków: u(s,s) = u ij. (i,j) (S,S) Niech X = (x ij ) (i,j) A będziedowolnymprzepływemowartości v = v(x)a (S, S) dowolnym przekrojem. Wtedy Własność 4. v = v(x) = x ij (i,j) (S,S) (j,i) (S,S) x ji Własność 5. Wartość v = v(x)dowolnegoprzepływu X jestniewiększaniż przepustowość dowolnego przekroju (S, S), tj. v u(s,s) Model liniowy maksymalnego przepływu v = v(x) max {j:(i,j) A} x ij {j:(j,i) A} x ji = 0 x ij u ij dla (i,j) A. v dla i = s, 0 dla i s,t, v dla i = t, Dla zadanego przepływu X definiuje się następujące pojęcie łańcucha powiększającego: Definicja 6. Łańcuch od sdo t,gdzie Q = (s = i 0,a 1,i 1,a 2,...,i k 1,a k,i k = t), x(e) < u(e)dla e Q + (łukówzgodnychłańcucha)oraz x(e) > u(e)dla e Q (łukówniezgodnychłańcucha) nazywamy łańcuchem powiększajacym przepływ X. Własność 6. Jeżeli w sieci istnieje łańcuch Q powiększający przepływ X o wartości v = v(x),tomożnawyznaczyćinnyprzepływ X = (x ij ) (i,j) Aowartości v = v (X ) = v + δ(q) > v,gdzie δ(q) = min{ min e Q +(u(e) x(e)), min x(e)} e Q Przepływ X określasięnastępująco: x(e) dla e Q, x (e) = x(e) + δ(q) dla e Q +, x(e) δ(q) dla e Q.

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 11 Twierdzenie 4. Przepływ X jest maksymalny wtedy i tylko wtedy, gdy sieć nie zawiera łańcucha powiększającego ten przepływ. Powyższe twierdzenie pozwala na podanie algorytmu wyznaczenia przepływu maksymalnego. Polega on na odpowiedniej konstrukcji łańcucha powiększjącego dany przepływ za pomocą nadawania cech(cechowania) węzłom sieci. Cecha węzła j jestparąliczb (δ j,i),gdzie δ j jestmaksymalnąwartościąojakąmożnapowiększyć (lubzmniejszyć)przepływnałukachłańcuchaod sdo ja ijestnumeremwęzła poprzedzającego węzeł j w tym łańcuchu. Węzeł nie posiadający cechy nazywamy nieocechowanym. Wśród węzłów ocechowanych wyróżnia się węzły sprawdzone. Mówimy, że węzeł jest sprawdzony, jeśli nadano już cechy wszystkim innym sąsiednim węzłom nieocechowanym. Sprawdzanie węzła w algorytmie odbywa się w po pobraniuwęzłazkolejkicomamiejscewkroku2(ii) Algorytm Forda Fulkersona z modyfikacją Edmondsa- Karpa Krok 0. Wyznaczyćdowolnyprzepływ X = (x ij ) (i,j) A -możenimbyćnp.przepływzerowy (x ij = 0dlakażdego (i,j) A).Założyćkolejkę Ldoprzechowywaniawęzłów ocechowanych i niesprawdzonych. Węzły dołącza się do kolejki na koniec a pobiera zpoczątkukolejki.przyjąć L = Krok 1.(Cechowanie i sprawdzanie węzłów). Nadać węzłowi s cechę (, s) i dołączyć s do kolejki L. Wykonaj: (i)jeśli L = toaktualnyprzepływjestmaksymalnyiprzejdźdokroku3.w przeciwnym przypadku wykonaj(ii). (ii)pobierzwęzełzkolejki L-niechbędzienimwęzeł i.(sprawdzaniewęzła i) Każdemunieocechowanemuwęzłowi jdoktóregoprowadziłuk (i,j) Az węzła i,dlaktórego x ij < u ij nadaćcechę (δ j,i + ),gdzie δ j = min(u ij x ij,δ i ). Dołączyć ten węzeł do kolejki L. Ponadto każdemu nieocechowanemu węzłowi jzktóregoprowadziłuk (j,i) Adlaktórego x ji > 0nadaćcechę (δ j,i ), gdzie δ j = min(x ji,δ i ).Dołączyćwęzeł jdokolejki L. (iii)jeśli t L,toprzejdźdoKroku2,wprzeciwnymprzypadkupowtórz(i). Krok 2(Powiększenie przepływu). Zmieńowielkość δ t wartośćbieżącegoprzepływu Xtylkonałukachłańcuchawyznaczonego przez drugie elementy cech węzłów zaczynając od węzła t. Zwiększyć przepływoδ t nakażdymłukuzgodnym((i +,j))takwyznaczonegołańcuchai zmniejszyćprzepływ δ t nakażdymłukuniezgodnym((j,i )).Zlikwidowaćcechy węzłów,przyjąć L = iprzejdźdokroku1. Krok 3(Konstrukcja minimalnego przekroju). Minimalny przekrój otrzymujemy przyjmując za zbiór S zbiór wszystkich węzłów ocechowanych a za S zbiór węzłów nieocechowanych. Twierdzenie 5(Forda- Fulkersona). Wartość maksymalnego przepływu w sieci jest równa przepustowości minimalnego przekroju. Zagadnienie minimalnego przepływu Niech G = (N, A) będzie grafem skierowanym zdefiniowanym przez zbiór n węzłów Nizbiór mskierowanychłuków A.Zkażdymłukiem (i,j) Azwiązanyjestkoszt c ij przesłaniajednostkiprzepływuprzeztenłuk.zakładasię,żekoszttenzależy liniowo od wielkości przepływu. Ponadto z każdym łukiem (i, j) A związana jest przepustowośćgórna u ij określającamaksymalnąwielkośćprzepływunatymłuku

dr inż. Adam Kasperski, dr M. Kulej BO- Optymalizacja na sieciach 12 iprzepustowośćdolna l ij określającaminimalnąwielkośćprzepływudlategołuku. Zkażdymwęzłem i Nzwiązanajestliczbacałkowita b(i)będącapodażąlub popytemtegowęzła.jeśli b(i) > 0towęzeł inazywamyźródłem(lubdostawcą), gdy b(i) < 0towęzeł ijestujściem(lubodbiorcą)natomiastjeśli b(i) = 0towęzeł i jest węzłem pośrednim(nie jest dostawcą ani odbiorcą). Zmienne decyzyjne to wielkościprzepływunałukach (i,j) Aoznaczanejako x ij.problemminimalnego przepływu można sformułowć następująco: min c ij x ij {j:(i,j) A} x ij {j:(j,i) A} (i,j) A x ij = b(i) dlakażdego i N, l ij x ij u ij dlakażdegołuku (i,j) A, gdzie n i=1 b(i) = 0. Powyższy problem obejmuje, jako szczególne przypadki, rozpatrywane wcześniej zagadnienia, a mianowicie: 1. Zagadnienie najkrótszej drogi od s do t. b(s) = 1, b(t) = 1, b(i) = 0dlakażdego i N (i s).modeltenobejmuje również sytuację, gdy należy najtaniej przesłać v jednostek towaru od s do t w sieci bez przepustowości. 2. Zagadnienie najkrótszych dróg od s do wszystkich pozostałych węzłów sieci. b(s) = n 1, b(i) = 1dlakażdego i N (i s). Optymalne rozwiązanie przebiega po najkrótszych drogach od s do pozostałych węzłów sieci. 3. Zagadnienie maksymalnego przepływu od s do t. b(i) = 0dlakażdego i N,dołączyćdodatkowyłuk (t,s)okoszcie c ts = 1 iprzepustowości u ts = oraz c ij = 0dlakażdegołuku (i,j) A. 4. Zagadnienie optymalnego przyporządkowania. N = N 1 N 2, N 1 = N 2, A N 1 N 2, G = (N 1 N 2,A), c ij -kosztprzydziału, b(i) = 1dlakażdego i N 1, b(j) = 1dlakażdego j N 2, u ij = 1dlakażdegołuku (i,j) A. 5. Zagadnienia transportowe(klasyczne i z punktami pośrednimi). 6. Zagadnienie najtańszego opływu. b(i) = 0dlakażdego i N.