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

Podobne dokumenty
oraz spełnia warunki: (*) dla wszystkich wierzchołków

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

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

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

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

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Wstp. Warto przepływu to

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

Temat: Algorytmy zachłanne

Temat: Algorytmy aproksymacyjne dla wybranych NP-trudnych problemów grafowych

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych.

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

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

Temat: Algorytmy aproksymacyjne (przyblione) cz. I. Majc do rozwizania trudny obliczeniowo problem, moemy wybra jedno z dwóch nastpujcych podej:

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

Algorytmika Problemów Trudnych

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

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

Projekt okablowania strukturalnego dla I semestru Akademii CISCO we WSIZ Copernicus we Wrocławiu

Minimalne drzewa rozpinaj ce

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:.

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

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

Teoria grafów i sieci 1 / 188

Projektowanie algorytmów rekurencyjnych

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

Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego.

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

Sprawozdanie do zadania numer 2

Kolorowanie wierzchołków

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

Ogólne wiadomości o grafach

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

Digraf. 13 maja 2017

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

Programowanie dynamiczne i algorytmy zachłanne

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

Programowanie dynamiczne cz. 2

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Przykªady problemów optymalizacji kombinatorycznej

Planowanie adresacji IP dla przedsibiorstwa.

Wstęp do programowania

Poprawa efektywnoci metody wstecznej propagacji bdu. Jacek Bartman

Pojcie grafu. { {v 1, v 2 }, {v 2, v 3 }, {v 3, v 4 }, {v 4, v 1 },{v 2, v 4 } } )

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

Wstęp do programowania

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

Gramatyki regularne i automaty skoczone

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

VPN Virtual Private Network. Uycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Podejście zachłanne, a programowanie dynamiczne

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie

Przykłady problemów optymalizacyjnych

Wybrane podstawowe rodzaje algorytmów

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

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

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

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

Algorytmiczna teoria grafów

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1

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

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

TEORETYCZNE PODSTAWY INFORMATYKI

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Poniszy rysunek przedstawia obraz ukoczonej powierzchni wykorzystywanej w wiczeniu.

Temat: Algorytmy zachłanne

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

IV Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 1 kwietnia 2016

Wyznaczanie optymalnej trasy problem komiwojażera

Matematyczne Podstawy Informatyki

Przeszukiwanie przestrzeni stanów. Wprowadzenie do Sztucznej Inteligencji. Podstawowe problemy teorii przeszukiwania przestrzeni stanów

TEORIA GRAFÓW I SIECI

PROWIZJE Menad er Schematy rozliczeniowe

Rys1 Rys 2 1. metoda analityczna. Rys 3 Oznaczamy prdy i spadki napi jak na powyszym rysunku. Moemy zapisa: (dla wzłów A i B)

Algorytmy aproksymacyjne i parametryzowane

PRAWIDŁOWE ODPOWIEDZI DO ZADA ZAMKNITYCH

stopie szaro ci piksela ( x, y)

Instytut Informatyki Uniwersytet Wrocławski. Dane w sieciach. (i inne historie) Marcin Bieńkowski

Studium przypadku Case Study CCNA2-ROUTING

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Języki formalne i automaty Ćwiczenia 8

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

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

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

Zagadnienie najkrótszej drogi w sieci

Symulacja cieek klinicznych w rodowisku PowerDesigner i SIMUL8

ELEMENT SYSTEMU BIBI.NET. Instrukcja Obsługi

FUNKCJE UYTKOWNIKA. Rozbrajanie systemu pod przymusem [Kod przymusu] Blokowanie linii

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Sortowanie topologiczne skierowanych grafów acyklicznych

Program SMS4 Monitor

TEORIA GRAFÓW I SIECI

Analiza stanów gry na potrzeby UCT w DVRP

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Algorytmy aproksymacyjne dla problemów stochastycznych

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

