Oletetaan, että olet järjestää asunto majoitusta ryhmä neljä sata yliopisto-opiskelijat. Tilaa on vähän, ja vain sata oppilasta saa paikkoja asuntolassa. Mutkistaa asioita, Dekaani on antanut sinulle listan paria sovellu opiskelijoille, ja pyysi, että pari listalta näkyvät lopullinen valinta., Tämä on esimerkki siitä, mitä tietokone tutkijat kutsuvat NP-ongelma, koska se on helppo tarkistaa, jos annetaan valinta sata opiskelijaa ehdotti työtoveri on tyydyttävä (eli ei paria otettu työtoveri”s luettelossa näkyy myös listalla Dean”s office), on kuitenkin tehtävä tuottaa tällaisen luettelon tyhjästä näyttää olevan niin vaikeaa kuin olla täysin epäkäytännöllinen. Todellakin, yhteensä useita tapoja valita sata opiskelijaa neljän sadan hakijan on suurempi kuin atomien lukumäärä maailmankaikkeudessa!, Näin ollen ei ole tulevaisuuden sivilisaatio voisi koskaan toivoa rakentaa supertietokoneen, joka pystyy ratkaisemaan ongelman raa ’ alla voimalla; että on, tarkistamalla jokaisen mahdollinen yhdistelmä 100 opiskelijaa. Tämä ilmeinen vaikeus voi kuitenkin heijastaa vain ohjelmoijasi kekseliäisyyden puutetta. Itse asiassa, yksi erinomainen ongelmia tietotekniikassa on määritettäessä, onko kysymyksiä olemassa, joiden vastaus voidaan nopeasti tarkistaa, mutta jotka vaativat mahdottoman kauan aikaa ratkaista jokin suora menettely., Ongelmia, kuten yksi edellä lueteltujen varmasti näytä olevan tällaista, mutta toistaiseksi kukaan ei ole onnistunut todistamaan, että jokin niistä todella niin vaikeaa kuin ne näyttävät, eli, että ei todellakaan ole toteutettavissa tapa tuottaa vastauksen kanssa apua tietokone. Stephen Cook ja Leonid Levin muotoiltu P (ts, helppo löytää) vs. NP (eli helppo tarkistaa) ongelma itsenäisesti vuonna 1971.
Image credit: on the left, Stephen Cook by Jiří Janíček (rajattu). CC BY-SA 3, 0