Teoria grafów i sieci 1 / 188

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

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

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

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

Minimalne drzewa rozpinaj ce

Teoria grafów i jej zastosowania. 1 / 126

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Teoria grafów i sieci 1 / 58

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

TEORIA GRAFÓW. Graf skierowany dla ka»dej kraw dzi (oznaczanej tutaj jako ªuk) para wierzchoªków incydentnych jest par uporz dkowan {u, v}.

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Wykªad 1. Wprowadzenie do teorii grafów

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

c Marcin Sydow Podstawy Grafy i Zastosowania Kod Prüfera 3: Drzewa Drzewa ukorzenione * Drzewa binarne Zastosowania Podsumowanie

Egzaminy i inne zadania. Semestr II.

Metody dowodzenia twierdze«

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

Problemy optymalizacyjne - zastosowania

Wykªad 4. Droga i cykl Eulera i Hamiltona

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

Algorytmy zwiazane z gramatykami bezkontekstowymi

10a: Wprowadzenie do grafów

c Marcin Sydow Wst p Grafy i Zastosowania Wierzchoªki 8: Kolorowanie Grafów Mapy Kraw dzie Zliczanie Podsumowanie

Algorytmy i struktury danych

Stereometria (geometria przestrzenna)

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Minimalne drzewo rozpinaj ce

Wykªad 4. Funkcje wielu zmiennych.

Algorytmy i Struktury Danych

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

Uogólnione drzewa Humana

Podstawowepojęciateorii grafów

Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

c Marcin Sydow Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie

Indeksowane rodziny zbiorów

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Metodydowodzenia twierdzeń

Zbiory i odwzorowania

Wstp. Warto przepływu to

Matematyka dyskretna dla informatyków

Ukªady równa«liniowych

Podstawowe algorytmy grafowe i ich zastosowania

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Najkrótsze drogi w grafach z wagami

1 Bª dy i arytmetyka zmiennopozycyjna

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

Podstawy matematyki dla informatyków

Egzaminy i inne zadania. Semestr II.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Lab. 02: Algorytm Schrage

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

Informacje pomocnicze

Grafy i Zastosowania. 1: Wprowadzenie i poj cia podstawowe. c Marcin Sydow. Wprowadzenie. Podstawowe poj cia. Operacje na grafach.

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze

Interpolacja funkcjami sklejanymi

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

12: Znajdowanie najkrótszych ±cie»ek w grafach

Podstawowe algorytmy grafowe i ich zastosowania

Elementy geometrii w przestrzeni R 3

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze

Przekroje Dedekinda 1

Materiaªy do Repetytorium z matematyki

Algorytmiczna teoria grafów

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

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

O pewnym zadaniu olimpijskim

Matematyczne Podstawy Informatyki

Grafy i Zastosowania. 11: Twierdzenia Minimaksowe. c Marcin Sydow. Wst p: Tw. Halla. Dualno± Zbiory niezale»ne. Skojarzenia c.d.

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Najkrótsze drogi w grafach z wagami

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Wektory w przestrzeni

Szeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004

Grafy i Zastosowania. 6: Najkrótsze ±cie»ki. c Marcin Sydow. Najkrótsze cie»ki. Warianty. Relaksacja DAG. Algorytm Dijkstry.

Semestr letni 2014/15

Zadania z PM II A. Strojnowski str. 1. Zadania przygotowawcze z Podstaw Matematyki seria 2

Podstawy matematyki dla informatyków. Funkcje. Funkcje caªkowite i cz ±ciowe. Deniowanie funkcji. Wykªad pa¹dziernika 2012

Metody numeryczne i statystyka dla in»ynierów

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

Macierze i Wyznaczniki

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

Maªgorzata Murat. Modele matematyczne.

Systemy decyzyjne Wykªad 5: Drzewa decyzyjne

Omówienie zada«potyczki Algorytmiczne 2015

Transkrypt:

Teoria grafów i sieci /

Drzewa z wagami Drzewem z wagami nazywamy drzewo z korzeniem, w którym do ka»dego li±cia przyporz dkowana jest liczba nieujemna, nazywana wag tego li±cia. /

Drzewa z wagami Drzewem z wagami nazywamy drzewo z korzeniem, w którym do ka»dego li±cia przyporz dkowana jest liczba nieujemna, nazywana wag tego li±cia. 7 /

Drzewa z wagami Drzewem z wagami nazywamy drzewo z korzeniem, w którym do ka»dego li±cia przyporz dkowana jest liczba nieujemna, nazywana wag tego li±cia. 7 Niech drzewo T ma t li±ci, których wagami s liczby w, w,..., w t oraz niech l, l,..., l t oznaczaj odpowiednio numery poziomów li±ci. Wag drzewa T nazywamy liczb W (T ) = t w i l i i= /

Drzewa z wagami Drzewem z wagami nazywamy drzewo z korzeniem, w którym do ka»dego li±cia przyporz dkowana jest liczba nieujemna, nazywana wag tego li±cia. 7 Niech drzewo T ma t li±ci, których wagami s liczby w, w,..., w t oraz niech l, l,..., l t oznaczaj odpowiednio numery poziomów li±ci. Wag drzewa T nazywamy liczb W (T ) = t w i l i i= W (T ) = 7 + + + + + = 7 + + + 0 + + = 0 /

Drzewa optymalne 7 W (T ) = + + + +7 + = + + + + + = /

Drzewa optymalne 7 W (T ) = 0 7 W (T ) = 7 /

Drzewa optymalne 7 W (T ) = 0 7 W (T ) = Drzewo nazywamy optymalnym, je»eli W (T ) min /

