AKS 소수판별법

AKS 소수판별법은 어떤 자연수소수인지 판별하는 결정론적 알고리즘이다. 2002년 8월 6일, 인도 공과대학교 칸푸르의 컴퓨터 과학자 마닌드라 아그라왈, 니라지 카얄, 니틴 삭세나가 공동으로 출판한 논문 "PRIMES is in P"[1]에서 처음으로 발표되었다.

세 저자는 이 연구로 2006년 괴델상, 풀커슨상을 포함 각종 상을 수상하였다.

중요성

[편집]

AKS 소수판별법은 최초로 발견된 일반적이고, 무조건적이고, 결정론적다항 시간 알고리즘이다. 4가지 가운데 3가지 특성을 가진 알고리즘은 존재했으나, 4가지 특성을 모두 가진 것은 AKS가 최초이다.

  • 일반적: AKS 알고리즘은 모든 자연수에 대해 그 수가 소수인지 합성수인지를 판별할 수 있다. 속도가 빠른 기존의 소수 판별 알고리즘들은 몇몇 특징을 가진 소수에 대해서만 작동하였다.

예를 들어 루카스-레머 소수판별법메르센 소수에 대해서만 동작하며, 뤼카-레머-리젤 소수판별법k ⋅ 2n − 1(k는 홀수)인 수에 대해서만 작동하고, 페팽 소수판별법페르마 수에 대해서만 동작한다.

개요

[편집]

AKS 소수판별법은 다음과 같은 정리를 이용한다

정수 n (≥ 2) 은, n서로소인 모든 정수 a에 대해 다음 합동식이 성립할 때만 소수이며, 그렇지 않으면 합성수이다.

위 항등식에서 x자유 변수이며, 을 풀었을 때 좌변과 우변의 모든 계수가 일치해야 한다.[1]

위 정리는 페르마 소정리다항식에 대해 일반화한 것으로, 다음 정리를 이용하여 쉽게 증명할 수 있다.

인 모든 k에 대해 이면, n은 소수이며, 그렇지 않으면 합성수이다.

정리 (1)은 그 자체로 소수판별법이지만, 모든 정수에 대해 이 관계를 검증하는 것은 지수 시간 알고리즘이다. 이 방법의 시간복잡도를 줄이기 위해, AKS 알고리즘은 다음 합동식을 이용한다.

위 식은 다음 명제와 같은 의미를 갖는다.

를 만족하는 다항식 fg가 존재한다.

r의 크기가 n의 자리수에 대해 로그 복잡도를 가지므로, 다항식 fg의 존재를 찾는 것은 다항 시간 안에 완료할 수 있다.

알고리즘

[편집]

AKS 알고리즘의 개요는 다음과 같다.

1보다 큰 정수 n을 입력으로 받는다.
  1. 인 정수 a > 1 와 b > 1 가 존재하면, 합성수를 출력한다.
  2. 을 만족하는 가장 작은 r을 찾는다.
  3. 만약 ar이고 1 < gcd(a, n) < n 을 만족하는 정수 a가 존재하면, 합성수를 출력한다.
  4. 만약 nr이면 소수를 출력한다. 만약 n>5690034이면 이 단계는 무시해도 된다.
  5. 1에서 까지의 모든 정수 a에 대해,
    이면, 합성수를 출력한다.
  6. 소수를 출력한다

위 알고리즘에서 or(n)은 곱의 차수, 즉 을 만족하는 가장 작은 k이다. log는 이진 로그 함수이고, 오일러 피 함수이다.

예시

[편집]

n=31을 소수판별하고 싶다고 하자.

1. 는 모두 자연수가 아니다. (31의 1/5제곱부터는 거듭제곱들이 2 미만이 되므로 검사할 필요가 없다.)

2. r = 29이다.

3. gcd(2, 31)=1, gcd(3, 31)=1, ... , gcd(28, 31)=1, gcd(29, 31)=1이다.

4. 31>29이므로 5단계로 넘어간다.

5. 이 성립하려면 (A) 에서 (B) 를 뺀 값이 (mod xr-1, n)에서 0이어야 한다. 따라서,

(A) 이고, 이 전개한 식을 x29-1로 나눈 나머지는

가 되며 다시 이 식을 31로 나눈 나머지는 가 된다. 따라서

(A)

이 되고,

(B)

이 된다. 여기서 (A) - (B)

이 되며, a=1부터 a==26까지의 정수들에 대하여 이 성립하므로 조건을 만족하는 모든 a에 대하여이 성립한다.

6. 따라서 n=31은 소수가 된다.

각주

[편집]
  1. Agrawal, Manindra; Kayal, Neeraj; Saxena, Nitin (2004). “PRIMES is in P” (PDF). 《수학연보160 (2): 781–793. doi:10.4007/annals.2004.160.781. JSTOR 3597229. 

참고 문헌

[편집]