Problema egalității claselor de complexitate P și NP (cunoscută și în sursele ruse ca problema de enumerare [1] [2] ) a fost una dintre problemele centrale deschise în teoria algoritmilor de mai bine de trei decenii. Dacă i se dă un răspuns afirmativ, aceasta va însemna că teoretic este posibil să se rezolve multe probleme complexe mult mai rapid decât acum.
Relația dintre clasele P și NP este tratată într-o ramură a teoriei algoritmilor numită teoria complexității computaționale . Studiază resursele necesare pentru a rezolva o problemă. Cele mai comune resurse sunt timpul (câți pași trebuie să faceți) și memoria (câtă memorie este nevoie pentru a finaliza o sarcină).
Problema egalității claselor P și NP este una dintre cele șapte probleme ale mileniului pentru care Institutul de Matematică Clay a acordat un premiu de un milion de dolari SUA .
Vag vorbind, problema egalității P = NP este următoarea: dacă un răspuns pozitiv la o întrebare poate fi verificat destul de repede (în timp polinomial ), atunci este adevărat că răspunsul la această întrebare poate fi găsit destul de repede (și în polinom ). timp și folosind memoria polinomială )? Cu alte cuvinte, nu este chiar mai ușor să verifici soluția problemei decât să o găsești? [3]
De exemplu, este adevărat că printre numerele { −2 , −3 , 15 , 14 , 7 , −10 , …} există astfel încât suma lor este egală cu 0 ( problema sumei submulțimii )? Răspunsul este da , deoarece −2 −3 + 15 −10 = 0 este ușor de verificat prin câteva completări (informația necesară pentru a verifica un răspuns pozitiv se numește certificat ). Rezultă că este la fel de ușor să ridici aceste numere? Verificarea unui certificat este la fel de ușoară ca și găsirea acestuia? Se pare că adunarea numerelor este mai dificilă, dar acest lucru nu a fost dovedit.
Din definiţia claselor P şi NP rezultă imediat corolarul: . Cu toate acestea, până acum nu se știe nimic despre strictețea acestei includeri, adică dacă există o problemă care se află în NP , dar nu se află în P. Dacă o astfel de problemă nu există, atunci toate problemele aparținând clasei NP pot fi rezolvate în timp polinomial, ceea ce promite un beneficiu imens în viteza de calcul. Acum cele mai complexe probleme din clasa NP (așa-numitele NP - probleme complete ) pot fi rezolvate în timp exponențial, ceea ce este considerat inacceptabil din punct de vedere practic.
Problema complexității computaționale a fost probabil pusă pentru prima dată de Kurt Gödel în 1956 într-o scrisoare către John von Neumann , unde a întrebat dacă o problemă (acum cunoscută ca fiind NP-completă) poate fi rezolvată în timp patratic sau liniar . În același timp, Gödel a sugerat că, dacă există o soluție, atunci aceasta va permite computerelor să rezolve multe probleme matematice [4] .
Problema egalității de clasă a fost pusă pentru prima dată de Stephen Cook în 1971 [5] și, independent, de Leonid Levin în 1973 [6] .
La începutul anilor 2000 majoritatea matematicienilor cred că aceste clase nu sunt egale. Conform unui sondaj efectuat în 2002 în rândul a 100 de oameni de știință, [7] 61 de oameni cred că răspunsul este „nu este egal”, 9 – „egal”, 22 au găsit greu să răspundă și 8 cred că ipoteza nu este dedusabilă din actuala sistem de axiome și, astfel, nu poate fi dovedit sau infirmat.
Ca și alte probleme matematice nerezolvate bine-cunoscute, încercările de a rezolva această problemă implică un efort considerabil; dovezile eronate ale egalității sau inegalității claselor P și NP sunt publicate în mod regulat (nu în literatura științifică), de obicei de către neprofesioniști [8] .
Orice criptosistem cu cheie publică se bazează pe presupunerea existenței unor funcții unidirecționale și/sau a duratei extreme de rezolvare a unei anumite probleme (de exemplu, pentru algoritmul RSA , aceasta este factorizarea unor numere foarte mari).
Pentru a proteja sistemele informatice de abuzul de servicii, părții solicitante i se cere să rezolve o problemă care necesită mult timp pentru a găsi o soluție, iar rezultatul este ușor și rapid verificat de către partea care servește. Un exemplu de astfel de protecție anti -spam este sistemul Hashcash [9] , care utilizează un hash de inversare parțială atunci când trimite e-mail.
Blockchain -urile bazate pe tehnologia proof -of-work necesită ca suma hash rezultată să fie mai mică decât valoarea țintă. Procesul de căutare a sumei hash dorite necesită recalcularea repetată a acesteia cu enumerarea valorilor arbitrare ale parametrului suplimentar (pentru mai multe detalii, vezi Mining ). Toate computerele din sistem petrec o cantitate semnificativă de timp căutând o sumă hash satisfăcătoare (de exemplu, în Bitcoin , aceasta este o medie de 10 minute pentru fiecare dintre mineri ). Pentru a verifica corectitudinea unui bloc deja format, este necesar doar un singur calcul hash.
Dicționare și enciclopedii |
---|