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 |.

Podobne dokumenty