ASD 10
Transkrypt
ASD 10
Algorytmy i Struktury Danych Wykład X Grafy ASD 10 1 Co dziś? Podstawowe definicje Reprezentacja w pamięci Przeszukiwanie grafów ASD 10 2 Grafy Po co zajmujemy się grafami? # Problem przydziału sal do zajęć → kolorowanie grafu # Sprawdzenie czy można z dostępnych kości domina ułożyć jeden ciąg → ścieżka Eulera # Problem komiwojażera # Najdłuższy podciąg rosnący ASD 10 3 1 ASD 10 4 Grafy - definicje Intuicja # wierzchołki – kropki # krawędzie – odcinki, strzałki Graf G opisany jest parą (V, E) gdzie: # V to zbiór wierzchołków (węzłów) [vertex] # E zbiór krawędzi [edge] # E jest relacją binarną w zbiór V # E ⊂ { (v1, v2) | v1, v2 ∈ V } ASD 10 5 Grafy - definicje Klasyfikacja # graf nieskierowany {u,v} = {v,u} u ≠ v # graf skierowany # graf mieszany ASD 10 6 2 Grafy - definicje Droga (ścieżka) ciąg wierzchołków (bądź krawędzi) który powstaje podczas „podróży” przez graf – jest to podgraf # # # # zbiór wierzchołków lub zbiór krawędzi długość ścieżki (drogi) droga (ścieżka) prosta – elementy nie powtarzają się cykl – ścieżka (droga) zamknięta ostatnia krawędź kończy się węzłem którym zaczęła się pierwsza krawędź ostatni wierzchołek jest zarazem pierwszym wierzchołkiem # cykl prosty ASD 10 7 Grafy - definicje # osiągalność wierzchołka # droga (ścieżka) acykliczna – bez cykli # podścieżka (poddroga) # długość drogi (ścieżki) Graf acykliczny – bez cykli Sąsiedztwo wierzchołków # nieskierowany – relacja symetryczna Graf spójny (nieskierowany) Graf silnie spójny (tylko skierowany) ASD 10 8 Grafy - definicje Parametry # ilość krawędzi # ilość wierzchołków # stopień wierzchołka # stopień grafu # stopień wejściowy (wyjściowy) – graf skierowany # waga krawędzi # liczba chromatyczna ASD 10 9 3 Grafy - definicje Pojęcia # wierzchołek incydentny z krawędzią # wierzchołki adiacentne (ta sama krawędź) # krawędzie adiacentne (przyległe) – wspólny wierzchołek # wierzchołki spójne – istnieje ścieżka pomiędzy nimi # wierzchołek separowany – nie należy do żadnej krawędzi ASD 10 10 Graf regularny (stopnia-k) [pełny] ASD 10 11 Graf dwudzielny ASD 10 12 4 Graf dwudzielny ASD 10 13 Graf dwudzielny ASD 10 14 Grafy - definicje Klasy: # eulerowski # hamiltonowski # planarny (graf płaski) Drzewo – spójny acykliczny graf nieskierowany Las – acykliczny graf nieskierowany Drzewo rozpinające (minimalne) ASD 10 15 5 Graf planarny (graf płaski) ASD 10 16 Implementacja Reprezentacja # odsyłaczowa # tablicowa Złożoność O(G) = O(e,v) ASD 10 17 Listy sąsiedztwa ASD 10 18 6 Macierz sąsiedztwa 1 1 2 3 4 5 2 1 1 1 1 1 1 3 4 1 1 1 1 5 1 1 1 1 macierz adiacencji (adiacentna) # przekątna # symatryczna – nieskierowany 19 ASD 10 Macierz incydencji krawędzie 1 1 2 3 4 5 1 2 1 1 1 3 1 1 4 1 1 5 6 1 1 1 1 7 1 1 wierzchołki 20 ASD 10 Przeglądanie grafu Przeszukiwanie w głąb (wzdłuż) [stos] # DFS - Depth-first search Przeszukiwanie wszerz [kolejka] # BSF - Breadth-first search # Reprezentacja # Grafy odsyłaczowa tablica incydencji tablica adiacencji skierowany nieskierowany ASD 10 21 7 Przeszukiwanie wszerz „Mierzymy” ścieżki Ustawiamy poprzednika (ojca) # podgraf poprzedników - drzewo przeszukiwania wszerz (krawędzie drzewowe); graf skierowany las # graf nieskierowany - najkrótsze ścieżki z s Kolorujemy wierzchołki na biały, szary i czarny ASD 10 22 Graf nieskierowany przeszukiwanie wszerz ASD 10 23 Graf skierowany ASD 10 24 8 Przeszukiwanie w głąb Poprzednik (ojciec) Podgraf poprzedników – drzewo (las) przeszukiwania w głąb Etykiety czasowe # początek przetwarzania (pre-order) # zakończenie przetwarzania (post-order) ASD 10 25 Graf skierowany przeszukiwanie w głąb ASD 10 26 Przeszukiwanie w głąb Klasyfikacja krawędzi # krawędzie drzewowe # krawędzie powrotne (back) # krawędzie w przód (forward) # poprzeczne (cross) Nieskierowany # brak krawędzi w przód i poprzecznych # pewna niejednoznaczność podczas nazywania krawędzi, istotna jest kolejność klasyfikacji ASD 10 27 9 Przeszukiwanie w głąb ASD 10 28 Złożoności przeszukiwań Przeszukiwania # wszerz O(E+V) → O(E) # w głąb O(E+V) → O(E) Reprezentacja # listowa O(E+V) # macierz adiacencji O(V*V) # macierz incydencji O(V*E*V) ASD 10 29 ASD 10 30 Pytania? KONIEC 10