Ierarhia polinomială

În teoria complexității, o ierarhie polinomială  este o ierarhie a claselor de complexitate care generalizează clasele P, NP, co-NP la calcule oracol .

Definiție

Există multe definiții echivalente ale claselor ierarhice polinomiale. Să luăm una dintre ele.

Pentru a defini un oracol într-o ierarhie polinomială, definim

unde P este mulțimea problemelor de rezolvat în timp polinomial. Atunci pentru i ≥ 0 definim

Unde A B  este mulțimea de probleme rezolvate de o mașină Turing din clasa A extinsă cu un oracol pentru o problemă din clasa B. De exemplu, , și  este o clasă de probleme rezolvate în timp polinomial cu un oracol pentru o problemă din NP .

Relații între clase într-o ierarhie polinomială

Definițiile implică următoarele relații:


Spre deosebire de ierarhiile aritmetice și analitice, unde toate incluziunile sunt stricte, în ierarhia polinomială problema strictității este încă deschisă.

Dacă există , sau oricare , atunci ierarhia se micșorează la nivelul k : pentru toți , . În practică, aceasta înseamnă că egalitatea claselor P și NP distruge complet ierarhia polinomială.

Unirea tuturor claselor ierarhiei polinomiale este clasa PH .

Ierarhia polinomială este omologul (de o complexitate mai mică) ierarhiei aritmetice.

Se știe că PH este conținut în PSPACE , dar nu se știe dacă cele două clase sunt egale.


Fiecare clasă din ierarhia polinomială conține probleme -complete (problemele sunt complete în ceea ce privește reducerea Karp în timpul polinomial).