Algorytmika Problemów Trudnych
Transkrypt
Algorytmika Problemów Trudnych
Algorytmika Problemów Trudnych Wykład 10 Tomasz Krawczyk [email protected] Kraków, semestr letni 2015/16 plan wykładu Algorytmy aproksymacyjne: I Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności. I Wielominaowe (PTAS) i w pełni wielomianowe (FPTAS) schematy aproksymacyjne. I FPTAS dla problemu plecakowego. I PTAS dla maksymalnego zbioru niezależnego w grafach planarnych. Algorytm α(n)-aproksymacyjny Definicja Algorytm A dla problemu optymalizacyjnego P jest jest algorytmem α(n)-aproksymacyjnym jeżeli: I A działa w czasie wielomianowym od rozmiaru wejścia n, I dla każdej instancji I rozmiaru n, A zwraca rozwiązanie o koszcie valA (I ), gdzie: I valA (I ) opt(I ) 6 α(n) (jeżeli P jest problemem minimalizacyjnym), I opt(I ) valA (I ) ≥ α(n) (jeżeli P jest problemem maksymalizacyjnym). 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 valA (I ), gdzie: I valA (I ) 6 (1 + )OPT (jeżeli P jest problemem minimalizacyjnym). I valA (I ) ≥ (1 − )OPT (jeżeli P jest problemem maksymalizacyjnym). Dodatkowo, I jeżeli czas działania A jest wielomianowy dla każdego ustalonego > 0 1 (np. gdy czas działania A to O(n )), to A nazywamy wielomianowym schematem aproksymacyjnym (ang. polynomial-time approximation scheme, PTAS ). I 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 a1 , . . . , an , każdy z nich ma wagę size(ai ) oraz wartość profit(ai ), dopuszczalna waga plecaka B. Wyjście: Maksymalna łączna wartość (zysk) przedmiotów o wadze 6 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 każdy problem z NP można zredukować w czasie wielomianowym do P tak, aby liczby w zredukowanych egzemplarzach były zapisane unarnie. Problemy silnie NP-trudne nie mają algorytmów pseudowielomianowych. Pseudowielomianowy algorytm dla problemu plecakowego Niech: I P – maksymalna wartość obiektu w {a1 , . . . , an }. I S[i, p] – najlżejszy podzbiór {a1 , . . . , ai } dający zysk p, I A[i, p] – waga Si ,p . Tablicę A[i, p] możemy obliczyć w czasie O(n2 P) zgodnie z regułą: min{A[i, p], size(ai +1 + A[i, p − profit(ai )]} jeżeli profit(ai +1 ) 6 p 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{A[n, p] : p 6 B}. Powyższy algorytm jest algorytmem pseudowielomianowym dla problemu plecakowego. FPTAS dla problemu plecakowego FPTAS dla problemu plecakowego: I Dla danego > 0, niech K ≈ P n (niech K będzie potęgą 2). I Dla każdego przedmiotu ai niech profit 0 (ai ) = b profit(ai ) c. K I Korzystając z programowania dynamicznego, znajdź najkorzystniejszy zbiór S 0 dla problemu plecakowego z zyskami profit 0 (ai ). I Wypisz zysk S 0 . Uwagi: I jeżeli K = 2l , to profit 0 (ai ) otrzymujemy z profit(a) przez skreślenie l ostatnich liczb z rozwinięcia dwójkowego profit(ai ), I profit 0 (ai ) 6 O(n · 1 ), I algorytm działa w czasie O(n3 · 1 ). FPTAS dla problemu plecakowego Lemat profit(S 0 ) ≥ (1 − ) · OPT . Proof: I O - zbiór obiektów z optymalnym zyskiem, I profit(O) − K · profit 0 (O) 6 nK , I Mamy: profit(S 0 ) ≥ ≥ ≈ ≥ K · profit(O 0 ) 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 |) przy czym instncja I kodowana jest unarnie. Wtedy, jeżeli istnieje FPTAS dla P, to istnieje również algorytm pseudowielomianowy dla P. Dowód: I Zauważ, że algorytm FPTAS A dla = 1 2p(|I |) rozwiązuje problem P dokładnie. I Czas działania A dla = 1 2p(|I |) jest wielomianowy od |I | (przy koodowaniu I w sposób unarny). Wniosek: Naturalne problemy silnie NP-trudne nie mają FPTAS. Maksymalny zbiór niezależny w grafach planarnych Maksymalny zbiór niezależny w grafach planarnych: Wejście: Graf planarny G = (V , E ). Wyjście: Zbiór niezależny w G o maksymalnym rozmiarze. Zaproponujemy wielomianowy schemat aproksymacyjny dla powyższego problemu oparty na technice Bakera (obieranie cebulki). Maksymalny zbiór niezależny w grafach planarnych I Ustalmy > 0, niech p = d 1 e. I Niech V1 , . . . , Vk będą warstwami w grafie planarnym, to jest V1 , . . . , Vk stanowi podział V zdefiniowany nastepująco: I V1 – wierzchołki na ścianie zewnętrznej, I Vi – wierzchołki na ścianie zewnętrznej w grafie planarnym indukowanym przez wierzchołki V \ (V1 ∪ . . . ∪ Vi −1 ). I Dla każdego i ∈ [p] niech Gi będzie grafem planarnym powstałym z G poprzez usunięcie co p-tej warstwy począwszy od warstwy i-tej. I Graf Gi ma szerokość drzewową ograniczoną przez 3p − 1 (patrz wykład o szerokości drzewowej). I Maksymalny zbiór niezależny Ii w grafie Gi możemy policzyć w czasie 2p · n. I Algorytm zwraca najliczniejszy zbiór spośród I1 , . . . , Ip . I Czas działania algorytmu: p · 2p · n, jest więc liniowy w zależności od n. Maksymalny zbiór niezależny w grafach planarnych Wykażemy, że algorytm z poprzedniego slajdu jest algorytmem -aproksymacyjnym. I Niech I będzie maksymalnym zbiorem niezaleznym w G . I Ponieważ V1 , . . . , Vk tworzy podział V , dla pewnego i ∈ [p] zbiór I zawężony do warstw i, i + p, i + 2p, . . . zawiera 6 p1 |I | elementów. I Graf Gi zawiera więc co najmniej (1 − 1 )|I | p elementów, i elementy te tworzą w Gi zbiór niezależny. I Zbiór Ii zawiera ma moc co najmniej (1 − 1 )|I |, p a więc co najmniej (1 − )|I |. I Największy spośród zbiorów I1 , . . . , Ip ma moc co najmniej (1 − )|I |.