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