semestr letni 2004/2005 jednoznaczność i precyzyjność wszystkich kroków Algorytm można wyrazić w różnych postaciach: kroki moga

Podobne dokumenty
TEORIA GRAFÓW. MATERIA LY VI. semestr letni 2013/2014. Jerzy Jaworski. Typeset by AMS-TEX

13 Zastosowania Lematu Szemerédiego

FUNKCJE LICZBOWE. x 1

Matematyczne Podstawy Informatyki

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

5. Najkrótsze ścieżki

P (x, y) + Q(x, y)y = 0. g lym w obszrze G R n+1. Funkcje. zania uk ladu (1) o wykresie przebiegaja

KOMBINATORYKA 1 WYK LAD 9 Zasada szufladkowa i jej uogólnienia

Algorytmiczna teoria grafów

TEORIA GRAFÓW I SIECI

PODSTAWOWE W LASNOŚCI W ZBIORZE LICZB RZECZYWISTYCH

Graf. Definicja marca / 1

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

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

Matematyka dyskretna

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

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

2. PRZELICZANIE OBIEKTÓW KOMBINATORYCZNYCH

Digraf. 13 maja 2017

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

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

Matematyka dyskretna - 7.Drzewa

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

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

Algorytmy i Struktury Danych.

Sortowanie topologiczne skierowanych grafów acyklicznych

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

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

Wyk lad 9 Baza i wymiar przestrzeni liniowej

c a = a x + gdzie = b 2 4ac. Ta postać wielomianu drugiego stopnia zwana jest kanoniczna, a wyrażenie = b 2 4ac wyróżnikiem tego wielomianu.

Wzory Viete a i ich zastosowanie do uk ladów równań wielomianów symetrycznych dwóch i trzech zmiennych

KOMBINATORYKA 1 WYK LAD 10 Zbiory cze

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

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

Wyk lad 7 Baza i wymiar przestrzeni liniowej

Pojȩcie przestrzeni metrycznej

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Algebra i jej zastosowania ćwiczenia

Wyk lad 8 macierzy i twierdzenie Kroneckera-Capellego

Algebra liniowa z geometria. - zadania Rok akademicki 2010/2011

Ogólne wiadomości o grafach

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

Dziedziny Euklidesowe

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Funkcja może mieć lokalne ekstrema jedynie w punktach, w których jej gradient, czyli wektor f = grad f = [ f

g liczb rzeczywistych (a n ) spe lnia warunek

MATEMATYKA DYSKRETNA (MAT 182) semestr letni 2002/2003. Typeset by AMS-TEX

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. Obliczanie pochodnych funkcji jednej zmiennej

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Matematyczne Podstawy Informatyki

ROZDZIA l 13. Zbiór Cantora

TEORETYCZNE PODSTAWY INFORMATYKI

DZYSZKOLNE ZAWODY MATEMATYCZNE. Eliminacje rejonowe. Czas trwania zawodów: 150 minut

Drzewa podstawowe poj

TEORIA GRAFÓW I SIECI

TEORIA GRAFÓW I SIECI

Zliczanie n = n(n+1) n 2 = n(n+1)(2n+1). 6 Wyprowadź w podobny sposób wzory na sume

Algorytmy i Struktury Danych.

Wykład 4. Droga i cykl Eulera i Hamiltona

2a )2 a b2. = 2 4a ====== x + b. nawias

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

G. Wybrane elementy teorii grafów

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

6a. Grafy eulerowskie i hamiltonowskie

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

13. Cia la. Rozszerzenia cia l.

ep do obliczeniowej biologii molekularnej (J. Tiuryn, wykĺady nr. 12 i 13; 25 stycznia 2006) 8 Konstrukcja drzew filogenetycznych

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Złożoność obliczeniowa klasycznych problemów grafowych

Pierścienie grupowe wyk lad 3. lewych podmodu lów prostych. Ogólniej, aby roz lożyć dany pierścień na sume. prosta

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Wyk lad 2 Podgrupa grupy

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

Teoria miary WPPT IIr. semestr zimowy 2009 Wyk lady 6 i 7. Mierzalność w sensie Carathéodory ego Miara Lebesgue a na prostej

Luty 2001 Algorytmy (4) 2000/2001

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Matematyka A, egzamin, 17 czerwca 2005 rozwia zania

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

Pisemny egzamin dyplomowy. na Uniwersytecie Wroc lawskim. na kierunku matematyka. zadania testowe. 22czerwca2009r. 60 HS-8-8

Dzia lanie grupy na zbiorze. Twierdzenie Sylowa

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

Opracowanie prof. J. Domsta 1

c ze wzoru dwumianowego Newtona obliczyć sumy: a) 3 2 obliczyć wartości wyrazów będa cych liczbami ca lkowitymi,

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska.

celu przyjmijmy: min x 0 = n t Zadanie transportowe nazywamy zbilansowanym gdy podaż = popyt, czyli n

Zagadnienie najkrótszej drogi w sieci

Elementy teorii grafów Elementy teorii grafów

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Algebra i jej zastosowania konspekt wyk ladu, czȩść druga

E ' E G nazywamy krawędziowym zbiorem

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera

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

Transkrypt:

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ I. semestr letni 2004/2005 1.1. Algorytmy. Każdy algorytm musi mieć pie ć ważnych cech [Knuth, The Art of Computer Programming, strona 4]: skończoność jednoznaczność i precyzyjność wszystkich kroków określone wejście określone wyjście efektywność Algorytm można wyrazić w różnych postaciach: kroki moga być opisane werbalnie, może on być w formie programu komputerowego napisanego szczegó lowo w je zyku zrozumia lym przez stosowana maszyne, lub też algorytm może przyja ć postać pośrednia mie dzy tymi dwoma przypadkami skrajnymi schemat blokowy. 1.2. Przeszukiwanie grafu w g la b i wszerz. Istnieja dwa naturalne sposoby przeszukiwania dzi grafu przy poruszaniu sie od wierzcho lka do wierzcho lka: I. Znajduja c sie w pewnym wierzcho lku v (badaja c ten wierzcho lek) przeszukujemy wszystkie dzie incydentne do v, a naste pnie badamy jeszcze niezbadane wierzcho lki przyleg le do v poruszamy sie do pewnego wierzcho lka przyleg lego w i przeszukujemy wszystkie dzie incydentne do w. Ten proces prowadzi sie dota d, aż zbada sie wszystkie wierzcho lki w grafie. Metode te nazywa sie przeszukiwaniem wszerz grafu (ang. breadth-first search). 0 Typeset by AMS-TEX

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ I. 1 II. Przeciwne podejście polega na tym, że zamiast przeszukiwać każda dź incydentna do wierzcho lka v, poruszamy sie do pewnego wierzcho lka przyleg lego w (wierzcho lka, w którym dotychczas jeszcze nie byliśmy), gdy tylko to jest możliwe, pozostawiaja c na razie wierzcho lek v z być może niezbadanymi dziami. Inaczej mówia c, poda żamy przez graf ścieżka przechodza c do nowego wierzcho lka, gdy tylko to jest możliwe. Taka metoda przeszukiwania grafu, zwana poszukiwaniem w gla b (w skrócie DFS - ang. depth-first search) lub metoda powrotu po tej samej ścieżce na grafie, okaza la sie bardzo użyteczna przy upraszczaniu wielu algorytmów teorii grafów, ze wzgle du na otrzymywane ponumerowanie wierzcho lków i skierowanie narzucone na dzie. Opis algorytmu DFS. Niech G be dzie danym grafem nieskierowanym wprowadzonym w postaci listy wierzcho lków sa siednich. Niech x be dzie określonym wierzcho lkiem, z którego należy rozpocza ć poszukiwanie, P ALM i F RON sa dwoma roz la cznymi podzbiorami, na które należy podzielić dzie grafu G. 1. v := x, i := 0, P ALM :=, F RON := 2. i := i + 1, NUM(v) := i. 3. Poszukujemy nieprzebytej dzi incydentnej do wierzcho lka v. (a) Jeżeli nie ma takiej dzi (tzn. po każdej dzi incydentnej do v już przeszliśmy), to przechodzimy do kroku 5, w przeciwnym razie: (b) Wybieramy pierwsza nieprzebyta dź incydentna do wierzcho lka v, powiedzmy (v, w) i przechodzimy ja. Ustalamy skierowanie dzi (v, w) od v do w. 4. Jesteśmy teraz w wierzcho lku w. (a) Jeżeli w jest wierzcho lkiem, w którym jeszcze nie byliśmy podczas tego szukania (tzn. N U M(w) jest nieokreślone), to dodajemy dź (v, w) do zbioru P ALM. Podstawiamy v := w i przechodzimy do kroku 2. (b) Jeżeli w jest wierzcho lkiem, w którym już wcześniej byliśmy (tzn. NUM(w) < NUM(v)), to dodajemy dź (v, w) do zbioru

