Elementy teorii grafów, sposoby reprezentacji grafów w komputerze

Podobne dokumenty
Elementy teorii grafów, sposoby reprezentacji grafów w komputerze

Algorytmy i struktury danych

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

10a: Wprowadzenie do grafów

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

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

Teoria grafów i sieci 1 / 58

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Podstawowepojęciateorii grafów

Teoria grafów i jej zastosowania. 1 / 126

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow. Digrafy. Porz dki cz ±ciowe * Euler i Hamilton. Turnieje

Grafy i Zastosowania. 1: Wprowadzenie i poj cia podstawowe. c Marcin Sydow. Wprowadzenie. Podstawowe poj cia. Operacje na grafach.

Podstawowe algorytmy grafowe i ich zastosowania

c Marcin Sydow Wst p Grafy i Zastosowania Wierzchoªki 8: Kolorowanie Grafów Mapy Kraw dzie Zliczanie Podsumowanie

Podstawowe algorytmy grafowe i ich zastosowania

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

Wykªad 1. Wprowadzenie do teorii grafów

Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw

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

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

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

c Marcin Sydow Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie

Elementy geometrii analitycznej w przestrzeni

Najkrótsze drogi w grafach z wagami

Minimalne drzewa rozpinaj ce

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Metody dowodzenia twierdze«

c Marcin Sydow Podstawy Grafy i Zastosowania Kod Prüfera 3: Drzewa Drzewa ukorzenione * Drzewa binarne Zastosowania Podsumowanie

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Metodydowodzenia twierdzeń

Najkrótsze drogi w grafach z wagami

Wektory w przestrzeni

Wykªad 4. Droga i cykl Eulera i Hamiltona

Listy i operacje pytania

Egzaminy i inne zadania. Semestr II.

Minimalne drzewo rozpinaj ce

Zbiory i odwzorowania

Grafy i Zastosowania. 11: Twierdzenia Minimaksowe. c Marcin Sydow. Wst p: Tw. Halla. Dualno± Zbiory niezale»ne. Skojarzenia c.d.

Geometria Algebraiczna

Teoria grafów i sieci 1 / 188

Wykªad 4. Funkcje wielu zmiennych.

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Minimalne drzewo rozpinaj ce

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

TEORIA GRAFÓW. Graf skierowany dla ka»dej kraw dzi (oznaczanej tutaj jako ªuk) para wierzchoªków incydentnych jest par uporz dkowan {u, v}.

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

c Marcin Sydow Grafy i Zastosowania BFS DFS 4: Przeszukiwanie Grafów (BFS, DFS i zastosowania) DFS nieskierowane DFS skierowane Podsumowanie

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Podstawy matematyki dla informatyków

Matematyczne podstawy kognitywistyki

TEORIA GRAFÓW I SIECI

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

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Przekroje Dedekinda 1

Elementy geometrii w przestrzeni R 3

r = x x2 2 + x2 3.

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Egzaminy i inne zadania. Semestr II.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

Podstawy modelowania w j zyku UML

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Algorytmiczna teoria grafów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.

Ukªady równa«liniowych

Algorytmy i Struktury Danych

2 Podstawowe obiekty kombinatoryczne

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Programowanie wspóªbie»ne

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

MiASI. Modelowanie integracji systemów. Piotr Fulma«ski. 26 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

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

Metody numeryczne i statystyka dla in»ynierów

Lab. 02: Algorytm Schrage

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Stereometria (geometria przestrzenna)

Graf. Definicja marca / 1

Matematyczne Podstawy Informatyki

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

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

Rachunek zda«. Relacje. 2018/2019

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Po co planowanie? Planowanie projektu. Najcz stsz przyczyn niepowodzenia projektów jest brak czasu.

Zadania z PM II A. Strojnowski str. 1. Zadania przygotowawcze z Podstaw Matematyki seria 2

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Szeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Kodowanie i dekodowanie

Wska¹niki, tablice dynamiczne wielowymiarowe

Programowanie i struktury danych 1 / 44

Podzbiory Symbol Newtona Zasada szuadkowa Dirichleta Zasada wª czania i wyª czania. Ilo± najkrótszych dróg. Kombinatoryka. Magdalena Lema«ska

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Transkrypt:

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania 4.1.1 Programu Operacyjnego Kapitaª Ludzki 1 / 64

