Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Podobne dokumenty
Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Matematyczne Podstawy Informatyki

Graf. Definicja marca / 1

Podstawowe własności grafów. Wykład 3. Własności grafów

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Matematyka dyskretna

Minimalne drzewa rozpinające

Teoria grafów i sieci 1 / 188

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Algorytmika Problemów Trudnych

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

a) 7 b) 19 c) 21 d) 34

Algorytmiczna teoria grafów

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

Matematyczne Podstawy Informatyki

Wykłady z Matematyki Dyskretnej

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Digraf. 13 maja 2017

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Suma dwóch grafów. Zespolenie dwóch grafów

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Złożoność obliczeniowa klasycznych problemów grafowych

Programowanie sieciowe. Tadeusz Trzaskalik

Opracowanie prof. J. Domsta 1

Znajdowanie skojarzeń na maszynie równoległej

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania

Ilustracja S1 S2. S3 ściana zewnętrzna

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Ogólne wiadomości o grafach

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Programowanie dynamiczne i algorytmy zachłanne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Algorytmiczna teoria grafów Przepływy w sieciach.

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Podejście zachłanne, a programowanie dynamiczne

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Wybrane podstawowe rodzaje algorytmów

Kolorowanie wierzchołków grafu

7. Teoria drzew - spinanie i przeszukiwanie

Algorytmy stochastyczne laboratorium 03

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Lista 4. Kamil Matuszewski 22 marca 2016

E ' E G nazywamy krawędziowym zbiorem

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Sprawozdanie do zadania numer 2

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

Wykład 4. Droga i cykl Eulera i Hamiltona

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

TEORETYCZNE PODSTAWY INFORMATYKI

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Matematyka dyskretna - 7.Drzewa

Kolorowanie wierzchołków

SKOJARZENIA i ZBIORY WEWN. STABILNE WIERZCH. Skojarzeniem w grafie G nazywamy dowolny podzbiór krawędzi parami niezależnych.

Zadania z egzaminów z Algorytmiki

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Sieć (graf skierowany)

KURS MATEMATYKA DYSKRETNA

Schemat sprawdzianu. 25 maja 2010

Wyznaczanie optymalnej trasy problem komiwojażera

TEORIA GRAFÓW I SIECI

TEORIA GRAFÓW I SIECI

Grafy. Graf ( graf ogólny) to para G( V, E), gdzie:

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Luty 2001 Algorytmy (4) 2000/2001

Algorytmy i Struktury Danych.

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Algorytmiczna teoria grafów

Konspekt. 15 października Wykład III (16 października 2014 r.): optymalizacja kombinatoryczna na grafach (metody sieciowe)

6. Wstępne pojęcia teorii grafów

Zagadnienie najkrótszej drogi w sieci

jest ciągiem elementów z przestrzeni B(R, R)

Temperatura w atmosferze (czy innym ośrodku) jako funkcja dł. i szer. geogr. oraz wysokości.

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Algorytmy aproksymacyjne dla problemów stochastycznych

TEORIA GRAFÓW I SIECI

Matematyka dyskretna - 5.Grafy.

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Rozdział 8 PROGRAMOWANIE SIECIOWE

Macierze. Rozdział Działania na macierzach

Liga zadaniowa Seria I, 2014/2015, Piotr Nayar, Marta Strzelecka

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Transkrypt:

Wykład 6. Drzewa cz. II 1 / 65

drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem grafu G (T G) oraz zawiera wszystkie jego wierzchołki, czyli V G = V T. Jeżeli graf G nie jest grafem spójnym, to zbiór drzew spinających każdej składowej tego grafu, nazywamy lasem rozpinającym grafu G. x 5 e 4 x 4 x 5 x 4 x 5 x 4 e 5 e 11 e 10 e 3 e 11 e 10 e 11 e 3 e 12 e 9 x x 1 6 x 3 e 12 e 9 x x 1 6 x 3 e 12 x x 1 6 x 3 e 6 e 7 e 8 e 2 e 7 e 8 e 7 e 2 x 1 x 2 e 1 x 1 x 2 x 1 x 2 e 1 a) graf G b) 2 / 65

drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem grafu G (T G) oraz zawiera wszystkie jego wierzchołki, czyli V G = V T. Jeżeli graf G nie jest grafem spójnym, to zbiór drzew spinających każdej składowej tego grafu, nazywamy lasem rozpinającym grafu G. x 5 e 4 x 4 x 5 x 4 x 5 x 4 e 5 e 11 e 10 e 3 e 11 e 10 e 11 e 3 e 12 e 9 x x 1 6 x 3 e 12 e 9 x x 1 6 x 3 e 12 x x 1 6 x 3 e 6 e 7 e 8 e 2 e 7 e 8 e 7 e 2 x 1 x 2 e 1 x 1 x 2 x 1 x 2 e 1 a) graf G b) 3 / 65

