Algorytmika Problemów Trudnych

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

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

9. Schematy aproksymacyjne

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

Algorytmy aproksymacyjne i parametryzowane

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

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

Algorytmiczna teoria grafów

Matematyczne Podstawy Informatyki

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

Zadania z egzaminów z Algorytmiki

7. Algorytmy aproksymacyjne

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Graf. Definicja marca / 1

Opracowanie prof. J. Domsta 1

Wykład 4. Droga i cykl Eulera i Hamiltona

Zadania z egzaminów z Algorytmiki

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

Digraf. 13 maja 2017

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

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

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

Matematyka dyskretna

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

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

TEORETYCZNE PODSTAWY INFORMATYKI

Minimalne drzewa rozpinające

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

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

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

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

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

Metody optymalizacji dyskretnej. Metody przybliżone

Programowanie dynamiczne i algorytmy zachłanne

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

Wyznaczanie optymalnej trasy problem komiwojażera

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

Teoria obliczeń i złożoność obliczeniowa

Wykład 10 Grafy, algorytmy grafowe

Przykłady problemów optymalizacyjnych

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

KURS MATEMATYKA DYSKRETNA

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

Programowanie dynamiczne cz. 2

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

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

Komiwojażer na płaszczyźnie

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Trudność aproksymacji problemów NP-trudnych

Efektywność Procedur Obliczeniowych. wykład 5

Algorytmy aproksymacyjne dla problemów stochastycznych

TEORIA GRAFÓW I SIECI

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

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

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

PRZEWODNIK PO PRZEDMIOCIE

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

Elementy teorii grafów Elementy teorii grafów

Wybrane podstawowe rodzaje algorytmów

Matematyka dyskretna - 5.Grafy.

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

Znajdowanie skojarzeń na maszynie równoległej

Algorytmy wyznaczania centralności w sieci Szymon Szylko

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

Metody Programowania

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

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

Matematyczne Podstawy Informatyki

6a. Grafy eulerowskie i hamiltonowskie

Programowanie liniowe

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

E ' E G nazywamy krawędziowym zbiorem

Lista 6 Problemy NP-zupełne

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

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Algorytmy stochastyczne laboratorium 03

Matematyka dyskretna - 7.Drzewa

Ilustracja S1 S2. S3 ściana zewnętrzna

Algorytmy aproksymacyjne dla problemów stochastycznych

Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń

Przykładowe zadania z teorii liczb

Temat: Algorytmy zachłanne

Algorytmy i struktury danych.

Programowanie sieciowe. Tadeusz Trzaskalik

INTERPOLACJA I APROKSYMACJA FUNKCJI

Matematyka Dyskretna - zadania

Algorytmy mrówkowe. P. Oleksyk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytmiczna teoria grafów

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Wykład 9: Markov Chain Monte Carlo

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

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

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

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

Aproksymacja diofantyczna

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

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

Wstęp do programowania

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

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

Transkrypt:

Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17

plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności. Algorytm 2-aproksymacyjny dla drzewa Steinera. Algorytm 3 -aproksymacyjny dla metrycznego komiwojażera. 2 Wielomianowe (PTAS) i w pełni wielomianowe (FPTAS) schematy aproksymacyjne. FPTAS dla problemu plecakowego.

Algorytm α(n)-aproksymacyjny Definicja Algorytm A dla problemu optymalizacyjnego P jest jest algorytmem α(n)-aproksymacyjnym jeżeli: A działa w czasie wielomianowym od rozmiaru wejścia n, dla każdej instancji I rozmiaru n, A zwraca rozwiązanie o koszcie val A (I ), gdzie: val A(I ) opt(i ) α(n) (jeżeli P jest problemem minimalizacyjnym), opt(i ) val A (I ) α(n) (jeżeli P jest problemem maksymalizacyjnym).

