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

Podobne dokumenty
Minimalne drzewa rozpinaj ce

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

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

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

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

Matematyka dyskretna

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

Opracowanie prof. J. Domsta 1

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

Graf. Definicja marca / 1

Matematyczne Podstawy Informatyki

Algorytmiczna teoria grafów

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

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

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

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

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

Matematyczne Podstawy Informatyki

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

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

Wykłady z Matematyki Dyskretnej

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

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

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

Ogólne wiadomości o grafach

Minimalne drzewa rozpinające

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

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.

G. Wybrane elementy teorii grafów

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

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

Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań

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

Algorytmika Problemów Trudnych

Algebra liniowa z geometrią

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Digraf. 13 maja 2017

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Matematyczne Podstawy Informatyki

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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

Szukanie najkrótszych dróg z jednym ródłem

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

Algorytmy wyznaczania centralności w sieci Szymon Szylko

TEORIA GRAFÓW I SIECI

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

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

φ(x 1,..., x n ) = a i x 2 i +

0. ELEMENTY LOGIKI. ALGEBRA BOOLE A

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

Zadania z egzaminów z Algorytmiki

Zadania egzaminacyjne

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

7. Teoria drzew - spinanie i przeszukiwanie

KURS MATEMATYKA DYSKRETNA

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

E ' E G nazywamy krawędziowym zbiorem

3 Przestrzenie liniowe

Znajdowanie skojarzeń na maszynie równoległej

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

Algorytmiczna teoria grafów

Sortowanie topologiczne skierowanych grafów acyklicznych

0 + 0 = 0, = 1, = 1, = 0.

Wykład 10 Grafy, algorytmy grafowe

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

TEORIA GRAFÓW I SIECI

Podejście zachłanne, a programowanie dynamiczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Macierze. Rozdział Działania na macierzach

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska.

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

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

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

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Wektory i wartości własne

Teoretyczne podstawy programowania liniowego

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

Zadania z egzaminów z Algorytmiki

Wektory i wartości własne

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow

Wykład 4. Droga i cykl Eulera i Hamiltona

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 i Struktury Danych.

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

Sprawozdanie do zadania numer 2

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

Ilustracja S1 S2. S3 ściana zewnętrzna

Elementy teorii grafów Elementy teorii grafów

Kombinacje liniowe wektorów.

Pokazać, że wyżej zdefiniowana struktura algebraiczna jest przestrzenią wektorową nad ciałem

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Aproksymacja. funkcji: ,a 2. ,...,a m. - są funkcjami bazowymi m+1 wymiarowej podprzestrzeni liniowej X m+1

Wstęp do Programowania potok funkcyjny

Transkrypt:

Grafy i Grafy i 5: Rozpinające

Spis zagadnień Grafy i i lasy cykle fundamentalne i własności cykli i rozcięć przestrzenie cykli i rozcięć* : zastosowanie w sieciach elektrycznych minimalne * algorytm Kruskala* algorytm Prima* : aproksymacja dla problemu komiwojażera*

Drzewo Grafy i drzewo spójnego, nieskierowanego grafu prostego G = (V, E) to taki podgraf T tego grafu, który jest drzewem i zawiera wszystkie wierzchołki danego grafu. Graf niespójny nie posiada go. Jeśli graf G jest niespójny, to graf będący sumą drzew rozpinających jego składowych spójnych (po jednym na składową) nazywamy lasem rozpinającym. Drzewo grafu spójnego można otrzymać kolejno usuwając krawędzie grafu tak aby uzyskać drzewo. Dla danego grafu spójnego może istnieć wiele drzew rozpinających. Każde drzewo danego grafu ma tyle samo krawędzi (i wierzchołków)

Zliczanie drzew rozpinających grafu spójnego Grafy i Tw. (udowodnione przez G.Kirchoffa w 1847) Liczba różnych drzew rozpinających spójnego grafu etykietowanego wynosi tyle co dopełnienie algebraiczne dowolnego elementu macierzy M(G) = D(G) A(G), gdzie D(G) jest diagonalną macierzą zawierają na przekątnej stopnie odpowiednich wierzchołków, natomiast A(G) jest macierzą sąsiedztwa grafu G. Powyższe twierdzenie ilustruje techniki tzw. algebraicznej teorii grafów, gdzie wyniki dla grafów uzyskuje się badając macierze sąsiedztwa i inne algebraiczne struktury reprezentujące grafy.

Liczba cyklomatyczna i rząd rozcięcia Grafy i liczba cyklomatyczna: γ(g), (lub rząd cykliczności) grafu G to liczba krawędzi dopełnienia dowolnego lasu go grafu G. rząd rozcięcia: ξ(g), grafu G to liczba krawędzi w dowolnym lesie rozpinającym G. Zauważmy, że: γ(g) + ξ(g) = E(G) (liczba krawędzi grafu G)