Algorytm Humana. ( 9) Dane: lista wag L = {w,..., w t}, t Wyniki: optymalne drzewo binarne T (L) Human(L) if t = then T (L) drzewo z dwoma li± mi o wagach w, w else u, v najmniejsze wyrazy L L = (L\ {u, v}) {u + v} 7 Human(L ) utwórz drzewo T (L) z drzewa T (L ) 9 zast puj c li± wagi u + v w drzewie 0 poddrzewem maj cym li±cie o wagach u i v 9 /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag 0 /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, { }, 9+ /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, { }, 9+ gdy na li±cie znajduj si dwie wagi, ko«czymy wywoªywania rekurencyjne procedury Human dla poszczególnych list i budujemy pierwsze drzewo /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, { }, 9+ gdy na li±cie znajduj si dwie wagi, ko«czymy wywoªywania rekurencyjne procedury Human dla poszczególnych list i budujemy pierwsze drzewo 7 /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, { }, 9+ 9 gdy na li±cie znajduj si dwie wagi, ko«czymy wywoªywania rekurencyjne procedury Human dla poszczególnych list i budujemy pierwsze drzewo /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, { }, 9+ 9 gdy na li±cie znajduj si dwie wagi, ko«czymy wywoªywania rekurencyjne procedury Human dla poszczególnych list i budujemy pierwsze drzewo 9 /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, { }, 9+ 9 gdy na li±cie znajduj si dwie wagi, ko«czymy wywoªywania rekurencyjne procedury Human dla poszczególnych list i budujemy pierwsze drzewo 0 /

Algorytm Humana - przykªad dla listy wag L = {,,,, 9, } budujemy listy T (L ), które powstaj z listy L poprzez usuni cie dwóch najmniejszych wag oraz na doª czeniu sumy tych wag L = {,,,, 9, } { } +,,, 9, { } +,, 9, { } +, 9, { }, 9+ 9 gdy na li±cie znajduj si dwie wagi, ko«czymy wywoªywania rekurencyjne procedury Human dla poszczególnych list i budujemy pierwsze drzewo /

Przykªad - kompresja pliku Algorytm Humana mo»na wykorzysta do kompresji pliku. Rozwa»my alfabet Σ = {a, b, c, d, e} Zaªó»my,»e nasz plik tekstowy, który chcemy podda kompresji, ma KB, czyli 0B. Kod jednego znaku pami tany jest na jednym lub dwóch bajtach( przykªadem pierwszego zapisu jest kod ASCII, natomiast drugiego - Unicode). Przyjmijmy dla prostoty rozwa»anego przykªadu,»e ka»dy znak jest zakodowany na bitach, wiec nieskompresowany plik zajmuje bity. 0(znaki) = 9 /

Kody o staªej dªugo±ci Nasz przykªad jest pewnym uproszczeniem, poniewa» alfabet skªada si z pi ciu liter, wi c mo»emy zmniejszy ilo± bitów potrzebnych do zakodowania jednego znaku. Poniewa» = a =, wi c wystarcz trzy bity aby zakodowa wszystkie znaki w alfabecie Σ. Ustalmy nowe kodowanie a b c d e 000 00 0 0 W efekcie zakodowania naszego pliku mamy 0(znaki) (bity) = 07 bity, co stanowi 7,% pliku wej±ciowego. Taki dobry wynik kompresji uzyskujemy tylko dlatego,»e nasz alfabet skªada si tylko z znaków. Im wi ksza liczba znaków alfabetu tym gorszy wynik kompresji. Gdy alfabet skªada si z znaków, wówczas potrzebujemy bitów na znak, czyli nie uzyskujemy»adnej kompresji. /

Kody o zmiennej dªugo±ci Innym rozwi zaniem naszego problemu s kody o zmiennej dªugo±ci kodu dla ka»dego znaku. Im cz ±ciej wyst puje znak w pliku, tym krótszy posiada kod. Przypu± my,»e znaki naszego alfabetu Σ wyst puj z cz sto±ci a b c d e % 0% % % % Wyznaczmy optymalne drzewo binarne dla cz sto±ci wyst powania znaków L = {, 0,,, } { } L =,,, 0+ { } L =, + 0, { } L =, 0+ 0 /

Kody preksowe Nadajmy etykiety kraw dziom: lewym 0 i prawym. Nast pnie mo»emy odczyta ju» kody: a b c d e 0 00 00 0 Najkrótszy kod posiada najcz ±ciej wyst puj cy znak w naszym pliku a najdªu»szy kod posiadaj znaki, które wyst puj rzadziej w Σ. Obliczmy wag drzewa a b c d e % 0% % % % 0 W (T ) = + + + 0 + = 00 Poniewa», wej±ciowy plik zawieraª 9 bity, wi c po zakodowaniu wg. powy»szego kodu plik ma 00 0(znaki)/00 = 0 bity, co stanowi % pliku wej±ciowego. 0 00 00 0 /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd 7 /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd 9 /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd 0 /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd /

Kody preksowe 0 a b c d e 0 00 00 0 00 00 0 Kod nazywamy kodem preksowym, je»eli»aden kod znaku nie jest cz ±ci pocz tkow innego kodu. W przypadku kodów o zmiennej dªugo±ci musimy rozwi za problem oczytania zakodowanej wiadomo±ci, czyli dekompresji. 000000000 eacaaacd /

Statyczny kod Humana kod Humana minimalizuje sum wa»on dªugo±ci kodów(w zbudowanym drzewie), tj. jest optymalnym kodem preksowym zarówno kodowanie jak i dekodowanie jest proste i efektywne do budowy drzewa Humana wymagana jest znajomo± statystyki wyst puj cych znaków /