Wst p Graf, intuicyjnie rozumiany jako obiekt skªadaj cy si z wierzchoªków i ª cz cych je kraw dzi (dokªadniejsza denicja za chwil ): jest prostym kombinatorycznym modelem opisuj cym rozmaite rzeczywiste sytuacje. 2 / 64

Modelowanie rzeczywisto±ci Elementy danego zagadnienia modelowanego za pomoc grafu na ogóª w naturalny sposób podzielone s na dwie kategorie: Miejsca na pªaszczy¹nie/w przestrzeni, zjawiska, procesy... = wierzchoªki; Poª czenia, powi zania, zale»no±ci mi dzy obiektami reprezentowanymi przez wierzchoªki... = kraw dzie. 3 / 64

Zastosowania teorii grafów Przykªady poª cze«zycznych: sie drogowa, kolejowa, lotnicza... (zagadnienia transportowe, GPS), pomieszczenia, korytarze w budynkach... (m.in. gry komputerowe), sieci energetyczne, sieci komputerowe, itp. 4 / 64

Zastosowania teorii grafów Przykªady poª cze«logicznych: obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe), nast pstwo czasowe procesów, relacje (w sensie matematycznym), relacje mi dzy lud¹mi, pracownicy przepªyw zada«, struktura organizacji, przydziaª zasobów, itp. 5 / 64

Zastosowania, cele Mo»na ±miaªo zaryzykowa stwierdzenie,»e wspóªcze±nie wªa±ciwie ka»dego dnia stykamy si z urz dzeniami, aplikacjami, które w po±redni lub bezpo±redni sposób korzystaj z poj teorii grafów. Celem tej serii wykªadów jest omówienie szeregu algorytmów grafowych, czyli algorytmów do których wej±ciem s dane reprezentuj ce dany graf G, a które odpowiadaj na pewne pytania natury kombinatorycznej zwi zane z G. 6 / 64

Cel wykªadu Aby dobrze rozumie zagadnienia zwi zane z grafami i algorytmy grafowe nale»y sformalizowa poj cie grafu i poj cia z nim zwi zane; opisa pewne kombinatoryczne fakty dotycz ce grafów (tym zajmuje si teoria grafów); ponadto, nale»y przedyskutowa sposób reprezentowania grafów w komputerze. Powy»szymi zagadnieniami zajmiemy si na tym wykªadzie. Ograniczymy si do poj i faktów niezb dnych w wybranych algorytmach grafowych. 7 / 64

Graf niezorientowany Denicja Graf niezorientowany (nieskierowany) to para G = (V, E) zbiorów sko«czonych: V nazywany zbiorem wierzchoªków (w zªów) G, E { {u, v} : u, v V, u v} nazywany zbiorem kraw dzi G. 8 / 64

Graf niezorientowany Denicja Graf niezorientowany (nieskierowany) to para G = (V, E) zbiorów sko«czonych: V nazywany zbiorem wierzchoªków (w zªów) G, E { {u, v} : u, v V, u v} nazywany zbiorem kraw dzi G. Przykªad. 1 2 3 4 5 6 Powy»szy diagram przedstawia graf G = (V, E), gdzie V = {1, 2, 3, 4, 5, 6}, E = { {1, 2}, {5, 1}, {1, 4}, {4, 5}, {2, 5}, {5, 3}, {6, 5} }. 8 / 64

Graf niezorientowany Denicja Graf niezorientowany (nieskierowany) to para G = (V, E) zbiorów sko«czonych: V nazywany zbiorem wierzchoªków (w zªów) G, E { {u, v} : u, v V, u v} nazywany zbiorem kraw dzi G. Przykªad. Czasem wygodnie jest nada kraw dziom etykiety: e 1 1 2 e 3 e 5 3 e e 6 2 e 4 e 7 Wówczas G = (V, E), V = {1, 2, 3, 4, 5, 6}, 4 5 6 E = { e 1, e 2, e 3, e 4, e 5, e 6, e 7 }, gdzie e 1 = {1, 2}, e 2 = {5, 1}, itp. 9 / 64

