Полиномиальная иерархия

Материал из testwiki
Перейти к навигации Перейти к поиску

В теории сложности полиномиальная иерархия — это иерархия классов сложности, которая обобщает классы P, NP, co-NP до вычислений с оракулом.

Определение

Существует множество эквивалентных определений классов полиномиальной иерархии. Приведём одно из них.

Для определения оракула в полиномиальной иерархии определим

Δ0P:=Σ0P:=Π0P:=P,

где P — это множество задач, решаемых за полиномиальное время. Тогда для i ≥ 0 определим

Δi+1P:=PΣiP
Σi+1P:=NPΣiP
Πi+1P:=coNPΣiP

Где AB — множество задач, решаемых машиной Тьюринга в классе A, расширенным с помощью оракула для какой-то задачи из класса B. Например, Σ1P=NP,Π1P=coNP, и Δ2P=PNP — это класс задач, решаемых за полиномиальное время с оракулом для какой-нибудь задачи из NP.

Отношения между классами в полиномиальной иерархии

Определения предполагают следующие отношения:

ΣiPΔi+1PΣi+1P
ΠiPΔi+1PΠi+1P
ΣiP=coΠiP


В отличие от арифметических и аналитических иерархий, все включения в которых строги, в полиномиальной иерархии вопрос о строгости всё ещё открыт.

Если какой-нибудь ΣkP=Σk+1P, или какой-нибудь ΣkP=ΠkP, тогда иерархия сжимается до уровня k: для всех i>k, ΣiP=ΣkP. На практике это означает, что равенство классов P и NP полностью разрушает полиномиальную иерархию.

Объединение всех классов полиномиальной иерархии является классом PH.

Полиномиальная иерархия является аналогом (меньшей сложности) для арифметической иерархии.

Известно, что PH содержится в PSPACE, но не известно равны ли эти два класса.


Каждый класс в полиномиальной иерархии содержит mP-полные задачи (задачи полны относительно сведения по Карпу за полиномиальное время).

Шаблон:Rq