Załóżmy, że organizujesz zakwaterowanie dla grupy czterystu studentów. Ilość miejsc jest ograniczona i tylko stu studentów otrzyma miejsca w akademiku. Aby skomplikować sprawę, Dziekan dostarczył Ci listę par niezgodnych studentów i zażądał, aby żadna para z tej listy nie pojawiła się w twoim ostatecznym wyborze., Jest to przykĹ 'ad tego, co informatycy nazywajÄ … NP-problemem, poniewaĹź Ĺ' atwo jest sprawdzić, czy dany wybĂłr stu studentĂłw zaproponowany przez wspóŠ'pracujÄ … cego jest satysfakcjonujÄ … cy (tj. nie ma pary wyjÄ ™ tej z listy wspĂłĹ' pracujÄ … cej rĂłwnieĹź nie pojawia siÄ ™ na liście z dziekanatu), jednak zadanie wygenerowania takiej listy od podstaw wydaje siÄ ™ byÄ ‡ na tyle trudne, Ĺźe caĹ ' kowicie niepraktyczne. Rzeczywiście, całkowita liczba sposobów wyboru stu studentów spośród czterystu kandydatów jest większa niż liczba atomów w znanym wszechświecie!, Tak więc żadna przyszła Cywilizacja nie mogłaby mieć nadziei na zbudowanie superkomputera zdolnego do rozwiązania problemu za pomocą brutalnej siły; to znaczy, sprawdzając każdą możliwą kombinację 100 uczniów. Jednak ta pozorna trudność może odzwierciedlać jedynie brak pomysłowości programisty. W rzeczywistości jednym z nierozstrzygniętych problemów w informatyce jest ustalenie, czy istnieją pytania, których odpowiedź można szybko sprawdzić, ale które wymagają niemożliwie długiego czasu, aby rozwiązać za pomocą jakiejkolwiek bezpośredniej procedury., Problemy takie jak ten wymieniony powyżej z pewnością zdają się być tego rodzaju, jednak jak dotąd nikomu nie udało się udowodnić, że któreś z nich naprawdę jest tak trudne jak się wydaje, tj. że naprawdę nie ma wykonalnego sposobu na wygenerowanie odpowiedzi za pomocą komputera. Stephen Cook i Leonid Levin sformułowali niezależnie problem P (tj. łatwy do znalezienia) kontra NP (tj. łatwy do sprawdzenia) w 1971 roku.
obraz kredyt: po lewej, Stephen Cook Jiří Janíček (przycięty). CC BY-SA 3.0