Drzewo spinające Drzewa spinające Zliczanie drzew spinających x 5 e 4 x 4 x 5 x 4 x 5 x 4 e 5 e 11 e 10 e 3 e 11 e 10 e 11 e 3 e 12 e 9 x x 1 6 x 3 e 12 e 9 x x 1 6 x 3 e 12 x x 1 6 x 3 e 6 e 7 e 8 e 2 e 7 e 8 e 7 e 2 x 1 x 2 e 1 x 1 x 2 x 1 x 2 e 1 a) graf G b) Graf G ma 320 drzew spinających. Twierdzenie Każdy graf spójny ma drzewo spinające. 4 / 65

Drzewo spinające Drzewa spinające Zliczanie drzew spinających x 5 e 4 x 4 x 5 x 4 x 5 x 4 e 5 e 11 e 10 e 3 e 11 e 10 e 11 e 3 e 12 e 9 x x 1 6 x 3 e 12 e 9 x x 1 6 x 3 e 12 x x 1 6 x 3 e 6 e 7 e 8 e 2 e 7 e 8 e 7 e 2 x 1 x 2 e 1 x 1 x 2 x 1 x 2 e 1 a) graf G b) Graf G ma 320 drzew spinających. Twierdzenie Każdy graf spójny ma drzewo spinające. 5 / 65

Drzewo spinające Drzewa spinające Zliczanie drzew spinających x 5 e 4 x 4 x 5 x 4 x 5 x 4 e 5 e 11 e 10 e 3 e 11 e 10 e 11 e 3 e 12 e 9 x x 1 6 x 3 e 12 e 9 x x 1 6 x 3 e 12 x x 1 6 x 3 e 6 e 7 e 8 e 2 e 7 e 8 e 7 e 2 x 1 x 2 e 1 x 1 x 2 x 1 x 2 e 1 a) graf G b) Graf G ma 320 drzew spinających. Twierdzenie Każdy graf spójny ma drzewo spinające. 6 / 65

Algorytm generowania drzewa spinającego. Zliczanie drzew spinających 1 T G 2 wybierz cykl w grafie T 3 usuwamy z cyklu dowolną krawędź e 4 T T {e} 5 jeżeli w T są inne cykle, to ponownie wybierz krok 1. 6 jeżeli nie ma cykli w T, to T jest drzewem spinającym graf G Własność Każde drzewo spinające T lub las drzew spinających otrzymujemy z grafu G przez usunięcie pewnej liczby krawędzi grafu G i pozostawienie wszystkich jego wierzchołków. 7 / 65

Rząd cykliczności. Drzewa spinające Zliczanie drzew spinających Rzędem cykliczności lub liczbą cyklomatyczną grafu G nazywamy liczbę λ(g) := m n + k. gdzie m = E liczba krawędzi w grafie G, n = V liczba wierzchołków w grafie G, k liczba składowych w grafie G. Własność Łączna liczba krawędzi usuniętych z grafu G w efekcie działania poprzedniego algorytmu wynosi λ(g). 8 / 65

Rząd cykliczności. Drzewa spinające Zliczanie drzew spinających Rzędem cykliczności lub liczbą cyklomatyczną grafu G nazywamy liczbę λ(g) := m n + k. gdzie m = E liczba krawędzi w grafie G, n = V liczba wierzchołków w grafie G, k liczba składowych w grafie G. Własność Łączna liczba krawędzi usuniętych z grafu G w efekcie działania poprzedniego algorytmu wynosi λ(g). 9 / 65

Liczba drzew spinających Drzewa spinające Zliczanie drzew spinających Twierdzenie Graf K n ma n n 2 drzew spinających. Twierdzenie Graf K 2,s ma s 2 s 1 drzew spinających. 10 / 65

Liczba drzew spinających Drzewa spinające Zliczanie drzew spinających Twierdzenie Graf K n ma n n 2 drzew spinających. Twierdzenie Graf K 2,s ma s 2 s 1 drzew spinających. 11 / 65

Twierdzenie o liczbie drzew spinających grafu Zliczanie drzew spinających 4 Twierdzenie Niech G będzie spójnym grafem prostym o n wierzchołkach i niech M = [m ij] będzie macierzą wymiaru n n, taką, że m ii = deg(v i), m ij = 1, gdy wierzchołki v i i v j są sąsiednie, oraz m ij = 0 w przeciwnym razie. Wtedy liczba drzew spinających graf G jest równa dopełnieniu algebraicznemu dowolnego wyrazu macierzy M. 1 M = 2 1 0 1 1 3 1 1 0 1 2 1 1 1 1 3 Mamy 8 drzew spinających. 3 2 Dopełnienie algebraiczne wyrazu m 44 wynosi [ ] 2 1 0 ( 1) 4+4 det 1 3 1 = 12 (2 + 2) = 8 0 1 2 12 / 65