Kodowanie Humana mo»emy podzieli na statyczne kody Humana dynamiczne kodowanie Humana (adaptacyjne) /

Dynamiczne kodowanie Humana Dynamiczne kodowanie Humana, to kodowanie danych o nieznanej statystyce. 7 /

Dynamiczne kodowanie Humana Dynamiczne kodowanie Humana, to kodowanie danych o nieznanej statystyce. Statystyk buduje si w miar otrzymywania danych i co znak lub co dan liczb znaków poprawia generowane drzewo Humana. /

Dynamiczne kodowanie Humana Drzewa dynamicznego kodowania Humana posiadaj nast puj ce wªasno±ci Drzewa posiadaj dodatkowe dwa parametry waga wierzchoªka numer wierzchoªka waga wierzchoªka oznacza dla li±ci - liczba wyst pie«danego znaku w kodowanym tek±cie dla w zªów wewn trznych sum wag jego synów li±cie przechowuj kodowane znaki drzewo posiada tzw. 0-wierzchoªek( lub NYT - not yet transmitted), który jest miejscem doª czania do drzewa nowych wierzchoªków blokiem nazywamy zbiór wierzchoªków o wadze mniejszej równej danej wadze Alfabet skªadaj cy si z n znaków, mo»e wygenerowa drzewo o V = n wierzchoªkach (wewn trznych i zewn trznych). numer wierzchoªka y, y, y,..., y (n ) waga wierzchoªka x, x, x,..., x (n ) oraz x x x... x (n ) 9 /

Wªasno± s siedztwa Drzewo binarne o nieujemnych wagach wierzchoªków w i jest drzewem Humana wtedy i tylko wtedy gdy wag ka»dego wierzchoªka jest suma wag jego dzieci istnieje niemalej ca numeracja wierzchoªków o wªasno±ci wierzchoªki y (j ) oraz y (j) s rodze«stwem dla j < n oraz ich wspólny rodzic ma wy»szy numer ni» y (j ) oraz y (j). 9 0 /

Dynamiczne kodowanie Humana http://huffman.ooz.ie/ http://en.wikipedia.org/wiki/adaptive_huffman_coding /

Cykl fundamentalny - denicja 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. /

Cykl fundamentalny - denicja 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. drzewo rozpinaj ce grafu /

Cykl fundamentalny - denicja 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. cykl fundamentalny -() /

Cykl fundamentalny - denicja 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. cykl fundamentalny -() /

Cykl fundamentalny - denicja 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. /

Cykl fundamentalny - denicja 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. cykl fundamentalny -() 7 /

Cykl fundamentalny - denicja 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. cykl fundamentalny -() /

Cykl fundamentalny - denicja 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. dla grafu mamy n =, m = i λ(g) = + = 9 /

Cykl fundamentalny - denicja 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. dla grafu mamy n =, m = i λ(g) = + = W grae spójnym G mamy λ(g) = m n + cykli fundamentalnych. 0 /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe drzewo rozpinaj ce grafu /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe cykl fundamentalny -() /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe cykl fundamentalny -() /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe cykl fundamentalny -() /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe cykl fundamentalny -() 7 /

Cykl fundamentalny Inne drzewo spinaj ce generuje inne cykle podstawowe dla grafu mamy n =, m = i λ(g) = + = /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. v b e w a t c f g z x d y 9 /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. a v b e t c w f g z ka»dy ze zbiorów kraw dzi {g}, {d, c, f }, {a, b, e}, {e, b, d} jest przekrojem x d y 0 /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. a v b e t c w f g z ka»dy ze zbiorów kraw dzi {g}, {d, c, f }, {a, b, e}, {e, b, d} jest przekrojem x d y /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. v a b e t c w f g z ka»dy ze zbiorów kraw dzi {g}, {d, c, f }, {a, b, e}, {e, b, d} jest przekrojem x d y /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. a v b e t c w f g z ka»dy ze zbiorów kraw dzi {g}, {d, c, f }, {a, b, e}, {e, b, d} jest przekrojem x d y /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. a v b e t c w f g z ka»dy ze zbiorów kraw dzi {g}, {d, c, f }, {a, b, e}, {e, b, d} jest przekrojem zbiór {e, f, g} nie jest przekrojem, poniewa» podzbiory wªa±ciwe: {e, f } oraz {g} s przekrojami x d y /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. a v b e t c w f g z ka»dy ze zbiorów kraw dzi {g}, {d, c, f }, {a, b, e}, {e, b, d} jest przekrojem zbiór {e, f, g} nie jest przekrojem, poniewa» podzbiory wªa±ciwe: {e, f } oraz {g} s przekrojami x d y /

Przekrój w grae Przekrojem P w spójnym grae G = (V, E) nazywamy ka»dy zbiór kraw dzi, dla którego graf G\P jest niespójny, a jednocze±nie dla dowolnego z wªa±ciwych podzbiorów A zbioru P, A P, graf G\A jest spójny. a v b e t c w f g z ka»dy ze zbiorów kraw dzi {g}, {d, c, f }, {a, b, e}, {e, b, d} jest przekrojem zbiór {e, f, g} nie jest przekrojem, poniewa» podzbiory wªa±ciwe: {e, f } oraz {g} s przekrojami x d y /

