Из Википедии о рандомизированных алгоритмах
Нужно различать алгоритмы, которые используют случайный ввод для уменьшения ожидаемого времени работы или использования памяти, но всегда заканчивают с правильным результатом в ограниченное время, и вероятностные алгоритмы , которые, в зависимости от случайного ввода, имеют шанс из-за неправильного результата (алгоритмы Монте-Карло) или из-за того, что не удалось получить результат (алгоритмы Лас-Вегаса), либо сообщив об ошибке, либо не завершив ее.
- Мне было интересно, как алгоритмы первого вида используют случайный ввод для уменьшения ожидаемого времени выполнения или использования памяти, но всегда завершаются с правильным результатом в ограниченное количество времени?
- Какие различия между ним и алгоритмами Лас-Вегаса, которые могут не дать результата?
- Если я правильно понимаю, вероятностные алгоритмы и рандомизированные алгоритмы - это не одно и то же понятие. Вероятностные алгоритмы - это всего лишь один из типов рандомизированных алгоритмов, а другой тип - это те, которые используют случайный ввод для уменьшения ожидаемого времени работы или использования памяти, но всегда завершаются с правильным результатом в ограниченное количество времени?
Два термина рандомизированные алгоритмы и вероятностные алгоритмы используются в двух разных контекстах. Рандомизированные алгоритмы - это алгоритмы, использующие случайность, в отличие от детерминированных алгоритмов, которые этого не делают. Вероятностные алгоритмы , например вероятностные алгоритмы для проверки простоты, являются алгоритмами, которые используют случайность и могут допускать ошибку с некоторой (мы надеемся) малой вероятностью.
Важное различие должно быть сделано между алгоритмами Монте - Карло и Лас - Вегас алгоритмов . Алгоритмы Лас-Вегаса - это рандомизированные алгоритмы, которые всегда возвращают правильный ответ, но их время выполнения зависит от бросков монет. Примером являются алгоритмы целочисленного факторинга - они всегда возвращают правильные факторы, но их время выполнения зависит от случайности. Указывая время работы алгоритма Лас-Вегаса (скажем, алгоритм факторинга), мы фактически указываем ожидаемое время работы; если нам не повезет, алгоритм может работать дольше.
Алгоритмы Монте-Карло, с другой стороны, являются рандомизированным алгоритмом, время работы которого устанавливается заранее. Такие алгоритмы могут ошибаться, но обычно вероятность ошибки очень мала. Хорошим примером является вероятностное тестирование на простоту. Эти алгоритмы очень быстрые, но могут сделать ошибку. Однако вероятность ошибки низка, что на практике они никогда не ошибаются.
Каждый алгоритм Лас-Вегаса можно преобразовать в алгоритм Монте-Карло, остановив выполнение через достаточно длительное время, поэтому алгоритмы Лас-Вегаса в некотором смысле «лучше», чем алгоритмы Монте-Карло.
источник