베를캄프-라빈 알고리즘

Berlekamp–Rabin algorithm

수 이론에서 베를캄프-라빈 알고리즘이라고도 하는 베를캄프의 뿌리 찾기 알고리즘필드 를 통해 다항식뿌리를 찾는 확률론적 방법이다.이 방법은 Elwyn Berlekamp에 의해 유한 분야에 대한 다항식 인자화 알고리즘의 보조로서 1970년에[1] 발견되었다.이 알고리즘은 1979년 라빈에 의해 임의의 유한 분야에 대해 수정되었다.[2]이 방법은 베를캄프 이전에 다른 연구자들에 의해 독자적으로 발견되기도 했다.[3]

역사

이 방법은 Elwyn Berlekamp가 1970년 그의 유한 분야에 대한 다항식 인자화에 관한 연구에서[1] 제안한 것이다.그의 원작은 형식적인 정확성 증명이[2] 결여되어 있었고 후에 마이클 라빈에 의해 임의의 유한 분야를 위해 다듬어지고 수정되었다.[2]1986년 레네 페랄타는 Z } 에서 제곱근을 찾기 위한 유사한[4] 알고리즘을 제안했고[5] 2000년 페랄타의 방법은 입방정식에 대해 일반화되었다.[6]

문제명세서

(를) 홀수 소수 정수로 두십시오.다항식 )= + ++ n 을 고려하십시오.}}} 필드 위에} n remainders p p알고리즘은 Z 에서 모든 을(를) 하며, 이러한 = 0 f Z p {Z}[2][7]

알고리즘.

무작위화

( )=( x- ) (- ) ( - n) \lambda \lambda}). 이 다항식의 모든 루트를 선형 인자로 찾는 것과 같다.그러한 인자를 찾으려면 다항식을 두 개의 비삼항 분자로 분할하고 재귀적으로 인자를 지정하는 것으로 충분하다.To do this, consider the polynomial where is some any element of . If one can represent this polynomial as the product then in terms of the initial polynomial it means that , which provides needed factorization of [1][7].

요소의 분류

오일러의 기준으로 볼 때, 모든 모노믹 - ) )}에 대해 다음 속성 중 하나가 정확히 유지된다.[1]

  1. = 0 경우 값은 x 과 같다.
  2. }이(가) 2차적 잔류물 p {\p}인 경우 단수형은 )=()=(x을 나눈다
  3. 가) 2차 비잔상 로 p 인 경우, 단수형은 g -)= + (+ )로 나눈다

Thus if is not divisible by , which may be checked separately, then is equal to the product of greatest common divisors and ); ()[7].

베를레캄프의 방법

위의 속성은 다음과 같은 알고리즘으로 이어진다.[1]

  1. )= - )
  2. Calculate remainders of modulo by squaring the current polynomial and taking remainder modulo x)
  3. 이전 단계에서 계산된 제곱 및 다항식을 통한 지수하여 ( - )/ 2 x modulo ( ) 의 나머지를 계산하십시오
  4. If then mentioned above provide a non-trivial factorization of ,
  5. 그렇지 않으면 f ( ){\의 모든 루트가 동시에 잔여물 또는 비재료가 되며, z z를 선택해야 한다

If is divisible by some non-linear primitive polynomial over then when calculating with and one w ( )/ z( )의 비경쟁 인자화(non-trivial factorization의 모든 루트를 Z {에서 찾을 수 있도록 알고리즘이 허용된다

모듈형 제곱근

\ - 요소를 루트로 하는 방정식 x ) x을(를로 간주한다.Solution of this equation is equivalent to factorization of polynomial over . In this particular case problem it is sufficient to calculate only 이 다항식에는 다음 속성 중 하나가 정확히 들어 있다.

  1. GCD는 과(와) 같으며, 이는 + (와) - 이(가) 모두 2차 비재임을 의미한다.
  2. GCD는 z( ) 과 동일하며, 이는 두 숫자가 2차 잔류물임을 의미한다.
  3. GCD는(- ) 과 동일하며, 이는 이들 숫자 중 정확히 하나가 2차 잔류물임을 의미한다.

In the third case GCD is equal to either or . It allows to write the solution as .[1]

Assume we need to solve the equation . For this we need to factorize . Consider some possible values of :

  1. Let . Then , thus . Both numbers are quadratic non-residues, so we need 다른 을(를) 가져오십시오
  1. = }을를) 두십시오Then , thus . From this follows , so ) - - 4( )

수동 점검 결과 실제로 5 ) 7equiv 5 ( ) 4이 나타난다.

정확성 증명

The algorithm finds factorization of in all cases except for ones when all numbers are quadratic residues or non-residues simultaneously.어디에 kcyclotomy,[8]의 이론에 그러한 사건의 사건의 확률 의하면 λ 1,…,λ n{\displaystyle \lambda_{1},\ldots(_{n}}모든 잔류물 또는 non-residues 동시에( 때 z 돌아선 0{\displaystyle z=0 그,}실패할 것은)2− k{\displaystyle 2^{-k}로}추정할 것이다뚜렷한 값 λ 1,…,λ n{\displaystyle \lambda_{1},\ldots 이러한 방법으로 k의 최악의 경우 심지어(_{n}}.[1]=1{\displaystyle k=1}와 f()))()− λ)n{\displaystyle f())=(x-\lambda)^{n}}에{k\displaystyle}을 몇번이나 오류의 확률 1/2{으로 추정될 수 있다.\di1 모듈형 사각형 루트 사례 오류 확률은 최대1/ 입니다

복잡성

다항식에게 학위 을 부여한다 알고리즘의 복잡성은 다음과 같이 도출한다.

  1. Due to the binomial theorem , we may transition from to in ti나.
  2. Polynomial multiplication and taking remainder of one polynomial modulo another one may be done in , thus calculation of is done in .
  3. 2진수 O( 2 log ){\}\ p에서 작동한다
  4. 유클리드 알고리즘을 통해 두 다항식 을(를 가져오는 작업은 )})에서 수행된다

algorithm,[9] 알고리즘의 복잡성 O(n로그⁡와 로그 ⁡ pn){O(n\log n\log pn)\displaystyle}에 개선될 지도 모르따라서 절차를 전부 O(n2로그 ⁡ p){O(n^{2}\log p)\displaystyle}. 빠른 푸리에 변환과 Half-GCD이 사용됩니다. 그것은 모듈식의 제곱 근 경우, 그 학위 n은=2{\displaystyl 질 수 있다.en따라서 그러한 경우 알고리즘의 전체 복잡성은 반복당 O p로 제한된다.[7]

참조

  1. ^ a b c d e f g Berlekamp, E. R. (1970). "Factoring polynomials over large finite fields". Mathematics of Computation. 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. S2CID 10249895.
  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.{{cite book}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  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.