Algoritma Berlekamp–Rabin: Perbedaan antara revisi
Perbaikan presentasi: sitasi, referensi, caption, dan atribusi |
Penyederhanaan sumber dan atribusi |
||
| Baris 68: | Baris 68: | ||
== Sumber dan atribusi == | == Sumber dan atribusi == | ||
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Algoritma_Berlekamp%E2%80%93Rabin&oldid=25986958 Wikipedia bahasa Indonesia], revisi 25986958 (2024-07-03T05:23:51Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku. | |||
Gambar | |||
Revisi per 23 Agustus 2026 02.55

Dalam teori bilangan, algoritma Berlekamp–Rabin adalah metode probabilistik pencarian akar dari polinomial pada medan . Metode ini ditemukan oleh Elwyn Berlekamp pada tahun 1970[1] sebagai tambahan algoritma untuk faktorisasi polinomial pada medan berhingga. Algoritma kemudian dimodifikasi oleh Rabin untuk medan berhingga sebarang pada tahun 1979.[2] Sebelum Berlekamp, metode ini juga ditemukan secara terpisah oleh peneliti lain.[3]
Sejarah
Metode ini diusulkan oleh Elwyn Berlekamp dalam karyanya tahun 1970[1] tentang faktorisasi polinomial pada medan berhingga. Karya aslinya tidak memiliki bukti kebenaran formal[2] dan kemudian disempurnakan dan dimodifikasi untuk medan berhingga sebarang oleh Michael Rabin.[2] Pada tahun 1986, René Peralta mengusulkan algoritma serupa[4] untuk mencari akar kuadrat .[5] Perumuman metode Peralita untuk persamaan kubik dibuat pada tahun 2000.[6]
Pernyataan masalah
Misalkan adalah bilangan prima ganjil, dan misalkan pula polinomial atas medan dari modulo sisa . Tujuan pernyataan masalah ini adalah bahwa algoritma Berlekamp harus menemukan semua di sehingga di .[2][7]
Algoritma
Pengacakan
Misalkan . Menemukan semua akar polinomial ini sama saja dengan mencari faktorisasinya menjadi faktor linear. Untuk menemukan faktorisasi tersebut, cukup membagi polinomial menjadi dua pembagi non-trivial dan memfaktorkannya secara rekursif. Lebih lanjut, misalkan polinomial , untuk setiap anggota . Jika polinomial tersebut dinyatakan sebagai hasilkali , maka dalam bentuk polinomial awal, mengartikan bahwa . Fungsi yang merupakan menyediakan faktorisasi dibutuhkan dari .[1][7]
Klasifikasi elemen Zₚ
Menurut kriteria Euler, untuk setiap monomial , berlaku tepat salah satu dari sifat-sifat berikut:[1]
- Monomial sama dengan jika ,
- Pembagian monomial jika adalah residu kuadrat modulo ,
- Pembagian monomial jika adalah non-residul kuadrat modulo .
Jadi, jika tidak habis dibagi , yang dapat diperiksa secara terpisah, maka sama dengan hasilkali dari faktor persekutuan terbesar dan .[7]
Metode Berlekamp
Sifat-sifat di atas mengarah pada algoritma berikut:[1]
- Hitung secara eksplisit koefisien ,
- Hitung sisa modulo dengan mengkuadratkan polinomial dan mengambil sisa modulo ,
- Menggunakan eksponensiasi yang dikuadratkan dan polinomial yang dihitung pada langkah sebelumnya, hitung sisa modulo ,
- Jika , maka yang disebutkan diatas memberikan faktorisasi non-trivial dari ,
- Jika tidak, maka semua akar adalah residu atau non-residu secara bersamaan dan harus memilih yang lain.
Jika habis dibagi oleh setiap polinomial primitif atas maka saat menghitung dengan dan akan diperoleh faktorisasi non-trivial dari , sehingga algoritma memungkinkan untuk menemukan semua akar polinomial sebarang atas .
Akar kuadrat modular
Misalkan persamaan mempunyai anggota dan sebagai akarnya. Solusi persamaan ini ekuivalen dengan faktorisasi polinomial atas . Dalam masalah kasus istimewa ini, cukup hitung saja. Untuk polinomial tersebut, ada tepat satu dari sifat-sifat yang berlaku sebagai berikut:
- FPB sama dengan , yang berarti bahwa dan merupakan non-residu kuadratik,
- FPB sama dengan , yang berarti kedua bilangan tersebut merupakan residu kuadratik,
- FPB sama dengan , yang berarti tepat salah satu dari bilangan tersebut merupakan residu kuadrat.
Pada kasus ketiga, FPB sama dengan atau . Hal ini memungkinkan untuk menulis solusi sebagai .[1]
Contoh
Asumsi bahwa persamaan dapat diselesaikan. Caranya adalah dengan memfaktorkan . Nilai dapat dibagi menjadi beberapa kasus dengan memisalkannya sebagai berikut:
- Misalkan , maka . Jadi, . Karena bilangan merupakan non-residu kuadrat, maka perlu dicari nilai lain.
- Misalkan , maka . Jadi, . Karena , maka dan .
Hasil pemeriksaan yang dilakukan secara manual memperlihatkan bahwa dan .
Bukti kebenaran
Algoritma menemukan faktorisasi dalam semua kasus, kecuali ketika semua bilangan adalah residu kuadrat atau non-residu secara bersamaan. Menurut teori siklotomi,[8] peluang kejadiannya untuk kasus ketika juga merupakan semua residu atau non-residu secara bersamaan (yaitu, ketika tidak berhasil) diestimasi sebagai , untuk adalah jumlah nilai yang berbeda dalam .[1] Dengan cara ini, bahkan untuk kasus galat dan , maka estimasi peluang galatnya adalah , dan untuk kasus akar kuadrat modular, probabilitas galat setidaknya bernilai .
Kompleksitas
Misalkan suatu polinomial merupakan polinomial berderajat , maka kompleksitas algoritma dapat diturunkan sebagai berikut:
- Karena menurut teorema binomial mengatakan bahwa , maka dapat dilakukan transisi dari ke dalam waktu .
- Perkalian polinomial dan mengambil sisa dari satu polinomial yang modulo dengan yang lain dapat dilakukan di . Jadi, perhitungan dilakukan di .
- Eksponensial biner bekerja di .
- Mengambil dari dua polinomial melalui algoritma Euklides yang bekerja di .
Jadi, seluruh prosedur dapat dilakukan di . Dengan menggunakan transformasi Fourier cepat dan algoritma setengah-FPB,[9] maka kompleksitas algoritmanya dapat ditingkatkan menjadi . Untuk kasus akar kuadrat modular, derajatnya adalah , sehingga seluruh kompleksitas algoritma dalam kasus tersebut dibatasi dengan per iterasi.[7]
Referensi
- ↑ 1,0 1,1 1,2 1,3 1,4 1,5 1,6 E. R Berlekamp. Factoring polynomials over large finite fields. Mathematics of Computation. 1970. Vol. 24 (111). hlm. 713–735. doi:10.1090/S0025-5718-1970-0276200-X.
- ↑ 2,0 2,1 2,2 2,3 M. Rabin. Probabilistic Algorithms in Finite Fields. SIAM Journal on Computing. 1980. Vol. 9 (2). hlm. 273–280. doi:10.1137/0209024.
- ↑ Donald E Knuth. The art of computer programming. Vol. 2 Vol. 2. 1998. ISBN 978-0201896848.
- ↑ Tsz-Wo Sze. On taking square roots without quadratic nonresidues over finite fields. Mathematics of Computation. 2011. Vol. 80 (275). hlm. 1797–1811. doi:10.1090/s0025-5718-2011-02419-1.
- ↑ R. Peralta. A simple and fast probabilistic algorithm for computing square roots modulo a prime number (Corresp.). IEEE Transactions on Information Theory. November 1986. Vol. 32 (6). hlm. 846–847. doi:10.1109/TIT.1986.1057236.
- ↑ C Padró, G Sáez. Taking cube roots in Zm. Applied Mathematics Letters. August 2002. Vol. 15 (6). hlm. 703–708. doi:10.1016/s0893-9659(02)00031-9.
- ↑ 7,0 7,1 7,2 7,3 Alfred J. Menezes, Ian F. Blake, XuHong Gao, Ronald C. Mullin, Scott A. Vanstone. Applications of Finite Fields. Springer US. 1993. ISBN 9780792392828.
- ↑ Marshall Hall. Combinatorial Theory. John Wiley & Sons. 1998. ISBN 9780471315186.
- ↑ Aho, Alfred V. The design and analysis of computer algorithms. Addison-Wesley Pub. Co. 1974. ISBN 0201000296.
Sumber dan atribusi
Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 25986958 (2024-07-03T05:23:51Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.