Twierdzenie o liczbie drzew spinających grafu Zliczanie drzew spinających 4 Twierdzenie Niech G będzie spójnym grafem prostym o n wierzchołkach i niech M = [m ij] będzie macierzą wymiaru n n, taką, że m ii = deg(v i), m ij = 1, gdy wierzchołki v i i v j są sąsiednie, oraz m ij = 0 w przeciwnym razie. Wtedy liczba drzew spinających graf G jest równa dopełnieniu algebraicznemu dowolnego wyrazu macierzy M. 1 M = 2 1 0 1 1 3 1 1 0 1 2 1 1 1 1 3 Mamy 8 drzew spinających. 3 2 Dopełnienie algebraiczne wyrazu m 44 wynosi [ ] 2 1 0 ( 1) 4+4 det 1 3 1 = 12 (2 + 2) = 8 0 1 2 13 / 65

Zliczanie drzew spinających 1 2 1 2 1 2 4 3 4 3 4 3 1 2 1 2 1 2 4 3 4 3 4 3 1 2 1 2 4 1 4 3 4 3 3 2 14 / 65

Metody generowania MST Własności MST Euklidesowe MST Minimalne drzewo spinające - Minimal Spanning Tree Niech G = (V, E, w) i niech T = (V, E T ) będzie drzewem spinającym graf G. Wagą drzewa T nazywamy liczbę w(t ) := w(e) e E T Drzewo spinające T nazywamy minimalnym drzewem spinającym MST grafu G, jeśli T ma najmniejszą wagę spośród wszystkich drzew spinających graf G: w(t ) min 3 7 4 8 2 6 15 / 65

Metody generowania MST Własności MST Euklidesowe MST Minimalne drzewo spinające - Minimal Spanning Tree Niech G = (V, E, w) i niech T = (V, E T ) będzie drzewem spinającym graf G. Wagą drzewa T nazywamy liczbę w(t ) := w(e) e E T Drzewo spinające T nazywamy minimalnym drzewem spinającym MST grafu G, jeśli T ma najmniejszą wagę spośród wszystkich drzew spinających graf G: w(t ) min 3 7 4 8 2 6 16 / 65

Metody generowania MST Własności MST Euklidesowe MST Minimalne drzewo spinające - Minimal Spanning Tree Niech G = (V, E, w) i niech T = (V, E T ) będzie drzewem spinającym graf G. Wagą drzewa T nazywamy liczbę w(t ) := w(e) e E T Drzewo spinające T nazywamy minimalnym drzewem spinającym MST grafu G, jeśli T ma najmniejszą wagę spośród wszystkich drzew spinających graf G: w(t ) min 3 7 4 8 2 6 17 / 65

Metody generowania MST Własności MST Euklidesowe MST Przekrojem grafu G = (V, E) nazywamy parę zbiorów S = (X, V \ X) Niech S = (X, V \ X) będzie pewnym przekrojem grafu G = (V, E), mówimy, że krawędź e = {u, v} krzyżuje się z przekrojem S, gdy u X oraz v V \ X. Zbiór wszystkich krawędzi grafu G krzyżujących się z przekrojem S oznaczamy E(S). Niech A będzie podzbiorem krawędzi pewnego grafu G = (V, E), S = (X, V \ X) pewnym przekrojem. Mówimy, że przekrój S uwzględnia zbiór A jeśli żadna krawędź z A nie krzyżuje się z S tzn. A E(S) =. Krawędź e krzyżującą się z przekrojem S nazywamy lekką, jeśli jej waga jest najmniejsza spośród wszystkich krawędzi krzyżujących się z S, tzn.: e nazywamy lekką w(e) w(e ) dla e E(S). 18 / 65

Metody generowania MST Własności MST Euklidesowe MST Przekrojem grafu G = (V, E) nazywamy parę zbiorów S = (X, V \ X) Niech S = (X, V \ X) będzie pewnym przekrojem grafu G = (V, E), mówimy, że krawędź e = {u, v} krzyżuje się z przekrojem S, gdy u X oraz v V \ X. Zbiór wszystkich krawędzi grafu G krzyżujących się z przekrojem S oznaczamy E(S). Niech A będzie podzbiorem krawędzi pewnego grafu G = (V, E), S = (X, V \ X) pewnym przekrojem. Mówimy, że przekrój S uwzględnia zbiór A jeśli żadna krawędź z A nie krzyżuje się z S tzn. A E(S) =. Krawędź e krzyżującą się z przekrojem S nazywamy lekką, jeśli jej waga jest najmniejsza spośród wszystkich krawędzi krzyżujących się z S, tzn.: e nazywamy lekką w(e) w(e ) dla e E(S). 19 / 65

