Полиномиальная иерархия
Материал из Википедии — свободной энциклопедии
В теории сложности полиномиальная иерархия - это иерархия классов сложности которая обобщает классы P, NP, co-NP до вычислений с оракулом.
[править] Определение
Существует множество эквивалентных определений классов полиномиальной иерархии. Привидём одно из них.
Для определения оракула в полиномиальной иерархии определим
где P - это множество задач, решаемых за полиномиальное время. Тогда для i ≥ 0 определим
Где AB - множество задач, решаемых машиной тьюринга в классе A расширенным с помощью оракула для какой-то задачи из класса B. Например, , и - это класс задач решаемых за полиномиальное время с оракулом для какой-нибудь задачи из NP.
[править] Отношения между классами в полиномиальной иерархии
Определения предполагают следующие отношения:
В отличие от арифметических и аналитических иерархий, все включения в которых строги, в полиномиальной иерархии вопрос о строгости всё ещё открыт.
Если какой-нибудь , или какой-нибудь , тогда иерархия сжимается до уровня k: для всех i > k, . На практике это означает, что равенство классов P и NP полностью разрушает полиномиальную иерархию.
Объединение всех классов полиномиальной иерархии является классом PH.
Полиномиальная иерархия является аналогом (меньшей сложности) для арифмитической иерархии.
Известно, что PH содержится в PSPACE, но не известно равны ли эти два класса.
- Полезная переформулировка последней задачи: PH = PSPACE тогда и только тогда, когда логика второго порядка не получает дополнительной мощности при добавлении оператора транзитивного замыкания.
Каждый класс в полиномиальной иерархии содержит -полные задачи (задачи полны относительно сведения по Карпу за полиномиальное время).