Wprowadzenie do złożoności obliczeniowej

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

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

Obliczenia inspirowane Naturą

Hierarchia Chomsky ego Maszyna Turinga

PROBLEMY NIEROZSTRZYGALNE

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

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

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

Maszyna Turinga języki

Algorytmika Problemów Trudnych

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

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

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

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

Języki, automaty i obliczenia

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Języki, automaty i obliczenia

Lista 6 Problemy NP-zupełne

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

Efektywność Procedur Obliczeniowych. wykład 5

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

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

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

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

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

Adam Meissner SZTUCZNA INTELIGENCJA Problem spełnialności (SAT)

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Przykłady problemów optymalizacyjnych

Języki, automaty i obliczenia

Trudność aproksymacji problemów NP-trudnych

1 Automaty niedeterministyczne

Sieć (graf skierowany)

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

Pierścień wielomianów jednej zmiennej

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

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

O ISTOTNYCH OGRANICZENIACH METODY

Matematyczne Podstawy Informatyki

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Obliczenia inspirowane Naturą

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

Teoretyczne podstawy programowania liniowego

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

Macierze. Rozdział Działania na macierzach

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Wprowadzenie do złożoności obliczeniowej

Hierarchia Chomsky ego

Zaawansowane metody numeryczne

1 Macierze i wyznaczniki

Złożoność algorytmów. Wstęp do Informatyki

) a j x j b; x j binarne (j N) całkowitoliczbowe; przyjmujemy (bez straty ogólności): c j > 0, 0 <a j b (j N), P n

9. Schematy aproksymacyjne

O ALGORYTMACH I MASZYNACH TURINGA

Imię, nazwisko, nr indeksu

Zasady analizy algorytmów

Matematyczne Podstawy Informatyki

Algorytmy aproksymacyjne dla problemów stochastycznych

Algorytmy aproksymacyjne dla problemów stochastycznych

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

a) 7 b) 19 c) 21 d) 34

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}

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

Metody Programowania

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Układy liniowo niezależne

Znajdowanie skojarzeń na maszynie równoległej

Wykład 4. Droga i cykl Eulera i Hamiltona

Złożoność obliczeniowa

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Topologia zbioru Cantora a obwody logiczne

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

Metody optymalizacji dyskretnej. Metody przybliżone

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

O MACIERZACH I UKŁADACH RÓWNAŃ

PRZEWODNIK PO PRZEDMIOCIE

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

Automatyczne dowodzenie twierdzeń metodą rezolucji

Definicja problemu programowania matematycznego

Układy równań liniowych i metody ich rozwiązywania

Algebra liniowa. Macierze i układy równań liniowych

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Zadania z algebry liniowej - sem. I Przestrzenie liniowe, bazy, rząd macierzy

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

Baza w jądrze i baza obrazu ( )

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Algebra liniowa z geometrią

ALGEBRA LINIOWA. Wykład 2. Analityka gospodarcza, sem. 1. Wydział Zarządzania i Ekonomii Politechnika Gdańska

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Matematyczne Podstawy Informatyki

Złożoność informacyjna Kołmogorowa. Paweł Parys

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Teoria Złożoności Zadania

Komiwojażer na płaszczyźnie

1 Zbiory i działania na zbiorach.

Transkrypt:

Institute of Informatics Wrocław University of Technology Poland wersja 0.9