2 SEMESTR LETNI 2004/2005 F RON. Przechodzimy do kroku 3. Jesteśmy wie c z powrotem w wierzcho lku v. 5. Sprawdzamy, czy istnieje jakaś przebyta dź (u, v) w zbiorze P ALM zorientowana w kierunku v. (a) Jeżeli jest taka dź, to wracamy sie do wierzcho lka u. (Zauważmy, że u jest wierzcho lkiem, z którego osia gnie to v po raz pierwszy). Podstawiamy v := u i przechodzimy do kroku 3. (b) Jeżeli nie ma takiej dzi, to algorytm zatrzymuje sie (jesteśmy z powrotem w korzeniu x po przejściu każdej dzi i odwiedzeniu każdego wierzcho lka po la czonego z x). Przyk lad. Nadać za pomoca DFS numeracje wierzcho lkom i skierowanie dziom grafu danego lista sa siadów: a: b, e b: a, c, d, e, f c: b, d d: b, c e: a, b, f, g f: b, e, g g: e, f 2.1. S laba spójność i sk ladowe s labej spójności. Niech v i oraz v j be da wierzcho lkami grafu G = (V, E). Jeżeli graf Ĝ = ( ˆV, Ê) jest otrzymany z grafu G przy pomocy operacji scalenia jego wierzcho lków v i oraz v j, to spe lnia on naste puja ce warunki: ˆV = V \{v i, v j } {z}, gdzie z / V, tzn. zbiór wierzcho lków ˆV nowego grafu otrzymujemy ze zbioru wierzcho lków V wyjściowego grafu usuwaja c najpierw scalane wierzcho lki v i oraz v j a naste p- nie dodaja c do niego nowy wierzcho lek z (powsta ly przez scalenie wierzcho lków v i, v j ). (v m, v l ) E wtedy i tylko wtedy, gdy (v m, v l ) Ê, gdzie m i, j i l i, j tzn. wszystkie dzie grafu G, które nie sa incydentne do wierzcho lków v i, v j sa również dziami nowego grafu Ĝ. Jeżeli (v m, v j ) E, gdzie m i, j, to (v m, z) Ê; Jeżeli (v m, v i ) E, gdzie m i, j, to (v m, z) Ê;

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ I. 3 tzn. dzie incydentne do wierzcho lka z (powsta lego przez scalenie wierzcho lków v i, v j ) w grafie Ĝ odpowiadaja dziom incydentnym do wierzcho lka v i lub do v j w grafie wyjściowym G (w zależności od potrzeb możemy tutaj rozpatrywać lub nie rozpatrywać dzie wielokrotne) Jeżeli rozpatrujemy pe tle, to (z, z) Ê wtedy i tylko wtedy, gdy (v i, v i ) E lub (v j, v j ) E, lub (v i, v j ) E; tzn., że pe tla incydentna z nowo powsta lym wierzcho lkiem z w grafie Ĝ powstaje wtedy i tylko wtedy, gdy w grafie G istnia la pe tla incydentna z wierzcho lkiem v i lub z wierzcho lkiem v j, lub istnia la dź (v i, v j ). Opis algorytmu. Dany jest graf G. Rozpoczynamy od pewnego wierzcho lka w grafie i scalamy wszystkie wierzcho lki przyleg le do niego. Naste pnie bierzemy scalony wierzcho lek i znów scalamy z nim wszystkie te wierzcho lki, które sa teraz do niego przyleg le. Proces scalania powtarzamy do momentu, gdy nie można już scalić wie cej wierzcho lków. To wskazuje, że pewna spójna sk ladowa zosta la scalona do pojedynczego wierzcho lka. Jeżeli poza tym wierzcho lkiem nie ma już innych wierzcho lków w grafie, to graf jest spójny. W przeciwnym przypadku, usuwamy wierzcho lek otrzymany w wyniku scalania (zapisujemy zbiór wierzcho lków, z których on powsta l jako kolejna sk ladowa spójności) i rozpoczynamy nasza procedure scalania od dowolnego wierzcho lka w otrzymanym grafie. W macierzy przyleg lości scalanie wierzcho lka j-tego z wierzcho lkiem i-tym dokonuje sie za pomoca operacji OR, tzn. dodania logicznego j-tego wiersza do i-tego wiersza oraz j-tej kolumny do i-tej kolumny. Przypomnijmy, że w dodawaniu logicznym 1 + 0 = 0 + 1 = 1 + 1 = 1; 0 + 0 = 0. Naste pnie j-ty wiersz i j-ta kolumna sa usuwane z macierzy. Zauważmy, że pe tla powstaja ca ze scalenia przyleg lych wierzcho lków pojawia sie jako jedynka na g lównej przeka tnej (możemy za każdym razem zerowac przeka tna ), ale dzie równoleg le sa automatycznie zaste powane przez dź pojedyncza ze wzgle du na dzia lanie operacji dodawania logicznego (OR).

4 SEMESTR LETNI 2004/2005 Przyk lad. Znaleźć sk ladowa s labej spójności zawieraja ca wierzcho lek v 8 danego macierza przyleg lości: A = 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 grafu

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ II semestr letni 2004/2005 2.2. Silna spójność i sk ladowe silnej spójności. Be dziemy mówili, że wierzcho lek v j jest osia galny z wierzcho lka v i wtedy i tylko wtedy, gdy istnieje w grafie (v i ; v j ) ścieżka (skierowana) od wierzcho lka v i do wierzcho lka v j. Macierza osia galności grafu nazywamy macierz zerojedynkowa D(G) == [d i,j ] n n, której element d i,j jest równy jedynce, gdy wierzcho lek v j jest osia galny z wierzcho lka v i, a zeru w przypadku przeciwnym. Macierz osia galności można również wyznaczyć naste puja cym, prostym algorytmem, korzystaja cym z binarnej macierzy przejść P (G) wyznaczaja cym kolejne wiersze macierzy osia galności. Za lóżmy, że wierzcho lki grafu sa ponumerowane kolejnymi liczbami i = 1,..., n. Procedura wyznaczania i-tego wiersża macierzy D(G) jest naste puja ca: 1. Wierzcho lek v i otrzymuje ceche c = i. 2. Wybieramy dowolny ocechowany wierzcho lek v k i rozpatrujemy odpowiadaja cy mu k-ty wiersz w macierzy P (G). Wszystkim nieocechowanym wierzcho lkom v j, którym w tym wierszu odpowiadaja wartości p k,j = 1 nadajemy ceche c = i. Procedure punktu 2 kontynuujemy dota d, aż nie be dzie można ocechować żadnych nowych wierzcho lków. 3. W wierszu i-tym macierzy D(G) wstawiamy jedynki na pozycjach odpowiadaja cych wierzcho lkom ocechowanym cecha c = i. Twierdzenie 2.1. Każdy maksymalny podzbiór wierzcho lków, któremu odpowiadaja identyczne wiersze macierzy osia galności, tworzy skladowa silnej spójności (fragment). 5 Typeset by AMS-TEX

