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

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

Matematyczne Podstawy Informatyki

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

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

G. Wybrane elementy teorii grafów

TEORIA GRAFÓW I SIECI

Matematyka dyskretna

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

Algorytmiczna teoria grafów

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Wykład 10 Grafy, algorytmy grafowe

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Podstawy Programowania 2 Grafy i ich reprezentacje. Plan. Wstęp. Teoria grafów Graf skierowany. Notatki. Notatki. Notatki. Notatki.

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

. Podstawy Programowania 2. Grafy i ich reprezentacje. Arkadiusz Chrobot. 9 czerwca 2016

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

Macierze. Rozdział Działania na macierzach

Rozważmy funkcję f : X Y. Dla dowolnego zbioru A X określamy. Dla dowolnego zbioru B Y określamy jego przeciwobraz:

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

Graf. Definicja marca / 1

Digraf. 13 maja 2017

Algorytmiczna teoria grafów

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

Algorytmy z powracaniem

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Ogólne wiadomości o grafach

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

3. Macierze i Układy Równań Liniowych

Spis treści Podstawowe definicje Wielomian charakterystyczny grafu Grafy silnie regularne

0. ELEMENTY LOGIKI. ALGEBRA BOOLE A

TEORIA GRAFÓW I SIECI

Ścieżki w grafach. Grafy acykliczne i spójne

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

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

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

TEORIA GRAFÓW I SIECI

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

TEORIA GRAFÓW I SIECI

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

O MACIERZACH I UKŁADACH RÓWNAŃ

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

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

Sortowanie topologiczne skierowanych grafów acyklicznych

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

Zaawansowane metody numeryczne

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

AiSD zadanie trzecie

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

10. Kolorowanie wierzchołków grafu

1 Macierze i wyznaczniki

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

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

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

Matematyczne Podstawy Informatyki

Zagadnienie najkrótszej drogi w sieci

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

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

1 Macierz odwrotna metoda operacji elementarnych

Wykład 7 Macierze i wyznaczniki

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

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

Algebra liniowa z geometrią

Grafy podstawowe pojęcia

Analiza matematyczna i algebra liniowa Macierze

Procesy stochastyczne

Algorytmy i Struktury Danych.

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow

WSTĘP DO INFORMATYKI. Grafy i struktury grafowe

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

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

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

Procesy stochastyczne WYKŁAD 2-3. Łańcuchy Markowa. Łańcuchy Markowa to procesy "bez pamięci" w których czas i stany są zbiorami dyskretnymi.

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

Ekoenergetyka Matematyka 1. Wykład 3.

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Klasyczne zagadnienie przydziału

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

KURS MATEMATYKA DYSKRETNA

KURS MATEMATYKA DYSKRETNA

SKOJARZENIA i ZBIORY WEWN. STABILNE WIERZCH. Skojarzeniem w grafie G nazywamy dowolny podzbiór krawędzi parami niezależnych.

Kolorowanie wierzchołków

Metody numeryczne I Równania nieliniowe

TEORETYCZNE PODSTAWY INFORMATYKI

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji

Grafy i grafy skierowane. Izomorfizmy grafów

= Zapiszemy poniższy układ w postaci macierzy. 8+$+ 2&=4 " 5 3$ 7&=0 5$+7&=4

Wykład 5. Metoda eliminacji Gaussa

26 marzec, Łańcuchy Markowa z czasem ciągłym. Procesy Stochastyczne, wykład 7, T. Byczkowski, Procesy Stochastyczne, PPT, Matematyka MAP1136

Grafy. Jeżeli, to elementy p i q nazywamy końcami krawędzi e. f a b c d e γ f {1} {1,2} {2,3} {2,3} {1,3}

5. Najkrótsze ścieżki

5 Wyznaczniki. 5.1 Definicja i podstawowe własności. MIMUW 5. Wyznaczniki 25

Kombinacje liniowe wektorów.

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

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.

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