Metody generowania MST Własności MST Euklidesowe MST Przekrojem grafu G = (V, E) nazywamy parę zbiorów S = (X, V \ X) Niech S = (X, V \ X) będzie pewnym przekrojem grafu G = (V, E), mówimy, że krawędź e = {u, v} krzyżuje się z przekrojem S, gdy u X oraz v V \ X. Zbiór wszystkich krawędzi grafu G krzyżujących się z przekrojem S oznaczamy E(S). Niech A będzie podzbiorem krawędzi pewnego grafu G = (V, E), S = (X, V \ X) pewnym przekrojem. Mówimy, że przekrój S uwzględnia zbiór A jeśli żadna krawędź z A nie krzyżuje się z S tzn. A E(S) =. Krawędź e krzyżującą się z przekrojem S nazywamy lekką, jeśli jej waga jest najmniejsza spośród wszystkich krawędzi krzyżujących się z S, tzn.: e nazywamy lekką w(e) w(e ) dla e E(S). 20 / 65

Metody generowania MST Własności MST Euklidesowe MST Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Wówczas krawędzie ze zbioru E T \ A nazywamy bezpiecznymi dla zbioru A. Uwaga Jeśli T jest minimalnym drzewem spinającym, to krawędź e / A jest krawędzią bezpieczną dla zbioru A E T wtedy i tylko wtedy, gdy A {e} E T. Prezentowane w niniejszym wykładzie algorytmy wyznaczania MST są strategiami zachłannymi. Wyznaczane w efekcie ich działania minimalne drzewo rozpinające powstaje w wyniku konstrukcji zbioru A zawartego w zbiorze krawędzi wyznaczanego drzewa poprzez dodawanie do A krawędzi bezpiecznych. 21 / 65

Metody generowania MST Własności MST Euklidesowe MST Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Wówczas krawędzie ze zbioru E T \ A nazywamy bezpiecznymi dla zbioru A. Uwaga Jeśli T jest minimalnym drzewem spinającym, to krawędź e / A jest krawędzią bezpieczną dla zbioru A E T wtedy i tylko wtedy, gdy A {e} E T. Prezentowane w niniejszym wykładzie algorytmy wyznaczania MST są strategiami zachłannymi. Wyznaczane w efekcie ich działania minimalne drzewo rozpinające powstaje w wyniku konstrukcji zbioru A zawartego w zbiorze krawędzi wyznaczanego drzewa poprzez dodawanie do A krawędzi bezpiecznych. 22 / 65

Metody generowania MST Własności MST Euklidesowe MST Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Wówczas krawędzie ze zbioru E T \ A nazywamy bezpiecznymi dla zbioru A. Uwaga Jeśli T jest minimalnym drzewem spinającym, to krawędź e / A jest krawędzią bezpieczną dla zbioru A E T wtedy i tylko wtedy, gdy A {e} E T. Prezentowane w niniejszym wykładzie algorytmy wyznaczania MST są strategiami zachłannymi. Wyznaczane w efekcie ich działania minimalne drzewo rozpinające powstaje w wyniku konstrukcji zbioru A zawartego w zbiorze krawędzi wyznaczanego drzewa poprzez dodawanie do A krawędzi bezpiecznych. 23 / 65

Metody generowania MST Własności MST Euklidesowe MST Twierdzenie Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Niech S będzie dowolnym przekrojem uwzględniającym A oraz niech e będzie krawędzią lekką krzyżującą się z S. Wówczas e jest bezpieczna dla A. GENERIC-MST(G, w) 1 A 2 while A nie tworzy drzewa rozpinającego 3 do 4 znajdź krawędź e bezpieczną dla A 5 A A {e} 6 return A Strategia 1: Algorytm Kruskala. Strategia 2: Algorytm Prima. Strategia 3: Algorytm Boruvki. 24 / 65

Metody generowania MST Własności MST Euklidesowe MST Twierdzenie Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Niech S będzie dowolnym przekrojem uwzględniającym A oraz niech e będzie krawędzią lekką krzyżującą się z S. Wówczas e jest bezpieczna dla A. GENERIC-MST(G, w) 1 A 2 while A nie tworzy drzewa rozpinającego 3 do 4 znajdź krawędź e bezpieczną dla A 5 A A {e} 6 return A Strategia 1: Algorytm Kruskala. Strategia 2: Algorytm Prima. Strategia 3: Algorytm Boruvki. 25 / 65

Metody generowania MST Własności MST Euklidesowe MST Twierdzenie Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Niech S będzie dowolnym przekrojem uwzględniającym A oraz niech e będzie krawędzią lekką krzyżującą się z S. Wówczas e jest bezpieczna dla A. GENERIC-MST(G, w) 1 A 2 while A nie tworzy drzewa rozpinającego 3 do 4 znajdź krawędź e bezpieczną dla A 5 A A {e} 6 return A Strategia 1: Algorytm Kruskala. Strategia 2: Algorytm Prima. Strategia 3: Algorytm Boruvki. 26 / 65

