Сложностный класс BPP — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 3: Строка 3:
 
<tex>\mbox{PP} = \{L | \exists m : \mbox{T}(m,x) = poly(|x|), \mbox{P}(m(x) = [x \in L]) > \frac{1}{2} \}</tex>
 
<tex>\mbox{PP} = \{L | \exists m : \mbox{T}(m,x) = poly(|x|), \mbox{P}(m(x) = [x \in L]) > \frac{1}{2} \}</tex>
 
В этом определениях <tex>m</tex> - это [[Вероятностные машины Тьюринга | вероятностная машина Тьюринга]].
 
В этом определениях <tex>m</tex> - это [[Вероятностные машины Тьюринга | вероятностная машина Тьюринга]].
 +
 +
Но это очень широкий класс, поэтому вводится класс <tex>\mbox{BPP}</tex>.
  
 
==Определение класса BPP==
 
==Определение класса BPP==
Строка 8: Строка 10:
 
<tex>\mbox{BPP} = \{L | \exists m : \mbox{T}(m,x) = poly(|x|), \mbox{P}(m(x) = [x \in L]) > \frac{2}{3} \}</tex>
 
<tex>\mbox{BPP} = \{L | \exists m : \mbox{T}(m,x) = poly(|x|), \mbox{P}(m(x) = [x \in L]) > \frac{2}{3} \}</tex>
 
, где <tex>m</tex> -- [[Вероятностная машина Тьюринга|вероятностная машина Тьюринга]].
 
, где <tex>m</tex> -- [[Вероятностная машина Тьюринга|вероятностная машина Тьюринга]].
 +
 +
Очевидно, класс <tex>\mbox{BPP} \in \mbox{PP}</tex>.
 +
Число <tex>\frac{2}{3}</tex> в определении выбрано произвольно: если вместо него выбрать любое число, строго большее <tex>\frac{1}{2}</tex>, то получится тот же самый класс. Это верно, поскольку если есть машина Тьюринга, распознающая язык с вероятностью ошибки <tex>p</tex>, то точность можно сколь угодно хорошо улучшить за счёт относительно небольшого прироста времени. Если мы запустим машину <tex>n</tex> раз подряд, а в качестве результата возьмём результат большинства запусков, то вероятность ошибки упадёт до <tex>\left(2 \sqrt{p(1-p)} \right)^n</tex>, а время станет равным <tex>O(n^{k+1})</tex>. Здесь <tex>n</tex> запусков машины рассматриваются как схема Бернулли с <tex>n</tex> испытаниями и вероятностью успеха ''1-p'', а формула, выражающая ошибку, — вероятность неудачи не менее чем в половине случаев. Если теперь запустить машину <tex>n^{2}</tex> раз подряд, то время возрастёт до <tex>O(n^{k+2})</tex>, а вероятность ошибки упадёт до <tex>\left(2 \sqrt{p(1-p)} \right)^{n^2}</tex>. Таким образом, с ростом показателя многочлена, оценивающего время, точность растёт экспоненциально, и можно достичь любого нужного значения.

Версия 13:11, 15 апреля 2010

Определение класса PP

Классом [math]\mbox{PP}[/math] (от англ. probabilistic, polynomial)называется множество языков, для которых существует вероятностная машина Тьюринга такая, что вероятность того, что ее выходное значение совпадает с принадлежностью входа данным языкам больше [math]\frac{1}{2}[/math] и время ее работы ограничено полиномом от длины входа. [math]\mbox{PP} = \{L | \exists m : \mbox{T}(m,x) = poly(|x|), \mbox{P}(m(x) = [x \in L]) \gt \frac{1}{2} \}[/math] В этом определениях [math]m[/math] - это вероятностная машина Тьюринга.

Но это очень широкий класс, поэтому вводится класс [math]\mbox{BPP}[/math].

Определение класса BPP

Классом [math]\mbox{BPP}[/math] (от англ. bounded-error, probabilistic, polynomial) называется множество языков, для которых существует вероятностная машина Тьюринга такая, что вероятность того, что ее выходное значение совпадает с принадлежностью входа данным языкам больше [math]\frac{2}{3}[/math] и время ее работы ограничено полиномом от длины входа. [math]\mbox{BPP} = \{L | \exists m : \mbox{T}(m,x) = poly(|x|), \mbox{P}(m(x) = [x \in L]) \gt \frac{2}{3} \}[/math] , где [math]m[/math] -- вероятностная машина Тьюринга.

Очевидно, класс [math]\mbox{BPP} \in \mbox{PP}[/math]. Число [math]\frac{2}{3}[/math] в определении выбрано произвольно: если вместо него выбрать любое число, строго большее [math]\frac{1}{2}[/math], то получится тот же самый класс. Это верно, поскольку если есть машина Тьюринга, распознающая язык с вероятностью ошибки [math]p[/math], то точность можно сколь угодно хорошо улучшить за счёт относительно небольшого прироста времени. Если мы запустим машину [math]n[/math] раз подряд, а в качестве результата возьмём результат большинства запусков, то вероятность ошибки упадёт до [math]\left(2 \sqrt{p(1-p)} \right)^n[/math], а время станет равным [math]O(n^{k+1})[/math]. Здесь [math]n[/math] запусков машины рассматриваются как схема Бернулли с [math]n[/math] испытаниями и вероятностью успеха 1-p, а формула, выражающая ошибку, — вероятность неудачи не менее чем в половине случаев. Если теперь запустить машину [math]n^{2}[/math] раз подряд, то время возрастёт до [math]O(n^{k+2})[/math], а вероятность ошибки упадёт до [math]\left(2 \sqrt{p(1-p)} \right)^{n^2}[/math]. Таким образом, с ростом показателя многочлена, оценивающего время, точность растёт экспоненциально, и можно достичь любого нужного значения.