Klasa NP, oznaczająca „niedeterministyczny czas wielomianowy”, jest podstawowym pojęciem w teorii złożoności obliczeniowej, poddziedzinie informatyki teoretycznej. Aby zrozumieć NP, należy najpierw uchwycić pojęcie problemów decyzyjnych, czyli pytań, na które można odpowiedzieć tak lub nie. Język w tym kontekście odnosi się do zestawu ciągów znaków w pewnym alfabecie, gdzie każdy ciąg koduje wystąpienie problemu decyzyjnego.
Mówi się, że język (L) należy do NP, jeśli istnieje weryfikator w czasie wielomianowym dla (L). Weryfikator to algorytm deterministyczny (V), który pobiera dwa dane wejściowe: instancję (x) i certyfikat (y). Zaświadczenie (y) jest również znane jako „świadek” lub „dowód”. Weryfikator (V) sprawdza, czy certyfikat (y) potwierdza przynależność (x) do języka (L). Formalnie język (L) należy do NP, jeśli istnieje algorytm czasu wielomianowego (V) i wielomian (p(n)) taki, że dla każdego ciągu (x w L) istnieje ciąg (y) z ( |y|.równ. p(|x|)) i (V(x, y) = 1). I odwrotnie, dla każdego ciągu (x not w L) nie ma ciągu (y) takiego, że (V(x, y) = 1).
Aby wyjaśnić tę koncepcję, rozważ dobrze znany problem „spełnialności logicznej” (SAT). Problem SAT pyta, czy istnieje takie przypisanie wartości prawdy do zmiennych w danej formule boolowskiej, że formuła daje w wyniku prawdę. Problem SAT występuje w NP, ponieważ mając wzór boolowski (phi) i przypisanie (alfa) wartości logicznych do jego zmiennych, można sprawdzić w czasie wielomianowym, czy (alfa) spełnia (phi). Tutaj instancja ( x ) jest formułą boolowską ( phi ), a certyfikat ( y ) jest przypisaniem ( alfa ). Weryfikator (V) sprawdza, czy (alfa) sprawia, że (phi) jest prawdziwe, co można zrobić w czasie wielomianowym w odniesieniu do rozmiaru (phi).
Innym ilustrującym przykładem jest problem „ścieżki Hamiltona”. Problem ten dotyczy tego, czy w danym grafie istnieje ścieżka, która odwiedza każdy wierzchołek dokładnie raz. Problem ścieżki hamiltonowskiej występuje także w NP, ponieważ mając graf ( G ) i ciąg wierzchołków ( P ), można sprawdzić w czasie wielomianowym, czy ( P ) jest ścieżką hamiltonowską w ( G ). W tym przypadku instancją ( x ) jest graf ( G ), a certyfikatem ( y ) jest ciąg wierzchołków ( P ). Weryfikator (V) sprawdza, czy (P) tworzy ścieżkę Hamiltona, co można zrobić w czasie wielomianowym względem rozmiaru (G).
Koncepcja weryfikowalności w czasie wielomianowym jest ważna, ponieważ zapewnia sposób charakteryzowania problemów, które są skutecznie sprawdzalne, nawet jeśli znalezienie rozwiązania może być obliczeniowo niewykonalne. Prowadzi to do słynnego pytania, czy ( P = NP ), które pyta, czy każdy problem, którego rozwiązanie można zweryfikować w czasie wielomianowym, może być również rozwiązany w czasie wielomianowym. Klasa ( P ) składa się z problemów decyzyjnych, które można rozwiązać w czasie wielomianowym za pomocą deterministycznej maszyny Turinga. Jeśli ( P = NP ), oznaczałoby to, że każdy problem z weryfikatorem w czasie wielomianowym ma również rozwiązywacz w czasie wielomianowym. To pytanie pozostaje jednym z najważniejszych otwartych problemów w informatyce.
Jedną z kluczowych właściwości NP jest to, że jest on zamknięty pod wielomianowymi redukcjami czasowymi. Redukcja wielomianu w czasie z języka ( L_1 ) do języka ( L_2 ) jest wielomianową funkcją obliczeniową ( f ) taką, że ( x w L_1 ) wtedy i tylko wtedy, gdy ( f(x) w L_2). Jeśli istnieje wielomianowa redukcja w czasie od ( L_1 ) do ( L_2 ) i ( L_2 ) jest w NP, to ( L_1 ) również jest w NP. Właściwość ta odgrywa zasadniczą rolę w badaniu NP-zupełności, która identyfikuje „najtrudniejsze” problemy w NP. Problem jest NP-zupełny, jeśli występuje w NP i każdy problem w NP można do niego sprowadzić w czasie wielomianowym. Problem SAT był pierwszym problemem, któremu udowodniono NP-zupełność i służy jako podstawa do udowodnienia NP-zupełności innych problemów.
Aby lepiej zilustrować koncepcję sprawdzalności w czasie wielomianowym, rozważmy problem „Suma podzbioru”. Problem ten dotyczy tego, czy istnieje podzbiór danego zbioru liczb całkowitych, którego suma daje określoną wartość docelową. Problem sumy podzbiorów występuje w NP, ponieważ mając zbiór liczb całkowitych ( S ), wartość docelową ( t ) i podzbiór ( S' ) ( S ), można sprawdzić w czasie wielomianowym, czy suma elementów w ( S' ) równa się ( t ). Tutaj instancja ( x ) to para ( (S, t) ), a certyfikat ( y ) to podzbiór ( S' ). Weryfikator (V) sprawdza, czy suma elementów w (S') jest równa (t), co można zrobić w czasie wielomianowym ze względu na wielkość (S).
Znaczenie weryfikowalności w czasie wielomianowym wykracza poza rozważania teoretyczne. W praktyce oznacza to, że w przypadku problemów w NP, jeśli zostanie dostarczone proponowane rozwiązanie (certyfikat), można je sprawnie sprawdzić. Ma to istotne implikacje dla protokołów kryptograficznych, problemów optymalizacji i różnych dziedzin, w których weryfikacja poprawności rozwiązania jest ważna.
Podsumowując, klasa NP obejmuje problemy decyzyjne, dla których zaproponowane rozwiązanie można zweryfikować w czasie wielomianowym za pomocą algorytmu deterministycznego. Koncepcja ta ma fundamentalne znaczenie w teorii złożoności obliczeniowej i ma głębokie implikacje zarówno dla teoretycznych, jak i praktycznych aspektów informatyki. Badanie NP, sprawdzalności w czasie wielomianowym i pokrewnych koncepcji, takich jak NP-kompletność, w dalszym ciągu jest tętniącym życiem i krytycznym obszarem badań.
Inne niedawne pytania i odpowiedzi dotyczące Złożoność:
- Czy klasa PSPACE nie jest równa klasie EXPSPACE?
- Czy klasa złożoności P jest podzbiorem klasy PSPACE?
- Czy możemy udowodnić, że klasy Np i P są takie same, znajdując efektywne rozwiązanie wielomianowe dla dowolnego problemu zupełnego NP w deterministycznej TM?
- Czy klasa NP może być równa klasie EXPTIME?
- Czy w PSPACE występują problemy, dla których nie jest znany algorytm NP?
- Czy problem SAT może być problemem NP-zupełnym?
- Czy problem może należeć do klasy złożoności NP, jeśli istnieje niedeterministyczna maszyna Turinga, która rozwiąże go w czasie wielomianowym
- Czy P i NP to w rzeczywistości ta sama klasa złożoności?
- Czy każdy język bezkontekstowy jest w klasie złożoności P?
- Czy istnieje sprzeczność pomiędzy definicją NP jako klasy problemów decyzyjnych z weryfikatorami wielomianowymi a faktem, że problemy w klasie P również posiadają weryfikatory wielomianowe?
Zobacz więcej pytań i odpowiedzi w sekcji Złożoność