Problem NP-zupełny

W teorii złożoności An NP-zupełny problemu lub NPC błąd (to znaczy pełne problemem dla NP klasy ) jest problem decyzyjny weryfikacji następujące właściwości:

NP-trudny problem, to problem, który spełnia drugi warunek, a zatem mogą być w większej klasie problemu i dlatego trudniej niż klasy NP.

Chociaż można szybko zweryfikować proponowane rozwiązanie problemu NP-zupełnego, nie wiadomo, jak je skutecznie znaleźć . Tak jest na przykład w przypadku problemu komiwojażera lub problemu z plecakiem .

Wszystkie algorytmy znane z rozwiązywania problemów NP-zupełnych mają wykładniczy czas wykonania danych wejściowych w najgorszym przypadku i dlatego są w praktyce bezużyteczne dla instancji o średniej wielkości.

Druga właściwość definicji oznacza, że ​​jeśli istnieje algorytm wielomianowy do rozwiązania któregokolwiek z problemów NP-zupełnych, to wszystkie problemy klasy NP można rozwiązać w czasie wielomianowym. Znalezienie algorytmu wielomianu dla problemu NP-zupełnego lub udowodnienie, że nie istnieje, pozwoliłoby nam dowiedzieć się, czy P = NP czy P ≠ NP, pytanie otwarte, które jest jednym z najważniejszych nierozwiązanych dotychczas problemów matematycznych .

W praktyce specjaliści IT i programiści często napotykają problemy NP-zupełne. W tym przypadku świadomość, że problem, nad którym pracujemy, jest NP-zupełny, jest wskazówką, że problem jest trudny do rozwiązania, dlatego lepiej szukać rozwiązań przybliżonych za pomocą algorytmów aproksymacyjnych lub stosować heurystykę do znalezienia dokładnych rozwiązań.

Definicja formalna

Problem decyzyjny można opisać matematycznie przez formalnego języka , słowa, które odpowiadają instancji problemu, dla których odpowiedź brzmi tak . Bez utraty ogólności możemy założyć, że wszystkie rozważane przez nas języki są zdefiniowane w tym samym alfabecie .

W definicji NP-kompletności zaangażowane są dwie klasy złożoności, przedstawione bardziej szczegółowo w teorii złożoności :

Język jest NP-trudne jeśli istnieje wielomian zmniejszenie jakiegokolwiek języka na , to znaczy funkcja (gdzie jest alfabet z tych języków), obliczalna w czasie wielomianowym na deterministycznej maszyny Turinga, takich jak niż:

.

Jeśli więcej , język jest NP-kompletny .

Podano klasę języków NP-pełnych .

Mówimy, że problem decyzyjny jest „NP-zupełny”, gdy odpowiedni język jest NP-zupełny. Jest to pojęcie nieformalne, ponieważ istnieje kilka sposobów kodowania przypadków problemu, ale nie stwarza to żadnych trudności, o ile stosuje się rozsądne zakodowanie problemu w rozważanym języku (patrz sekcja NP-słaba kompletność ).

Nadużywanie języka często kwalifikuje się jako problemy optymalizacyjne „NP-zupełne” , a nie problemy decyzyjne. Zatem powiemy, że problem komiwojażera polegający na znalezieniu krótszego obwodu przechodzącego tylko raz przez każdy z wierzchołków skończonego grafu połączonego jest -kompletny. Jest to uzasadnione tym, że każdy problem optymalizacyjny możemy przekształcić w problem decyzyjny i odwrotnie (patrz rozdział „  Od istnienia do decyzji  ” w artykule o teorii złożoności).

Historia

Pojęcie NP-zupełności zostało wprowadzone w 1971 r. Przez Stephena Cooka w artykule zatytułowanym Złożoność procedur dowodzenia twierdzeń , chociaż słowo „NP-zupełne” nie pojawia się wprost w artykule. Na konferencji, na której został zaprezentowany, toczyła się gorąca dyskusja wśród obecnych naukowców na temat tego, czy problemy NP-zupełne można rozwiązać w czasie wielomianowym na deterministycznej maszynie Turinga . John Hopcroft ostatecznie przekonał uczestników, że kwestia musi zostać odroczona, ponieważ nikt nie zdołał udowodnić ani zaprzeczyć wynikowi.

Kwestia czy P = NP nie jest jeszcze rozwiązany. Jest to część Millennium Prize Problems , zestawu siedmiu problemów, za które Clay Institute of Mathematics oferuje nagrodę w wysokości miliona dolarów . Wystarczyłoby znaleźć pojedynczy problem NP, który jest zarówno NP-zupełny, jak i P, aby udowodnić tę hipotezę, lub wykazać pojedynczy problem NP, który nie jest w P, aby udowodnić jego zaprzeczenie.

