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

10a: Wprowadzenie do grafów

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

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

Podstawowe algorytmy grafowe i ich zastosowania

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

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

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

Podstawowe algorytmy grafowe i ich zastosowania

Wykªad 1. Wprowadzenie do teorii grafów

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

Najkrótsze drogi w grafach z wagami

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

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 Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie

Elementy geometrii analitycznej w przestrzeni

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

Minimalne drzewa rozpinaj ce

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

Najkrótsze drogi w grafach z wagami

Metody dowodzenia twierdze«

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

Wektory w przestrzeni

Minimalne drzewo rozpinaj ce

Wykªad 4. Droga i cykl Eulera i Hamiltona

Metodydowodzenia twierdzeń

Wykªad 4. Funkcje wielu zmiennych.

Zbiory i odwzorowania

Listy i operacje pytania

Egzaminy i inne zadania. Semestr II.

Minimalne drzewo rozpinaj ce

Teoria grafów i sieci 1 / 188

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

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

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

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

Elementy geometrii w przestrzeni R 3

Geometria Algebraiczna

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}.

Podstawy matematyki dla informatyków

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

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

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

Matematyczne podstawy kognitywistyki

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

XVII Warmi«sko-Mazurskie Zawody Matematyczne

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

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

Przekroje Dedekinda 1

r = x x2 2 + x2 3.

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

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Egzaminy i inne zadania. Semestr II.

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

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

TEORIA GRAFÓW I SIECI

Algorytmiczna teoria grafów

Podstawy modelowania w j zyku UML

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

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

Algorytmy i Struktury Danych

2 Podstawowe obiekty kombinatoryczne

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

Metody numeryczne i statystyka dla in»ynierów

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

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

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,

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

Ukªady równa«liniowych

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Metody iteracyjne rozwi zywania równania f(x)=0

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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

Programowanie wspóªbie»ne

Stereometria (geometria przestrzenna)

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

Rachunek zda«. Relacje. 2018/2019

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

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

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

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Programowanie i struktury danych 1 / 44

1 Kodowanie i dekodowanie

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

Matematyczne Podstawy Informatyki

Lab. 02: Algorytm Schrage

Matematyka dyskretna dla informatyków

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

Wska¹niki, tablice dynamiczne wielowymiarowe

Transkrypt:

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze dr Andrzej Mróz (UMK w Toruniu) 2013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych Poddziaªanie 4.1.1 Programu Operacyjnego Kapitaª Ludzki

Spis tre±ci 1 Wst p 3 1.1 Modelowanie rzeczywisto±ci.............................. 3 1.2 Zastosowania teorii grafów, cele wykªadu....................... 3 2 Grafy 4 2.1 Graf niezorientowany.................................. 4 2.2 Orientacja kraw dzi.................................. 5 2.3 Graf zorientowany................................... 5 3 Podstawowe poj cia 6 3.1 Wierzchoªki i kraw dzie................................ 6 3.2 Drogi........................................... 7 3.3 Cykle i drogi proste................................... 7 3.4 Drogi niezorientowane................................. 8 4 Wªasno±ci 8 4.1 Spójno±......................................... 8 4.2 Podgraf......................................... 9 4.3 Skªadowe spójno±ci................................... 10 4.4 Silnie spójne skªadowe................................. 11 4.5 Graf peªny........................................ 11 4.6 Graf dwudzielny.................................... 11 5 Drzewa 12 5.1 Drzewa......................................... 12 5.2 Charakteryzacja drzew................................. 13 5.3 Drzewa z korzeniem.................................. 13 5.4 Drzewa binarne..................................... 14 6 Reprezentacje grafów 14 6.1 Reprezentacja grafu.................................. 14 6.2 Macierz s siedztwa................................... 15 6.3 Listy s siedztwa..................................... 16 6.4 Sklejone listy s siedztwa................................ 17 6.5 Inne reprezentacje................................... 18 2

1 Wst p 1.1 Modelowanie rzeczywisto±ci Graf, intuicyjnie rozumiany jako obiekt skªadaj cy si z wierzchoªków i ª cz cych je kraw dzi (dokªadniejsza denicja za chwil ): 3 jest prostym kombinatorycznym modelem opisuj cym rozmaite rzeczywiste sytuacje. 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. 1.2 Zastosowania teorii grafów, cele wykªadu 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. 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. 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.

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. 2 Grafy 2.1 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 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} }. 4 Przykªad. Czasem wygodnie jest nada kraw dziom etykiety: Wówczas G = (V, E), V = {1, 2, 3, 4, 5, 6}, e 1 1 2 3 e 3 e 5 e e 6 2 e 4 e 7 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. 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.

Przykªad. Poni»sze dwa rysunki 5 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}}. 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,...). 2.2 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 v do w. Uwaga. Przypomnijmy,»e {v, w} = {w, v}, ale (v, w) (w, v), o ile v w. 2.3 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, strzaªek) G. Przykªad.

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) }. Uwagi. 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 6 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). 3 Podstawowe poj cia 3.1 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. 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 : oraz stopie«wej±ciowy wierzchoªka v V : out.deg G (v) = deg + G (v) := #{w V : v w E} in.deg G (v) = deg G (v) := #{u V : u v E}.

