Algorytmy grafowe Reprezentacja w pamięci

Slides:



Advertisements
Podobne prezentacje
PRAM.
Advertisements

Algorytmy sortowania i porządkowania
Algorytmy sortowania i przeszukiwania
Algorytmy – c.d. złożoność algorytmów struktury danych
Algorytmy – c.d. struktury danych złożoność algorytmów
DOMINOWANIE W GRAFACH Magdalena Lemańska.
Zaawansowane techniki algorytmiczne
ALGORYTMY GRAFOWE.
Grażyna Mirkowska PJWSTK 15 listopad 2000
Grafy inaczej, czyli inne modele grafów
Homologia, Rozdział I „Przegląd” Homologia, Rozdział 1.
ELEMENTY TEORII GRAFÓW
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Algorytm Dijkstry (przykład)
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Ciągi de Bruijna generowanie, własności
Współprogramy II W tym wykładzie pogłębimy naszą znajomość z współprogramami. Omówimy współpracę procedur rekurencyjnych i współprogramów, wprowadzimy.
ALGORYTMY GEOMETRYCZNE.
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 4. Skojarzenia Skojarzenie w grafie G to niezależny zbiór krawędzi (rozłączne, bez wspólnych konców). Skojarzenie M w G traktujemy jak podgraf.
WYKŁAD 8. Siła spójności A,B – dowolne podzbiory V(G)
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
WYKŁAD 4. Skojarzenia Skojarzenie w grafie G to niezależny zbiór krawędzi (rozłączne, bez wspólnych konców). Skojarzenie M w G traktujemy jak podgraf G.
Teoretyczne podstawy informatyki
Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil
Materiały pomocnicze do wykładu
12 grudnia 2001Matematyka Dyskretna, Elementy Kombinatoryki G.Mirkowska, PJWSTK 1 Wykład 11 Elementy Kombinatoryki.
Macierz incydencji Macierzą incydencji grafu skierowanego D = (V, A), gdzie V = {1, ..., n} oraz A = {a1, ..., am}, nazywamy macierz I(D) = [aij]i=1,...,n,
Hipergrafy Hipergraf jest rozszerzeniem pojęcia grafu. Hipergraf różni się od grafu nieskierowanego tym, że każda hiperkrawędź może być incydentna do dowolnej.
FP-Growth Adam Pieśkiewicz Kamil Niezręcki Krzysztof Grześkowiak
ALGORYTMY I STRUKTURY DANYCH
Matematyka Dyskretna, G.Mirkowska PJWSTK
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
Minimalne drzewa rozpinające
O relacjach i algorytmach
Algorytmy i struktury danych
SKIEROWANE Marek Bil Krzysztof Fitrzyk Krzysztof Godek.
DRZEWA BINARNE Emilia Krukowska.
Przegląd podstawowych algorytmów
Algorytmy i struktury danych
Algorytmy i struktury danych
Reprezentacja grafów i operacje na grafach na przykładzie algorytmu Dijkstry i algorytmu na odnajdywanie Silnych Spójnych Składowych Temat Opracowali:
Złożone typy danych Listy Tworzenie elastycznych baz danych
Rodzaje, przechodzenie grafu
autorzy: Michał Przykucki Małgorzata Sulkowska
3. SPOSOBY REPREZENTACJI GRAFÓW
Tablice w Turbo Pascalu.
Geometria obliczeniowa Wykład 12
Algorytmy i Struktury Danych
Geometria obliczeniowa Wykład 13 Planowanie ruchu 1.Znajdywanie ścieżki między dwoma punktami. 2.Ruch postępowy robota wielokątnego na płasz- czyźnie.
Algorytmy i Struktury Danych Grafy
Drogi i cykle Eulera w grafach nieskierowanych
Algorytmy grafowe Minimalne drzewa rozpinające
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Przeszukiwanie wszerz
Literatura podstawowa
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
Autor: Michał Salewski
Grafy.
ALGORYTMY I STRUKTURY DANYCH
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Algorytm Dijkstry Podano graf Zdefiniowano jego listę sąsiedztwa 1 2 3
Kompresja grafu webowego
Macierzowe systemy kodowania konstytucji cząsteczki
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
Zarządzanie projektami
Zapis prezentacji:

Algorytmy grafowe Reprezentacja w pamięci Przeszukiwanie grafów wszerz i w głąb Sortowanie topologiczne Silnie spójne składowe Minimalne drzewa rozpinające Najkrótsze ścieżki z jednym źródłem