6 SEMESTR LETNI 2004/2005 Algorytm Leifmana. wyznaczanie fragmentów grafu skierowanego. 1. W grafie G poszukujemy wierzcho lków v, dla których d + (v) = 0 lub d (v) = 0. Jeżeli sa takie wierzcho lki, to zaliczamy je do S, jako jednowierzcho lkowe sk ladowe silnej spójności. Usuwamy je z grafu G, tworza c odpowiedni podgraf G o =< V o, L o > i dla tego podgrafu kontynuujemy czynności kroku 1. Jeżeli nie ma już takich wierzcho lków, to przechodzimy do kroku 2. 2. W podgrafie G o =< V o, L o >, uzyskanym w wyniku czynności kroku 1 lub 4, wybieramy dowolny wierzcho lek v o i rozpoczynamy proces cechowania wierzcho lków podwójnymi cechami (l(v), p(v)), który realizujemy w naste puja cy sposób : Na pocza tku wszystkim wierzcho lkom v V o nadajemy wartości cech (0, 0). Wszystkim naste pnikom v wierzcho lka v o nadajemy wartość cechy l(v) = 1. Nieocechowanym naste pnikom tych ocechowanych wierzcho lków też nadajemy wartość cechy l = 1 itd., aż dojdziemy do sytuacji, w której nie be dzie można powie kszyć zbioru wierzcho lków z cecha l = 1. W wyniku tego poste powania, ceche l = 1 maja wszystkie wierzcho lki osia galne z wierzcho lka v o. Podobnie, startuja c znów z wierzcho lka v o, lecz poruszaja c sie przeciwnie do zwrotu luków, nadajemy prawe cechy p(v) = 1 wierzcho lkom v, z których jest osia galny wierzcho lek v o za pomoca ścieżek (skierowanych) o niezerowej d lugości. Po zakończeniu tego etapu każdy wierzcho lek v V o ma nadane wartości (zero lub jeden) obu cech l(x) i p(x). W ten sposób zbiór V o zosta l podzielony na cztery roz la czne podzbiory V o = V 00 V 01 V 10 V 11, gdzie indeksy oznaczaja odpowiednio wartości cech (lewej i prawej) wierzcho lków należa cych do tych podzbiorów. 3. Określamy nowe sk ladowe silnej spójności. Możliwe sa przy tym naste puja ce sytuacje: (a) V 11. Wtedy V 11 stanowi kolejna, sk ladowa silnej spójności, która zaliczamy do zbioru S. Jeżeli pozosta le zbiory V 00, V 01, V 10 sa puste, to przechodzimy do kroku 4. W przeciwnym przypadku zapamie tujemy niepuste zbiory i be dziemy je oddzielnie

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ II 7 rozpatrywali w naste pnych etapach procedury, ponieważ każda nie wyznaczona do tej pory sk ladowa silnej spójności zawiera sie ca lkowicie w jednym z tych zbiorów. Przechodzimy do kroku 4. (b) V 11 =. Wtedy zbiór V 00 zawiera wierzcho lek v o, tworza cy jednowierzcho lkowa sk ladowa silnej spójności {v o }. Zapamie tujemy zbiór V 00 \ {v o }, jeżeli jest on niepusty, wraz z pozosta lymi niepustymi zbiorami spośród V 01, V 10. Przechodzimy do kroku 4. 4. Pytamy: czy sa zapamie tane nierozpatrzone zbiory powsta le w wyniku realizacji kroku 3? Jeżeli sa, to wybieramy dowolny z nich i traktuja c go jako nowy zbiór V o, tworzymy podgraf G o =< V o, L o >, z którym przechodzimy do kroku 2. Jeżeli nie ma już zapamie tanych i nierozpatrzonych zbiorów, to zbiór S zawiera wszystkie podzbiory tworza ce sk ladowe silnej spójności. Oznacza to koniec procedury algorytmu Leifmana. Podstawe przedstawionego algorytmu stanowia twierdzenia 2.2, 2.3 i 2.4. Stosuja c oznaczenia przyje te w algorytmie, oznaczymy G lp = G[V lp ] jako podgraf generowany przez podzbiór wierzcho lków V lp, be da cy jednym z czterech podzbiorów uzyskanych w wyniku procedury cechowania wierzcho lków podgrafu G o, w punkcie 2 algorytmu Leifmana. Twierdzenie 2.2. Jeżeli V 11, to podgraf G 11 jest sk ladowa silnej spójności, a wierzcholek v o, od którego zaczyna sie cechowanie wierzcho lków, należy do V 11. Twierdzenie 2.3. Jeżeli V 11 jest zbiorem pustym, to wierzcho lek pocza tkowy v o stanowi jednowierzcho lkowa sk ladowa silnej spójności i należy do zbioru V 00. Twierdzenie 2.4. Każda sk ladowa silnej spójności grafu G o zawiera sie ca lkowicie w jednym z czterech podgrafów G lp = G[V lp ].

8 SEMESTR LETNI 2004/2005 Przyk lad. Wyznaczyć za pomoca algorytmu Leifmana wszystkie sk ladowe silnej spójności grafu skierowanego o macierzy przejść: P = 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 Zadanie. Znaleźć za pomoca algorytmu Leifmana sk ladowa silnej spójności zawieraja ca wierzcho lek v 6 grafu skierowanego o macierzy przejść: P = 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ III. semestr zimowy 2004/2005 3. Najkrótsze ścieżki. Przez d lugość ścieżki be dziemy dalej rozumieli sume wag jej dzi. W grafach, w których nie określono wag na dziach (lub wszystkie wagi sa równe) przez d lugość ścieżki rozumiemy, tak jak dotychczas, liczbe jej dzi. Znajdowanie najkrótszej ścieżki mie dzy dwoma ustalonymi wierzcho lkami s i t grafu bez wag (z jednakowymi wagami) możemy realizować za pomoca przeszukiwania grafu wszerz. Przeszukiwanie grafu wszerz - BFS. 1: Etykietujemy wierzcho lek s cecha 0 ; i := 0. 2: Znajdujemy wszystkich niezaetykietowanych jeszcze sa siadów (wszystkie naste pniki w przypadku grafu skierowanego) wierzcho lków zaetykietowanych cecha i. Jeżeli takich wierzcho lków nie ma, to STOP. 3: Etykietujemy wszystkie wierzcho lki znalezione w kroku 2 cecha i + 1. 4: Jeżeli wierzcho lek t zosta l zaetykietowany, to STOP. W przeciwnym razie zmieniamy i := i + 1 i wracamy do kroku 2. Najkrótsza ścieżka mie dzy dwoma ustalonymi wierzcho lkami s i t (dodatnie wagi dzi). W algorytmie poniżej pos lugujemy sie naste puja cymi oznaczeniami: l(v) d lugość aktualnie najkrótszej ścieżki z s do v; p(v) bezpośredni poprzednik v na aktualnie najkrótszej ścieżce z s do v; T zbiór wierzcho lków, które nie maja jeszcze cechy sta lej. 9 Typeset by AMS-TEX

