Сложностные классы RP и coRP — различия между версиями
Строка 2: | Строка 2: | ||
Классы языков '''RP''' и '''coRP''' определяются следующим образом: | Классы языков '''RP''' и '''coRP''' определяются следующим образом: | ||
− | <tex>\mbox{RP} = \{L \mid \exists m: \mbox{P}(m(x) = 1 \mid x \in L)\geq \frac{1}{2}\}</tex> | + | <tex>\mbox{RP} = \{L \mid \exists m: \mbox{P}(m(x) = 1 \mid x \in L)\geq \frac{1}{2},~ \mbox{P}(m(x) = 0 \mid x \notin L) = 1\}</tex> |
− | <tex>\mbox{coRP} = \{L \mid \exists m: \mbox{P}(m(x) = 0 \mid x \notin L)\geq \frac{1}{2}\}</tex> | + | <tex>\mbox{coRP} = \{L \mid \exists m: \mbox{P}(m(x) = 0 \mid x \notin L)\geq \frac{1}{2},~ \mbox{P}(m(x) = 1 \mid x \in L) = 1\}</tex> |
− | В этих определениях <tex>m</tex> - это вероятностная машина Тьюринга, время работы которой ограничено полиномом от длины входа. | + | В этих определениях <tex>m</tex> - это [[Вероятностные машины Тьюринга | вероятностная машина Тьюринга]], время работы которой ограничено полиномом от длины входа. |
==Теорема о равенстве ZPP и пересечения RP и coRP== | ==Теорема о равенстве ZPP и пересечения RP и coRP== | ||
− | Поскольку ранее было | + | Поскольку ранее было показано [[Сложностный класс ZPP, Два эквивалентных определения | равенство классов '''ZPP''' и '''ZPP'''']], можно записать утверждение этой теоремы в виде: |
<tex>\mbox{ZPP'} = \mbox{RP}\bigcap\mbox{coRP}</tex> | <tex>\mbox{ZPP'} = \mbox{RP}\bigcap\mbox{coRP}</tex> | ||
Строка 31: | Строка 31: | ||
} | } | ||
</code> | </code> | ||
− | Так как машина <tex>m_1</tex> выдает ответ "не знаю" с вероятностью не больше одной второй, а в ответах 0 или 1 никогда не ошибается, вероятность правильного ответа <tex>m</tex> в случае, если слово принадлежит языку, будет не меньше одной второй, а слово не из языка всегда будет обнаружено, что соответствует определению класса '''RP'''. | + | Так как машина <tex>m_1</tex> выдает ответ "не знаю" с вероятностью не больше одной второй, а в ответах <tex>0</tex> или <tex>1</tex> никогда не ошибается, вероятность правильного ответа <tex>m</tex> в случае, если слово принадлежит языку, будет не меньше одной второй, а слово не из языка всегда будет обнаружено, что соответствует определению класса '''RP'''. |
Аналогичным образом доказывается, что <tex>\L \in \mbox{coRP}</tex>: | Аналогичным образом доказывается, что <tex>\L \in \mbox{coRP}</tex>: | ||
Строка 51: | Строка 51: | ||
<code> | <code> | ||
<tex>m</tex>(x){ | <tex>m</tex>(x){ | ||
− | '''if''' (<tex> | + | '''if''' (<tex>m_1</tex>(x)) |
'''return''' 1; | '''return''' 1; | ||
− | + | '''if''' (!<tex>m_2</tex>(x)) | |
− | + | '''return''' 0; | |
− | + | '''return''' ?; ''//возвращаем ответ "не знаю"'' | |
− | return ?; ''//возвращаем ответ "не знаю"'' | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | Пусть <tex> x \in L </tex>. Тогда вероятность <tex>\mbox{P}(m_1(x) = 1) \geq \frac{1}{2}</tex>. Если же <tex>m_1</tex> вернула <tex>0</tex>, то, поскольку всегда <tex>m_2(x) = 1</tex> в этой ситуации, машина <tex>m</tex> вернет "не знаю". Получается, что <tex>\mbox{P}(m(x) = ?) \leq \frac{1}{2}</tex>. | ||
+ | |||
+ | Аналогично, если <tex> x \notin L </tex>, то <tex>\mbox{P}(m(x) = 0) = \mbox{P}(m_2(x) = 0) \geq \frac{1}{2}</tex>. | ||
+ | |||
+ | В итоге получаем, что машина <tex>m</tex> никогда не ошибается и возвращает определенный результат с вероятностью большей либо равной одной второй, что соответствует определению класса '''ZPP''''. |
Версия 21:29, 13 апреля 2010
Определение классов RP и coRP
Классы языков RP и coRP определяются следующим образом:
В этих определениях вероятностная машина Тьюринга, время работы которой ограничено полиномом от длины входа.
- этоТеорема о равенстве ZPP и пересечения RP и coRP
Поскольку ранее было показано равенство классов ZPP и ZPP', можно записать утверждение этой теоремы в виде:
Доказательство.
Пусть язык
. Нужно показать, что .Алгоритм для вероятностной машины Тьюринга
из определения класса RP будет выглядеть так:
(x){ switch ( (x)) { case 0: return 0; case 1: return 1; case ?: return 0; // выдала ответ "не знаю" } }
Так как машина
выдает ответ "не знаю" с вероятностью не больше одной второй, а в ответах или никогда не ошибается, вероятность правильного ответа в случае, если слово принадлежит языку, будет не меньше одной второй, а слово не из языка всегда будет обнаружено, что соответствует определению класса RP.Аналогичным образом доказывается, что
:
(x){ switch ( (x)) { case 0: return 0; case 1: return 1; case ?: return 1; // выдала ответ "не знаю" } }
Осталось показать, что
. То есть если и , то .Пусть
- вероятностная машина Тьюринга для языка из определения RP, а - соответствующая машина из определения coRP. Тогда алгоритм для машины из определения ZPP' будет устроен следующим образом:
(x){ if ( (x)) return 1; if (! (x)) return 0; return ?; //возвращаем ответ "не знаю" }
Пусть
. Тогда вероятность . Если же вернула , то, поскольку всегда в этой ситуации, машина вернет "не знаю". Получается, что .Аналогично, если
, то .В итоге получаем, что машина
никогда не ошибается и возвращает определенный результат с вероятностью большей либо равной одной второй, что соответствует определению класса ZPP'.