I kompleksitetsteori er et polynomiumhierarki et hierarki af kompleksitetsklasser, der generaliserer klasserne P, NP, co-NP til orakelberegninger .
Der er mange ækvivalente definitioner af polynomielle hierarkiklasser. Lad os tage en af dem.
For at definere et orakel i et polynomiumhierarki, definerer vi
hvor P er mængden af problemer, der skal løses i polynomisk tid. Så definerer vi for i ≥ 0
Hvor A B er det sæt af problemer, der løses af en Turing-maskine i klasse A, udvidet med et orakel for et eller andet problem fra klasse B. For eksempel, , og er en klasse af problemer løst i polynomisk tid med et orakel for et eller andet problem fra NP .
Definitionerne antyder følgende forhold:
I modsætning til de aritmetiske og analytiske hierarkier, hvor alle inklusioner er strenge, er spørgsmålet om strenghed stadig åbent i polynomiehierarkiet.
Hvis nogen , eller nogen , så krymper hierarkiet ned til niveau k : for alle , . I praksis betyder det, at ligheden af klasserne P og NP fuldstændig ødelægger polynomiehierarkiet.
Foreningen af alle klasser i polynomiumhierarkiet er klassen PH .
Det polynomielle hierarki er modstykket (med mindre kompleksitet) til det aritmetiske hierarki.
Det er kendt, at PH er indeholdt i PSPACE , men det vides ikke, om de to klasser er ens.
Hver klasse i polynomiehierarkiet indeholder -komplet-problemer (problemerne er komplette med hensyn til Karp-reduktion i polynomietid).