Misalkan algoritma acak menggunakan bit acak. Probabilitas kesalahan terendah yang dapat diharapkan seseorang (gagal algoritma deterministik dengan 0 kesalahan) adalah . Algoritma acak mana yang mencapai probabilitas kesalahan seminimal itu?
Beberapa contoh yang muncul di pikiran adalah:
- Algoritma sampling, misalnya, di mana orang ingin memperkirakan ukuran set yang dapat diperiksa keanggotaannya. Jika satu sampel secara seragam secara acak elemen untuk memeriksa, ikatan Chernoff menjamin probabilitas kesalahan kecil secara eksponensial.
- Algoritma Karger-Klein-Tarjan untuk menghitung pohon spanning minimum. Algoritme memilih setiap sisi dengan probabilitas 1/2, dan secara rekursif menemukan MST dalam sampel. Orang dapat menggunakan Chernoff untuk berargumen bahwa secara eksponensial tidak mungkin akan ada 2n + 0,1 m dari tepi yang lebih baik daripada pohon (yaitu, seseorang akan lebih suka untuk mengambilnya dari salah satu tepi pohon).
Bisakah Anda memikirkan contoh lain?
Mengikuti jawaban Andras di bawah ini: Memang, setiap algoritme waktu polinomial dapat dikonversi menjadi algoritme waktu polinomial yang lebih lambat dengan probabilitas kesalahan yang kecil secara eksponensial. Fokus saya adalah pada algoritma yang seefisien mungkin. Secara khusus, untuk dua contoh yang saya berikan ada algoritma waktu polinomial deterministik yang memecahkan masalah. Ketertarikan pada algoritma acak adalah karena efisiensinya.