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.