Pengguna:Klasüo/bak pasir/Arsip 40

Dalam teori bilangan, algoritma pencarian akar Berlekamp atau juga disebut algoritma Berlekamp-Rabin adalah metode probabilistik pencarian akar dari polinomial pada medan . Metode ini ditemukan oleh Elwyn Berlekamp pada tahun 1970[1] sebagai tambahan untuk algoritma untuk faktorisasi polinomial pada medan berhingga. Algoritma kemudian dimodifikasi oleh Rabin untuk medan berhingga arbiter pada tahun 1979.[2] Metode ini juga ditemukan secara independen sebelum Berlekamp oleh peneliti lain.[3]

Sejarah

sunting

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 arbiter oleh Michael Rabin.[2] Pada tahun 1986, René Peralta mengusulkan algoritma serupa[4] untuk mencari akar kuadrat  .[5] Pada tahun 2000, metode Peralta digeneralisasikan untuk persamaan kubik.[6]

Pernyataan masalah

sunting

Maka   adalah sebagai bilangan prima ganjil. Pertimbangkan polinomial   pada medan   dari modulo sisa  . Algoritma seharusnya ditemukan semua   dalam   sedemikian rupa   dalam  .[2][7]

Algoritma

sunting

Pengacakan

sunting

Maka  . Temukan semua akar polinomial ini sama dengan mencari faktorisasinya menjadi faktor linear. Untuk menemukan faktorisasi tersebut, cukup untuk membagi polinomial menjadi dua pembagi non-trivial dan memfaktorkannya secara rekursif. Untuk hal ini, pertimbangkan polinomial   dimana   adalah beberapa elemen  . Apabila seseorang dapat menyatakan polinomial ini sebagai produk   maka dalam hal polinomial awal itu berarti bahwa   yang merupakan menyediakan faktorisasi dibutuhkan dari  .[1][7]

Klasifikasi elemen  

sunting

Karena kriteria Euler, untuk setiap monomial   tepat satu dari sifat berikut ini:[1]

  1. Monomial sama dengan   jika  ,
  2. Pembagian monomial   jika   adalah residu kuadrat modul  ,
  3. Pembagian monomial   jika   adalah non-residul kuadrat modul  .

Jadi jika   tidak habis dibagi  , yang dapat diperiksa secara terpisah, maka   sama dengan produk faktor persekutuan terbesar   dan  .[7]

Metode Berlekamp

sunting

Sifat di atas mengarah ke algoritma berikut:[1]

  1. Hitung secara eksplisit koefisien  ,
  2. Hitung sisa   modulo   dengan mengkuadratkan polinomial dan mengambil sisa modulo  ,
  3. Menggunakan eksponensial dengan kuadrat dan polinomial yang dihitung pada langkah sebelumnya, hitung sisa   modulo  ,
  4. Jika   maka   yang disebutkan diatas memberikan faktorisasi non-trivial dari  ,
  5. Jika tidak, semua akar   adalah residu atau non-residu secara bersamaan dan harus memilih   yang lain.

Jika   habis dibagi oleh beberapa polinomial primitif   atas   maka saat menghitung   dengan   dan   akan diperoleh faktorisasi non-trivial dari  , sehingga algoritma memungkinkan untuk menemukan semua akar polinomial arbiter atas  .

Akar kuadrat modular

sunting

Pertimbangkan persamaan   yang memiliki elemen   dan   sebagai akarnya. Solusi persamaan ini ekuivalen dengan faktorisasi polinomial   atas  . Dalam masalah kasus khusus ini cukup untuk menghitung hanya  . Untuk polinomial ini tepat satu dari sifat-sifat sebagai beriku:

  1. FPB sama dengan   yang artinya   dan   keduanya merupakan non-residu kuadrat,
  2. FPB sama dengan  yang berarti kedua bilangan tersebut merupakan residu kuadrat,
  3. FPB sama dengan  yang berarti tepat salah satu dari bilangan tersebut adalah residu kuadrat.

Dalam kasus ketiga FPB sama dengan   atau  . Hal ini memungkinkan untuk menulis solusi sebagai  .[1]

Contoh

sunting

