Problem P vs NP
Problem P vs NP (także pytanie, czy P = NP) – nierozwiązany problem teorii złożoności obliczeniowej dotyczący tego, czy klasa złożoności P jest równa klasie NP. W ujęciu nieformalnym pyta, czy każdy problem, dla którego poprawność podanego rozwiązania można szybko sprawdzić, można również szybko rozwiązać. Słowo „szybko” oznacza tu istnienie algorytmu działającego w czasie wielomianowym względem rozmiaru danych wejściowych[1][2].
Problem należy do siedmiu problemów milenijnych wskazanych przez Clay Mathematics Institute; za jego rozwiązanie przewidziano nagrodę miliona dolarów[2]. Jest powszechnie uważany za jedno z najważniejszych otwartych pytań informatyki teoretycznej[3]. Mimo tej rangi nie należy utożsamiać czasu wielomianowego z praktyczną łatwością: algorytm wielomianowy może mieć zbyt duże stałe lub wykładniki, a niektóre problemy spoza tej klasy mogą być rozwiązywane skutecznie w wielu typowych przypadkach[4].

Sformułowanie
[edytuj | edytuj kod]Klasa P obejmuje problemy decyzyjne, które można rozwiązać na deterministycznym modelu obliczeń w czasie wielomianowym. Formalnie ujmuje się je zwykle jako języki nad skończonym alfabetem, akceptowane przez deterministyczną maszynę Turinga w liczbie kroków ograniczonej przez wielomian od długości wejścia[5]. Klasa NP obejmuje problemy decyzyjne, dla których odpowiedź „tak” można zweryfikować w czasie wielomianowym, jeżeli podany jest odpowiedni certyfikat rozwiązania. Definicja przez certyfikaty jest równoważna standardowej definicji przez niedeterministyczną maszynę Turinga działającą w czasie wielomianowym. Każdy problem z P należy do NP, ponieważ jeżeli problem można szybko rozwiązać, to można też szybko sprawdzić poprawność odpowiedzi przez wykonanie algorytmu rozwiązującego[6].
Pytanie P versus NP dotyczy tego, czy zachodzi również inkluzja odwrotna, czyli czy P = NP. Jeżeli P = NP, każdy problem z szybko weryfikowalnym rozwiązaniem miałby także algorytm znajdujący rozwiązanie w czasie wielomianowym. Jeżeli P ≠ NP, istnieją problemy, których rozwiązania da się szybko sprawdzać, ale których nie da się rozwiązywać w czasie wielomianowym.
Przykład intuicyjny
[edytuj | edytuj kod]Typowym przykładem jest problem spełnialności formuł logicznych. Dla danej formuły rachunku zdań łatwo sprawdzić, czy konkretne przypisanie wartości logicznych spełnia tę formułę: wystarczy podstawić wartości zmiennych i obliczyć wynik. Znacznie trudniejsze może być znalezienie takiego przypisania lub stwierdzenie, że ono nie istnieje. Problem spełnialności, znany jako SAT, jest centralnym przykładem problemu NP-zupełnego[7]. Z problemem SAT wiąże się także silniejsza od samej hipotezy P ≠ NP hipoteza czasu wykładniczego, według której 3-SAT nie ma algorytmu podwykładniczego w liczbie zmiennych, tj. działającego w czasie ; Impagliazzo, Paturi i Zane pokazali, że podwykładnicze algorytmy dla wielu naturalnych problemów NP-zupełnych są ze sobą powiązane przez redukcje zachowujące taki czas działania[8].
Podobny kontrast między łatwym sprawdzeniem a trudnym znalezieniem rozwiązania występuje w wielu łamigłówkach i zadaniach kombinatorycznych. Uzupełnioną planszę uogólnionego sudoku albo wypełniony kwadrat łaciński można zweryfikować mechanicznie, sprawdzając wiersze, kolumny i dodatkowe warunki, lecz problem istnienia takiego wypełnienia dla uogólnionego sudoku oraz problem uzupełniania częściowych kwadratów łacińskich są NP-zupełne[9][10].
Historia
[edytuj | edytuj kod]Wcześniejsze intuicje podobnych trudności pojawiały się jeszcze przed formalnym zdefiniowaniem klas P i NP. W 1955 roku John Nash w liście do National Security Agency rozważał zależność między długością klucza kryptograficznego a trudnością jego złamania[11]. Rok później Kurt Gödel pytał Johna von Neumanna o możliwość szybkiego rozstrzygania problemów dowodzenia twierdzeń; później zwracano uwagę, że list ten antycypował część motywacji stojących za problemem P versus NP[12].
Pierwszym naturalnym problemem, dla którego wykazano NP-zupełność, był problem spełnialności formuł logicznych. Wynik ten, znany jako twierdzenie Cooka-Levina, został sformułowany przez Stephena Cooka w 1971 roku, a niezależnie w pokrewnej postaci przez Leonida Levina[7][13]. W 1972 roku Richard Karp pokazał metodę sprowadzania SAT do wielu innych problemów kombinatorycznych i wyodrębnił 21 klasycznych problemów NP-zupełnych, co utrwaliło redukcje wielomianowe jako podstawowe narzędzie badania P vs NP[14].
NP-zupełność i NP-trudność
[edytuj | edytuj kod]W badaniu problemu P versus NP kluczową rolę odgrywają problemy NP-zupełne. Są to problemy należące do NP, do których każdy problem z NP można sprowadzić za pomocą redukcji wielomianowej. W typowym ujęciu taka redukcja jest funkcją obliczalną w czasie wielomianowym, która przekształca instancje jednego problemu w instancje drugiego, zachowując odpowiedź „tak” albo „nie”[15]. Oznacza to, że szybki algorytm dla dowolnego problemu NP-zupełnego dawałby szybkie algorytmy dla wszystkich problemów z NP. W konsekwencji wykazanie, że choć jeden problem NP-zupełny należy do P, dowiodłoby równości P = NP[3].
Pojęciem szerszym jest NP-trudność. Problem NP-trudny to taki, do którego można zredukować każdy problem z NP; nie musi on jednak sam należeć do NP ani nawet być problemem decyzyjnym. Problem NP-zupełny jest więc jednocześnie NP-trudny i należy do NP.
Powiązane pytania dotyczą tego, czy równość P = NP pociągałaby za sobą zapadnięcie się szerszych klas złożoności. W standardowym ujęciu gdyby P było równe NP, to równe byłyby także NP i co-NP, a hierarchia wielomianowa zapadłaby się do P. Ponieważ większość badaczy spodziewa się, że hierarchia ta nie zapada się do tak niskiego poziomu, jest to jeden z powodów ostrożnego traktowania hipotezy P = NP[16].
Problemy NP-pośrednie
[edytuj | edytuj kod]Jeżeli P ≠ NP, nie wszystkie problemy z NP muszą być NP-zupełne. Twierdzenie Ladnera pokazuje, że przy tym założeniu istnieją problemy pośrednie: należące do NP, ale nienależące ani do P, ani do klasy problemów NP-zupełnych. Jako kandydatów na takie problemy często wskazuje się m.in. problem izomorfizmu grafów oraz decyzyjne wersje problemów takich jak logarytm dyskretny i rozkład liczby całkowitej na czynniki, choć ich dokładne miejsce w klasycznej hierarchii złożoności pozostaje otwarte[17][18].
Dla izomorfizmu grafów znane są dodatkowe przesłanki strukturalne: gdyby problem ten był NP-zupełny, hierarchia wielomianowa zapadłaby się do drugiego poziomu, co uważa się za mało prawdopodobne[19]. Znane algorytmy dla tego problemu nie dają jednak klasycznego algorytmu wielomianowego; istotnym postępem był quasi-wielomianowy algorytm László Babaiego[20].
Decyzyjną wersję faktoryzacji można sformułować jako pytanie, czy dana liczba ma nietrywialny dzielnik mniejszy od zadanego progu, tj. czy dla danych liczb naturalnych i istnieje dzielnik liczby taki, że . Problem ten należy do NP i co-NP, a nawet do klas UP i co-UP; gdyby był NP-zupełny, oznaczałoby to zapadnięcie się hierarchii wielomianowej do pierwszego poziomu[18]. Z drugiej strony najlepsze klasyczne algorytmy faktoryzacji nie są wielomianowe, a algorytm Shora pokazuje wielomianową faktoryzację dopiero w modelu obliczeń kwantowych[21]. Dla kontrastu samo rozpoznawanie liczb pierwszych, blisko związane z faktoryzacją, ma znany deterministyczny algorytm wielomianowy dzięki wynikowi Agrawala, Kayala i Saxeny z 2004 roku[22]. Dlatego faktoryzacja dobrze ilustruje, że problemy ważne kryptograficznie mogą znajdować się poza znanym podziałem na P i NP-zupełne.
Problemy trudniejsze i pokrewne
[edytuj | edytuj kod]Pytanie P vs NP nie oznacza, że wszystkie problemy obliczeniowe mieszczą się w jednej z tych dwóch klas. Z twierdzeń hierarchii czasowej wynika, że P jest właściwie zawarte w EXPTIME, więc istnieją problemy rozwiązywalne w czasie wykładniczym, których nie da się rozwiązać w czasie wielomianowym[6]. W literaturze jako przykłady naturalnych problemów o bardzo wysokiej złożoności analizowano m.in. uogólnione wersje gier planszowych oraz rozstrzyganie formuł arytmetyki Presburgera[23][24].
Z tego powodu problem P vs NP jest tylko jednym, choć centralnym, pytaniem o granice efektywnego obliczania. Rozstrzygnięcie P ≠ NP oddzieliłoby P od części NP, ale nie wyczerpałoby klasyfikacji problemów jeszcze trudniejszych, problemów nierozstrzygalnych ani zadań liczbowych i aproksymacyjnych, które wymagają osobnych narzędzi teorii złożoności.
Samo pytanie P vs NP dotyczy problemów decyzyjnych, czyli takich z odpowiedzią „tak” albo „nie”. W teorii złożoności bada się jednak również problemy liczenia rozwiązań. Klasa #P obejmuje zadania, w których trzeba policzyć liczbę certyfikatów spełniających warunek; Leslie Valiant pokazał, że takie problemy mogą być bardzo trudne nawet wtedy, gdy samo stwierdzenie istnienia rozwiązania jest łatwe[25]. Z klasycznym pytaniem P vs NP wiążą się także wyniki o zliczaniu i aproksymacji, w tym twierdzenie Tody, wiążące klasę PP z hierarchią wielomianową, oraz twierdzenie PCP, które precyzuje trudność znajdowania rozwiązań bliskich optymalnym[26][27].
Część pokrewnych problemów wykracza poza klasyczny model deterministycznej maszyny Turinga używany w definicjach P i NP. W szczególności obliczenia losowe i kwantowe prowadzą do osobnych klas złożoności; nie są one po prostu wariantem pytania P vs NP, lecz pokazują, że pojęcie efektywnego obliczania zależy także od przyjętego modelu. Obliczenia losowe opisuje m.in. klasa BPP, a standardowym punktem odniesienia dla obliczeń kwantowych jest klasa BQP, obejmująca problemy rozwiązywalne przez komputer kwantowy z ograniczonym prawdopodobieństwem błędu[28]. W parametryzowanej teorii złożoności podobną rolę odgrywa pytanie FPT kontra W[1], a w algebraicznej teorii złożoności pytanie VP kontra VNP[29][30].
Czas wielomianowy a praktyczna obliczalność
[edytuj | edytuj kod]Czas wielomianowy jest w teorii złożoności podstawowym formalnym progiem efektywnego obliczania, ale nie jest tym samym co praktyczna łatwość. Algorytm wielomianowy może mieć bardzo duży wykładnik lub stałe ukryte w notacji asymptotycznej, a twierdzenie o samym istnieniu takiego algorytmu mogłoby nie dawać od razu użytecznej procedury obliczeniowej[31][32].
Również odwrotna intuicja bywa zawodna: problem może mieć złe ograniczenia w najgorszym przypadku, a mimo to dobrze działać w wielu zastosowaniach. Dla niektórych reguł wyboru pivota metoda sympleks ma wykładnicze przykłady najgorszego przypadku, choć w praktyce często jest skuteczna; samo programowanie liniowe ma natomiast znane algorytmy wielomianowe[33][34]. Problem P vs NP nie rozstrzyga też automatycznie złożoności średniej: możliwe jest, że problem trudny w najgorszym przypadku ma większość instancji łatwych w praktyce. Russell Impagliazzo opisał kilka hipotetycznych „światów” złożoności średniej, od pełnej algorytmicznej łatwości po świat kryptograficznie trudnych instancji[35].
Znaczenie
[edytuj | edytuj kod]Rozwiązanie problemu miałoby daleko idące konsekwencje dla informatyki teoretycznej i wielu zastosowań. Jego znaczenie wynika z tego, że wiele naturalnych zadań optymalizacyjnych, logicznych i kombinatorycznych można wyrazić jako problemy w NP albo przez redukcje powiązać z problemami NP-zupełnymi[2][3].
Konsekwencje P = NP
[edytuj | edytuj kod]Dowód P = NP, zwłaszcza gdyby prowadził do praktycznych algorytmów, mógłby radykalnie zmienić optymalizację, automatyczne dowodzenie twierdzeń, projektowanie algorytmów i kryptografię. Samo formalne P = NP nie musiałoby automatycznie oznaczać praktycznego złamania współczesnych systemów kryptograficznych, ponieważ dowód mógłby nie dawać użytecznego algorytmu, jednak efektywny algorytm dla problemów NP-zupełnych miałby bardzo poważne konsekwencje[2].
Praktyczny algorytm dla szerokiej klasy NP-zupełnej mógłby wpływać nie tylko na kryptografię, lecz także na optymalizację i nauki przyrodnicze, ponieważ problemy NP-zupełne pojawiają się m.in. w programowaniu całkowitoliczbowym i problemie komiwojażera[15] oraz uproszczonych modelach zwijania białek[36]. W matematyce teoretycznej praktyczny algorytm znajdowania dowodów o rozsądnej długości mógłby zmienić sposób rozwiązywania problemów, ponieważ poprawność formalnego dowodu da się sprawdzić w czasie wielomianowym. Tę konsekwencję podkreślali m.in. Gödel w liście do von Neumanna oraz Stephen Cook w opisie problemu milenijnego[37][2].
Konsekwencje P ≠ NP
[edytuj | edytuj kod]Dowód P ≠ NP potwierdziłby formalnie, że istnieje zasadnicza różnica między szybkim sprawdzaniem a szybkim znajdowaniem rozwiązań. Miałby przede wszystkim znaczenie teoretyczne, ale uporządkowałby kierunki badań nad problemami trudnymi: dla wielu naturalnych zadań nie należałoby oczekiwać algorytmu rozwiązującego wszystkie przypadki w czasie wielomianowym. Wzmacniałoby to znaczenie algorytmów przybliżonych, heurystyk i analiz ograniczonych klas przypadków[38].
Status badań
[edytuj | edytuj kod]Opinie badaczy i zgłaszane rozwiązania
[edytuj | edytuj kod]Nie jest znany dowód ani P = NP, ani P ≠ NP. Wśród badaczy dominuje przekonanie, że P ≠ NP, ale pozostaje ono hipotezą, a nie twierdzeniem. W ankiecie Williama Gasarcha z 2018 roku większość respondentów, a wśród osób zaklasyfikowanych jako eksperci prawie wszyscy, deklarowała oczekiwanie, że P ≠ NP; autor podkreślał jednak, że takie ankiety opisują opinie środowiska, a nie stanowią dowodu matematycznego[39]. Lance Fortnow podkreślał, że mimo ogromnej liczby prac nad problemami NP-zupełnymi nie znaleziono algorytmu wielomianowego dla żadnego z nich ani dowodu, że taki algorytm nie istnieje[3].
Ze względu na rangę problemu regularnie pojawiają się deklarowane rozwiązania, lecz zestawienia takich prób traktują je jako niezweryfikowane albo obalone, a żaden dowód nie został przyjęty przez środowisko[40].
Bariery dowodowe
[edytuj | edytuj kod]Badania nad problemem ujawniły także ograniczenia wielu naturalnych metod dowodzenia. W 1975 roku Theodore Baker, John Gill i Robert Solovay pokazali, że istnieją relatywizowane światy obliczeń, w których zachodzi P = NP, oraz takie, w których P ≠ NP. Oznacza to, że techniki dowodowe zachowujące się jednakowo względem wszystkich wyroczni nie mogą same rozstrzygnąć problemu[41]. Później wskazywano kolejne bariery, m.in. dla tzw. dowodów naturalnych w złożoności obwodowej oraz dla algebryzacji, co częściowo tłumaczy, dlaczego standardowe podejścia do dolnych ograniczeń złożoności nie wystarczyły dotąd do rozwiązania problemu[42][43].
Rozważano również możliwość, że problem mógłby być niezależny od standardowych systemów aksjomatycznych. Znane wyniki w tym kierunku są jednak ostrożne: proste scenariusze niezależności od słabszych teorii arytmetyki pociągałyby za sobą bardzo mocne konsekwencje algorytmiczne, a analizy metamatematyczne muszą być zgodne z istnieniem albo nieistnieniem efektywnych algorytmów dla problemów z NP[44][45].
Charakterystyki logiczne
[edytuj | edytuj kod]Problem P vs NP ma również charakter logiczny. Twierdzenie Fagina opisuje klasę NP jako własności struktur skończonych wyrażalne w egzystencjalnej logice drugiego rzędu, a późniejsze wyniki teorii złożoności opisowej wiążą P z logiką pierwszego rzędu rozszerzoną o operator najmniejszego punktu stałego, przy uporządkowanych strukturach skończonych. W tym języku pytanie P vs NP można odczytać jako pytanie, czy egzystencjalne kwantyfikowanie po relacjach daje większą siłę wyrazu niż odpowiednia logika punktu stałego[46][47]. W tym samym nurcie Elvira Mayordomo zwraca uwagę, że po dodaniu relacji porządku klasy złożoności można traktować jako klasy języków logicznych nad strukturami skończonymi, a równość P = NP byłaby równoważna temu, że egzystencjalna logika drugiego rzędu nie opisuje więcej takich języków niż logika punktu stałego[48].
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ Explained: P vs. NP. MIT News, 2009-10-29. [dostęp 2026-05-09]. (ang.).
- ↑ a b c d e Stephen Cook, The P Versus NP Problem, Clay Mathematics Institute, kwiecień 2000 [dostęp 2026-05-09] (ang.).
- ↑ a b c d Lance Fortnow. The status of the P versus NP problem. „Communications of the ACM”. 52 (9), s. 78–86, 2009. DOI: 10.1145/1562164.1562186. (ang.).
- ↑ Sanjeev Arora, Boaz Barak: Computational Complexity: A Modern Approach. Cambridge University Press, 2009, s. 2–3. ISBN 978-0-521-42426-4. (ang.).
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman: Introduction to Automata Theory, Languages, and Computation. Wyd. 3. Pearson/Addison Wesley, 2006. ISBN 978-0-321-45536-9. (ang.).
- ↑ a b Michael Sipser: Introduction to the Theory of Computation. Wyd. 3. Cengage Learning, 2013. ISBN 978-1-133-18779-0. (ang.).
- ↑ a b The complexity of theorem-proving procedures. W: Stephen A. Cook: Proceedings of the Third Annual ACM Symposium on Theory of Computing. Association for Computing Machinery, 1971, s. 151–158. DOI: 10.1145/800157.805047. ISBN 978-1-4503-7464-4. (ang.).
- ↑ Russell Impagliazzo, Ramamohan Paturi, Francis Zane. Which Problems Have Strongly Exponential Complexity?. „Journal of Computer and System Sciences”. 63 (4), s. 512–530, 2001. DOI: 10.1006/jcss.2001.1774. [dostęp 2026-05-09]. (ang.).
- ↑ Takayuki Yato, Takahiro Seta. Complexity and Completeness of Finding Another Solution and Its Application to Puzzles. „IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences”. E86-A (5), s. 1052–1060, 2003. [dostęp 2026-05-09]. (ang.).
- ↑ Charles J. Colbourn. The complexity of completing partial Latin squares. „Discrete Applied Mathematics”. 8 (1), s. 25–30, 1984. DOI: 10.1016/0166-218X(84)90075-1. (ang.).
- ↑ National Security Agency, Letters from John Nash, National Security Agency, 26 kwietnia 2012 [dostęp 2026-05-09] (ang.).
- ↑ Juris Hartmanis. Gödel, von Neumann, and the P = NP problem. „Bulletin of the European Association for Theoretical Computer Science”. 38. s. 101–107. [dostęp 2026-05-09]. (ang.).
- ↑ L. A. Levin. Универсальные задачи перебора. „Проблемы передачи информации”. 9 (3), s. 115–116, 1973. (ros.).
- ↑ Richard M. Karp. Reducibility among combinatorial problems. „Complexity of Computer Computations”, s. 85–103, 1972. DOI: 10.1007/978-1-4684-2001-2_9. (ang.).
- ↑ a b Michael R. Garey, David S. Johnson: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, 1979. ISBN 978-0-7167-1045-5. (ang.).
- ↑ Christos H. Papadimitriou: Computational Complexity. Addison-Wesley, 1994. ISBN 978-0-201-53082-7. (ang.).
- ↑ Richard E. Ladner. On the structure of polynomial time reducibility. „Journal of the ACM”. 22 (1), s. 151–171, 1975. DOI: 10.1145/321864.321877. (ang.).
- ↑ a b Lance Fortnow: Complexity Class of the Week: Factoring. 2002-09-13. [dostęp 2026-05-09]. (ang.).
- ↑ Uwe Schöning. Graph isomorphism is in the low hierarchy. „Journal of Computer and System Sciences”. 37 (3), s. 312–323, 1988. DOI: 10.1016/0022-0000(88)90010-4. (ang.).
- ↑ Group, graphs, algorithms: the graph isomorphism problem. W: László Babai: Proceedings of the International Congress of Mathematicians—Rio de Janeiro 2018. Vol. IV. Invited lectures. World Scientific, 2018, s. 3319–3336. MR 3966534. (ang.).
- ↑ Peter W. Shor. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. „SIAM Journal on Computing”. 26 (5), s. 1484–1509, 1997. DOI: 10.1137/S0097539795293172. (ang.).
- ↑ Manindra Agrawal, Neeraj Kayal, Nitin Saxena. PRIMES is in P. „Annals of Mathematics”. 160 (2), s. 781–793, 2004. DOI: 10.4007/annals.2004.160.781. [dostęp 2026-05-09]. (ang.).
- ↑ Aviezri S. Fraenkel, David Lichtenstein. Computing a perfect strategy for n × n chess requires time exponential in n. „Journal of Combinatorial Theory, Series A”. 31 (2), s. 199–214, 1981. DOI: 10.1016/0097-3165(81)90016-9. (ang.).
- ↑ Michael J. Fischer, Michael O. Rabin. Super-Exponential Complexity of Presburger Arithmetic. „Proceedings of the SIAM-AMS Symposium in Applied Mathematics”. 7, s. 27–41, 1974. [dostęp 2026-05-09]. (ang.).
- ↑ Leslie G. Valiant. The complexity of enumeration and reliability problems. „SIAM Journal on Computing”. 8 (3), s. 410–421, 1979. DOI: 10.1137/0208032. (ang.).
- ↑ Seinosuke Toda. PP is as hard as the polynomial-time hierarchy. „SIAM Journal on Computing”. 20 (5), s. 865–877, 1991. DOI: 10.1137/0220053. (ang.).
- ↑ Sanjeev Arora, Carsten Lund, Rajeev Motwani, Madhu Sudan i inni. Proof verification and the hardness of approximation problems. „Journal of the ACM”. 45 (3), s. 501–555, 1998. DOI: 10.1145/278298.278306. (ang.).
- ↑ Ethan Bernstein, Umesh Vazirani. Quantum complexity theory. „SIAM Journal on Computing”. 26 (5), s. 1411–1473, 1997. DOI: 10.1137/S0097539796300921. (ang.).
- ↑ Rodney G. Downey, Michael R. Fellows: Parameterized Complexity. Springer, 1999. ISBN 978-0-387-94883-6. (ang.).
- ↑ Completeness classes in algebra. W: Leslie G. Valiant: Proceedings of the 11th Annual ACM Symposium on Theory of Computing. Association for Computing Machinery, 1979, s. 249–261. DOI: 10.1145/800135.804419. (ang.).
- ↑ Harvey M. Friedman. The status of P versus NP and related problems. „Communications of the ACM”. 27 (1), s. 44–51, 1984. DOI: 10.1145/69605.357990. (ang.).
- ↑ Stephen Smale. Mathematical problems for the next century. „The Mathematical Intelligencer”. 20 (2), s. 7–15, 1998. DOI: 10.1007/BF03025291. (ang.).
- ↑ How good is the simplex algorithm?. W: Victor Klee, George J. Minty: Inequalities III. Academic Press, 1972, s. 159–175. (ang.).
- ↑ A computational view of interior point methods. W: Jacek Gondzio, Tamás Terlaky: Advances in Linear and Integer Programming. Oxford University Press, 1996, s. 103–144. (ang.).
- ↑ Russell Impagliazzo: A personal view of average-case complexity. 10th Annual Structure in Complexity Theory Conference, 1995. [dostęp 2026-05-09]. (ang.).
- ↑ Bonnie Berger, Tom Leighton. Protein folding in the hydrophobic-hydrophilic (HP) model is NP-complete. „Journal of Computational Biology”. 5 (1), s. 27–40, 1998. DOI: 10.1089/cmb.1998.5.27. PMID: 9541869. (ang.).
- ↑ David S. Johnson. A Brief History of NP-Completeness, 1954–2012. „Documenta Mathematica”, s. 359–376, 2012. [dostęp 2026-05-09]. (ang.).
- ↑ L. R. Foulds. The Heuristic Problem-Solving Approach. „Journal of the Operational Research Society”. 34 (10), s. 927–934, 1983. DOI: 10.2307/2580891. (ang.).
- ↑ William I. Gasarch: Guest Column: The Third P =? NP Poll. SIGACT News, 2019. [dostęp 2026-05-09]. (ang.).
- ↑ Gerhard J. Woeginger: The P-versus-NP page. [dostęp 2026-05-09]. (ang.).
- ↑ Theodore Baker, John Gill, Robert Solovay. Relativizations of the P =? NP Question. „SIAM Journal on Computing”. 4 (4), s. 431–442, 1975. DOI: 10.1137/0204037. (ang.).
- ↑ Alexander A. Razborov, Steven Rudich. Natural proofs. „Journal of Computer and System Sciences”. 55 (1), s. 24–35, 1997. DOI: 10.1006/jcss.1997.1494. (ang.).
- ↑ Scott Aaronson, Avi Wigderson. Algebrization: A New Barrier in Complexity Theory. „Proceedings of the 40th Annual ACM Symposium on Theory of Computing”, s. 731–740, 2008. DOI: 10.1145/1374376.1374481. [dostęp 2026-05-09]. (ang.).
- ↑ Shai Ben-David, Shai Halevi, On the independence of P versus NP, Technion, 1992 [dostęp 2026-05-09] [zarchiwizowane z adresu 2012-03-02] (ang.).
- ↑ Scott Aaronson, Is P Versus NP Formally Independent?, Electronic Colloquium on Computational Complexity, 2003 [dostęp 2026-05-09] (ang.).
- ↑ Ronald Fagin. Generalized first-order spectra and polynomial-time recognizable sets. „SIAM-AMS Proceedings”. 7, s. 43–73, 1974. [dostęp 2026-05-09]. (ang.).
- ↑ Neil Immerman. Languages that capture complexity classes. „SIAM Journal on Computing”. 16 (4), s. 760–778, 1987. DOI: 10.1137/0216051. (ang.).
- ↑ Elvira Mayordomo. P versus NP. „Monografías de la Real Academia de Ciencias de Zaragoza”. 26, s. 57–68, 2004. [dostęp 2026-05-09]. (ang.).
Bibliografia
[edytuj | edytuj kod]- Michael R. Garey, David S. Johnson: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, 1979. ISBN 978-0-7167-1045-5. (ang.).
- Michael Sipser: Introduction to the Theory of Computation. Wyd. 3. Cengage Learning, 2013. ISBN 978-1-133-18779-0. (ang.).
- Christos H. Papadimitriou: Computational Complexity. Addison-Wesley, 1994. ISBN 978-0-201-53082-7. (ang.).
- Sanjeev Arora, Boaz Barak: Computational Complexity: A Modern Approach. Cambridge University Press, 2009. ISBN 978-0-521-42426-4. (ang.).