Przekrój w grae - denicja Przekrojem S w spójnym grae G = (V, E) nazywamy podziaª S = {X, Y } na dwa niepuste, rozª czne podzbiory. Zbiór kraw dzi incydentnych do pewnego wierzchoªka w zbiorze X i do pewnego w zbiorze Y oznaczamy E(S) ( lub E(X, Y ) lub S(X, Y ) i nazywamy przekrojem w odniesieniu do zbiorów X i Y. v b e w a t c f g z x d y 7 /

Przekrój w grae - denicja Przekrojem S w spójnym grae G = (V, E) nazywamy podziaª S = {X, Y } na dwa niepuste, rozª czne podzbiory. Zbiór kraw dzi incydentnych do pewnego wierzchoªka w zbiorze X i do pewnego w zbiorze Y oznaczamy E(S) ( lub E(X, Y ) lub S(X, Y ) i nazywamy przekrojem w odniesieniu do zbiorów X i Y. a v b e t c w f g z dla zbiorów X = {v, y, t}, Y = {w, z}, przekrój S(X, Y ) to zbiór kraw dzi {e, f, g} jest przekrojem w odniesieniu do zbiorów X i Y x d y /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. 9 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. 70 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. przekrój fundamentalny () 7 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. przekrój fundamentalny () 7 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. przekrój fundamentalny () 7 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. przekrój fundamentalny () 7 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. przekrój fundamentalny () 7 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. przekrój fundamentalny () 7 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. przekrój fundamentalny () 77 /

Przekrój fundamentalny 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 grae G, taki»e e jest jedyn kraw dzi wspóln z E(S T (e)). Taki przekrój nazywamy przekrojem fundamentalnym S T (e) wzgl dem drzewa T. W grae mamy przekroje fundamentalne. W grae spójnym G mamy n przekrojów fundamentalnych. 7 /

Minimalne drzewo spinaj ce - Minimal Spanning Tree Niech b dzie dany graf G = (V, E, w) i niech T = (V, E T ) b dzie drzewem spinaj cym graf G. Wag drzewa T nazywamy w(t ) = e E T w(e) 79 /

Minimalne drzewo spinaj ce - Minimal Spanning Tree Niech b dzie dany graf G = (V, E, w) i niech T = (V, E T ) b dzie drzewem spinaj cym graf G. Wag drzewa T nazywamy w(t ) = e E T w(e) Drzewo spinaj ce T nazywamy minimalnym drzewem spinaj cym graf G, je±li T ma najmniejsz wag spo±ród wszystkich drzew spinaj cych graf G. w(t ) min 0 /

Minimalne drzewo spinaj ce - Minimal Spanning Tree Niech b dzie dany graf G = (V, E, w) i niech T = (V, E T ) b dzie drzewem spinaj cym graf G. Wag drzewa T nazywamy w(t ) = e E T w(e) Drzewo spinaj ce T nazywamy minimalnym drzewem spinaj cym graf G, je±li T ma najmniejsz wag spo±ród wszystkich drzew spinaj cych graf G. w(t ) min 7 /

Minimalne drzewo spinaj ce - Minimal Spanning Tree Niech b dzie dany graf G = (V, E, w) i niech T = (V, E T ) b dzie drzewem spinaj cym graf G. Wag drzewa T nazywamy w(t ) = e E T w(e) Drzewo spinaj ce T nazywamy minimalnym drzewem spinaj cym graf G, je±li T ma najmniejsz wag spo±ród wszystkich drzew spinaj cych graf G. w(t ) min 7 w(t ) = 0 /

Minimalne drzewo spinaj ce - Minimal Spanning Tree Niech b dzie dany graf G = (V, E, w) i niech T = (V, E T ) b dzie drzewem spinaj cym graf G. Wag drzewa T nazywamy w(t ) = e E T w(e) Drzewo spinaj ce T nazywamy minimalnym drzewem spinaj cym graf G, je±li T ma najmniejsz wag spo±ród wszystkich drzew spinaj cych graf G. w(t ) min 7 w(t ) = 0 w(t ) = /

Minimalne drzewo spinaj ce - Minimal Spanning Tree Niech b dzie dany graf G = (V, E, w) i niech T = (V, E T ) b dzie drzewem spinaj cym graf G. Wag drzewa T nazywamy w(t ) = e E T w(e) Drzewo spinaj ce T nazywamy minimalnym drzewem spinaj cym graf G, je±li T ma najmniejsz wag spo±ród wszystkich drzew spinaj cych graf G. w(t ) min 7 w(t ) = 0 w(t ) = /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e G \ T w(e) w(f ) dla dowolnej kraw dzi f C T (e) /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e G \ T w(e) w(f ) dla dowolnej kraw dzi f C T (e) 7 /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e G \ T w(e) w(f ) dla dowolnej kraw dzi f C T (e) 7 7 /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e G \ T w(e) w(f ) dla dowolnej kraw dzi f C T (e) 7 /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e T w(e) w(f ) dla dowolnej kraw dzi f E(S T (e)) 9 /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e T w(e) w(f ) dla dowolnej kraw dzi f E(S T (e)) 7 90 /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e T w(e) w(f ) dla dowolnej kraw dzi f E(S T (e)) 7 9 /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e T w(e) w(f ) dla dowolnej kraw dzi f E(S T (e)) 7 9 /

Wªasno±ci MST Drzewo spinaj ce T jest minimalne wtedy i tylko wtedy, gdy dla ka»dej kraw dzi e T w(e) w(f ) dla dowolnej kraw dzi f E(S T (e)) 7 9 /

Metody generowania MST- Minimal Spanning Tree Zagadnienie MST sprowadza si do wyznaczenia zbioru kraw dzi E T drzewa spinaj cego T. Wiele znanych algorytmów rozwi zuj cych zagadnienie MST, opartych jest na strategiach zachªannych. 9 /

Metody generowania MST- Minimal Spanning Tree Zagadnienie MST sprowadza si do wyznaczenia zbioru kraw dzi E T drzewa spinaj cego T. Wiele znanych algorytmów rozwi zuj cych zagadnienie MST, opartych jest na strategiach zachªannych. Strategia :Algorytm Kruskala. Sortujemy kraw dzie wg wag. E T =. W kolejnym kroku rozpatrujemy kraw d¹ z E \ E T o minimalnej wadze. Dodajemy j do E T, o ile nie powoduje to powstania cyklu. 9 /

Metody generowania MST- Minimal Spanning Tree Zagadnienie MST sprowadza si do wyznaczenia zbioru kraw dzi E T drzewa spinaj cego T. Wiele znanych algorytmów rozwi zuj cych zagadnienie MST, opartych jest na strategiach zachªannych. Strategia :Algorytm Kruskala. Sortujemy kraw dzie wg wag. E T =. W kolejnym kroku rozpatrujemy kraw d¹ z E \ E T o minimalnej wadze. Dodajemy j do E T, o ile nie powoduje to powstania cyklu. Strategia :Algorytm Prima. Inicjujemy E T wstawiaj c do niego minimaln kraw d¹ spo±ród kraw dzi incydentnych z wierzchoªkiem v (v - wybierany jest arbitralnie). W kolejnym kroku rozpatrujemy minimaln kraw d¹ z E \ E T incydentn z jak ± kraw dzi z E T. Dodajemy j do E T, o ile drugi z jej ko«ców nie jest incydentny z jakim± wierzchoªkiem z E T. 9 /

Minimalne drzewo spinaj ce - Minimal Spanning Tree Strategia :Algorytm Boruvki. Zbiór E T budujemy fazami. W ka»dej fazie wykonujemy dwa kroki: - Dla ka»dego wierzchoªka z G znajdujemy najkrótsz incydentn z nim kraw d¹, kraw dzie te doª czamy do zbioru E T. - Tworzymy nowy graf G. Wierzchoªki w G (nazwijmy je superwierzchoªkami) odpowiadaj spójnym skªadowym w podgrae indukowanym na kraw dziach E T. Dwa superwierzchoªki S i S ª czymy kraw dzi wtedy i tylko wtedy, gdy jaki± wierzchoªek z S byª poª czony w G kraw dzi z jakim± wierzchoªkiem z S. Jako wag tej kraw dzi przyjmujemy minimaln wag kraw dzi w G pomi dzy wierzchoªkami z S i S. Za G przyjmujemy G i przechodzimy do nowej fazy. http://dl.dropbox.com/u/9/mst.pdf 97 /

Algorytm Boruvki Dane: Graf G = (V, E, w) spójny, V = {,,..., n}, w : E R, dla której dwie rozª czne kraw dzie maj ró»ne wagi Wynik: zbiór kraw dzi E T minimalnego drzewa spinaj cego dla grafu G Boruvka MST(G) for i to n do V i {i} E T M {V, V,..., V n} while E T < n do for U M do znajd¹ kraw d¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej kraw dzi e = u v, u U, v / U 7 oznacz komponent U, który zawiera v E T E T e 9 for U M do UNION(U,U') 9 /

Algorytm Boruvki 0 7 0 9 7 Boruvka MST(G) for i to n do V i {i} E T M {V, V,..., V n} V V V V V V V 7 V 7 99 /

Algorytm Boruvki 0 7 0 9 7 Boruvka MST(G) V V V V V V V 7 V 7 while E T < n do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 00 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V V V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V V V V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V V V V V 7 do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 07 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V V V V V 7 V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V V 7 V Boruvka MST(G) 7 while E T < n V V V V V V 7 V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 09 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V 7 V Boruvka MST(G), 7 while E T < n V V V V 7 V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Algorytm Boruvki 0 7 0 9 7 V V V V V V 7 V Boruvka MST(G), 7 while E T < n V V V V 7 V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') /

Algorytm Boruvki 0 7 0 9 7 V V V V Boruvka MST(G),,, 7, while E T < n V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') /

Algorytm Boruvki 0 7 0 9 7 V V V V Boruvka MST(G),,, 7, while E T < n V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') /

Algorytm Boruvki 0 7 0 9 7 Boruvka MST(G) V V V,,, 7,, while E T < n do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') /

Algorytm Boruvki 0 7 0 9 7 Boruvka MST(G) V V V,,, 7,, while E T < n do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') /

Algorytm Boruvki 0 7 0 9 7 V V V Boruvka MST(G),,, 7,, while E T < n V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') /

Algorytm Boruvki 0 7 0 9 7 V V V Boruvka MST(G),,, 7,, while E T < n V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 7 /

Algorytm Boruvki 0 7 0 9 7 V V V Boruvka MST(G),,, 7,, while E T < n V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') /

Algorytm Boruvki 0 7 0 9 7 V V V Boruvka MST(G),,, 7,, while E T < n V V do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 9 /

Algorytm Boruvki 0 7 0 9 7 Boruvka MST(G) V,,,,,, 7, while E T < n do for U M do znajd¹ e = uv, u U, v / U i w(e) < w(e ) dla ka»dej e = u v, u U, v / U oznacz komponent U, który zawiera v E T E T e for U M do UNION(U,U') 0 /

Minimalne drzewo spinaj ce (Euklidesowe) - Euclidean Minimum Spanning Tree EMST Denicja 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 /

Algorytm dokªadny skonstruuj graf peªny na n punktach o n(n ) kraw dziach waga ka»dej kraw dzi=odlegªo±ci euklidesowej pomi dzy ko«cami wykorzystaj algorytm Prima lub Kruskala do wygenerowania MST Wady takiego rozwi zania czas dziaªania jest proporcjonalny do n wi kszo± kraw dzi grafu jest niewykorzystana do konstrukcji drzewa MST Dla n = 9 EMST zawiera kraw dzi, natomiast graf peªny zawiera kraw dzi. P /

EMST Triangulacja podziaª pªaszczyzny na trójk ty, w taki sposób,»e cz ± wspólna dowolnych dwóch trójk tów jest ich wspóln kraw dzi, wspólnym wierzchoªkiem lub wspólnym trójk tem(caªym) albo zbiorem pustym. wyznacz graf triangulacji punktów ze zbioru P przypisz wag ka»dej kraw dzi odlegªo± pomi dzy punktami ko«cowymi wyznacz MST u»ywaj c algorytmu Prima /

Maksymalne drzewo spinaj ce 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 /

Maksymalne drzewo spinaj ce 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). /

Maksymalne drzewo spinaj ce 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). 7 /

Maksymalne drzewo spinaj ce 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). 7-7 - - - - - 7 /

Maksymalne drzewo spinaj ce 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). 7-7 - - - - - /