Kita harus asumsikan untuk menyelesaikan persamaan  . Untuk ini kita harus memfaktorkan  . Pertimbangkan beberapa kemungkinan nilai  :

  1. Jikalau  . Maka   sebagai  . Kedua bilangan   adalah non-residu kuadrat, jadi kita perlu mengambil beberapa   lainnya.
  1. Jikalau  . Maka   sebagai  . Dari berikut ini   juga   dan  .

Pemeriksaan manual menunjukkan bahwa memang   dan  .

Bukti kebenaran

sunting

Algoritma menemukan faktorisasi   dalam semua kasus kecuali kasus ketika semua bilangan   adalah residu kuadrat atau non-residu secara bersamaan. Menurut teori siklotomi,[8] probabilitas tersebut terjadi sama halnya untuk kasus ketika   juga merupakan semua residu atau non-residu secara bersamaan (yaitu, ketika   tidak berhasil) diperkirakan sebagai   dimana   adalah jumlah nilai yang berbeda dalam  .[1] Dengan cara ini bahkan untuk kasus galat   dan  , probabilitas galat diperkirakan sebagai   dan untuk kasus akar kuadrat modular, probabilitas galat paling banyak pada diantara  .

Kompleksitas

sunting

Apabila polinomial memiliki derajat  . Maka bisa menurunkan kompleksitas algoritma sebagai berikut:

  1. Karena teorema binomial  , kita dapat melakukan transisi dari   ke   dalam waktu  .
  2. Perkalian polinomial dan mengambil sisa satu modul polinomial yang lain dapat dilakukan pada  , jadi perhitungan   dilakukan pada  .
  3. Eksponensial biner bekerja dalam  .
  4. Mengambil   dari dua polinomial melalui algoritma Euklides berfungsi pada  .

Jadi seluruh prosedur dapat dilakukan oleh  . Menggunakan transformasi Fourier cepat dan algoritma setengah-FPB,[9] kompleksitas algoritmanya dapat ditingkatkan menjadi  . Untuk kasus akar kuadrat modular pada derajatnya adalah  , sehingga seluruh kompleksitas algoritma dalam kasus tersebut dibatasi oleh   per iterasi.[7]

Referensi

sunting
  1. ^ a b c d e f g Berlekamp, E. R. (1970). "Factoring polynomials over large finite fields". Mathematics of Computation (dalam bahasa Inggris). 24 (111): 713–735. doi:10.1090/S0025-5718-1970-0276200-X . ISSN 0025-5718. 
  2. ^ a b c d M. Rabin (1980). "Probabilistic Algorithms in Finite Fields". SIAM Journal on Computing. 9 (2): 273–280. doi:10.1137/0209024. ISSN 0097-5397. 
  3. ^ Donald E Knuth (1998). The art of computer programming. Vol. 2 Vol. 2. ISBN 978-0201896848. OCLC 900627019. 
  4. ^ Tsz-Wo Sze (2011). "On taking square roots without quadratic nonresidues over finite fields". Mathematics of Computation. 80 (275): 1797–1811. arXiv:0812.2591 . doi:10.1090/s0025-5718-2011-02419-1. ISSN 0025-5718. 
  5. ^ R. Peralta (November 1986). "A simple and fast probabilistic algorithm for computing square roots modulo a prime number (Corresp.)". IEEE Transactions on Information Theory. 32 (6): 846–847. doi:10.1109/TIT.1986.1057236. ISSN 0018-9448. 
  6. ^ C Padró, G Sáez (August 2002). "Taking cube roots in Zm". Applied Mathematics Letters. 15 (6): 703–708. doi:10.1016/s0893-9659(02)00031-9 . ISSN 0893-9659. 
  7. ^ a b c d Alfred J. Menezes, Ian F. Blake, XuHong Gao, Ronald C. Mullin, Scott A. Vanstone (1993). Applications of Finite Fields. The Springer International Series in Engineering and Computer Science. Springer US. ISBN 9780792392828. 
  8. ^ Marshall Hall (1998). Combinatorial Theory. John Wiley & Sons. ISBN 9780471315186. 
  9. ^ Aho, Alfred V. (1974). The design and analysis of computer algorithms . Addison-Wesley Pub. Co. ISBN 0201000296. 

Templat:Algoritma teori bilangan