Чемпионат СССР по футболу 1954 (класс «Б»)
- 1 year ago
- 0
- 0
В теории алгоритмов классом сложности BPP (от англ. bounded-error, probabilistic, polynomial ) называется класс предикатов , быстро (за полиномиальное время) вычислимых и дающих ответ с высокой вероятностью (причём, жертвуя временем, можно добиться сколь угодно высокой точности ответа). Задачи, решаемые вероятностными методами и лежащие в BPP, возникают на практике очень часто.
Классом BPP называется класс предикатов P(x) , вычислимых на вероятностных машинах Тьюринга (обычных машинах Тьюринга с лентой случайных чисел) за полиномиальное время с ошибкой не более ⅓. Это значит, что вычисляющая значение предиката вероятностная машина Тьюринга даст ответ за время, равное O(n k ) , где n — длина x , причём если правильный ответ 1, то машина выдаёт 1 с вероятностью как минимум ⅔, и наоборот. Множество слов, на которых P(x) возвращает 1, называется языком , распознаваемым предикатом P(x) .
Число ⅓ в определении выбрано произвольно: если вместо него выбрать любое число p , строго меньшее ½, то получится тот же самый класс. Это верно, поскольку если есть машина Тьюринга, распознающая язык с вероятностью ошибки p за время O(n k ) , то точность можно сколь угодно хорошо улучшить за счёт относительно небольшого прироста времени. Если мы запустим машину n раз подряд, а в качестве результата возьмём результат большинства запусков, то вероятность ошибки упадёт до , а время станет равным O(n k+1 ) . Здесь n запусков машины рассматриваются как схема Бернулли с n испытаниями и вероятностью успеха 1-p , а формула, выражающая ошибку, — вероятность неудачи не менее чем в половине случаев. Если теперь запустить машину n 2 раз подряд, то время возрастёт до O(n k+2 ) , а вероятность ошибки упадёт до . Таким образом, с ростом показателя многочлена, оценивающего время, точность растёт экспоненциально , и можно достичь любого нужного значения.
Вероятностный алгоритм принимает язык по стандарту Монте-Карло, если вероятность ошибки алгоритма не превосходит . То есть, , где — предикат принадлежности слова языку . Таким образом, класс BPP образуют предикаты такие что для них существует полиномиальный вероятностный алгоритм, принимающий их язык по стандарту Монте-Карло. Такие алгоритмы также называют алгоритмами Монте-Карло.
Пусть алгоритм Монте-Карло с временной сложностью , где - длина входа. Также примем за нижнюю границу вероятности того, что алгоритм Лас-Вегаса даст корректный результат, а за алгоритм с временной сложностью , проверяющий результат на достоверность. В таком случае существует алгоритм с ожидаемой временной сложностью . Для доказательства представим, что вызывает и до тех пор, пока не подтвердит корректность результата. Тогда время работы одной итерации такой процедуры составит . Вероятность же того, что будет повторено итераций равна , а значит, ожидаемое количество итераций равно , исходя из того, что .
Сам BPP замкнут относительно дополнения. Класс P включён в BPP, поскольку он даёт ответ за полиномиальное время с нулевой ошибкой. BPP включён в класс полиномиальной иерархии и, как следствие, включён в PH и PSPACE . Кроме того, известно включение BPP в .
Квантовым аналогом класса BPP (другими словами, расширением класса BPP на
квантовые компьютеры
) является
класс BQP
.
До 2002 года одной из наиболее известных задач, лежащих в классе BPP, была задача распознавания простоты числа, для которой существовало несколько различных полиномиальных вероятностных алгоритмов, таких как тест Миллера-Рабина , но ни одного детерминированного. Однако, в 2002 году детерминированный полиномиальный алгоритм был найден индийскими математиками Agrawal, Kayan и Saxena, которые таким образом доказали, что задача распознавания простоты числа лежит в классе P . Предложенный ими алгоритм AKS (названный по первым буквам их фамилий) распознает простоту числа длины n за время O(n 4 ) .