Иерархия сложностных классов
Иерархия сложностных классов
Напомним, что мы отождествляем языки и предикаты, как описано в "Что такое алгоритм?" . В частности, запись означает .
Определение 4.1. Пусть — некоторый класс языков. Класс дополнений составляют дополнения ко всем языкам из . Формально
Непосредственно из определений классов следует, что , , .
Игры, в которые играют машины.
Рассмотрим игру, в которую играют два игрока, будем их называть белые (Б) и черные (Ч). Игрокам сообщается некоторое слово , и они делают ходы по очереди ( — первый ход белых, — первый ход черных и т.д.). Каждый ход может быть описан словом длины , где — некоторый полином. Игра завершается после некоторого, заранее заданного, числа ходов1. На самом деле правило завершения игры может быть и сложнее. Если есть верхняя оценка на число ходов, то можно всегда дополнить число ходов до этой оценки, никак не учитывая дополнительные ходы при подведении результата игры. Результат игры описывается некоторым предикатом , истинность которого означает, что выиграли белые (ничьих не бывает, так что ложность означает, что выиграли черные). Предикат зависит от исходного слова и ходов, сделанных игроками: — белыми, — черными. Поскольку замкнут относительно дополнений, предикат , утверждающий выигрыш черных, также принадлежит .
Отсутствие ничьих и конечность числа ходов гарантируют при заданном существование выигрышной стратегии либо для белых, либо для черных. (Формальное доказательство легко получается индукцией по числу ходов.) Поэтому каждой игре можно сопоставить два взаимно дополнительных множества
Многие сложностные классы можно определить как множества (или ), соответствующие тем или иным видам игр. Например, получаем следующие классы.: множества (как и , впрочем) для игр, в которых никто не делает ходов.
: множества для игр, в которых белые делают 1 ход. Другими словами, это множества вида
: множества для игр, в которых белые делают 1 ход. Другими словами, это множества вида
: множества для игр из 2 ходов: 1 ход белых, 1 ход черных. Другими словами, это множества вида
Словами это можно сказать так: есть такой ход белых, что, как бы ни сыграли черные, белые выигрывают.: множества для игр из 2 ходов. Другими словами, это множества вида
: множества для игр из ходов (в зависимости от четности последними ходят либо черные, либо белые). Другими словами, это множества вида
(если четное, то , , если нечетное, то , ).: множества для игр из ходов (в зависимости от четности последними ходят либо черные, либо белые). Другими словами, это множества вида
(если четное, то , , если нечетное, то , ).Классы и взаимно дополнительны: , .
Теорема 4.1 (Лаутеман [35]). .
Доказательство. Поскольку класс BPP замкнут относительно дополнений, достаточно показать, что .
Для этого нужно научиться формулировать свойство "множество содержит много элементов" с использованием кванторов существования и всеобщности. Мы сделаем это, предполагая, что рассматриваются подмножества некоторой конечной группы. Пусть — группа, а — подмножество . Свойство, которым мы будем отличать большие множества от малых, состоит в том, что некоторым количеством сдвигов множества можно покрыть всю группу
( 4.1) |
Чтобы выбрать подходящее значение , нужно найти случаи, когда (4.1) заведомо выполняется, и когда заведомо не выполняется.
Если
( 4.2) |
Условие (4.1) заведомо истинно, если для случайных независимых вероятность события больше 0. Другими словами, . Вероятность того, что случайный сдвиг не покрывает (не содержит) некоторый фиксированный элемент, равна по очевидным причинам . Вероятность того, что случайных сдвигов не покрывают фиксированный элемент, равна (покрытия разными сдвигами — независимые события). Поскольку покрывается элементов, вероятность события не больше (вероятность объединения событий не больше суммы вероятностей этих событий). Итак, при
( 4.3) |
Рассмотрим теперь некоторый язык . Для него, как объяснялось выше, можно найти полиномиально вычислимый предикат и полином такие, что число , где , различает слова, принадлежащие языку (для них оно больше ), и слова, языку не принадлежащие (для таких слов это число меньше ). Параметр мы выберем позже, сейчас отметим, что его величина может быть экспоненциально мала, как объяснялось "Вероятностные алгоритмы и класс BPP. Проверка простоты числа" после определения 3.1.
Введем искусственно структуру группы на множестве слов длины так, чтобы произведение и обращение элемента в этой группе были полиномиально вычислимыми (например, в качестве групповой операции возьмем покомпонентное сложение по модулю два). Запишем следующее -условие
Другими словами, рассматриваем такую игру: белые своим ходом называют слов (элементов группы), а черные — один элемент, который, по их мнению, не покрыт сдвигами множества на слова , названные белыми.Условие (4.2) в этом случае имеет вид , а условие (4.3): . Эти условия выполняются при подходящем выборе параметров. Можно взять порядка и порядка .
Замечание 4.1. Имеется рассуждение, которое "показывает", что время вычисления функций из класса BPP можно сделать, по-видимому, меньше для любого . Идея состоит в том, чтобы использовать генераторы псевдослучайных чисел. Такой генератор по набору битов длины строит набор длины , где . Если при этом выбирать короткие наборы случайно, то длинные наборы будут распределены так, что вычислительное устройство с ограниченными ресурсами (например, полиномиальная машина Тьюринга) не сможет отличить их от по-настоящему случайных. Это пояснение заменяет точное определение псевдослучайного генератора, которое нам не понадобится.
Существуют ли псевдослучайные генераторы, неизвестно. Их заведомо нет, если . Но в этом случае .
Если же и есть псевдослучайные генераторы, то можно находить за указанное выше время значение функции , вычисляя значения предиката из опр. 3.2 только для псевдослучайных .
Остается "небольшой" дефект в этом рассуждении: оно не проходит при и отсутствии псевдослучайных генераторов. Такая ситуация считается маловероятной.