Maksymalne drzewo spinaj ce 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). 7-7 - 7 - - - - 9 /

Przykªad Zdeniujmy 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. 0 /

Przykªad Zdeniujmy 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. 0. 0. 0.0 0.0 0. 0.7 0.0 0. /

Przykªad Zdeniujmy 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. 0. 0. 0.0 0. 0. 0.9 0.0 0. 0.7 0.0 0. 0.99 0.79 0. 0.9 0. Wówczas q ij = p ij okre±la prawdopodobie«stwo poprawnego dziaªania. /

Przykªad Zdeniujmy 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. 0. 0. 0.0 0. 0. 0.9 0.0 0. 0.7 0.0 0. 0.99 0.79 0. 0.9 0. Wówczas q ij = 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. /

Przykªad Zdeniujmy 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. 0. 0. 0.0 0. 0. 0.9 0.0 0. 0.7 0.0 0. 0.99 0.79 0. 0.9 0. Wówczas q ij = 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. /

Przykªad Zdeniujmy 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. 0. 0. 0.0 0. 0. 0.9 0.0 0. 0.7 0.0 0. 0.99 0.79 0. 0.9 0. Wówczas q ij = 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. W (T ) = 0, 99 0, 9 0, 9 0, = 0, 7 /

Przepustowo± ±cie»ki - bottleneck problem Niech G = (V, E, w) b dzie spójn sieci i niech e e e n W = v 0 v v...v n v n b dzie dowoln ±cie»k. Wtedy c(w ) = min{w(e i ); i =,..., n} nazywamy przepustowo±ci ±cie»ki. /

