Algorytmika Problemów Trudnych

Transkrypt

Algorytmika Problemów Trudnych
Algorytmika Problemów Trudnych
Wykład 1
Tomasz Krawczyk
[email protected]
Kraków, semestr letni 2015/16
Ocena ostateczna z przedmiotu
Zaliczenie przedmiotu:
I
dwa kolokwia (każde po 50 pkt.), w środku i na końcu semestru,
I
egzamin (50 pkt),
I
ćwiczenia – każdy + wart jest 3 pkt,
I
zaliczenie od 76 pkt.
Algorytmika Problemów NP-trudnych
Problemy NP-trudne to problemy, dla których najprawdopodobniej
nie istnieją dokładne algorytmy wielomianowe.
Bardzo wiele problemów algorytmicznych to problemy NP-trudne,
ale ze względów praktycznych trzeba je jakoś rozwiązać....
Przykłady problemów NP-trudnych
Problemy grafowe:
I maksymalna klika, zbiór niezależny,
I pokrycie wierzchołkowe, zbiór dominujący,
I maksymalne (ale nie minimalne) cięcie w grafie,
I istnienie cyklu Hamiltona, problem komiwojażera,
I minimalne kolorowanie, 3-kolorowanie,
I wiele algorytmów rozpoznawania przynależności grafu do danej klasy
grafów (grafy przecięć krzywych ciągłych na płaszczyźnie, grafy przecięć
odcinków na płaszczyźnie, grafy tolerancji)
W wielu ważnych klasach grafów problemy rozpoznawania mają rozwiązania
wielomianowe: np. grafy przedziałowe, cięciwowe, planarne, porównywalności,
nieporównywalności, i wiele innych (więcej na algorytmach grafowych).
NP – definicja
Definicja
Język L należy do klasy NP jeżeli istnieje niedeterministyczna
maszyna Turinga oraz wielomian p taki, że dla każdego słowa x
każde oblicznie maszyny kończy się w czasie p(|x|) oraz maszyna
odpowiada:
I
TAK (co oznacza, że pewna ścieżka obliczeń kończy się w
stanie ACCEPT) jeżeli x ∈ L,
I
NIE (co oznacza, że wszystkie ścieżki obliczeń kończą się w
stanie REJECT) jeżeli x ∈
/ L.
Praktycznie: język L jest w NP jeżeli istnieje wielomianowy algorytm
’zgadujący świadka’ przynależności x do języka L oraz algorytm wielomianowy
weryfikujący poprawność świadka (sprawdzający, czy x ∈ L).
przynależność do NP - dowody
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
świadek:
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
świadek: zbiór wierzchołków wielkości k,
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
I
świadek: zbiór wierzchołków wielkości k,
weryfikator:
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
I
świadek: zbiór wierzchołków wielkości k,
weryfikator: sprawdza, czy zbiór jest kliką,
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
I
świadek: zbiór wierzchołków wielkości k,
weryfikator: sprawdza, czy zbiór jest kliką,
I spełnialność formuły SAT:
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
I
świadek: zbiór wierzchołków wielkości k,
weryfikator: sprawdza, czy zbiór jest kliką,
I spełnialność formuły SAT:
I
świadek:
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
I
świadek: zbiór wierzchołków wielkości k,
weryfikator: sprawdza, czy zbiór jest kliką,
I spełnialność formuły SAT:
I
świadek: wartościowanie zmiennych,
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
I
świadek: zbiór wierzchołków wielkości k,
weryfikator: sprawdza, czy zbiór jest kliką,
I spełnialność formuły SAT:
I
I
świadek: wartościowanie zmiennych,
weryfikator:
przynależność do NP - dowody
I istnienie kliki wielkości k w G :
I
I
świadek: zbiór wierzchołków wielkości k,
weryfikator: sprawdza, czy zbiór jest kliką,
I spełnialność formuły SAT:
I
I
świadek: wartościowanie zmiennych,
weryfikator: sprawdza, czy warościowanie spełnia formułę,
przynależność do NP - dowody
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
świadek: przedziały reprezentujące wierzchołki,
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
świadek: porządek wierzchołków grafu,
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
I
świadek:
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
I
świadek: ? (trudny problem, rozwiązany przez Schaefer,
Sedgwick, Stefankovic),
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
I
świadek: ? (trudny problem, rozwiązany przez Schaefer,
Sedgwick, Stefankovic),
I graf przecięć odcinków na prostej
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
I
świadek: ? (trudny problem, rozwiązany przez Schaefer,
Sedgwick, Stefankovic),
I graf przecięć odcinków na prostej
I
świadek:
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
I
świadek: ? (trudny problem, rozwiązany przez Schaefer,
Sedgwick, Stefankovic),
I graf przecięć odcinków na prostej
I
świadek: ciągle poszukiwany
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
I
świadek: ? (trudny problem, rozwiązany przez Schaefer,
Sedgwick, Stefankovic),
I graf przecięć odcinków na prostej
I
świadek: ciągle poszukiwany i nie może być to rysunek!!!!
(Kratochvil, Matousek),
przynależność do NP - dowody
I rozpoznawanie grafów interwałowych (jest w P)
I
I
świadek: przedziały reprezentujące wierzchołki,
weryfikator: sprawdza, czy przecinające się krawedzie
pokrywają się ze zbiorem krawędzi grafu,
I rozpoznawanie grafów cięciwowych (jest w P):
I
I
świadek: porządek wierzchołków grafu,
weryfikator: sprawdza, czy ten porządek to perfect elimination
order
I graf przecięć krzywych na płaszczyźnie:
I
świadek: ? (trudny problem, rozwiązany przez Schaefer,
Sedgwick, Stefankovic),
I graf przecięć odcinków na prostej
I
świadek: ciągle poszukiwany i nie może być to rysunek!!!!
(Kratochvil, Matousek), Istnieją grafy przecięć odcinków, które
w opisie każdej reprezentacji wymagają podwójnie
wykładniczej wielkości liczb (a więc wykładniczego zapisu).
Inny świadek (wielomianowy) jest poszukiwany!
wielomianowe redukcje
Definicja
Powiemy, że problem A redukuje się wielomianowo do problemu B jeżeli istnieje
wielomianowy algorytm φ przekształcający każdą instancję x problemu A do
instancji φ(x) problemu B w taki sposób, że:
x jest TAK instancją problemu A ⇐⇒ φ(x) jest TAK instancją problemu B.
Wniosek: Jeżeli problem B ma wielomianowe rozwiązanie, to i problem A ma
wielomianowe rozwiązanie. Mówimy, że B jest przynajmniej tak trudny jak A.
Twierdzenie Cook’a
Definicja
Problem A jest problemem NP-zupełnym jeżeli A jest w NP oraz każdy
problem z NP redukuje się wielomianowo do A.
Problem A jest problemem NP-trudnym jeżeli każdy problem z NP
redukuje się wielomianowo do A.
Twierdzenie
Każdy język z klasy NP można zredukować wielomianowo do problemu
SAT. Innymi słowy, SAT jest problemem NP-zupełnym.
Wnioski:
I jeżeli SAT ma algorytm wielomianowy, to również wszystkie problemy z
NP mają rozwiązanie wielomianowe,
I jeżeli SAT redukuje się wielomianowo do A i A jest w NP, to A jest
również zupełny w klasie NP.
I Wszystkie problemy zupełne w NP wzajemnie się redukują.
Hipoteza Milenijna
P 6= NP
Innymi słowy, algorytmy NP-zupełne nie mają algorytmów
wielomianowych.
Podejścia do problemów NP-trudnych
I Heurezy – są bardzo dobre w praktyce.
Podejścia do problemów NP-trudnych
I Heurezy – są bardzo dobre w praktyce.
I Dokładne algorytmy wykładnicze i podwykładnicze. Godzimy się na czasy
√
działania: O(1.234n ), O(2n ), O ∗ (3n ), O ∗ (2
czynniki wielomianowe).
n
) (notacja O ∗ pomija
Podejścia do problemów NP-trudnych
I Heurezy – są bardzo dobre w praktyce.
I Dokładne algorytmy wykładnicze i podwykładnicze. Godzimy się na czasy
√
działania: O(1.234n ), O(2n ), O ∗ (3n ), O ∗ (2
czynniki wielomianowe).
n
) (notacja O ∗ pomija
I Algorytmy aproksymacyjne – godzimy się na utratę dokładności, ale czas
ciągle wielomianowy!
Podejścia do problemów NP-trudnych
I Heurezy – są bardzo dobre w praktyce.
I Dokładne algorytmy wykładnicze i podwykładnicze. Godzimy się na czasy
√
działania: O(1.234n ), O(2n ), O ∗ (3n ), O ∗ (2
czynniki wielomianowe).
n
) (notacja O ∗ pomija
I Algorytmy aproksymacyjne – godzimy się na utratę dokładności, ale czas
ciągle wielomianowy!
I Algorytmy parametryzowane (FPT)– rozwiązują bardzo dobrze pewne
instancje (o małym parametrze) problemów, zazwyczaj NP-trudnych.
Podejścia do problemów NP-trudnych
I Heurezy – są bardzo dobre w praktyce.
I Dokładne algorytmy wykładnicze i podwykładnicze. Godzimy się na czasy
√
działania: O(1.234n ), O(2n ), O ∗ (3n ), O ∗ (2
czynniki wielomianowe).
n
) (notacja O ∗ pomija
I Algorytmy aproksymacyjne – godzimy się na utratę dokładności, ale czas
ciągle wielomianowy!
I Algorytmy parametryzowane (FPT)– rozwiązują bardzo dobrze pewne
instancje (o małym parametrze) problemów, zazwyczaj NP-trudnych.
I Algorytmy probabilistyczne – nie spodziewamy się, by algorytmy
NP-trudne posiadały wielomianowe algorytmy randomizowane (wierzy się,
że RP ( NP). Niemniej są bardzo przydatne, w niektórych modelach
obliczeń, np. algorytmy on-line, są istotnie lepsze niż algorytmy
deterministyczne, w przypadku zwykłych algorytmów są często dużo
prostsze i szybsze od ich odpowiedników deterministycznych.
Algorytmy aproksymacyjne
Ograniczenia górne:
I różne podejścia kombinatoryczne,
I algorytmy zachłanne,
I algorytmy wykorzystujące liniowe programowanie (LP-rounding,
randomized LP-rounding, primal-dual, i.t.d.),
I programowanie półokreślone.
Algorytmy aproksymacyjne
Ograniczenia górne:
I różne podejścia kombinatoryczne,
I algorytmy zachłanne,
I algorytmy wykorzystujące liniowe programowanie (LP-rounding,
randomized LP-rounding, primal-dual, i.t.d.),
I programowanie półokreślone.
Ograniczenia dolne (w oparciu o):
I hipotezę P 6= NP,
I twierdzenie PCP,
I Unique Game Conjecture.
Dokładne algorytmy wykładnicze i podwykładnicze
Ograniczenie górne:
I programowanie dynamiczne,
I algorytmy rozgałęziające się (metoda measure-and-conquere),
I metody algebraiczne – metoda włączeń i wyłączeń,
I i.t.d.
Ograniczenia dolne (w oparciu o):
I Exponential Time Hypothesis: 3-SAT’u nie można rozwiązany w czasie
podwykładniczym 2o(n) (istnieje stała c > 0 taka, że 3-SAT’u nie można
rozwiązać w czasie 2cn ),
I Strong Exponential Time Hypothesis: ogólnego SAT’u nie można
rozwiązać w czasie (2 − )n (dokładniej, jeżeli k − SAT można rozwiązać
w czasie O ∗ (2sk n ), to ciąg sk zmierza do 1 wraz z k zmierzającym do
nieskończoności),
I Lemat o Rozrzedzaniu (tak naprawdę trudne są instancje k-SAT’u, w
których liczba klauzul jest liniowo zależna od liczby zmiennych).
Algorytmy parametryzowane
Problem parametryzowany Φ – problem decyzyjny, instancje są postaci (x, k),
gdzie x – jak dotychczas (graf, słowo), k – parametr.
Wejście dla algorytmu parametryzowanego: (x, k), gdzie k zapisywane w
sposób unarny.
Definicja
Problem Φ jest w klasie FPT (ang. fixed-parameter tractable) jeżeli istnieje
algorytm działający w czasie f (k)p(|x|) na instancji wejściowej (x, k), gdzie p
to wielomian a f to dowolna funkcja obliczalna.
Algorytmy parametryzowane - przykłady
Parametryzowanie po parametrze, który nas interesuje:
I (G , k) – czy graf G posiada pokrycie wierzchołkowe rozmiaru k?
I (G , k) – czy graf G posiada klikę rozmiaru k?
I (G , k) – czy graf G jest grafem interwałowym (cięciwowym,
dwudzielnym) jeżeli z G usuniemy k pewnych wierzchołków grafu?
(problemy modyfikacji grafów).
Parametryzowanie po parametrach grafowych:
I (G , k) – czy graf G o szerości ścieżkowej k jest 3-kolorowalny?
I (G , k) – czy graf G o szerkości drzewowej k jest 3-kolorowalny?
Jeżeli dla 3 powyższych pytań istnieją algorytmy FPT, wiadomo że problem
3-kolorowania jest łatwy jeżeli zawęzimy się do grafów o niskiej szerokości
ścieżkowej, odpowiednio drzewowej.
Algorytmy parametryzowane
Ograniczenia górne:
I algorytmy kernelizacji,
I branch-and-bound,
I iterative compression,
I color coding,
I i.t.d.,
Ograniczenia dolne:
I dowody W [k]-trudności (k = 1, 2, ...) dla problemów parametryzowanych
(wykluczające przynależność do klasy FPT),
I dla problemów z klasy FPT – ograniczenia dolne na rozmiar jądra.
Strukturalna teoria grafów
Aspekty strukturanej teorii grafów:
I dekompozycje drzewowe (algorytmy podwykłądnicze na grafach
planarnych),
I pojęcia minorów w grafach.
Wykorzystanie metatwierdzeń do rozwiązywania problemów algorytmicznych na
grafach:
I technika Bakera,
I Twierdzenie Courcelle’a,
I rozpoznawanie klas grafów domkniętych na minory.