<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.178.17.88&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.178.17.88&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/178.178.17.88"/>
		<updated>2026-04-28T03:18:55Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%92%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F._%D0%92%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0&amp;diff=23329</id>
		<title>Вероятностные вычисления. Вероятностная машина Тьюринга</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%92%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F._%D0%92%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0&amp;diff=23329"/>
				<updated>2012-06-03T07:22:03Z</updated>
		
		<summary type="html">&lt;p&gt;178.178.17.88: /* Соотношение вероятностных классов */ program naming fixup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Теория сложности]]&lt;br /&gt;
'''Вероятностные вычисления''' — один из подходов в теории вычислительной сложности, в котором программы получают доступ, говоря неформально, к генератору случайных чисел. Мы рассмотрим классы сложности, для которых программы могут работать за полиномиальное время и делать односторонние, двусторонние ошибки или работать за полиномиальное время лишь в среднем случае.&lt;br /&gt;
&lt;br /&gt;
== Основные определения ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Вероятностная лента''' — бесконечная в одну сторону последовательность битов, распределение которых подчиняется некоторому вероятностному закону (обычно считают, что биты в различных позициях независимы и вероятность нахождения &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; в каждой позиции равна &amp;lt;tex&amp;gt;1/2&amp;lt;/tex&amp;gt;).&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Вероятностная машина Тьюринга''' (ВМТ) — детерминированная машина Тьюринга, имеющая вероятностную ленту. Переходы в ВМТ могут осуществляться с учетом информации, считанной с вероятностной ленты.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Используя тезис Черча-Тьюринга, ВМТ можно сопоставить программы, имеющие доступ к случайным битам. Обращение к очередному биту можно трактовать как вызов специальной функции ''random''(). При этом также будем предполагать, что вероятностная лента является неявным аргументом программы или ВМТ, т.е. &amp;lt;tex&amp;gt;p(x) = p(x, r)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; — вероятностная лента.&lt;br /&gt;
&lt;br /&gt;
Введем [http://ru.wikipedia.org/wiki/Вероятностное_пространство вероятностное пространство] &amp;lt;tex&amp;gt;(\Omega, \Sigma, \operatorname{P})&amp;lt;/tex&amp;gt;, где пространство элементарных исходов &amp;lt;tex&amp;gt;\Omega&amp;lt;/tex&amp;gt; — множество всех вероятностных лент, &amp;lt;tex&amp;gt;\Sigma&amp;lt;/tex&amp;gt; — сигма-алгебра подмножеств &amp;lt;tex&amp;gt;\Omega&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;\operatorname{P}&amp;lt;/tex&amp;gt; — вероятностная мера, заданная на &amp;lt;tex&amp;gt;\Sigma&amp;lt;/tex&amp;gt;. Будем считать, что &amp;lt;tex&amp;gt;\Sigma&amp;lt;/tex&amp;gt; порождена событиями, зависящими лишь от конечного числа бит вероятностной ленты (то есть существующими в дискретных вероятностных пространствах). Покажем, что любой предикат от ВМТ является событием.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement= Пусть &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; — ВМТ. Тогда для любых &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt; — предиката от &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; выполняется &amp;lt;tex&amp;gt;R = \{r | A(m(x, r))\} \in \Sigma&amp;lt;/tex&amp;gt;, т.е. &amp;lt;tex&amp;gt;R&amp;lt;/tex&amp;gt; измеримо.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;R = \bigcup\limits_{i = 0}^\infty R_i&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;R_i = \{r | A(m(x, r)), m&amp;lt;/tex&amp;gt; прочитала ровно &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; первых символов с &amp;lt;tex&amp;gt;r\}&amp;lt;/tex&amp;gt;. Это верно, поскольку мы рассматриваем только завершающиеся ВМТ. Кроме того, из определения &amp;lt;tex&amp;gt;R_i&amp;lt;/tex&amp;gt; следует, что они дизъюнктны.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;R_i \in \Sigma&amp;lt;/tex&amp;gt; как зависящие от &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; первых битов вероятностной ленты, &amp;lt;tex&amp;gt;\operatorname{P}(R_i) = \frac{1}{2^i} \cdot |\{s : |s| = i, s&amp;lt;/tex&amp;gt; — префикс &amp;lt;tex&amp;gt;r \in R_i\}|&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;R \in \Sigma&amp;lt;/tex&amp;gt; как счетное объединение событий, при этом из их дизъюнктности следует, что &amp;lt;tex&amp;gt;\operatorname{P}(R) = \sum\limits_{i = 0}^{\infty} \operatorname{P}(R_i)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Вероятностные сложностные классы ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{ZPP}&amp;lt;/tex&amp;gt; (от ''zero-error probabilistic polynomial'') — множество языков &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, для которых &amp;lt;tex&amp;gt;\exists p \forall x&amp;lt;/tex&amp;gt;:&lt;br /&gt;
# &amp;lt;tex&amp;gt;\operatorname{P}(p(x) \ne [x \in L]) = 0&amp;lt;/tex&amp;gt;;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt;\operatorname{E}[\operatorname{T}(p(x))] = poly(|x|)&amp;lt;/tex&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{ZPP}&amp;lt;/tex&amp;gt; — сложностный класс, такой что программы, удовлетворяющие его ограничениям, не могут делать ошибок, но работают за полиномиальное время только в среднем случае.&lt;br /&gt;
&lt;br /&gt;
Напомним, что математическое ожидание является усреднением по вероятностным лентам, а не по входу &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{RP}&amp;lt;/tex&amp;gt; (от ''randomized polynomial'') — множество языков &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, для которых &amp;lt;tex&amp;gt;\exists p \forall x&amp;lt;/tex&amp;gt;:&lt;br /&gt;
# &amp;lt;tex&amp;gt;x \notin L \Rightarrow \operatorname{P}(p(x) = 0) = 1&amp;lt;/tex&amp;gt;;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt;x \in L \Rightarrow \operatorname{P}(p(x) = 1) \ge 1/2&amp;lt;/tex&amp;gt;;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;tex&amp;gt;\forall r \operatorname{T}(p(x)) \le poly(|x|).&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{RP}&amp;lt;/tex&amp;gt; — сложностный класс, допускающий ошибки программ на словах из &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Заметим, что константа &amp;lt;tex&amp;gt;1/2&amp;lt;/tex&amp;gt; в пункте 2 определения &amp;lt;tex&amp;gt;\mathrm{RP}&amp;lt;/tex&amp;gt; может быть заменена на любую другую из промежутка &amp;lt;tex&amp;gt;(0, 1)&amp;lt;/tex&amp;gt;, поскольку требуемой вероятности можно добиться множественным запуском программы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{RP}&amp;lt;/tex&amp;gt; можно рассматривать как вероятностный аналог класса &amp;lt;tex&amp;gt;\mathrm{NP}&amp;lt;/tex&amp;gt;, предполагая, что вероятность угадать сертификат в случае его существования не менее &amp;lt;tex&amp;gt;1/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{coRP} = \{L | \overline L \in \mathrm{RP}\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Класс &amp;lt;tex&amp;gt;\mathrm{coRP}&amp;lt;/tex&amp;gt; допускает ошибки программ на словах, не принадлежащих &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{BPP}&amp;lt;/tex&amp;gt; (от ''bounded probabilistic polynomial'') — множество языков &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, для которых &amp;lt;tex&amp;gt;\exists p \forall x&amp;lt;/tex&amp;gt;:&lt;br /&gt;
# &amp;lt;tex&amp;gt;\operatorname{P}(p(x) = [x \in L]) \ge 2/3&amp;lt;/tex&amp;gt;;&lt;br /&gt;
# &amp;lt;tex&amp;gt;\forall r \operatorname{T}(p(x)) \le poly(|x|)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{BPP}&amp;lt;/tex&amp;gt; — сложностный класс, допускающий двусторонние ошибки.&lt;br /&gt;
Аналогично сделанному выше замечанию, константу &amp;lt;tex&amp;gt;2/3&amp;lt;/tex&amp;gt; можно заменить на любое число из промежутка &amp;lt;tex&amp;gt;(1/2, 1)&amp;lt;/tex&amp;gt;. Замена константы на &amp;lt;tex&amp;gt;1/2&amp;lt;/tex&amp;gt; сделало бы данный класс равным &amp;lt;tex&amp;gt;\Sigma^*&amp;lt;/tex&amp;gt; (программа, возвращающая результат функции ''random''(), подошла бы для любого языка).&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{PP}&amp;lt;/tex&amp;gt; (от ''probabilistic polynomial'') — множество языков &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, для которых &amp;lt;tex&amp;gt;\exists p \forall x&amp;lt;/tex&amp;gt;:&lt;br /&gt;
# &amp;lt;tex&amp;gt;\operatorname{P}(p(x) = [x \in L]) &amp;gt; 1/2&amp;lt;/tex&amp;gt;;&lt;br /&gt;
# &amp;lt;tex&amp;gt;\forall r \operatorname{T}(p(x)) \le poly(|x|)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{PP}&amp;lt;/tex&amp;gt; также допускает двусторонние ошибки, но является более широким по сравнению с &amp;lt;tex&amp;gt;\mathrm{BPP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Соотношение вероятностных классов ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = &amp;lt;tex&amp;gt;\mathrm{P} \subset \mathrm{ZPP} = \mathrm{RP} \cap \mathrm{coRP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof =&lt;br /&gt;
Утверждение &amp;lt;tex&amp;gt;\mathrm{P} \subset \mathrm{ZPP}&amp;lt;/tex&amp;gt; является очевидным, так как программы, удовлетворяющие ограничениям &amp;lt;tex&amp;gt;\mathrm{P}&amp;lt;/tex&amp;gt;, также удовлетворяют ограничениям класса &amp;lt;tex&amp;gt;\mathrm{ZPP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Покажем, что &amp;lt;tex&amp;gt;\mathrm{ZPP} = \mathrm{RP} \cap \mathrm{coRP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Для этого определим вспомогательный класс &amp;lt;tex&amp;gt;\mathrm{ZPP}_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{ZPP}_1&amp;lt;/tex&amp;gt; — множество языков &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, для которых &amp;lt;tex&amp;gt;\exists p \forall x&amp;lt;/tex&amp;gt;:&lt;br /&gt;
# &amp;lt;tex&amp;gt;p(x) \in \{0, 1, ?\}&amp;lt;/tex&amp;gt;;&lt;br /&gt;
# &amp;lt;tex&amp;gt;p(x) \ne \enskip? \Rightarrow p(x) = [x \in L]&amp;lt;/tex&amp;gt;;&lt;br /&gt;
# &amp;lt;tex&amp;gt;\operatorname{P}(p(x) = \enskip?) \le 1/2&amp;lt;/tex&amp;gt;;&lt;br /&gt;
# &amp;lt;tex&amp;gt;\forall r \operatorname{T}(p(x)) \le poly(|x|).&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
1. Сначала докажем, что &amp;lt;tex&amp;gt;\mathrm{ZPP} = \mathrm{ZPP}_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;tex&amp;gt;\mathrm{ZPP} \subset \mathrm{ZPP}_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; — случайная величина, равная времени работы программы &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; для &amp;lt;tex&amp;gt;\mathrm{ZPP}&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;X &amp;gt; 0&amp;lt;/tex&amp;gt;. Запишем [http://ru.wikipedia.org/wiki/Неравенство_Маркова неравенство Маркова]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\operatorname{P}(X &amp;gt; k \operatorname{E}[X]) \le 1/k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Подставим &amp;lt;tex&amp;gt;k = 2&amp;lt;/tex&amp;gt;. Тогда, если запустить программу &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; для &amp;lt;tex&amp;gt;\mathrm{ZPP}&amp;lt;/tex&amp;gt; с ограничением по времени &amp;lt;tex&amp;gt;2E[X]&amp;lt;/tex&amp;gt;, она не успеет завершиться с вероятностью, не превышающей &amp;lt;tex&amp;gt;1/2&amp;lt;/tex&amp;gt;. Опишем программу &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; для &amp;lt;tex&amp;gt;\mathrm{ZPP}_1&amp;lt;/tex&amp;gt;. Она будет возвращать &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;, если &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; не успеет завершиться, а иначе — результат работы программы &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;. Заметим, что &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; работает полиномиальное время, так как &amp;lt;tex&amp;gt;E[X]&amp;lt;/tex&amp;gt; ограничено некоторым полиномом по определению класса &amp;lt;tex&amp;gt;\mathrm{ZPP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) &amp;lt;tex&amp;gt;\mathrm{ZPP_1} \subset \mathrm{ZPP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Будем запускать программу &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; для &amp;lt;tex&amp;gt;\mathrm{ZPP_1}&amp;lt;/tex&amp;gt;, пока не получим ответ, отличный от &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;. Математическое ожидание количества запусков &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; не превышает &amp;lt;tex&amp;gt;\sum\limits_{k = 0}^\infty \frac{k}{2^k} = 2&amp;lt;/tex&amp;gt;. Значит, новая программа будет в среднем работать за полиномиальное время, что и требуется для класса &amp;lt;tex&amp;gt;\mathrm{ZPP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Теперь покажем, что &amp;lt;tex&amp;gt;\mathrm{ZPP}_1 = \mathrm{RP} \cap \mathrm{coRP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;tex&amp;gt;\mathrm{ZPP}_1 \subset \mathrm{RP}&amp;lt;/tex&amp;gt;. Достаточно вместо &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt; возвращать &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2) &amp;lt;tex&amp;gt;\mathrm{ZPP}_1 \subset\mathrm{coRP}&amp;lt;/tex&amp;gt;. Достаточно вместо &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt; возвращать &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) &amp;lt;tex&amp;gt;\mathrm{ZPP}_1 \supset \mathrm{RP} \cap \mathrm{coRP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Пусть программа &amp;lt;tex&amp;gt;p_1&amp;lt;/tex&amp;gt; удовлетворяет ограничениям &amp;lt;tex&amp;gt;\mathrm{RP}&amp;lt;/tex&amp;gt; и ошибается на словах из языка &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; с вероятностью не более &amp;lt;tex&amp;gt;1/2&amp;lt;/tex&amp;gt;, а программа &amp;lt;tex&amp;gt;p_2&amp;lt;/tex&amp;gt; удовлетворяет ограничениям &amp;lt;tex&amp;gt;\mathrm{coRP}&amp;lt;/tex&amp;gt; и ошибается на словах не из языка &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; с аналогичной вероятностью. Построим программу &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; для &amp;lt;tex&amp;gt;\mathrm{ZPP}_1&amp;lt;/tex&amp;gt;:&lt;br /&gt;
  q(x)&lt;br /&gt;
    '''if''' &amp;lt;tex&amp;gt;p_2&amp;lt;/tex&amp;gt;(x) = 0&lt;br /&gt;
      '''return''' 0&lt;br /&gt;
    '''if''' &amp;lt;tex&amp;gt;p_1&amp;lt;/tex&amp;gt;(x) = 1&lt;br /&gt;
      '''return''' 1&lt;br /&gt;
    '''return''' ?&lt;br /&gt;
&lt;br /&gt;
Вероятность вывести &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt; есть &amp;lt;tex&amp;gt;\operatorname{P}(p_2(x) = 1, p_1(x) = 0) \le 1/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = &amp;lt;tex&amp;gt;\mathrm{RP} \subset \mathrm{NP} \subset \mathrm{PP} \subset \mathrm{PS}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof =&lt;br /&gt;
1. &amp;lt;tex&amp;gt;\mathrm{RP} \subset \mathrm{NP}&amp;lt;/tex&amp;gt;. Если в программе для &amp;lt;tex&amp;gt;L \in \mathrm{RP}&amp;lt;/tex&amp;gt; заменить все вызовы ''random''() на недетерминированный выбор, то получим программу для &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; с ограничениями &amp;lt;tex&amp;gt;\mathrm{NP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;tex&amp;gt;\mathrm{NP} \subset \mathrm{PP}&amp;lt;/tex&amp;gt;. Приведем программу &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; с ограничениями класса &amp;lt;tex&amp;gt;\mathrm{PP}&amp;lt;/tex&amp;gt;, которая разрешает &amp;lt;tex&amp;gt;L \in \mathrm{NP}&amp;lt;/tex&amp;gt;. Пусть функция ''infair_coin''() моделирует нечестную монету, а именно возвращает единицу с вероятностью &amp;lt;tex&amp;gt;1/2 - \varepsilon&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;\varepsilon&amp;lt;/tex&amp;gt; мы определим позже, и ноль с вероятностью &amp;lt;tex&amp;gt;1/2 + \varepsilon&amp;lt;/tex&amp;gt;. Пусть также &amp;lt;tex&amp;gt;V&amp;lt;/tex&amp;gt; — верификатор сертификатов для &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; будет выглядеть следующим образом:&lt;br /&gt;
  q(x)&lt;br /&gt;
    c &amp;lt;- случайный сертификат (полиномиальной длины)&lt;br /&gt;
    '''if''' V(x, c)&lt;br /&gt;
      '''return''' 1&lt;br /&gt;
    '''return''' infair_coin()&lt;br /&gt;
Необходимо удовлетворить условию &amp;lt;tex&amp;gt;\operatorname{P}(p(x) = [x \in L]) &amp;gt; 1/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;x \notin L&amp;lt;/tex&amp;gt;. В этом случае &amp;lt;tex&amp;gt;V(x, c)&amp;lt;/tex&amp;gt; вернет &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; и результат работы программы будет зависеть от нечестной монеты. Она вернет &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; с вероятностью &amp;lt;tex&amp;gt;1/2 + \varepsilon &amp;gt; 1/2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;x \in L&amp;lt;/tex&amp;gt;. Тогда [[Формула полной вероятности|по формуле полной вероятности]] &amp;lt;tex&amp;gt;\operatorname{P}(p(x) = 1) = p_0 + (1 - p_0) (1/2 - \varepsilon)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;p_0&amp;lt;/tex&amp;gt; — вероятность угадать правильный сертификат. Заметим, что поскольку  длина всех сертификатов ограничена некоторым полиномом &amp;lt;tex&amp;gt;s(n), n = |x|&amp;lt;/tex&amp;gt; и существует хотя бы один правильный сертификат, &amp;lt;tex&amp;gt;p_0 \ge 2^{-s(n)}&amp;lt;/tex&amp;gt;. Найдем &amp;lt;tex&amp;gt;\varepsilon&amp;lt;/tex&amp;gt; из неравенства &amp;lt;tex&amp;gt;\operatorname{P}(p(x) = 1) &amp;gt; 1/2&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;p_0 + 1/2 - \varepsilon - p_0 / 2 + p_0 \varepsilon &amp;gt; 1/2&amp;lt;/tex&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;p_0 / 2 + (p_0 - 1)\varepsilon &amp;gt; 0&amp;lt;/tex&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\varepsilon &amp;lt; \frac{p_0}{2 (1 - p_0)}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Достаточно взять &amp;lt;tex&amp;gt;\varepsilon \le p_0 / 2&amp;lt;/tex&amp;gt;. Из сделанного выше замечания следует, что работу функции ''infair_coin''() можно смоделировать с помощью не более чем &amp;lt;tex&amp;gt;s(n) + 1&amp;lt;/tex&amp;gt; вызовов ''random''(). Таким образом, мы построили программу &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt;, удовлетворяющую ограничениям класса &amp;lt;tex&amp;gt;\mathrm{PP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3. &amp;lt;tex&amp;gt;\mathrm{PP} \subset \mathrm{PS}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; — программа для языка &amp;lt;tex&amp;gt;L \in \mathrm{PP}&amp;lt;/tex&amp;gt;. Она используют не более чем полиномиальное количество вероятностных бит, так как сама работает за полиномиальное время. Тогда программа для &amp;lt;tex&amp;gt;\mathrm{PS}&amp;lt;/tex&amp;gt; будет перебирать все участки вероятностных лент нужной полиномиальной длины и запускать на них &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;. Ответом будет &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; в зависимости от того, каких ответов &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; оказалось больше.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement =&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{RP} \cup \mathrm{coRP} \subset \mathrm{BPP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof =&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; — программа для &amp;lt;tex&amp;gt;L \in \mathrm{RP}&amp;lt;/tex&amp;gt;. Программу &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; для &amp;lt;tex&amp;gt;\mathrm{BPP}&amp;lt;/tex&amp;gt; определим следующим образом:&lt;br /&gt;
  q(x)&lt;br /&gt;
    u &amp;lt;- p(x)&lt;br /&gt;
    v &amp;lt;- p(x)&lt;br /&gt;
    '''return''' u '''or''' v&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;x \in L&amp;lt;/tex&amp;gt;. В этом случае вероятность ошибки равна &amp;lt;tex&amp;gt;\operatorname{P}(u = 0, v = 0) = \operatorname{P}(u = 0) \cdot \operatorname{P}(v = 0) \le 1/4&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;x \notin L&amp;lt;/tex&amp;gt;. Тогда с вероятностью &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; будет верно &amp;lt;tex&amp;gt;u = 0, v = 0&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вернет правильный ответ.&lt;br /&gt;
&lt;br /&gt;
Аналогично доказывается, что &amp;lt;tex&amp;gt;\mathrm{coRP} \subset \mathrm{BPP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Теоремы о BPP, BPPweak и BPPstrong]]&lt;br /&gt;
* [[Уменьшение ошибки в классе RP]]&lt;br /&gt;
* [[Теорема Лаутемана]]&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* [http://www.cs.princeton.edu/theory/complexity/ Sanjeev Arora, Boaz Barak. Computational Complexity: A Modern Approach]&lt;/div&gt;</summary>
		<author><name>178.178.17.88</name></author>	</entry>

	</feed>