Przepustowo± ±cie»ki - bottleneck problem Niech G = (V, E, w) b dzie spójn sieci i niech e e e n W = v 0 v v...v n v n b dzie dowoln ±cie»k. Wtedy c(w ) = min{w(e i ); i =,..., n} nazywamy przepustowo±ci ±cie»ki. s 7 t u ±cie»ka W = (t, u, y) c(w ) = min{w(t, u), w(u, y)} = x y 7 /

Przepustowo± ±cie»ki - bottleneck problem Niech G = (V, E, w) b dzie spójn sieci i niech e e e n W = v 0 v v...v n v n b dzie dowoln ±cie»k. Wtedy c(w ) = min{w(e i ); i =,..., n} nazywamy przepustowo±ci ±cie»ki. s x 7 t y u ±cie»ka W = (t, u, y) c(w ) = min{w(t, u), w(u, y)} = ±cie»ka W = (t, s, x, y) c(w ) = min{7,, } = /

Twierdzenie Niech G = (V, E, w) b dzie grafem spójnym i niech T b dzie maksymalnym drzewem spinaj cym dla grafu G. Wtedy dla dowolnych wierzchoªków u i v, jednoznacznie wyznaczona droga w drzewie T, posiada najwi ksz przepustowo±. 9 /

Twierdzenie Niech G = (V, E, w) b dzie grafem spójnym i niech T b dzie maksymalnym drzewem spinaj cym dla grafu G. Wtedy dla dowolnych wierzchoªków u i v, jednoznacznie wyznaczona droga w drzewie T, posiada najwi ksz przepustowo±. s 7 t u x y 0 /

Twierdzenie Niech G = (V, E, w) b dzie grafem spójnym i niech T b dzie maksymalnym drzewem spinaj cym dla grafu G. Wtedy dla dowolnych wierzchoªków u i v, jednoznacznie wyznaczona droga w drzewie T, posiada najwi ksz przepustowo±. s 7 t u x y /

Twierdzenie Niech G = (V, E, w) b dzie grafem spójnym i niech T b dzie maksymalnym drzewem spinaj cym dla grafu G. Wtedy dla dowolnych wierzchoªków u i v, jednoznacznie wyznaczona droga w drzewie T, posiada najwi ksz przepustowo±. s 7 t u x y /

Twierdzenie Niech G = (V, E, w) b dzie grafem spójnym i niech T b dzie maksymalnym drzewem spinaj cym dla grafu G. Wtedy dla dowolnych wierzchoªków u i v, jednoznacznie wyznaczona droga w drzewie T, posiada najwi ksz przepustowo±. s 7 t u x y /

Drzewo Steinera Niech b dzie dany wa»ony graf G = (V, E) z funkcj wagow w : E R + (sie ) oraz niech N V b dzie pewnym zbiorem wierzchoªków, które nazywamy terminalami. 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. Minimalnym drzewem Steinera T = (V T, E T ) (SMT) nazywamy takie drzewo Steinera, dla którego e=(i,j) E T w ij min b a f e Wierzchoªki zbioru V T \ N nazywamy punktami Steinera. c d /