Obliczalność f : N R { sin(1/n) gdy n jest liczba pierwsza f (n) = cos(1/n) w przeciwnym przypadku

Obliczalność f : N R { sin(1/n) gdy n jest liczba pierwsza f (n) = cos(1/n) w przeciwnym przypadku g : N {0, 1} 1 gdy w rozwinięciu dziesiętnym liczby π g(n) = występuje n sasiaduj acych cyfr 1 0 w przeciwnym przypadku

Obliczalność f : N R { sin(1/n) gdy n jest liczba pierwsza f (n) = cos(1/n) w przeciwnym przypadku g : N {0, 1} 1 gdy w rozwinięciu dziesiętnym liczby π g(n) = występuje n sasiaduj acych cyfr 1 0 w przeciwnym przypadku h : N {0, 1} 1 gdy n jest nieparzyste i n = k A k h(n) = gdzie: A = {k < n : k n} 0 w przeciwnym przypadku

Obliczalność t : R R n2 + {0, 1} t(x, (d 11, d 12,..., d nn )) = { 1 π n i=1 d π(i),π(i+1) < x 0 w przeciwnym przypadku

Obliczalność t : R R n2 + {0, 1} t(x, (d 11, d 12,..., d nn )) = F : N Z N N N {0, 1} { 1 π n i=1 d π(i),π(i+1) < x 0 w przeciwnym przypadku 1 gdy istnieja takie liczby x 1,..., x m Z, F(m, (a n ), (b n )) = dla których m i=1 a ix b i i = 0 0 w przeciwnym przypadku

Problemy nierozstrzygalne Dany jest skończony zbiór macierzy 3 3 o elementach będacych liczbami całkowitymi F = {A 1, A 2,..., A n }. Czy macierz zerowa jest iloczynem dowolnej liczby elementów zbioru F (z powtórzeniami)?

Problemy nierozstrzygalne Dany jest skończony zbiór macierzy 3 3 o elementach będacych liczbami całkowitymi F = {A 1, A 2,..., A n }. Czy macierz zerowa jest iloczynem dowolnej liczby elementów zbioru F (z powtórzeniami)? F = A 1 = 3 0 1 0 0 1 1 0 0, A 2 = 0 0 1 1 2 0 0 0 0

Problemy nierozstrzygalne Dany jest skończony zbiór macierzy 3 3 o elementach będacych liczbami całkowitymi F = {A 1, A 2,..., A n }. Czy macierz zerowa jest iloczynem dowolnej liczby elementów zbioru F (z powtórzeniami)? F = A 1 = 3 0 1 0 0 1 1 0 0, A 2 = 0 0 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 = A 1 A 2 A 2

Problemy nierozstrzygalne Dany jest skończony zbiór macierzy 3 3 o elementach będacych liczbami całkowitymi F = {A 1, A 2,..., A n }. Czy macierz zerowa jest iloczynem dowolnej liczby elementów zbioru F (z powtórzeniami)? F = A 1 = 3 0 1 0 0 1 1 0 0, A 2 = 0 0 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 = A 1 A 2 A 2 Nie jest możliwe skonstruowanie algorytmu, który rozwiazuje ten problem [1]. [1] Halava, V. and Harju, T.: Mortality in matrix semigroups. American Mathematical Monthly, vol. 108(7), 2001.

Problemy nierozstrzygalne Dane sa dwa skończone zbiory skończonych ciagów symboli ze skończonego zbioru (np. binarne, α i = 001101010, etc.). A = {α 1,..., α n } B = {β 1,..., β n } Czy istnieje takie uporzadkowanie (i k ) 1 k K, K 1, 1 i k n, że: α i1 α i2... α ik = β i1 β i2... β ik?

Problemy nierozstrzygalne Dane sa dwa skończone zbiory skończonych ciagów symboli ze skończonego zbioru (np. binarne, α i = 001101010, etc.). A = {α 1,..., α n } B = {β 1,..., β n } Czy istnieje takie uporzadkowanie (i k ) 1 k K, K 1, 1 i k n, że: A = {0, 01, 110} B = {100, 00, 11} (i 1, i 2, i 3, i 4 ) = (3, 2, 3, 1) α 3 α 2 α 3 α 1 = 110011100 = β 3 β 2 β 3 β 1 α i1 α i2... α ik = β i1 β i2... β ik? (jeśli istnieje jedno rozwiazanie, to istnieje ich nieskończenie wiele)

Problemy nierozstrzygalne Dane sa dwa skończone zbiory skończonych ciagów symboli ze skończonego zbioru (np. binarne, α i = 001101010, etc.). A = {α 1,..., α n } B = {β 1,..., β n } Czy istnieje takie uporzadkowanie (i k ) 1 k K, K 1, 1 i k n, że: A = {0, 01, 110} B = {100, 00, 11} (i 1, i 2, i 3, i 4 ) = (3, 2, 3, 1) α 3 α 2 α 3 α 1 = 110011100 = β 3 β 2 β 3 β 1 α i1 α i2... α ik = β i1 β i2... β ik? (jeśli istnieje jedno rozwiazanie, to istnieje ich nieskończenie wiele) Problem ten jest nierozstrzygalny [2]. [2] Post, E.: A variant of a recursively unsolvable problem, Bulletin of the American Mathematical Society, vol. 52(4), 1946

Rodzaje problemów w matematyce Problemy łatwo rozwiazywalne (= funkcje łatwo obliczalne). Problemy rozwiazywalne, ale trudne: Nie jest znany algorytm rozwiazywania (= obliczania funkcji). Nie jest znany "szybki" algorytm rozwiazywania. Problemy nierozwiazywalne w ogólnym przypadku.

Maszyna Turinga Definicja (DTM) Deterministyczna maszyna Turinga nazywamy czwórkę (K, Σ, δ, s), w której: K skończony zbiór stanów (instrukcji) Σ skończony zbiór symboli (tzw. alfabet) δ : K Σ (K {YES, NO, H}) Σ {,, } funkcja przejścia s K stan poczatkowy Ponadto zbiór Σ zawiera zawsze symbole: symbol pusty symbol końcowy, a zbiór K Σ nie zawiera syboli specjalnych: YES, NO, H,,,,,.

Maszyna Turinga Maszyna Turinga jest formalna reprezentacja pojęcia "algorytm". Dane wejściowe algorytmu sa reprezentowane poprzez ciag symboli x (Σ { }). Efekt działania 1 kroku algorytmu: (q, w, u) (q, w, u ) gdzie: q, q K stan maszyny przed i po wykonaniu kroku w, u Σ słowa po lewej i prawej stronie kursora (poczatkowo: w = x, u = ) w, u Σ słowa po lewej i prawej stronie kursora po wykonaniu kroku

Maszyna Turinga Mówimy, że maszyna M przechodzi z konfiguracji (q, w, u) do konfiguracji (q, w, u ) po k krokach, jeżeli istnieje ciag kroków pośrednich (q i, w i, u i ) (q i+1, w i+1, u i+1 ), i = 1,..., k 1, w których pierwsza konfiguracja to (q, w, u), a ostatnia (q, w, u ).

Maszyna Turinga Piszemy, M(x) = y, gdzie: y = 1 jeśli istnieje q K, takie że δ(q, ) = (YES,, ) oraz maszyna przechodzi z (s, x, ) do (q,, ) w skończonej liczbie kroków 0 jeśli istnieje q K, takie że δ(q, ) = (NO,, ) oraz maszyna przechodzi z (s, x, ) do (q,, ) w skończonej liczbie kroków w u jeśli istnieje q K, takie że δ(q, ) = (H,, ) oraz maszyna przechodzi z (s, x, ) do (q, w, u ) w skończonej liczbie kroków w przeciwnym przypadku

Maszyna Turinga Dodatkowa notacja: M k (x) = y tak jak do tej pory, ale zamiast "w skończonej liczbie kroków" "w co najwyżej k krokach".

Języki Językiem nazywamy podzbiór symboli L (Σ { }). Definicja Język L nazywamy rekurencyjnym, jeśli istnieje M: x L M(x) = 1 x/ L M(x) = 0 Definicja Język L nazywamy rekurencyjnie przeliczalnym, jeśli istnieje M: x L M(x) = 1 x/ L M(x) = Maszyna Turinga rozstrzyga język rekurencyjny. Maszyna Turinga rozpoznaje język rekurencyjnie przeliczalny.

Języki Przykład 1. L = {x jest binarna reprezentacja liczby m : 1<p,q N m = pq} Maszyna, która rozstrzyga ten język jest algorytmem wyliczajacym funkcję: f (x) = 0, jeśli x jest liczba pierwsza, 1 w przeciwnym przypadku

Języki Przykład 3. L = {x : x jest binarna reprezentacja ciagu macierzy 3 3 dla których istnieje ciag mnożeń dajacy w wyniku macierz zerowa} Maszyna, która rozstrzygałaby ten język rozwiazałaby problem "matrix mortality". Taka maszyna nie istnieje, ale istnieje maszyna, która rozpoznaje pozytywne przypadki tego problemu.

Notacja asymptotyczna Niech f, g : R R. Definicja (duże O) f (x) O(g(x)) C R x0 R x x0 f (x) C g(x) Definicja (duża Omega) f (x) Ω(g(x)) C R x0 R x x0 f (x) Cg(x) Definicja (duża Theta) f (x) Θ(g(x)) f (x) O(g(x)) f (x) Ω(g(x)) Definicja (małe o) f (x) o(g(x)) C R x0 R x x0 f (x) C g(x) Uwaga: Zwyczajowo pisze się f (x) = O(g(x)), chociaż to nie jest równość.

Klasa P Problemy, dla których istnieje DTM osiagaj aca jeden ze stanów YES, NO po wykonaniu co najwyżej O(n k ) kroków, dla dowolnego k N, gdzie: n = długość słowa wejściowego x (liczba symboli). Bardziej formalnie: Język L P L jest rekurencyjny i istnieje DTM, która go rozstrzyga w czasie O(n k ). Tzn.: M x L k N x = n M f (n) (x) {0, 1} f (n) = O(n k ).

Przykłady Ważne problemy należace do P: Programowanie liniowe (tzn. minimalizacja liniowej funkcji przy liniowych ograniczeniach) algorytm elipsoidalny.

Przykłady Ważne problemy należace do P: Programowanie liniowe (tzn. minimalizacja liniowej funkcji przy liniowych ograniczeniach) algorytm elipsoidalny. Programowanie kwadratowe dla wypukłej funkcji (tzn. min x T Ax, gdzie A jest dodatnio określona, przy liniowych ograniczeniach).

Przykłady Ważne problemy należace do P: Programowanie liniowe (tzn. minimalizacja liniowej funkcji przy liniowych ograniczeniach) algorytm elipsoidalny. Programowanie kwadratowe dla wypukłej funkcji (tzn. min x T Ax, gdzie A jest dodatnio określona, przy liniowych ograniczeniach). Testowanie pierwszości liczby (NIE: faktoryzacja), Manindra Agrawal, Neeraj Kayal, Nitin Saxena, PRIMES is in P, Annals of Mathematics vol. 160(2), 2004.

Przykłady Ważne problemy należace do P: Programowanie liniowe (tzn. minimalizacja liniowej funkcji przy liniowych ograniczeniach) algorytm elipsoidalny. Programowanie kwadratowe dla wypukłej funkcji (tzn. min x T Ax, gdzie A jest dodatnio określona, przy liniowych ograniczeniach). Testowanie pierwszości liczby (NIE: faktoryzacja), Manindra Agrawal, Neeraj Kayal, Nitin Saxena, PRIMES is in P, Annals of Mathematics vol. 160(2), 2004. Znajdowanie maksymalnego przepływu w grafie.

Przykłady Ważne problemy należace do P: Programowanie liniowe (tzn. minimalizacja liniowej funkcji przy liniowych ograniczeniach) algorytm elipsoidalny. Programowanie kwadratowe dla wypukłej funkcji (tzn. min x T Ax, gdzie A jest dodatnio określona, przy liniowych ograniczeniach). Testowanie pierwszości liczby (NIE: faktoryzacja), Manindra Agrawal, Neeraj Kayal, Nitin Saxena, PRIMES is in P, Annals of Mathematics vol. 160(2), 2004. Znajdowanie maksymalnego przepływu w grafie. Wyznaczanie najkrótszego drzewa rozpinajacego grafu.

Przykłady Ważne problemy należace do P: Programowanie liniowe (tzn. minimalizacja liniowej funkcji przy liniowych ograniczeniach) algorytm elipsoidalny. Programowanie kwadratowe dla wypukłej funkcji (tzn. min x T Ax, gdzie A jest dodatnio określona, przy liniowych ograniczeniach). Testowanie pierwszości liczby (NIE: faktoryzacja), Manindra Agrawal, Neeraj Kayal, Nitin Saxena, PRIMES is in P, Annals of Mathematics vol. 160(2), 2004. Znajdowanie maksymalnego przepływu w grafie. Wyznaczanie najkrótszego drzewa rozpinajacego grafu. Obliczanie dyskretnej transformaty Fouriera.

Przykłady Ważne problemy należace do P: Programowanie liniowe (tzn. minimalizacja liniowej funkcji przy liniowych ograniczeniach) algorytm elipsoidalny. Programowanie kwadratowe dla wypukłej funkcji (tzn. min x T Ax, gdzie A jest dodatnio określona, przy liniowych ograniczeniach). Testowanie pierwszości liczby (NIE: faktoryzacja), Manindra Agrawal, Neeraj Kayal, Nitin Saxena, PRIMES is in P, Annals of Mathematics vol. 160(2), 2004. Znajdowanie maksymalnego przepływu w grafie. Wyznaczanie najkrótszego drzewa rozpinajacego grafu. Obliczanie dyskretnej transformaty Fouriera. 2-SAT (spełnialność formuł boolowskich w postaci CNF z 2 literałami w klauzuli, np: (x 1 x 2 ) (x 1 x 3 ))....

Typowa złożoność Przeważnie dla algorytmów wielomianowych O(n k ), k 1 5. Często teoretycznie lepszy algorytm nie jest używany w praktyce. Przykład: mnożenie macierzy. Najszybszy znany algorytm: O(n 2.37 ), ale ze względu na zbyt duży stały współczynnik algorytm O(n 3 ) jest dużo szybszy dla "typowych" danych (macierze n < 1000).

Niedeterministyczna maszyna Turinga Definicja (NDTM) Nideterministyczna maszyna Turinga nazywamy czwórkę (K, Σ,, s), w której: K skończony zbiór stanów (instrukcji) Σ skończony zbiór symboli (tzw. alfabet) [K Σ] [(K {YES, NO, H}) Σ {,, }] relacja s K stan poczatkowy Ponadto zbiór Σ zawiera zawsze symbole: symbol pusty symbol końcowy, a zbiór K Σ nie zawiera syboli specjalnych: YES, NO, H,,,,,.

Klasa N P Język L N P L jest rekurencyjny i rozstrzygalny przez NDTM w czasie O(n k ).

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe)

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku.

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy.

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera.

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera. Szeregowanie zadań.

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera. Szeregowanie zadań. Wyznaczanie liczby chromatycznej grafu (kolorowanie).

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera. Szeregowanie zadań. Wyznaczanie liczby chromatycznej grafu (kolorowanie). Problemy lokalizacji magazynów (k-centrów, k-median).

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera. Szeregowanie zadań. Wyznaczanie liczby chromatycznej grafu (kolorowanie). Problemy lokalizacji magazynów (k-centrów, k-median). Wyznaczanie najkrótszego drzewa Steinera.

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera. Szeregowanie zadań. Wyznaczanie liczby chromatycznej grafu (kolorowanie). Problemy lokalizacji magazynów (k-centrów, k-median). Wyznaczanie najkrótszego drzewa Steinera. Najkrótsze drzewo rozpinajace o co najwyżej k wierzchołkach w grafie n > k - wierzchołkowym.

Przykłady Ważne problemy należace do klasy N P Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera. Szeregowanie zadań. Wyznaczanie liczby chromatycznej grafu (kolorowanie). Problemy lokalizacji magazynów (k-centrów, k-median). Wyznaczanie najkrótszego drzewa Steinera. Najkrótsze drzewo rozpinajace o co najwyżej k wierzchołkach w grafie n > k - wierzchołkowym. 3-SAT (spełnialność formuł boolowskich w postaci CNF z 3 literałami w klauzuli, np.: (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ))....

Redukowalność problemów Definicja (redukowalność) Niech L i L będa językami. Wtedy L L (L jest redukowalny do L ) jeśli istnieje taka funkcja f : Σ Σ, obliczalna przez DTM w czasie wielomianowym, dla której: x L f (x) L

Redukowalność problemów Jeśli L N P to L k-sat [3] Jeśli istnieje wielomianowy algorytm dla k-sat to istnieje dla wszystkich problemów w N P. A więc w pewnym sensie w problemie k-sat zawarta jest cała "trudność" problemu L. Rolę problemu k-sat może pełnić wiele innych problemów kombinatorycznych, teoriografowych, itp. [4] [3] Stephen Cook: "The complexity of theorem proving procedures". Proceedings of the Third Annual ACM Symposium on Theory of Computing, 1971 [4] Richard M. Karp: "Reducibility Among Combinatorial Problems". In: Complexity of Computer Computations, 1972

Redukowalność problemów Definicja Język L N P-complete jeśli: a) L N P b) L N P L L Definicja Język L N P-hard jeśli: L N P L L

Klasa N P-complete Większość znanych problemów w N P jest w N P-complete. Przykład: k-sat programowanie 0-1 (wersja decyzyjna) k-sat : zbiór formuł {C 1,..., C p } Przekształcenie: C = [c ij ], i = 1,..., p, j = 1,..., n, gdzie: 1 jeśli x j C i c ij = 1 jeśli x j C i 0 w przeciwnym przypadku b = [b 1,..., b n ], gdzie: b i = 1 [liczba zanegowanych literałów w C i ] Koniunkcja C 1... C p jest spełniona dla zmiennych boolowskich x = (x 1,..., x n ) wtedy i tylko wtedy, gdy Cx = b.

Przykłady Wszystkie te problemy sa w N P-complete: Programowanie całkowitoliczbowe (i zerojedynkowe) Programowanie kwadratowe w ogólnym przypadku. Problem plecakowy. Problem komiwojażera. Szeregowanie zadań. Wyznaczanie liczby chromatycznej grafu (kolorowanie). Problemy lokalizacji magazynów (k-centrów, k-median). Wyznaczanie najkrótszego drzewa Steinera. Najkrótsze drzewo rozpinajace o co najwyżej k wierzchołkach w grafie n > k - wierzchołkowym. 3-SAT (spełnialność formuł boolowskich w postaci CNF z 3 literałami w klauzuli, np.: (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ))....

Przykłady Problemy wewnatrz N P, ale nie w N P-complete, ani w P (przynajmniej nie wiadomo do tej pory): Faktoryzacja liczby. Stwierdzenie, czy 2 grafy sa izomorficzne. Obliczenie punktu równowagi Nasha gry dwuosobowej o niezerowej sumie.

Złożoność pamięciowa Wróćmy do definicji: Mówimy, że maszyna M przechodzi z konfiguracji (q, w, u) do konfiguracji (q, w, u ) po k krokach, jeżeli istnieje ciag kroków pośrednich (q i, w i, u i ) (q i+1, w i+1, u i+1 ), i = 1,..., k 1, w których pierwsza konfiguracja to (q, w, u), a ostatnia (q, w, u ) Definicja Pamięcia wymagana przez maszynę Turinga dla obliczenia M(x) jest k i=1 w iu i, gdzie k liczba kroków wykonana przed zatrzymaniem. Definicja Maszyna turinga M ma złożoność pamięciowa f (n), jeżeli zatrzymuje się (tzn. przyjmuje wartość M(x) ), zanim k i=1 w iu i > f (n), dla n = x, dla x Σ.

Algorytmy przybliżone Niech: x dane wejściowe problemu A(x) wartość wyliczona algorytmem przybliżonym OPT(x) wartość optymalna Definicja (ρ-aproksymacja) Algorytm nazywamy ρ-aproksymacyjnym, ρ 1, jeśli dla dowolnych danych wejściowych x zachodzi: max{ A(x) OPT(x), OPT(x) A(x) } ρ Definicja (ɛ-aproksymacja) Algorytm nazywamy ɛ-przybliżonym, 0 ɛ 1, jeśli dla dowolnych danych wejściowych x zachodzi: ρ = 1 lub ɛ = 0 algorytm dokładny ρ = lub ɛ = 1 algorytm heurystyczny A(x) OPT(x) max{a(x), OPT(x)} ɛ

Inne klasy złożoności EXP determ. maszyny Turinga działajace w czasie O(2 nk ) problem stopu maszyny Turinga w k krokach uogólnione szachy PSPACE determ. używajace O(n k ) pamięci i dowolnie dużo czasu Q SAT, spełnialność formuł k-sat z dowolnymi kwantyfikatorami (np.: x1 x2 x3 (x 1 x 2 x 3 ) ( x 1 x 2 x 3 )) NEXP niedeterm. działajace w czasie O(2 nk ) L determ. używajace O(log n) pamięci N L niedeterm. używajace O(log n) pamięci NPSPACE niedeterm. używajace O(n k ) pamięci

Inne klasy złożoności APX problemy, dla których istnieje algorytm ρ-przybliżony działajacy w czasie O(n k ), dla pewnego ρ 1 PTAS problemy, dla których istnieje algorytm ρ-przybliżony działajacy w czasie O(n k ), dla każdego ρ 1 #P problemy wyliczeniowe dla problemów decyzyjnych, tzn. dla ilu ścieżek NDTM zachodzi M(x) = 1 (np. ile jest drzew rozpinajacych o długości k?)... i kilkadziesiat innych

Zależności pomiędzy klasami Hierarchia klas: L N L P N P PSPACE EXP NEXP EXPSPACE Do tej pory wiadomo tylko, że: L PSPACE N P = NEXP PSPACE EXPSPACE

Thank you Questions?