Graf niezorientowany Uwagi. Zwró my uwag,»e formalnie ka»da kraw d¹ to zbiór dwuelementowy, wi c zapis e 1 = {1, 2} jest równowa»ny e 1 = {2, 1}, gdy» w zbiorach kolejno± jest nieistotna ({1, 2} = {2, 1}). Graf G jest w peªni zakodowany przez zestaw danych (V, E). Rysunek grafu jest tylko wizualizacj kombinatorycznego obiektu G. Nie nale»y zatem uto»samia grafu G z jego wizualizacj, gdy» dany graf mo»e mie wiele ró»nych gracznych prezentacji. Za wierzchoªki zazwyczaj przyjmujemy kolejne liczby naturalne, ale denicja tego nie wymaga. Równie dobrze mo»emy wzi litery alfabetu b d¹ dowolne symbole. 10 / 64

Graf niezorientowany Przykªad. Poni»sze dwa rysunki v w u x oraz v x w u s ró»nymi wizualizacjami tego samego grafu G = (V, E), gdzie V = {v, w, u, x}, E = { {v, w}, {v, u}, {u, w}, {x, u}}. 11 / 64

Graf niezorientowany Kolejny przykªad. Rozwa»my graf G 1 4 6 2 3 5 7 czyli G = (V, E), gdzie V = {1, 2, 3, 4, 5, 6, 7}, E = { {1, 2}, {2, 3}, {1, 3}, {4, 5}, {6, 5} }. Jak widzimy, graf nie musi by w jednym kawaªku. Doprecyzujemy t nieformaln obserwacj w dalszej cz ±ci (poj cia spójno±ci, spójnej skªadowej,...). 12 / 64

Orientacja kraw dzi W grae niezorientowanym wierzchoªki deniuj ce kraw d¹ e = {v, w} s nierozró»nialne. Cz sto w modelowanym zjawisku zachodzi potrzeba wyró»nienia jednego z wierzchoªków, np. v, jako pocz tku i drugiego jako ko«ca kraw dzi i traktowania kraw dzi jako pary uporz dkowanej (v, w). Prowadzi to do denicji grafu zorientowanego (in. skierowanego). W gracznych prezentacjach zamiast linii rysujemy zazwyczaj strzaªki (zwane ªukami) o zwrocie od wierzchoªka v do w. Uwaga Przypomnijmy,»e {v, w} = {w, v}, ale (v, w) (w, v), o ile v w. 13 / 64

Graf zorientowany Denicja Graf zorientowany (skierowany) to para G = (V, E) zbiorów sko«czonych: V nazywany zbiorem wierzchoªków (w zªów) G, E { (u, v) : u, v V } = V V nazywany zbiorem kraw dzi (in. ªuków lub strzaªek) G. 14 / 64

Graf zorientowany Denicja Graf zorientowany (skierowany) to para G = (V, E) zbiorów sko«czonych: V nazywany zbiorem wierzchoªków (w zªów) G, E { (u, v) : u, v V } = V V nazywany zbiorem kraw dzi (in. ªuków lub strzaªek) G. Przykªad. 1 2 3 4 5 6 Powy»szy diagram przedstawia graf G = (V, E), gdzie V = {1, 2, 3, 4, 5, 6}, E = { (1, 2), (2, 1), (1, 5), (1, 4), (4, 5), (2, 5), (5, 3), (5, 6) }. 14 / 64

Graf zorientowany Podobnie jak w przypadku niezorientowanym, mo»na etykietowa ªuki. Zauwa»my,»e denicja grafu zorientowanego dopuszcza sytuacj, gdy pomi dzy par wierzchoªków s dwa (przeciwnie skierowane) ªuki: Ale sytuacja nie jest dopuszczona w przyj tej denicji! W denicji grafu zorientowanego dopuszczamy ªuki postaci (v, v). Nazywamy je p tlami (zaczepionymi w wierzchoªku v). 15 / 64

Wierzchoªki i kraw dzie Ustalmy graf niezorientowany G = (V, E) (dla grafu zorientowanego denicje analogiczne). Denicja wierzchoªki u, v V s s siednie, gdy {u, v} E, kraw dzie e 1, e 2 E s s siednie, gdy e 1 e 2 (maj wspólny wierzchoªek), wierzchoªek v V jest incydentny z kraw dzi e E (lub: kraw d¹ e jest incydentna z wierzchoªkiem v), gdy v e. Ponadto dla kraw dzi e = {u, v} E, u i v nazywamy ko«cami e (czyli e jest incydentna z w w jest jednym z ko«ców e), gdy G jest zorientowany, to dla kraw dzi e = (u, v) E (oznaczanej czasem e = u v), u nazywamy pocz tkiem, a v ko«cem e; mówimy wówczas,»e e jest kraw dzi wychodz c z u i wchodz c do v. 16 / 64

