Logika stosowana Ćwiczenia Złożoność obliczeniowa problemu spełnialności Marcin Szczuka Instytut Informatyki, Uniwersytet Warszawski Wykład fakultatywny w semestrze zimowym 2015/2016 Marcin Szczuka (MIMUW) Logika stosowana 2016 1 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 2 / 39
Funkcje kosztu Będziemy używać maszyn Turinga (czasem wielotaśmowych) jako podstawowego modelu obliczeń. Wykorzystując tezę Churcha będziemy przyjmować, że są one równoważne normalnym algorytmom. Konwencja notacyjna Niech f : N N będzie niemalejącą funkcją naturalną. Powiemy że funkcja g : N N jest rzędu f(n), co oznaczamy O(f(n)) jeśli przy założeniu, że f(n) 0 istnieje skończona granica: g(n) lim n f(n) Zauważmy, że przy tej konwencji notacyjnej zawsze zwracamy uwagę na najszybciej rosnący składnik funkcji g. Marcin Szczuka (MIMUW) Logika stosowana 2016 3 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 4 / 39
Złożoność czasowa Klasa TIME(.) Niech f(n) będzie niemalejącą funkcją zmiennej naturalnej. Przez TIME(f(n)) oznaczamy klasę problemów decyzyjnych (języków) π L takich, że istnieją stałe a, b R oraz maszyna Turinga M, dla których M jest w stanie sprawdzić czy w L w nie więcej niż af(n) + b krokach, niezależnie od wyboru w, o ile w = n. Zauważmy, że w powyższej definicji: 1 Bierzemy pod uwagę najszybciej rosnący czynnik. 2 Nie bierzemy pod uwagę kosztów stałych związanych np. z przekodowaniem danych. Reprezentuje to stała b. 3 Zakładamy, że liczba kroków obliczenia jest równoważna czasowi jego wykonania, czyli pojedynczy krok zabiera jedną jednostkę czasu. Marcin Szczuka (MIMUW) Logika stosowana 2016 5 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 6 / 39
Złożoność pamięciowa Klasa SPACE(.) Niech f(n) będzie niemalejącą funkcją zmiennej naturalnej. Przez SPACE(f(n)) oznaczamy klasę problemów decyzyjnych (języków) π L takich, że istnieją stałe a, b R oraz maszyna Turinga M, dla których M jest w stanie sprawdzić czy w L wykorzystując nie więcej niż af(n) + b komórek na taśmie, niezależnie od wyboru w o ile w = n. Zauważmy, że w powyższej definicji: 1 Bierzemy pod uwagę najszybciej rosnący czynnik. 2 Nie bierzemy pod uwagę kosztów stałych związanych np. z przechowywaniem danych wejściowych. 3 Przyjmujemy, że w jednym kroku algorytm może zająć co najwyżej jedną komórkę na taśmie. Marcin Szczuka (MIMUW) Logika stosowana 2016 7 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 8 / 39
Niedeterministyczna maszyna Turinga Niedeterministyczna maszyna Turinga Niedeterministyczną maszyną Turinga (NTM) nazywamy gdzie: M = (Q, Σ, Γ, δ, q 0, B, F ) Q skończony zbiór stanów zawierający stan początkowy q 0 ; Γ skończony zbiór symboli taśmowych zawierający symbol pusty B (Blank) i symbole wejściowe; Σ zbiór symboli wejściowych taki, że B / Σ i Σ Γ; F Q zbiór stanów końcowych; δ relacja przejścia δ Q Γ Q Γ {L, R}, gdzie L i R oznaczają ruchy głowicy (lewo/prawo). Maszyna niedeterministyczna w pewnej konfiguracji może mieć więcej niż jedną możliwą do wykonania akcję dla bieżącego stanu i symbolu na taśmie. Marcin Szczuka (MIMUW) Logika stosowana 2016 9 / 39
Właściwości NTM W przypadku maszyn deterministycznych mówiliśmy o przejściu z konfiguracji (q 1, t 1, u) do (q 2, t 2, u ), gdy σ(q 1, t 1 ) = (q 2, t 2, h) i stan taśmy u jest wynikiem zastosowania h na u. W NTM będziemy mogli mówić o dopuszczalnym kroku maszyny z konfiguracji (q 1, t 1, u) do (q 2, t 2, u ), gdy (q 1, t 1, q 2, t 2, h) δ. Język NTM Powiemy, że niedeterministyczna maszyna Turinga M rozstrzyga język L = L(M) Σ, jeśli dla każdego w L(M) istnieje skończona sekwencja obliczeń M zakończona zatrzymaniem w stanie akceptującym taka, że każde z przejść w tej sekwencji jest zgodne z relacją przejścia δ M dla M. Zatem maszyna niedeterministyczna akceptuje słowo z języka L(M) jeśli istnieje co najmniej jedna zakończona stanem akceptującym, legalna i skończona ścieżka w drzewie obliczenia dla tego słowa. Ale jak wybrać właściwą ścieżkę obliczenia?! Marcin Szczuka (MIMUW) Logika stosowana 2016 10 / 39
Niedeterministyczna złożoność czasowa Klasa NTIME(.) Niech f(n) będzie niemalejącą funkcją zmiennej naturalnej. Przez NTIME(f(n)) oznaczamy klasę problemów decyzyjnych (języków) π L takich, że istnieją stałe a, b R oraz niedeterministyczna maszyna Turinga M, dla których każda scieżka obliczenia M rozstrzygająca o przynależności słowa w do L(M) ma nie więcej niż af(n) + b kroków, niezależnie od wyboru w, o ile w = n. Zauważmy, że w powyższej definicji: 1 Bierzemy pod uwagę najdłuższą możliwą prawidłową ścieżkę obliczeń. 2 Nie bierzemy pod uwagę rozmiarów całego, potencjalnie gigantycznego drzewa obliczenia. 3 Zakładamy, że dobra wróżka powie nam jak wybierać ścieżkę obliczenia. Marcin Szczuka (MIMUW) Logika stosowana 2016 11 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 12 / 39
Klasy złożoności W teorii (i praktyce) złożoności obliczeniowej, zazwyczaj interesują nas pewne konkretne klasy problemów, o których trudności (kosztowności) algorytmicznej chcemy się czegoś dowiedzieć. Najczęściej rozważane klasy to: Problemy o koszcie stałym, przede wszystkim pamięciowym. Problemy o liniowym koszcie czasowym (i pamięciowym). Problemy logarytmiczno-liniowe (n log n) związane np. z zadaniami sortowania. Problemy o koszcie wielomianowym - deterministycznym i niedeterministycznym. Przyjrzymy się dokładniej klasie problemów o koszcie wielomianowym, gdyż ta właśnie klasa ma wiele bardzo istotnych w praktyce własności. Marcin Szczuka (MIMUW) Logika stosowana 2016 13 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 14 / 39
Problemy o wielomianowej pamięci Zauważmy, że przynależność pewnego problemu do SPACE(n k ) oznacza, że istnieje program, który rozwiązuje ten problem wykorzystując pamięć proporcjonalną do n k. Z faktu, że interesują nas oszacowania asymptotyczne wynika, że faktyczna złożoność naszego problemu może mieć postać dowolnego wielomianu stopnia co najwyżej k. Klasa PSPACE Problemami o pamięci wielomianowej (ozn. PSPACE) nazwiemy klasę problemów decyzyjnych (języków) π L takich, że dla każdego L π L istnieje k N dla którego L SPACE(n k ). Zatem: PSPACE = k N SPACE(n k ) W przypadku niedeterministycznym zdefiniowanie kosztu pamięciowego może wymagać kilku uzupełnień, ale można (nietrywialnie) pokazać, że PSPACE = NPSPACE. Marcin Szczuka (MIMUW) Logika stosowana 2016 15 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 16 / 39
Problemy o koszcie wielomianowym Podobnie jak w przypadku pamięci, także dla złożoności czasowej będziemy się szczególnie interesować zadaniami o wielomianowym koszcie obliczeniowym. Klasa P = PTIME Problemami o koszcie wielomianowym (ozn. P = PTIME) nazwiemy klasę problemów decyzyjnych (języków) π L takich, że dla każdego L π L istnieje k N dla którego L TIME(n k ). Zatem: P = PTIME = k N TIME(n k ) Zauważmy, że przyjmując iż deterministyczny algorytm może w każdym kroku zmienić stan tylko jednej komórki pamięci, otrzymujemy: P = PTIME PSPACE Marcin Szczuka (MIMUW) Logika stosowana 2016 17 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 18 / 39
Problemy o niedeterministycznym koszcie wielomianowym Podobnie jak w przypadku deterministycznym, także dla przypadku niedeterministycznego będziemy się szczególnie interesować zadaniami o wielomianowym koszcie obliczeniowym. Klasa NP = NPTIME Problemami o niedeterministycznym koszcie wielomianowym (ozn. NP = NPTIME) nazwiemy klasę problemów decyzyjnych (języków) π L takich, że dla każdego L π L istnieje k N dla którego L NTIME(n k ). Zatem: NP = NPTIME = k N NTIME(n k ) Zauważmy, że znając poprzednie fakty dotyczące zależności klas: P NP PSPACE Marcin Szczuka (MIMUW) Logika stosowana 2016 19 / 39
Przykład problemu z NP Decyzyjny problem komiwojażera - TSP(K) Decyzyjny problem komiwojażera (TSP(K) Travelling Salesman Problem) opisuje się następująco: DANE: Graf nieskierowany G z wagami na krawędziach; stała K > 0. PYTANIE: Czy w grafie G istnieje trasa komiwojażera (cykl Hamiltona) o sumarycznym koszcie mniejszym niż K? Nie wiemy, czy ten problem jest w P, ale wiemy, że jest w NP. Możemy także zadać sobie pytanie o to, jaki charakter ma zadanie komplementarne do zadania z NP. Na przykład: Odwrotny problem komiwojażera Odwrotny problem komiwojażera opisuje się następująco: DANE: Graf nieskierowany G z wagami na krawędziach; stała K > 0. ZADANIE: Sprawdź (wykaż), że w grafie G nie istnieje trasa komiwojażera (cykl Hamiltona) o sumarycznym koszcie mniejszym niż K? Marcin Szczuka (MIMUW) Logika stosowana 2016 20 / 39
Zależności między klasami Klasa conp Powiemy, że problem decyzyjny (język) należy do klasy conp (complementary nondeterministic polynomial) jeśli problem do niego odwrotny jest w klasie NP. Zachodzą następujące zależności między poznanymi klasami: P NP PSPACE P conp PSPACE Pytanie za ponad milion dolarów Czy P = NP? Marcin Szczuka (MIMUW) Logika stosowana 2016 21 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 22 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 23 / 39
Redukcja problemów Efektywna redukcja problemów Powiemy, że język (problem) L 1 jest redukowalny (w sensie Karpa) do języka (problemu) L 2, jeżeli istnieje funkcja R (redukcja) określona na słowach i o wartościach w zbiorze słów taka, że: 1 Istnieje maszyna Turinga obliczająca R w pamięci O(log n); 2 w L 1 R(w) L 2 ; UWAGA: Punkt 1 w powyższej definicji orzeka, że redukcja nie może upychać złożoności czasowej przez przechowywanie ogromnych struktur. Klasa obliczeń o logarytmicznej złożoności czasowej, oznaczana jako L jest kolejną istotną klasą złożoności. L NL P NP PSPACE Oznacza to, że każda redukcja z poprzedniej definicji ma co najwyżej wielomianową złożoność czasową. Marcin Szczuka (MIMUW) Logika stosowana 2016 24 / 39
Hierarchia trudności problemów Sprowadzalność problemów Jeżeli istnieje efektywna redukcja problemu B do problemu A i A ma co najmniej wielomianową (deterministyczną lub niedeterministyczną) złożoność czasową, to problem A jest co najmniej tak samo trudny jak B. Algorytm dla problemu B w R R(w) Algorytm dla problemu A tak/nie Marcin Szczuka (MIMUW) Logika stosowana 2016 25 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 26 / 39
NP zupełność Problemy NP zupełne Powiemy, że decyzyjny problem algorytmiczny (język) L jest zupełny w klasie NP (NP-zupełny) jeśli: 1 L NP; 2 Każdy język L NP redukuje się (w czasie wielomianowym) do L. Jeżeli w powyższej definicji zachodzi tylko punkt 2, to L jest NP-trudny. UWAGI: 1 Aby pokazać, że jakiś język z NP jest NP-zupełny wystarczy stransformować do niego wielomianowo jakiś inny znany problem NP-zupełny. 2 Gdyby udało nam się pokazać istnienie wielomianowego algorytmu dla któregokolwiek z języków NP-zupełnych, to P = NP. 3 Na razie nie wiemy czy istnieje choć jeden nietrywialny język NP-zupełny. Marcin Szczuka (MIMUW) Logika stosowana 2016 27 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 28 / 39
Problem SAT i twierdzenie Cooka Problem SAT Satisfability DANE: Formuła boolowska f o zmiennych x 1,..., x n {0, 1}. PYTANIE: Czy istnieje wartościowanie dla x 1,..., x n, dla którego f jest spełniona? Problem SAT będzie miał dla nas szczególne znaczenie, gdyż pokażemy, że każdy język w NP jest do niego wielomianowo redukowalny. Skoro tak, to będziemy dysponowali przykładem problemu NP zupełnego i uzyskamy potwierdzenie sensowności redukowalności wielomianowej. Twierdzenie Cooka Problem SAT jest NP-zupełny. Marcin Szczuka (MIMUW) Logika stosowana 2016 29 / 39
Dowód twierdzenia Cooka Dowód twierdzenia Cooka przedstawimy tylko w zarysie. Zgodnie z definicją NP-zupełności musimy wykonać dwa kroki. 1 Pokazać, że SAT jest w NP. 2 Pokazać, że każdy problem w NP ma wielomianową redukcję do SAT. Krok 1: SAT jest w NP. Maszyna niedeterministyczna może zgadnąć rozwiązanie, a następnie zweryfikować czy jest ono wartościowaniem spełniającym zadaną formułę. Operację sprawdzenia wartości formuły boolowskiej można wykonać w czasie wielomianowym ze względu na jej długość. Zatem SAT jest w NP. Niestety, krok 2 dowodu nie jest tak łatwy. Marcin Szczuka (MIMUW) Logika stosowana 2016 30 / 39
Dowód zupełności SAT Będziemy pokazywać, że dla dowolnego języka w NP istnieje jego wielomianowe przekodowanie do SAT. W tym celu pokażemy, że dla każdej niedeterministycznej maszyny Turinga M = (Q, Σ, Γ, δ, q 0, B, F ) działającej w czasie wielomianowym p(n) i słowa w ( w = n) można zbudować formułę boolowską f taką, że M akceptuje w wtedy i tylko wtedy, gdy dla f istnieje wartościowanie spełniające. Zauważmy, że ponieważ złożoność M jest oszacowana przez wielomian p(n), to wystarczy rozpatrywać tylko komórki taśmy położone o nie dalej niż p(n) od pozycji głowicy w stanie q 0. Pozycję na taśmie w q 0 oznaczamy jako 0, a następnie numerujemy pozycje na taśmie symetrycznie po obu stronach 0 liczbami z zakresu od p(n) do p(n). Operacje przesunięcia głowicy w prawo i lewo będziemy identyfikowali z dodaniem odpowiednio +1 i -1 do licznika pozycji. Marcin Szczuka (MIMUW) Logika stosowana 2016 31 / 39
Dowód zupełności SAT zmienne Niech q Q, p(n) i p(n), j Σ i 0 k p(n). Kodowanie maszyny zaczniemy od podania zmiennych boolowskich które wystąpią w naszej formule. T ijk jest prawdziwa (przyjmuje wartość 1) i-ta komórka na taśmie zawiera symbol j w k-tym kroku obliczenia. Takich zmiennych jest O(p(n) 2 ). H ik jest prawdziwa głowica znajduje się nad i-tą komórką taśmy w k-tym kroku obliczenia. Takich zmiennych jest O(p(n) 2 ). Q qk jest prawdziwa M jest w stanie q w k-tym kroku obliczenia. Takich zmiennych jest O(p(n)). Za pomocą tak wprowadzonych zmiennych zbudujemy formułę boolowską, która będzie wyrażała obliczenie M. Ogółem mamy O(p(n) 2 ) zmiennych. Marcin Szczuka (MIMUW) Logika stosowana 2016 32 / 39
Formuła f jest koniunkcją podformuł kodujących: T ij0 i-ta komórka w stanie q 0 zawiera symbol j. Jest O(p(n)) takich elementów. Q s0 stan początkowy (jeden). H 00 początkowe położenie głowicy (jedno). T ijk T ij k dla j j w każdym kroku obliczenia, w każdej komórce jest dokładnie jeden symbol. Jest O(p(n) 2 ) takich elementów. T ijk = T ij(k+1) H ik zmiana na taśmie może nastąpić tylko na pozycji głowicy. Jest O(p(n) 2 ) takich elementów. Q qk Q q k dla q q w każdym kroku obliczenia jesteśmy w dokładnie jednym stanie. Jest O(p(n)) takich elementów. H ik H i k dla i i w każdym kroku obliczenia głowica jest w dokładnie jednej pozycji. Jest O(p(n)) takich elementów. (q,σ,q,σ,d) δ (H ik Q qk T iσk ) (H (i+d)(k+1) Q q (k+1) T (i+d)σ (k+1)) przejścia do kolejnego stanu w każdym kroku muszą być zgodne z relacją przejścia δ. Jest O(p(n) 2 ) takich elementów. q F Q qp(n) stan po zakończeniu obliczenia musi być akceptujący. Marcin Szczuka (MIMUW) Logika stosowana 2016 33 / 39
Dowód zupełności SAT formuła Zauważmy, że jeżeli znamy legalne obliczenie dla M na słowie w, to formuła f przedstawiona poprzednio jest spełniona. Jeżeli mamy wartościowanie spełniające formułę f to z wartości T ijk, H ik, Q qk odczytamy, krok po kroku, przebieg legalnego obliczenia akceptującego dla maszyny M. Koszt przekodowywania daje się oszacować wielomianem względem p(n). Uwaga CNF-SAT W dowodzie twierdzenia Cooka nie zajmujemy się bardzo szczegółowo postacią formuły f. Jednakże w dalszych rozważaniach będziemy przyjmować, że mówiąc o problemie SAT mamy na myśli jego przypadek szczególny tzw. CNF-SAT, czyli problem spełnialności formuł boolowskich w koniunkcyjnej postaci normalnej (CNF). Formuła jest w CNF jeśli jest koniunkcją klauzul (alternatyw) złożonych z literałów (zmiennych lub ich negacji). Postać takiej formuły: (l 11 l 12... l 1k1 ) (l 21 l 22... l 2k2 )... (l n1 l n2... l nkn ) Marcin Szczuka (MIMUW) Logika stosowana 2016 34 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 35 / 39
Problem 3-SAT Problem 3-SAT DANE: Formuła boolowska f w postaci 3-CNF, czyli taka której klauzule składają się z co najwyżej 3 literałów. PYTANIE: Czy f jest spełnialna? Pokażemy, że 3-SAT jest problemem NP-zupełnym przez wielomianowe sprowadzenie do niego z problemu CNF-SAT. 1 Formuła f dla CNF-SAT jest w postaci koniunkcji klauzul. 2 Przepisujemy f do formuły f w postaci 3-CNF poprzez wielokrotne stosowanie do zbyt długich klauzul w f następującej reguły: (l 1 l 2 l 3 l 4...) = (l 1 l 2 z 1 ) ( z 1 l 3 l 4...) gdzie z 1 jest zmienną pomocniczą. 3 Stosowanie powyższej reguły przepisywania prowadzi do powstania formuły f prawdziwej wtedy i tylko wtedy gdy prawdziwa jest f. Rozmiar f jest wielomianowo zależny od rozmiaru f. Marcin Szczuka (MIMUW) Logika stosowana 2016 36 / 39
Plan wykładu 1 Pojęcie złożoności Złożoność czasowa Złożoność pamięciowa Złożoność w przypadku niedeterministycznym 2 Klasy złożoności Klasa PSPACE Klasa PTIME Klasa NPTIME 3 Problemy NP-zupełne Redukcja wielomianowa problemów NP zupełność SAT i twierdzenie Cooka Inna wersja problemu spełnialności NP-trudność i problemy optymalizacyjne Marcin Szczuka (MIMUW) Logika stosowana 2016 37 / 39
NP-trudność i problemy optymalizacyjne W przypadku, gdy nie możemy (lub nie musimy) pokazać, że badany problem jest w klasie NP, a wiemy, że sprowadza się do niego wielomianowo jakiś problem NP-zupełny (trudny), mówimy, żę problem jest NP-trudny. Problem, który jest NP-trudny może być znacznie bardziej złożony niż problemy NP-zupełne. Można na przykład pokazać sprowadzenie problemu SAT do problemu STOPU. Zatem problem STOPU jest NP-trudny, ale skądinąd wiemy, że nie jest całkowicie algorytmicznie obliczalny. Często kojarzy się problemy NP-trudne z optymalizacyjnymi wersjami problemów NP-zupełnych. Istotnie, optymalizacyjne wersje znanych problemów NP-zupełnych są NP-trudne, ale należy pamiętać, że potencjalnie mogą nie być w NP, a zatem mogą być znacznie bardziej skomplikowane niż odpowiadające im problemy decyzyjne. Przykłady problemów NP-trudnych: 1 MAX-SAT znaleźć wartościowanie spełniające jak najwięcej klauzul. 2 Ogólny TSP znaleźć najlepszą drogę komiwojażera. 3 KLIKA znaleźć klikę największego rozmiaru w danym grafie. Marcin Szczuka (MIMUW) Logika stosowana 2016 38 / 39
Problem MAX-SAT Problem MAX-SAT DANE: Formuła f dla CNF-SAT (w postaci koniunkcji klauzul). ZADANIE: Znaleźć wartościowanie dla zmiennych w f takie, że największa możliwa liczba klauzul w f jest prawdziwa. (x 1 x 2 ) ( x 1 x 2 ) (x 1 x 2 ) ( x 1 x 2 ) Zadanie MAX-SAT jest NP-trudne, gdyż jeśli istnieje wartościowanie spełniające całe f to zostanie ono znalezione. MAX-SAT nie jest problemem NP-zupełnym, gdyż nie odpowiada na pytanie typu 0/1. Zadanie MAX-SAT nie ma zbyt dobrych własności aproksymacyjnych (nie istnieje wielomianowy schemat aproksymacyjny) o ile P NP. Problem MAX-SAT i jego warianty często pojawiają się w kotekście konstruowania i oceniania algorytmów (programów) znajdujących wartościowania spełniające tzw. SAT-Solver. Marcin Szczuka (MIMUW) Logika stosowana 2016 39 / 39