Wynik pracy Cooka, niezależnie zademonstrowany przez Leonida Levina w ZSRR, jest obecnie znany jako twierdzenie Cooka-Levina . To twierdzenie stwierdza, że ​​istnieje problem NP-zupełny. Cook wybrał problem SAT, a Levin - problem teselacji. W 1972 roku Richard Karp udowodnił kompletność NP kilku innych fundamentalnych i bardzo odmiennych problemów komputerowych, znanych jako lista 21 problemów NP-zupełnych Karpa . Od tego czasu wykazano NP-kompletność tysięcy innych problemów.

Dowody kompletności NP

Aby zademonstrować NP-zupełność nowego problemu , zwykłą metodą jest znalezienie znanego już problemu NP-zupełnego, który sprowadza się do . To wystarczy, aby pokazać, że jest NP-kompletny. Rzeczywiście, dla wszystkiego mamy Π ≤ P Π 2 ≤ P Π 1 (zależność redukcji wielomianu ≤ P jest przechodnia).

Aby zilustrować tę metodę, oto demonstracja NP-zupełności całkowitej optymalizacji liniowej (OLNE) przez redukcję z SAT , która jest NP-zupełna, jak wyjaśniono powyżej.

OLNE służy do określenia, czy układ nierówności liniowych ma co najmniej jedno rozwiązanie całkowite.

Przykład 2y ≥ 1, 2y - 4x ≤ 1, 2y + 4x ≤ 6 ma rozwiązanie całkowite (x = 1, y = 1); 2y ≥ 1, 2y - 4x ≤ 1, 2y + 4x ≤ 5 nie ma rozwiązania całkowitego.

SAT polega na określeniu, czy formuła logiczna w postaci normalnej koniunkcji jest zadowalająca.

Przykład można spełnić, ustawiając v 1 = prawda i v 2 = fałsz. nie jest satysfakcjonująca.

Problem OLNE jest rzeczywiście problemem NP: sprawdzenie, czy przypisanie zmiennych jest rozwiązaniem, jest osiągalne w efektywny sposób. Definiujemy funkcję redukcji f w następujący sposób. Rozważ wzór w postaci normalnej koniunkcji. Jeden definiuje się jako następujący problem OLNE:

Przykład Dla wzoru układ liniowy zawiera pięć nierówności: 0 ≤ x 1 ≤ 1, 0 ≤ x 2 ≤ 1, x 1 + x 2 ≥ 1, x 1 + (1 - x 2 ) ≥ 1 i (1 - x 1 ) + (1 - x 2 ) ≥ 1.

Widzimy wtedy, że jeśli jest satysfakcjonujące, to ustawiając:

uzyskuje się rozwiązanie problemu OLNE. I odwrotnie, jeśli problem OLNE ma rozwiązanie, to wzór można spełnić, ustawiając zmienne v i tak, że x i = 1. Tak więc funkcja f jest rzeczywiście redukcją SAT w OLNE. Ponadto f jest obliczalne w czasie wielomianowym, więc OLNE jest problemem NP-zupełnym.

Lista problemów NP-zupełnych

Niektóre znaczące problemy NP-zupełne obejmują:

Należy zauważyć, że mówienie o problemie NP w przypadku niektórych z tych problemów jest więc nadużyciem językowym, ponieważ nie są to problemy decyzyjne . Jednak problemy decyzyjne związane z problemem optymalizacji, zazwyczaj w postaci: „czy istnieje rozwiązanie kosztujące mniej niż…?” », Czy są dobrze NP-kompletne.

Diagram po prawej stronie wskazuje, w przypadku niektórych z tych problemów, w jakiej kolejności generalnie dowodzimy NP-kompletności. Należy zauważyć, że ta kolejność redukcji nie jest jedyną możliwą, ponieważ z definicji zawsze istnieje redukcja między dowolnymi dwoma problemami NP-zupełnymi. Jego celem jest uproszczenie demonstracji.

Kontrprzykłady

Czasami pozornie niewielka zmiana zamienia problem NP-zupełny w problem klasy P. Kilka przykładów:

Zakłada się, że niektóre problemy w NP, na przykład te wykorzystywane w kryptografii klucza publicznego , są ściśle związane z P i NPC. W szczególności metoda RSA opiera się na trudności z faktoryzacją liczb całkowitych . Żaden algorytm wielomianowy nie jest znany, aby go rozwiązać, ale problem należy do NP co-NP i dlatego prawdopodobnie nie jest NP-zupełny.