Metody generowania MST Własności MST Euklidesowe MST Twierdzenie Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Niech S będzie dowolnym przekrojem uwzględniającym A oraz niech e będzie krawędzią lekką krzyżującą się z S. Wówczas e jest bezpieczna dla A. GENERIC-MST(G, w) 1 A 2 while A nie tworzy drzewa rozpinającego 3 do 4 znajdź krawędź e bezpieczną dla A 5 A A {e} 6 return A Strategia 1: Algorytm Kruskala. Strategia 2: Algorytm Prima. Strategia 3: Algorytm Boruvki. 27 / 65

Metody generowania MST Własności MST Euklidesowe MST Twierdzenie Niech A będzie podzbiorem krawędzi pewnego drzewa minimalnego T spinającego graf ważony G = (V, E, w). Niech S będzie dowolnym przekrojem uwzględniającym A oraz niech e będzie krawędzią lekką krzyżującą się z S. Wówczas e jest bezpieczna dla A. GENERIC-MST(G, w) 1 A 2 while A nie tworzy drzewa rozpinającego 3 do 4 znajdź krawędź e bezpieczną dla A 5 A A {e} 6 return A Strategia 1: Algorytm Kruskala. Strategia 2: Algorytm Prima. Strategia 3: Algorytm Boruvki. 28 / 65

Metody generowania MST Własności MST Euklidesowe MST 29 / 65

Metody generowania MST Własności MST Euklidesowe MST Zakładamy, że wagi w grafie G są różne. Boruvka MST(G) 1 A 2 for v V 3 do 4 utwórz drzewa jednowierzchołkowe i dodaj je do listy L 5 while A < n 1 6 do 7 for każde drzewo T L 8 do 9 znajdź krawędź e T o minimalnej wadze, która łączy T i G \ T 10 niech T drzewo z listy L połączone krawędzią e T z T 11 A A {e T } 12 for każde drzewo T L połącz T i T 30 / 65

Metody generowania MST Własności MST Euklidesowe MST Niech T będzie drzewem spinającym grafu G = (V, E). Jeżeli e jest krawędzią, która nie należy do drzewa T, to dołączenie jej do drzewa T powoduje powstanie dokładnie jednego cyklu C T (e). Taki cykl nazywamy cyklem fundamentalnym względem drzewa T. Wniosek W grafie spójnym G dla danego drzewa T mamy λ(g) = m n + 1 cykli fundamentalnych względem drzewa T. 31 / 65

Metody generowania MST Własności MST Euklidesowe MST Niech T będzie drzewem spinającym grafu G = (V, E). Jeżeli e jest krawędzią, która nie należy do drzewa T, to dołączenie jej do drzewa T powoduje powstanie dokładnie jednego cyklu C T (e). Taki cykl nazywamy cyklem fundamentalnym względem drzewa T. Wniosek W grafie spójnym G dla danego drzewa T mamy λ(g) = m n + 1 cykli fundamentalnych względem drzewa T. 32 / 65

Metody generowania MST Własności MST Euklidesowe MST Twierdzenie Drzewo spinające T jest minimalne wtedy i tylko wtedy, gdy dla każdej krawędzi e E G \ E T w(e) w(f ) dla dowolnej krawędzi f C T (e) 33 / 65

Przekrój fundamentalny Drzewa spinające Metody generowania MST Własności MST Euklidesowe MST Własność Niech T będzie drzewem spinającym grafu G = (V, E). Dla każdej krawędzi e E T istnieje dokładnie jeden przykrój S T (e) w grafie G, taki że e jest jedyną krawędzią drzewa T krzyżującą się z tym przekrojem, czyli jedyną krawędzią drzewa T wspólną z E(S T (e)). Przekrój opisany w poprzedniej własności nazywamy przekrojem fundamentalnym względem drzewa T. Twierdzenie Drzewo spinające T jest minimalne wtedy i tylko wtedy, gdy dla każdej krawędzi e E T w(e) w(f ) dla dowolnej krawędzi f E(S T (e)) 34 / 65

Przekrój fundamentalny Drzewa spinające Metody generowania MST Własności MST Euklidesowe MST Własność Niech T będzie drzewem spinającym grafu G = (V, E). Dla każdej krawędzi e E T istnieje dokładnie jeden przykrój S T (e) w grafie G, taki że e jest jedyną krawędzią drzewa T krzyżującą się z tym przekrojem, czyli jedyną krawędzią drzewa T wspólną z E(S T (e)). Przekrój opisany w poprzedniej własności nazywamy przekrojem fundamentalnym względem drzewa T. Twierdzenie Drzewo spinające T jest minimalne wtedy i tylko wtedy, gdy dla każdej krawędzi e E T w(e) w(f ) dla dowolnej krawędzi f E(S T (e)) 35 / 65