10 SEMESTR ZIMOWY 2004/2005 Algorytm Dijkstry 1: Nadajemy wierzcho lkowi s ceche równa 0 (l(s) := 0). Pozosta lym wierzcho lkom v, v s, nadajemy ceche równa (l(v) := ). Wszystkim wierzcho lkom v V nadajemy również druga ceche p(v) := 0 (nie maja one w tym momencie ustalonych poprzedników). Ceche l(s) = 0 wierzcho lka s ustalamy:t := V {s}, z := s ; pozosta le cechy sa tymczasowe. 2: Wszystkim naste pnikom u, u T, (które nie maja cechy sta lej) wierzcho lka z, dla których nadajemy nowe cechy tymczasowe l(u) > l(z) + w(z,u), l(u) := l(z) + w(z,u); zmieniamy dla nich również druga etykiete p(u) := z. Pozosta le wierzcho lki zachowuja swoje dotychczasowe etykiety. 3: Spośród wierzcho lków z T wybieramy jeden o najmniejszej cesze l( ). Za lóżmy, że jest nim wierzcho lek x. Wówczas x otrzymuje ceche sta la : T := T {x} ; z := x. Jeżeli z = t, to STOP ( wtedy d lugość ścieżki z wierzcho lka s do t wynosi l(t), natomiast sama ścieżka ma naste puja ca postać : (s,...,p(p(t)),p(t),t). W przeciwnym razie, gdy z t, wracamy do kroku 2. Najkrótsze ścieżki z ustalonego wierzcho lka s do wszystkich pozosta lych wierzcho lków (dodatnie wagi dzi). W algorytmie Dijkstry zmieniamy krok 3: 3: Spośród wierzcho lków z T wybieramy jeden o najmniejszej cesze l( ). Za lóżmy, że jest nim wierzcho lek x. Wówczas x otrzymuje ceche sta la : T := T {x} ; z := x. Sprawdzamy czy zbiór T jest pusty. Jeżeli tak, to STOP (d lugość najkrótszej ścieżki z wierzcho lka s do każdego innego wierzcho lka kryje sie w jego cesze l( ), sama ścieżke konstruuje sie tak jak poprzednio); Jeżeli zbiór T nie jest pusty, to wracamy do kroku 2.

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ III. 11 Najkrótsze ścieżki z ustalonego wierzcho lka s do wszystkich pozosta lych wierzcho lków (dowolne wagi dzi). Algorytm Bellmana-Forda l k (v) etykieta wierzcho lka v w k-tej iteracji p k (v) poprzednik wierzcho lka v w k-tej iteracji Γ(v) zbiór naste pników wierzcho lka v Γ 1 (v) zbiór poprzedników wierzcho lka v 1: l 1 (s) := 0, p 1 (s) := 0 oraz l 1 (v) := w(s,v), p 1 (v) := s dla każdego v Γ(s) ; dla pozosta lych wierzcho lków u: l 1 (u) :=, p 1 (u) := ; k := 1, S := Γ(s). 2: Dla każdego naste pnika v wierzcho lków z S, czyli v Γ(S): l k+1 (v) := min{l k (v), min u T v {l k (u) + w(u,v)}, gdzie T v = Γ 1 (v) S. Dla każdego wierzcho lka v Γ(S), dla którego l k+1 (v) = l k (u) + w(u,v) : dla pozosta lych v, p k+1 (v) := u; p k+1 (v) := p k (v). Dla v Γ(S): l k+1 (v) := l k (v), p k+1 (v) := p k (v). (Zbiór S zawiera wszystkie wierzcho lki, do których aktualnie najkrótsze ścieżki z s sk ladaja sie z k luków. Zbiór T v sk lada sie z wierzcho lków, do których najkrótsze ścieżki z s sk ladaja sie z k luków i których naste pnikiem jest v); 3: (a) Jeżeli k n 1 oraz l k+1 (v) = l k (v) dla każdego v, to STOP; (b) Jeżeli k < n 1 oraz l k+1 (v) l k (v) dla pewnego wierzcho lka v, to krok 4; (c) Jeżeli k = n 1 oraz l k+1 (v) l k (v) dla pewnego wierzcho lka v, to STOP - graf ma cykl o ujemnej sumie wag. 4: S := { v;l k+1 (v) l k (v) } ; k := k + 1 i krok 2 (S zawiera wierzcho lki, do których najkrótsze ścieżki z s maja k + 1 luków).

12 SEMESTR ZIMOWY 2004/2005 Najkrótsze ścieżki mie dzy wszystkimi parami wierzcho lków (dowolne wagi dzi). Algorytm Floyda 1: Maja c dana macierz wag W tworzymy macierz poprzedników P (0), w ten sposób, że jeśli w ij =, to p (0) ij = 0; jeśli natomiast w ij, to p (0) ij przyjmie wartość i. 2: Tworzymy cia gi macierzy W (1),W (2),...,W (n) oraz P (1), P (2),...,P (n) wed lug wzorów: w (0) ij = w ij ; w (l) ij = min{w(l 1) ij,w (l 1) il + w (l 1) lj }, co oznacza, że obliczaja c l-ta macierz W (l) zmieniamy d lugość ścieżki w ij z wierzcho lka i do j, jeżeli po w la czeniu do niej wierzcho lka l staje sie ona krótsza. Wtedy też w macierzy P (l) wstawiamy p (l) ij w pozosta lych przypadkach p (l) ij := p(l 1) ij := p(l 1) lj ;. Dodatkowo po utworzeniu każdej macierzy sprawdzamy czy elementy na g lownej przeka tnej sa nieujemne (w ij 0). Jeżeli na g lownej przeka tnej pojawi sie wartość ujemna, to STOP znaleziony zosta l cykl o ujemnej sumie wag. 3: Macierz W (n) jest macierza zawieraja ca d lugości najkrótszych ścieżek mie dzy każda para wierzcho lków i, j. Aby wyznaczyć te najkrótsze [ ścieżki korzystamy z macierzy P (n) = p (n) ij ]. Każdy element p (n) ij jest przedostatnim wierzcho lkiem na najkrótszej ścieżce z i do j. Jeśli ta ścieżka ma, na przyk lad, postać (i,v 1,v 2,...,v q,j), to poszczególne wierzcho lki v k (gdzie k = 1,2,...,q) otrzymujemy z macierzy P (n) : i = p iv1,...,v q 2 = p ivq 1,v q 1 = p ivq,v q = p ij,j. Przyk lad Wyznaczyć najkrótsze ścieżki z wierzcho lka s (s odpowiada pia ty wiersz i pia ta kolumna) do wszystkich pozosta lych wierzcho lków w grafie o macierzy wag: 0 12 12 12 0 13 12 14 15 13 0 13 11 15 13 0 11 W = 12 12 0 15 14 15 0 13 15 11 13 0 12 15 11 12 0

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ III. 13 Przyk lad Wyznaczyć najkrótsze ścieżki mie dzy wszystkimi parami wierzcho lków w grafie o macierzy wag: W = 0 2 1 0 1 8 2 0 2 0 10 4 0 2 6 1 3 0

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ IV. semestr zimowy 2004/2005 4. Rozpie te drzewa. Generowanie drzewa rozpie tego danego grafu spójnego G na n wierzcho lkach można realizować biora c kolejno dzie z pewnej listy i akceptuja c je po sprawdzeniu, czy nie tworza one cyklu z dotychczas zaakceptowanymi dziami. Zauważmy, że do czasu kiedy zaakceptowanych dzi be dzie n 1, czyli do czasu otrzymania drzewa, rozpie ty podgraf grafu G generowany zbiorem zaakceptowanych dzi jest lasem. Jeżeli w każdym drzewie takiego lasu wyróżnimy jeden wierzcho lek korzeń a dzie drzewa zamienimy lukami tak, by z korzenia do dowolnego innego wierzcho lka drzewa można by lo przejść po ścieżce skierowanej (zauważmy, że wybór korzenia jednoznacznie takie skierowanie określa), to las ten możemy określić przypisuja c każdemu wierzcho lkowi v dwie etykiety (r(v), p(v)), gdzie: r(v) oznacza korzeń drzewa, do którego należy v, natomiast p(v) jest bezpośrednim poprzednikiem wierzcho lka v w tym drzewie. Kolejna zaakceptowana dź la czy dwa drzewa lasu w jedno i należy przeprowadzić zmiane etykiet. Możemy przyja ć, że otrzymane drzewo be dzie mialo jako korzeń mniejszy z korzeni po la czonych drzew. A. Opis procedury po la czenia dwóch drzew. Opis procedury zamiany korzenia drzewa. Zmiana etykiet wierzcho lków drzewa T o korzeniu r, po operacji zamiany r na nowy korzeń v. Wierzcho lkowi v jako druga etykiete (poprzednik)przypisujemy 0 v staje sie korzeniem drzewa T. Zmieniamy skierowanie (na przeciwne) luków na ścieżce z r do v i odpowiednio zmieniamy drugie etykiety wierzcho lków ( v) tej ścieżki. Drugie etykiety pozosta lych wierzcho lków w drzewie T pozostaja bez zmian. Wszystkie wierzcho lki drzewa T otrzymuja pierwsza etykiete (określaja ca korzeń) równa v. 14 Typeset by AMS-TEX

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ IV. 15 Zmiany etykiet wierzcho lków dwóch drzew T 1 i T 2, o korzeniach odpowiednio r 1 i r 2, r 1 < r 2, po operacji ich po la czenia przez dodanie dzi e = (u, v), gdzie u V (T 1 ), v V (T 2 ). Wierzcho lkom w drzewie T 2 zmieniamy drugie etykiety dotycza ce poprzedników tak jak przy zamianie korzenia z r 1 na v (patrz procedura powyżej); w drzewie T 1 drugie etykiety wierzcho lków pozostaja bez zmian. Wierzcho lkowi v jako druga etykiete (poprzednik) przypisujemy u. Wszystkie wierzcho lki drzewa T 2 otrzymuja pierwsza etykiete (określaja ca korzeń) równa r 1 ; w drzewie T 1 pierwsze etykiety wierzcho lków pozostaja bez zmian. Po otrzymaniu drzewa rozpie tego, lub wyczerpaniu sie naszej listy dzi w procesie generowania drzew, wykonujemy krok powrotu polegaja cy na wyrzuceniu ostatnio dodanej dzi. Powoduje to rozbicie pewnego (jednego) drzewa na dwa poddrzewa. B. Opis procedury podzia lu drzewa na dwa poddrzewa. Zmiana etykiet wierzcho lków drzewa T o korzeniu r po usunie ciu z niego dzi e = (u, v), czyli rozbiciu T na dwa drzewa T 1 i T 2, gdzie u V (T 1 ), v V (T 2 ) i r V (T 1 ). W drzewie T 1 obie etykiety wierzcho lków pozostaja bez zmian. Wierzcho lkowi v jako druga etykiete (poprzednik)przypisujemy 0 v staje sie korzeniem drzewa T 2. Drugie etykiety pozosta lych wierzcho lków w drzewie T 2 pozostaja bez zmian. Wszystkie wierzcho lki drzewa T 2 otrzymuja pierwsza etykiete (określaja ca korzeń) równa v. Generowanie wszystkich drzew rozpie tych. 1: Tworzymy liste dzi biora c na jej pocza tek dzie incydentne z v (v - dowolny wierzcho lek) e 1, e 2,..., e d(v ), e d(v )+1,..., e m, m = E(G). Dla każdego wierzcho lka v V (G): (k licznik dzi z listy). r(v) := v; p(v) := 0; k := 1

16 SEMESTR ZIMOWY 2004/2005 2: Jeżeli k = m+1, to Krok 5. W przeciwnym razie badamy k ta dź z listy : e k = (v i, v j ). (i) Jeżeli r(v i ) = r(v j ), to v i i v j sa w tym samym drzewie i dź e k zamyka cykl odrzucamy ja ; k := k + 1; Krok 2; (ii) Jeżeli r(v i ) r(v j ), to dź akceptujemy i przechodzimy do Kroku 3; 3: La czymy dwa drzewa o korzeniach r(v i ) i r(v j ) dzia e k = (v i, v j ) zgodnie z procedura A; 4: Jeżeli liczba zaakceptowanych dzi jest równa n 1, to mamy drzewo rozpie te. Zapamie tujemy je i przechodzimy do Kroku 5, jeżeli dzi zaakceptowanych jest mniej, to k := k + 1 i Krok 2; 5: Badamy ostatnio zaakceptowana dź. Powiedzmy, że jest nia dź e l. Jeżeli e l = e d(v ) i nie ma już innych zaakceptowanych dzi, to STOP. (mamy wyznaczone wszystkie rozpie te drzewa). W przeciwnym razie odrzucamy dź e l i zmieniamy etykiety zgodnie z procedura B; k := l + 1 i Krok 2. Przyk lad. Znaleźć wszystkie drzewa rozpie te dla grafu o macierzy incydencji: M = 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 Jeżeli mamy do czynienia z grafem z wagami, to najcze ściej interesuje nas znalezienie rozpie tego drzewa o minimalnej wadze, tzn. drzewa, którego suma wag poszczególnych dzi jest najmniejsza. Aby znaleźć takie optymalne drzewo możemy zastosować dwa algorytmy: Kruskala ( algorytm zach lanny ), lub Prima ( algorytm najbliższego sa siada ).

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ IV. 17 Niech graf G = (V, E) be dzie dany macierza wag. Za lóżmy, że graf G jest spójny. Algorytm Kruskala. 1: Wybierz dź, która nie jest pe tla, e 1 tak, by waga tej dzi by la najmniejsza. 2: Jeżeli dzie e 1, e 2,..., e k zosta ly już wybrane, to z pozosta lych E \ {e 1, e 2,..., e k } wybierz dź e k+1 w taki sposób aby: (a) graf, który sk lada sie tylko z dzi e 1, e 2,..., e k, e k+1 by l acykliczny (możemy tu zastosować etykietowanie zwia zane z korzeniami drzew budowanego lasu z poprzedniego algorytmu), oraz (b) waga dzi e k+1 by la najmniejsza. 3: Jeśli nie można wykonać kroku 2, to STOP. Twierdzenie 4.1. Każde rozpie te drzewo skonstruowane za pomoca algorytmu Kruskala jest optymalne. Dowód:. Przypuśćmy, że drzewo T = G[{e 1, e 2,... e n 1 }] skonstruowane przy pomocy algorytmu Kruskala nie jest optymalne. Wśród wszystkich drzew optymalnych wybierzmy takie drzewo rozpie te T danego grafu, by dla możliwie najwie kszego k, T i T mia ly wspólne krawe dzie e 1,..., e k 1. Dodanie należa cej do T dzi e k do drzewa T, która z powyższej definicji do niego nie należy, spowoduje powstanie dok ladnie jednego cyklu. Weźmy dź x należa ca do tego cyklu, x e k, która nie należy do T. Taka dź oczywiście istnieje, bo w przeciwnym razie ca ly cykl zawarty by lby w acyklicznym grafie T. Sta d x / {e 1, e 2,..., e k } i z tego, że algorytm Kruskala wybiera dzie o najmniejszej wadze wynika, że waga dzi x jest równa przynajmniej wadze dzi e k. Gdyby waga x by la wie ksza od wagi e k, to podgraf T = (T {e k }) {x} by lby nie tylko acykliczny i spójny (czyli by lby drzewem), ale by loby to drzewo rozpie te z waga mniejsza niż waga T, co przeczy za lożeniu o optymalności T. Wobec tego wagi dzi x i e k powinny być równe, ale wówczas T by loby drzewem optymalnym zawieraja cym dzie {e 1, e 2,..., e k }, co z kolei przeczy za lożeniu o wyborze k. Wynika sta d, że drzewo T otrzymane za pomoca algorytmu Kruskala jest optymalne, co kończy dowód. Z lożoność obliczeniowa algorytmu Kruskala. Algorytm można w laściwie podzielić na dwa etapy. Najpierw sortujemy dzie wed lug wag, a naste pnie budujemy rozpie te drzewo

18 SEMESTR ZIMOWY 2004/2005 poprzez wybór najkrótszych dzi ze zbioru dzi E. Czas potrzebny do sortowania E dzi jest równy O( E log E ). Innym sposobem znalezienia rozpie tego drzewa o minimalnej wadze w danym grafie jest algorytm najbliższego sa siada: Zaczynamy od dowolnego wierzcho lka a w danym grafie. Niech (a, b) be dzie dzia o najmniejszej wadze incydentna z a. Krawe dź (a, b) w la czamy do budowanego drzewa. Naste pnie spośród wszystkich dzi incydentnych albo do a, albo do b wybieramy dź o najmniejszej wadze i w la czamy do drzewa. W wyniku tego w sk lad wierzcholków drzewa wszed l nowy wierzcho lek, powiedzmy c. Powtarzaja c opisany proces szukamy dzi o najmniejszej wadze la cza cej jeden z wierzcho lków a, b lub c z wierzcho lkiem spoza skonstruowanego już drzewa. Kontynuujemy to poste powanie dopóki wszystkie wierzcho lki grafu G nie znajda sie w drzewie, czyli dopóki drzewo nie stanie sie rozpie te. W algorytmie każdemu wierzcho lkowi v i be dziemy przypisywać pare etykiet (α i, β i ), gdzie α i jest wierzcho lkiem poddrzewa najbliższym v i, zaś β i jest bieża ca odleg lościa wierzcho lka v i od poddrzewa, czyli waga dzi (v i, α i ). Algorytm Prima. 1: Wybrać dowolny wierzcho lek grafu G = (V, E) - v s i przypisać mu etykiety: (0,0). T := {v s }, E T :=, gdzie T to zbiór wierzcho lków budowanego drzewa, E T - zbiór dzi budowanego drzewa. Każdemu sa siadowi v j wierzcho lka v s, przypisać etykiety (α j, β j ) α j := v s, β j := w (v s, v j ), gdzie w(u, v) oznacza wage dzi (u, v). Wierzcho lkom ( v s ), które nie sa sa siadami wierzcho lka v s przyporza dkować etykiety (0, ). 2: Wybrać wierzcho lek v k taki, że β k = min v j / T β j. T := T {v k }, E T := E T {(α k, v k )}. Jeżeli T = V, to STOP. W przeciwnym przypadku przejść do 3.

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ IV. 19 3: Wszystkim nie należa cym do T wierzcho lkom v j przyleg lym do v k, dla których zachodzi nierówność β j > w (v k, v j ) zmieniamy etykiety β j := w (v k, v j ), α j := v k ; pozosta lym wierzcho lkom etykiet nie zmieniamy. Wracamy do kroku 2. Z lożoność obliczeniowa algorytmu Prima. Najgorszym dla algorytmu jest przypadek, gdy G jest grafem pe lnym. Żeby wybrać pierwsza dź musimy porównać wagi wszystkich V 1 dzi incydentnych z wierzcho lkiem pocza tkowym i wybrać najmniejsza. To wymaga V 2 porównań. Druga dź wybieramy spośród 2( V 2) dzi incydentnych z pierwszym lub drugim wybranym wierzcho lkiem. Wykonujemy tu 2( V 2) 1 porównań. Widać wie c, że przy wyborze i-tej dzi potrzeba i( V i) 1 porównań, czyli w sumie potrzeba V 1 i=1 [i ( V 1) 1] = 1 6 V 3 + O( V 2 ) porównań. Porównuja c oba algorytmy nie można jednoznacznie stwierdzić, że któryś jest lepszy. Algorytm najbliższego sa siada jest szybszy dla ma lych grafów zw laszcza ge stych, natomiast algorytm Kruskala jest szybszy dla dużych i rzadkich grafów. Przyk lad. Znaleźć optymalne drzewo rozpie te dla grafu o macierzy wag: W = 1 10 8 3 1 13 10 6 4 13 15 11 10 10 15 9 8 6 9 7 3 4 11 7

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ V. semestr zimowy 2004/2005 5.1. Skojarzenia Podzbiór M zbioru dzi E nazywamy skojarzeniem grafu G jeżeli M nie zawiera pe tli i żadne dwie dzie z M nie sa przyleg le. Dwa końce dzi z M sa skojarzone przez M. Skojarzenie M nasyca wierzcho lek v (v nazywamy M-nasyconym) jeżeli pewna dź z M jest incydentna z v; w przeciwnym razie v jest M-nienasycony. Jeżeli M nasyca każdy wierzcho lek grafu G, to M nazywamy skojarzeniem doskona lym. M jest skojarzeniem najwie kszym jeżeli graf G nie ma skojarzenia M takiego, że M > M ; oczywiście każde skojarzenie doskona le jest najwie ksze. Ścieżke, do której należa dzie na przemian z M i Mc, M c = E M, nazywać be dziemy M-przemienna ścieżka. Jeżeli M-przemienna ścieżka ma pocza tek i koniec M-nienasycony, to nazywamy ja M-zasilona ścieżka. Twierdzenie 5.1. (Berge, 1957) Skojarzenie M w grafie G jest najwie k- sze wtedy i tylko wtedy, gdy G nie zawiera M-zasilonej ścieżki. 5.2. Skojarzenia w grafach dwudzielnych. Dla każdego zbioru S V przez zbiór jego sa siadów N G (S) rozumiemy zbiór wszystkich wierzcho lków przyleg lych do wierzcho lków z S. Twierdzenie 5.2. (Hall) Niech G be dzie grafem dwudzielnym z dwupodzia lem (X, Y ). Graf G zawiera skojarzenie, które nasyca każdy wierzcho lek w X wtedy i tylko wtedy, gdy (5.1) N G (S) S dla każdego S X. 19 Typeset by AMS-TEX

20 SEMESTR ZIMOWY 2004/2005 5.3 Problem przydzia lu zadań. Istnieje algorytm (Metoda we gierska) znajduja cy w grafie dwudzielnym skojarzenie nasycaja ce każdy wierzcho lek X lub jeżeli jest to niemożliwe, znajduja cy podzbiór S zbioru X taki, że N G (S) < S. Algorytm przydzia lu zadań - metoda we gierska Dane: graf dwudzielny G (dwupodzia l (X,Y )), skojarzenie M, 1: Jeżeli M nasyca wszystkie wierzcho lki X, to STOP. W przeciwnym razie niech u, (u X) be dzie M-nienasycony. S := {u}, T :=. 2: Jeżeli N G (S) = T, to N G (S) < S i STOP - nie ma szukanego skojarzenia. W przeciwnym razie niech y N G (S) T. 3: Jeżeli y jest M-nasycony, yz M, to S := S {z}, T := T {y} i krok 2. W przeciwnym razie niech P be dzie M-przemienna zasilona ścieżka z u do y, M := M E(P) i krok 1. 5.4. Problem optymalnego przydzia lu zadań. Problem optymalnego przydzia lu zadań równoważny jest ze znalezieniem skojarzenia doskona lego o maksymalnej wadze w dwudzielnym grafie G z wagami. Wprowadźmy funkcje l (etykiety wierzcho lków) o wartościach rzeczywistych, określona na zbiorze wierzcho lków V = X Y, taka, że dla każdego x X i dla każdego y Y (5.4) l(x) + l(y) w(x,y), gdzie w(x,y) jest waga dzi xy. Oznaczmy dalej przez E l zbiór dzi (5.5) E l = {xy E(G) : l(x) + l(y) = w(x,y)}, a przez G l odpowiedni rozpie ty podgraf grafu G. Prawdziwe wówczas jest naste puja ce twierdzenie: Twierdzenie 5.3. Niech l be dzie funkcja etykiety spe lniaja ca warunek (5.4) dla grafu dwudzielnego z wagami G. Jeżeli podgraf G l zawiera skojarzenie doskona le M, to skojarzenie M jest skojarzeniem optymalnym grafu G.

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ V. 21 Powyższy fakt jest podstawa algorytmu Kuhna (1955) i Munkresa (1957) rozwia zuja cego problem optymalnego przydzia lu zadań. Prezentowana poniżej wersja algorytmu pochodzi od Edmondsa (1967). Algorytm Kuhna - Munkresa - optymalny przydzia l zadań. Dane: graf dwudzielny G z wagami, funkcja etykiety l, graf G l oraz jego skojarzenie M Szukane: skojarzenie doskona le o maksymalnej wadze tzw. optymalne skojarzenie 1: Jeżeli M nasyca wszystkie wierzcho lki X, to M jest skojarzeniem optymalnym - STOP. W przeciwnym razie niech u (u X) be dzie M-nienasyconym wierzcho lkiem, S := {u}, T := 2: Jeżeli T N Gl (S), to krok 3. Jeżeli T = N Gl (S), to obliczamy α = min {l(x) + l(y) w(xy)} (α > 0) x S, y Y T l (v) := l(v) α, dla v S; l (v) := l(v) + α, dla v T; l (v) := l(v) dla wszystkich v poza S i poza T; G l := G l 3: Wybieramy y N Gl (S) T. Jeżeli y jest M-nasycony, yz M, to S := S {z}, T := T {y} i krok 2. W przeciwnym razie mamy M-przemienna zasilona ścieżke P z u do y w G l ; M := M E(P) i krok 1 Przyk lad. Wyznaczyć optymalne skojarzenie (skojarzenie doskona le o maksymalnej wadze) w grafie o macierzy wag: y 1 y 2 y 3 y 4 y 5 x 1 x 2 x 3 x 4 x 5 3 5 5 4 1 2 2 0 2 2 2 4 4 1 0 0 1 1 0 0 1 2 1 3 3

22 SEMESTR ZIMOWY 2004/2005 5.5. Algorytm znajdowania optymalnego skojarzenia w dowolnym grafie. Twierdzenie 5.4 (The Cycle Shrinking Lemma). Niech G be dzie grafem, M jego skojarzeniem, a Z cyklem d lugości 2k +1, który zawiera dok ladnie k dzi z M i jeden wierzcho lek M-nienasycony. Niech G be dzie grafem otrzymanym z G poprzez ścia gnie cie cyklu Z do jednego wierzcho lka. Wówczas M jest najwie kszym skojarzeniem grafu G wtedy i tylko wtedy, gdy M = M E(Z) jest najwie kszym skojarzeniem grafu G. Dany jest graf G i skojarzenie M grafu G. Jeżeli M jest skojarzeniem doskona lym to STOP. W przeciwnym razie istnieje zbiór S wierzcho lków (S ) M-nienasyconych. Konstruujemy las F taki, że każde drzewo z F ma korzeń w wierzcho lku z S i jest to jedyny wierzcho lek z S w tym drzewie. Każda dź dowolnego drzewa lasu F w odleg lości nieparzystej od korzenia (wierzcho lka z S) należy do M. (Każdy wierzcho lek drzewa w odleg lości nieparzystej od korzenia ma stopień dwa). Takie wierzcho lki nazywamy wierzcho lkami wewne trznymi lasu, pozosta le zewne trznymi. Las F nazywamy M-przemiennym lasem. Rozpatrujemy sa siadów zewne trznych wierzcho lków. Niech pierwszym z nich be dzie x. Jeżeli istnieje y poza F be da cy sa siadem x, to ponieważ y nie należy do S, wie c y jest M-nasycony, a wie c istnieje z takie, że yz M. Wówczas powie kszamy las o dzie xy i yz. F = F + xy + yz jest wie kszym M-przemiennym lasem. Jeżeli sa siadem x jest wierzcho lek zewne trzny y innego drzewa lasu F, to istnieje M-zasilona ścieżka i możemy nasze skojarzenie powie kszyć. Jeżeli sa siadem x jest wierzcho lek zewne trzny y tego samego drzewa lasu F, to powstaje cykl nieparzysty d lugości 2k + 1 o k dziach z M. Jeżeli korzeń drzewa należy do tego cyklu to stosujemy bezpośrednio Twierdzenie 7.4 (przechodza c do drzewa na mniejszej liczbie wierzcho lków). W przeciwnym razie zmieniamy skojarzenie na jedynej ścieżce z korzenia do cyklu, dostaja c nowe skojarzenie, dla którego cykl spe lnia już za lożenia The Cycle Shrinking Lemma. Jeżeli każdy wierzcho lek zewne trzny ma jako sa siadów tylko wierzcho lki wewne trzne (lub nie ma już sa siadów), to nie istnieje M-zasilona ścieżka, czyli M jest skojarzeniem maksymalnym.

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ VI. semestr zimowy 2004/2005 6.1. Obchody Eulera. 6. OBCHODY EULERA. Szlak, który zawiera każda dź grafu G jest nazywany szlakiem Eulera grafu G. Obchód grafu G to skończony, domknie ty spacer przechodza cy przez każda dź G przynajmniej jeden raz. Obchód Eulera jest obchodem zawieraja cym każda dź grafu G dok ladnie jeden raz (jest to po prostu domknie ty szlak Eulera). Graf nazywamy eulerowskim (grafem Eulera) jeżeli zawiera obchód Eulera. Graf nazywamy pó leulerowskim jeżeli zawiera szlak Eulera. Twierdzenie 6.1. Niepusty spójny graf jest eulerowski wtedy i tylko wtedy, gdy nie posiada wierzcho lków o nieparzystym stopniu. Wniosek 6.1. Graf spójny ma szlak Eulera wtedy i tylko wtedy, gdy ma co najwyżej dwa wierzcho lki stopnia nieparzystego. 6.2. Problem Chińskiego Listonosza. Listonosz odbiera przesy lki z poczty, dostarcza je a naste pnie wraca na poczte. Musi oczywiście przejść przez każda ulice w swoim rejonie przynajmniej raz. Ze wzgle du na ten warunek pragnie wybrać obchód w taki sposób by jak najmniej spacerować. Powyższy problem znany jest jako,,problem chińskiego listonosza, od chińskiego matematyka Kuana, który go rozpatrywa l (1962). W grafie z wagami definiujemy wage obchodu v 0 e 1,v 1 e 2,...,e n v 0 22 Typeset by AMS-TEX

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ VI. 23 jako n i=1 w(e i). Oczywiście, problem chińskiego listonosza sprowadza sie do znalezienia obchodu o minimalnej wadze w spójnym grafie o nieujemnych wagach. Jeżeli G jest eulerowski, to obchód Eulera jest optymalny, ponieważ jest obchodem przechodza cym przez każda dź dok ladnie jeden raz. Problem chińskiego listonosza ma wówczas proste rozwia zanie, ponieważ istnieje prosty algorytm znajdowania obchodu Eulera w eulerowskim grafie. Algorytm Fleury ego Wybierz dowolny wierzcho lek v 0 i podstaw W 0 = v 0 Przypuśćmy, że szlak W i = v 0 e 1 v 1 e 2...e i v i zosta l wybrany. Wybierz dź e i+1 z E {e 1,e 2,...,e i } tak, by (i) e i+1 by la incydentna z v i (ii) e i+1 nie by la dzia cie cia grafu G i = G {e 1,...,e i } chyba, że nie ma innej alternatywy STOP jeżeli krok 2 nie może być wykonany. Algorytm Fleury ego konstruuje oczywiście szlak. Co wie cej prawdziwe jest twierdzenie: Twierdzenie 6.2. Jeżeli G jest grafem eulerowskim to dowolny szlak w G skonstruowany przy pomocy algorytmu Fleury ego jest obchodem Eulera grafu G. Jeżeli graf G nie jest eulerowski, to każdy obchód grafu G, w szczególności optymalny obchód,,,przechodzi po niektórych dziach wie cej niż jeden raz. Wprowadźmy operacje duplikowania dzi. O dzi e, o wadze w(e), mówimy, że zosta la zduplikowana, jeżeli jej końce po la czyliśmy nowa dzia o wadze w(e). Możemy przeformu lować problem Chińskiego Listonosza w naste puja cy sposób: dany jest graf G o nieujemnych wagach na dziach: (I) Znaleźć za pomoca duplikowania dzi eulerowski ważony nadgraf G grafu G taki, że e E(G ) E(G) w(e) (II) Znaleźć obchód Eulera w G. medskip jest najmniejsza z możliwych

24 SEMESTR ZIMOWY 2004/2005 Dla rozwia zania (II) mamy dobry algorytm Fleury ego. Efektywny algorytm rozwia zania (I) podali w 1973 Edmonds i Johnson. Niech V be dzie zbiorem wierzcho lków stopnia nieparzystego grafu G, a M zbiorem spacerów grafu G, które kojarza w pary wierzcho lki z V i ewentualnie cykli na wierzcho lkach stopnia parzystego. Zauważmy, że mamy zawsze parzysta ilość wierzcho lków stopnia nieparzystego i M = 1 2 V + # cykli. Oznaczmy przez graf G + (M) multigraf (graf z dziami wielokrotnymi) otrzymany z G poprzez duplikacje dzi spacerów i cykli z M, a dok ladniej zasta pienie każdej dzi grafu G wia zka k + 1 dzi o takiej samej wadze, jeżeli dź ta zosta la wykorzystana k razy w spacerach i cyklach z M (0 jeżeli nie by la ona wykorzystana). Latwo pokazać, że Twierdzenie 6.3. Dla dowolnego obchodu grafu G istnieje zbiór M spacerów grafu G kojarza cych wierzcho lki stopnia nieparzystego, i ewentualnie cykli na wierzcho lkach stopnia parzystego, taki że graf G + (M) zawiera obchód eulerowski odpowiadaja cy temu wyjściowemu obchodowi. Odpowiedniość ta polega na tym, że jeżeli wyjściowy obchód przechodzi l przez dź l razy, to w grafie G + (M) w miejscu tej dzi istnieje wia zka l dzi. Prawdziwe jest również twierdzenie odwrotne. Z powyższego twierdzenia wynika mie dzy innymi fakt, że dla optymalnego obchodu grafu G istnieje zbiór ścieżek M kojarza cych wierzcho lki stopnia nieparzystego w pary, takich że suma wag dzi tych ścieżek jest minimalna i obchód Eulera grafu G + (M) jest rozwia zaniem problemu chińskiego listonosza. W szczególnym przypadku, gdy graf G ma dok ladnie dwa wierzcho lki u i v stopnia nieparzystego rozwia zanie (I) sprowadza sie do znalezienia (u,v)-ścieżki o minimalnej wadze i duplikacji jej dzi. Algorytm rozwia zuja cy problem chińskiego listonosza Krok 1: Korzystaja c z algorytmu znajdowania najkrótszych ścieżek wyznaczamy macierz A V V, gdzie A ij jest waga najkrótszej ścieżki z v i do v j, v i,v j V ; Krok 2: Na podstawie macierzy A znajdujemy skojarzenie ścieżkowe M, zbiór ścieżek kojarza cych w pary wierzcho lki z V, takich że suma

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ VI. 25 wag dzi tych ścieżek jest minimalna (zauważmy, że w kroku tym szukamy optymalnego skojarzenia w grafie na zbiorze wierzcho lków V o macierzy wag A); Krok 3: Duplikujemy dzie z M. Stosujemy algorytm Fleury ego dla otrzymanego w ten sposób grafu G + (M). Zadanie. Znaleźć optymalny obchód - rozwia zanie problemu chińskiego listonosza, dla grafu danego macierza wag: W = 5 6 5 6 5 6 6 6 6 6 4 10 7 4 4 6 5 7 6 7 18 6 10 18 9 7 4 9

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ VII. semestr zimowy 2004/2005 7. CYKLE HAMILTONA. Ścieżka zawieraja ca każdy wierzcho lek grafu G jest nazywana ścieżka Hamiltona grafu G, podobnie, cykl Hamiltona jest to cykl, który zawiera każdy wierzcho lek grafu G. Graf jest hamiltonowski (Hamiltona) jeżeli zawiera cykl Hamiltona. W przeciwieństwie do grafów eulerowskich nie istnieje prosty warunek konieczny i dostateczny na to, aby graf by l hamiltonowski. Twierdzenie 7.1. (warunek konieczny) Jeżeli graf G jest hamiltonowski, to dla każdego niepustego podzbioru S zbioru wierzcho lków V ω(g S) S. Twierdzenie 7.2. (Dirac, 1952) Jeżeli graf G jest prosty, ν 3 oraz δ ν, to G jest hamiltonowski. 2 Lemat 7.2.1. Niech graf G be dzie grafem prostym na ν wierzcho lkach i za lóżmy, że u i v sa nieprzyleg lymi wierzcho lkami grafu G, dla których d G (u) + d G (v) ν. Wówczas G jest hamiltonowski wtedy i tylko wtedy, gdy G+uv jest hamiltonowski. Lemat 7.2.2. Oznaczmy przez C(G) graf otrzymany z grafu G poprzez kolejne la czenie dzia pary wierzcho lków nieprzyleg lych, których suma stopni (w danym momencie)jest wie ksza lub równa liczbie wierzcho lków ν aż do momentu kiedy takich par już nie ma. Wówczas C(G) jest dobrze określony. 26 Typeset by AMS-TEX

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ VII. 27 Twierdzenie 7.3. Graf prosty G jest hamiltonowski wtedy i tylko wtedy, gdy C(G) jest hamiltonowski. Wniosek 7.3.1. Niech graf G be dzie grafem prostym na ν, ν 3, wierzcho lkach. Jeżeli C(G) jest grafem pe lnym, to G jest hamiltonowski. Skierowane cykle Hamiltona w grafie skierowanym definiuje sie w analogiczny sposób. Algorytm Robertsa-Floresa Znajdowanie cyklu Hamiltona w grafie skierowanym. Budujemy macierz naste pników: kolumny macierzy odpowiadaja wierzcho lkom i zawieraja ich naste pniki w pewnej, na pocza tku ustalonej, kolejności. Rozpoczynamy z dowolnego wierzcho lka v. Bierzemy pierwszy doste pny (który jeszcze nie zosta l w la czony do zbioru S wierzcho lków budowanego cyklu) naste pnik z kolumny odpowiadaja cej v. Za lóżmy, że jest to wierzcho lek u. S := S {u}. Naste pnie bierzemy pierwszy doste pny naste pnik wierzcho lka u z kolumny odpowiadaja cej u, itd. Mamy naste puja ce możliwości: (i) Nie ma doste pnego naste pnika naste puje krok powrotu wyrzucamy z S ostatnio dodany wierzcho lek, wracamy do kolumny, z której zosta l on wybrany i bierzemy kolejny doste pny naste pnik; naste pnie bierzemy pierwszy doste pny jego naste pnik, itd. (oczywiście za każdym razem, gdy nie ma doste pnego naste pnika naste puje krok powrotu); (ii) Zbiór S ma już moc n czyli znaleliśmy już ścieżke Hamiltona H z v do w, gdzie w jest ostatnio dodanym do S wierzcho lkiem. Sprawdzamy, czy istnieje luk z w do v: jeśli TAK, to zapisujemy cykl Hamiltona H + vw i krok powrotu (lub STOP jeśli chcemy znaleźć tylko jeden cykl Hamiltona); jeśli NIE, to krok powrotu. Koniec naste puje, gdy powrócimy do wierzcho lka v i nie ma juz doste p- nych jego naste pników Przyk lad. Wyznaczyć za pomoca algorytmu Robertsa Floresa wszystkie cykle Hamiltona w grafie o macierzy przejść:

28 SEMESTR ZIMOWY 2004/2005 P = 1 1 1 1 1 1 1 1 1 1 1 1 Problem podróżuja cego komiwojażera. Podróżuja cy komiwojażer pragnie z lożyć wizyte w pewnych miastach i za lóżmy, że chce on powrócić do punktu startowego. Maja c dany czas podróży (koszt podróży) pomie dzy miastami, jak powinien u lożyć plan podróży aby wizytować miasta dok ladnie raz i aby ta podróż by la najkrótsza (najtańsza). W terminologii grafowej oznacza to szukanie cyklu Hamiltona o minimalnej wadze w ważonym grafie pe lnym. Nie istnieje efektywny algorytm rozwia zania tego problemu. Jedna z możliwości jest rozpocze cie od pewnego cyklu Hamiltona i szukanie innego o mniejszej wadze poprzez modyfikacje wyjściowego cyklu. Poniżej przedstawimy dwa algorytmy rozwia zuja ce problem we druja cego komiwojażera w przypadku, gdy nie musi on wrócić do punktu startowego. Innymi s lowy, interesować nas be dzie znalezienie optymalnej ścieżki hamiltonowskiej czyli rozpie tej ścieżki o minimalnej wadze w ważonym grafie pe lnym. Możemy wówczas rozpatrywać dwa, jak sie za chwile okaże równoważne, problemy: Zadanie A. Znalezienie optymalnej ścieżki Hamiltona w grafie z wagami. Zadanie B. Znalezienie optymalnej ścieżki Hamiltona mie dzy ustalonymi wierzcho lkami w grafie z wagami. Rozwia zanie zadania A (metoda przeszukiwania wszystkich przypadków). Znajdujemy optymalne drzewo rozpie te T (algorytm Kruskala) grafu G o macierzy wag W. Jeżeli nie istnieje wierzcho lek stopnia wie kszego od dwóch, to STOP - znalezione drzewo jest szukana optymalna ścieżka H. Jeżeli v jest taki, że d(v) > 2 i e 1,e 2,...,e k sa dziami wychodza cymi z v, to przechodzimy do rozpatrywania naszego zadania dla grafów: G 1,G 2,...,G k,

ALGORYTMY TEORII GRAFÓW (AGR 320). CZE ŚĆ VII. 29 gdzie macierz wag grafu G i powstaje z macierzy wag W poprzez zasta pienie wagi dzi e i nieskończonościa, i = 1,2...,k. (Zauważmy, że żadna iteracja nie może zmniejszyć wagi rozpie tego drzewa) Przyk lad. Wyznaczyć za pomoca algorytmu Kruskala optymalna ścieżke Hamiltona w grafie o macierzy wag: W = 4 10 18 5 10 4 12 8 2 6 10 12 4 18 16 18 8 4 14 6 5 2 18 14 16 10 6 16 6 16 Twierdzenie 7.4. Niech graf G dany be dzie macierza wag W = [w ij ], a graf G macierza wag W = [wij ], gdzie w 12 = w 12 + 2K, w 21 = w 21 + 2K, w 1j = w 1j + K, w j1 = w j1 + K, w 2j = w 2j + K, w j2 = w j2 + K, dla j 1 i j 2 oraz w ij = w ij dla pozosta lych i i j. Wówczas dla dostatecznie dużej sta lej K (na przyk lad dla K V (G) max{w ij ;w ij < }) rozwia zanie zadania A (ścieżka Hamiltona) o wadze mniejszej od 3K dla grafu G jest rozwia zaniem zadania B (znalezienie optymalnej ścieżki Hamiltona mie dzy wierzcho lkami v 1 i v 2 ) dla grafu G. Jeżeli optymalna ścieżka Hamiltona w grafie G ma wage wie ksza od 3K, to nie ma optymalnej ścieżki Hamiltona mie dzy wierzcho lkami v 1 i v 2 w grafie G. Twierdzenie 7.5. Niech graf G dany be dzie macierza wag W = [w ij ]. Utwórzmy z grafu G nowy graf G poprzez dodanie dwóch nowych wierzcho lków u i v po la czonych ze wszystkimi wierzcho lkami grafu G dziami o identycznej wadze w. Wówczas rozwia zanie zadania B (znalezienie optymalnej ścieżki Hamiltona mie dzy wierzcho lkami u i v) dla grafu G jest rozwia zaniem zadania A dla grafu G.

30 SEMESTR ZIMOWY 2004/2005 Twierdzenie 7.6. (nagradzanie i karanie wierzcho lków) Niech graf G dany be dzie macierza wag W = [w ij ], a graf G macierza wag W = [w ij ], gdzie w ij = w ij + p(i) + p(j), gdzie p( ) jest dowolnym wektorem n wymiarowym (n = V (G) ) liczb rzeczywistych. Wówczas rozwia zanie zadania B dla grafu G jednoznacznie wyznacza rozwia zanie zadania B (dla tych samych wierzcho lków końcowych ścieżki Hamiltona) dla grafu G. Znajdujemy optymalne drzewo rozpie te za pomoca algorytmu Kruskala. Jeżeli uzyskane optymalne drzewo jest ścieżka, to STOP. W przeciwnym razie korzystaja c z Twierdzenia 6.6 nagradzamy wierzcho lki stopnia 1 stosuja c p( ) ujemne (z wyja tkiem dwóch ustalonych maja cych być końcami optymalnej ścieżki H Zadanie B) karzemy wierzcho lki stopnia > 2 stosuja c p( ) dodatnie. Powtarzamy procedure dla otrzymanego grafu G Przyk lad. Wyznaczyć za pomoca algorytmu karania i nagradzania wierzcho lków optymalna ścieżke Hamiltona mie dzy wierzcho lkami 8 i 9 w grafie o macierzy wag: W = 0 28 31 28 22 36 50 67 40 74 28 0 31 40 41 64 74 80 63 101 31 31 0 14 53 53 53 50 42 83 28 40 14 0 50 41 39 41 28 69 22 41 53 50 0 40 61 86 53 78 36 64 53 41 40 0 24 58 22 39 50 74 53 39 61 24 0 37 11 30 67 80 50 41 86 58 37 0 36 60 40 63 42 28 53 22 11 36 0 41 74 101 83 69 78 39 30 60 41 0