13 Układy równań liniowych

Digraf o V wierzchołkach posiada V 2 krawędzi, zatem liczba różnych digrafów o V wierzchołkach wynosi 2 VxV

Zaawansowane metody numeryczne

Transkrypt:

Wykład 2. Reprezentacja komputerowa grafów 1 / 69

Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). Definicja Określmy macierz A(G) = [a ij ] n m dla i = 1,..., n, j = 1,..., m w następujący sposób: 3 / 69

Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). Definicja Określmy macierz A(G) = [a ij ] n m dla i = 1,..., n, j = 1,..., m w następujący sposób: { 1 krawędź e j jest incydentna do i tego wierzchołka x i, a ij = 0 w przeciwnym przypadku. 4 / 69

Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). Definicja Określmy macierz A(G) = [a ij ] n m dla i = 1,..., n, j = 1,..., m w następujący sposób: { 1 krawędź e j jest incydentna do i tego wierzchołka x i, a ij = 0 w przeciwnym przypadku. Tak określona macierz A(G) nazywa się macierzą incydencji. 5 / 69

Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). Definicja Określmy macierz A(G) = [a ij ] n m dla i = 1,..., n, j = 1,..., m w następujący sposób: { 1 krawędź e j jest incydentna do i tego wierzchołka x i, a ij = 0 w przeciwnym przypadku. Tak określona macierz A(G) nazywa się macierzą incydencji. x 1 a x2 b x 3 g f d c e x5 x 4 6 / 69

Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). Definicja Określmy macierz A(G) = [a ij ] n m dla i = 1,..., n, j = 1,..., m w następujący sposób: { 1 krawędź e j jest incydentna do i tego wierzchołka x i, a ij = 0 w przeciwnym przypadku. Tak określona macierz A(G) nazywa się macierzą incydencji. x 1 a x2 g f b d x 3 c A(G) = x 1 x 2 x 3 x 4 x 5 a b c d e f g 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 e x5 x 4 7 / 69

Własności macierzy incydencji każda kolumna A(G) zawiera dokładnie dwie jedynki, ponieważ każda krawędź jest incydentna do dokładnie dwóch wierzchołków x 1 a x2 b x 3 g f d c e x5 x 4 Krawędź a jest incydentna do wierzchołków x 1 i x 2. x 1 x 2 x 3 x 4 x 5 a b c d e f g 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 8 / 69

Własności macierzy incydencji każda kolumna A(G) zawiera dokładnie dwie jedynki, ponieważ każda krawędź jest incydentna do dokładnie dwóch wierzchołków liczba jedynek w każdym wierszu równa się stopniowi odpowiadającego mu wierzchołka x 1 a x2 g f b d x 3 c e x5 x 4 deg(x 2) = 3 x 1 x 2 x 3 x 4 x 5 a b c d e f g 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 9 / 69

Własności macierzy incydencji każda kolumna A(G) zawiera dokładnie dwie jedynki, ponieważ każda krawędź jest incydentna do dokładnie dwóch wierzchołków liczba jedynek w każdym wierszu równa się stopniowi odpowiadającego mu wierzchołka wiersz złożony z samych zer reprezentuje wierzchołek izolowany x 1 a x2 x5 g f b e d x 3 x 4 c x 1 x 2 x 3 x 4 x 5 a b c d e f g 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 10 / 69

Własności macierzy incydencji każda kolumna A(G) zawiera dokładnie dwie jedynki, ponieważ każda krawędź jest incydentna do dokładnie dwóch wierzchołków liczba jedynek w każdym wierszu równa się stopniowi odpowiadającego mu wierzchołka wiersz złożony z samych zer reprezentuje wierzchołek izolowany krawędzie równoległe tworzą identyczne kolumny Krawędzie c i d są równoległe x 1 x 2 x 3 x 4 x 5 x 1 a x2 x5 g f b e d x 3 x 4 a b c d e f g 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 c 11 / 69

Własności macierzy incydencji c.d. Z algorytmicznego punktu widzenia macierz incydencji jest najgorszą formą reprezentacji grafu. 12 / 69

Własności macierzy incydencji c.d. Z algorytmicznego punktu widzenia macierz incydencji jest najgorszą formą reprezentacji grafu. 1 wymaga zdefiniowania tablicy o n m komórkach, z których większość jest wypełniona zerami, 13 / 69

Własności macierzy incydencji c.d. Z algorytmicznego punktu widzenia macierz incydencji jest najgorszą formą reprezentacji grafu. 1 wymaga zdefiniowania tablicy o n m komórkach, z których większość jest wypełniona zerami, 2 odpowiedź na pytanie, czy istnieje krawędź łącząca konkretne wierzchołki wymaga wykonania m kroków (przeszukania m kolumn). 14 / 69

Modyfikacje macierzy incydencji W przypadku, gdy graf G ma pętle, wówczas macierz incydencji A(G) można zdefiniować następująco: 15 / 69

Modyfikacje macierzy incydencji W przypadku, gdy graf G ma pętle, wówczas macierz incydencji A(G) można zdefiniować następująco: jeśli krawędź e j jest incydentna do 1 i tego wierzchołka x i i nie jest pętlą przy x i, a ij = 2 jeśli krawędź e j jest pętlą przy wierzchołku x i, 0 w pozostałych przypadkach 16 / 69

Macierz sąsiedztwa Niech będzie dany graf G nieskierowany o n wierzchołkach (x 1, x 2,..., x n). 17 / 69

Macierz sąsiedztwa Niech będzie dany graf G nieskierowany o n wierzchołkach (x 1, x 2,..., x n). Definicja Określamy macierz A(G) = [a ij ] n n w następujący sposób: a ij = { liczbie krawędzi łączących wierzchołek x i z wierzchołkiem x j 0 jeśli nie istnieje krawędź od x i do x j 18 / 69

Macierz sąsiedztwa Niech będzie dany graf G nieskierowany o n wierzchołkach (x 1, x 2,..., x n). Definicja Określamy macierz A(G) = [a ij ] n n w następujący sposób: a ij = { liczbie krawędzi łączących wierzchołek x i z wierzchołkiem x j 0 jeśli nie istnieje krawędź od x i do x j Tak określoną macierz kwadratową stopnia n nazywamy macierzą sąsiedztwa (przyległości). 19 / 69

Macierz sąsiedztwa Niech będzie dany graf G nieskierowany o n wierzchołkach (x 1, x 2,..., x n). Definicja Określamy macierz A(G) = [a ij ] n n w następujący sposób: a ij = { liczbie krawędzi łączących wierzchołek x i z wierzchołkiem x j 0 jeśli nie istnieje krawędź od x i do x j Tak określoną macierz kwadratową stopnia n nazywamy macierzą sąsiedztwa (przyległości). x 1 a h b i c x 2 k j g x 4 d f e x 3 A(G) = x 1 x 2 x 3 x 4 x 5 x 1 x 2 x 3 x 4 x 5 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 x 5 20 / 69

Własności macierzy sąsiedztwa elementy wzdłuż głównej przekątnej są wszystkie zerami wtedy i tylko wtedy, gdy graf nie ma pętli. k x 3 h i x 2 g x 4 j e x 1 a b c d f x 5 Krawędź f jest pętlą przy wierzchołku x 4, więc a 44 = 1 oraz k jest pętlą przy wierzchołku x 2, więc a 22 = 1. x 1 x 2 x 3 x 4 x 5 x 1 x 2 x 3 x 4 x 5 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 21 / 69

Własności macierzy sąsiedztwa elementy wzdłuż głównej przekątnej są wszystkie zerami wtedy i tylko wtedy, gdy graf nie ma pętli. k x 3 jeżeli graf nie ma pętli (albo na przekątnej ma 0), to stopień wierzchołka jest równy sumie elementów w odpowiednim wierszu lub kolumnie macierzy A(G) x 1 a h b i c x 2 g x 4 d j f e x 5 deg(x 5) = 4 x 1 x 2 x 3 x 4 x 5 x 1 x 2 x 3 x 4 x 5 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 22 / 69

Własności macierzy sąsiedztwa elementy wzdłuż głównej przekątnej są wszystkie zerami wtedy i tylko wtedy, gdy graf nie ma pętli. k x 3 jeżeli graf nie ma pętli (albo na przekątnej ma 0), to stopień wierzchołka jest równy sumie elementów w odpowiednim wierszu lub kolumnie macierzy A(G) x 1 a h b i c x 2 g x 4 d j f e x 5 deg(x 5) = 4 x 1 x 2 x 3 x 4 x 5 x 1 x 2 x 3 x 4 x 5 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 23 / 69

Własności macierzy sąsiedztwa elementy wzdłuż głównej przekątnej są wszystkie zerami wtedy i tylko wtedy, gdy graf nie ma pętli. k x 3 jeżeli graf nie ma pętli (albo na przekątnej ma 0), to stopień wierzchołka jest równy sumie elementów w odpowiednim wierszu lub kolumnie macierzy A(G) macierz sąsiedztwa grafu nieskierowanego jest macierzą symetryczną x 1 a h b i c x 2 g x 4 d j f e x 5 x 1 x 2 x 3 x 4 x 5 x 1 x 2 x 3 x 4 x 5 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 24 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. 25 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. Wada Niezależnie od ilości krawędzi w grafie macierz zajmuje n 2 jednostek pamięci. 26 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. Wada Niezależnie od ilości krawędzi w grafie macierz zajmuje n 2 jednostek pamięci. Niech P oznacza pewną własność grafu G = V, E. Jeśli graf G ma własność P, to P(G) = 1, w przeciwnym wypadku P(G) = 0. 27 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. Wada Niezależnie od ilości krawędzi w grafie macierz zajmuje n 2 jednostek pamięci. Niech P oznacza pewną własność grafu G = V, E. Jeśli graf G ma własność P, to P(G) = 1, w przeciwnym wypadku P(G) = 0. Załóżmy, że cecha P ma własności 28 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. Wada Niezależnie od ilości krawędzi w grafie macierz zajmuje n 2 jednostek pamięci. Niech P oznacza pewną własność grafu G = V, E. Jeśli graf G ma własność P, to P(G) = 1, w przeciwnym wypadku P(G) = 0. Załóżmy, że cecha P ma własności (a) P(G) = P(G ), jeśli grafy G i G są izomorficzne, 29 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. Wada Niezależnie od ilości krawędzi w grafie macierz zajmuje n 2 jednostek pamięci. Niech P oznacza pewną własność grafu G = V, E. Jeśli graf G ma własność P, to P(G) = 1, w przeciwnym wypadku P(G) = 0. Załóżmy, że cecha P ma własności (a) P(G) = P(G ), jeśli grafy G i G są izomorficzne, (b) P(G) = 0 dla grafu pustego (bez krawędzi) oraz P(G) = 1 dla grafu pełnego o dostatecznie dużej liczbie wierzchołków, 30 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. Wada Niezależnie od ilości krawędzi w grafie macierz zajmuje n 2 jednostek pamięci. Niech P oznacza pewną własność grafu G = V, E. Jeśli graf G ma własność P, to P(G) = 1, w przeciwnym wypadku P(G) = 0. Załóżmy, że cecha P ma własności (a) P(G) = P(G ), jeśli grafy G i G są izomorficzne, (b) P(G) = 0 dla grafu pustego (bez krawędzi) oraz P(G) = 1 dla grafu pełnego o dostatecznie dużej liczbie wierzchołków, (c) dodawanie krawędzi nie narusza własności P. 31 / 69

Własności macierzy sąsiedztwa Zaleta Odpowiedź na pytanie, czy istnieje krawędź z x i do x j dostajemy po jednym kroku. Wada Niezależnie od ilości krawędzi w grafie macierz zajmuje n 2 jednostek pamięci. Niech P oznacza pewną własność grafu G = V, E. Jeśli graf G ma własność P, to P(G) = 1, w przeciwnym wypadku P(G) = 0. Załóżmy, że cecha P ma własności (a) P(G) = P(G ), jeśli grafy G i G są izomorficzne, (b) P(G) = 0 dla grafu pustego (bez krawędzi) oraz P(G) = 1 dla grafu pełnego o dostatecznie dużej liczbie wierzchołków, (c) dodawanie krawędzi nie narusza własności P. Przykładem takiej własności jest istnienie cyklu. 32 / 69

Własności macierzy sąsiedztwa Twierdzenie Jeśli P jest własnością spełniającą (a) (c), to każdy algorytm testujący P na podstawie macierzy sąsiedztwa wykonuje, w najgorszym przypadku Ω(n 2 ) kroków. 33 / 69

Własności macierzy sąsiedztwa Twierdzenie Jeśli P jest własnością spełniającą (a) (c), to każdy algorytm testujący P na podstawie macierzy sąsiedztwa wykonuje, w najgorszym przypadku Ω(n 2 ) kroków. Twierdzenie Niech A(G) będzie macierzą sąsiedztwa grafu G. Wówczas liczba dróg długości k pomiędzy wierzchołkami x i i x j jest równa b ij, gdzie B = A k. 34 / 69

Przykład k x 3 h i x 2 g x 4 j e x 1 a b c d f x 5 Drogi długości 2 obliczamy wyznaczając A 2. 35 / 69

Przykład k x 3 h i x 2 g x 4 j e x 1 a b c d f B = A 2 = x 5 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 Drogi długości 2 obliczamy wyznaczając A 2. 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 = 14 3 1 6 1 3 6 1 4 7 1 1 1 1 1 6 4 1 5 4 1 7 1 4 10 36 / 69

Przykład Na przykład k x 3 b 42 = a 41a 12 + a 42a 22 + a 43a 32 + a 44a 42 +a 45a 52 = 1 2 + 1 1 + 1 0 + 1 1 + 1 0 = 4 h i x 2 g x 4 j e Są to drogi gh, gi, jk, fj x 1 a b c d f B = A 2 = x 5 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 Drogi długości 2 obliczamy wyznaczając A 2. 0 2 0 1 3 2 1 0 1 0 0 0 0 1 0 1 1 1 1 1 3 0 0 1 0 = 14 3 1 6 1 3 6 1 4 7 1 1 1 1 1 6 4 1 5 4 1 7 1 4 10 37 / 69

Przykład k x 3 h i x 2 g x 4 j e x 1 a b c d f Wykonując odpowiednie działania otrzymujemy x 5 A 3 = 15 37 6 25 48 37 16 4 21 13 6 4 1 5 4 25 21 5 20 23 48 13 4 23 7 A4 = 243 92 25 131 70 92 111 21 91 132 25 21 5 20 23 131 91 20 94 95 70 132 23 95 167 38 / 69

Przykład k x 3 Nie są to najkrótsze drogi. h i x 2 g x 4 j e x 1 a b c d f Wykonując odpowiednie działania otrzymujemy x 5 A 3 = 15 37 6 25 48 37 16 4 21 13 6 4 1 5 4 25 21 5 20 23 48 13 4 23 7 A4 = 243 92 25 131 70 92 111 21 91 132 25 21 5 20 23 131 91 20 94 95 70 132 23 95 167 39 / 69

Lista krawędzi Rozważmy graf G o n krawędziach. Lista krawędzi grafu G implementujemy w postaci dwóch tablic F = (f 1, f 2,..., f m), H = (h 1, h 2,..., h m). gdzie {f i, h i } reprezentuje krawędź grafu G (łączącą wierzchołki f i i g i ). 2 5 1 3 4 40 / 69

Lista krawędzi Rozważmy graf G o n krawędziach. Lista krawędzi grafu G implementujemy w postaci dwóch tablic F = (f 1, f 2,..., f m), H = (h 1, h 2,..., h m). gdzie {f i, h i } reprezentuje krawędź grafu G (łączącą wierzchołki f i i g i ). 1 2 3 5 Mamy F = (1, 1, 1, 1, 2, 2, 3, 3, 3), H = (1, 2, 2, 4, 3, 4, 4, 4, 5). 4 41 / 69

Listy krawędzi Rozważmy graf G o m krawędziach. Listy krawędzi grafu G implementujemy w postaci dwóch tablic F = (f 1, f 2,..., f m), H = (h 1, h 2,..., h m). gdzie {f i, h i } reprezentuje krawędź grafu G (łączącą wierzchołki f i i g i ). 2 5 Mamy F = (1, 1, 1, 1, 2, 2, 3, 3, 3), 1 3 H = (1, 2, 2, 4, 3, 4, 4, 4, 5). np. pętla - krawędź {1}, jest pamiętana jako {f 1, h 1} 4 42 / 69

Własności listy krawędzi Zaleta Do reprezentacji grafu potrzebujemy 2m jednostek pamięci (wygodne dla grafów rzadkich, gdzie liczba krawędzi jest znacznie mniejsza od liczby wierzchołków). 43 / 69

Własności listy krawędzi Zaleta Do reprezentacji grafu potrzebujemy 2m jednostek pamięci (wygodne dla grafów rzadkich, gdzie liczba krawędzi jest znacznie mniejsza od liczby wierzchołków). Wada Do uzyskania zbioru wierzchołków, do którego prowadzą krawędzie z danego wierzchołka potrzeba, w najgorszym przypadku, m kroków. 44 / 69

Listy incydencji Listę incydencji budujemy dla każdego z wierzchołków grafu. 45 / 69

Listy incydencji Listę incydencji budujemy dla każdego z wierzchołków grafu. Lista incydencji dla wierzchołka x i V zawiera listę takich wierzchołków u, że {x i, u} jest krawędzią w grafie. 46 / 69

Listy incydencji Listę incydencji budujemy dla każdego z wierzchołków grafu. Lista incydencji dla wierzchołka x i V zawiera listę takich wierzchołków u, że {x i, u} jest krawędzią w grafie. Lista incydencji dla grafu 1 2 3 5 1 : 1 2 2 4 2 : 1 1 3 4 3 : 2 4 4 5 4 : 1 2 3 3 5 : 3 4 47 / 69

Listy incydencji Listę incydencji budujemy dla każdego z wierzchołków grafu. Lista incydencji dla wierzchołka x i V zawiera listę takich wierzchołków u, że {x i, u} jest krawędzią w grafie. Lista incydencji dla grafu 1 2 3 5 1 : 1 2 2 4 2 : 1 1 3 4 3 : 2 4 4 5 4 : 1 2 3 3 5 : 3 4 48 / 69

Własności list incydencji lista incydencji składa się z wektora list 49 / 69

Własności list incydencji lista incydencji składa się z wektora list każdą krawędź, w grafach nieskierowanych, musimy pamiętać w dwóch różnych miejscach, jeżeli rozważymy krawędź {u, w}, to wierzchołek w znajduje się na liście incydencji wierzchołka v i na odwrót (powyższe spostrzeżenie nie dotyczy pętli) 50 / 69

Własności list incydencji lista incydencji składa się z wektora list każdą krawędź, w grafach nieskierowanych, musimy pamiętać w dwóch różnych miejscach, jeżeli rozważymy krawędź {u, w}, to wierzchołek w znajduje się na liście incydencji wierzchołka v i na odwrót (powyższe spostrzeżenie nie dotyczy pętli) Zalety liczba komórek potrzebnych do zapamiętania grafu o n wierzchołkach i m krawędziach jest, w najgorszym wypadku, proporcjonalna do m + n (na ogół wystarczy 2m komórek pamięci), 51 / 69

Własności list incydencji lista incydencji składa się z wektora list każdą krawędź, w grafach nieskierowanych, musimy pamiętać w dwóch różnych miejscach, jeżeli rozważymy krawędź {u, w}, to wierzchołek w znajduje się na liście incydencji wierzchołka v i na odwrót (powyższe spostrzeżenie nie dotyczy pętli) Zalety liczba komórek potrzebnych do zapamiętania grafu o n wierzchołkach i m krawędziach jest, w najgorszym wypadku, proporcjonalna do m + n (na ogół wystarczy 2m komórek pamięci), testowanie istnienia pojedynczej krawędzi, w reprezentacji przy pomocy listy incydencji, pochłania czas proporcjonalny do n, 52 / 69

Własności list incydencji lista incydencji składa się z wektora list każdą krawędź, w grafach nieskierowanych, musimy pamiętać w dwóch różnych miejscach, jeżeli rozważymy krawędź {u, w}, to wierzchołek w znajduje się na liście incydencji wierzchołka v i na odwrót (powyższe spostrzeżenie nie dotyczy pętli) Zalety liczba komórek potrzebnych do zapamiętania grafu o n wierzchołkach i m krawędziach jest, w najgorszym wypadku, proporcjonalna do m + n (na ogół wystarczy 2m komórek pamięci), testowanie istnienia pojedynczej krawędzi, w reprezentacji przy pomocy listy incydencji, pochłania czas proporcjonalny do n, listy incydencji umożliwiają śledzenie wszystkich połączeń wychodzących z wierzchołka. 53 / 69

Macierz incydencji Lista incydencji Niech graf G będzie grafem skierowanym bez pętli o wierzchołkach x 1, x 2,..., x n i krawędziach e 1, e 2,..., e m. 54 / 69

Macierz incydencji Lista incydencji Niech graf G będzie grafem skierowanym bez pętli o wierzchołkach x 1, x 2,..., x n i krawędziach e 1, e 2,..., e m. Macierz incydencji A(G) = [a ij ] n m dla i = 1,..., n, j = 1,..., m określamy jako: 1 jeśli x i jest początkiem e j a ij = 1 jeśli x i jest końcem e j 0 w pozostałych przypadkach 55 / 69

Macierz incydencji Lista incydencji Niech graf G będzie grafem skierowanym bez pętli o wierzchołkach x 1, x 2,..., x n i krawędziach e 1, e 2,..., e m. e 1 x 1 x 2 Macierz incydencji A(G) = [a ij ] n m dla i = 1,..., n, j = 1,..., m określamy jako: e 3 e 2 e 4 e 6 e 7 e 8 x 5 1 jeśli x i jest początkiem e j a ij = 1 jeśli x i jest końcem e j 0 w pozostałych przypadkach e 5 x 3 x 4 A(G) = x 1 x 2 x 3 x 4 x 5 e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 56 / 69

Macierz sąsiedztwa Lista incydencji Macierz sąsiedztwa dla grafu skierowanego definiujemy identycznie jak dla grafu nieskierowanego. Przypomnijmy więc, że Definicja a ij = { liczbie krawędzi łączących wierzchołek x i z wierzchołkiem x j 0 jeśli nie istnieje krawędź od x i do x j 57 / 69

Macierz sąsiedztwa Lista incydencji Macierz sąsiedztwa dla grafu skierowanego definiujemy identycznie jak dla grafu nieskierowanego. Przypomnijmy więc, że Definicja a ij = { liczbie krawędzi łączących wierzchołek x i z wierzchołkiem x j 0 jeśli nie istnieje krawędź od x i do x j 58 / 69

Przykład Lista incydencji Analogicznie jak dla grafów nieskierowanych, kolejne potęgi macierzy sąsiedztwa digrafu, odpowiadają macierzy zawierającej liczbę dróg pomiędzy wierzchołkami. x 4 c x 1 d a b e x 2 x 3 Macierz sąsiedztwa dla grafu jest postaci 0 0 0 1 A = 2 0 0 1 0 0 1 0 59 / 69

Przykład Lista incydencji Analogicznie jak dla grafów nieskierowanych, kolejne potęgi macierzy sąsiedztwa digrafu, odpowiadają macierzy zawierającej liczbę dróg pomiędzy wierzchołkami. x 4 c x 1 d a b e x 2 x 3 Macierz sąsiedztwa dla grafu jest postaci 0 0 0 1 A = 2 0 0 1 0 0 1 0 Wówczas A 2 = 0 0 1 0 0 0 1 2 A3 = 0 0 2 0 A4 = 60 / 69

Przykład Lista incydencji Analogicznie jak dla grafów nieskierowanych, kolejne potęgi macierzy sąsiedztwa digrafu, odpowiadają macierzy zawierającej liczbę dróg pomiędzy wierzchołkami. x 4 c x 1 d a Wówczas A 2 = b e x 2 x 3 0 0 1 0 0 0 1 2 Macierz sąsiedztwa dla grafu jest postaci 0 0 0 1 A = 2 0 0 1 0 0 1 0 Są 4 drogi długości 2: A3 = a 2 13 = 1 - droga ca a 2 23 = 1 - droga ba a 2 24 = 2 - dwie drogi dc i ec 0 0 2 0 A4 = 61 / 69

Przykład Lista incydencji Analogicznie jak dla grafów nieskierowanych, kolejne potęgi macierzy sąsiedztwa digrafu, odpowiadają macierzy zawierającej liczbę dróg pomiędzy wierzchołkami. x 4 c x 1 d a b e x 2 x 3 Macierz sąsiedztwa dla grafu jest postaci 0 0 0 1 A = 2 0 0 1 0 0 1 0 Są 2 drogi długości 3: a 3 23 = 2 - dwie drogi dca i eca Wówczas A 2 = 0 0 1 0 0 0 1 2 A3 = 0 0 2 0 A4 = 62 / 69

Przykład Lista incydencji Analogicznie jak dla grafów nieskierowanych, kolejne potęgi macierzy sąsiedztwa digrafu, odpowiadają macierzy zawierającej liczbę dróg pomiędzy wierzchołkami. x 4 c x 1 d a b e x 2 x 3 Macierz sąsiedztwa dla grafu jest postaci 0 0 0 1 A = 2 0 0 1 0 0 1 0 W grafie nie ma dróg długości 4 i więcej Wówczas A 2 = 0 0 1 0 0 0 1 2 A3 = 0 0 2 0 A4 = 63 / 69

Lista incydencji Lista incydencji Podobnie jak dla grafu nieskierowanego, listę incydencji dla digrafu budujemy dla każdego z jego wierzchołków. 64 / 69

Lista incydencji Lista incydencji Podobnie jak dla grafu nieskierowanego, listę incydencji dla digrafu budujemy dla każdego z jego wierzchołków. Lista incydencji dla wierzchołka x i V, zawiera listę takich wierzchołków u, że (x i, u) jest krawędzią w grafie. 65 / 69

Lista incydencji z d e u c x f a b y 66 / 69

Lista incydencji z d e u c x f a b y x : y : z : u : y z x, u x, y 67 / 69

Lista incydencji z d e u c x f a b y x : y : z : u : y z x, u x, y W listach incydencji dla digrafów, każda krawędź pamiętana jest tylko raz. 68 / 69

Lista incydencji Dziękuję za uwagę!!! 69 / 69