Metody generowania MST Własności MST Euklidesowe MST Minimalne drzewo spinające (Euklidesowe) - Euclidean Minimum Spanning Tree EMST Minimalnym euklidesowym drzewem rozpinającym zbioru punktów P na płaszczyźnie nazywamy drzewo o minimalnej sumie wag krawędzi, gdzie waga krawędzi wyliczana jest na podstawie odległości pomiędzy dwoma punktami płaszczyzny. P 36 / 65

Algorytm dokładny Drzewa spinające Metody generowania MST Własności MST Euklidesowe MST 1 skonstruuj graf pełny na n punktach o n(n 1) 2 krawędziach 2 waga każdej krawędzi=odległości euklidesowej pomiędzy końcami 3 wykorzystaj algorytm Prima lub Kruskala do wygenerowania MST Wady takiego rozwiązania czas działania jest proporcjonalny do n 2 większość krawędzi grafu jest niewykorzystana do konstrukcji drzewa MST Dla n = 9 EMST zawiera 8 krawędzi, natomiast graf pełny zawiera 36 krawędzi. P 37 / 65

EMST Drzewa spinające Metody generowania MST Własności MST Euklidesowe MST Triangulacja podział płaszczyzny na trójkąty, w taki sposób, że część wspólna dowolnych dwu trójkątów jest wspólnym wierzchołkiem, wspólnym bokiem lub wspólnym trójkątem albo zbiorem pustym. Do tworzenia siatki trójkątów najczęściej wykorzystywana jest triangulacja Delona. Trójkąty tworzone są w ten sposób aby żaden z łączonych punktów nie należących do danego trójkąta niego nie był położony wewnątrz okręgu opisanego na tym trójkącie. Triangulacja Delona jest grafem planarnym o liczbie krawędzi proporcjonalnej do n. 1 wyznacz graf triangulacji punktów ze zbioru P 2 przypisz wagę każdej krawędzi odległość pomiędzy punktami końcowymi 3 wyznacz MST używając algorytmu Prima 38 / 65

Przepustowość ścieżki - bottleneck problem Maksymalnym drzewem spinającym nazywamy takie drzewo spinające, którego waga jest największa spośród wszystkich drzew spinających danego grafu G = (V, E, w). w(t ) max Drzewo spinające T jest maksymalne dla grafu G = (V, E, w) wtedy i tylko wtedy, gdy jest minimalne dla grafu G = (V, E, w). 3 7 2 4 8 6 39 / 65

Przepustowość ścieżki - bottleneck problem Metody generowania maksymalnego drzewa spinającego zamiana funkcji wagowej na przeciwną. zamiana warunku minimalizującego na maksymalizujący w algorytmach Prima, Kruskala lub Boruvki. 3 7 2 4 8 6 40 / 65

Przepustowość ścieżki - bottleneck problem Metody generowania maksymalnego drzewa spinającego zamiana funkcji wagowej na przeciwną. zamiana warunku minimalizującego na maksymalizujący w algorytmach Prima, Kruskala lub Boruvki. 3 7 2 4 8 6 41 / 65

Przykład Drzewa spinające Przepustowość ścieżki - bottleneck problem Zdefiniujmy graf, którego wierzchołki V odpowiadają węzłom sieci komunikacyjnej, krawędzie E połączeniom pomiędzy tymi węzłami. Niech p ij określa prawdopodobieństwo, że połączenie pomiędzy węzłami i oraz j ulegnie awarii. Wówczas q ij = 1 p ij określa prawdopodobieństwo poprawnego działania. Wtedy maksymalne drzewo spinające sieci (V, E, q) określa największe prawdopodobieństwo bezawaryjnego działania tej sieci. 42 / 65

Przepustowość ścieżki - bottleneck problem Niech G = (V, E, w) będzie spójną siecią i niech e 1 e 2 e n W = v 0 v 1 v 2...v n 1 v n będzie dowolną ścieżką o różnych wierzchołkach. Wtedy c(w ) = min{w(e i); i = 1,..., n} nazywamy przepustowością ścieżki. ścieżka W = (t, u, y) s 7 t 8 c(w ) = min{w(t, u), w(u, y)} = 6 3 4 u 6 x 2 y 43 / 65