Wierzchoªki i kraw dzie Denicja Stopniem wierzchoªka v V nazywamy liczb deg G (v) := #{e E : v e} tj. liczb kraw dzi incydentnych z wierzchoªkiem v. Gdy G jest grafem zorientowanym to rozró»nia si stopie«wyj±ciowy wierzchoªka v V : out.deg G (v) = deg + (v) := #{w V : v w E} G oraz stopie«wej±ciowy wierzchoªka v V : in.deg G (v) = deg (v) := #{u V : u v E}. G 17 / 64

Denicja Drogi Droga w grae niezorientowanym G = (V, E) ci g wierzchoªków i kraw dzi P = (v 0, e 1, v 1, e 2, v 2,..., e k, v k ), v i V, e j E, k 0, taki,»e e j = {v j 1, v j }. Denicja Droga w grae zorientowanym G = (V, E) ci g wierzchoªków i kraw dzi P = (v 0, e 1, v 1, e 2, v 2,..., e k, v k ), v i V, e j E, k 0, taki,»e e j = (v j 1, v j ). W obu przypadkach (zorientowanym lub nie) dopuszczamy drogi trywialne postaci P = (v 0 ), v 0 V, liczb k nazywamy dªugo±ci drogi, v 0 pocz tek, v k koniec drogi P (mówimy,»e P jest drog z v 0 do v k ). 18 / 64

Uwaga Drogi Zauwa»my,»e w obu przypadkach (zorientowanym i nie), droga P = (v 0, e 1, v 1, e 2, v 2,..., e k, v k ) jest jednoznacznie wyznaczona przez ci g swoich wierzchoªków, dlatego cz sto piszemy skrótowo P = (v 0, v 1,..., v k ). Przykªad. Graf niezorientowany 1 2 3 4 5 6 Na diagramie zaznaczyli±my drog P = (1, {1, 2}, 2, {2, 5}, 5, {5, 6}, 6) (lub skrótowo P = (1, 2, 5, 6)). 19 / 64

Uwaga Drogi Zauwa»my,»e w obu przypadkach (zorientowanym i nie), droga P = (v 0, e 1, v 1, e 2, v 2,..., e k, v k ) jest jednoznacznie wyznaczona przez ci g swoich wierzchoªków, dlatego cz sto piszemy skrótowo P = (v 0, v 1,..., v k ). Przykªad. Graf zorientowany 1 2 3 4 5 6 P = (1, (1, 2), 2, (2, 1), 1, (1, 5), 5, (5, 3), 3) (lub skrótowo P = (1, 2, 1, 5, 3)). 20 / 64

Cykle i drogi proste Denicja Niech P = (v 0, e 1, v 1, e 2, v 2,..., e k, v k ) b dzie drog w grae (zorientowanym lub nie). Wówczas je»eli v i v j dla ka»dych 0 i j k, to P nazywamy drog prost, je»eli v 0 = v k i k > 0 to P nazywamy drog zamkni t lub cyklem gdy dodatkowo vi vj oraz ei ej dla ka»dych 1 i j k, to cykl P nazywamy cyklem prostym. Uwaga Cz sto w literaturze u»ywa si nazwy cykl w znaczeniu cykl prosty. 21 / 64

Przykªady. Cykle i drogi proste 1 2 3 4 5 6 Droga P = (1, 2, 5, 6) jest drog prost. 1 2 3 4 5 6 Droga P = (1, 2, 5, 1) jest cyklem prostym. 22 / 64

Przykªady. Cykle i drogi proste 1 2 3 4 5 6 Droga P = (1, 2, 5, 1, 2, 5, 1) (nawini ta dwa razy) jest cyklem, ale nie jest cyklem prostym. 1 2 3 4 5 6 Droga P = (1, 2, 1, 5, 3) nie jest drog prost. 23 / 64

Drogi niezorientowane Niech G = (V, E) b dzie grafem zorientowanym. Denicja Droga niezorientowana w grae G = (V, E) ci g W = (v 0, e 1, v 1, e 2, v 2,..., e k, v k ), v i V, e j E, k 0, taki,»e e j = (v j 1, v j ) lub e j = (v j, v j 1 ). Uwaga W grae zorientowanym ka»da droga jest drog niezorientowan, ale nie na odwrót! 24 / 64