Transkrypt:

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne. 1. Definicja problemu Wejcie: Graf spójny niezorientowany G = <V, E, w> z funkcj kosztu w: E R +. X zbiór wierzchołków grafu G, które nazwiemy terminalami. X = t. Elementy zbioru V\X to tzw. wierzchołki Steinera. Wyjcie: Drzewo rozpinajce wszystkie wierzchołki ze zbioru terminali o minimalnym koszcie. Do drzewa moe nalee dowolny podzbiór wierzchołków Steinera. Przykład Przykład grafu wejciowego w problemie Steinera. Kolorem czerwonym oznaczone s wierzchołki bdce terminalami, za kolorem czarnym wierzchołki Steinera. 1

Koszt drzewa Steinera wynosi 11. Kolorem niebieskim oznaczono krawdzie nalece do drzewa Steinera 2. Zastosowania Problem drzewa Steinera ma zastosowania w wielu dziedzinach. Przykładowe zastosowania: problem multicast routingu - terminale w drzewie Steinera s jednoznaczne z komputerami odbiorców, pozostałe wzły sieci to routery. Naley wyznaczy taki zbiór routerów, aby połczy wszystkich odbiorców i zmaksymalizowa szybko połczenia (albo zminimalizowa opónienia). 2

projektowanie układów elektronicznych VLSI ( ang. Very Large Scale Integration (VLSI) wicej ni 100 000 elementów, typowo miliony elementów), w których naley wyznaczy moliwie najkrótsze cieki łczce poszczególne piny. 3. Algorytm dokładny (Hakimi 1971) Problem drzewa Steinera zarówno w sformułowaniu klasycznym jak i we wszystkich odmianach naley do problemów NPtrudnych. Algorytm dokładny rozwizujcy ten problem ma zatem koszt ponadwielomianowy nie moe by zastosowany do grafów, które maj wicej ni 20 30 wierzchołków, z powodu nierozsdnego czasu wykonania. W algorytmie Hakimi, który jest algorytmem dokładnym, wyznaczamy wszystkie podzbiory zbioru wierzchołków nie bdcych terminalami. Liczno tych podzbiorów waha si od 0 3