Problem drzewa Steinera Graf ważony to para (V, c), gdzie V to zbiór wierzchołków a c : ( V 2) (Q + {0}) to wagi krawędzi grafu (graf jest zatem grafem pełnym). Problem Drzewa Steinera: Wejście: Graf ważony G = (V, c) oraz zbiór wierzchołków K zwanych terminalami lub węzłami wymaganymi. Wyjście: Minimalne (o minimalnym sumarycznym koszcie) drzewo w G łączące wszystkie terminale. W Metrycznym Problemie Drzewa Steinera funkcja wag spełnia nierówność trójkąta, to jest: Dla każdych różnych u, v, w V : c(u, v) + c(v, w) c(u, w).

(Metryczny) Problem Drzewa Steinera Istnieje algorytm α-aproksymacyjny dla Istnieje algorytm α-aproksymacyjny dla metrycznego problemu drzewa Steinera. zwykłego problemu drzewa Steinera. Dowód: Załóżmy, że mamy instancję G = (V, c) problemu drzewa Steinera. Niech G = (V, c ) będzie domknięciem metrycznym grafu G, to jest grafem ważonym z funkcją kosztu c, gdzie c (u, v) jest długością najkrótszej ścieżki z u do v w G. Waga minimalnego drzewa Steinera w G jest równa wadze minimalnego drzewa Steinera w G. Jeżeli T jest drzewem Steinera w G o koszcie α OPT w G, to maksymalne drzewo rozpinające w grafie składającym się z najkrótszych ścieżek u v w G, gdzie uv jest krawędzią w T, jest drzewem Steinera o koscie α OPT w G.

Metryczny Problem Drzewa Steinera Algorytm: zwróć minimalne drzewo rozpinające (MST) w grafie indukowanym przez K. Powyższy algorytm jest algorytmem 2-aproksymacyjnym: Niech T będzie minimalnym drzewem Steinera w G o koszcie OPT. Podwajając krawędzie T otrzymujemy graf eulerowski E o koszcie 2 OPT. Przechodzimy cykl Eulera E odwiedzając jednokrotnie wierzchołki będące terminalami. Ponieważ G jest metryczny, długość nowego cyklu jest ograniczona przez 2 OPT. Istnieje więc ścieżka rozpinające na podgrafie indukowanym przez K o koszcie 2 OPT. MST na K ma więc koszt 2 OPT.

Metryczny Problem Drzewa Steinera Algorytm: zwróć minimalne drzewo rozpinające (MST) w grafie indukowanym przez K. Powyższy algorytm jest algorytmem 2-aproksymacyjnym. Analizy powyższego algorytmu nie można poprawić. Rozważmy graf składający się ze środka v i zbioru n terminali K w odległości 1 od r. Pozostałe krawędzie grafu mają wagę 2. Algorytm zwróci drzewo Steinera o wadze 2n 2. Minimalne drzewo Steinera ma wagę n. Powyższa rodzina jest rodziną przypadków trudnych dla powyższego algorytmu.

Metryczny problem Drzewa Steinera Aktualny stan wiedzy: istnieje algorytm 1.39-aproksymacyjny dla problemu drzewa Steinera (Byrka, Grandoni, Rothwoß, Sanità), nie da się aproksymować metrycznego problemu drzewa Steinera ze współczynnikiem 96 o ile P NP (Bern and Plassmann, Chlebík i 95 Chlebíkowá)

Problem Komiwojażera Problem Komiwojażera: Wejście: Graf ważony G = (V, c). Wyjście: Cykl Hamiltona o minimalnym koszcie. W przypadku problemu komiwojażera, wersja ogólna różni się istotnie od wersji metrycznej.