3.2 Drogi 7 Denicja. 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 ). Uwaga. 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 Na diagramie zaznaczyli±my drog P = (1, {1, 2}, 2, {2, 5}, 5, {5, 6}, 6) (lub skrótowo P = (1, 2, 5, 6)). Przykªad. Graf zorientowany P = (1, (1, 2), 2, (2, 1), 1, (1, 5), 5, (5, 3), 3) (lub skrótowo P = (1, 2, 1, 5, 3)). 3.3 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 v i v j oraz e i e j 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. Przykªady. Droga P = (1, 2, 5, 6) jest drog prost.

8 Droga P = (1, 2, 5, 1) jest cyklem prostym. 1 2 3 Droga P = (1, 2, 5, 1, 2, 5, 1) (nawini ta dwa razy) jest cyklem, ale nie jest cyklem prostym. Droga P = (1, 2, 1, 5, 3) nie jest drog prost. 3.4 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! Przykªad. 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). 4 Wªasno±ci 4.1 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. Przykªady. Graf spójny: 9 Graf niespójny: 1 4 6 2 3 5 7 Graf sªabo spójny ale nie silnie spójny: Graf silnie spójny: 1 2 3 Uwaga. Graf zorientowany, który jest silnie spójny, jest te» sªabo spójny. 4.2 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.

Przykªad. Graf G: Podgraf grafu G: 1 2 4 5 10 1 2 Podgraf peªny grafu G: 4 5 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. 4.3 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. 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. Denicja. 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. 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

4.4 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). Przykªad. Graf 1 2 3 4 11 posiada dwie silnie spójne skªadowe: 1 2 4 oraz: 3 4.5 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. 1 K 1 : 1 K 2 : 1 2 K 3 : 2 3 K 4 : 1 2 3 4 4.6 Graf dwudzielny W tym paragrae rozwa»amy tylko grafy niezorientowane. Denicja. Graf 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 )].

12 Denicja. dwa rozª czne niepuste podzbiory V 1, V 2 (tj. V 1 V 2 = V ) taki,»e Graf G = (V, E) nazywamy peªnym dwudzielnym, je»eli istnieje podziaª V na u V1 v V2 {u, v} E. 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. 5 Drzewa 5.1 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). Przykªad. Poni»szy graf nie jest drzewem, gdy» zawiera cykl: Poni»szy graf nie jest drzewem, gdy» jest niespójny (ale jest lasem): 1 4 6 2 3 5 7 Drzewo:

5.2 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. 5.3 Drzewa z korzeniem Denicja. 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 13 Drzewo z korzeniem (T, 1): 1 2 3 7 Przyj ªo si rysowa korze«na górze a pozostaªe wierzchoªki poziomami. Powy»sze drzewo (T, 1) zgodnie z t konwencj : 1 2 5 3 4 6 Na przykªadzie powy»szego grafu zilustrujemy szereg prostych poj zwi zanych z drzewami z korzeniem, bez ich precyzyjnego deniowania. 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. 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. 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). Gª boko± (poziom) wierzchoªka v = dªugo± drogi od r do v (ozn. h(v)), np. h(1) = 0, h(7) = 3, h(5) = 1, zauwa»my,»e zawsze istnieje (dokªadnie jedna) droga z r do v (patrz twierdzenie), zatem poj cie gª boko±ci jest dobrze okre±lone. Wysoko± drzewa = h(t ) = h(t, r) := max{h(v) : v V }. Zatem h(t ) = 3 dla powy»szego drzewa (T, 1). 5.4 Drzewa binarne Denicja. 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. 6 Reprezentacje grafów 6.1 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. 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. 14

6.2 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: Przykªad. A i,j = { 0, (i, j) / E, 1, (i, j) E. 1 2 3 15 A i,j 1 2 3 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. Przykªad. A i,j 1 2 3 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). 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).

6.3 Listy s siedztwa Ustalmy graf G = (V, E), V = {1,..., n}. Listy s siedztwa: wierzchoªka i. Przypomnienie: tablica L[1..n], gdzie L[i] = wska¹nik do (dynamicznej) listy s siadów 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++. Przykªad. 16 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. Przykªad. L[i] 1 2 5 4 2 1 5 3 4 5 5 3 6 6 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.

6.4 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. 17 Przykªad. i 1 2 3 7 TP 1 4 6 7 9 14 15 i 1 2 3 7 8 9 10 11 12 13 14 TSLS 2 5 4 1 5 5 1 5 4 1 2 3 6 5 Przykªad. i 1 2 3 7 TP 1 4 6 6 7 9 9 i 1 2 3 7 8 TSLS 2 5 4 1 5 5 3 6 Uwaga. W obu wersjach list s siedztwa (statycznej sklejonej i dynamicznej z 6.3), 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.

6.5 Inne reprezentacje 18 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: [[v 1 1, v1 2 ], [v2 1, v2 2 ],..., [vm 1, vm 2 ]], gdzie e i = {v i 1, vi 2 }. Macierz incydencji: B = B(G) M n m (Z), { 0, i / ej, B i,j = 1, i e j.