1 Wprowadzenie Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Teoretyczne Podstawy Informatyki Lista 6 Problemy NP-zupełne Problem abstrakcyjny Q jest to relacja dwuargumentowa na zbiorze I egzemplarzy problemu i zbiorze S rozwiązań problemu. Uściślając problem decyzyjny to problem dla którego oczekujemy odpowiedzi tak/nie. Można powiedzieć, że rozwiązaniem problemu jest funkcja która zbiór egzemplarzy problemu I przekształca w zbiór rozwiązań {0, 1}. Przykłady problemów decyzyjnych: mając ciąg znaków T oraz P, pytamy się: Czy ciąg P jest podciągiem T? istnieją dwa zbiory S oraz T, Czy zbiory zawierają takie same elementy? mając graf G z całkowitymi wartościami na krawędziach oraz liczbę k interesuje nas: Czy istnieje minimalne drzewo rozpinające o wadze co najwyżej k? Omawiając problemy związane z klasą NP i NP-zupełną będziemy ograniczać się tylko do problemów decyzyjnych. Od danego rozwiązania algorytmu oczekujemy tylko odpowiedzi tak bądź nie. Wiele problemów abstrakcyjnych to nie problemy decyzyjne, ale raczej optymalizacyjne, w których pewną wielkość trzeba zminimalizować albo zmaksymalizować. Żeby zastosować teorię NP-zupełności do problemów optymalizacyjnych, musimy przerobić je na problemy decyzyjne. Zazwyczaj taka przeróbka polega na narzuceniu ograniczenia na optymalizowaną wielkość. Przykładem jest problem najkrótszej ścieżki, możemy go sformułować np.: w następujący sposób: dany jest graf G = (V, E), dwa wierzchołki u, v V i nieujemna liczba całkowita k. Pytamy się czy istnieje ścieżka w G łącząca u i v, o długości co najwyżej k? Jeśli i = G, u, v, k jest egzemplarzem tego problemu, to PATH(i) = 1 czyli tak, jeżeli najkrótsza ścieżka od u do v ma długość co najwyżej k. Gdy tak nie jest to PATH(i) = 0. Podsumowując jeżeli potrafimy szybko rozwiązać problem optymalizacyjny, to umiemy także szybko rozwiązać odpowiadający mu problem decyzyjny. 1.1 Klasy złożoności P oraz NP i co-np O problemach z klasy P mówimy, że są szybko rozwiązywalne, natomiast o problemach z klasy NP o szybko weryfikowalnych. Klasy złożoności możemy określić w następujący sposób: P = k N DT (n k ) NP = k N NT (n k ) (1) Klasę co-np definiuje się jako dopełnienie tych języków które nie należą do klasy NP: L NP Problem z klasy NP nazwany został problemem szybko weryfikowalnym. Algorytm weryfikacji definiujemy jak algorytm A o dwóch argumentach. Jeden z nich jest zwykłym ciągiem wejściowym x, natomiast drugi to ciąg binarny y zwany świadectwem. Dwuargumentowy algorytm A weryfikuje ciąg x, jeśli istnieje świadectwo y takie, że A(x, y) = 1. 1
Należy to rozumieć w następujący sposób: algorytm A weryfikuje język L, jeśli dla każdego słowa x L istnieje świadectwo y, które może zostać użyte przez A w celu wykazania, że x L. Co więcej, dla żadnego słowa x / L nie może istnieć świadectwo tego iż x L. Na przykład w problemie cyklu Hamiltona świadectwem jest lista wierzchołków. Jeśli graf jest hamiltonowski, sam cykl Hamiltona wnosi wystarczającą informację do sprawdzenia, czy istotnie wierzchołki przynależą do cyklu Hamiltona. Podobnie w przypadku problemu ścieżki od wierzchołka u do v. Mając daną ścieżkę p łatwo możemy sprawdzić, czy nie przekracza ona zadanej długości p. Dzięki algorytmowi weryfikacji można ściślej zdefiniować klasę NP: język L należy do klasy NP wtedy i tylko wtedy, gdy istnieją dwuparametrowy wielomianowy algorytm A i stała c takie, że L = {x {0, 1} : istnieje takie świadectwo y, gdzie y = O( x c ), że A(x, y) = 1} Twierdzenie 1 Dla niedeterministycznej maszyny Turinga M o czasowej złożoności obliczeniowej f(n) takiej, że n f(n) dla wszystkich n N, istnieje deterministyczna maszyna Turinga M 1 rozpoznająca ten sam język, której czasowa złożoność obliczeniowa jest rzędu O(c f(n) ), dla pewnej liczby c > 1. 1.2 Redukcje Redukcja to pojęcie umożliwiające określenie, kiedy jeden problem jest przynajmniej tak trudny jak inny. Oznacza to, że chcemy stwierdzić, że problem A jest co najmniej tak trudny jak problem B, gdy B redukuje się do A. Definicja 1 Mówimy że B redukuje się do A, jeżeli istnieje transformacja R, w wyniku której dla każdego przykładu x problemu B powstaje równoważny mu przykład R(x). Rysunek 1: Redukcja problemu B do A Taka definicja pozwala na określenie czym jest klasa złożoności. W kontekście następnej definicji klasa złożoności łączy w sobie problemy które mogą być wzajemnie redukowane. Definicja 2 Niech C będzie klasą złożoności i niech L będzie językiem z klasy C. Powiemy, że L jest C-zupełny, jeżeli dowolny język L C może być zredukowany do L. Za efektywną redukcję przyjmiemy redukcję w pamięci ograniczonej przez funkcję log n. Powiemy więc, że język L 1 jest redukowalny do L 2, jeżeli istnieje funkcja R określona na słowach i o wartościach w zbiorze słów, obliczana przez maszynę Turinga wykorzystującą co najwyżej pamięć O(log n). Dla funkcji tej dla każdego słowa wejściowego x zachodzi x L 1 wtedy i tylko wtedy, gdy R(x) L 2. Wtedy funkcję R nazywamy redukcją L 1 do L 2. Lemat 1 Jeśli L 1, L 2 {0, 1} są językami takimi, że L 1 P L 2, to z tego, że L 2 P wynika także L 1 P. 2
1.3 Problemy NP-zupełne Podana w poprzednim punkcie definicja redukcji w czasie wielomianowym umożliwia na podanie formalnej metody dowodzenia, że jeden problem jest przynajmniej tak trudny jak inny, naturalnie z dokładnością do czynnika wielomianowego. Co oznacza, że jeśli L 1 P L 2, to L 1 jest nie więcej niż o wielomianowy czynnik trudniejszy od problemu L 2. Wykorzystując algorytm weryfikacji oraz definicję redukcję definicja problemu NP-zupełnego przyjmuje następującą postać: Definicja 3 Język L {0, 1} jest NP-zupełny, jeśli: (1) L NP oraz (2) L P L dla każdego L NP Jeśli język L spełnia własność (2), lecz własność (1) nie jest spełniona, to mówimy, że L jest NP-trudny. Klasę problemów NP-zupełnych będziemy oznaczać także NPC. 2 Zadania 1. Wykazać, że gdy p(x) i q(x) reprezentują algorytmy o złożoności wielomianowej to wielomianami będą także funkcje: (a) p(n) + q(n) (b) p(n)q(n) (c) p(q(n)) 2. Udowodnić następujące twierdzenie: Twierdzenie 2 Liczba p bool (n) wszystkich funkcji ze zbioru wartości boolowskich, zależnych od n zmiennych x 1, x 2,..., x n, jest równa 2 2n. 3. Udowodnić lemat 1. 4. Udowodni następujący lemat: Lemat 2 Niech Q będzie abstrakcyjnym problemem decyzyjnym na zbiorze egzemplarzy I i niech k 1 i k 2 będą wielomianowo równoważnymi kodowaniami na I. To prawdziwa jest zależność k 1 (Q) P k 2 (Q) P. 5. Udowodnić twierdzenie 1. 6. Podać naiwny algorytm sprawdzajacy czy w grafie nieskierowanym znajduje się cykl Hamiltona? 7. Wykazać że problem osiągalności wierzchołka w grafie należy do klasy P. 8. Wykazać że problem wyznaczenia wartości sieci logicznej (CIRCUIT-VALUE) należy do klasy P. Inaczej mówiąc należy udowodnić twierdzenie: 3
Twierdzenie 3 Problem wyznaczania wartości sieci logicznej jest P-zupełny. 9. Podać algorytm sprawdzający czy formuła logiczna jest spełnialna. 10. Pokazać w jaki sposób można zredukować problem osiągalności wierzchołka w grafie do problemu wartości sieci logicznej. 11. Pokazać w jaki sposób problem CIRCUIT SAT redukuje się do SAT. 12. Wykazać, że P relacją przechodnią na zbiorze języków. Należy wykazać, prawdziwość implikacji (L 1 P L 2 L 2 P L 3 ) L 1 P L 3 13. Udowodnić lemat: Lemat 3 Jeżeli R jest redukcją obliczalną przez maszynę Turinga M, to dla każdej danej x maszyna M zatrzymuje się po wielomianowej licznie kroków. 14. Mamy dwa grafy G 1, G 2, udowodnić, że alg. sprawdzający czy grafy są izomorficzne należy do NP poprzez podanie wielomianowego algorytmu weryfikacji. 15. Udowodnić, następujące lematy: (a) problem cyklu hamiltonowskiego należy do klasy NP (b) problem spełnialności należy do klasy NP (c) pokrycie wierzchołkowe należy do klasy NP 16. Niech φ będzie formułą logiczną zbudowaną ze zmiennych logicznych x 1, x 2, x 3,..., x k, operatorów negacji, koniunkcji oraz alternatywy oraz nawiasów. Formuła φ jest tautologią, jeśli przy każdym przypisaniu wartości 1 i 0 występującym w niej zmiennym ma ona wartość 1. Wykazać, że rozstrzygnięcie iż φ będzie tautologią należy do problemu co-np. 17. Pokazać w jaki sposób można sprowadzić problem ścieżki Hamiltona do problemu spełnialności. 18. Udowodnić, że problem zbioru niezależnego jest NP-zupełny, sprowadzając język 3SAT- NF do problemu zbioru niezależnego. 19. Udowodnić twierdzenie Cooka: Twierdzenie 4 Problem SAT jest NP-zupełny. 20. Wykazać, że nie istnieje klasyczny 1 algorytm wielomianowy, który rozwiązuje problem Deutscha-Jozsy, czyli badania czy funkcja jest stała bądź zrównoważona 2. 21. Podać niedeterministyczny, a więc należący dla klasy NP algorytm rozwiązujący problem Deutscha-Jozsy. 1 Obecnie istnieje tylko kwantowy algorytm rozwiązujący ten problem w czasie wielomianowym. 2 Warto wykorzystać twierdzenie 2 4
22. Udowodnić twierdzenie: Twierdzenie 5 Jeśli jakikolwiek problem NP-zupełny jest rozwiązywalny w czasie wielomianowym, to P=NP. Jeśli jakikolwiek problem w NP nie jest rozwiązywalny w czasie wielomianowym, to żaden problem NP-zupełny nie jest rozwiązywalny w czasie wielomianowym. 3 Dalsze informacje Poniższe pozycje odnoszą się do wszystkich list z ćwiczeniami z przedmiotu teoretyczne podstawy informatyki. Literatura [1] David Harel: Rzecz o istocie informatyki Algorytmika, Edycja polska Wydanie drugie Wydawnictwa Naukowo-Techniczne 2000 [2] Tomasz Bilski, Krzysztof Chmiel, Janusz Stokłosa: Zbiór zadań ze złożoności obliczeniowej algorytmów. Politechnika Poznańska 1992 [3] Janusz Stokłosa: Zadania ze złożoności obliczeniowej algorytmów, Politechnika Poznańska 1989 [4] L. Banachowski, Antoni Kreczmar: Elementy analizy algorytmów, Wydawnictwa Naukowo-Techniczne 1982 [5] John E.Hopcroft, Jeffrey D.Ullman: Wprowadzenie do teorii automatów, języków i obliczeń. Wydawnictwo Naukowe PWN 2003 [6] Mordechai Ben-Ari: Logika matematyczna w informatyce, Wydawnictwa Naukowo- Techniczne 2005 [7] Christos H.Papadimitriou: Złożoność obliczeniowa, Wydawnictwa Naukowo-Techniczne 2002 [8] R.L. Graham, D.E. Knuth, O.Patashnik: Matematyka konkretna,wydawnictwo Naukowe PWN 2002 [9] Kenneth A.Ross, Charles R.B.Wright: Matematyka dyskretna, Wydawnictwo Naukowe PWN 2000 [10] Piotr Wróblewski,: Algorytmy struktury danych i techniki programowania, Helion 1997 [11] Materiały ze strony dr inż. Janusza Majewskiego dotyczące przedmiotu Automaty i języki formalne. 5