Drogi niezorientowane Przykªad. 1 2 3 4 5 6 Droga niezorientowana W = (1, (1, 4), 4, (4, 5), 5, (2, 5), 2). Zauwa»my,»e ci g wierzchoªków nie zawsze wyznacza jednoznacznie drog niezorientowan! Na powy»szym grae mamy dwie ró»ne niezorientowane drogi: (1, (1, 2), 2) oraz (1, (2, 1), 2). 25 / 64

Spójno± Denicja Graf niezorientowany G = (V, E) jest spójny, o ile dla ka»dych u, v V istnieje droga P z u do v. Denicja Graf zorientowany G = (V, E) jest sªabo spójny, o ile dla ka»dych u, v V istnieje droga niezorientowana P z u do v. Denicja Graf zorientowany G = (V, E) jest silnie spójny, o ile dla ka»dych u, v V istnieje droga P z u do v. 26 / 64

Spójno± Przykªady. Graf spójny: 1 2 3 4 5 6 Graf niespójny: 1 4 6 2 3 5 7 27 / 64

Spójno± Przykªady. Graf sªabo spójny ale nie silnie spójny: 1 2 3 4 5 6 Graf silnie spójny: 1 2 3 Uwaga Graf zorientowany, który jest silnie spójny, jest te» sªabo spójny. 28 / 64

Podgraf Denicja Graf H = (V, E ) nazywamy podgrafem grafu G = (V, E), o ile V V oraz E E. Denicja Podgraf H = (V, E ) grafu G = (V, E) nazywamy peªnym, o ile u,v V {u, v} E {u, v} E lub w wersji zorientowanej u,v V (u, v) E (u, v) E. 29 / 64

Przykªad. Graf G : Podgraf 1 2 3 4 5 6 Podgraf grafu G : 1 2 4 5 Podgraf peªny grafu G : 1 2 4 5 30 / 64

Podgraf Zauwa»my,»e podgraf peªny H = (V, E ) grafu G = (V, E) jest w peªni wyznaczony przez zbiór swoich wierzchoªków V. Dlatego mówimy,»e H jest peªnym podgrafem grafu G indukowanym przez wierzchoªki ze zbioru V. Zatem graf G ma tyle peªnych podgrafów, ile jest podzbiorów zbioru V, czyli 2 V (wliczaj c podgraf pusty i caªy graf G, który te» jest oczywi±cie swoim podgrafem peªnym). Dowolnych podgrafów jest na ogóª sporo wi cej. 31 / 64

Skªadowe spójno±ci Ustalmy graf niezorientowany G = (V, E). Denicja Mówimy,»e v V jest osi galny z u V, gdy w G istnieje droga P z u do v. Obserwacja Denicja Jest osi galny jest relacj zwrotn, symetryczn i przechodni, czyli relacj równowa»no±ci w V. Zatem relacja ta rozbija zbiór V na klasy abstrakcji. Spójn skªadow (inaczej skªadow spójno±ci) w grae G nazywamy peªny podgraf grafu G o wierzchoªkach z dowolnej klasy abstrakcji relacji jest osi galny. 32 / 64

Skªadowe spójno±ci Innymi sªowy: spójna skªadowa jest maksymalnym spójnym podgrafem peªnym grafu G. Wniosek Graf G jest spójny posiada tylko jedn spójn skªadow. W poni»szym grae mamy 3 spójne skªadowe (zaznaczone ró»nymi kolorami). 1 4 6 2 3 5 7 33 / 64

Silnie spójne skªadowe Ustalmy graf zorientowany G = (V, E). Relacja jest osi galny deniowana jak dla grafu niezorientowanego (v V jest osi galny z u V, gdy w G istnieje droga P z u do v), nie jest symetryczna! Nie mo»e wi c by mowy o klasach abstrakcji. Ale mo»emy zdeniowa poj cie silnej skªadowej spójno±ci nast puj co: Denicja Peªny podgraf H grafu G, który jest maksymalny i silnie spójny nazywamy silnie spójn skªadow grafu G. Czasem rozwa»a si te» poj cie sªabo spójnej skªadowej, deniowanej przy pomocy osi galno±ci przez drogi niezorientowane (lub równowa»nie, jako maksymalny peªny podgraf sªabo spójny). 34 / 64