Przepustowość ścieżki - bottleneck problem Twierdzenie Niech G = (V, E, w) będzie spójną siecią i niech T będzie maksymalnym drzewem spinającym dla sieci G. Wtedy dla dowolnych wierzchołków u i v, jednoznacznie wyznaczona droga w drzewie T, posiada największą przepustowość w grafie G. s 7 t 8 3 4 u 6 x 2 y 44 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Załóżmy, że rozważamy problem minimalnego drzewa Euklidesowego, to znaczy mamy za zadanie połączyć n punktów na płaszczyźnie za pomocą drzewa. 45 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Załóżmy, że rozważamy problem minimalnego drzewa Euklidesowego, to znaczy mamy za zadanie połączyć n punktów na płaszczyźnie za pomocą drzewa. 46 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Metody postępowania: rozważyć graf pełny zawierający n wierzchołków z funkcją wagową odległości i znaleźć MST. znaleźć MST dla grafu triangulacji. rozważyć pewne, dodatkowe wierzchołki i zbudować MST w tak uzupełnionym grafie. Wierzchołki, o które uzupełniono graf nazywa się punktami (wierzchołkami) Steinera, zaś MST w powiększonym grafie drzewem Steinera 47 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Metody postępowania: rozważyć graf pełny zawierający n wierzchołków z funkcją wagową odległości i znaleźć MST. znaleźć MST dla grafu triangulacji. rozważyć pewne, dodatkowe wierzchołki i zbudować MST w tak uzupełnionym grafie. Wierzchołki, o które uzupełniono graf nazywa się punktami (wierzchołkami) Steinera, zaś MST w powiększonym grafie drzewem Steinera 48 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Metody postępowania: rozważyć graf pełny zawierający n wierzchołków z funkcją wagową odległości i znaleźć MST. znaleźć MST dla grafu triangulacji. rozważyć pewne, dodatkowe wierzchołki i zbudować MST w tak uzupełnionym grafie. Wierzchołki, o które uzupełniono graf nazywa się punktami (wierzchołkami) Steinera, zaś MST w powiększonym grafie drzewem Steinera 49 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Metody postępowania: rozważyć graf pełny zawierający n wierzchołków z funkcją wagową odległości i znaleźć MST. znaleźć MST dla grafu triangulacji. rozważyć pewne, dodatkowe wierzchołki i zbudować MST w tak uzupełnionym grafie. Wierzchołki, o które uzupełniono graf nazywa się punktami (wierzchołkami) Steinera, zaś MST w powiększonym grafie drzewem Steinera 50 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Metody postępowania: rozważyć graf pełny zawierający n wierzchołków z funkcją wagową odległości i znaleźć MST. znaleźć MST dla grafu triangulacji. rozważyć pewne, dodatkowe wierzchołki i zbudować MST w tak uzupełnionym grafie. Wierzchołki, o które uzupełniono graf nazywa się punktami (wierzchołkami) Steinera, zaś MST w powiększonym grafie drzewem Steinera 51 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Uwaga MST jest pewnym rozwiązaniem problemu optymalnego łączenia n punktów na płaszczyźnie. Zawsze istnieje jednak pewne minimalne drzewo Steinera, które łączy n punktów oraz pewne dodatkowo wybrane punkty Steinera. Przypuszcza się (jest to nadal problem otwarty), że iloraz wagi MST do wagi takiego drzewa Steinera (funkcją wagową jest funkcja odległości) zwany 2 ilorazem Steinera wynosi 3. Twierdzenie Problem wyznaczania Euklidesowego drzewa Steinera jest problemem NP-zupełnym. 52 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Uwaga MST jest pewnym rozwiązaniem problemu optymalnego łączenia n punktów na płaszczyźnie. Zawsze istnieje jednak pewne minimalne drzewo Steinera, które łączy n punktów oraz pewne dodatkowo wybrane punkty Steinera. Przypuszcza się (jest to nadal problem otwarty), że iloraz wagi MST do wagi takiego drzewa Steinera (funkcją wagową jest funkcja odległości) zwany 2 ilorazem Steinera wynosi 3. Twierdzenie Problem wyznaczania Euklidesowego drzewa Steinera jest problemem NP-zupełnym. 53 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Niech będzie dany ważony graf G = (V, E, w) z funkcją wagową w : E R + oraz niech N V będzie pewnym zbiorem wierzchołków, które nazywamy terminalami. a 3 1 5 b 1 f 6 e 4 1 2 5 c 8 d Drzewo T = (V T, E T ) będące podgrafem grafu G nazywamy drzewem Steinera dla grafu G oraz zbioru terminali N, jeżeli N V T. Wierzchołki zbioru V T \ N nazywamy punktami Steinera. 54 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Niech będzie dany ważony graf G = (V, E, w) z funkcją wagową w : E R + oraz niech N V będzie pewnym zbiorem wierzchołków, które nazywamy terminalami. a 3 1 5 b 1 f 6 e 4 1 2 5 c 8 d Drzewo T = (V T, E T ) będące podgrafem grafu G nazywamy drzewem Steinera dla grafu G oraz zbioru terminali N, jeżeli N V T. Wierzchołki zbioru V T \ N nazywamy punktami Steinera. 55 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Niech będzie dany ważony graf G = (V, E, w) z funkcją wagową w : E R + oraz niech N V będzie pewnym zbiorem wierzchołków, które nazywamy terminalami. a 3 1 5 b 1 f 6 e 4 1 2 5 c 8 d Drzewo T = (V T, E T ) będące podgrafem grafu G nazywamy drzewem Steinera dla grafu G oraz zbioru terminali N, jeżeli N V T. Wierzchołki zbioru V T \ N nazywamy punktami Steinera. 56 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Minimalnym drzewem Steinera nazywamy takie drzewo Steinera, dla którego (i,j) E T w ij min (w skrócie SMT) a b 3 1 1 f 6 5 e 3 1 1 6 5 4 1 2 5 4 1 2 5 c 8 d 8 Twierdzenie Problem SMT jest NP-zupełny. 57 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Minimalnym drzewem Steinera nazywamy takie drzewo Steinera, dla którego (i,j) E T w ij min (w skrócie SMT) a b 3 1 1 f 6 5 e 3 1 1 6 5 4 1 2 5 4 1 2 5 c 8 d 8 Twierdzenie Problem SMT jest NP-zupełny. 58 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Uwaga Mamy dwa specjalne przypadki drzewa Steinera: 1 jeżeli N = V (zbiór terminali pokrywa się ze zbiorem wierzchołków), wówczas drzewem Steinera jest MST (np. algorytm Kruskala lub Prima) 2 jeżeli N = 2 (zbiór terminali składa się z dwóch wierzchołków), wówczas rozwiązanie problemu sprowadza się do wyznaczenia najkrótszej drogi pomiędzy tymi wierzchołkami (np. algorytm Dijkstry) 59 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Uwaga Mamy dwa specjalne przypadki drzewa Steinera: 1 jeżeli N = V (zbiór terminali pokrywa się ze zbiorem wierzchołków), wówczas drzewem Steinera jest MST (np. algorytm Kruskala lub Prima) 2 jeżeli N = 2 (zbiór terminali składa się z dwóch wierzchołków), wówczas rozwiązanie problemu sprowadza się do wyznaczenia najkrótszej drogi pomiędzy tymi wierzchołkami (np. algorytm Dijkstry) 60 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Uwaga Mamy dwa specjalne przypadki drzewa Steinera: 1 jeżeli N = V (zbiór terminali pokrywa się ze zbiorem wierzchołków), wówczas drzewem Steinera jest MST (np. algorytm Kruskala lub Prima) 2 jeżeli N = 2 (zbiór terminali składa się z dwóch wierzchołków), wówczas rozwiązanie problemu sprowadza się do wyznaczenia najkrótszej drogi pomiędzy tymi wierzchołkami (np. algorytm Dijkstry) 61 / 65

