Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałStefcia Byra Został zmieniony 11 lat temu
1
SKIEROWANE Marek Bil Krzysztof Fitrzyk Krzysztof Godek
2
2 3 1 Co to są grafy? To są kropki połączone kreskami! Przy czym ^ kropki nazywamy wierzchołkami a kreski ^ krawędziami Krawędź ^ jest skierowana od wierzchołka ^ 2 do wierzchołka ^ 3 5 4
3
Graf skierowany nazywany jest DIGRAFEM
DEFINICJA: Grafem skierowanym nazywamy strukturę G = (V, E) złożoną z niepustego zbioru wierzchołków V, zwanych także węzłami, oraz zbioru skierowanych krawędzi E, zwanych inaczej łukami. Graf skierowany nazywany jest DIGRAFEM
4
Popularna dziecięca zabawa „połącz kropki” to graf…
5
„Graf Zeppelin”
6
W zadaniach matematycznych w szkole podstawowej
7
Dwa wierzchołki grafu nazywamy wierzchołkami sąsiednimi, jeśli istnieje łącząca je krawędź. Mówimy wówczas, że wierzchołki te są incydentne z tą krawędzią, krawędź z tymi wierzchołkami. 1 2 Podobnie dwie krawędzie grafu są sąsiednie, jeśli mają przynajmniej jeden wspólny wierzchołek. 1 2 3
8
Stopień wejściowy 2 3 1 Znamy stopnie grafu. W grafach skierowanych oprócz stopni grafu są stopnie wejściowe 4
9
Stopień wyjściowy 2 3 1 I wyjściowe 4
10
2 3 1 Jaka może być droga pomiędzy wierzchołkami ^ 1 i ^ 5? 5 4
11
2 3 1 Droga prowadzi krawędziami między wierzchołkami 1 – 4 – 5 lub ^ 5 4
12
2 3 1 1 – 2 – 3 – 4 – 5. Dlaczego nie można udać się z wierzchołka numer 1 do wierzchołka numer 5 bezpośrednio ? 5 4
13
Ścieżka to taka droga w której wierzchołki są różne 1-2-3-4-5
Droga to ciąg krawędzi wzajemnie incydentnych Każda ścieżka jest drogą nie każda droga jest ścieżką
14
Digraf symetryczny. 1 2 Digraf asymetryczny 1 2
Digraf nazywamy symetrycznym wtedy i tylko wtedy gdy dla każdych dwóch wierzchołków 1, 2 V prawdziwa jest implikacja: że dla każdego łuku/krawędzi między wierzchołkami 1-2 istnieje łuk/krawędź 2-1. Łatwo się domyśleć, że digraf asymetryczny posiada tylko jeden łuk/krawędź 1 2
15
2 1 3 5 4 Cykl to taka droga w której wierzchołek „startowy” i „końcowy” to ten sam wierzchołek Już wiemy co to jest cykl…
16
2 1 3 5 4 Graf acykliczny Graf nie posiada „połączenia” by mógł powstać cykl
17
CYKL EULERA R 2 3 1 Cykl Ojlera to ścieżka w której droga prowadzi dokładnie raz przez wszystkie krawędzie grafu 5 4 1 – 2 – 3 – 1 – 4 – 5 – 1
18
CYKL HAMILTONA R 2 3 1 Cykl Hamiltona to ścieżka w której droga prowadzi dokładnie raz przez wszystkie wierzchołki grafu 5 4 1 – 3 – 2 – 4 – 5 – 1
19
Co można powiedzieć o tym grafie?
1 2 1) Jest acykliczny 2) Posiada dwa wierzchołki i jedną krawędź skierowaną, wierzchołki są incydentne (sąsiadujące) 3) Wierzchołek 1 to źródło wierzchołek 2 to ujście ^ ^ Każdy skończony graf acykliczny posiada co najmniej jedno źródło i jedno ujście
20
Co można powiedzieć o tym grafie?
1 2 3 4 5 1) Jest acykliczny 2) Posiada pięć wierzchołków i pięć krawędzi skierowanych 3) Wierzchołki 3 i 5 to źródła wierzchołki 4 i 1 to ujścia
21
Co można powiedzieć o tym grafie?
1 1) Jest cykliczny, „eulerowski” i „hamiltonowski” 2) Posiada jeden wierzchołek i jedną krawędź skierowaną 3) Źródło jest jednocześnie ujściem Graf z jedną krawędzią skierowaną na jeden i ten sam wierzchołek nazywamy pętlą
22
Macierz sąsiedztw
23
1 4 5 2 3 6 1 2 3 4 5 6 Macierz sąsiedztw jest to tablica w której wiersze określają początek krawędzi a kolumny jej koniec. Jaka jest najkrótsza droga między V1 a V3?
24
3 1 4 1 5 3 4 6 1 2 3 1 2 3 6 1 2 3 4 5 6 A to przykład grafu z wagami krawędzi. Wagi krawędzi można traktować jako koszt „podróży” między wierzchołkami grafu. Jaka jest najkrótsza (najlżejsza) droga między V1 a V3 A jaka najdłuższa (najcięższa)? Uwaga! Wagi mogą być wartością ujemną! Jak znaleźć najkrótszą drogę między dwoma wierzchołkami
25
Algorytm Dijkstry Algorytmu tego nie wolno używać kiedy w grafie występują ujemne wartości wag.
26
http://optlab-server. sce. carleton. ca/POAnimations2007/DijkstrasAlgo
27
Dany jest graf skierowany W grafie wyróżniamy jeden z wierzchołków
Dany jest graf skierowany W grafie wyróżniamy jeden z wierzchołków. Tutaj jest to wierzchołek 1. Będziemy wyznaczać najniższe koszty dojścia od wyróżnionego wierzchołka do wszystkich pozostałych wierzchołków w grafie oraz najkrótsze ścieżki pomiędzy wyróżnionym wierzchołkiem, a wszystkimi pozostałymi wierzchołkami w grafie.
28
Tworzymy dwa zbiory S (wierzchołki, dla których są policzone najkrótsze ścieżki) oraz Q (wierzchołki jeszcze nie przetworzone). Zbiór S jest początkowo pusty. Zbiór Q obejmuje wszystkie wierzchołki grafu.
29
Dla każdego wierzchołka v ustawiamy d(v) ← ¥
Dla każdego wierzchołka v ustawiamy d(v) ← ¥. Dla wybranego wierzchołka vo ustawiamy d(vo)← 0. Ustawiamy również p(v) ← 0. indeks 1 2 3 4 5 6 d(indeks) p(indeks)
30
W zbiorze Q szukamy wierzchołka o najmniejszym d
W zbiorze Q szukamy wierzchołka o najmniejszym d. Jest to wierzchołek 1 (czyli nasze vo). Wierzchołek ten przenosimy do zbioru S. Następnie sprawdzamy wartość d wszystkich sąsiadów przeniesionego wierzchołka (2 i 4). Jeśli ich d jest większe od kosztu d(1) + waga krawędzi do sprawdzanego wierzchołka, to modyfikujemy odpowiednio d i p dla tych wierzchołków. indeks 1 2 3 4 5 6 d(indeks) p(indeks)
31
W zbiorze Q szukamy wierzchołka o najmniejszym d
W zbiorze Q szukamy wierzchołka o najmniejszym d. Są dwa takie wierzchołki: 2 i 4 o d=3. Wybieramy arbitralnie wierzchołek nr 2 i przenosimy go do zbioru S. Wierzchołek 2 posiada tylko jednego sąsiada - 3. Modyfikujemy odpowiednio d[3] i p[3]. indeks 1 2 3 4 5 6 d(indeks) p(indeks)
32
W zbiorze Q szukamy wierzchołka o najmniejszym d
W zbiorze Q szukamy wierzchołka o najmniejszym d. Teraz jest to wierzchołek 4 o d[4] = 3. Przenosimy go do zbioru S. Wierzchołek 4 posiada tylko jednego sąsiada - 5. Modyfikujemy odpowiednio d[5] i p[5]. indeks 1 2 3 4 5 6 d(indeks) p(indeks)
33
W zbiorze Q szukamy wierzchołka o najmniejszym d. Jest to wierzchołek 5 o d[5] = 4. Przenosimy go do zbioru S. Wierzchołek 5 posiada dwóch sąsiadów: 3 i 6. Ponieważ d[3]=5 jest takie samo jak d[5] + waga(5-3) = 4+1=5, nie modyfikujemy parametrów d i p dla wierzchołka 3. Do modyfikacji jest tylko wierzchołek 6. indeks 1 2 3 4 5 6 d(indeks) p(indeks)
34
W zbiorze Q szukamy wierzchołka o najmniejszym d
W zbiorze Q szukamy wierzchołka o najmniejszym d. Jest to wierzchołek 3 o d[3] = 5. Przenosimy go do zbioru S. Wierzchołek 3 posiada dwóch sąsiadów: 1 i 6. Ponieważ wierzchołek 1 jest już w zbiorze S, to nie bierzemy go pod uwagę. Drugi wierzchołek posiada d[6]=6, czyli takie samo jak d[3]+waga(3-6)=5+1=6. Nie modyfikujemy zatem wierzchołka 6. indeks 1 2 3 4 5 6 d(indeks) p(indeks)
35
Do zbioru S przenosimy ostatni wierzchołek z Q
Do zbioru S przenosimy ostatni wierzchołek z Q. Wierzchołek ten nie posiada sąsiadów w Q połączonych z nim krawędzią, dlatego nic nie modyfikujemy. Ponieważ zbiór Q stał się pusty, algorytm kończymy. Jest wiele algorytmów znajdowania drogi. Ich zastosowanie uzależnione jest od rodzaju grafu (cykliczny, acykliczny) czy wartości wag (może się zdarzyć, że wagi maja wartości ujemne) indeks 1 2 3 4 5 6 d(indeks) p(indeks)
36
Zastosowanie algorytmów grafów skierowanych
Programy do nawigacji samochodowych W systemach kartograficznych W systemach hydrologicznych Analizowanie DNA Do czego można wykorzystać grafy?
37
Graf de Bruijna Gn rzędu n
2n-1 wierzchołków – słowa binarne (n-1)-literowe krawędzie: a1a2…an-1 → a2…an-10 (etykieta: 0) i a1a2…an-1→a2…an-11 (etykieta: 1) cykle Eulera w grafach de Bruijna odpowiadają ciągom de Bruijna! Są różne rodzaje grafów
38
Zastosowania grafu de Bruijna
W elektronice, W sieciach komputerowych, W biologii obliczeniowej, W kryptografii
39
Algorytm Bellmana-Forda
Algorytm służy do rozwiązywania problemu najkrótszych ścieżek z jednego źródła w ogólnym przypadku, gdzie wagi mogą być ujemne (w(u,v) ). Algorytm zwraca wartość FALSE, jeśli w grafie istnieje cykl o ujemnej wadze osiągalny ze źródła. W przeciwnym wypadku oblicza najkrótsze ścieżki i ich wagi.
40
Algorytm Bellmana-Forda
Algorytm znajduje najkrótsze ścieżki między wszystkimi parami wierzchołków skierowanych w grafie skierowanym G = (V,E). Zakłada się, że wagi mogą być ujemne, ale brak jest cykli z wagami ujemnymi. Algorytm wylicza rekurencyjnie macierz najkrótszych ścieżek .
41
Algorytm Floyda-Warshalla służy do znajdowania najkrótszych ścieżek pomiędzy wszystkimi parami wierzchołków w grafie ważonym. Pseudokod algorytmu Floyda-Warshalla
42
Kolorowanie grafu Kolorowanie grafu to przyporządkowanie wierzchołkom grafu liczb naturalnych w taki sposób, aby końce żadnej krawędzi nie miały przypisanej tej samej liczby (koloru). Optymalnym pokolorowaniem grafu nazywamy pokolorowanie zawierające najmniejszą możliwą liczbę kolorów. Liczbą chromatyczną grafu G nazywamy liczbę χ(G) równą minimalnej liczbie kolorów wystarczającej do prawidłowego pokolorowania wierzchołków grafu G. Problem znalezienia optymalnego pokolorowania a także znalezienia liczby chromatycznej jest NP zupełny.
43
Do kolorowania grafu służą następujące algorytmy:
Algorytm zachłanny Algorytm DSATUR Algorytm MAXIS Algorytm zachłanny - przechodząc kolejno wszystkie wierzchołki grafu, kolorujemy każdy z nich najmniejszym możliwym kolorem, tzn. takim, który dotychczas nie został użyty dla żadnego z sąsiadów rozważanego wierzchołka.
44
Algorytm DSATUR działa podobnie jak algorytm zachłanny ale kolejność rozpatrywania wierzchołków grafu wyznaczana jest dynamicznie w zależności od liczby kolorów, które mogą być użyte do pomalowania poszczególnych wierzchołków. Najpierw kolorowane są te wierzchołki, dla których jest najmniej możliwości. Algorytm MAXIS opiera się na algorytmie znajdującym największy zbiór niezależny wśród wierzchołków danego grafu (żadne dwa wierzchołki takiego zbioru nie sąsiadują ze sobą).
45
Kolorowanie grafów ma wiele odmian, m.in.:
Kolorowanie krawędzi – jest to przyporządkowywanie krawędziom liczb naturalnych symbolizujących kolory Listowe kolorowanie – kolorowanie wierzchołków, przy czym każdy wierzchołek posiada odpowiadającą mu listę kolorów Całkowite kolorowanie – kolorowanie wierzchołków oraz krawędzi Harmoniczne kolorowanie – kolorowanie wierzchołków, gdzie każda para kolorów użyta jest co najwyżej raz w stosunku do sąsiadującej pary wierzchołków Kompletne kolorowanie - kolorowanie wierzchołków, gdzie każda para kolorów użyta jest co najmniej raz w stosunku do sąsiadującej pary wierzchołków Dokładne kolorowanie - kolorowanie wierzchołków, gdzie każda para kolorów użyta jest dokładnie raz w stosunku do sąsiadującej pary wierzchołków
46
Dziękujemy za uwagę
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.