Przykªad. Graf Silnie spójne skªadowe 1 2 3 4 posiada dwie silnie spójne skªadowe: 1 2 4 oraz: 3 35 / 64

Graf peªny Denicja Graf peªny G = (V, E) to graf niezorientowany taki,»e dla ka»dych u, v V, {u, v} E (gdy V = {1, 2,..., n}, to G oznaczamy K n ). Przykªady. K 1 : 1 K 2 : 1 2 K 3 : 1 2 3 K 4 : 1 2 3 4 36 / 64

Denicja Graf dwudzielny Graf niezorientowany G = (V, E) nazywamy dwudzielnym, je»eli istnieje podziaª V na dwa rozª czne niepuste podzbiory V 1, V 2 (tj. V 1 V 2 = V ) taki,»e {u,v} E [(u V 1 v V 2 ) (v V 1 u V 2 )]. Denicja Graf G = (V, E) nazywamy peªnym dwudzielnym, je»eli istnieje podziaª V na dwa rozª czne niepuste podzbiory V 1, V 2 (tj. V 1 V 2 = V ) taki,»e u V1 v V2 {u, v} E. 37 / 64

Graf dwudzielny Przykªad. Graf dwudzielny: 1 2 5 3 4 Podziaª V = V 1 V 2, gdzie V 1 = {1, 3}, V 2 = {2, 4, 5}. Powy»szy graf nie jest grafem peªnym dwudzielnym (przy tym podziale brakuje kraw dzi {1, 5} i {3, 2}). Rozwa»a si równie» grafy dwudzielne w przypadku zorientowanym, my jednak nie b dziemy potrzebowa tego poj cia. 38 / 64

Drzewa W tym rozdziale rozwa»amy tylko grafy niezorientowane. Denicja Graf acykliczny = graf nie zawieraj cy cykli prostych. Denicja Drzewo (drzewo wolne) = graf spójny i acykliczny. Denicja Las = graf acykliczny. Nazwa las wzi ªa si z tego,»e spójne skªadowe grafu acyklicznego s drzewami (tak wi c las skªada si z drzew). 39 / 64

Drzewa Przykªad. Poni»szy graf nie jest drzewem, gdy» zawiera cykl: 1 2 3 4 5 6 Poni»szy graf nie jest drzewem, gdy» jest niespójny (ale jest lasem): 1 2 3 4 5 6 7 40 / 64

Drzewa Przykªad. Drzewo: 1 2 3 4 5 6 41 / 64

Charakteryzacja drzew Twierdzenie G = (V, E) graf niezorientowany. Nast puj ce warunki s równowa»ne: G jest drzewem, dla ka»dych u, v V istnieje dokªadnie jedna droga P z u do v, G jest spójny, a po usuni ciu dowolnej kraw dzi nie jest spójny, G jest spójny i E = V 1, G jest acykliczny i E = V 1, G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw dzi powstaªy graf posiada cykl. 42 / 64

Denicja Drzewa z korzeniem Drzewo z korzeniem = para (T, r), gdzie T = (V, E) jest drzewem, a r V wyró»nionym wierzchoªkiem, zwanym korzeniem. Przykªad. Drzewo z korzeniem (T, 5): 1 2 3 7 4 5 6 Drzewo z korzeniem (T, 1): 1 2 3 7 4 5 6 43 / 64

Drzewa z korzeniem Przyj ªo si rysowa korze«na górze a pozostaªe wierzchoªki poziomami. Drzewo (T, 1) z poprzedniego slajdu zgodnie z t konwencj : 1 2 5 3 4 6 7 Na przykªadzie powy»szego grafu zilustrujemy szereg prostych poj zwi zanych z drzewami z korzeniem, bez ich precyzyjnego deniowania. 44 / 64

Drzewa z korzeniem 1 2 5 3 4 6 7 Przodkami (in.poprzednikami) wierzchoªka 6 s wierzchoªki 5 i 1. Potomkami (in. nast pnikami) wierzchoªka 5 s wierzchoªki 3, 4, 6, 7. 45 / 64

Drzewa z korzeniem 1 2 5 3 4 6 7 Ojcem (in.bezpo±rednim poprzednikiem) wierzchoªka 6 jest wierzchoªek 5. Synami (in. bezpo±rednimi nast pnikami) wierzchoªka 5 s wierzchoªki 3, 4, 6. 46 / 64

