Độ phức tạp-lý thuyết khó kiểm tra giá trị của


13

Hàm đếm số nguyên tố , hạ cấp , được định nghĩa là số lượng số nguyên tố nhỏ hơn hoặc bằng x .π(x)x

Chúng ta có thể định nghĩa một vấn đề quyết định từ như sau:π(x)

Cho hai số n , được viết dưới dạng nhị phân, quyết định xem π ( x ) = n .xnπ(x)=n

Một người bạn và tôi đã nói về vấn đề này sớm hôm nay. Có một thuật toán giả thời gian cho vấn đề này - chỉ cần đếm đến , sử dụng phép chia ở mỗi bước để xem có bao nhiêu số là số nguyên tố và kiểm tra xem nó có bằng n không . Vấn đề cũng nằm ở PSPACE, vì thuật toán tôi vừa mô tả có thể được triển khai để chỉ sử dụng không gian phụ trợ đa thức.xn

Tuy nhiên, tôi gặp khó khăn khi tìm cách đặt vấn đề này vào một lớp phức tạp thấp hơn. Tôi không thể thấy cách xây dựng trình xác minh thời gian đa thức cho vấn đề, vì vậy tôi không chắc liệu nó có trong NP hay không và tôi không thể nghĩ ra cách nào để đưa nó vào hệ thống phân cấp đa thức.

Lớp phức tạp thích hợp nhất cho vấn đề này là gì?

Cảm ơn!


thông thường các loại vấn đề này có xu hướng phụ thuộc vào phỏng đoán Riemann .... có nhiều chức năng "gần đó" với bạn có kết nối đó ....
vzn

Câu trả lời:


11

Đây là rất nhiều một vấn đề mở. Tôi sẽ phác thảo một số lớp mà vấn đề có thể "tự nhiên" phù hợp.

Định nghĩa của bạn hơi khó xử lý, vấn đề khó phù hợp với bất kỳ lớp phức tạp hiện có nào. Ngôn ngữ bạn đã xác định là giao điểm của các ngôn ngữ { ( x , n ) | π ( x ) n } . Vì vậy, nếu ví dụ { ( x , n ) | π ( x ) K thì {{(x,n)|π(x)n}{(x,n)|π(x)n} là trong lớp học{(x,n)|π(x)n}K sẽ là trong c o K . Điều này làm cho việc mô tả đặc trưng của ngôn ngữ mà bạn đã xác định khó khăn vì người ta sẽ phải nói "giao điểm của ngôn ngữ trong K với ngôn ngữ trong c{(x,n)|π(x)n}coKK " để đưa ra ràng buộc chặt chẽ nhất.coK

Vấn đề "Tính " là một vấn đề trong # P , nơi # P F P S P Một C E là lớp của các vấn đề của form "Tính toán số lượng chấp nhận con đường của một không xác định, TM đa thức". Rõ ràng chúng ta có thể xây dựng một TM không xác định để đoán một số q x , và sau đó (với AKS) kiểm tra xem q có phải là số nguyên tố hay không.π(X)#P#PFPSPACEqxq

Một biến thể quyết định của P P , đây là loại ngôn ngữ có dạng: "Đưa ra một đa thức TM không phổ biến, có ít nhất một nửa các đường tính toán chấp nhận không?". Cả { ( x , n ) | π ( x ) n }{ ( x , n ) | π ( x ) n } (bằng cách thực hiện một số fudging đến TM nói trên để cân bằng số lượng đường chấp nhận).#PPP{(x,n)|π(x)n}{(x,n)|π(x)n} có lẽ rút gọn về một vấn đề trong PP


3

Vấn đề của bạn là ở C = P= thông qua thuật toán,

đoán không xác định một số nguyên sao cho[m và một chút0m<2log2(x+1)]b
nếu x < msau đó từ chối
nếu b=1sau đó:
nếu m < nsau đó chấp nhận từ chối khác
khác:
nếu m là số nguyên tố thì chấp nhận từ chối

.


Đặc biệt, vấn đề của bạn cũng nằm ở PP, vì PP được đóng dưới mức giảm bảng thật .


2

Trong thực tế, bạn có thể nhận được câu trả lời nhanh hơn hoặc chậm hơn :-(

Có những xấp xỉ hợp lý tốt cho π (x). Vì vậy, bạn tính toán một xấp xỉ như vậy, và nếu nó quá xa bạn biết rằng π (x) n. Ví dụ, nếu n ≥ x thì tôi biết rằng π (x) ≠ n mà không tính toán gì.

Có một thuật toán nhanh xác định xem π (x) là chẵn hay lẻ, chạy trong O (x ^ (1/2)). Bạn có thể chạy thuật toán này và nó có thể phát hiện ra rằng chẵn lẻ của n là sai và bạn đã hoàn thành. Nó có cơ hội năm mươi nếu n là số nguyên ngẫu nhiên gần với số thập phân (x).

Ngoài ra, tôi không biết phương pháp nào nhanh hơn tính toán π (x). Điều này rất bất tiện - nếu tôi viết một chương trình được cho là tính toán π (10 ^ 25) và tôi nhận được một kết quả rõ ràng là không sai, thì không có cách nào để kiểm tra xem kết quả của tôi có đúng không ngoài việc lặp lại phép tính. Và bạn không thể lặp lại phép tính bằng chương trình của tôi, bạn cần phải viết một chương trình khác, nếu không bạn sẽ không phát hiện ra nếu chương trình của tôi có bất kỳ lỗi nào khiến nó tính toán một hàm hơi khác so với π (x).

π (x) có thể được tính toán một cách hợp lý dễ dàng trong khoảng O (n ^ (2/3)) và nhanh hơn với một số phép toán thực sự sâu.


1
Điều này rất thú vị, nhưng câu hỏi là về các lớp phức tạp chứa vấn đề.
usul
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.