stringtranslate.com

Алгоритм Монте-Карло

В вычислительной технике алгоритм Монте-Карло — это рандомизированный алгоритм , выход которого может быть неверным с определенной (обычно небольшой) вероятностью . Двумя примерами таких алгоритмов являются алгоритм Каргера–Штейна [1] и алгоритм Монте-Карло для минимального набора дуг обратной связи . [2]

Название отсылает к казино Монте-Карло в княжестве Монако , которое известно во всем мире как икона азартных игр. Термин «Монте-Карло» был впервые введен в 1947 году Николасом Метрополисом . [3]

Алгоритмы Лас-Вегаса являются дуалами алгоритмов Монте-Карло и никогда не возвращают неправильный ответ. Однако они могут делать случайный выбор в ходе своей работы. В результате время выполнения может различаться между запусками, даже при одинаковых входных данных.

Если существует процедура проверки правильности ответа, выдаваемого алгоритмом Монте-Карло, и вероятность правильного ответа ограничена выше нуля, то с вероятностью единица многократное выполнение алгоритма при проверке ответов в конечном итоге даст правильный ответ. Является ли этот процесс алгоритмом Лас-Вегаса, зависит от того, считается ли остановка с вероятностью единица удовлетворяющей определению.

Односторонняя и двусторонняя ошибка

Хотя ответ, возвращаемый детерминированным алгоритмом , всегда должен быть правильным, это не относится к алгоритмам Монте-Карло. Для задач принятия решений эти алгоритмы обычно классифицируются как либо с ложной , либо с истинной ошибкой. Алгоритм Монте-Карло с ложной ошибкой всегда верен, когда возвращает false ; алгоритм с истинной ошибкой всегда верен, когда возвращает true . Хотя это описывает алгоритмы с односторонними ошибками , другие могут не иметь никакой ошибки; говорят, что они имеют двусторонние ошибки . Ответ, который они предоставляют (либо true , либо false ), будет неверным или правильным с некоторой ограниченной вероятностью.

Например, тест простоты Соловея-Штрассена используется для определения, является ли заданное число простым числом . Он всегда отвечает true для входных данных простых чисел; для составных входных данных он отвечает false с вероятностью не менее 12 и true с вероятностью менее 12 . Таким образом, ложные ответы алгоритма наверняка будут правильными, тогда как истинные ответы остаются неопределенными; это называется 12 -корректным алгоритмом с ложной предвзятостью .

Усиление

Для алгоритма Монте-Карло с односторонними ошибками вероятность неудачи может быть уменьшена (а вероятность успеха увеличена) путем запуска алгоритма k раз. Рассмотрим снова алгоритм Соловея–Штрассена, который является 12 -корректным ложно-смещенным . Можно запустить этот алгоритм несколько раз, возвращая ложный ответ, если он достигает ложного ответа в течение k итераций, и в противном случае возвращая true . Таким образом, если число простое, то ответ всегда правильный, а если число составное, то ответ правильный с вероятностью не менее 1−(1− 12 ) k  = 1−2 −k .

Для алгоритмов принятия решений Монте-Карло с двусторонней ошибкой вероятность отказа можно снова уменьшить, запустив алгоритм k раз и вернув функцию большинства ответов.

Классы сложности

Класс сложности BPP описывает задачи принятия решений , которые могут быть решены с помощью алгоритмов Монте-Карло с полиномиальным временем решения с ограниченной вероятностью двусторонних ошибок, а класс сложности RP описывает задачи, которые могут быть решены с помощью алгоритма Монте-Карло с ограниченной вероятностью односторонней ошибки: если правильный ответ — false , алгоритм всегда так говорит, но он может ответить false неверно для некоторых случаев, когда правильный ответ — true . [4] Напротив, класс сложности ZPP описывает задачи, решаемые с помощью алгоритмов Лас-Вегаса с полиномиальным ожидаемым временем. ZPP ⊆ RP ⊆ BPP , но неизвестно, отличается ли какой-либо из этих классов сложности друг от друга; то есть алгоритмы Монте-Карло могут иметь большую вычислительную мощность, чем алгоритмы Лас-Вегаса, но это не было доказано. [4] Другой класс сложности, PP , описывает задачи принятия решений с помощью алгоритма Монте-Карло с полиномиальным временем решения, который точнее, чем подбрасывание монетки, но где вероятность ошибки не обязательно может быть ограничена 12 . [4]

Классы алгоритмов Монте-Карло и Лас-Вегаса

Рандомизированные алгоритмы в основном делятся на два основных типа: Монте-Карло и Лас-Вегас, однако они представляют собой лишь вершину иерархии и могут быть далее классифицированы. [4]

«И Лас-Вегас, и Монте-Карло имеют дело с решениями, т. е. проблемами в их версии решений ». [4] «Однако это не должно создавать неправильного впечатления и ограничивать эти алгоритмы такими проблемами — оба типа рандомизированных алгоритмов могут использоваться и для числовых задач, задач, где выход — это не просто «да»/«нет», а где нужно получить результат, который является числовым по своей природе». [4]

Предыдущая таблица представляет собой общую структуру для рандомизированных алгоритмов Монте-Карло и Лас-Вегаса. [4] Вместо математического символа можно использовать , таким образом делая вероятности в худшем случае равными. [4]

Приложения в вычислительной теории чисел и других областях

К известным алгоритмам Монте-Карло относятся тест простоты Соловея–Штрассена, тест простоты Бейли–ПСВ , тест простоты Миллера–Рабина и некоторые быстрые варианты алгоритма Шрайера–Симса в вычислительной теории групп .

Для алгоритмов, входящих в группу алгоритмов стохастической оптимизации (SO), где вероятность заранее неизвестна и определяется эмпирически, иногда можно объединить Монте-Карло и такой алгоритм, «чтобы иметь как вычисленную заранее границу вероятности, так и компонент стохастической оптимизации». [4] «Примером такого алгоритма является Монте-Карло, вдохновленный Ant ». [4] [5] Таким образом, «недостатки SO были смягчены, и была установлена ​​уверенность в решении». [4] [5]

Смотрите также

Ссылки

Цитаты

  1. ^ Каргер, Дэвид Р.; Стайн, Клиффорд (июль 1996 г.). «Новый подход к проблеме минимального разреза». J. ACM . 43 (4): 601–640. doi : 10.1145/234533.234534 . ISSN  0004-5411. S2CID  5385337.
  2. ^ Куделич, Роберт (2016-04-01). «Рандомизированный алгоритм Монте-Карло для задачи минимальной обратной связи с дугой». Прикладные мягкие вычисления . 41 : 235–246. doi :10.1016/j.asoc.2015.12.018.
  3. ^ Метрополис, Н. (1987). «Начало метода Монте-Карло» (PDF) . Los Alamos Science (специальный выпуск 1987 г., посвященный Станиславу Уламу): 125–130.
  4. ^ abcdefghijk Куделич, Роберт; Ивкович, Никола; Шмагук, Тамара (2023). Чоудри, Джиоти; Махалле, Парикшит Н.; Перумал, Тинагаран; Джоши, Амит (ред.). «Краткий обзор рандомизированных алгоритмов». Интернет вещей с интеллектуальными системами . Сингапур: Springer Nature: 651–667. дои : 10.1007/978-981-99-3761-5_57. ISBN 978-981-99-3761-5.
  5. ^ ab Куделич, Роберт; Ивкович, Никола (2019). «Вдохновленный муравьем алгоритм Монте-Карло для минимального набора дуг обратной связи». Экспертные системы с приложениями . 122 : 108–117. doi :10.1016/j.eswa.2018.12.021. ISSN  0957-4174.

Источники