Algorytm dokładny generowania SMT Euklidesowe drzewo Steinera Metryczne drzewo Steinera Uwaga Jeżeli N jest zbiorem terminali, natomiast T jest minimalnym drzewem Steinera grafu G, to T jest minimalnym drzewem spinającym podgrafu G indukowanego przez N oraz punkty Steinera drzewa T. Dane: graf G, zbiór terminali N Wynik: minimalne drzewo Steinera T o sumie wag równej w SMT(G, N) 1 w 0 2 for każdy podzbiór A V \ N 3 do 4 wyznacz minimalne drzewo spinające T 1 grafu indukowanego G[A N] 5 w 1 - suma wag krawędzi drzewa T 1 6 w min(w, w 1) 62 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Twierdzenie Niech G = (V, E, w) będzie grafem pełnym, z funkcją wagową w : E (0, ) spełniającą nierówność trójkąta. Niech N będzie zbiorem terminali. Wówczas istnieje SMT zawierające nie więcej niż N 2 punktów Steinera. 63 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Algorytm KMB generowania minimalnego drzewa Steinera Algorytm aproksymacyjny Kou, Markovsky i Bermann - Dane: graf G, zbiór terminali N Wynik: minimalne drzewo Steinera T KMB(G, N) b 3 1 a 1 f 5 6 e 1 utwórz graf pełny K N 2 w({x, y}) waga najkrótszej ścieżki łączącej x i y w G 3 znajdź MST grafu K N 4 zbuduj graf G 1, w którym każdą krawędź MST zastąp najkrótszą ścieżką z G 5 wyznacz MST dla G 1, oznacz je przez T 1 6 usuń liście z drzewa T 1, które nie są terminalami 4 c 1 8 2 d 5 64 / 65

Euklidesowe drzewo Steinera Metryczne drzewo Steinera Dziękuję za uwagę!!! 65 / 65