Dari Wikipedia tentang algoritma acak
Kita harus membedakan antara algoritma yang menggunakan input acak untuk mengurangi waktu berjalan yang diharapkan atau penggunaan memori, tetapi selalu berakhir dengan hasil yang benar dalam jumlah waktu yang terbatas, dan algoritma probabilistik , yang, tergantung pada input acak, memiliki peluang menghasilkan hasil yang salah (algoritma Monte Carlo) atau gagal menghasilkan hasil (algoritma Las Vegas) baik dengan menandakan kegagalan atau gagal untuk mengakhiri.
- Saya bertanya-tanya bagaimana jenis pertama " algoritma menggunakan input acak untuk mengurangi waktu berjalan yang diharapkan atau penggunaan memori, tetapi selalu berakhir dengan hasil yang benar dalam jumlah waktu yang terbatas?
- Apa perbedaan antara itu dan algoritma Las Vegas yang mungkin gagal menghasilkan hasil?
- Jika saya mengerti dengan benar, algoritma probabilistik dan algoritma acak bukanlah konsep yang sama. Algoritma probabilitas adalah hanya satu jenis algoritma acak, dan jenis lainnya adalah yang menggunakan input acak untuk mengurangi waktu berjalan yang diharapkan atau penggunaan memori, tetapi selalu berakhir dengan hasil yang benar dalam jumlah waktu yang terbatas?
Dua istilah algoritma acak dan algoritma probabilistik digunakan dalam dua konteks yang berbeda. Algoritma acak adalah algoritma yang menggunakan keacakan, bertentangan dengan algoritma deterministik yang tidak. Algoritma probabilistik , misalnya algoritma probabilistik untuk pengujian primality, adalah algoritma yang menggunakan keacakan dan dapat membuat kesalahan dengan beberapa (semoga) probabilitas kecil.
Perbedaan penting harus dibuat antara algoritma Monte Carlo dan algoritma Las Vegas . Algoritma Las Vegas adalah algoritma acak yang selalu mengembalikan jawaban yang benar, tetapi waktu menjalankannya bergantung pada lemparan koin. Contohnya adalah algoritma anjak integer - mereka selalu mengembalikan faktor yang benar, tetapi waktu berjalan mereka tergantung pada keacakan. Ketika menyatakan waktu berjalan dari algoritma Las Vegas (katakanlah algoritma anjak piutang), kami sebenarnya menyatakan waktu berjalan yang diharapkan ; jika kita kurang beruntung, algoritma bisa berjalan lebih lama.
Algoritma Monte Carlo, di sisi lain, adalah algoritma acak yang waktu berjalannya ditetapkan terlebih dahulu. Algoritme seperti itu dapat membuat kesalahan, tetapi biasanya probabilitas kesalahannya sangat rendah. Contoh yang baik adalah pengujian primality probabilistik. Algoritma ini sangat cepat tetapi bisa membuat kesalahan. Namun, probabilitas kesalahan lambat rendah sehingga dalam praktiknya, mereka tidak pernah membuat kesalahan.
Setiap algoritma Las Vegas dapat dikonversi ke algoritma Monte Carlo dengan menghentikan eksekusi setelah waktu yang cukup lama, sehingga algoritma Las Vegas dalam beberapa hal "lebih baik" daripada algoritma Monte Carlo.
sumber