Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Podobne dokumenty
Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktura danych. Sposób uporządkowania informacji w komputerze.

Lista 6 Problemy NP-zupełne

Zakładamy, że maszyna ma jeden stan akceptujacy.

Efektywność Procedur Obliczeniowych. wykład 5

Obliczenia inspirowane Naturą

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Imię, nazwisko, nr indeksu

Języki, automaty i obliczenia

Teoria obliczeń i złożoność obliczeniowa

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Logika Stosowana. Wykład 2 - Logika modalna Część 3. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2017/2018

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Języki, automaty i obliczenia

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Matematyczne Podstawy Informatyki

Maszyna Turinga języki

Teoria Złożoności Zadania

Hierarchia Chomsky ego Maszyna Turinga

Struktury danych i złożoność obliczeniowa Wykład 6. Prof. dr hab. inż. Jan Magott

Dopełnienie to można wyrazić w następujący sposób:

1 Automaty niedeterministyczne

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

TEORETYCZNE PODSTAWY INFORMATYKI

Języki formalne i automaty Ćwiczenia 9

Obliczenia inspirowane Naturą

Podstawy Informatyki. Sprawność algorytmów

LOGIKA Klasyczny Rachunek Zdań

Złożoność obliczeniowa. wykład 1

Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.

Języki, automaty i obliczenia

Metoda Tablic Semantycznych

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Wprowadzenie do złożoności obliczeniowej

Logika Matematyczna (10)

Zasady analizy algorytmów

Wstęp do programowania

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Złożoność obliczeniowa

PROBLEMY NIEROZSTRZYGALNE

Złożoność obliczeniowa zadania, zestaw 2

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ

Problemy NP-zupełne. Spis treści. Osoba prowadząca wykład i ćwiczenia: dr inż. Marek Sawerwain. Ostatnia zmiana: 15 styczeń Notatki.

O ISTOTNYCH OGRANICZENIACH METODY

Algorytmika Problemów Trudnych

Trudność aproksymacji problemów NP-trudnych

10110 =

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Złożoność obliczeniowa wybranych problemów szeregowania zadań jednostkowych na równoległych procesorach

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Języki formalne i automaty Ćwiczenia 7

1 Maszyny Turinga. stan 1 litera 1 litera 2 ruch stan 2. Matematycznie P S (Q {B}) (Q {B}) {L, R, } S

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Języki, automaty i obliczenia

Algorytmy asymetryczne

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Problem P = NP. albo czy informacja może. biec na skróty

Wprowadzenie do złożoności obliczeniowej

Paradygmaty dowodzenia

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

O ALGORYTMACH I MASZYNACH TURINGA

Wykład z równań różnicowych

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Topologia zbioru Cantora a obwody logiczne

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Efektywność algorytmów

Maszyna Turinga (Algorytmy Część III)

Semantyka rachunku predykatów pierwszego rzędu. Dziedzina interpretacji. Stałe, zmienne, funkcje. Logika obliczeniowa.

Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań

Technologie Informacyjne

III rok kognitywistyki UAM,

PRZEWODNIK PO PRZEDMIOCIE

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Logika Stosowana. Wykład 7 - Zbiory i logiki rozmyte Część 3 Prawdziwościowa logika rozmyta. Marcin Szczuka. Instytut Informatyki UW

1. Analiza algorytmów przypomnienie

Struktury danych i złożoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Przykłady problemów optymalizacyjnych

Problemy Decyzyjne dla Systemów Nieskończonych

Hierarchia Chomsky ego

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Maszyna Turinga, ang. Turing Machine (TM)

Semantyka rachunku predykatów

III rok kognitywistyki UAM,

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Transkrypt:

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