ЛЕКЦИЯ 13 КЛАСС BPP. ЗАДАЧИ ПОДСЧЕТА 1. Зависимость от «монетки»

advertisement
ЛЕКЦИЯ 13
КЛАСС BPP. ЗАДАЧИ
ПОДСЧЕТА
1. Зависимость от «монетки»
Зависимости такого рода используются в некоторых классах вероятностных вычислений. Часто встречаются случаи, когда значения 0 и 1 выпадают не с одинаковыми вероятностями (0,5), а с разными. Рассмотрим вероятностные вычисления со случайной
величиной, которая равна 1 с вероятностью 𝑝 и 0 с вероятностью 1 − 𝑝. При решении
различных задач используются разные значения 𝑝. Важно, является ли 𝑝 эффективно
вычислимым.
Например, можно считать, что последовательность из 0 и 1 кодирует ответы на требуемые вопросы (в битах числа 𝑝 будут записаны ответы ко всем входам). Тогда можно
повторять опыт по выбору одного из двух случайных значений («подбрасывание монетки») и с высокой степенью точности вычислять конкретный бит (можно рассматривать
невыполнимый язык и считать, что 𝑝 задает его характеристическую функцию).
Если 𝑝 не вычислимо (вычислимое число — это число, по номеру одного из битов которого можно вычислить другие биты), то можно вычислить биты 𝑝 с высокой
вероятностью.
В любом случае можно создать модель «честной монеты». Для этого можно провести
бросание монеты два раза:
01 → 0;
10 → 1;
00, 11 → повторить.
Если 𝑝 является полиномиально вычислимым (то есть если за время poly(𝑖) можно
вычислить 𝑝u� ), то монету (𝑝, 1 − 𝑝) можно смоделировать при помощи обычной. В общем
случае применяется следующий алгоритм: пусть 𝑏u� — случайный бит, 𝑝u� — бит 𝑝. Если
𝑏u� < 𝑝u� → выдать 1;
𝑏u� > 𝑝u� → выдать 0;
!
Конспект не проходил проф. редактуру, создан студентами и,
возможно, содержит смысловые ошибки.
Следите за обновлениями на lectoriy.mipt.ru.
2
𝑏u� = 𝑝u� → перейти к 𝑖 + 1.
1
В качестве примера рассмотрим .
3
1
= 0, 1010101 …2
3
— в двоичной записи.
На первых двух шагах:
10 → 0;
11 → 0;
00 → 1;
01 → повторить.
2. Вероятностное вычисление с ограничением на память
Широко используется класс BPPSPACE=PSPACE: можно посчитать все вероятности на
полиномиальной памяти.
Также существуют логарифмические вероятностные вычисления. Например, SPL,
RL — классы языков, которые распознаются вероятностной машиной на логарифмической памяти с двусторонней или односторонней ошибкой.
Рассмотрим задачу пути в графе UPATH ∈ RL — существование пути из 𝑠 в 𝑡 в ненаправленном графе. Можно запустить достаточно долгое случайное блуждание. Если 𝑡
будет посещено, то ответ «да» (∼ 𝑙4 ). Если 𝑡 не будет посещено, то ответ «нет».
Для ориентированный графов эта схема не работает, то есть вопрос о том, как соотносятся RL и NL, остается открытым. Утверждение PATH ∈ RL нельзя доказать при
помощи случайных блужданий.
Рис. 13.1
Рассмотрим цепочку, в каждой вершине которой есть ребро, ведущее к началу. Чтобы
пройти до 𝑛-й вершины, нужно 𝑛 раз подряд выбрать соответствующее ребро. Вероятность перехода 𝑝 = 2−u� . Значит, средняя длина будет расти экспоненциально.
3. Задачи подсчета
В этом разделе будут рассматриваться задачи распознавания.
SAT = {𝜙|𝜙 — выполнимый функционал};
!
Для подготовки к экзаменам пользуйтесь учебной литературой.
Об обнаруженных неточностях и замечаниях просьба писать на
pulsar@ phystech. edu
3
!
Конспект не проходил проф. редактуру, создан студентами и,
возможно, содержит смысловые ошибки.
Следите за обновлениями на lectoriy.mipt.ru.
CYCLE = {𝐺|𝐺 — ориентированный граф, содержащий ориентированный цикл} ∈ P.
Существуют модификации этих задач: #SAT — задача подсчета по формуле 𝜙 числа
выполняющих наборов, #CYCLE — задача подсчета по графу 𝐺 числа ориентированных
циклов.
#SAT — NP-трудная; по ее результату можно решить NP-трудную задачу (сравниваем ответ с 0 — решаем SAT). #CYCLE — также NP-трудная. Она позволяет решить
задачу о гамильтоновом цикле, которая имеет следующую конструкцию:
Пусть 𝐺 — граф, в котором ищется гамильтонов цикл.
Заменим каждое ребро 𝑢 → 𝑣 на следующую структуру:
Рис. 13.2
Число способов пройти: 2u� = 𝑛u� .
Если в графе есть гамильтонов цикл, то есть цикл длины 𝑛 в исходном графе, а
2
значит, есть более чем (𝑛u� )u� = 𝑛u� циклов в новом графе.
Если в графе нет гамильтонова цикла, то все циклы имеют длину, не превышающую
𝑛 − 1, и количество циклов в старом графе не превосходит 𝑛u�−1 . Значит, число циклов
2
2
в новом графе не превосходит 𝑛u�−1 ⋅ (𝑛u� )u�−1 = 𝑛u� −1 < 𝑛u� . Алгоритм, сравнивающий
2
число циклов с 𝑛u� , превращается в алгоритм, решающий задачу HAMCYCLE.
Определение 48: #P — это класс задач подсчета вида:
вход: 𝑥;
выход: #{𝑦 ∈ {0, 1}u�(|u�|) ∶ 𝑉 (𝑥, 𝑦) = 1},
где 𝑉 — полиномиальный алгоритм (т. е. это класс задач подсчета сертификатов для
некоторого NP-верификатора).
♣
Определение 49: FP — это класс функций, вычислимых за полиномиальное время.♣
Справедливо следующее соотношение:
FP ⊂ #P.
Если функция
𝑉 (𝑥, 𝑦) = {
1,
0,
𝑦 < 𝑓(𝑥);
𝑦 ⩾ 𝑓(𝑥)
вычислима за полиномиальное время, то из нее можно сделать верификатор 𝑉 , для
которого количество сертификатов будет равно значению функции. 𝑓(𝑥) — некоторое
число, которое записывается полиномиальным числом битов; 𝑦 — число, записанное тем
!
Для подготовки к экзаменам пользуйтесь учебной литературой.
Об обнаруженных неточностях и замечаниях просьба писать на
pulsar@ phystech. edu
!
Конспект не проходил проф. редактуру, создан студентами и,
возможно, содержит смысловые ошибки.
Следите за обновлениями на lectoriy.mipt.ru.
4
же числом битов. Число 𝑦, которые меньше 𝑓(𝑥), равно 𝑓(𝑥) (если начинать отсчет с
нуля).
Если FP=#P, то P=NP (это значит, что можно находить число сертификатов за
полиномиальное время и сравнивать с нулем). Если P=PSPACE, то FP=#P (так как на
полиномиальной памяти можно найти число сертификатов).
Теорема 25 FP = #P ⟺ P = PP, где
1
PP = {𝐿 ∶ ∃ 𝑉 𝑥 ∈ 𝐿 ⟺ доля {𝑦 ∶ 𝑉 (𝑥, 𝑦) = 1} ⩾ } .
2
Док-во: ⟹ Если#P=FP, то количество 𝑦 можно посчитать точно.
⟸ Нужно доказать, что #P ⊂ FP, то есть количество 𝑦 ∶ 𝑉 (𝑥, 𝑦) = 1 можно найти
1
точно, если есть возможность сравнивать его с .
2
Используем двоичный поиск. Реализация (здесь 𝑏 ∈ {0, 1}):
⎧𝑉 (𝑥, 𝑦), 𝑏 = 0;
{
𝑊u� (𝑥, 𝑏𝑦) = 1,
𝑏 = 1, 𝑦 < 𝑁 ;
⎨
{0,
𝑏 = 1, 𝑦 ⩾ 𝑁 .
⎩
#{𝑧 ∶ 𝑊 (𝑥, 𝑧) = 1} = 𝑁 + #{𝑦 ∶ 𝑉 (𝑥, 𝑦) = 1}.
1 |u�|
⋅ 2 = 2|u�| . Значит, можно
2
сравнивать #{𝑦 ∶ 𝑉 (𝑥, 𝑦) = 1} с 2|u�| − 𝑁 . Подстановкой нужных 𝑁 двоичным поиском
находим точное значение. Таким образом, FP = #P.
Если P = PP, то можно сравнивать #{𝑧 ∶ 𝑊 (𝑥, 𝑦) = 1} с
!
Для подготовки к экзаменам пользуйтесь учебной литературой.
Об обнаруженных неточностях и замечаниях просьба писать на
pulsar@ phystech. edu
Download