do liczby wierzchołków Steinera. Dla kadego z podzbiorów wyznaczamy drzewo spinajce wierzchołki terminalne z tym podzbiorem. Jeli rozmiar tego drzewa jest mniejszy od rozmiaru drzewa znalezionego w kroku poprzednim, zastpujemy stare drzewo, nowym. Drzewo o minimalnym koszcie jest minimalnym drzewem Steinera. algorytmu Hakimi: min=; for (A V/X) { T = minimalne drzewo spinajce podzbiór A ze wszystkimi terminalami ; if ( T istnieje ) { if (w(t)<min) // w(t) koszt drzewa T { T min = T; min = w(t); } } } return T min ; 4

Przykład Wierzchołki {a, c, g, i} to terminale, za wzły {b, d, e, f, h} to wierzchołki Steinera. W kadym kroku algorytmu Hakimi sprawdzany jest jeden podzbiór A wierzchołków Steinera. Najliczniejszy z tych podzbiorów jest picioelementowy: {b, d, e, f, h}. Kolejne podzbiory maj rozmiar mniejszy od 5. Wród wszystkich podzbiorów jest równie podzbiór pusty. Dla kadego podzbioru A wyznaczane jest minimalne drzewo T spinajce ten podzbiór oraz wszystkie terminale wystpujce w grafie. Dla podzbioru A = {b, d, e, f, h} minimalne drzewo spinajce T wyglda nastpujco: 5

Dla podzbioru A = {b, d, e} nie istnieje minimalne drzewo rozpinajce łczce wierzchołki ze zbioru A ze wszystkimi terminalami. W tej sytuacji podzbiór A jest odrzucany. Wyznaczajc wszystkie podzbiory dla rozpatrywanego przykładu, okazuje si i podzbiór A = {b, e, h} wygeneruje minimalne drzewo Steinera. Poniej wypisane zostały wszystkie podzbiory A oraz wagi minimalnych drzew spinajcych wierzchołki tych podzbiorów: {b, d, e, f, h} = 14 zapis ten oznacza, e koszt minimalnego drzewa spinajce wierzchołki {b, d, e, f, h} z terminalami wynosi 14. 6

{b, d, e} nie istnieje {b, d, f} = 14 {b, d, h} = 12 {b, e, f} - nie istnieje {b, e, h} = 10 {b, f, h} = 12 {d,e,f} = 14 {d, e, h} - nie istnieje {d, f, h} = 13 {e, f, h} - nie istnieje {b, d} - nie istnieje {b, e} - nie istnieje {b, f} - nie istnieje {b, h} - nie istnieje {d, e} - nie istnieje {d, f} - nie istnieje {d, h} - nie istnieje {e, f} - nie istnieje {e,h} - nie istnieje {f, h} - nie istnieje {b} - nie istnieje {d} - nie istnieje {e} - nie istnieje {f} - nie istnieje {h} - nie istnieje {} - nie istnieje Koszt algorytmu dokładnego Generowane s wszystkie podzbiory zbioru wierzchołków Steinera. Liczba elementów w tych podzbiorach wynosi 0, 1,, n t, zatem liczba tych podzbiorów jest równa 2 n-t. Dla kadego podzbioru wyznaczane jest minimalne drzewo rozpinajce ten podzbiór oraz wszystkie terminale. Do generowania minimalnego drzewa rozpinajcego mona wykorzysta algorytm Prima. Koszt tego algorytmu jest rzdu Ο ( mlog n) (pod warunkiem, e kolejka priorytetowa zostanie zrealizowana na kopcu Fibonacciego). Na koszt całego algorytmu ma to niewielki wpływ. Koszt globalny algorytmu jest równy O(2 n-t mlogn). 7

4. Algorytm zachłanny Nierozsdny (ponadwielomianowy) koszt rozwiza dokładnych dla problemu drzewa Steinera powoduje, e nie mog by one wykorzystane w praktyce. Opracowano wiele rozwiza aproksymacyjnych dla tego problemu. Najprostsza heurystyka opiera si na technice zachłannej. Algorytm rozpoczyna si od wylosowania terminala. W kolejnych krokach wybierany jest terminal najbliszy poprzedniemu, to jest z najmniejsz wag krawdzi. Nastpnie łczymy nowo wybrany terminal z poprzednim krawdziami najkrótszej cieki midzy nimi. Algorytm koczy si w momencie wykorzystania wszystkich terminali. algorytm zachłanny; x = losowy terminal x X ; T = ({x}, ); for (i = 1; i <=t-1; i++) { s = x; D = algorytm_dijkstry(s); // D tabela minimalnych // odległoci z s v = terminal najbliszy x ; T = T path(s, v); // path(s, v) krawdzie z najkrótszej // cieki midzy s a v } return T; 8

Przykład Wierzchołki {a, c, g, i} s terminalami, za wierzchołki { b, d, e, f, h} to wierzchołki Steinera. W pierwszym kroku algorytmu wybierany jest drog losow wierzchołek v bdcy terminalem. Niech v = c. Ustalamy najkrótsze cieki z v do pozostałych terminali. Mona tutaj uy algorytmu Dijkstry, który zwraca tablic odległoci D z danego wierzchołka terminalnego do wszystkich pozostałych wierzchołków. 9

Tablica D wyglda nastpujco: D = [ 4, 2, 0, 5, 3, 2, 7, 5, 5] a b c d e f g h i Z tabeli D wybieramy terminalny wierzchołek połoony najbliej wierzchołka c, który nie został jeszcze włczony do drzewa. Najbliszym terminalem w stosunku do c jest wierzchołek a, a odległo do niego wynosi 4. Rozmiar minimalnego drzewa Steinera wynosi teraz 4. Drzewo to zawiera krawdzie z najkrótszej cieki z c do a. Tablica D ulega zmianie, gdy teraz wierzchołek a jest wierzchołkiem startowym w algorytmie Dijkstry. Nowa zawarto tablicy D jest nastpujca: D = [0, 2, 4, 3, 3, 5, 5, 5, 7] a b c d e f g h i W tej sytuacji najbliszym a i niewybranym dotd terminalem jest g. Sytuacj t obrazuje rysunek poniej: 10

Po dodaniu kolejnego terminala do drzewa Steinera zwiksza si jego rozmiar do 9. Po raz kolejny tablica D generowana przez algorytm Dijkstry ulega zmianie. Tym razem wierzchołkiem pocztkowym jest wierzchołek g. Tablica D przedstawia si teraz nastpujco: D = [5, 5, 7, 2, 3, 5, 0, 1, 3] a b c d e f g h i Z tablicy tej wybieramy terminal najbliszy g. Jest nim terminal i. Sprawdzamy, czy nie naley do drzewa Steinera. Jeli nie, to dołczamy go do drzewa. Koczymy algorytm w momencie, gdy wszystkie terminale s odwiedzone. Ostatecznie minimalne drzewo Steinera ma rozmiar równy 12 i przedstawia si nastpujco: 11

Koszt algorytmu zachłannego dla problemu drzewa Steinera Koszt algorytmu zachłannego w porównaniu z algorytmem dokładnym jest niewielki. Na czas realizacji tego algorytmu ma głównie wpływ wykorzystanie algorytmu Dijkstry. Algorytm ten jest uruchamiany dla kadego terminala, czyli t razy. Koszt algorytmu Dijkstry jest rzdu O(nlogn), a wic koszt globalny algorytmu wynosi O(tnlogn). Algorytmy zachłanny nie zawsze zwraca wynik optymalny. Jako aproksymacji tego algorytmu zostanie omówiona póniej. 5. Algorytm KMB (Kou, Markovsky, Berman) Algorytm KMB, w celu obliczenie minimalnego drzewa Steinera, przebudowuje graf wejciowy, usuwajc z niego wszystkie wierzchołki Steinera. W powstałym grafie pełnym krawdzie midzy terminalami maj wag równ długoci najkrótszych cieek w grafie pocztkowym. 12

algorytm KMB; G = <X, E >; // E ={(a, b): a, b X i // w(a, b) = w( minimalna cieka z a do b w G )} T = minimalne drzewo spinajce G ; T = podgraf G taki, e dla kadej krawdzi w T odtwarzamy najkrótsz ciek w G ; return T; Przykład Wierzchołki {a, c, g, i} s terminalami, za wierzchołki {b, d, e, f, h} to wierzchołki Steinera. Pierwszym krokiem algorytmu KMB jest przebudowanie grafu G na graf G. Zastpujemy wszystkie krawdzie midzy terminalami prowadzce przez wierzchołki Steinera jedn krawdzi o koszcie najkrótszej cieki pomidzy tym terminalem w grafie G. 13

W momencie utworzenia nowego grafu G wywoływany jest algorytm wyznaczajcy minimalne drzewo rozpinajce graf G. Jeeli zastosowany zostanie algorytm Prima, to minimalne drzewo rozpinajce T grafu G bdzie nastpujce: W ostatnim kroku algorytmu naley odtworzy cieki z grafu G dla kadej krawdzi drzewa T. Uzyskane w ten sposób drzewo T jest wynikiem algorytmu. 14

Koszt drzewa T wynosi 12. Koszt algorytmu KMB dla problemu drzewa Steinera Konstrukcja grafu G ma koszt O(t 2 nlogn), poniewa dla kadej pary terminali trzeba ustali najkrótsz ciek midzy tymi terminalami. Wyznaczenie drzewa rozpinajcego T dla grafu G ma koszt O(t 2 logn) (gdy zastosujemy algorytm Prima z kolejk zaimplementowan na kopcu Fibonacciego). Odtworzenie najkrótszych cieek z grafu G dla kadej krawdzi drzewa T ma koszt O(t 2 nlogn) poniewa dla kadej krawdzi z T trzeba wywoła algorytm Dijkstry. Zatem koszt łczny algorytmu KMB wynosi O(t 2 nlogn). 6. Jako aproksymacji algorytmów przyblionych Jako aproksymacji mona okrela stosujc pojcie ograniczenia wzgldnego. W poniszych definicjach bd stosowane nastpujce oznaczenia: C* - koszt rozwizania optymalnego, C koszt rozwizania przyblionego. Def. Powiemy, e algorytm aproksymacyjny ma ograniczenie wzgldne ε(n), gdy dla dowolnych danych wejciowych spełniony jest warunek: C max C *, C C * ε ( n) Algorytm zachłanny i KMB ma stałe ograniczenie wzgldne równe odpowiednio 2 i 1.7. 15