C Course
C Course
Y
вводный спецкурс
В.Н. Крупский
T
i
sk
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Y
Курс лекций
T
i
Учебное пособие написано по материалам полугодового спецкурса,
sk
читавшегося автором на механико-математическом факультете МГУ им.
М.В. Ломоносова для студентов и аспирантов кафедры математической
I
логики и теории алгоритмов, а также специальности "Защита информа-
up
ции". Излагаются оcновные идеи и методы теории сложности вычисле-
ний.
X
Для студентов, аспирантов и специалистов, занимающихся анализом
эффективности алгоритмов.
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
Y
Оглавление
T
i
I МОДЕЛИ ВЫЧИСЛЕНИЙ. sk 7
I
1 Машины Тьюринга. 9
up
1.1 Неформальное введение. . . . . . . . . . . . . . . . . . . . . 9
1.2 Модели Тьюринга. . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Время и память.
X
1.3 Многоленточные машины Тьюринга. . . . . . . . . . . . . .
17
13
Kr
aft
2.2 Цена сокращения алфавита. . . . . . . . . . . . . . . . . . . 19
E
2.3 Цена сокращения количества лент. . . . . . . . . . . . . . . 21
r
3 Универсальные машины Тьюринга. 25
V.
,d
3.1 МТ, универсальная для класса C. . . . . . . . . . . . . . . . 25
L
3.2 Конструкция универсальной машины. . . . . . . . . . . . . 26
3.3 Теоремы об иерархии. . . . . . . . . . . . . . . . . . . . . . . 28
tes
4 Моделирование других языков. 31
4.1 Схема моделирования. . . . . . . . . . . . . . . . . . . . . . 31
P
II СЛОЖНОСТНЫЕ КЛАССЫ. 37
5 Класс P . 39
re
3
Le
4 Оглавление
Y
6.2 Континуальность класса P/P oly. . . . . . . . . . . . . . . . 46
6.3 Включение P ⊂ P/P oly. . . . . . . . . . . . . . . . . . . . . 47
7 Класс N P . 51
7.1 Определение класса N P . . . . . . . . . . . . . . . . . . . . . 51
T
7.2 О проблеме P 6= N P . . . . . . . . . . . . . . . . . . . . . . . 53
i
7.3 Примеры задач класса N P . . . . . . . . . . . . . . . . . . . 54
sk
8 Примеры N P -полных задач. 57
I
8.1 Сводимость ≤pm (Карп), N P -полнота. . . . . . . . . . . . . 57
up
8.2 N P -полнота задачи SAT . . . . . . . . . . . . . . . . . . . . 58
X
8.3 N P -полнота задачи о клике. . . . . . . . . . . . . . . . . . . 60
8.4 N P -трудность целочисленного ЛП . . . . . . . . . . . . . . 61
Kr
9 Класс BP P . 63
aft
9.1 Вероятностные вычисления. . . . . . . . . . . . . . . . . . . 63
E
9.2 Частотные распознаватели. . . . . . . . . . . . . . . . . . . 64
9.3 Включение BP P ⊂ P/P oly. . . . . . . . . . . . . . . . . . . 66
r
10 Распознавание простоты. 69
V.
,d
10.1 Сведения из теории чисел. . . . . . . . . . . . . . . . . . . . 69
L
10.2 Извлечение корней. . . . . . . . . . . . . . . . . . . . . . . . 70
10.3 Вероятностный алгоритм . . . . . . . . . . . . . . . . . . . . 70
tes
10.4 Верификация алгоритма. . . . . . . . . . . . . . . . . . . . . 71
10.5 Оценка сложности. . . . . . . . . . . . . . . . . . . . . . . . 73
P
No
12 Полиномиальная иерархия. 81
12.1 Классы полиномиальной иерархии . . . . . . . . . . . . . . 81
12.2 Структурные свойста. . . . . . . . . . . . . . . . . . . . . . . 82
ctu
12.3 Пример. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
CO
13 Класс P SP ACE. 89
13.1 Класс P SP ACE и игры. . . . . . . . . . . . . . . . . . . . . 89
Y
13.2 Моделирование игры. . . . . . . . . . . . . . . . . . . . . . . 90
13.3 Моделирование на полиномиальной памяти. . . . . . . . . . 91
13.4 Игровая характеризация класса P SP ACE. . . . . . . . . . 92
T
i
14.2 Полные задачи для классов P H. . . . . . . . . . . . . . . . 97
Литература
sk
14.3 Пример P SP ACE-полной задачи. . . . . . . . . . . . . . . 98
101
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
6
CO V.
M Kr
up
Le
P L sk
i
ctu E
re X
Оглавление
No
tes
,d
IT
aft r Y
CO V.
M Kr
7
up
Часть I
Le
P L sk
i
ctu E
re МОДЕЛИ ВЫЧИСЛЕНИЙ.
X
No
tes
,d
IT
aft r Y
CO V.
M Kr
up
Le
P L sk
i
ctu E
re X
No
tes
,d
IT
aft r Y
Y
Глава 1
T
i
Машины Тьюринга. sk
I
up
1.1 Неформальное введение.
X
Неформальное понятие модели вычислений предполагает задание языка
программирования вместе с его операционной семантикой, т.е. объясне-
Kr
aft
ний.
E
Процесс вычислений, развиваясь во времени (которое дискретно), по-
требляет различные (разнородные) ресурсы. Предполагается, что вели-
r
чина потребленного к данному моменту ресурса измеряется натуральны-
V.
,d
ми числами и не может быть бесконечной, т.е. бесконечный ресурс тре-
буется только для никогда не заканчивающегося процесса. Удобно (хотя
L
не столь существенно) также считать, что каждый никогда не заканчи-
вающийся процесс потребляет бесконечное количество каждого ресурса,
tes
т.е.
P
9
Le
10 Глава 1. Машины Тьюринга.
Y
Например, в худшем случае:
T
для моделей вычислений с реалистичными языками программирования,
i
для которых получение каких-нибудь теоретических оценок очень труд-
но. Выходы:
sk
• (машинно зависимый, зависит от "железа", а потому результаты
I
быстро устаревают) Численный эксперимент.
up
X
• (не вполне честный) Огрубления в определении ресурса. Например,
в качестве времени для C – подсчет только количества выполняе-
мых арифметических операций (или только сравнений).
Kr
aft
• Построение честных оценок для более простой "игрушечной"модели
и учет замедления при компиляции в реальный язык.
E
r
Пример. Пусть “игрушечная” модель вычисления M допускает ком-
V.
,d
пилятор программ в C
L
compiler : pM 7→ pC ,
tes
про который доказано (одна теорема для пары моделей), что
P
но честная оценка.
Как относится к таким оценкам. Конечно, показатель степени
весьма неточен, но то, что время есть степенная функция, а не экспонен-
re
Y
порченных) языков компиляция одного в другой замедляет по времени
не более, чем полиномиально, и увеличивает потребность к памяти не
более, чем линейно. Именно на это положение дел следует рассчитывать
в приложениях теории сложности и внутри самой теории.
T
i
1.2 Модели Тьюринга.
sk
Это семейство моделей вычислений наиболее честно отражает время вы-
числений. Возможных вариантов определения много. Машина Тьюринга
I
состоит из управляющего устройства (УУ) и потенциально бесконечной
up
внешней памяти, структура которой не меняется со временем. Она снаб-
X
жена программой, задающей правила ее функционирования.
Программа
Kr
УУ Память
aft
E
Память разбита на одинаковые ячейки, предназначенные для хра-
нения букв фиксированного конечного алфавита (одна буква в ячейке).
r
Имеется одна или несколько (конечное число) читающе-пишущих голо-
V.
,d
вок. В каждый момент времени головка обозревает одну ячейку памяти.
L
За один такт работы головка может изменить содержимое этой ячейки
и переместиться к одной из соседних (или остаться на месте). Функ-
tes
ционированием головок управляет УУ. В каждый момент времени УУ
находится в одном из фиксированного конечного множества внутрен-
P
...
Le
12 Глава 1. Машины Тьюринга.
Y
В теории сложности обычно используют многоленточные машины Тью-
ринга – конечный набор лент с одной головкой на каждой (более де-
тальное описание см. ниже). Рассматривались также машины Тьюринга
с "многомерной"памятью (напр., в виде клетчатой плоскости) и различ-
ные "многоглавые"варианты (несколько головок на одной связной ком-
T
i
поненте памяти). Можно показать, что все эти варианты моделируют
друг друга с полиномиальным (квадратичным) замедлением по време-
sk
ни и линейным увеличением памяти.
Вычислительные возможности машин Тьюринга достаточно хорошо
I
изучены. Их качественная характеризация состоит в описании класса
up
всех функций, вычислимых на машинах Тьюринга. Речь идет о частич-
ных словарных функциях f : Σ∗ → Σ∗ , где Σ∗ – множество всех слов
X
в конечном алфавите Σ, а термин “частичная функция” означает, что
значение функции f (v) для некоторых слов v ∈ Σ∗ может оказаться
неопределенным. Результат сравнительного изучения запасов вычисли-
Kr
aft
мых словарных функций для различных (не только “игрушечных”) моде-
лей вычислений может быть сформулирован в виде следующего нефор-
мального утверждения:
E
r
Тезис Тьюринга (неформальный): Каждую вычислимую
V.
,d
ную функцию типа Σ∗ → Σ∗ можно вычислить на подходя-
L
щей машине Тьюринга.
tes
Неформальность Тезиса Тьюринга состоит в том, что он не может
быть полностью обоснован математическими средствами (доказан как
P
тематическим утверждением.
Le
1.3. Многоленточные машины Тьюринга. 13
Y
языка обладают компиляторами в ASSEMBLER, поэтому для обосно-
вания соответствующего частного случая Тезиса Тьюринга достаточно
построить компилятор, преобразующий ассемблерный код в програм-
му для машины Тьюринга. Последнее является весьма трудоемкой, но
абсолютно реалистичной задачей по программированию. Для аккурат-
T
ного математического доказательства потребуется еще верифицировать
i
все три компилятора, т.е. доказать, что они работают правильно.
1.3
sk
Многоленточные машины Тьюринга.
I
up
Ленты бесконечны в обе стороны. Пустые ячейки несут символ #. Есть
X
одна или несколько входных лент (только для чтения), одна или несколь-
ко рабочих лент (можно читать и писать), некоторые из которых можно
объявить выходными. Входной алфавит Σ0 содержится в ленточном Σ
Kr
aft
вите Σ0 , на котором или непосредственно перед которым остановилась
E
головка. Удобно также требовать, чтобы на входных лентах головка не
удалялась от границ входного слова наружу: например, можно ввести
r
ограничительные буквы b и e для обозначения границ входного слова, за
V.
,d
выглядит так:
L
Входная лента с исходными данными:
tes
...# b 1 0 1 1 e #...
4
P
No
Рабочие ленты:
...# # # # # # #...
M
4
...# # # # # # #...
4
re
...# # # # # # #...
4
ctu
УУ):
Y
α : Q × (Σ∗ )k → Q – новое состояние
∗ k
β : Q × (Σ ) → (Σ )∗ k – новое содержимое ячеек
γ : Q × (Σ∗ )k → {N, L, R}k – движения головок
T
i
qā 7→ α(q, ā)β(q, ā)γ(q, ā)
sk
Непротиворечивость набора означает, что в нем нет двух команд с оди-
наковой левой частью qā. Для сокращения письма предполагают также,
что если команда с левой частью qā не выписана явно, то она все-таки
I
есть в программе, но имеет специфический вид qā 7→ qā N . . . N . Такие
up
команды тривиальны, т.к. не вызывают никаких действий.
X
Пример. На Рис.1.1 приведена программа машины Тьюринга с од-
ной входной и одной рабочей лентой, которая переписывает исходное
двоичное слово в обратном порядке.
Kr
aft
Полная спецификация многоленточной машины Тьюринга есть на-
бор
E
< Q, Σ, α, β, γ, q. , q. > .
r
Если к ней добавлен входной алфавит Σ0 ⊂ Σ \ {#, b, e}, выделены вход-
V.
,d
ные (k0 штук) и выходные (l0 штук) ленты и α в самом деле не меняет
L
содержимое входных лент, то получаем вычислитель (частичной) функ-
ции f : (Σ∗0 )k0 → (Σ∗0 )l0 . Для вычисления значения функции – вектора
tes
(w1 , . . . , wl0 ) = f (v1 , . . . , vk0 ) надо записать на входных лентах слова bvi e,
запустить машину и дождаться остановки, после чего считать с j-той
выходной ленты то слово в алфавите Σ0 , на которое указывает головка.
P
T Y
Программа:
i
7→ 7→
q0 b#
q0 0#
q0 1#
7→
7→ sk
q0 b# RN
q0 0# RN
q0 1# RN
q1 0#
q1 1#
q1 b#
7→
7→
q1 00 LR
q1 11 LR
q2 b# N N
I
q0 e# 7→ q1 e# LN
up
Функционирует она так:
X
# b 1 0 1 1 e #
4 Начальное состояние
# # # # # # # # q0 .
Kr
aft
E Состояние q0 переме-
# b
1 0 1 1 e #
щает головку на вход-
r
−→ 4
ной ленте к концу
V.
,d
# # # # # # # #
слова и меняется на
4
L
tes q1 .
Состояние q1 пере-
# b 1 0 1 1 e # мещает обе головки
4 ←− в противоположных
P
# 1 1 0 1 # # # направлениях, копи-
−→ 4 руя биты со входной
No
ленты на рабочую.
M
No
tes
,d
IT
aft r Y
Y
Глава 2
T
i
Время и память. sk
I
up
2.1 Время и зона машины Тьюринга.
X
Время TM (input) – это число шагов в вычислении машины Тьюринга
M на входе input. Шагом считается исполнение одной команды, т.е. соот-
Kr
aft
памяти, а также перемещения головок, происходят за 1 времени.
E
Зона, память SM (input) определяется как максимум по всем ра-
бочим лентам количества использованных ячеек к моменту остановки
r
машины M на входе input. Если машина никогда не заканчивает работу,
V.
,d
то полагаем зону бесконечной. Ячейка считается использованной, если
L
в ней побывала головка.
∗ ∗ ∗ ∗ ∗
tes
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗
P
∗ ∗ ∗
зона
No
17
Le
18 Глава 2. Время и память.
Y
Теорема 2.1 По описанию машины Тьюринга M можно вычислить
константу C такую, что если процесс вычисления M на некотором
входе заканчивается за t шагов с зоной s, то
s ≤ t ≤ n k0 C s ,
T
i
sk
где n – максимум длин входных слов, k0 – число входных лент.
I
ходуется не более одной ячейки.
up
Докажем правое неравенство. Для данного вычисления определим
X
понятие конфигурации в данный момент времени: это состояние, содер-
жимое всех лент и положение всех головок (относительно левой границы
блока использованных на данной ленте ячеек). Легко видеть, что если в
Kr
aft
вычисление зациклилось и никогда не закончится. Значит, для нашего
(заканчивающегося) вычисления все конфигурации различны. Если зона
E
вычисления есть s, вход фиксирован, то различных возможных конфи-
гураций не более, чем
r
V.
,d
|Q| · |Σ|(k−k0 )s · (n + 2)k0 · sk−k0 ≤ nk0 C s .
L
Здесь |Q| – количество состояний, |Σ| – количество букв в ленточном
алфавите, k – общее количество лент. Сомножитель |Σ|(k−k0 )s оценивает
tes
сверху число различных вариантов заполнения лент буквами алфавита
|Σ|, а произведение (n + 2)k0 · sk−k0 – количество возможных расположе-
P
ний головок.
No
Y
Теорема 2.2 Для вычисления функции типа
T
i
ся только как ограничители на входных лентах.)
sk
Замечание. При прямой конструкции добавится l0 рабочих лент
(выходных). Если не добавлять, то время может возрасти не более, чем
I
квадратично.
up
Доказательство. Для простоты изложения рассмотрим случай одной
X
рабочей ленты. Пусть исходная машина уже модифицирована так, что
на рабочей ленте она не оставляет "пустыми"(т.е. #) ячейки, в кото-
рых бывала. (Это можно сделать с помощью введения новой буквы * –
Kr
aft
Фиксируем подходящее число m ≈ log2 |Σ| так, чтобы каждую букву
ленточного алфавита Σ можно было однозначно закодировать блоком из
E
m бит. Фиксируем такое кодирование. Его удобно представлять в виде
бинарного дерева D глубины m: пути из корня к листьям – коды; на
r
листе – соответствующая буква алфавита Σ.
V.
,d
* a0
L
0
0
* H
1 H j a1
HH
0* a2
tes
1 H
jHH
1 j a3
P
. . . a5 . . . . . . 10010 . . .
7−→
4 4
re
Y
3. переменной-счетчика для хранения одного из чисел
0, . . . , m − 1,
T
5. бинарного дерева D c выделеной вершиной. В начальный момент
i
моделирования шага выделен корень, а пометка есть "read".
sk
Заметим, что число состояний конечно и не зависит от входа.
Этап "read". Первые m шагов моделирования состоят в том, что го-
I
ловка сканирует код буквы слева направо, а в состоянии меняется толь-
up
ко выделенная вершина дерева D – она перемещается по пути, соот-
X
ветствующему считываемому коду. Когда она достигнет листа, на нем
будет написана изменяемая буква ai . Тогда пометка "read"меняется на
"write"и выделенной вершиной становится лист с буквой aj . В этот мо-
Kr
aft
производим перемещение головок на входных лентах так, как это дела-
E
ла моделируемая машина. Также определяем и запоминаем требуемое
направление движения головки на рабочей ленте.
Этап "write". Следующие m шагов головка движется по блоку в об-
r
ратном направлении (налево), а выделенная вершина – к корню дере-
V.
,d
ва D. При этом путь, проходимый выделенной вершиной, определяет
L
биты кода буквы aj (справа налево) и они пишутся в соответствую-
щие ячейки блока. Когда выделенная вершина достигает корня, пометка
tes
"write"меняется на "go".
Этап "go". Если запомнен символ движения L или R, то перемещаем
P
Y
кодирования добавляем одну дополнительную выходную ленту и в кон-
це переписываем на нее результат, декодируя в процессе переписывания.
Время на это – m · (длина результата), что не превосходит
T
i
2.3 sk
Цена сокращения количества лент.
I
up
Замечание. Одна входная и одна выходная ленты (рабочих – много)
моделирует общий случай за счет введения буквы-разделителя. Цена –
X
время на переписывание входа с одной ленты на много и аналогичного
переписывания результата.
Kr
aft
ным замедлением по времени. Зона меняется линейно. Если ленточный
E
алфавит был не однобуквенным, то его удается сохранить.
r
Доказательство. (Набросок.) Пара рабочих лент
V.
,d
L
... a ... b ... 1-ая лента
4
tes
... c ... d ... 2-ая лента
4
P
Y
деляются буквы, обозреваемые исходной машиной, а при движении в
обратную сторону имитируются необходимые изменения (замена букв
и перемещение головок). Моделирующее состояние поддерживает счет-
чик для хранения остатка от деления на 4 величины текущего смещения
головки, что позволяет определить, к какой из моделируемых лент от-
T
носится обозреваемая ячейка. При этом в каждой ячейке рабочей зоны
i
головка моделирующей машины бывает не более фиксированного числа
sk
(c) раз, поэтому время работы моделирующей машины не превосходит
c · 2S · T , где T – время, а S - зона исходного вычисления. Т.к. S ≤ T , то
это моделирование приводит к квадратичному замедлению.
I
up
Замечание. Что изменится, если надо избавляться не только от мно-
X
гих рабочих лент, но и от входной ленты, т.е. моделировать вычисления
функции типа {0, 1}∗ → {0, 1}∗ на одноленточной машине? Пусть моде-
лируемая машина уже двухленточная, одна из которых – входная. Надо
Kr
aft
но",
# c1 c1 . . .
E
4
r
в
V.
,d
# 1 # 1 c1 0 # 0 c2 0 # 0 ...
,
L
1-ая 2-ая 1-ая 2-ая 1-ая 2-ая
а второй – выполнять обратное преобразование с результатом. Все осталь-
tes
ное моделирование сохраняется. Добавление требует полиномиального
времени и линейной зоны (от длины входа и результата).
P
{0, 1}∗ → {0, 1}∗ моделирующая машина может быть выбрана однолен-
точной (т.е. и без входных лент тоже) с теми же оценками времени и
памяти, если исходное вычисление по крайней мере читает все вход-
re
Y
сдвигом головки вправо).
T
i
sk
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
24
CO V.
M Kr
up
Le
P L sk
i
ctu E
re X
Глава 2. Время и память.
No
tes
,d
IT
aft r Y
Y
Глава 3
T
i
Универсальные машины
Тьюринга.
sk
I
up
3.1
X
Машина Тьюринга, универсальная для клас-
Kr
са C.
aft
Пусть фиксирован ленточный алфавит Σ ⊃ {0, 1}, наборы входных, ра-
E
бочих и выходных лент. Устроим кодирование класса C всех таких машин
Тьюринга словами в алфавите {0, 1}:
r
V.
,d
ров, взятыми в кавычках: ‘101’ есть q5 . Пусть начальное состояние
L
всегда имеет номер 1, а заключительное – 0.
tes
2. Машину Тьюринга сначала запишем в виде программы, состоящей
из команд вида
qā 7→ q 0 ā0 D;
P
грамм.
3. Фиксируем однозначное кодирование букв алфавита программ дво-
M
машины Code(M ).
25
Le
26 Глава 3. Универсальные машины Тьюринга.
Y
Замечание. Условие (3.1) означает, что оба вычисления U (Code(M ), input)
и M (input) либо зацикливаются, либо дают одинаковый результат. Ис-
пользованный в определении символ ' есть так называемое условное
равенство. Это традиционный заменитель обычного отношения равен-
ства, когда приходится сравнивать выражения, которые могут оказаться
T
неопределенными. Утверждение a ' b считается истинным в двух слу-
i
чаях: когда оба выражения a и b определены и равны между собой, либо
sk
когда они оба не определены. Во всех остальных случаях утверждение
считается ложным. Отличие от обычного равенства состоит в том, что
когда хотя бы одно из выражений a или b не определено, выражение
I
a = b не является корректным утверждением и не может быть ни истин-
up
ным, ни ложным. Напротив, a ' b всегда есть корректное утверждение.
X
Kr
aft
зиса Тьюринга. По коду машины можно алгоритмически восстановить
E
саму машину и применить ее к данному входу, т.е. функция, которую
должна вычислять U , вычислима. Значит, ее можно вычислить на ма-
r
шине Тьюринга.
V.
,d
вите с одной дополнительной рабочей лентой, для которой время вы-
L
числения U (code(M ), input) лишь в константу раз больше времени вы-
числения M (input) (сама константа зависит от M ; зона может возрасти
tes
не более, чем на аддитивную константу).
P
ленты машины M :
No
input
M
U: рабочие ленты
доп. ленты:
re
Code(M )
состояние M
ctu
тельной входной) она использует так же, как M . Имитация одного шага
M : машина U читает текущее состояние, ищет в Code(M) ту команду, ко-
Y
торую надо выполнить и выполняет (измененное состояние записывается
на место предыдущего). На все это уходит не более (|Code(M )| + |Q|) · c
шагов.
Избавиться от дополнительной входной ленты (для Code(M )) позво-
ляет следующее кодирование пар двоичных слов:
T
i
ha1 . . . an ; b1 . . . bm i := a1 . . . an 01b1 b1 . . . bm bm .
sk
Код машины M можно подавать на вход, добавляя его к содержимо-
му первой из входных лент в удвоенном виде (т.е. на ленту пишется
I
hinput; Code(M )i ). Тогда в начале работы универсальная машина пере-
up
писывает на две дополнительные рабочие ленты input и Code(M ) по
X
отдельности, а затем работает как указано выше.
hinput; Code(M )i
Kr
aft
рабочие ленты
U:
E
доп. ленты:
r
V.
,d
состояние M
L
Избавиться от дополнительных рабочих лент можно с помощью тео-
tes
ремы 2.3. Все это приведет к тому, что универсальная машина для класса
C будет присутствовать в самом классе. Для класса с одной входной
P
Y
лент в процессе моделирования машины M остается ограниченной и
оставшейся головке удается таскать все эти данные по ленте с собой.
T
Вопрос. Когда добавочный ресурс в самом деле увеличивает вычисли-
i
тельные возможности?
sk
Фиксируем класс C. Ограничимся случаем одной входной и одной
выходной ленты. Пусть f – тотальная неубывающая неограниченная вы-
I
числимая функция из N в N . Определим классы T IM E(f ) и SP ACE(f )
как семейства всех функций типа Σ∗ → {0, 1}, вычислимых на машинах
up
из класса C с условием
или
X
TM (v) < f (|v|) для достаточно больших |v|
Kr
aft
SM (v) < f (|v|) для достаточно больших |v|
соответственно.
E
Вопрос уточняется следующим образом: найти условия на поряд-
ки роста функций f, g, достаточные для выполнения строгого включе-
r
ния
V.
,d
T IM E(f ) ⊂ T IM E(g)
L
6=
(3.3)
(соотв., SP ACE(f ) ⊂ SP ACE(g) ).
6=
tes
Результаты, устанавливающие такие оценки, называются теоремами
об иерархии.
P
параллельно.
Le
3.3. Теоремы об иерархии. 29
ленты U :
hinput ; Code(M )i
Y
Uf :
ленты M0 :
T
i
sk
Машина M0 служит таймером – как только она останавливается,
прерываем работу U тоже. При этом синхронизируем работу машин U
I
и M0 таким образом, чтобы 1 шаг машины M0 соответствовал 1 шагу
up
моделируемой машины M , т.е. U делает все шаги, моделирующие 1 шаг
X
M , после чего M0 делает 1 шаг, и т.д. Результат читаем с выходной
ленты U и меняем на противоположный: 0 на 1, а все остальное – на 0.
Легко видеть, что функция
Kr
aft
h(v) = Uf (hv; vi)
E
тотальна, вычислима, имеет тип Σ∗ → {0, 1}, но не лежит в T IM E(f )
(соответственно, в SP ACE(f )). В самом деле, если бы h ∈ T IM E(f ),
r
то добавлением в программу вычисляющей ее машины "лишних"команд
V.
,d
можно добиться выполнения условия TM (v) < f (|v|) (или аналогичного
L
для зоны) уже при v = Code(M ). Но тогда
по построению. Противоречие.
P
или
f (n)
= o(1) (для памяти),
Y
g(n)
причем функция f (n) ≥ n должна быть конструируемой.
T
поэтому
i
T IM E(n) ⊂ T IM E(n2 ) ⊂ T IM E(n3 ) ⊂ . . .
sk
6= 6=
⊂ T IM E(2n ) ⊂ T IM E(3n ) ⊂ . . . ,
6= 6= 6=
6=
I
SP ACE(n) ⊂ SP ACE(2 · n) ⊂ . . .
6= 6=
up
⊂ SP ACE(n2 ) ⊂ . . . ⊂ SP ACE(2n ) ⊂ . . . .
X
6= 6= 6= 6=
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
Y
Глава 4
T
i
Моделирование других sk
языков программирования.
I
up
4.1
X
Схема моделирования других языков програм-
Kr
aft
E
Пусть для некоторого языка программирования PrL программы и воз-
можные входные/выходные данные удается представить словами неко-
торого конечного (м.б. достаточно большого) алфавита. Естественно так-
r
же предположить, что отображение
V.
,d
L
program, input 7→ output
tes
окажется вычислимой словарной функцией. Тогда по тезису Тьюрин-
га найдется машина Тьюринга UPrL , вычисляющая это отображение.
P
Она будет универсальной для языка PrL, т.е. UPrL (input, program) '
program(input).
No
input
M
program
UPrL :
рабочие ленты
re
31
Le
32 Глава 4. Моделирование других языков.
Y
В качестве примера рассмотрим простейший вариант языка BASIC (мо-
дели вычислений такого рода называются RAM, Random Access Mashines,
или машинами с неограниченными регистрами).
T
i
чена). Вход и выход записывается в несколько первых переменных.
sk
• Команды программы пронумерованы и выполняются в порядке ну-
мерации. В языке два вида команд – присваивание (напр., 33:V5<-V3+V1)
I
и условный переход (напр., 125:if V5<0 goto 7).
up
Для удобства обработки текста программы машиной Тьюринга вы-
X
берем следующий “тэговый” вариант синтаксиса:
ПРИСВАИВАНИЕ:
Kr
aft
выражение::= константа
|<V номер>
|<V номер> op <V номер>
E
r
op::= + | - | *
V.
,d
L
УСЛОВНЫЙ ПЕРЕХОД:
33:V5<-V3+V1 <LET33><V5><V3>+<V1></LET>
No
Y
линейной функцией от s – максимума длин двоичных записей значений
переменных (максимум – по всему вычислению). Таким образом, для
моделирующей машины
T
i
где t – количество шагов, а s – максимум длин двоичных записей теку-
sk
щих значений переменных моделируемого вычисления.
Замечание. При добавлении в язык других представляемых слова-
I
ми типов данных и дополнительных встроенных операций (при условии
up
их вычислимости на машинах Тьюринга за полиномиальное время на
линейной зоне) полученные оценки не изменятся. Нетрудно также реа-
X
лизовать этими средствами управляющие конструкции:
шага.
aft
FOR vi:= vj DOWNTO 0 DO ... DONE Цена: +2 шага к каж-
E
дой итерации, но само количество итераций есть vj +1 и оцен-
ка (4.1) сохранится только в том случае, когда текущее зна-
r
чение переменной vj есть poly(s) (т.е. его длина – O(log s)).
V.
,d
REPEAT ... UNTIL vi>= 0 Цена: +1 шаг к каждой итерации,
L
но для получения оценок времени необходим честный подсчет
числа итераций.
tes
WHILE vi >= 0 DO ... DONE Цена: +2 шага к каждой итера-
ции но для получения оценок времени необходим честный
P
Y
такого расширения оценки (4.1) сохранятся, если взять s = m · l, где m
– количество использованных программой переменных (прямо и косвен-
но), а l – максимум длин двоичных записей их текущих значений.
Эти оценки обычно используют для получения грубых верхних оце-
нок времени, достаточного для решения той или иной задачи на машинах
T
Тьюринга. Выбирают подходящий язык PrL и программируют соответ-
i
ствующий алгоритм на нем, оценивая порядки величин t, s. Для полу-
sk
чения более точных оценок стараются улучшить оценку (4.1) в случае
моделирования специфического алгоритма.
I
up
4.3 Моделирование булевых схем.
X
Булевы схемы – это более простой (не универсальный) язык программи-
Kr
aft
значения переменных здесь булевы, т.е. 0 или 1. Отсутствует нумерация
команд и условные переходы (нет возможности оперировать с адреса-
E
ми команд и переменных). Программа состоит из последовательности
операторов присваивания
r
V.
,d
L
y <- <op> (x1,...,xk), tes
исполняемых последовательно. При этом фиксирована конечная полная
система булевых функций F (например, {¬, ∨, ∧}) и <op>∈ F . Все пере-
P
вторяются.
Le
4.3. Моделирование булевых схем. 35
Y
программа DAG
y1 <- ¬x1 x1 x2
y2 <- ¬x2
y3 <- y1 ∧ x2 ¬ ¬
T
y4 <- x1 ∧ y2 ∧ ∧
i
y5 <- y3 ∨ y4
∨
sk
В качестве временной сложности булевой схемы S используют раз-
I
мер схемы size(S) – длину программы (т.е. количество операторов) в
up
первом случае и количество помеченных символами операций вершин –
X
во втором. Легко заметить, что по отношению к временной сложности
эти два представления "эквивалентны"(в программе можно переимено-
вать переменные так, чтобы имена переменных в левых частях операто-
Kr
aft
временной сложностью).
E
Схемной сложностью функции f : {0, 1}n → {0, 1}m называется
c(f ) = min{size(S) | S вычисляет f }.
r
Эта характеристика зависит от выбора полной системы F , т.е. c(f ) =
V.
,d
cF (f ), но зависимость не очень существенна: при переходе к другой пол-
L
ной системе схемная сложность функций меняется на множитель O(1).
В дальнейшем полную систему F будем считать фиксированной.
tes
Универсальная для языка булевых схем машина Тьюринга стоится
полностью аналогично случаю RAM, но с соответствующими упрощени-
P
Y
ратора (булева операция вычисляется за O(1) шагов) и записи результа-
та в переменную, стоящую в правой части оператора (еще O(s) шагов).
Перемещение головки на "программной"ленте к следующему оператору
дает незначительный вклад O(log size(S)) шагов. Итого, на один опе-
ратор моделируемой программы уходит O(s) шагов, а всего операторов
T
size(S), что и дает требуемую оценку.
i
Замечание. На самом деле логарифмический сомножитель в (4.2)
sk
можно убрать, организовав хранение значений всех переменных без имен
(номеров). Поиск значения переменной номер i в этом случае осуществ-
I
ляется выбором i-того значения от начала. Этот же метод может быть
up
применен в случае BASIC, но не проходит при добавлении ссылок.
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
CO V.
M Kr
37
up
Часть II
P sk
КЛАССЫ.
Le L i
ctu СЛОЖНОСТНЫЕ
E
re X
No
tes
,d
IT
aft r Y
CO V.
M Kr
up
Le
P L sk
i
ctu E
re X
No
tes
,d
IT
aft r Y
Y
Глава 5
T
i
Класс P .
sk
I
up
5.1 Определение класса P .
X
Функция f – полиномиального роста, если для некоторых c и n0 выпол-
нено
Kr
aft
Время работы машины Тьюринга M на словах алфавита Σ (подмноже-
E
ство ленточного алфавита) полиномиально, если
TM (n) = max TM (x), где |x| = |x1 | + . . . + |xk |,
r
|x|=n
V.
,d
есть функция полиномиального роста (в частности, такая машина всегда
L
останавливается на словах алфавита Σ; можно также использовать |x| =
max |xi | – получится эквивалентное определение).
tes
Определение 5.1 Класс P в широком смысле состоит из всех то-
P
{x ∈ Σ∗ | L(x) = 1}
и называют формальными языками. В этом случае элементы класса P
ctu
за полиномиальное время.
39
Le
40 Глава 5. Класс P .
Y
алфавитов: [
P = PΣ .
Σ
T
уже содержит в себе все функции и предикаты из P .
i
sk
Замечание. Определение класса P в значительной мере не зависит
от модели вычисления. Если модель вычислений допускает компиляцию
в машины Тьюринга и обратно с полинимиальным замедлением (а тако-
I
вы все реальные языки программирования), то класс P , определенный
up
посредством этой модели совпадает с нашим. В частности, совершенно
X
несущественен выбор варианта машин Тьюринга (сколько каких лент,
головок и т.п.).
Замечание. Имеется устойчивое общественное мнение, что преди-
Kr
aft
дикаты и функции класса P . Практические задачи, которые лежат в
E
классе P , но требуют для своего решения времени, оцениваемого поли-
номом большой степени, встречаются крайне редко. Обычно приходится
r
сталкиваться с одной из двух реалий: либо задача решается за время –
V.
,d
либо она требует экспоненециального времени, причем резкий рост вре-
L
менных затрат начиннается уже на малых длинах входных данных. Эти
различия наглядно проявляются в процессе эксперимента, поэтому факт
tes
принадлежности задачи классу P позволяет прогнозировать реальное
поведение соответствующей программы.
P
No
d:=0;
Le
5.2. Примеры: целочисленная арифметика. 41
Y
WHILE a-x*b >0 DO // (log a) итераций.
z:=x; // Подбираем z -
x:=x*2; // наиб. степень 2 такую,
DONE; // что a=z*b+y и y>=0
T
i
d:=d+z; a:=a-z*b;
DONE
r:=a. sk
I
up
Представим себе реализацию этого алгоритма на описанном выше
X
варианте BASIC’а. Здесь 7 переменных, а в реализации будет 7 + const.
Здесь 10 операторов, а в реализации будет 10 · const. Здесь длины дво-
ичных записей текущих значений переменных не более s = (log a +
Kr
aft
лее log2 a раз и там – тоже. В итоге для реализации будет t = C1 · log2 a,
а s = (log a + log b) · C2 . По (4.1) получаем, что при моделировании этого
E
машиной Тьюринга время работы окажется ограниченным полиномом
от n = log a + log b. Но такое значение n и есть длина входных данных,
r
откуда div, mod ∈ P .
V.
,d
Алгоритм Евклида d=нод(a,b):
L
tes
IF b>a THEN x:= a; a:= b; b:= a FI; //делаем a>=b
P
WHILE b>0 DO
x:= a mod b; // (a,b):= (b, a mod b)
No
a:= b;
b:= x
M
DONE;
d:= a.
re
Y
Операции +, ∗ в кольцах вычетов ZZm легко вычисляются за пролиноми-
альное время с помощью целочисленной арифметики. Алгоритм Евкли-
да позволяет за полиномиальное время по a и m распознать обратимость
элемента a в кольце ZZm (проверяем условие нод(a, m) = 1). Более тон-
кие факты: функции f (x, n) = x−1 в ZZm (если не существует, то 0) и
exp(x, y, m) = xy mod m также лежат в классе P .
T
i
(xy mod m). Сначала заметим, что при y = 2k это выражение мож-
sk
но вычислить с помощью k итераций оператора x:=x*x mod m. Общий
случай сводится к этому при помощи разложения
I
y = 2k1 + . . . + 2kn , k1 < . . . < kn , n ≤ kn ≤ |y|.
up
Достаточно следующего алгоритма:
exp:=1; z:=1;
WHILE y>0 DO
X
// будет n итераций
Kr
aft
u:= (x^z) mod m; // z есть степень двойки
FI;
exp:=exp*u
E
z:=z*2;
r
y:=y div 2
V.
,d
DONE.
L
f (x, n) = x−1 в ZZm . Если x – обратимый элемент кольца ZZm , то
tes
(x, m) = 1 и достаточно найти разложение единицы αx + βm = 1 (тогда
x−1 = α mod m). Для поиска такого разложения следует модифици-
P
r := a mod b ;
(a,b) := (b, r) ;
M
a = αx + βm, b = γx + δm,
ctu
r = a − (a div b) · b,
Le
5.4. Примеры: сложение и умножение матриц. 43
Y
му в результате будет построено требуемое разложение единицы. Каж-
дая итерация увеличится на фиксированное число шагов, но количество
итераций не изменится. Поэтому сохранится прежняя полиномиальная
оценка на время работы.
T
i
5.4 Примеры: сложение и умножение матриц.
sk
Для простоты ограничимся квадратными (n × n) матрицами с элемента-
ми из кольца ZZ2m , представленными двоичными записями с лидирую-
I
щими нулями длины m = const. На вход поступают число n и элементы
up
матриц A,B (записанные подряд через разделитель). Длина входа есть
полином от n, поэтому достаточно построить вычисление, ограниченное
X
по времени другим полиномом от n. Рассмотрим, например, умножение.
Тьюрингово вычисление будет состоять в моделировании соответ-
ствующей программы обсуждавшегося ранее варианта BASIC’а со ссыл-
Kr
aft
значений переменных V 0, . . . , V (2n2 ) и должна записать элементы про-
E
изведения матриц в переменные V (2n2 + 1), . . . , V (3n2 ). (Моделирующая
машина Тьюринга должна проделать инициализацию переменных и в
r
конце переписать результат на выходную ленту; очевидную реализацию
V.
,d
этого мы опускаем.)
L
Сама BASIC-программа получается как результат моделирования
стандартного метода перемножения матриц (O(n3 ) итераций)
tes
FOR i=0 TO n-1 DO
FOR j=0 TO n-1 DO
P
DONE
DONE
M
DONE
100: Vd <- i * n
101: Vd <- Vd + k
Y
102: ... (ref d) ...
T
i
набором операторов присваивания и временная оценка t = O(n3 ) при
переводе всего блока сохранится. Суммарная длина содержимого всех
sk
переменных будет не более s = 3 · n2 · m + const · log n = O(n2 ). Применя-
ем (4.1) и получаем полиномиальную оценку на время соответствущего
I
тьюрингова вычисления.
up
X
5.5 Примеры: связность в графе.
Граф G с множеством вершин {1, . . . , n} задан матрицей смежности M .
Kr
aft
есть ребро (i, j). Например,
1 2
E
0 0 1 1
0 0 0 0
r
G: M = 1 0 0 1 .
V.
,d
3 4 1 0 1 0
L
Надо по M, i, j выяснить, связаны ли вершины i, j в графе G.
Эта задача легко сводится к вычислению n-ой степени 0,1-матрицы
tes
A = (M + E), если в качестве операций +, · взять булевы операции ∨, ∧
(далеко не самый эффективный метод, но для доказательства принад-
P
(n)
ai,j = 1 ⇔ i и j связаны в G.
M
меняет).
ctu
CO
Le
Y
Глава 6
T
i
Класс P/P oly. sk
I
up
6.1 Распознавание языков последовательностями
булевых схем.
X
Kr
aft
ство слов данного алфавита. Ограничимся языками L ⊂ {0, 1}∗ . С каж-
дым таким языком можно связать последовательность булевых функций
E
fn (x1 , . . . , xn ), n = 0, 1, . . . такую, что
r
x1 . . . xn ∈ L ⇔ fn (x1 , . . . , xn ) = 1.
V.
,d
L
Схемной сложностью языка L называется функция
cL (n) = c(fn ),
tes
где через c(·) обозначена схемная сложность булевой функции.
P
f <- ( x1 <-> xn )
f <- ( f & z )
ctu
...
45
Le
46 Глава 6. Класс P/P OLY .
Y
ной сложностной характеристикой – она не учитывает трудоемкость по-
строения самой схемы. Но за счет огрубления становится принципиаль-
но возможным оценивать сложность произвольных языков (а не только
разрешимых, как для машин Тьюринга).
Класс P/P oly определяется как семейство всех таких языков L ⊂
T
{0, 1}∗ , схемная сложность которых есть функция полиномиального ро-
i
ста, т.е.
для некоторых C и n0 .
sk
cL (n) < nC при n > n0
I
Класс P/P oly замкнут относительно операций объединения, пересе-
up
чения и дополнения (проверить) языков.
X
Kr
aft
языки. Мощность класса P/P oly равна континууму. Каждой (не обяза-
E
тельно вычислимой) функции ϕ : N → {0, 1} можно инъективно сопо-
ставить язык L схемной сложности O(1):
r
x1 . . . xn ∈ L ⇔ ϕ(n) = 1.
V.
,d
L
Класс P представляет собой эффективизованную версию класса P/P oly:
если к определению языка L ∈ P/P oly добавить условие вычислимости
tes
за полиномиальное время отображения
булева схема полиномиального размера,
P
s
n 7−→
вычисляющая fn ,
No
L” на словах длины n.
Le
6.3. Включение P ⊂ P/P OLY . 47
Y
Для реализации можно взять композицию машины Тьюринга, вычис-
ляющей отображение s и универсальной машины Тьюринга для языка
булевых схем. Получится машина Тьюринга, которая распознает язык
L за полиномиальное время.
Обратное включение обеспечивает конструкция из доказательства
T
i
теоремы 6.1 (см. ниже), которая на самом деле строит отображение s
6.3
sk
вычислимым за полиномиальное время.
I
up
Ранее обсуждалось, что с точностью до кодировки исходных данных
X
класс P (в узком смысле) совпадает с P{0,1} (ограничение алфавитом
{0, 1}).
Kr
aft
Доказательство. Пусть L ∈ P . Тогда существует одноленточная ма-
E
шина Тьюринга M , разрешающая L, и полином p(n), ограничивающий
сверху ее время работы на словах достаточно большой длины n. Этот
r
же полином будет ограничивать и зону M . Занумеруем клетки ленты
V.
,d
целыми числами, 0 – где стоит головка в начальный момент, входное
L
слово – в клетках 1, . . . , n, число n – достаточно большое.
Протоколом работы машины Тьюринга M за время T на слове x1 . . . xn
называется прямоугольная таблица следующего вида:
tes
−S 0 1 i S
P
0 #, ∅ . . . #, q1 x1 , ∅ x2 , ∅ ... xn , ∅ . . . #, ∅
No
1 #, ∅ #, ∅
.. ..
. .
M
j #, ∅ Γi,j #, ∅
.. ..
. .
T #, ∅ #, ∅
re
Y
все время находилась внутри куска ленты |i| < S. Если машина оста-
новилась раньше момента T , то последние строки таблицы дублируют
предыдущие. Для этого доказательства возьмем T = S = p(n).
В клетке протокола может стоять произвольная пара < a, q >∈ D,
где D = Σ × (Q ∪ {∅}). Заметим также, что содержимое клетки (i, j + 1)
T
для |i| < S функционально зависит от содержимого трех клеток над ней,
i
Γi−1,j
sk
Γi,j Γi+1,j
Γi,j+1
Γi,j+1 = ϕ(Γi−1,j , Γi,j , Γi+1,j ),
I
а содержимое клеток на верхней, левой и правой границах есть либо
константа < #, ∅ > или < #, q1 >, либо одна из следующих функций от
up
n булевых переменных, представляющих входное слово:
X
< xi , ∅ >= πi (x1 , . . . , xn ).
Kr
aft
протокола встречается пара < 1, q0 >.
Добавим к языку программирования булевых схем переменные по
E
конечному множеству D (новый тип данных), константы < #, ∅ >, <
#, q1 >∈ D и дополнительные "встроенные"операции ϕ : D3 → D, πi :
r
{0, 1}n → D, и χ : D → {0, 1}, где
V.
,d
L
χ(< a, q >) = 1 ⇔< a, q >=< 1, q0 > .
_S
f= χ(Γi,T ).
M
i=−S
Y
ры всех этих схем ограничены некоторой константой d (т.к. их конечное
число). Теперь каждый оператор программы в расширенном языке мож-
но заменить на не более m·d операторов в исходном, производящих то же
преобразование значений переменных, но в их двоичном представлении.
Так как входные и выходные переменые нашей программы уже были
T
булевыми, то это преобразование не изменит вычисляемой программой
i
функции. При этом длина программы возрастет не более, чем в m · d
sk
раз, т.е. останется функцией полиномиального роста.
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
50
CO V.
M Kr
up
Le
P L sk
i
ctu E
re X
Глава 6. Класс P/P OLY .
No
tes
,d
IT
aft r Y
Y
Глава 7
T
i
Класс N P . sk
I
up
7.1 Определение класса N P .
X
Определение 7.1 Язык L ⊂ Σ∗ принадлежит классу N P , если суще-
ствует предикат R(x, y) ∈ P и полином q(n) = nk такие, что для всех
Kr
x ∈ Σ∗
aft
x ∈ L ⇔ ∃y(|y| < q(|x|) ∧ R(x, y));
E
соответствующий y называется свидетелем принадлежности x ∈ L.
r
V.
,d
Замечание. Класс не изменится, если в определении ограничить-
L
ся предикатами R(x, y) ∈ P с дополнительным условием R(x, y) ⇒ |y| <
q(|x|), т.е. функцию отбраковки "длинных"свидетелей передать предика-
ту R тоже. Тогда распознавание принадлежности языку L можно пред-
tes
ставить как интерактивный процесс, в котором человек пытается "убе-
дить"машину (распознающую предикат R машину Тьюринга) в том, что
P
51
Le
52 Глава 7. Класс N P .
Y
Другое эквивалентное определение класса N P использует интерак-
тивную модель вычислений – недетерминированные машины Тьюринга.
Отсюда происходит название класса N P – nondeterministic polynomial.
Недетерминированная машина отличается от детерминированной тем,
что в программе разрешается использовать несколько команд с одина-
T
ковой правой частью “qā → . . .”. Вычисление происходит интерактив-
i
но: человек выбирает одну из возможных в данный момент команд, а
sk
машина проверяет допустимость выбора и производит действия. Таким
образом, для данного входа может быть не одно, а несколько вычисле-
ний. Недетерминированная машина распознает (допускает) язык L за
I
время q(n), если
up
X
x∈L ⇒ на входе x существует вычисление
длины ≤ q(|x|) с результатом 1;
x 6∈ L ⇒ все вычисления на входе x не дают
Kr
результата 1.
aft
И в том и в другом случаях допускается наличие незаканчивающихся
вычислений.
E
Определение 7.2 Язык L принадлежит классу N P , если существует
r
полином q и недетерминированная машина Тьюринга, которая распо-
V.
,d
знает L за время q(n).
L
Лемма 7.3 Определения 7.1 и 7.2 эквивалентны.
tes
Доказательство. (⇒). Считаем, что неравенство в определении 7.1 за-
P
qā → . . . 1 . . .
На отдельной рабочей ленте организован счетчик числа повторений,
re
Y
чает, что выбран первый вариант очередной команды, 1 – второй). Рас-
смотрим детерминированную машину M , которая получает y в качестве
дополнительного входа и моделирует интерактивную работу исходной
недетерминированной машины, заменяя человеческое управление чте-
нием очередного бита y. Позаботимся также, чтобы эта машина всегда
T
останавливалась за ≤ q 0 (|x|) шагов (для некоторого полинома q 0 ) и воз-
i
вращала 0 всякий раз, когда исходная не печатала 1 за q(|x|) шагов.
sk
Такая машина M задает требуемый в определении 7.1 предикат R ∈ P ;
в качестве оценки на длину свидетелей подходит полином q.
I
up
7.2 О проблеме P 6= N P .
X
Имеет место включение P ⊂ N P . Для доказательства принадлежности
языка L ∈ P классу N P достаточно взять
Kr
aft
R(x, y) = 1 ⇔ (x ∈ L), q(n) ≡ 1.
E
Вопрос о строгости этого включения, т.е.
r
P 6= N P ?
V.
,d
остается центральной нерешенной проблемой в теории сложности вычис-
L
лений уже более 30 лет. Хотя общественное мнение давно склонилось в
пользу положительного ответа (т.е. неравно) и полезность многих алго-
tes
ритмов основывается на этом (предполагаемом) ответе, строгость вклю-
чения до сих пор не доказана.
P
включения: P ⊂ N P ∩ co-N P ⊂ N P .
Le
54 Глава 7. Класс N P .
NP co-N P
Y
N P ∩ co-N P
T
i
Рис. 7.1: Иерархия классов P , N P , co-N P .
7.3
sk
Примеры задач класса N P .
I
up
Дальнейшие примеры задач из класса N P требуют кодирования рас-
сматриваемых конечных объектов словами подходящего алфавита. Мы
X
предполагаем, что подобное кодирование уже выбрано некоторым ра-
зумным (обычно, очевидным) образом.
Kr
aft
Проблема выполнимости булевых формул (SAT ). Булевы фор-
мулы – это правильные выражения, построенные из булевых переменных
E
p1 , p2 , . . . с помощью булевых связок ∧ (конъюнкция), ∨ (дизъюнкция),
¬ (отрицание) и скобок. Например,
r
V.
,d
(¬(p1 ∧ p2 ) ∨ (¬p1 ∧ p3 )) ∧ p2 .
L
По булевой формуле ϕ(p1 , . . . , pn ) выяснить, существует ли выполняю-
щий ее набор – набор истинностных (0 или 1) значений b1 , . . . , bn , для
tes
которого ϕ(b1 , . . . , bn ) = 1.
Свидетелем правильности ответа “да, выполнима” здесь служит лю-
P
Y
Задача о клике. Подграф данного графа называется кликой, если он
полный, т.е. каждая пара его вершин соединена ребром. Размер клики
T
– это число ее вершин. По графу выяснить, существует ли в нем клика
i
данного размера d. Свидетель здесь – клика.
sk
I
up
X
Полимино, краевая задача. Полимино – это двухмерное домино.
Костяшки - квадратные, на всех четырех сторонах – пометки (буквы
Kr
aft
свой набор типов квадратиков. Краевая задача: на сторонах клетчатого
E
прямоугольника m × n пометки заданы. По краевой задаче и варианту
игры определить, можно ли замостить весь прямоугольник по прави-
лам домино. Для определенности считаем, что крутить костяшки нельзя
r
(фиксирован верх). Свидетель – замощение.
V.
,d
L
Существование целочисленного решения системы линейных нера-
венств. Дана система линейных неравенств с целыми коэффициента-
tes
ми. Выяснить, имеет ли она целочисленное решение. Свидетель – реше-
ние. (Для доказательства принадлежности классу N P нужна полино-
P
1
CO
1 7→ 4
5 1 2 7→ 5
Y
3 7→ 2
1 2 3 4 2 3 4 5
4 7→ 3
6 6 5 7→ 1
6 7→ 6
T
i
sk
• Два графа называются изоморфными, если между их вершина-
ми можно установить взаимно-однозначное соответствие, которое
сохраняет смежность: если две вершины одного графа соединены
I
ребром, то их образы в другом графе – тоже. Само соответствие
up
называется изоморфизмом. Исходными данными задачи является
X
пара графов. Проверить, что данные графы изоморфны. Свиде-
тель здесь – изоморфизм.
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
Y
Глава 8
T
i
Примеры N P -полных задач.
sk
I
up
8.1 Сводимость ≤pm (Карп), N P -полнота.
X
Общий подход к сравнению задач по трудности основан на понятии сво-
димости задач. Он позволяет сравнивать задачи, имеющие форму мас-
Kr
aft
ных индивидуальных задач, различающихся лишь значениями исходных
E
данных). Неформально, задача A сводится к задаче B (т.е. не труднее,
“A ≤ B”), если существует метод (протокол), позволяющий решать каж-
r
дую индивидуальную задачу из A, пользуясь решениями индивидуаль-
V.
,d
ственно ожидать рефлексивность и транзитивность отношения сводимо-
L
сти ≤. Известно много различных по силе формализаций этого поня-
тия. При изучении сложностных классов в первую очередь используют
tes
“много-однозначную сводимость за полиномиальное время” ≤pm (своди-
мость Карпа).
P
Вход: Вопрос:
M
слово x ∈ Σ∗ x∈L?
re
57
Le
58 Глава 8. Примеры N P -полных задач.
Y
3. L1 ≤pm L2 , L2 ∈ N P ⇒ L1 ∈ N P
T
Определение 8.3 Язык L называется N P -трудным, если все языки
i
из N P к нему ≤pm -сводятся. N P -трудный язык называется N P -полным,
sk
если он сам также принадлежит классу N P .
I
Замечание. Понятие N P -полноты первоначально возникло в связи
с попытками доказать гипотезу P 6= N P : если это так, то N P -полные
up
языки должны заведомо лежать в разности N P \ P . В настоящее вре-
X
мя известно много примеров N P -полных задач, но ни про одну из них
не удалось доказать (или опровергнуть), что она не лежит в классе P .
Сейчас характеризация задачи как N P -полной (и N P -трудной тоже)
Kr
aft
шения программными средствами в столь общей постановке: написать
E
программу вполне реально, но обеспечить эффективность ее работы на
всех исходных данных не удается. Естественный выход в этой ситуации
r
– сужение задачи, переход к частным случаям, как раз к тем, в которых
V.
,d
ных продуктов автор настоятельно рекомендует делать это самостоя-
L
тельно и заблаговременно, не дожидаясь уличения во лжи со стороны
пользователей.)
tes
8.2 N P -полнота проблемы выполнимости буле-
P
вых формул.
No
R ∈ P так
CO
и
|y| =
6 p(|x|) ⇒ ¬R(x, y).
Y
В доказательстве теоремы 6.1 о включении P ⊂ P/P oly мы пред-
ложили метод, который для произвольного фиксированного предиката
из класса P по длине входа n строит булеву схему полиномиального
размера, вычисляющую этот предикат на словах длины n. Этот метод
оказывается эффективным в следующем смысле: само отображение
T
i
n 7→ булева схема Sn
sk
оказывается вычислимым за полиномиальное время (см. его описание).
Применим эту конструкцию к предикату R. Тогда схема Sn+p(n) вы-
I
числяет значение предиката R(x, y) по набору битов его аргументов
up
x1 , . . . , xn , y1 , . . . , yp(n) .
X
Переименовывая рабочие переменные схемы добьемся того, чтобы пе-
ременные в левых частях операторов присваивания не повторялись. По-
сле этого сопоставим схеме булеву формулу ϕ(x1 , . . . , xn , y1 , . . . , yp(n) , z1 , . . . , zk )
Kr
aft
формулу (z ↔ t), возьмем конъюнкцию их всех и еще переменной, воз-
вращающей значение всей схемы. Переменными формулы ϕ являются
E
все переменные схемы, а длина ϕ также ограничена сверху полиномом
от n.
r
Обозначим через b(v), v ∈ {0, 1}n , набор формул той же длины n с
V.
,d
компонентами
L
w ∧ ¬w , vi = 0,
bi =
w ∨ ¬w , vi = 1,
tes
где w – не встречавшаяся ранее булева переменная. Рассмотрим следу-
ющее отображение f :
P
n := |v|
No
V
переменных. Тогда конъюнктивные члены формулы ψ = ψj также бу-
дут содержать не более трех переменных каждый. Приведем каждый из
Y
них к КНФ. Это за полиномиальное время даст приведение формулы
ψ к КНФ специального вида, в котором каждый конъюктивный член
содержит не более 3 переменных (так называемые 3-КНФ). Так доказы-
вается
T
Следствие 8.5 Проблема выполнимости 3-КНФ (обозначение: 3SAT )
i
N P -полна.
sk
Замечание. Заметим, что проблемы выполнимости 2-КНФ и ДНФ
принадлежат классу P . Как следствие этого получим, что если P 6= N P ,
I
то задача приведения 3-КНФ к виду ДНФ за полиномиальное время не
up
решается.
X
Kr
aft
E
Доказательство. Язык CLIQU E ∈ N P состоит из слов, кодирующих
пары (G, d), где G - граф, d натуральное число и в графе G есть пол-
ный подграф из d вершин (клика). Достаточно доказать, что 3SAT ≤pm
r
V.
CLIQU E.
,d
Напомним, что литералом называется булева переменная или ее от-
L
рицание. 3-КНФ ϕ есть конъюнкция скобок, каждая из которых есть
дизъюнкция не более трех литералов:
tes
ϕ = . . . ∧ (li,1 ∨ li,2 ∨ li,3 ) ∧ . . . ∧ (lj,1 ∨ lj,2 ∨ lj,3 ) ∧ . . .
P
. . . x . . . ∧ (¬x ∨ y ∨ ¬z) ∧ . . . ¬x . . .
re
Y
можно выбрать по литералу так, чтобы получилась клика (надо выби-
рать li,k = 1 по одному из скобки). Т.е. для функции f (ϕ) := код (G, d),
где d количество дизъюнктивных членов ϕ, выполняется
ϕ ∈ 3SAT ⇔ f (ϕ) ∈ CLIQU E.
Сама f вычислима за полиномиальное время, если все кодирования вы-
T
i
браны достаточно естественно (например, когда граф кодируется мат-
sk
рицей смежностей, числа – двоичным представлением, формулы – своей
записью). Заметим, что константа 3 в этом доказательстве не использо-
валась.
I
up
X
8.4 N P -трудность задачи целочисленного линей-
ного программирования.
Kr
aft
поиска экстремума линейного функционала при наличии ограничений,
E
выраженных системой линейных неравенств. Она не является задачей
распознавания языков, поэтому формально нельзя говорить о ее N P -
r
трудности. Но любые методы ее решения также вынуждены распозна-
V.
,d
вать совместность ограничений, поэтому задача линейного программи-
L
рования не менее трудна, чем задача распознавания совместности си-
стем линейных неравенств. В целочисленном случае последняя задача
уже оказывается (после надлежащей кодировки) задачей распознавания
tes
языка, причем N P -полной задачей. В этом смысле мы утверждаем N P -
трудность задачи целочисленного линейного программирования.
P
0 ≤ xj ≤ 1,
а каждому конъюнктивному члену (l1 ∨ . . . ∨ lk ) сопоставим неравенство
ctu
xj , если li есть xj ,
CO
p1 + . . . + pk > 0, где pi =
1 − xj , если li есть ¬xj .
Le
62 Глава 8. Примеры N P -полных задач.
T Y
i
sk
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
Y
Глава 9
T
i
Класс BP P .
sk
I
up
9.1 Вероятностные вычисления за полиномиаль-
ное время.
X
Вероятностная машина Тьюринга – это машина Тьюринга с дополни-
Kr
aft
имитирующей (физический) датчик случайных чисел. Во всех ее клет-
E
ках заранее записаны 0 или 1, причем предполагается, что это значе-
ния независимых испытаний случайной величины ξ с P rob{ξ = 0} =
r
P rob{ξ = 1} = 1/2. Количество обращений к датчику в процессе вычис-
V.
,d
ления есть величина зоны на этой ленте, в которой побывала головка;
L
содержимое остальных клеток этой ленты не используется. Будем пред-
полагать следующее:
tes
• Вероятностная машина Тьюринга всегда останавливается и в ка-
честве результата выдает 0 или 1.
P
0 1
CO
63
Le
64 Глава 9. Класс BP P .
Y
случайных битов QM (x) – максимум числа использованных клеток
дополнительной ленты-датчика, взятый по всем вариантам вычис-
ления на входе x.
• Случайная величина ζx распознает язык L ⊂ Σ∗ с вероятностью
ошибки α(n), если
T
i
x ∈ L ⇒ P rob{ζx = 1} > 1 − α(|x|),
sk
x 6∈ L ⇒ P rob{ζx = 1} ≤ α(|x|).
I
probabilistic polynomial”), если существует вычислимая за полиномиаль-
up
ное время случайная величина, распознающая L с постоянной вероятно-
X
стью ошибки α(n) = 1/3.
aft
Оказывается удобным переформулировать определение класса BP P в
E
комбинаторных терминах без использования понятия случайной вели-
чины. Рассмотрим полином q(n), ограничивающий сверху число обра-
r
щений к датчику вероятностной машины M , распознающей язык L с
V.
,d
вероятностью ошибки α(n).
L
Предикат R(x, y)
“|y| = q(|x|) и машина M на входе x c содержимым ленты-
tes
датчика y возвращает 1”
принадлежит классу P , причем
P
P rob{M (x) = 1} = .
2q(|x|)
Поэтому
M
|{y||y|=q(|x|), R(x,y)=1}|
x∈L ⇒ 2q(|x|)
> 1 − α(|x|),
(9.1)
re
|{y||y|=q(|x|), R(x,y)=1}|
x 6∈ L ⇒ 2q(|x|)
≤ α(|x|).
Y
частотный распознаватель легко переделать в вероятностную машину
Тьюринга, которая будет распознавать тот же язык с той же вероятно-
стью ошибки. Поэтому определение 9.1 эквивалентно следующему:
T
обладает частотным распознавателем (R, q, α) с α(n) = 1/3.
i
sk
Значение константы 1/3 в этих определениях несущественно – класс
не изменится, если вместо нее взять любое число c, 0 < c < 1/2. За счет
увеличения степени полинома q на 1 можно повысить надежность ответа
I
гораздо больше:
up
X
Лемма 9.3 Каждый язык L с частотным распознавателем (R0 , nd√, 1/3)
обладает также √ частотными распознавателями вида (R1 , nd+1 , (2 2/3)n ),
2
(R2 , nd+2 , (2 2/3)n ), . . ..
Kr
aft
Доказательство. Вычисление значения предиката R1 (x, z):
E
1. вычисляем n := |x| и проверяем условие |z| = nd+1 (если не равно,
то результат 0);
r
V.
,d
2. разбиваем слово z на n кусков длины nd каждый, yi := i-тый
L
кусок;
Y
нулевой вероятностью ошибки (R, q, 0), справедливо
т.е. L ∈ P .
T
Замечание. То же самое имеет место и для более общего формализ-
i
ма вероятностных вычислений на машинах Тьюринга с дополнительной
sk
лентой-датчиком, отличающегося от приведенного выше отсутствием
полиномиальных ограничений на время вычислений и число обращений
к датчику случайных битов (требование к вычислению всегда заканчи-
I
ваться – остается). В самом деле, если для некоторого x при некотором
up
заполнении ленты-датчика бесконечной в обе стороны последовательно-
X
стью y вероятностная машина M дает неверный ответ, то тот же (невер-
ный) ответ она будет давать при заполнении ленты-датчика любой по-
следовательностью z, совпадающей с y в битах с номерами |i| ≤ SM (x).
Kr
aft
вероятностное вычисление с нулевой вероятностью ошибки должно не
E
давать ошибки ни при каком заполнении ленты-датчика. Это означает,
что вместо случайного заполнения можно всю ленту-датчик заполнить
(алгоритмически) нулями.
r
V.
,d
L
9.3 Включение BP P ⊂ P/P oly.
Мы видели, что каждый язык L ∈ P обладает алгоритмом-распознавателем
tes
специального “схемного” вида:
P
Y
точно в качестве Sn (x, y) взять булеву схему, вычисляющую предикат
R(x, y) по битам слов x, |x| = n и y, |y| = q(n). Тогда α(n) будет вероят-
ностью ошибочного ответа.
Следующая теорема показывает, что, в принципе, от ошибки мож-
но избавиться вовсе с помощью хорошего частотного распознавателя и
T
замены датчика случайности на специальный детерминированный вы-
i
бор значений. Эффективный способ “улучшения” частотных распозна-
sk
вателей известен (лемма 9.3), но достаточно работоспособной методики
выбора дополнительных битов нет.
I
Теорема 9.4 BP P ⊂ P/P oly.
up
X
Доказательство. Пусть L ∈ BP P . По лемме √ 9.3 для L существует
2
частотный распознаватель вида (R, q(n), (2 2/3)n ). Обозначим через
Y (x) множество
Kr
aft
√
E
Доля множества Y (x) среди всех слов y длины q(n) не больше (2 2/3)n
и
2
r
2
(2 2/3)n · 2n < 1 при n > n0 .
V.
,d
Отсюда для каждого n > n0 найдется двоичное слово yn такое, что
L
[
|yn | = q(n), yn 6∈ Y (x).
tes
|x|=n
раторов для вычисления битов слова yn (оно одно для всех x длины n),
то получится схема полиномиального размера, вычисляющая предикат
“x ∈ L” на словах длины n.
ctu
CO
Le
68
CO V.
M Kr
up
Le
P L sk
i
ctu E
re X
Глава 9. Класс BP P .
No
tes
,d
IT
aft r Y
Y
Глава 10
T
i
Вероятностный алгоритм sk
распознавания простых
I
up
чисел.
X
Kr
aft
10.1 Сведения из теории чисел.
E
Факт 1 (Следствие из Китайской теоремы об остатках) Пусть n =
r
u · v, (u, v) = 1. Тогда
V.
,d
(ZZn , +, ·) ∼
L
= (ZZu , +, ·) ⊕ (ZZv , +, ·)
и n – составное.
CO
69
Le
70 Глава 10. Распознавание простоты.
Y
Лемма 10.1 Задача поиска решения уравнения
xk = n, k, n ∈ N,
T
i
винного деления с точностью 1. Начальное приближение корня – отрезок
sk
[a, b] := [1, n]. При вычислении середины отрезка округляем до целого
числа, т.е. c := [(a + b)/2]. Для выбора очередного приближения (одного
из отрезков [a, c] или [c, b] в зависимости от результата проверки условия
I
“ck < n”) вычисляем ck , пользуясь двоичным разложением числа k:
up
l1 lt
k = 2l1 + . . . + 2lt , ck = c2 · . . . · c2 ,
X
l
а c2 вычисляем последовательным возведением в квадрат. При этом
прерываем вычисление, если текущий результат стал больше n. Полу-
Kr
aft
не превосходящих n. Количество итераций, достаточных для получения
E
приближения точности (b−a) = 1 есть O(log n). Итого, O((log k+log n)2 )
операций. Остается проверить, не является ли одно из чисел a, b точным
решением, что можно сделать таким же образом за то же время.
r
Метод легко программируется на языке типа BASIC. Доказатель-
V.
,d
ство завершается стандартным моделированием этого языка машинами
L
Тьюринга.
tes
10.3 Вероятностный алгоритм распознавания про-
P
стых чисел.
No
Y
4. Выбираем a случайно из чисел 1, . . . , n − 1.
2
5. Последовательно вычисляем al , a2·l , a2 ·l , . . . , an−1 по модулю n и
ищем такое j < k, что
T
j ·l j+1 ·l
a2 a2
i
6≡ ±1(mod n), ≡ 1(mod n).
sk
Если нашли, то n – составное (Факт 3).
I
1(mod n), то n – составное (Факт 2).
up
10.4 Верификация алгоритма.
X
Kr
aft
это. Если число n составное, то алгоритм установит это с вероят-
ностью, не меньшей, чем 1 − 2−d .
E
Доказательство. Очевидно, что в случае простого n алгоритм никогда
r
не объявит его составным. Неправильный ответ может получиться толь-
V.
,d
ко в случае нечетного составного n = u · v, нод(u, v) = 1. Покажем, что
L
вероятность неправильного ответа в этом случае (т.е. объявления дан-
ного составного числа n простым) при одной итерации шагов 1 – 6 не
превосходит 1/2. Тогда после d итераций получим вероятность ошибки
tes
не более 2−d .
Пусть ≡ означает сравнение по модулю n. Заметим, что если нод(a, n) >
P
n = n1 · c
an−1 ≡ 1 ⇒ n1 ≡ a1n−1 · cn−1 · n1 ≡ 0.
M
G = {a | 1 ≤ a < n, нод(a, n) = 1}
шаги 5, 6 также приведут к правильному ответу (т.е. обнаружат непро-
ctu
Y
Тогда H i – ее подгруппа, а отображение x 7→ xi есть гомоморфизм H на
H i . При этом мощность множества {x ∈ H | xi = h} одна и та же для
всех h ∈ H i . Заметим также, что H i ⊃ (H i )2 = H 2i .
Пусть U и V – мультипликативные группы колец вычетов ZZu и ZZv
T
соответственно. Из Факта 1 следует, что G ∼ = U × V посредством отоб-
i
ражения ϕ(x) = (x mod u , x mod v). Рассмотрим убывающие последо-
вательности подгрупп
Gl ⊃ G2·l ⊃ G2
sk 2 ·l
⊃ . . . ⊃ G2
k ·l
= Gn−1 ⊃ {1},
I
2 ·l k ·l
U l ⊃ U 2·l ⊃ U 2 ⊃ . . . ⊃ U2
up
= U n−1 ⊃ {1},
X
2 ·l k ·l
V l ⊃ V 2·l ⊃ V 2 ⊃ ... ⊃ V 2 = V n−1 ⊃ {1},
j j ·l j
ϕ(G2 ·l ) = U 2 × V 2 ·l , j = 0, . . . , k.
Kr
aft
ляют составное число n = u · v таковым? Это происходит, когда a есть
решение одного из уравнений
шаг 5: x2
j ·l
≡ g,
E j
где g ∈ G2 ·l , 0 ≤ j < k, (10.1)
r
g 6≡ ±1, g 2 ≡ 1,
V.
,d
шаг 6: xn−1 ≡ g, где g ∈ Gn−1 , g 6= 1. (10.2)
L
Сам набор уравнений зависит от n.
Случай 1: U n−1 6= {1} или V n−1 6= {1}. Тогда Gn−1 ∼
= U n−1 × V n−1
tes
также содержит элементы, отличные от 1. Семейство множеств
Mg = {x ∈ G | xn−1 = g}, g ∈ Gn−1
P
s ·l s ·l
j0 = min{s | U 2 =V2 = {1}} − 1 ≥ 0.
Le
10.5. Оценка сложности. 73
Y
Подслучай 2.1: одно из множеств U t , V t есть {1}. В этом случае
−1 6∈ Gt , т.к. (−1, −1) 6∈ U t × V t (изоморфизм ϕ переводит Gt в U t × V t ,
а ϕ(−1) = (−1, −1) ). Рассуждаем аналогично случаю 1. Рассмотрим
разбиение множества G на равномощные части
Mg = {x ∈ G | xt = g}, g ∈ Gt . (10.3)
T
i
Частей не менее двух и только элемены одной из них (M1 ) не удовле-
sk
творяют ни одному из уравнений (10.1) при j = j0 . Поэтому по крайней
мере для половины элементов a ∈ G верно, что если на шаге 4 будет
I
j j +1
выбран именно , то на шаге 5 обнаружится, что a2 0 ·l 6≡ ±1, a2 0 ·l ≡ 1,
up
и число n будет объявлено составным.
Подслучай 2.2: |U t | > 1, |V t | > 1. Тогда |Gt | = |U t | · |V t | ≥ 4. Это
X
означает, что в разбиении (10.3) частей не менее четырех и только эле-
менты одной или двух из них (M1 и может быть M−1 ) не удовлетворяют
ни одному из уравнений (10.1) при j = j0 . Далее повторяем те же рас-
Kr
aft
суждения.
E
10.5 Оценка сложности.
r
V.
,d
Теорема 10.3 Задача распознавания простых чисел принадлежит клас-
L
су BP P . 1
tes
Доказательство. Оценим временную сложность вероятностного алго-
ритма распознавания простых чисел. Число итераций d считаем фик-
P
log n. Это очевидно для всех шагов, кроме шага 4, где требуется вычис-
лить значение случайной величины ξ с распределением
M
P rob{ξ = a} = 1/N, a = 1, . . . , N
re
1
См. сноску на стр. 55.
Le
74 Глава 10. Распознавание простоты.
Y
некоторому (определяемому по n) множеству M , причем |M | ≤ N/2.
Отсюда была получена оценка сверху вероятности ошибки (P rob{ξ ∈
M })d ≤ (1/2)d . Если взять любое другое распределение случайной вели-
чины ξ, то оценка
T
i
сохранится. Поэтому для доказательства теоремы достаточно научить-
sk
ся вычислять на вероятностной машине Тьюринга за время poly(log N )
значение какой-нибудь случайной величины ξ 0 ∈ {1, . . . , N } с P rob{ξ 0 ∈
I
M } ≤ p < 1 (p не зависит от N ), а затем выбрать в алгоритме параметр
up
d из условия pd < 1/3.
Алгоритм вычисления такой случайной величины ξ 0 :
X
Вход: число N . Выбираем число m из условия 2m−1 < N ≤ 2m
и с помощью датчика случайных битов порождаем случайное
Kr
aft
двоичная запись числа k − 1 (с лидирующими нулями). Если
E
k ≤ N , то результатом объявляем k, а в противном случае –
число 1.
r
Величина ξ 0 принимает значения из множества {1, . . . , N }, причем
V.
,d
вероятность каждого значения не меньше 2−m . Отсюда
L
N −m
P rob{ξ 0 ∈ M } ≤ 1 − ·2 ≤ 3/4.
2
tes
Количество обращение к датчику случайных битов и общее время рабо-
P
4.
M
re
ctu
CO
Le
Y
Глава 11
T
i
Конечные игры и класс P H.
sk
I
up
11.1 Конечные игры.
X
Играют два игрока (А) и (М). Начальная конфигурация игры задается
входным словом x ∈ {0, 1}∗ . Правила игры специфицируются следую-
Kr
щими параметрами:
aft
• фиксированным (конечным) количеством ходов k и указанием, кто
начинает;
E
r
• полиномом p, задающим длину одного хода как функцию от |x|;
V.
,d
ход – это слово в алфавите {0, 1} длины p(|x|);
L
• предикатом R ∈ P , задающим условие выигрыша (М) при данной
последовательности ходов w1 , b1 , w2 , b2 , . . .,
tes
R = R(x, w1 , b1 , w2 , b2 , . . .).
P
75
Le
76
Глава 11. Конечные игры и класс P H.
Y
.. p(|x|)
.
w1 ···
.. b1 w2
.
T
i
sk ..
.
I
up
Рис. 11.1: Дерево игры.
X
Kr
aft
ных партий конечно, поэтому для одного из игроков обязательно суще-
E
ствует выигрышная стратегия – функция, определяющая его очередной
ход по всем предыдущим ходам так, что если руководствоваться ей при
r
выборе ходов, то игрок обязательно выиграет.
V.
,d
Пример. Если ходов 2 и начинает (A), то выигрышная стратегия
L
F для (М) – это функция, которая по каждому возможному ходу w1
игрока (A) вычисляет ответный ход b1 для игрока (M). Она должна удо-
tes
влетворять условию ∀w|w|=p(|x|) R(x, w, F (w)). Такая функция сущестует,
если
P
Y
Замечание. Обозначение для класса P H происходит от термина
полиномиальная иерархия (Polynomial Hierarchy), обсуждаемого в сле-
дующей лекции. Собственно полиномиальная иерархия есть набор слож-
ностных классов, структурирующих класс P H, а элементы L ∈ P H –
T
это все языки, сложность которых может быть измерена с помощью по-
i
линомиальной иерархии.
sk
Интерпретация. Игроки - юный Артур и его учитель Мерлин. Ве-
ликий Мерлин обладает неограниченными вычислительными возможно-
стями, в частности, может вычислять выигрышные стратегии, когда они
I
существуют. Он знает, что x ∈ L и хочет передать это знание Артуру.
up
Возможности Артура меньше – доступные ему вычисления полиноми-
X
ально ограничены по времени. При этом он не вполне доверяет Вели-
ким и хочет получить не только сам факт, но и некотое доступное ему
подтверждение. Но он – Избранный и обычно добивается успеха, если
Kr
aft
не слабее Мерлина. Собственных сил Артуру хватает лишь на то, чтобы
проследить за правильностью присуждения выигрыша после окончания
E
игры. В такой ситуации (пока Провидение не покинуло Артура) в ка-
честве подтверждения Мерлину оказывается достаточным выиграть у
r
Артура в соответствующей игре, хотя на самом деле Артур получает
V.
,d
знание
L
“если он все еще Избранный, то x ∈ L ”
и вынужден вечно сомневаться.
tes
Например, они изучают тактику захвата замков. Начальной конфи-
гурацией игры служит план замка. Предполагается, что способов защи-
P
познают один и тот же язык. Легко видеть, что за счет добавления од-
ного хода в начале можно преобразовать любую ограниченную игру в
эквивалентную, в которой начинает заданный игрок, например, (М). Со-
ctu
Y
отбрасывать “сам” предикат выигрыша.
Замечание. Следующие модификации правил игры легко модели-
руются исходными (за счет модификации предиката выигрыша): (а) дли-
на хода не в точности равна, а не превосходит величины p(|x|); (б) ко-
личество ходов не фиксировано, а зависит от входного слова, но огра-
T
i
ничено сверху константой. Более точно это означает, что если язык L
распознается модифицированной игрой, то существует стандартная ко-
sk
нечная игра, которая также распознает L. Идеи моделирования таковы:
I
(a) Длина хода в соответствующей стандартной игре будет nc+1 , где c
есть степень многочлена p. Ход v = v1 . . . vk ∈ {0, 1}∗ , |v| ≤ p(|x|)
up
модифицированной игры моделируется в стандартной игре ходом
X
v1 v1 . . . vk vk 01 |00 {z
. . . 0} .
Kr
|x|c+1 −2k−2
aft
“Стандартный” предикат выигрыша сначала по своим аргументам
E
восстанавливает последовательность ходов модифицированной иг-
ры, а затем вычисляет значение “модифицированного” предиката
r
выигрыша на этой последовательности.
V.
,d
(б) При такой модификации предикат выигрыша имеет два аргумента
L
– начальную конфигурацию x и последовательность ходов w1 b1 w2 b2 . . .,
записанную одним словом без разделителей. Его значение вычис-
tes
ляется после каждого хода, а не только в конце партии. Оконча-
ние партии происходит, когда значение предиката выигрыша после
P
k раз
Y
ход первой делал не тот игрок, который начинает вторую. Последова-
тельность ходов для игры, распознающей L1 ∩ L2 , будет состоять из по-
следовательности ходов первой игры ω1 , которая продолжается последо-
вательностью ходов второй игры – ω2 . В качестве предиката выигрыша
следует взять R1 (x, ω1 ) ∧ R2 (x, ω2 ), где R1 , R2 – предикаты выигрыша
T
первой и второй игр.
i
Случай ∪. Для языков L1 , L2 выберем распознающие их игры так,
sk
чтобы у них совпадали длины и количества ходов, причем в обеих иг-
рах первый ход делал (A). Количество ходов в игре для L1 ∪ L2 будет
на единицу больше, а дополнительный первый ход z будет делать (М).
I
Предикат выигрыша R(x, z, ω) будет
up
X
( (z = 0 . . . 0) ∧ R1 (x, ω) ) ∨ ( (z 6= 0 . . . 0) ∧ R2 (x, ω) ).
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
80 Глава 11. Конечные игры и класс P H.
T Y
i
sk
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
Y
Глава 12
T
i
Полиномиальная иерархия.
sk
I
up
12.1 Классы полиномиальной иерархии
X
Условимся писать ∃p z вместо ∃z|z|=p(|x|) и ∀p z вместо ∀z|z|=p(|x|) .
Kr
aft
ствования выигрышных стратегий для (М) в n-ходовой игре (т.е. условия
“x ∈ L” ). Если в игре начинает (М), то оно имеет вид
E
∃p w1 ∀p b1 ∃p w2 . . . R(x, w1 , b1 , w2 , . . .), R ∈ P, (12.1)
r
где количество кванторов равно n. Такие игры (полином p и предикат
V.
,d
R ∈ P – любые) называются Σpn -играми, а соответствующие языки обра-
L
зуют класс полиномиальной иерархии Σpn . Для игры, в которой начинает
(А), соответствующее условие будет
tes
∀p w1 ∃p b1 ∀p w2 . . . R(x, w1 , b1 , w2 , . . .), R∈P (12.2)
с кванторной приставкой длины n. Эти игры называются Πpn -играми, а
P
ит из всех предикатов вида (12.1), а класс Πpn – вида (12.2), где n есть
длина кванторной приставки. Заметим также, что верхний индекс p в
re
81
Le
82 Глава 12. Полиномиальная иерархия.
Y
• если разрешить в формулах (12.1), (12.2) несколько одноименных
кванторов подряд (в этом случае парамер n есть количество чере-
дований кванторов);
• и то и другое одновременно.
T
i
Замечание. Для доказательства принадлежности языка L классу
sk
полиномиальной иерархии достаточно представить предикат “x ∈ L” в
виде (12.1) или (12.2) не для всех, а только для достаточно длинных слов
I
x, |x| > n0 . Такое “неполное” представление легко переделать в “полное”,
переопределив значение предиката R для коротких слов x следующим
up
образом:
X
1, если |x| ≤ n0 и x ∈ L,
R(x, . . .) :=
0, если |x| ≤ n0 и x 6∈ L.
Kr
aft
ной иерархии.
E
Структурные свойства классов Σpn и Πpn собраны в следующей лемме и
r
отражены на Рис.12.1
V.
,d
L
Лемма 12.2 (Структура P H.)
• Πpn = co-Σpn ;
tes
• Σpn ∪ Πpn ⊂ Σpn+1 ∩ Πpn+1 ;
P
S S S
• n (Σpn ∪ Πpn ) = n Σpn = n Πpn = P H.
текает, что P 6= N P .
Le
12.2. Структурные свойста. 83
T Y
i
PH
sk
I
.. ..
. .
up
Σp2 Πp2
X
Kr
aft
Σp2 ∩ Πp2
E
r
NP = Σp1 Πp1 = co-N P
V.
,d
L
Σp1 ∩ Πp1 BP P
tes
P
P
No
12.3 Пример.
Y
Рассмотрим следующий пример использования полиномиальной иерар-
хии для получения (верхней) оценки сложности конкретной задачи.
Задача. Вершины единичного 2n-мерного куба раскрашены в два
цвета – белый и черный. По данной раскраске выяснить, имеется ли в
кубе n-мерная грань, все вершины которой – белые.
T
i
sk
I
up
X
Kr
aft
раскраски уместно использовать булеву формулу ϕ(x1 , . . . , x2n ), для ко-
торой
E
ϕ(x1 , . . . , x2n ) = 1 ⇔ вершина (x1 , . . . , x2n ) – белая.
r
Будем дополнительно предполагать, что все 2n переменных встречаются
V.
,d
в формуле и ее размер не превосходит фиксированного полинома от n.
L
Рассмотрим язык L, состоящий из всех представленных таким обра-
зом раскрасок, для которых белая n-мерная грань существует. Покажем,
tes
что уточненная так задача попадает в класс Σp2 , т.е. что L ∈ Σp2 .
Двухходовая игра класса Σp2 , которая распознает язык L, такова.
P
xi1 = a1 ,
.. (12.3)
.
M
xin = an ,
самом деле задает белую грань. Это возможно тогда и только тогда,
когда такая грань существует. Таким образом, эта игра действительно
Y
распознает язык L.
Замечание. Следует иметь ввиду, что другие уточнения постанов-
ки задачи могут оказаться неэквивалентными рассмотренной, а потому
иметь совершенно другую сложность. Например, если раскраски пода-
вать на вход распознающему алгоритму в виде списка всех черных вер-
T
шин (вершины задаются своими координатами), то очевидным улучше-
i
нием оценки будет класс N P = Σp1 . Недетеримнированному полиноми-
sk
ально ограниченному по времени допускающему алгоритму достаточно
“угадать” систему уравнений (12.3), задающую белую n-мерную грань,
I
а затем (детерминировано) проверить, что ни одна из вершин списка не
up
принадлежит этой грани. В случае двухходовой игры похожая провер-
ка имитировалась ходом (A), когда фактический перебор осуществляло
X
Провидение, а (A) лишь оглашал самый худший для (M) вариант. Здесь
же перебор заменяется одноразовым просмотром исходных данных, по-
этому проверку может осуществить алгоритм, затратив на это время,
Kr
aft
хранения системы (12.3) можно добиться линейной оценки времени.)
E
12.4 Включение BP P ⊂ Σp2 ∩ Πp2 .
r
V.
,d
Теорема 12.3 BP P ⊂ Σp2 ∩ Πp2 .
L
Сведение. Учитывая дополнительность классов Σp2 и Πp2 достаточно
установить, что для каждого языка L ∈ BP P выполняется L ∈ Σp2 и
tes
Lc ∈ Σp2 . Но так как сам класс BP P замкнут относительно дополнений,
то остается установить следующий факт:
P
No
Y
∃p g1 . . . ∃p gk ∀p g Q0 (x, g1 , . . . , gk , g), Q0 ∈ P,
T
i
Обозначим через G = G(x) множество всех двоичных слов длины
sk
p(|x|). Тогда кванторы ∃p и ∀p есть просто кванторы по переменным,
пробегающим G. Введем на G структуру абелевой группы с операцией
+ – поразрядным сложением по модулю 2. Обозначим
I
up
Y = Y (x) = {y ∈ G | R(x, y)}
X
множество всех “свидетелей”, используемых частотным распознавателем
для проверки условия “x ∈ L”. Мы покажем, что при подходящем выборе
параметров искомое представление есть
Kr
aft
k
_
x ∈ L ⇔ (∃g1 ∈ G) . . . (∃gk ∈ G)(∀g ∈ G)
E i=1
(g ∈ gi + Y ). (12.4)
r
Сначала убедимся, что (при условии полиномиальности k) в правой
V.
,d
части (12.4) под кванторами стоит предикат из класса P :
L
k
_ k
_
0
Q (x, g1 , . . . , gk , g) ⇔ (g ∈ gi + Y ) ⇔ R(x, g − gi ).
tes
i=1 i=1
P
k
!
[
∃g1 , . . . , gk ∈ G (gi + Y ) = G , (12.5)
M
i=1
Y
[k
(gi + Y ) ≤ k · δ · |G|
i=1
откуда следует первое утверждение.
Для доказательства второго утверждения достаточно установить, что
(при указанных условиях) если в качестве gi взять значения, полученные
T
i
в результате независимых испытаний случайной величины, принимаю-
щей произвольные значения из G с равными вероятностями 1/|G|, то
sk k
[
I
P rob{ (gi + Y ) = G } > 0.
up
i=1
X
Оценим вероятность противоположного события, учитывая, что |gi +
Y | = |Y |, а события “g 6∈ (gi + Y )” для фиксированного g и различных i
независимы:
Kr
!
k
aft
_ [
P rob g 6∈ (gi + Y ) ≤ |G| · (1 − δ)k < 1.
g∈G i=1
E
r
В нашем случае величина δ зависит от входного слова x и оценива-
V.
,d
ется функцией от его длины n = |x|:
L
x 6∈ L ⇒ δ < λn ⇒ k · δ < k · λn
x ∈ L ⇒ δ > 1 − λn ⇒ |G| · (1 − δ)k < 2p(n) · λk·n
tes
Положим k = p(n). При достаточно больших n будет k · λn < 1 и
P
2p(n) · λk·n < 1. По лемме 12.5 отсюда следует, что эквивалентность (12.4)
справедлива для всех достаточно длинных слов x.
No
M
re
ctu
CO
Le
88
CO V.
M Kr
up
Le
P L sk
i
ctu E
re X
Глава 12. Полиномиальная иерархия.
No
tes
,d
IT
aft r Y
Y
Глава 13
T
i
Класс P SP ACE.
sk
I
up
13.1 Класс P SP ACE и игры с полиномиальным
числом ходов.
X
Определение 13.1 Класс P SP ACE состоит из всех языков L ⊂ Σ∗ ,
Kr
aft
ем на зону вычисления, т.е. для котороых существует машина Тьюринга
E
M , вычисляющая значения предиката “v ∈ L” на словах v ∈ Σ∗ , причем
r
SM (n) = max SM (v)
|v|=n
V.
,d
есть функция полиномиального роста.
L
Это определение полностью аналогично определению класса P , по-
tes
этому к нему также следует отнести все соответствующие комментарии
из лекции 5. В то же время класс P SP ACE гораздо богаче класса P и,
P
дующихся ходов двух игроков (M) и (A). Для данного x длины ходов
89
Le
90 Глава 13. Класс P SP ACE.
Y
класса распознаваемых языков до |wi | = |bi | < p(|x|) и количества хо-
дов < q(|x|).) Для определенности будем считать, что первый ход всегда
делает (M). Язык L ⊂ {0, 1}∗ распознается игрой, если он состоит из
всех начальных конфигураций, для которых у (M) есть выигрышная
стратегия, т.е.
T
x ∈ L ⇔ ∃p w1 ∀p b1 . . . R(x, w1 b1 . . .).
i
| {z }
q(|x|)
sk
Легко видеть, что игры с полиномиальным числом ходов моделируют
ограниченные игры (из определения P H) – им соответствуют предика-
I
ты выигрыша, существенно зависящие только от фиксированного числа
up
начальных ходов. Поэтому все языки из P H распознаются и такими иг-
X
рами. Ниже термин игра будет означать именно игры с полиномиальным
числом шагов (их также называют детерминированными интерактив-
ными протоколами).
Kr
aft
13.2 Моделирование игры.
E
Пусть даны игра (p, q, R) и начальная конфигурация x. Рассмотрим дере-
r
во игры (см. Рис.11.1). Оно состоит из всевозможных q(|x|)-элементных
V.
,d
последовательностей ходов w1 b1 w2 b2 . . . (ходы соответствуют ребрам; реб-
L
ра ориентированы от корня к листьям). Каждый путь ω из корня к ли-
стьям задает некоторую партию. На соответствующем листе запишем ее
результат, т.е. значение R(x, ω).
tes
Как выяснить существование выигрышной стратегии для (M):
P
Y
мом деле можно обойтись и полиномиальной памятью, реализовав вы-
числение булевых пометок обходом дерева "влево-вниз".
T
i
ти.
sk
Теорема 13.2 Если язык L распознается игрой с полиномиальным ко-
личеством ходов, то L ∈ P SP ACE.
I
up
X
Доказательство. Достаточно показать, что вычисление значения по-
строенной выше {AN D, OR}-схемы можно реализовать на полиноми-
альной зоне, не распределяя память под всю схему целиком.
Kr
aft
рядком ветвления 2p(|x|) . Вершины одного яруса – одинаковые функцио-
E
нальные элементы (либо все – AN D, либо все – OR), причем AN D и OR
ярусы чередуются, а в корне стоит OR. Входные значения (на листьях)
r
вычисляются на полиномиальной зоне с помощью предиката R, если из-
V.
,d
одной вершины, упорядочены (слева направо).
L
На множестве всех вершин зададим линейный порядок "левее или
ниже": x < y если путь из корня в x есть собственное продолжение пути
tes
из корня в y или есть собственное ответвление от этого пути влево:
P
.. ..
. .
No
y •
↓ или . ↓
M
.. .. ..
. . .
x x y
re
Y
OR
. ↓
2p(|x|) ∼ ••• AND
. ↓ (13.1)
••• OR
. ↓
T
i
••• •
sk
Размер подграфа (13.1 ) остается экспоненциальным за счет групп вер-
шин, обозначенных тремя жирными точками. Но каждая такая группа
расположена на одном ярусе, поэтому в значения схемы во всех верши-
I
нах z > x войдет AN D(• • •) или OR(• • •) в зависимости от четности
up
номера яруса. Таким образом, в каждый момент времени достаточно
X
хранить подграф полиномиального размера:
OR
Kr
. ↓
aft
OR(• • •) AND
. ↓
AN D(• • •)
E OR
. ↓
r
OR(• • •) •
V.
,d
L
13.4 Игровая характеризация класса P SP ACE.
tes
Теорема 13.3 Каждый язык L ∈ P SP ACE распознается некоторой
P
Y
Пусть next(C) обозначает следующую за C конфигурацию.
T
Они совместно пересчитывают значения двух числовых переменных l и
i
r. В начальный момент l = 0, r = 2q(|x|) , Cl := C(0), Cr := стандартная
sk
заключительная конфигурация с ответом “да”.
• Ход (M) – пара (Ct , t), причем он утверждает, что (M.1): t = (r+l)/2
I
(легко проверить) и что (M.2): Ct = C(t), чего (A) непосредственно
up
проверить не может.
X
• Ход (A) состоит в выборе варианта пересчета: l := t или r := t
(выбирается одна из половин отрезка).
Kr
aft
конце получается r = l + 1.
E
• Предикат выигрыша: Когда одного из игроков удается уличить в
обмане (если нарушено (M.1) или допущена ошибка в пересчете
r
l, r), то нарушивший первым – проиграл. Если то, что (M) выдает
V.
,d
в конце игры за C(l) и C(l + 1) (т.е. Cl и Cr ) в самом деле не
есть 2 последовательные конфигурации машины Тьюринга M , то
L
выиграл (A). В остальных случаях выиграл (M).
tes
Докажем, что эта игра в самом деле распознает язык L. В случае
x ∈ L выигрыш (M) обеспечен тривиальной стратегией – ему надо просто
P
играть честно.
Разберем случай x 6∈ L. Тогда "правильной"допускающей последова-
No
Y
2. Пусть (M) выберет Ct так, что за t−l шагов машина M не преводит
Cl в Ct . Тогда (A) следует выбрать левую половину, т.е. присваи-
вание r := t.
T
вание l := t.
i
sk
Если досрочного выигрыша не произошло, то условие справедливо и
в конечный момент, когда r = l + 1. По правилам игры (A) в этом случае
также выигрывает.
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
Y
Глава 14
T
i
Полные задачи для класса sk
P SP ACE и классов
I
up
полиномиальной иерархии.
X
Kr
aft
Легко видеть, что класс P SP ACE и каждый класс полиномиальной
иерархии “замкнут вниз” относительно сводимости ≤pm : если C – один
E
из них, то для любых двух языков L1 , L2 выполняется условие
r
L1 ≤pm L2 , L2 ∈ C ⇒ L1 ∈ C.
V.
,d
L
По аналогии с понятием N P -полных задач определим Σpn − и Πpn -полные
задачи как наибольшие (по отношению ≤pm ) элементы соответствующих
классов. Ниже мы приводим типовые примеры таких задач.
tes
P
Q1 x1 . . . Qk xk ϕ, (14.1)
95
Le
96 Глава 14. ΣPN -, ΠPN - и P SP ACE-полные задачи.
Примеры.
Y
• Формула ∀x∃y (x ∨ y) является истинной замкнутой квантифици-
рованной булевой формулой.
T
i
• Формула ∃x (x ∧ ¬y) является незамкнутой квантифицированной
sk
булевой формулой, истинностное значение которой зависит от ис-
тинностного значения переменной y.
I
Заметим, что
up
X
∃xϕ(x) ⇔ ϕ(0) ∨ ϕ(1), ∀xϕ(x) ⇔ ϕ(0) ∧ ϕ(1),
aft
рые утверждения существенно короче.
E
Лемма 14.2 Каждая булева функция f (x1 , . . . , xn ) схемной сложно-
r
сти c(f ) может быть (за полиномиальное время) представлена кван-
V.
,d
тифицированной булевой формулой длины O(c(f )) в каждом из видов
L
Σ1 и Π1 . tes
Доказательство. Пусть булева схема для вычисления f размера c(f ) =
k + 1 есть
P
z1 <- t1;
No
...
zk <- tk;
M
y <- t.
Y
Теорема 14.3 Пусть n ≥ 1. Задача распознавания истинности за-
мкнутых квантифицированных булевых Σn -формул Σpn -полна. Анало-
гичная задача для Πn -формул Πpn -полна.
T
i
Замечание. Мы предполагаем фиксированным побуквенное коди-
рование формул словами в алфавите {0, 1}. Задачи распознавания ис-
sk
тинности формул указанных видов формализуются как задачи распо-
знавания языков, состоящих из кодов формул. Двоичный код формулы
I
F ниже обозначается через “F ”.
up
Доказательство. Сначала проверим, что эти задачи лежат в соответ-
ствующих классах. Пусть дана квантифицированная булева формула F
X
вида (14.1). Заменим в ней каждый блок одноименных булевых кванто-
ров на один квантор по двоичным словам длины m, равной максимуму
количества кванторов в таких блоках. Например,
Kr
aft
F = ∀x1 ∀x2 ∃y1 ∀z1 ∀z1 ϕ(x1 , x2 , y1 , z1 , z2 )
| {z } |{z} | {z }
E
преобразуется в
r
V.
,d
L
где πi – функции “i-тый бит слова”. Теперь заметим, что истинностное
значение выражения под кванторами
tes
(а) не изменится при удлинении слов x, y, z дописыванием справа про-
P
P.
Y
формул. (Случай с Πpn полностью аналогичен.) Пусть
T
ностное значение предиката R(x, w, b, . . .) по битам его аргументов, есть
i
функция полиномиального роста. Более того, доказательство теоремы
sk
6.1 предлагало прямую (полиномиальную по времени) конструкцию по-
строения соответствующей схемы Sf по числу m = |x| + |w| + |w| + . . .,
I
которое, в свою очередь, легко восстановить по |x|.
up
Применим лемму 14.2 к схеме Sf и получим представление булевой
функции f квантифицированной булевой Σ1 или Π1 -формулой Ff . При-
X
чем выберем то из них, в котором кванторы совпадают с самым правым
квантором в (14.2). Тогда
Kr
aft
| {z }
F
E
где формула F справа есть квантифицированная булева Σn -формула
(новых чередований кванторов не добавилось), а отображение
r
V.
,d
x 7→ |x| 7→ m 7→ Sf 7→ Ff 7→ F
L
( т.е. сводящая функция) вычислимо за полиномиальное время.
tes
P
Q1 x1 . . . Qn xn ϕ(x1 , . . . xn ),
ctu
Y
фиктивного квантора ∃ слева можно свести общий случай к
T
Они оба делают ходы длины |F |:
i
sk w1 = w11 w12 . . .
b1 = b11 b21 . . .
w2 = w21 w22 . . .
I
...
up
Количество ходов можно также взять |F |; оно мажорирует число чере-
дований кванторов в формуле. Предикат выигрыша есть
X
R(‘F ’, w1 , b1 , w2 , . . .) ⇔ ϕ[w11 /x11 , . . . , b11 /y11 , . . .]
Kr
aft
(вместо переменных подставляются первые биты соответствующих хо-
E
дов игроков). Истинность F эквивалентна условию существования вы-
игрышной стратегии для (M).
r
V.
,d
L
Теорема 14.5 Язык TQBF является P SP ACE-полным.
tes
Доказательство. Докажем, что произвольный язык L ∈ P SP ACE
≤pm -сводится к TQBF. Рассморим игру с полиномиальным числом хо-
P
дов, распознающую L:
No
x ∈ L ⇔ ∃p w1 ∀p b1 . . . R(x, w1 b1 . . .),
| {z }
q(|x|)
M
x∈L ⇔
ctu
p(|x|) 1 p(|x|)
∃w1 . . . ∃w1 ∀b . . . ∀b1 . . . (S(x, w1 , b1 . . .) = 1).
| 1 {z 1
CO
}
p(|x|)·q(|x|)
Le
100 Глава 14. ΣPN -, ΠPN - и P SP ACE-полные задачи.
Y
Получим квантифицированную булеву формулу
p(|x|) p(|x|)
F (x) = ∃w11 . . . ∃w1 ∀b11 . . . ∀b1 . . . G,
для которой
v ∈ L ⇔ F (v) ∈ TQBF.
T
i
Все преобразования v 7→ F (v) сами могут быть проведены за поли-
sk
номиальное время, что и доказывает сводимость L ≤pm P SP ACE.
I
up
X
Kr
aft
E
r
V.
,d
L
tes
P
No
M
re
ctu
CO
Le
Y
Литература
T
i
sk
[1] А. Ахо, Дж. Хопкрофт, Дж. Ульман Построение и анализ вычисли-
тельных алгоритмов. М.: Мир, 1979.
I
up
[2] М. Гэри, Д. Джонсон Вычислительные машины и труднорешаемые
задачи. М.: Мир, 1982.
X
[3] А. Китаев, А. Шень, М. Вялый. Классические и квантовые вычисле-
ния. М.: МЦНМО, ЧеРо, 1999.
Kr
aft
[4] Дж. Сэвидж. Сложность вычислений. М.: Изд-во “Факториал”, 1998.
r
[6] J. van Leeuwen, ed. Handbook of Theoretical Computer Science. Volume
V.
,d
A. Algorithms and Complexity. Amsterdam et al.: Elsevier / Cambridge,
L
MA: MIT Press, 1990.
tes
[7] M. Sipser. Introduction to the Theory of Computation. Boston: PWS
Publishing Company, 1997.
P
No
M
re
ctu
CO
101
Le