Z drugiej strony istnieją trudniejsze problemy decyzyjne niż problemy NP-zupełne. Niektóre problemy są nierozstrzygalne , na przykład problem z zamykaniem . Niektóre problemy rozstrzygalne wymagają spacji wykładniczej i dlatego nie są w NP, na przykład porównanie języków oznaczonych dwoma wyrażeniami regularnymi, w których jeden dopuszcza, oprócz zwykłych operacji, operację kwadratową (jest to kompletny problem w EXPSPACE ).

Rozkład

Dokładne metody

NP-kompletność tylko daje wyobrażenie o trudności problemu w najgorszym przypadku. Innymi słowy, nawet jeśli nie wiemy, jak szybko rozwiązać wszystkie przypadki problemu NP-zupełnego, czasami jest to możliwe w przypadku niektórych z nich.

W związku z tym algorytmy rozdzielania i oceny nie wielomianowe mogą mieć rozsądny czas wykonania dla stosunkowo dużych wystąpień.

Jeśli trzeba rozwiązać tylko podklasę możliwych instancji, problem może stać się łatwy. Na przykład poszukiwanie maksymalnego niezależnego (NP-zupełnego) jest możliwe w czasie wielomianowym na grafach dwudzielnych lub innych rodzinach grafów.

W niektórych przypadkach wiemy, jak pokazać, że przypadkowe przypadki problemu NP-zupełnego są łatwe. Na przykład :

Wreszcie podejście do sparametryzowanej złożoności polega na zidentyfikowaniu parametru, który, jeśli pozostaje mały, umożliwia szybkie rozwiązanie problemu. Zwłaszcza algorytmy FPT w parametrze k rozwiązują problem w czasie proporcjonalnym do iloczynu dowolnej funkcji k i wielomianu wielkości instancji, co zapewnia algorytm wielomianu, gdy k jest ustalone.

Przybliżone metody

Gdy dokładne metody rozwiązywania nie mają zastosowania, algorytmy aproksymacyjne (lub w przypadku ich braku heurystyki ) umożliwiają znalezienie rozwiązań przybliżających optymalne w rozsądnym czasie dla pewnej liczby problemów NP-zupełnych.

Słaba NP-kompletność

Jak wspomniano powyżej, istnieje kilka sposobów kodowania przypadków problemu w postaci słów (składających się z skończonej serii symboli określonego i skończonego alfabetu). Wybór szczególnie długiego kodowania w sztuczny sposób zmniejsza złożoność problemu, ponieważ jest on wyrażany jako funkcja rozmiaru danych wejściowych.

W szczególności liczba całkowita n może być zakodowana na log 2 n symbolach, jeśli jest zapisana na podstawie 2 (lub wyższej), ale zajmuje n symboli, jeśli jest zapisana w jednostce jednoargumentowej , która jest wykładniczo większa.

Problemy, które można rozwiązać w czasie wielomianowym, gdy ich dane wejściowe są kodowane jednoargumentowo, nazywane są problemami „słabego NP-zupełnego”. Do tej kategorii zalicza się problem plecaka i jego warianty. Rzeczywiście, można je rozwiązać przez programowanie dynamiczne w czasie wielomianowym w liczbie obiektów i największej ilości interweniującej we wpisie.

W przeciwieństwie do tego, problemy, które w tym przypadku pozostają NP-zupełne, są uważane za silne . Tak jest w przypadku większości innych problemów wymienionych w tym artykule, takich jak SAT, CLICK, kolorowanie wykresów itp.

Uwagi i odniesienia

  1. Stephen Cook , The złożoność procedur dowodzenia twierdzeń , Proceedings of the Third Annual ACM Symposium on Theory of Computing, strony 151–158, 1971.
  2. W tym czasie wymiana naukowa między światem zachodnim a ZSRR była bardzo słaba.
  3. Aby być precyzyjnym, rozmiar rozwiązania musi być wielomianowo ograniczony do rozmiaru wejścia, co jest zawsze możliwe tutaj.
  4. Albert R. Meyer i Larry Stockmeyer , Problem równoważności dla wyrażeń regularnych z kwadratem wymaga przestrzeni wykładniczej , 13. Sympozjum IEEE na temat przełączania i teorii automatów , październik 1972, s. 125-129.
  5. Demonstracja zawarta jest w cytowanej powyżej pracy Wilfa.
  6. Jean-Paul Delahaye , Inteligencja i obliczenia, Belin - Pour la Science, 2002, ( ISBN  2-84245-040-X ) (rozdział 1, „Prawa wszystko albo nic”).
  7. D. Angluin i LG Valiant, Szybkie algorytmy probabilistyczne dla obwodów hamiltonowskich i dopasowań , Journal of Computer and System Sciences , tom 18, wydanie 2, str. 155-193,1979.

Zobacz też

Powiązane artykuły

Linki zewnętrzne

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">