Minimalne drzewa rozpinające

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

STRUKTURY DANYCH.
Algorytmy sortowania i porządkowania
DOMINOWANIE W GRAFACH Magdalena Lemańska.
Grafy spełniające nierówność Γ(G) < IR(G)
Zadania przygotowawcze na egzamin
Zaawansowane techniki algorytmiczne
Geometria obrazu Wykład 4
ALGORYTMY GRAFOWE.
Grażyna Mirkowska PJWSTK 15 listopad 2000
Grafy inaczej, czyli inne modele grafów
Kolorowanie grafów Niech G = (V, E) będzie spójnym grafem nieskierowanym bez pętli. Kolorowaniem wierzchołków grafu nazywa się przypisanie wierzchołkom.
ELEMENTY TEORII GRAFÓW
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Algorytm Dijkstry (przykład)
ALGORYTMY I STRUKTURY DANYCH
Twierdzenie Thevenina-Nortona
Ciągi de Bruijna generowanie, własności
Geometria obliczeniowa Wykład 1
Geometria obliczeniowa Wykład 2
ALGORYTMY GEOMETRYCZNE.
WYKŁAD 5. Skojarzenia – ciąg dalszy
WYKŁAD 2. Kolorowanie wierzchołków
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 8. Siła spójności Wierzchołek v nazywamy wierzchołkiem cięcia grafu G, gdy podgraf G-v ma więcej składowych spójności niż G. Krawędź e nazywamy.
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 5. Skojarzenia – ciąg dalszy
Elementy Kombinatoryki (c.d.)
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,
Algorytmy grafowe Reprezentacja w pamięci
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 Michał Kucal
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
Przepływy w sieciach. Twierdzenie minimaksowe.
Geometria obliczeniowa Wykład 8
Graf - jest to zbiór wierzchołków, który na rysunku przedstawiamy za pomocą kropek oraz krawędzi łączących wierzchołki. Czasami dopuszcza się krawędzie.
Algorytmy i struktury danych
Geometria obliczeniowa Wykład 3
Reprezentacja grafów i operacje na grafach na przykładzie algorytmu Dijkstry i algorytmu na odnajdywanie Silnych Spójnych Składowych Temat Opracowali:
Geometria obliczeniowa Wykład 6
Rodzaje, przechodzenie grafu
Algorytm Dijkstry 1 Zbiory: T - zbiór wierzchołków
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.
Geometria obrazu Wykład 6
PLANARNOŚĆ i KOLOROWANIE MAP. Problem Jaka jest minimalna liczba kolorów, za pomocą których można pokolorować obszary województw na mapie Polski tak,
Algorytmy i Struktury Danych Grafy
Drogi i cykle Eulera w grafach nieskierowanych
WĘDRÓWKI PO GRAFACH Obchody Eulera Cykle Hamiltona.
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
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)
WYKŁAD 5. Skojarzenia – ciąg dalszy Skojarzenie w grafie G to niezależny zbiór krawędzi (rozłączne, bez wspólnych końców). α’(G) – moc największego skojarzenia.
Geometria obliczeniowa Wykład 2
Grafy.
ALGORYTMY I STRUKTURY DANYCH
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Geometria obrazu Wykład 5 Segmentacja Grafy sąsiedztwa. 1.Grafy definiowane przez różne obszary. 2.Minimalne drzewo rozpinające. Metody obszarowe. 1.Drzewa.
Geometria obliczeniowa Wykład 6
Działania na grafach Autor: Anna Targońska.
Geometria obliczeniowa Wykład 1
Geometria obliczeniowa Wykład 6
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Minimalne drzewa rozpinające Podgraf T spójnego grafu G nazywa się jego drzewem rozpinającym, jeśli T jest acykliczny i łączy wszystkie wierzchołki G. Jeśli krawędziom przypisane są wagi, i suma wag krawędzi T jest minimalna, T nazywamy minimalnym drzewem rozpinającym. 4 8 7 9 14 10 2 1 11 6 Przykład minimalnego drzewa rozpinającego

Minimalne drzewa rozpinające (algorytm ogólny) Podczas wykonywania algorytmu jest utrzymywany zbiór A – podzbiór minimalnego drzewa rozpinającego. W każdym kroku algorytmu jest wyznaczana krawędź, którą można dodać do A bez naruszenia tego niezmiennika. Taką krawędź nazywamy krawędzią bezpieczną. Generic-MST A :=  while A nie tworzy drzewa rozpinającego do znajdź krawędź (u, v), która jest bezpieczna dla A A := A  {(u, v)} return A

Przekroje Przekrojem (S, V-S) grafu nieskierowanego nazywamy podział V na zbiory S i V-S. Krawędź (u, v)  E krzyżuje się z przekrojem (S, V-S), jeśli jeden z jej końców należy do S, a drugi do V-S. Przekrój uwzględnia zbiór krawędzi A, jeśli żadna z krawędzi A nie krzyżuje się z tym przekrojem. Krawędź krzyżująca się z przekrojem jest krawędzią lekką, jeśli jej waga jest najmniejsza sposród wszystkich wag krawędzi krzyżujących się z tym przekrojem.

4 8 7 9 14 10 2 1 11 6 u v x y

Twerdzenie o bezpiecznej krawędzi Niech G = (V, E) będzie spójnym grafem nieskierowanym z funkcją wagową w i o wartościach rzeczywistych określoną na E. Niech A będzie podzbiorem E zawartym w pewnym minimalnym drzewie rozpinającym grafu G, niech (S, V-S) będzie dowolnym przekrojem G uwzględniającym A i niech (u, v) będzie krawędzią lekką krzyżującą się z (S, V-S). Wtedy krawędź (u, v) jest bezpieczna dla A.

Algorytm Kruskala MST-Kruskal(G, w) 1 A :=  2 for każdy wierzchołek vV[G] 3 do Make-Set(v) 4 posortuj krawędzie z E niemalejąco względem wag w 5 for każda krawędź (u,v)  E, w kolejności niemalejących wag 6 do if Find-Set(u)  Find-Set(v) 7 then A := A  {(u,v)} 8 Union(u,v) 9 return A

Algorytm Kruskala (przykład) 4 8 7 9 14 10 2 1 11 6 4 8 7 9 14 10 2 1 11 6 4 8 7 9 14 10 2 1 11 6 4 8 7 9 10 11 2 6 1 2 4 8 7 9 14 10 2 1 11 6 4 8 7 9 14 10 2 1 11 6

Algorytm Prima MST-Prim(G, w, r) 1 Q := V[G] 2 for każdy uQ 3 do key[u] :=  4 key[r] := 0 5  [r] := NIL 6 while Q   7 do u := Extract-Min(Q) 8 for każdy v  Adj[u] 9 do if vQ i w(u,v) < key[v] 10 then  [v] := u 11 key[v] := w(u,v)

Algorytm Prima (przykład) 8 7 4 8 7 9 14 10 2 1 11 6 4 9 14 10 2 1 11 7 8 6 4 8 7 9 14 10 2 1 11 6 2 1 4 8 7 9 10 11 6 4 8 7 9 14 10 2 1 11 6 8 7 4 9 14 10 11 2 7 8 6 1 2