Класс PH

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

Класс сложности PH (от Шаблон:Lang-en) — объединение всех классов сложности из полиномиальной иерархии:

PH=k(ΣkpΠkp)=kΣkp=kΠkp

Таким образом, предикат принадлежит классу PH, если существует такое k, что предикат принадлежит классу Σkp или Πkp. Также говорят, что язык, распознаваемый таким предикатом (то есть множество всех слов, на которых предикат возвращает 1), принадлежит классу PH.

Эквивалентные определения

Логическая характеризация

Класс языков PH в точности совпадает с классом языков, выразимых с помощью логики второго порядка.

Игровая характеризация

Назовём конечной игрой следующую структуру. Имеется дерево, вершины которого помечены именами двух игроков A и B (все вершины одного уровня помечены одним и тем же именем, ходы чередуются), а рёбра соответствуют ходам игроков. Пусть дано некоторое начальное слово x — начальная конфигурация игры. Тогда количество уровней в дереве (т.е. количество ходов) равно некоторой функции f от длины x, а каждое ребро помечено словом длины g от длины x (ходом игрока является слово, которым помечено ребро). Имеется предикат R(x,w1w2w3) от начальной конфигурации и последовательности ходов игроков, который определяет, кто выиграл (если он равен 1, то выиграл первый игрок). Поскольку игра конечна, то выигрышная стратегия всегда существует либо у первого игрока, либо у второго. Назовём игру распознающей язык L, если для каждого слова x из L у игрока A есть выигрышная стратегия.

Класс PH является классом всех языков, распознаваемых играми, такими, что f равна константе (т.е. количество ходов в игре фиксировано и не зависит от длины входного слова), а g является многочленом от длины x (таким образом, из каждой вершины дерева, кроме последней, исходит по 2p(n) рёбер, где p(n) — этот многочлен).

Замкнутость

В отличие от составляющих класс PH классов полиномиальной иерархии, про PH доподлинно известно, что он замкнут относительно пересечения, объединения и дополнения языков. Это означает, что если языки L1 и L2 принадлежат PH, то языки L1L2, L1L2 и L1c принадлежат PH.

Для доказательства достаточно предъявить игры, распознающие эти комбинации языков, если имеются игры, распознающие L1 и L2. Для дополнения передадим право первого хода другому игроку и в качестве предиката выигрыша возьмём ¬R1. Для пересечения возьмём две игры, распознающие L1 и L2, такими, что количество ходов в них одинаковое, а вторую начинает не тот игрок, который делает последний ход в первой. После этого в каждую концевую вершину первой игры добавим вторую игру, а в качестве предиката выигрыша возьмём R1(x,ω1)R2(x,ω2), где ω1 и ω2 — разбиение всей последовательности ходов на две: часть, соответствующая первой игре, и часть, соответствующая второй. Для объединения возьмём игры, распознающие L1 и L2, с одинаковым количеством ходов и одинаковым первым игроком. Создадим новую вершину, соответствующую другому игроку, и прицепим к ней одно дерево первой игры (над этим ребром напишем слово 00...0) и оставшиеся 2p(n)1 рёбер второй игры. Первое слово игры обозначим z, а остальную часть последовательности слов — ω, а в качестве предиката выигрыша возьмём (z=000R1(x,ω))(z000R2(x,ω)).

Отношения с другими классами

Иерархия классов сложности.

По определению, в класс PH включены все классы полиномиальной иерархии, в том числе P и NP. Кроме того, он содержит вероятностные классы, такие как класс BPP (т.к. BPP содержится в классе Σ2p). Сам класс PH включён в класс PSPACE и класс PPP (класс задач, которые решаются за полиномиальное время на машине Тьюринга с доступом к оракулу класса PP).

Открытые проблемы

Установлено, что P = NP, тогда и только тогда, когда P = PH. Это утверждение может облегчить доказательство того, что P ≠ NP (если это так), поскольку нужно будет лишь отделить P от более общего класса, чем NP.

Шаблон:Классы сложности Шаблон:Нет ссылок