Cykle a rozcięcia Grafy i Twierdzenie: Jeśli L jest lasem rozpinającym grafu G, to: 1 każdy cykl w G ma wspólną krawędź z dopełnieniem L 2 każde rozcięcie grafu G ma wspólną krawędź z L Dowód: 1 jeśli cykl nie ma krawędzi wspólnych z dopełnieniem L, to znaczy jest w nim zawarty, co przeczyłoby acykliczności L 2 rozcięcie powoduje rozpad L na dwie składowe A i B. Ponieważ L jest lasem rozpinającym, więc musi zawierać krawędź łączącą pewien wierzchołek z A z pewnym wierzchołkiem z B. Jest to szukana krawędź

Cykle fundamentalne Grafy i Niech L oznacza pewien las rozpinający grafu G, Zauważmy, że dodanie jakiejkolwiek krawędzi z G nie należącej do L utworzy dokładnie jeden cykl. Taki cykl nazywamy cyklem fundamentalnym grafu G związanym z lasem rozpinającym L. Zbiór cykli fundamentalnych związanych z lasem L to zbiór wszystkich takich cykli.

Rozcięcia fundamentalne Grafy i Niech L oznacza pewien las rozpinający grafu G, Gdy z lasu L usuniemy dowolną krawędź, to (w odpowiadającej jej składowej spójnej) powstają dwa rozłączne zbiory wierzchołków V 1, V 2. Zbiór wszystkich krawędzi G takich, że jeden koniec jest w V 1 a drugi w V 2 tworzy rozcięcie, które nazywamy rozcięciem fundamentalnym związanym z lasem L. Zbiór wszystkich takich rozcięć nazywamy zbiorem rozcięć fundamentalnych związanych z lasem L. Uwaga: zbiór rozcięć fundamentalnych niekonieczniecznie zawiera wszystkie rozcięcia (np. jeśli rozcięcie jest częścią go)

Własności cykli i rozcięć Grafy i Poniżej zakładamy dla uproszczenia, że graf jest spójny (wyniki mogą być zastosowane do każdej składowej spójnej) Fakty: zbiór krawędzi jest rozspajający przecina się z każdym drzewem rozpinającym (ale niekoniecznie minimalny, bo można by wziąć całe E) zbiór krawędzi C grafu G zawiera cykl dopełnienie każdego go w G przecina się z C cykl i rozcięcie mają zawsze parzystą liczbę wspólnych krawędzi (0 też jest parzysta)

Dalsze własności cykli i rozcięć Grafy i Twierdzenie: T jest drzewem rozpinającym, C jest cyklem fundamentalnym otrzymanym z T przez dodanie krawędzi e. Wtedy C składa się z e i tych krawędzi T, które wyznaczają fundamentalne rozcięcia zawierające e Twierdzenie: Rozcięcie fundamentalne wyznaczone przez odjęcie krawędzi e z go T składa się z e i dokładnie tych krawędzi w dopełnieniu T, których cykle fundamentalne zawierają e.

Przestrzeń krawędzi Grafy i W e (G) - zbiór wszystkich podzbiorów E(G) operacja sumy prostej na elementach W e (G): E 1 E 2 = (E 1 \ E 2 ) (E 2 \ E 1 ) (różnica symetryczna) Fakt: W e (G) z operacją jest przestrzenią liniową nad ciałem Z 2. Bazę stanowi tu zbiór E(G) wszystkich krawędzi grafu G.

Podprzestrzeń cykli W C (G) Grafy i Elementy to zbiór pusty, i zbiory krawędzi wszystkich cykli G i sum cykli krawędziowo rozłącznych. (elementy W C (G) można nazywać cyklami uogólnionymi) Twierdzenie: W C (G) jest podprzestrzenią liniową przestrzeni W E (G) (w szczególności, jest zamnkięta na sumę). Fakt: graf jest eulerowski jego zbiór krawędzi jest cyklem uogólnionym

Podprzestrzeń rozcięć W S (G) Grafy i Elementy to: zbiór pusty, zbiory krawędzi wszystkich rozcięć i sum krawędziowo rozłącznych rozcięć. W S (G) stanowi podprzestrzeń liniową przestrzeni W E (G). (w szczególności, jest zamnkięta na sumę)

Baza przestrzeni liniowej (przypomnienie) Grafy i Baza przestrzeni liniowej to taki podzbiór elementów przestrzeni liniowej, że: generuje całą przestrzeń jest liniowo niezależny Uwaga: każdy element przestrzeni liniowej jest w dokładnie jeden sposób wyrażalny jako kombinacja liniowa elementów bazy. Uwaga 2: wymiar przestrzeni liniowej to liczba elementów bazy (każda baza ma tyle samo elementów).