Drzewo Steinera a b f e c d /

Drzewo Steinera a b f e c d /

Drzewo Steinera a b f e c d 7 /

Drzewo Steinera a b f e c d Dwa specjalne przypadki drzewa Steinera /

Drzewo Steinera a b c d e f Dwa specjalne przypadki drzewa Steinera 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) 9 /

Drzewo Steinera a b f e c d Dwa specjalne przypadki drzewa Steinera 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) je»eli N = (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) 0 /

Drzewo Steinera a b f e c d Dwa specjalne przypadki drzewa Steinera 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) je»eli N = (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) /

Drzewo Steinera b a f e Problem SMT jest NP-trudny, nawet dla wag jednostkowych. c d Dwa specjalne przypadki drzewa Steinera 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) je»eli N = (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) /

Algorytm dokªadny generowania SMT Je»eli N jest zbiorem terminali, natomiast T jest drzewem Steinera grafu G, to T jest drzewem spinaj cym podgrafu G indukowanego przez N oraz punkty Steinera drzewa T. /

Algorytm dokªadny generowania SMT Je»eli N jest zbiorem terminali, natomiast T jest drzewem Steinera grafu G, to T jest 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) w 0 T drzewo, o sumie wag kraw dzi, równej w for ka»dy podzbiór A V \ N do wyznacz minimalne drzewo spinaj ce T grafu indukowanego G[A N] w - suma wag kraw dzi drzewa T 7 w min(w, w ) /

Algorytm dokªadny generowania SMT Je»eli A =, wtedy graf jest indukowany na zbiorze terminali G[N]. Suma wag w =. a b f e c d /

Algorytm dokªadny generowania SMT Je»eli A =, wtedy graf jest indukowany na zbiorze terminali G[N]. Suma wag w =. a b c d e f Je»eli A = {f }, wtedy graf jest indukowany na zbiorze G[N {f }]. Suma wag w = 9. a b c d e f /

Algorytm dokªadny generowania SMT Je»eli A =, wtedy graf jest indukowany na zbiorze terminali G[N]. Suma wag w =. a b c d e f Je»eli A = {f }, wtedy graf jest indukowany na zbiorze G[N {f }]. Suma wag w = 9. a b c d e f Je»eli A = {c}, wtedy graf jest indukowany na zbiorze G[N {c}]. Suma wag w = 7. a b c d e f 7 /

Algorytm dokªadny generowania SMT Je»eli A =, wtedy graf jest indukowany na zbiorze terminali G[N]. Suma wag w =. a b c d e f Je»eli A = {f }, wtedy graf jest indukowany na zbiorze G[N {f }]. Suma wag w = 9. a b c d e f Je»eli A = {c}, wtedy graf jest indukowany na zbiorze G[N {c}]. Suma wag w = 7. a b c d e f Je»eli A = {c, f }, wtedy graf jest indukowany na zbiorze G[N {c, f }]. Suma wag w = 0. a b c d e f /

Technologia multicast Technologia multicast polega na równolegªym przesyªaniu danych w sieci od w zªa nadawczego do grupy w zªów odbiorczych (wcze±niej zdeniowanych). 9 /

Technologia multicast Technologia multicast polega na równolegªym przesyªaniu danych w sieci od w zªa nadawczego do grupy w zªów odbiorczych (wcze±niej zdeniowanych). wzrost przepustowo±ci wspóªczesnych sieci pozwala na transmisje danych multimedialnych w czasie rzeczywistym (transmisja radiowa i telewizyjna, video na»adanie, telekonferencje, itp.) 0 /

Technologia multicast Technologia multicast polega na równolegªym przesyªaniu danych w sieci od w zªa nadawczego do grupy w zªów odbiorczych (wcze±niej zdeniowanych). wzrost przepustowo±ci wspóªczesnych sieci pozwala na transmisje danych multimedialnych w czasie rzeczywistym (transmisja radiowa i telewizyjna, video na»adanie, telekonferencje, itp.) parametry transmisji zapewniaj ce okre±lon jako± usªug w sieciach pakietowych (ang. Quality-of-Service) s aktualnie przedmiotem bada«nad algorytmami i protokoªami routingu multicast /

Technologia multicast Technologia multicast polega na równolegªym przesyªaniu danych w sieci od w zªa nadawczego do grupy w zªów odbiorczych (wcze±niej zdeniowanych). wzrost przepustowo±ci wspóªczesnych sieci pozwala na transmisje danych multimedialnych w czasie rzeczywistym (transmisja radiowa i telewizyjna, video na»adanie, telekonferencje, itp.) parametry transmisji zapewniaj ce okre±lon jako± usªug w sieciach pakietowych (ang. Quality-of-Service) s aktualnie przedmiotem bada«nad algorytmami i protokoªami routingu multicast Technologia multicast wymaga wydajnych algorytmów routingu, których zadaniem jest konstruowanie drzewa o minimalnym koszcie mi dzy urz dzeniem-nadawc, a grup w zªów reprezentuj cych u»ytkowników w sieci - drzewa multicast. /

Drzewa multicast Wyró»niamy dwa rodzaje drzew multicast minimalne drzewo Steinera (MST ang. Minimum Steiner Tree). W kontek±cie transmisji danych w sieciach komunikacyjnych, najcz ±ciej wymienia si algorytm KMB, który pozwala uzyska rozwi zania o minimalnym koszcie drzewa. /