Problem Komiwojażera Dla dowolnej funkcji wielomianowo obliczalnej α : N N, problem komiwojazera nie posiada algorytmu α(n)-aproksymującego. Dowód: Wykażemy, że jeżeli istnieje algorytm α(n)-aproksymacyjny dla problemu komiwojażera, to problem cyklu Hamiltona można rozwiązać w wielomianowym czasie. Niech G = (V, E) będzie instancją wejściową dla problemu cyklu Hamiltona. Konstruujemy graf ważony G = (V, c ), gdzie { c (u, v) = 1 (u, v) jest krawędzią w G, nα(n) w przeciwnym przypadku. Łatwo zauważyć, że G posiada cykl Hamiltona wtedy i tylko wtedy, gdy G posiada trasę komiwojażera o wadze n. G nie posiada cyklu Haniltona wtedy i tylko wtedy, gdy minimalna trasa komiwojażera w G jest większa od α(n) n. Algorytm α(n)-aproksymacyjny dla problemu komiwojażera rozwiązywałby zatem w wielomianowym czasie problem cyklu Hamiltona.

Metryczny Problem Komiwojażera Algorytm: znajdź minimalne drzewo rozpinające T w grafie ważonym G = (V, c), podwój krawędzie T i otrzymaj graf eulerowski E, zwróć nastepującą trasę komiwojażera: startując od dowolnego wierzchołka v przejdź po cyklu Eulera na krawędziach z E opuszczając wierzchołki, które zostały już wcześniej odwiedzone, zatrzymaj się w v. Powyższy algorytm jest algorytmem 2-aproksymacyjnym: waga T jest mniejsza bądź równa optymalnej trasie komiwojażera OPT, waga E jest mniejsza bądź równa 2 OPT, z metryczności G, waga zwróconej trasy komiwojażera jest mniejsza bądź równa od wagi cyklu Eulera E.

Metryczny Problem Komiwojażera - algorytm Christofidesa Algorytm: znajdź minimalne drzewo rozpinające T w grafie ważonym G = (V, c), niech V będzie zbiorem wierzchołków, które w T mają nieparzysty stopień (jest ich zawsze parzyście wiele), niech M będzie minimalnym dopasowaniem w grafie indukowanym przez V, zauważ, że E = M T jest grafem eulerowskim w G, zwróć nastepującą trasę komiwojażera: startując od dowolnego wierzchołka v przejdź po cyklu Eulera na krawędziach z E opuszczając wierzchołki, które zostały już wcześniej odwiedzone, zatrzymaj się w v. Powyższy algorytm jest algorytmem 3 2 -aproksymacyjnym: waga T jest mniejsza bądź równa optymalnej trasie komiwojażera OPT, waga M jest mniejsza bądź równa 1 2 OPT, z metryczności G, waga zwróconej trasy komiwojażera jest mniejsza bądź równa od wagi cyklu Eulera E.

Metryczny Problem Komiwojażera Aktualny stan wiedzy: najlepszy znany algorytm ma współczynnik aproksymacji 3 2 (Christofides), nie istnieje algorytm 220 -aproksymacyjny o ile P NP (Papadimitriou, 219 Vempala).

Schematy aproksymacji PTAS i FPTAS Niech P będzie problemem optymalizacyjnym. Mówimy, że algorytm A jest schematem aproksymacyjnym dla problemu P jeżeli dla wejścia (I, ɛ) algorytm A zwraca rozwiązanie o koszcie val A (I ), gdzie: val A (I ) (1 + ɛ)opt (jeżeli P jest problemem minimalizacyjnym), val A (I ) (1 ɛ)opt (jeżeli P jest problemem maksymalizacyjnym). Dodatkowo, jeżeli czas działania A jest wielomianowy dla każdego ustalonego ɛ > 0 (np. gdy czas działania A to O(n 1 ɛ )), to A nazywamy wielomianowym schematem aproksymacyjnym (ang. polynomial-time approximation scheme, PTAS ). jeżeli czas działania A jest wielomianem od rozmiaru wejścia i 1 ɛ, to A nazywamy w pełni wielomianowym schematem aproksymacyjnym (ang. fully polynomial-time approximation scheme, FPTAS).

Problem plecakowy Problem Plecakowy: Wejście: Zbiór n przedmiotów a 1,..., a n, każdy z nich ma wagę size(a i ) oraz wartość profit(a i ), dopuszczalna waga plecaka B. Wyjście: Maksymalna łączna wartość (zysk) przedmiotów o wadze B.

Algorytmy pseudowielomianowe i problemy silnie NP-trudne Algorytm A dla problemu P jest algorytmem pseudowielomianowym jeżeli czas jego działania jest wielomianowy w zależności od rozmiaru wejścia przy założeniu, że liczby na wejściu kodowane są w systemie unarnym. Problem P nazywamy problemem silnie NP-trudnym jeżeli jest NP-trudny nawet w przypadku, gdy liczby na wejściu kodowane są w sposób unarny. Problemy silnie NP-trudne nie mają algorytmów pseudowielomianowych.

Pseudowielomianowy algorytm dla problemu plecakowego Niech: P maksymalna wartość obiektu w {a 1,..., a n}. S[i, p] najlżejszy podzbiór {a 1,..., a i } dający zysk p, A[i, p] waga S i,p. Tablicę A[i, p] możemy obliczyć w czasie O(n 2 P) zgodnie z regułą: { min{a[i, p], size(ai+1 ) + A[i, p profit(a A[i+1, p] = i+1 )]} jeżeli profit(a i+1 ) p A[i, p] w p.p. Maksymalny możliwy zysk dla przedmiotów o łącznym rozmiarze nie przekraczającym B jest równy max{p : A[n, p] B}. Powyższy algorytm jest algorytmem pseudowielomianowym dla problemu plecakowego.

FPTAS dla problemu plecakowego FPTAS dla problemu plecakowego: Dla danego ɛ > 0, niech K ɛp n (niech K będzie potęgą 2). Dla każdego przedmiotu a i niech profit (a i ) = profit(a i ) K. Korzystając z programowania dynamicznego, znajdź najkorzystniejszy zbiór S dla problemu plecakowego z zyskami profit (a i ). Wypisz zysk S. Uwagi: jeżeli K = 2 l, to profit (a i ) otrzymujemy z profit(a) przez skreślenie l ostatnich liczb z rozwinięcia dwójkowego profit(a i ), profit (a i ) O(n 1 ɛ ), algorytm działa w czasie O(n 3 1 ɛ ).

FPTAS dla problemu plecakowego Lemat profit(s ) (1 ɛ) OPT. Proof: O - zbiór obiektów z optymalnym zyskiem, profit(o) K profit (O) nk, Mamy: profit(s ) K profit(o ) profit(o) nk OPT ɛp (1 ɛ) OPT.

Silna NP-zupełność a istnienie FPTAS Twierdzenie Niech p będzie wielomianem i niech P będzie NP-trudnym problemem minimalizacji z funkcją celu f. Załóżmy, że f przyjmuje wartości całkowite oraz, że OPT (I ) < p( I ) gdy instancja I kodowana jest unarnie. Jeżeli istnieje FPTAS dla P, to istnieje algorytm pseudowielomianowy dla P. Dowód: Niech I będzie instancją wejściową problemu P, kodowaną w sposób unarny. Zauważ, że algorytm FPTAS A dla ɛ = 1 rozwiązuje problem P dokładnie. 2p( I ) Czas działania A dla ɛ = 1 jest wielomianowy od I. 2p( I ) Wniosek: Naturalne problemy silnie NP-trudne nie mają FPTAS.

Euklidesowy Problem Komiwojażera Euklidesowy Problem Komiwojazera: Wejście: Zbiór n punktów P = {P 1,..., P n} na płaszczyźnie, punkt P i ma współrzedne (x i, y i ). Wyjście: Trasa przechodząca przez wszystkie punkty P 1,..., P n o najtańszym koszcie OPT. Twierdzenie Istnieje PTAS dla euklidesowego problemu komiwojażera. Uwagi: twierdzenie pokazane niezależnie przez Arorę oraz Mitchela, Obaj za ten wynik otrzymali nagrodę Gödla.