Drzewa z korzeniem 1 2 5 3 4 6 7 Bratem wierzchoªka 5 jest wierzchoªek 2. Stopie«wierzchoªka = liczba synów, Li± mi drzewa (T, 1) s wierzchoªki 2, 3, 4, 7 (wszystkie wierzchoªki o stopniu 0). 47 / 64

Drzewa z korzeniem 1 2 5 3 4 6 Gª boko± (poziom) wierzchoªka v = dªugo± drogi (jedynej! patrz twierdzenie) od r do v (ozn. h(v)), np. h(1) = 0, h(7) = 3, h(5) = 1, 7 48 / 64

Drzewa z korzeniem 1 2 5 3 4 6 Wysoko± drzewa = h(t ) = h(t, r) := max{h(v) : v V }. Zatem h(t ) = 3 dla powy»szego drzewa (T, 1). 7 49 / 64

Denicja Drzewa Drzewo binarne = drzewo z korzeniem (T, r), w którym ka»dy wierzchoªek ma stopie«2 (wyró»niony lewy i prawy syn). W drzewie binarnym, je»eli dany wierzchoªek ma tylko jednego syna, trzeba ustali, czy jest lewy czy prawy. Denicja Poddrzewo o korzeniu x drzewa (T, r) = peªny podgraf grafu T indukowany przez wierzchoªek x i wszystkich potomków x. Lewe (odp. prawe) poddrzewo drzewa binarnego (T, r) = poddrzewo drzewa T o korzeniu b d cym lewym (odp. prawym) synem korzenia r. 50 / 64

Reprezentacja grafu Przez reprezentacj grafu (w komputerze) rozumiemy sposób zakodowania kombinatorycznego obiektu, jakim jest graf w postaci zestawu danych w programie komputerowym. Istnieje kilka ró»nych sposobów reprezentacji grafu, ka»da z nich ma swoje wady i zalety. Ró»ni si m.in.: rozmiarem zajmowanej pami ci, czasem wykonywania zapyta«i operacji modykuj cych, stopniem trudno±ci implementacji. 51 / 64

Reprezentacja grafu Wybór odpowiedniego sposobu jest mocno uzale»niony m.in. od: rozwa»anego algorytmu (jakie operacje na grae b dziemy wykonywa najcz ±ciej), rodzaju grafów, które b d analizowane przez algorytm. Nale»y starannie przemy±le wybór struktury, gdy» od niego b dzie zale»aªa zªo»ono± obliczeniowa, pami ciowa algorytmu jak i ªatwo± implementacji. Zakªadamy,»e czytelnik zna elementarne (statyczne i dynamiczne) struktury danych wybranego j zyka programowania. 52 / 64