Drzewa multicast Wyró»niamy dwa rodzaje drzew multicast minimalne drzewo Steinera (MST ang. Minimum Steiner Tree). W kontek±cie transmisji danych w sieciach komunikacyjnych, najcz ±ciej wymienia si algorytm KMB, który pozwala uzyska rozwi zania o minimalnym koszcie drzewa. drzewo najkrótszych ±cie»ek mi dzy w zªem ¹ródªowym, a ka»dym z w zªów odbiorczych (SPT ang. Shortest Path Tree). W algorytmie tym stosuje si algorytm Dijkstry lub Bellmana-Forda, a nast pnie odcina gaª zie(kraw dzie s siednie z kraw dziami wisz cymi) drzewa, które nie zawieraj w zªów odbiorczych /

Sie Sie komunikacyjna reprezentowana jest jako spójny graf G = (V, E), gdzie V jest zbiorem w zªów, a E zbiorem ª czy mi dzy w zªami sieci. Z ka»dym ª czem e E skojarzone s dwa parametry koszt c(e)(reprezentuje wykorzystanie ª cza, wielko± ruchu w ª czu, rozmiar bufora itp) opó¹nienie d(e) - opó¹nienie w ª czu jest sum opó¹nie«wyst puj cych na ª czu, wygenerowanych poprzez propagacj, kolejkowanie i przeª czanie W sieci wyró»niamy wierzchoªek s, który jest ¹ródªem dla terminali grupy multicast. Drzewo multicast T s,n jest drzewem zakorzenionym w w ¹le s i zawiera wszystkie wyró»nione terminale ze zbioru N. /

Algorytm KMB generowania minimalnego drzewa Steinera Algorytm aproksymacyjny Kou, Markovsky i Bermann Dane: graf G, zbiór terminali N, koszt ª cza c(e) Wynik: minimalne drzewo Steinera T KMB(G, N) utwórz graf peªny K N c({x, y}) waga najkrótszej ±cie»ki ª cz cej x i y w G znajd¹ drzewo T, które b dzie MST grafu K N zbuduj graf H, w którym ka»d kraw d¹ MST, zast p najkrótsz ±cie»k z G usu«cykle i li±cie nieterminalne z H /

Algorytm KMB generowania minimalnego drzewa Steinera Algorytm aproksymacyjny Kou, Markovsky i Bermann Dane: graf G, zbiór terminali N, koszt ª cza c(e) Wynik: minimalne drzewo Steinera T KMB(G, N) utwórz graf peªny K N c({x, y}) waga najkrótszej ±cie»ki ª cz cej x i y w G znajd¹ drzewo T, które b dzie MST grafu K N zbuduj graf H, w którym ka»d kraw d¹ MST, zast p najkrótsz ±cie»k z G usu«cykle i li±cie nieterminalne z H a b f e c d 7 /

Algorytm KMB generowania minimalnego drzewa Steinera Algorytm aproksymacyjny Kou, Markovsky i Bermann Dane: graf G, zbiór terminali N, koszt ª cza c(e) Wynik: minimalne drzewo Steinera T KMB(G, N) utwórz graf peªny K N c({x, y}) waga najkrótszej ±cie»ki ª cz cej x i y w G znajd¹ drzewo T, które b dzie MST grafu K N zbuduj graf H, w którym ka»d kraw d¹ MST, zast p najkrótsz ±cie»k z G usu«cykle i li±cie nieterminalne z H a a e b f e 7 b d c d K /

Algorytm KMB generowania minimalnego drzewa Steinera Algorytm aproksymacyjny Kou, Markovsky i Bermann Dane: graf G, zbiór terminali N, koszt ª cza c(e) Wynik: minimalne drzewo Steinera T KMB(G, N) utwórz graf peªny K N c({x, y}) waga najkrótszej ±cie»ki ª cz cej x i y w G znajd¹ drzewo T, które b dzie MST grafu K N zbuduj graf H, w którym ka»d kraw d¹ MST, zast p najkrótsz ±cie»k z G usu«cykle i li±cie nieterminalne z H a a e a b f e 7 b f e b d c d K c d 9 /

Algorytm KMB - przykªad s g 0 b d f e a c 70 /

Algorytm KMB - przykªad s g 0 b d f e a c 7 s c b a 7 /

Algorytm KMB - przykªad s g 0 b d f e a c 7 s c 7 s c b a b a 7 /

Algorytm KMB - przykªad s a b c e f g d 0 s c b a 7 s c b a 7 s a b c e f g d 7 /

Algorytm KMB - przykªad s a b c e f g d 0 s c b a 7 s c b a 7 s a b c e f g d 7 /

Algorytm KMB - przykªad s a b c e f g d 0 s c b a 7 s c b a 7 s a b c e f g d 7 /

Algorytm KMB - przykªad s a b c e f g d 0 s c b a 7 s c b a 7 s a b c e f g d 7 /

Algorytm KMB - przykªad s a b c e f g d 0 s c b a 7 s c b a 7 s a b c e f g d 77 /

Algorytm KMB - przykªad s g b d f e a c 7 /

Algorytm KMB - przykªad s g b d f e a c usuwamy cykle (np. algorytmem Prima) 79 /

Algorytm KMB - przykªad s g f b d e a c usuwamy cykle (np. algorytmem Prima) 0 /

Algorytm KMB - przykªad s g f b d e a c usuwamy cykle (np. algorytmem Prima) usuwamy nieterminalne li±cie /

Algorytm KMB - przykªad s g b d e a c usuwamy cykle (np. algorytmem Prima) usuwamy nieterminalne li±cie /

Algorytm KMB - przykªad s g b d e a c usuwamy cykle (np. algorytmem Prima) usuwamy nieterminalne li±cie c(t ) = /

Jakob Steiner (79-) /