Bazy podprzestrzeni W C (G) i W S (G) Grafy i Twierdzenie: Zbiór cykli fundamentalnych dowolnego go stanowi bazę podprzestrzeni cykli W C (G). Twierdzenie: Zbiór rozcięć fundamentalnych dowolnego go stanowi bazę przestrzeni W S (G) Wniosek: Wymiar przestrzeni W C (G) wynosi γ(g), a wymiar przestrzeni W S (G) wynosi ξ(g).

Zależności między przestrzeniami cykli i rozcięć Grafy i Tw: Każdy element przestrzeni cykli W C (G) ma parzystą liczbę krawędzi wspólnych z każdym elementem przestrzeni rozcięć W S (G) i odwrotnie. Wniosek: Przestrzenie W C (G) i W S (G) są ortogonalnymi podprzestrzeniami przestrzeni krawędzi W E (G). (tzn. iloczyn skalarny dowolnych par z odpowiednich zbiorów daje zero, ponieważ jest to parzysta liczba jedynek)

Zliczanie cykli i rozcięć Grafy i Wnioski: w grafie G istnieje dokładnie 2 γ(g) różnych cykli uogólnionych. w grafie G istnieje dokładnie 2 ξ(g) różnych podgrafów, z których każdy jest rozcięciem lub sumą rozcięć krawędziowo rozłącznych. y

Własności macierzy incydencji Grafy i G: nieskierowany graf prosty, wszystkie operacje są nad ciałem Z 2. Niech D oznacza pewien zbiór krawędzi grafu G. Przez I D oznaczamy zbiór kolumn macierzy incydencji odpowiadających zbiorowi krawędzi D. Fakty: D stanowi cykl uogólniony suma kolumn w I D wynosi 0 D reprezentuje graf acykliczny kolumny w I D są niezależne liniowo D reprezentuje podgraw spójny kolumny w I D rozpinają całą przestrzeń kolumn macierzy incydencji D reprezentuje drzewo kolumny w I D stanowią bazę przestrzeni kolumn całej macierzy incydencji

Przykładowe zastosowanie: sieci elektryczne Grafy i Dana jest sieć: topologia + opory + przyłożone napięcie wyznaczyć: natężenia prądu prawo Ohma: U = I R (U - napięcie, I - natężenie, R - oporność) Dwa prawa Kirchoffa: 1 dla węzłów sieci: suma natężeń w węźle wynosi 0 2 dla oczek sieci: suma napięć w oczku sieci wynosi 0

Układ równań dla sieci elektrycznej Grafy i Można więc potencjalnie ułożyć aż n + o równań (gdzie o to liczba węzłów a o to liczba różnych oczek sieci). Problemem jest to, że istnieje potencjalnie bardzo dużo cykli w grafie (jak już wiemy jest to dokładnie 2 γ(g) ) Większość równań jest redundantna, gdyż potrzebujemy dokładnie tyle równań ile jest krawędzi w grafie.

