의 값을 확인하기 어려운 복잡성 이론 ?


13

소수 계량 함수 강등, , 이하의 소수들의 수로 정의하거나 동일하다 .π(x)x

에서 다음과 같이 결정 문제를 정의 할 수 있습니다 .π(x)

이진수로 작성된 두 개의 숫자 와 주어지면 인지 결정하십시오 .xnπ(x)=n

친구와 나는 오늘 일찍이 문제에 대해 이야기하고있었습니다. 이 문제에 대한 의사 시간 알고리즘이 있습니다- 각 단계에서 시행 횟수를 사용하여 최대 수를 세어 소수가 소수인지 확인하고 과 같은지 확인하십시오 . 방금 설명한 알고리즘을 다항식 보조 공간 만 사용하도록 구현할 수 있기 때문에 문제는 PSPACE에도 있습니다.Nxn

그러나이 문제를 복잡도가 낮은 클래스에 배치하는 방법을 찾는 데 어려움을 겪고 있습니다. 문제에 대한 다항식 시간 검증기를 작성하는 방법을 볼 수 없으므로 NP에 있는지 확실하지 않으며 다항식 계층 구조로 가져올 수있는 방법을 생각할 수 없습니다.

이 문제에 가장 적합한 복잡성 등급은 무엇입니까?

감사!


일반적으로 이러한 유형의 문제는 리만 (Riemann) 추측에 의존하는 경향이 있습니다. ... 당신과 관련이있는 많은 "가까운"기능이 있습니다.
vzn

답변:


11

이것은 매우 개방적인 문제입니다. 문제가 "자연스럽게"적합 할 수있는 클래스를 스케치하겠습니다.

정의는 다루기가 다소 어려우며, 문제는 기존 복잡성 클래스에 맞추기가 어렵습니다. 정의한 언어는 언어 { ( x , n ) | π ( x ) n } 입니다. 예를 들어 { ( x , n ) | π ( x ) n } 클래스에있었습니다{(x,n)|π(x)n}{(x,n)|π(x)n}{(x,n)|π(x)n} 다음에 { ( x , n ) | π ( x ) n } c o K 입니다. 이것은 하나가 "에서 언어의 교차 상태로이 때문에 열심히 정의한 언어의 특성주고 있습니다 K 에서 언어와 C O K 소감 바인딩 줄을".K{(x,n)|π(x)n}coKKcoK

"Compute "문제는 # P 의 문제입니다 . 여기서 # P F P S P A C E 는 "비 결정적, 다항식 TM의 허용 경로 수 계산"형식의 문제 클래스입니다. 분명히 우리는 숫자 q x 를 추측하는 비 결정적 TM을 구성하고 (KS를 사용 하여) q 가 소수 인지 테스트 할 수 있습니다.π(X)#P#PFPSPACEqxq

의 결정 변형 은 P P 인데, 이는 "비결정론 적 다항식 TM을 제공하면 계산 경로의 절반 이상을 허용합니까?"와 같은 형식의 언어 클래스입니다. 둘 다 { ( x , n ) | π ( x ) n }{ ( x , n ) | π ( x ) n } 은 아마도 P P 의 문제로 환원 될 수있다#PPP{(x,n)|π(x)n}{(x,n)|π(x)n}PP (수용 경로 수의 균형을 맞추기 위해 위에서 언급 한 TM에 약간의 혼란을가함으로써).


3

문제는 C = P에 있습니다.= 알고리즘을 통한,

비 - 결정 성이 추측 정수 되도록을[m 및 비트0m<2log2(x+1)]b
경우 x < m다음 거부
만약 b=1다음 :
그렇다면 m < n거부 거부
그밖에:
m 소수 인 경우 거부

.


특히 PP가 진리표 축소 아래에서 닫혀 있기 때문에 문제는 PP에도 있습니다 .


2

실제로는 답을 더 빠르게 또는 느리게 얻을 수 있습니다 :-(

π (x)에 대한 합리적인 근사치가 있습니다. 따라서 이러한 근사값을 계산하고 너무 멀리 떨어져 있으면 π (x) ≠ n을 알 수 있습니다. 예를 들어, n ≥ x이면 아무것도 계산하지 않고 π (x) ≠ n임을 알 수 있습니다.

O (x ^ (1/2))에서 π (x)가 짝수인지 홀수인지를 결정하는 빠른 알고리즘이 있습니다. 이 알고리즘을 실행할 수 있으며 n의 패리티가 잘못되어 완료되었음을 감지 할 수 있습니다. n이 π (x)에 가까운 임의의 정수이면 50 개의 기회가 있습니다.

그 외에는 π (x)를 계산하는 것보다 빠른 방법을 모릅니다. 매우 불편합니다-π (10 ^ 25)를 계산 해야하는 프로그램을 작성하고 분명히 잘못된 결과가 나오면 결과를 반복하는 것 외에는 내 결과가 올바른지 확인할 수있는 방법이 없습니다 계산. 그리고 내 프로그램을 사용하여 계산을 반복 할 수는 없으며 다른 프로그램을 작성해야합니다. 그렇지 않으면 내 프로그램에 π (x)와 약간 다른 함수를 계산하는 버그가 있는지 감지하지 못합니다.

π (x)는 약 O (n ^ (2/3))로 합리적으로 쉽게 계산할 수 있으며, 일부 심층 수학에서는 더 빠릅니다.


1
이것은 흥미롭지 만 문제는 문제를 포함하는 복잡성 클래스에 관한 것입니다.
usul
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.