Tenk deg at du er med å organisere bolig overnattingssteder for en gruppe på fire hundre studenter. Plassen er begrenset, og bare ett hundre av de studentene vil få steder i sovesal. For å komplisere saken, Dekan har gitt deg en liste av par av inkompatible studenter, og bedt om at ingen par fra denne listen vises i ditt endelige valg., Dette er et eksempel på hva datamaskinen forskere kaller en NP-problem, siden det er lett å sjekke om et gitt valg av ett hundre studenter som er foreslått av en kollega er tilfredsstillende (dvs., ingen par som er hentet fra kollega»s liste, også vises på listen fra Dean»s office), men oppgaven med å generere en slik liste fra bunnen ser ut til å være så vanskelig som å være helt upraktisk. Faktisk, det totale antall måter å velge ett hundre studenter fra fire hundre søkere er større enn antall atomer i universet!, Dermed ingen fremtid sivilisasjon noensinne kunne håpe på å bygge en superdatamaskin i stand til å løse problemet med tvang, det er, ved å sjekke alle mulige kombinasjoner av 100 studenter. Imidlertid, denne tilsynelatende problemer kan bare reflektere mangel på oppfinnsomhet av din programmerer. Faktisk, en av de utestående problemer i informatikk er å avgjøre om spørsmål finnes hvor svaret kan være raskt sjekket, men som krever en utrolig lang tid å løse ved direkte prosedyre., Problemer som er nevnt ovenfor sikkert synes å være av denne typen, men så langt har ingen klart å bevise at noen av dem egentlig er så vanskelig som de dukker opp, dvs, at det virkelig er ingen mulig måte å generere et svar ved hjelp av en datamaskin. Stephen Cook og Leonid Levin formulert P (dvs., lett å finne) versus NP (dvs., lett å sjekke) problemet uavhengig i 1971.
Bilde credit: på venstre side, Stephen Cook av Jiří Janíček (beskåret). CC-BY-SA-3.0