Zastosowanie cykli fundamentalnych Grafy i Ile więc dokładnie równań potrzebujemy? 1 n-1 dla pierwszego prawa (n-te równanie jest redundantne) 2 γ(g) dla drugiego prawa (zauważmy, że faktycznie (n 1) = ξ(g) a więc otrzymamy dokładnie tyle ile trzeba (γ(g) + ξ(g) = E(G) ). Które równania dla oczek wybrać? Rozwiązanie: wybrać równania odpowiadające dowolnemu zbiorowi cykli fundamentalnych tej sieci

Problem: drzewo (MST) Grafy i Dany jest nieskierowany graf G z wagami na krawędziach (liczby wymierne). Znaleźć drzewo o minimalnym łącznym koszcie krawędzi (tzw minimalne drzewo ) Problem ten ma rozliczne zastosowania. Jest on rozwiązywalny w czasie wielomianowym. Algorytmy znajdowania MST oparte są na własnościach cykli i rozcięć (Kruskal) lub na modyfikacji algorytmu BFS (Prim).

Agorytm Prima (przypomnienie) Grafy i Zaczyna od wierzchołka startowego s i stopniowo powiększa drzewo. Niech S oznacza zbiór wierzchołków rosnącego. Poczatkowo S = {s}. Zauważmy, że zbiór krawędzi o dokładnie jednym końcu w S stanowi zbiór rozspajający. W każdym kroku dodawany jest wierzchołek będący drugim końcem najlżejszej krawędzi z tego zbioru rozspajającego. Używana jest kolejka priorytetowa, aby efektywnie znaleźć taki wierzchołek (priorytetem jest waga najlżejszej krawędzi łączącej ten wierzchołek ze zbiorem S). Po wybraniu, wszystkie krawędzie wychodzące z nowo-dodanego wierzchołka poddawane są relaksacji.

Algorytm Prima Grafy i w(u, v) oznacza wagę krawędzi (u, v), w atrybucie dist przechowywana jest najkrótsza aktualnie znana odległość wierzchołka do zbioru S, a pq oznacza kolejkę priorytetową. Używamy list sąsiedztwa. Wynikowe drzewo reprezentowane jest w atrybutach parent. MSTPrim(V,w,s){ PriorityQueue pq s.dist = 0 s.parent = null pq.insert(s) for each u in V\{s}: u.dist = INFINITY } while(!pq.isempty()): u = pq.deletemin() u.dist = 0 for each v in u.adjlist: if (w(u,v) < v.dist): v.dist = w(u,v) v.parent = u if (pq.contains(v)): pq.decreasekey(v) else pq.insert(v)

Analiza algorytmu Prima Grafy i rozmiar danych: n= V, m= E dominująca operacja: przypisanie (w inicjalizacji) i porównanie priorytetów (w tym ukryte w kolejce) i odległości inicjalizacja: O(n) pętla: (n delmin()) + (m decreasekey()) Jeśli kolejka zaimplementowana jako kopiec binarny: pętla: O(nlog(n)) + O(mlog(n)) = O((n+m)log(n)) Jeśli używamy kopca Fibonacciego (amortyzowany koszt stały operacji decreasekey()): O(nlog(n) + m)

Algorytm Kruskala (przypomnienie) Grafy i 1 początkowo T = 2 rozpatruj krawędzie w kolejności niemalejących wag i dodawaj do T te, które nie tworzą cyklu z poprzednio dodanymi, pozostałe odrzucaj, do momentu, gdy T nie tworzy go Główny problem to efektywne sprawdzanie, czy rozpatrywana krawędź nie tworzy cyklu z dotychczasowo dodanymi. Pomysł polega na używaniu pomocniczej struktury danych typu union-find. Ponieważ w każdej iteracji T stanowi las, każda nowa krawędź (u, v), która utworzyłaby cykl ma tę własność, że oba jej końce u i v należą do tego samego w lesie T.

Algorytm Kruskala Grafy i kruskalmst(v,e,w){ T = 0 UnionFind uf foreach edge (u,v) in non-decreasing order of weight: if (uf.find(u)!= uf.find(v)): T = T + (u,v) uf.union(uf.find(u),uf.find(v)) return T } Istnieje bardzo szybka (drzewowa) implementacja struktury union-find, która zapewnia stały czas operacji union i prawie 1 stały amortyzowany czas operacji find. Analiza złożoności czasowej tej implementacji nie jest jednak matematycznie łatwa. Przy takiej implementacji złożoność jest O(mlog(m)) (i jest zdominowana przez początkowe posortowanie krawędzi po wagach) 1 jest to pewna funkcja, która bardzo wolno rośnie

Przykład: problem Komiwojażera (TSP) Grafy i Dany jest pełny graf G = (V, E) z nieujemnymi wagami w : E Q + na krawędziach. Znaleźć cykl Hamiltona H w G o minimalnym łącznym koszcie krawędzi w(e(h)). Problem ten jest NP-trudny. Ma on wiele zastosowań praktycznych.

MST jako przybliżenie dla metrycznego TSP Grafy i Można w czasie wielomianowym znaleźć przybliżone o współczynnik co najwyżej 2 rozwiązanie dla TSP jeśli funkcja wag w spełnia nierówność trójkąta. Algorytm: znaleźć dowolne drzewo i zastąpić każdą krawędź parą krawędzi przerciwnych znaleźć cykl Eulera w takim grafie pominąć (stosując skróty) w tym cyklu wszystkie wierzchołki, które występowałyby wielokrotnie (jest to tzw algorytmu aproksymacyjnego ze współczynnikiem aproksymacji 2. Istnieje też wielomianowy algorytm aproksymacyjny dla tego problemu z lepszym współczynnikiem aproksymacji 3/2 (istnieją jeszcze lepsze).

Grafy i i lasy cykle fundamentalne i własności cykli i rozcięć przestrzenie cykli i rozcięć* : zastosowanie w sieciach elektrycznych minimalne * algorytm Kruskala* algorytm Prima* : aproksymacja dla problemu komiwojażera*

Przykładowe ćwiczenia i zadania Grafy i podaj wartości γ(g), ξ(g) dla podanego grafu G wyznacz zbiór cykli i rozcięć fundamentalnych danego grafu mając daną sieć elektryczną z podanym napięciem i opornościami, oblicz natężenia prądów na wszystkich połączeniach (krawędziach) sieci wyznacz drzewo danego grafu używając algorytmu Prima/Kruskala oblicz ile jest cykli i rozcięć uogólnionych w danym grafie oblicz ile jest drzew rozpinających w danym grafie etykietowanym podaj rozwiązanie przybliżone metrycznego problemu komiwojażera w podanym grafie

Grafy i Dziękuję za uwagę