Problemă NP-completă - în teoria algoritmilor , o problemă cu răspunsul „da” sau „nu” din clasa NP , la care orice altă problemă din această clasă poate fi redusă în timp polinomial (adică folosind operații al căror număr nu depășește un polinom în funcție de dimensiunea datelor originale). Astfel, problemele NP-complete formează, într-un anumit sens, un subset de probleme „tipice” din clasa NP: dacă pentru unele dintre ele se găsește un algoritm de rezolvare „polinomial rapid”, atunci orice altă problemă din clasa NP poate fi rezolvată. la fel de „repede””.
Un alfabet este orice set finit de caractere (de exemplu, {} sau {}). Setul tuturor cuvintelor posibile ( șiruri finalecompuse din caracterele acestui alfabet) peste un anumit alfabeteste notat. O limbă peste un alfabeteste orice subset al setului, adică.
Sarcina recunoașterii unei limbi este de a determina dacă un anumit cuvânt aparține limbii .
Să fie și două limbi peste alfabet . Se spune că un limbaj este reductibil (după Karp) la o limbă dacă există o funcție , , care este calculabilă în timp polinomial și are următoarea proprietate:
Se spune că o limbă este NP-hard dacă orice limbă din clasa NP este reductibilă la ea. Se spune că un limbaj este NP-complet dacă este NP-hard și este el însuși în clasa NP.
Informal vorbind, faptul că problema se reduce la problemă înseamnă că problema „nu este mai dificilă” decât problema (pentru că dacă putem rezolva , atunci putem rezolva și ). Astfel, clasa de probleme NP-hard include probleme NP-complete și probleme care sunt „mai grele” decât ele (adică acele probleme la care pot fi reduse problemele NP-complete). Clasa NP include probleme NP-complete și probleme care sunt „mai ușoare” decât acestea (adică acele probleme care sunt reduse la probleme NP-complete).
Din definiție rezultă că dacă se găsește un algoritm care rezolvă o (orice) problemă NP-completă în timp polinomial, atunci toate NP-problemele vor fi în clasa P , adică vor fi rezolvate în timp polinomial.
O sarcină se numește NP-completă în sensul puternic dacă are o sarcină secundară care:
Clasa de astfel de probleme se numește NPCS . Dacă ipoteza P ≠ NP este adevărată, atunci nu există un algoritm pseudopolinom pentru problema NPCS .
Problema coincidenței claselor P și NP a fost una dintre problemele centrale deschise de mai bine de treizeci de ani . Comunitatea științifică tinde să dea un răspuns negativ la această întrebare [1] — în acest caz, nu va fi posibilă rezolvarea problemelor NP-complete în timp polinomial.
Clasele de complexitate ale algoritmilor | |
---|---|
Considerată ușoară | |
Ar trebui să fie dificil | |
Considerat dificil |
|
Probleme NP-complete | |
---|---|
Problema de maximizare a stivuirii (ambalării) |
|
teoria grafurilor teoria multimelor | |
Probleme algoritmice | |
Jocuri de logică și puzzle-uri | |