Macierz s siedztwa Ustalmy graf G = (V, E), V = {1, 2,..., n}. Macierz (tablica) s siedztwa: macierz A = A(G) M n n (Z) o wspóªczynnikach: { 0, {i, j} / E, A i,j = 1, {i, j} E, lub w wersji zorientowanej: A i,j = { 0, (i, j) / E, 1, (i, j) E. 53 / 64

Macierz s siedztwa Przykªad. 1 2 3 4 5 6 Ai,j 1 2 3 4 5 6 1 0 1 0 1 1 0 2 1 0 0 0 1 0 3 0 0 0 0 1 0 4 1 0 0 0 1 0 5 1 1 1 1 0 1 6 0 0 0 0 1 0 Dla grafu niezorientowanego jest to macierz symetryczna (ka»da kraw d¹ odpowiada dwóm 1-kom w macierzy) z zerami na przek tnej. 54 / 64

Macierz s siedztwa Przykªad. 1 2 3 4 5 6 Ai,j 1 2 3 4 5 6 1 0 1 0 1 1 0 2 1 0 0 0 1 0 3 0 0 0 0 0 0 4 0 0 0 0 1 0 5 0 0 1 0 0 1 6 0 0 0 0 0 0 Dla grafu zorientowanego macierz s siedztwa na ogóª nie jest symetryczna (ka»da kraw d¹ odpowiada jednej 1-ce w macierzy). Niekoniecznie zawsze zera na przek tnej. 55 / 64

Macierz s siedztwa Zalety: operacja zapytania: czy wierzchoªki i, j V s s siednie (tj. czy istnieje kraw d¹ {i, j} E lub, w wersji zorientowanej, ªuk (i, j) E )? realizowana w czasie staªym (odczyt pozycji (i, j) z tablicy), ªatwo± implementacji. Wady: du»e zu»ycie pami ci: O( V 2 ), trzymamy niepotrzebnie mnóstwo zer (zwªaszcza dla grafów rzadkich, tj. maj cych stosunkowo niewiele kraw dzi w porównaniu do liczby wierzchoªków). 56 / 64

Listy s siedztwa Ustalmy graf G = (V, E), V = {1,..., n}. Listy s siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do (dynamicznej) listy s siadów wierzchoªka i. Przypomnienie: gdy G niezorientowany, j jest s siadem i {i, j} E ; gdy G zorientowany, j jest s siadem i (i, j) E. Dynamiczne listy mo»na zaimplementowa r cznie, przy wykorzystaniu wska¹ników, lub skorzysta z gotowych struktur, np. vector biblioteki STL j zyka C++: http://www.cplusplus.com/reference/vector/vector/ 57 / 64

Listy s siedztwa Przykªad. 1 2 3 4 5 6 L[i] 1 2 5 4 2 1 5 3 5 4 1 5 5 4 1 2 3 6 6 5 Znak powy»ej symbolizuje wska¹nik. Kolejno± s siadów w listach na ogóª nie jest istotna. 58 / 64

Listy s siedztwa Przykªad. 1 2 3 4 5 6 L[i] 1 2 5 4 2 1 5 3 4 5 5 3 6 6 Znak powy»ej symbolizuje wska¹nik. Kolejno± s siadów w listach na ogóª nie jest istotna. 59 / 64

Listy s siedztwa Zalety: wygodna i szybka realizacja zapytania: zwró list wszystkich s siadów wierzchoªka i. mniejsze zu»ycie pami ci (w porównaniu do macierzy s siedztwa) trzymamy tylko istotne informacje. Wady: nieco bardziej kªopotliwa implementacja. 60 / 64

Sklejone listy s siedztwa Ustalmy graf G = (V, E), V = {1,..., n}, E = m. Sklejone listy s siedztwa: w peªni statyczna wersja list s siedztwa struktura przechowywana w dwóch tablicach: Tablica sklejonych list s siedztwa (TSLS) skªada si z 2m komórek w wersji nieskierowanej lub m komórek w wersji skierowanej i zawiera ustawione jedna za drug listy s siadów kolejnych wierzchoªków. Tablica podziaªów (TP) skªada si z n + 1 komórek. W jej i-tej komórce zapami tamy, pocz wszy od której komórki w TSLS zapisani s s siedzi wierzchoªka o numerze i. Dodatkowo kªadziemy TP[n + 1] := 2m + 1 (w wersji nieskierowanej) lub TP[n + 1] := m + 1 (w wersji skierowanej). s siedzi wierzchoªka i zapisani s w komókach tablicy TSLS o indeksach mi dzy TP[i] a TP[i + 1] 1. 61 / 64

Sklejone listy s siedztwa Przykªad. 1 2 3 4 5 6 i 1 2 3 4 5 6 7 TP 1 4 6 7 9 14 15 i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 TSLS 2 5 4 1 5 5 1 5 4 1 2 3 6 5 62 / 64

Sklejone listy s siedztwa Przykªad. 1 2 3 4 5 6 i 1 2 3 4 5 6 7 TP 1 4 6 6 7 9 9 i 1 2 3 4 5 6 7 8 TSLS 2 5 4 1 5 5 3 6 63 / 64

Inne reprezentacje Uwaga W obu wersjach list s siedztwa (dynamicznej i statycznej sklejonej), warto postortowa wierzchoªki w listach s siadów dla poszczególnych wierzchoªków. Wówczas mo»na istotnie przyspieszy sprawdzanie, czy dane dwa wierzchoªki s s siednie. Istniej jeszcze inne, bardziej specyczne sposoby reprezentowania grafu G = (V, E), V = {1,..., n}, E = {e 1, e 2,..., e m }: Lista (tablica) kraw dzi: [[v1 1, v 2 1], [v 1 2, v 2 2],..., [v 1 m, v 2 m ]], gdzie e i = {v1 i, v 2 i }. Macierz incydencji: B = B(G) M n m (Z), { 0, i / ej, B i,j = 1, i e j. 64 / 64