Grafy. Definicje. Graf skierowany G jest parą (V, E), gdzie V jest skończonym zbiorem wierzchołków, E jest relacją binarną w V, nazywaną zbiorem krawędzi. W grafie nieskierowanym G = (V, E) zbiór krawędzi E to zbiór nieuporządkowanych par wierzchołków. Graf skierowany Graf nieskierowany

Reprezentacja w pamięci grafów nieskierowanych 1 2 3 4 5 6 4 2 3 5 6 1 a) Listy sąsiedztwa grafu b) Macierz sąsiedztwa grafu

Reprezentacja w pamięci grafów skierowanych 1 2 3 4 5 6 2 3 4 5 6 1 a) Listy sąsiedztwa grafu b) Macierz sąsiedztwa grafu

Przeszukiwanie wszerz BFS(G, s) 1 for każdy wierzchołek uV[G]-{s} 10 do u := head[Q] 2 do color[u] := BIAŁY 11 for każdy vAdj[u] 3 d[u] :=  12 do if color[v] = BIAŁY 4 [u] := NIL 13 then color[v] := SZARY 5 color[s] := SZARY 14 d[v] := d[u] + 1 6 d[s] := 0 15 [v] := u 7 [s] := NIL 16 ENQUEUE(Q, v) 8 Q := {s} 17 DEQUEUE(Q) 9 while Q   18 color[u] := CZARNY

Przykład przeszukiwania wszerz 1 4 2 3 5 6  1 4 2 3 5 6  1 4 2 3 5 6 Q Q Q 1 5 3 4 4 6 1 2 2 2 2 1 4 2 3 5 6  1 4 2 3 5 6 1 4 2 3 5 6 Q Q Q 2 5 3 4 6 6 1 1 2 2 2 2

Przeszukiwanie w głąb DFS(G) DFS-Visit(u) 1 for każdy wierzchołek uV[G] 1 color[u] := SZARY 2 do color[u] := BIAŁY 2 d[u] := time := time + 1 3 [u] := NIL 3 for każdy vAdj[u] 4 time := 0 4 do if color[v] = BIAŁY 5 for każdy wierzchołek uV[G] 5 then [v] := u 6 do if color[u] = BIAŁY 6 DFS-Visit(v) 7 then DFS-Visit(u) 7 color[u] := CZARNY 8 f[u] := time := time + 1

Przykład przeszukiwania w głąb 1 4 2 3 5 6 1/ 2/ 1 4 2 3 5 6 1/ 2/ 3/6 4/5 1 2 3 5 6 1/10 3/6 4/5 2/7 8/9 4 1 4 2 3 5 6 1/ 2/ 3/ 4/ 1 4 2 3 5 6 1/ 3/6 4/5 2/7 8/ 1 4 2 3 5 6 1/10 3/6 4/5 2/7 8/9 11/12

Sortowanie topologiczne Sortowanie topologiczne acyklicznego grafu skierowanego G = (V, E) polega na uporządkowaniu wszystkich jego wierzchołków w taki sposób, że jeśli graf G zawiera krawędź (u, v), to w tym porządku wierzchołek u występuje przed wierzchołkiem v. Topological-Sort (G) 1 wykonaj DFS(G) w celu obliczenia czasów przetworzenia f[v] dla wszystkich wierzchołków v. 2 wstaw każdy wierzchołek v na początek listy, kiedy tylko zostanie przetworzony. 3 return lista wierzchołków

Przykład sortowania topologicznego 1 4 2 3 5 6 1/10 3/6 4/5 2/7 8/9 11/12 11/12 1/10 4 1 5 8/9 2 2/7 3/6 4/5 3 6

Silnie spójne składowe Silnie spójną składową skierowanego grafu G = (V, E) jest maksymalny zbiór wierzchołków U  V taki, że dla każdej pary wierzchołków u i v z U wierzchołki u i v są osiągalne jeden z drugiego. Strongly-Connected-Components (G) 1 wykonaj DFS(G) w celu obliczenia czasów przetworzenia f[u] dla wszystkich wierzchołków u. 2 oblicz GT 3 wykonaj DFS(GT), ale w głównej pętli procedury DFS rozważaj wierzchołki w kolejności malejących wartości f[u] (obliczonych w wierszu 1) 4 wypisz wierzchołki z każdego drzewa w lesie przeszukiwania w głąb z kroku 3 jako oddzielną silnie spójną składową

Silnie spójne składowe, przykład g b d f 13/14 2/7 11/16 3/4 12/15 8/9 5/6 c e h 1/10 a g b d f c e h abe