A P és NP komplexitási osztályok egyenlőségének kérdése (az orosz forrásokban számbavételi problémaként is ismert [1] [2] ) több mint három évtizede az egyik központi nyitott probléma az algoritmusok elméletében . Ha igenlő választ adunk rá, ez azt jelenti, hogy elméletileg sokkal gyorsabban lehet megoldani sok összetett problémát, mint most.
A P és NP osztályok közötti kapcsolattal az algoritmuselmélet egyik ága, a számítási komplexitás elmélete foglalkozik . Egy probléma megoldásához szükséges erőforrásokat tanulmányozza. A leggyakoribb erőforrások az idő (hány lépést kell megtenni) és a memória (mennyi memória szükséges egy feladat elvégzéséhez).
A P és NP osztályok egyenlőségének problémája egyike annak a hét millenniumi feladatnak, amelyekért az Agyag Matematikai Intézet egymillió dolláros díjat ítélt oda .
Lazán a P = NP egyenlőségi probléma a következő: ha egy kérdésre adott pozitív válasz meglehetősen gyorsan ( polinomiális időben ) ellenőrizhető , akkor igaz-e, hogy erre a kérdésre elég gyorsan meg lehet találni a választ (polinomban is idő és polinomiális memória használata )? Más szóval, valóban nem könnyebb ellenőrizni a probléma megoldását, mint megtalálni? [3]
Például igaz-e, hogy a { −2 , −3 , 15 , 14 , 7 , −10 , …} számok között vannak olyanok, amelyek összege 0 ( részhalmazösszeg feladat )? A válasz igen , mert a −2 −3 + 15 −10 = 0 néhány kiegészítéssel könnyen ellenőrizhető (a pozitív válasz ellenőrzéséhez szükséges információt tanúsítványnak nevezzük ). Ebből következik, hogy ezeket a számokat ugyanolyan könnyű felvenni? A tanúsítvány ellenőrzése olyan egyszerű, mint megtalálni? Úgy tűnik, a számok felvétele nehezebb, de ez nem bizonyított.
A P és NP osztályok definíciójából közvetlenül következik a következmény: . Ennek a felvételnek a szigorúságáról azonban egyelőre semmit sem tudni, vagyis arról, hogy van-e olyan probléma, ami az NP -ben rejlik, de a P -ben nem . Ha ilyen probléma nem létezik, akkor az NP osztályba tartozó összes probléma megoldható polinomiális időben, ami óriási előnyt ígér a számítási sebességben. Most az NP osztály legbonyolultabb problémái (az úgynevezett NP - teljes problémák ) exponenciális idő alatt megoldhatók, ami gyakorlati szempontból elfogadhatatlan.
A számítási bonyolultság kérdését valószínűleg Kurt Gödel tette fel először 1956-ban Neumann Jánosnak írt levelében , amelyben azt kérdezte, hogy egy (ma ismert, hogy NP-teljes) probléma megoldható-e másodfokú vagy lineáris időben. Ugyanakkor Gödel azt javasolta, hogy ha létezik megoldás, akkor ez lehetővé teszi a számítógépek számára számos matematikai probléma megoldását [4] .
Az osztályegyenlőség kérdését először Stephen Cook vetette fel 1971- ben [5] és egymástól függetlenül Leonid Levin 1973 - ban [6] .
A 2000-es évek elején a legtöbb matematikus úgy véli, hogy ezek az osztályok nem egyenlőek. Egy 2002 -ben 100 tudós körében végzett felmérés szerint [7] 61 ember gondolja úgy, hogy a válasz "nem egyenlő", 9 - "egyenlő", 22-en nehéznek találták a választ, 8-an pedig úgy vélik, hogy a hipotézis nem vezethető le a jelenlegiből. axiómarendszer , és így nem lehet sem bizonyítani, sem cáfolni.
Más jól ismert megoldatlan matematikai problémákhoz hasonlóan ennek a problémának a megoldására tett kísérletek is jelentős erőfeszítéseket igényelnek; A P és NP osztályok egyenlőségének vagy egyenlőtlenségének téves bizonyítékait rendszeresen publikálják (nem a tudományos irodalomban), általában nem szakemberek [8] .
Bármely nyilvános kulcsú titkosítási rendszer egyirányú függvények létezésének feltételezésén és/vagy egy bizonyos probléma megoldásának extrém időtartamán alapul (például az RSA algoritmusnál ez nagyon nagy számok faktorizálása).
A számítógépes rendszerek szolgáltatással való visszaélésekkel szembeni védelme érdekében a kérelmező felet egy olyan probléma megoldására kérik, amelynek megoldása sok időt vesz igénybe, és az eredményt a kiszolgáló könnyen és gyorsan ellenőrzi. Az ilyen spam elleni védelemre példa a Hashcash [9] rendszer , amely részleges inverziós hash -t használ az e-mailek küldésekor.
A proof-of-work technológián alapuló blokkláncok megkövetelik, hogy az eredményül kapott hash összeg kisebb legyen, mint a célérték. A kívánt hash összeg keresésének folyamata megköveteli annak ismételt újraszámítását a kiegészítő paraméter tetszőleges értékeinek felsorolásával (további részletekért lásd: Bányászat ). A rendszerben lévő összes számítógép jelentős időt tölt egy kielégítő hash-összeg keresésével (például Bitcoinban ez átlagosan 10 percet jelent minden bányász esetében ). Egy már kialakított blokk helyességének ellenőrzéséhez csak egyetlen hash számítás szükséges.
Szótárak és enciklopédiák |
---|