Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott
Problemy NP-zupełne
Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca warunki: 1. Dla każdej instancji I 2 εd π2 odpowiedź brzmi tak, wtedy i tylko wtedy, gdy dla instancji f(i 2 ) odpowiedź również jest tak, 2. Czas obliczenia funkcji f przez DMT dla każdej instancji I 2 εd π2 jest ograniczony od góry przez wielomian od N I 2.
Własności transformacji wielomianowej Lemat 1 Transformacja wielomianowa jest przechodnia, tzn. jeśli π 2 π 1 i π 3 π 2, to π 3 π 1. Lemat 2 Jeżeli π 2 π 1 i π 1 εnp, to π 2 εnp. Lemat 3 Jeżeli π 2 π 1 i π 2 εnp, to π 1 εnp. Wniosek Jeżeli π 2 π 1, to problem π 1 jest co najmniej tak trudny jak π 2.
Problem decyzyjny π 1 jest nazywany NP-zupełnym, jeśli: 1. π 1 εnp, 2. Dla każdego innego problemu decyzyjnego π 2 εnp jest π 2 π 1. Zatem, jeśli istniałby algorytm wielomianowy do rozwiązywa- nia jakiegokolwiek problemu NP-zupełnego, to każdy problem z klasy NP (w tym również problemy NP-zupełne) mógłby być rozwiązany za pomocą algorytmu wielomianowego. Z bezskuteczności poszukiwań algorytmu wielomianowego dla któregokolwiek problemu NP-zupełnego wynika, że prawie na pewno wszystkie problemy NP-zupełne można rozwiązać tylko przy użyciu algorytmów ponadwielomianowych.
Do udowodnienia NP-zupełności problemu decyzyjnego π wystarczy: 1. Dowieść, że πεnp, 2. Przetransformować wielomianowo dowolny znany problem NP-zupełny do problemu π. W celu zbadania złożoności obliczeniowej danego problemu, staramy się znaleźć dla niego optymalny deterministyczny algorytm wielomianowy lub wykazać trudność tego problemu. Aby wykazać trudność, wystarczy udowodnić NP-zupełność. Do klasy problemów NP-zupełnych należą najtrudniejsze problemy klasy NP.
Twierdzenie Problem plecakowy jest NP-zupełny. Cel: Udowodnić NP-zupełność problemu plecakowego poprzez wielomianową transformację problemu podziału, który jest NP-zupełny, do plecakowego.
Problem podziału zbioru Dane: C = c 1,, c i,, c k zbiór k elementów, Rozmiar s c i > 0 elementu c i, gdzie s(c i ) N +, N + = 1,2,, B N +, k i=1 s c i = 2B. Pytanie: Czy istnieje podzbiór C C taki, że c i C s c i = B?
Problem plecakowy wersja decyzyjna Dane: Skończony zbiór elementów A = a 1, a 2,, a n. Rozmiar s a i > 0 i waga (wartość) w a i > 0 elementu a i. Pojemność plecaka b > 0 i stała y > 0. Zadanie: Czy istnieje podzbiór A A taki, że: s( a i A a i ) b a i A w(a i ) y?
Dowód, że problem plecakowy π 1 NP Aby rozwiązać instancję (konkretny problem) I π 1, NDMT musi wygenerować podzbiór A A i sprawdzić w co najwyżej wielomianowym czasie, czy odpowiedź dla tego problemu brzmi tak. Należy sprawdzić nierówności s( a i A a i ) b w(a i ) y a i A
Dowód, że problem plecakowy π 1 NP NDMT dla Problemu plecakowego Głowica zapisująca Moduł zgadujący Sterowanie Głowica odczytująco-zapisująca.. Łańcuch S Dane wejściowe.. -4-3 -2-1 0 1 2 3 4 Łańcuch S - liczba binarna, której i-ta pozycja wskazuje czy i-ty element zbioru A należy do wygenerowanego rozwiązania A Dane wejściowe n s a 1 s a n w a 1 w a n b y
Dowód, że problem plecakowy π 1 NP n s(a 1 ) s a n w a 1 w a n b y log 2 n + 1 + ( log 2 s a i + 1) i=1 N I n + ( log 2 w a i + 1) + (log 2 b + 1 + (log 2 y i=1 x - najmniejsza liczba całkowita nie mniejsza niż x N(I) < (2n + 3)( log 2 max {n, s a i : 1, n, {w a i : {1, n}}, b, y} + 1) n
Dowód, że problem plecakowy π 1 NP Do sprawdzania nierówności: wystarcza 2 A porównania. a i A s( a i ) b, a i A w(a i ) y 2 2n operacji dodawania i 2 operacje Operacje porównania i dodawania dwóch liczb b 1 i b 2 DTM może wykonać w czasie wielomianowym zależnym od (log 2 b 1 i (log 2 b 2. Zatem złożoność weryfikacji odgadniętego rozwiązania jest ograniczona od góry przez wielomian p(n I ) czyli π 1 NP.
Dowód, że Problem podziału π 2 π 1 Problem podziału π 2 jest NP-zupełny Dla instancji I 2 εd π2 konstruujemy instancję I 1 εd π1 taką, że: n = k, wzajemnie jednoznaczne przyporządkowanie g c i = a i, s a i = s(c i ) dla iε{1, n}, w a i = s(c i ) dla iε{1, n}, b = y = B.
Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca warunki: 1. Dla każdej instancji I 2 εd π2 odpowiedź brzmi tak, wtedy i tylko wtedy, gdy dla instancji f(i 2 ) odpowiedź również jest tak, 2. Czas obliczenia funkcji f przez DMT dla każdej instancji I 2 εd π2 jest ograniczony od góry przez wielomian od N I 2.
Dowód, że Problem podziału π 2 π 1 1. Dowód, że dla każdej instancji I 2 εd π2 odpowiedź brzmi tak, wtedy i tylko wtedy, gdy dla instancji I 1 π 1 odpowiedź również jest tak. Niech odpowiedź dla I 1 π 1 brzmi tak. Zatem istnieje A A taki, że: a i A s( a i ) b, a i A w(a i ) y. Ponieważ s a i = w a i =s c i dla iε{1, n} oraz b = y = B, a więc dla zbioru C = c i : c i = g 1 a i a i εa prawdziwe jest s(c i ) = B. c i C Zatem dla instancji I 2 εd π2 odpowiedź brzmi tak.
Dowód, że Problem podziału π 2 π 1 1. Dowód, że dla każdej instancji I 2 εd π2 odpowiedź brzmi tak, wtedy i tylko wtedy, gdy dla instancji I 1 π 1 odpowiedź również jest tak. Niech odpowiedź dla I 2 εd π2 brzmi tak. Zatem istnieje C C taki, że: s(c i ) = B. Ponieważ c i C s a i = w a i =s c i dla iε{1, n} oraz b = y = B, a więc dla zbioru A = a i : a i = s c i c i εc prawdziwe jest s( a i A a i ) = w a i = b = y a i A Zatem dla instancji I π odpowiedź brzmi tak.
Dowód, że Problem podziału π 2 π 1 2. Czas obliczenia funkcji f przez DMT dla każdej instancji I 2 εd π2 jest ograniczony od góry przez wielomian od N I 2. Czas konstrukcji danych I 1 εd π1 jest ograniczony od góry przez wielomian od rozmiaru I 2 εd π2, ponieważ DMT musi przepisać 2n + 3 liczb.
Wnioski 1. Klasa problemów NP-zupełnych zawiera problemy równoważne wielomianowo, tzn. jeśli π 1 jest NP-zupełny i π 2 jest NP-zupełny, to π 2 π 1 i π 1 π 2. 2. Klasa problemów NP-zupełnych zawarta jest w klasie NP. 3. Jeśli dla pewnego problemu NP-zupełnego istnieje wielomianowy algorytm rozwiązania, to wszystkie problemy NP-zupełne są rozwiązywalne w czasie wielomianowym. 4. Klasa problemów NP-zupełnych zawiera najtrudniejsze problemy z klasy NP.
Podsumowanie P klasa problemów rozwiązywalnych w czasie wielomianowym. NP zupełne klasa problemów prawie na pewno nie rozwiązywalnych w czasie wielomianowym. Problemy otwarte to takie, dla których nie znaleziono algorytmu wielomianowego rozwiązania ani nie wykazano NP-zupełności.
Do udowodnienia NP-zupełności problemu decyzyjnego π wystarczy: 1. Dowieść, że πεnp, 2. Przetransformować wielomianowo dowolny znany problem NP-zupełny do problemu π. W celu zbadania złożoności obliczeniowej danego problemu, staramy się znaleźć dla niego optymalny deterministyczny algorytm wielomianowy lub wykazać trudność tego problemu. Aby wykazać trudność, wystarczy udowodnić NP-zupełność. Do klasy problemów NP-zupełnych należą najtrudniejsze problemy klasy NP.
Problemami NP-zupełnymi są: Problem podziału, Problem komiwojażera, Problem cyklu Hamiltona.
W celu wykazania NP-zupełności problemu π 1 należy: 1. Pokazać, że π 1 NP, 2. Wybrać odpowiedni NP-zupełny problem π 2, 3. Skonstruować transformację f: D π2 D π1, 4. Pokazać, że f jest obliczana w czasie wielomianowym, 5. Pokazać, że π 2 π 1, 6. Pokazać, że π 1 π 2 lub π 2 π 1. Zwykle najtrudniejsze są punkty 2. i 6.
Zasadnicze techniki dowodzenia NP-zupełności problemów decyzyjnych: Ograniczanie, Lokalna zamiana, Projektowanie części składowych. Którą z technik zastosowano dowodząc NP-zupełności Problemu plecakowego poprzez przetransformowanie do niego Problemu podziału?
Problem cyklu Hamiltona Dane: Graf nieskierowany G =< V, E >, n = V Pytanie: Czy G zawiera cykl Hamiltona, tzn. czy istnieje takie uporządkowanie wierzchołków grafu < v i[1], v i[2],, v i[n] >, że: {v i[j], v i[j+1] } E dla jε 1, n 1 oraz {v i n, v i[1] } E?
Problem ścieżki Hamiltona Dane: Graf nieskierowany G =< V, E >, n = V Pytanie: Czy G zawiera ścieżkę Hamiltona, tzn. czy istnieje takie uporządkowanie wierzchołków grafu < v i[1], v i[2],, v i[n] >, że {v i[j], v i[j+1] } E dla jε 1, n 1?
Twierdzenie Problemy cyklu Hamiltona i ścieżki Hamiltona są NP-zupełne.
Problem najdłuższej ścieżki Graf nieskierowany G =< V, E >, liczba naturalna K V. Pytanie: Czy G zawiera ścieżkę prostą (ścieżkę przechodząca przez każdy z jej wierzchołków dokładnie jeden raz) zawierającą K lub więcej krawędzi?
Zasadnicze techniki dowodzenia NP-zupełności problemów decyzyjnych: Ograniczanie, Lokalna zamiana, Projektowanie części składowych.
Twierdzenie Problem najdłuższej ścieżki jest NPzupełny. Dowód wykonany techniką ograniczania. Jako znany problem NP-zupełny przyjmiemy Problem ścieżki Hamiltona.
NDMT dla Problemu najdłuższej ścieżki Głowica zapisująca Moduł zgadujący Sterowanie Głowica odczytująco-zapisująca.. Łańcuch S Dane wejściowe.. -4-3 -2-1 0 1 2 3 4 Łańcuch S - ciąg K+1 indeksów wierzchołków, którego i-ta pozycja wskazuje na i-ty wierzchołek wygenerowanej sekwencji. Dane wejściowe V v 0, v j v k, v l v p, v r
Twierdzenie Problem najdłuższej ścieżki π 1 jest NP-zupełny. Dowód, że π 1 εnp Podczas rozwiązywania problemu π 1, moduł zgadujący NDMT generuje sekwencję K + 1 wierzchołków, tzn. K krawędzi. W jaki sposób? Jaka jest złożoność obliczeniowa? Deterministyczna część NDMT sprawdza czy dla każdych dwu kolejnych wierzchołków v i[j], v i[j+1] jest {v i[j], v i[j+1] } E oraz czy wierzchołki powtarzają się. Ponieważ te czynności można wykonać w czasie wielomianowym, a więc π 1 εnp.
Twierdzenie Problem najdłuższej ścieżki jest NP-zupełny. Dowód, że π 2 π 1 π 1 - Problem najdłuższej ścieżki, π 2 - Problem ścieżki Hamiltona.
Problem ścieżki Hamiltona Dane: Graf nieskierowany G =< V, E >, n = V Pytanie: Czy G zawiera ścieżkę Hamiltona, tzn. czy istnieje takie uporządkowanie wierzchołków grafu < v i[1], v i[2],, v i[n] >, że {v i[j], v i[j+1] } E dla jε 1, n 1? Problem najdłuższej ścieżki Graf nieskierowany G =< V, E >, liczba naturalna K V. Pytanie: Czy G zawiera ścieżkę prostą (ścieżkę przechodząca przez każdy z jej wierzchołków dokładnie jeden raz) zawierającą K lub więcej krawędzi? Czy jeden z powyższych problemów jest ogólniejszy od drugiego? Jak dobrać K?
Twierdzenie Problem najdłuższej ścieżki jest NP-zupełny. Dowód, że π 2 π 1 π 1 - Problem najdłuższej ścieżki, π 2 - Problem ścieżki Hamiltona. W celu wykazania powyższego należy π 1 ograniczyć tylko do tych instancji I 1 D π1, takich, że K = V 1. Tak ograniczony π 1 jest problemem π 2.
Graf pełny W grafie pełnym każda para wierzchołków jest połączona. Izomorfizm grafów Dane: Grafy G 1 =< V 1, E 1 >, G 2 =< V 2, E 2 >. Pytanie: Czy istnieje funkcja jeden na jeden f: V 1 V 2 taka, że {u, v}εe 1 wtedy i tylko wtedy gdy {f(u), f(v)}εe 2?
Izomorfizm grafów Dane: Grafy G 1 =< V 1, E 1 >, G 2 =< V 2, E 2 >. Pytanie: Czy istnieje funkcja jeden na jeden f: V 1 V 2 taka, że {u, v}εe 1 wtedy i tylko wtedy gdy {f(u), f(v)}εe 2? G 1 =< V 1, E 1 > G 2 =< V 2, E 2 > u 2 f f v 5 v 2 u 1 u 3 u 4 f u 5? v 3 v 4 v 1
Testy izomorfizmu grafów?
Testy izomorfizmu grafów Liczba wierzchołków Liczba krawędzi Stopnie wierzchołków
Niech grafy G 1 =< V 1, E 1 >, G 2 =< V 2, E 2 > będą takie, że V 1 = V 2 = n. Ile jest funkcji jeden na jeden f: V 1 V 2?
Niech grafy G 1 =< V 1, E 1 >, G 2 =< V 2, E 2 > będą takie, że V 1 = V 2 = n. Funkcji jeden na jeden f: V 1 V 2 jest n!.
Problem kliki Dane: Graf nieskierowany G =< V, E >, liczba naturalna k V. Pytanie: Czy graf zawiera klikę o rozmiarze k lub większym, tzn. podgraf pełny zawierający V k wierzchołków. Problem największego wspólnego podgrafu Dane: Grafy nieskierowane G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 >, liczba naturalna K. Pytanie: Czy istnieją podzbiory E 1 E 1 i E 2 E 2 takie, że E 1 = E 2 K i podgrafy G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 > są izomorficzne?
Problem największego wspólnego podgrafu Dane: Grafy nieskierowane G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 >, liczba naturalna K. Pytanie: Czy istnieją podzbiory E 1 E 1 i E 2 E 2 takie, że E 1 = E 2 K i podgrafy G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 > są izomorficzne? v 6 v 1 u 1 u 4 u 3 v 5 v 2 u 2 u 5 v 4 v 3 u 6
Kryteria kosztów operacji elementarnych (zapisania, dodawania, odejmowania, porównania dwu liczb, itp.) Logarytmiczne kryterium kosztów Czas wykonania elementarnej operacji zależy liniowo od długości łańcucha danych kodujących liczby, a zatem od logarytmów liczb. Analiza teoretyczna z użyciem DMT prowadzona jest przy tym kryterium. Jednorodne kryterium kosztów Czas wykonania elementarnej operacji jest jednostkowy. Analiza praktyczna często oparta jest na tym kryterium.
Twierdzenie Problem największego wspólnego podgrafu π 1 jest NP-zupełny. Dowód, że π 1 εnp
Dowód, że Problem największego wspólnego podgrafu π 1 εnp Dane: Grafy nieskierowane G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 >, liczba naturalna K. Pytanie: Czy istnieją podzbiory E 1 E 1 i E 2 E 2 takie, że E 1 = E 2 i podgrafy G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 > są izomorficzne? v 5 v 6 e 1 v 4 e 2 v 3 v 1 e 4 e 3 v 2 v 2 v 5, v 1 v 3, v 2 v 1, e 1, e 2, e 3 u 6 u 4, u 5 u 2, u 6 u 5, f 2, f 3, f 1 u 1 u 2 f 3 u 4 u 6 f 2 f 1 u 3 u 5 K
NDMT dla Problemu najdłuższej ścieżki Głowica zapisująca Moduł zgadujący Sterowanie Głowica odczytująco-zapisująca.. Łańcuch S Dane wejściowe.. Łańcuch S Pary reprezentujące odwzorowanie g: V 1 V2 v 0, u j v k, u l v p, u r -4-3 -2-1 0 1 2 3 4 Dane wejściowe Liczby wierzchołków obu grafów z łukami V 1 v 0, v j v k, v l v p, v r V 2 u 0, v k v k, v m v r, v p
Wyznaczanie liczby krawędzi w podgrafach izomorficznych Dla każdej krawędzi {v k, v l } w grafie G 1 wykonać wyznacz zbiór {g(v k ), g(v l )} ; sprawdź czy {g(v k ), g(v l )} jest krawędzią w G 2 ; jeśli {g(v k ), g(v l )} jest krawędzią w G 2, to liczbę krawędzi w podgrafach izomorficznych zwiększ o 1
Dowód, że Problem największego wspólnego podgrafu π 1 εnp NDMT musi sprawdzić, czy: Czy istnieją podzbiory E 1 E 1 i E 2 E 2 takie, że E 1 = E 2 i podgrafy G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 > są izomorficzne? K Generacja jednego rozwiązania i sprawdzenie warunków mogą być wykonane w czasie ograniczonym przez wielomian od rozmiaru problemu. Zatem π 1 εnp.
Problem kliki Dane: Graf nieskierowany G =< V, E >, liczba naturalna k V. Pytanie: Czy graf zawiera klikę o rozmiarze k lub większym, tzn. podgraf pełny zawierający V k wierzchołków. Problem największego wspólnego podgrafu Dane: Grafy nieskierowane G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 >, liczba naturalna K. Pytanie: Czy istnieją podzbiory E 1 E 1 i E 2 E 2 takie, że E 1 = E 2 K i podgrafy G 1 =< V 1, E 1 > i G 2 =< V 2, E 2 > są izomorficzne?
Dowód, że π 2 π 1 Problem kliki π 2 Problem największego wspólnego podgrafu π 1 Punktem wyjścia jest twierdzenie Problem kliki jest NP-zupełny. Niech w Problemie kliki dane będzie k V. W Problemie największego wspólnego podgrafu, jako G 2 przyjmijmy graf zawierający graf pełny o k wierzchołkach. Jego pozostałe V 2 k wierzchołki mają stopnie równe 0. 2 W G 2 jest krawędzi w liczbie i 1 = (k 1) k/2 i=k
Dowód, że π 2 π 1 Problem kliki π 2 Problem największego wspólnego podgrafu π 1 Ograniczamy π 1 do postaci, gdy graf G 2 jest grafem jak poprzednio określony, a K = E 2 = (k 1) k/2. Tak zdefiniowany Problem największego podgrafu polega na szukaniu kliki o k wierzchołkach w grafie G 1. Zatem tak ograniczony Problem największego wspólnego podgrafu daje rozwiązanie dla Problemu kliki.