Có một ứng cử viên cho một vấn đề tự nhiên trong ?


27

Tôi muốn biết nếu tính không đồng nhất giúp các chức năng tính toán trong thực tế. Thật dễ dàng để chỉ ra rằng có các hàm trong , lấy bất kỳ hàm không thể tính toán nào và xem xét ngôn ngữ { }, rõ ràng có các mạch không đồng nhất đơn giản , nhưng hoàn toàn không thể tính toán được, nhưng đây không phải là loại chức năng tôi quan tâm.P/polyPf0f(n):nω

Có một chức năng mà chúng ta biết nó có thể được tính toán không đồng nhất nhưng chúng ta không biết liệu nó có thể được tính toán thống nhất không (hoặc ít nhất chứng minh rằng nó không thể được tính toán thống nhất là không rõ ràng)?

Làm thế nào có thể không đồng nhất của các mạch cho các chức năng tính toán mà không được biết là có thể tính toán thống nhất (với cùng một lượng tài nguyên)?

Xin lưu ý rằng tôi không muốn các chức năng bệnh lý như không thể tính toán được đề cập ở trên, tôi muốn các chức năng tự nhiên mà mọi người thực sự quan tâm đến máy tính và điều hợp lý là có thể hoặc có thể được tính toán thống nhất.

Chỉnh sửa: Tôi biết rằng . Vì vậy, một câu trả lời không phải là một kết quả derandomization là thú vị hơn đối với tôi.BPPP/poly

Chỉnh sửa 2: Như András Salamon và Tsuyoshi Ito đã nói trong câu trả lời của họ, , và có những vấn đề thú vị trongSparseP/poly mà không được biết là ở P , vì vậy chính thức họ đã trả lời tôi đã hỏi, nhưng điều đó không giúp ích gì cho những gì tôi thực sự quan tâm vì lý do họ ở P / p o l y là khả năng mã hóa cứng một ngôn ngữ thưa thớt vào mạch. Một ngôn ngữ không thưa thớt sẽ thú vị hơn.SparsePP/poly


@ András Salamon, @Tsuyoshi Ito: Cảm ơn bạn. Nhưng điều tôi quan tâm là hiểu làm thế nào tính không đồng nhất có thể giúp ích trong các chức năng tính toán. Thực tế là các ngôn ngữ thưa thớt trong không giúp ích gì cho chúng, chúng nằm trong P / p o l y đơn giản vì chúng ta có thể "mã hóa cứng" chúng vào mạch. Tôi nên đã thêm yêu cầu cho câu hỏi của tôi rằng "ngôn ngữ không phải là tầm thường trong P / p o l y ". P/potôiyP/potôiyP/potôiy
Kaveh

Câu trả lời:


13

Tôi không biết nếu thỏa mãn các yêu cầu này của bạn, nhưng bài viết trên blog Bill Gasarch trong tháng 7 năm 2010 yêu cầu về ngôn ngữ ở thưa thớt ∩NP mà không được coi là trong P, đưa ra một ví dụ từ Ramsey Theory. Bất kỳ ngôn ngữ như vậy thuộc về (P / poly) NP.

Liên quan đến vấn đề này, đối với bất kỳ ngôn ngữ L ∈NP nào, ngôn ngữ T L = {1 n : L chứa một số chuỗi có độ dài n } nằm trong TALLY NP SPARSE∩NP (P / poly) NP. Tùy thuộc vào lựa chọn ngôn ngữ L , T L có thể không có lý do rõ ràng để thuộc về P.


8

Tsuyoshi Ito nói một cách tao nhã thưa thớt trong một câu trả lời khác không nói rõ ràng như vậy, nhưng có lẽ nó đáng để chỉ ra: bất kỳ ngôn ngữ thưa thớt nào đều có trong P / poly. Sau đó, bất kỳ ngôn ngữ kiểm đếm nào cũng có trong P / poly (vì mọi ngôn ngữ kiểm đếm đều thưa thớt).

Vì vậy, một cách để tìm ngôn ngữ "tự nhiên" trong P / poly nhưng không phải bằng P, là tìm ngôn ngữ thưa "cứng". Như bạn chỉ ra, "khó nhất" là những thứ không thể giải quyết được khi được mã hóa một cách thưa thớt, ví dụ như trong unary. Tổng quát hơn, phiên bản được mã hóa đơn nhất của bất kỳ ngôn ngữ nào bên ngoài EXP sẽ ở bên ngoài P. (Nếu không, hãy xem xét máy Turing theo thời gian hàm tạo ra mã hóa đơn nguyên, được tạo bằng máy để giải quyết ngôn ngữ được mã hóa theo thời gian đó là đa thức trong mã hóa đơn nguyên. Đây là số mũ theo kích thước của thể hiện ban đầu. Máy tổng thể sau đó chạy theo thời gian theo cấp số nhân.) Một số ngôn ngữ 2-EXP hoàn chỉnh có thể phù hợp với sở thích của bạn như là một vấn đề "tự nhiên".

Lưu ý rằng ngôn ngữ lý thuyết Ramsey thưa thớt của Bill Gasarch dường như rơi vào danh mục ngôn ngữ được xây dựng bằng cách phát âm một ngôn ngữ cứng. Nếu người ta mã hóa thể hiện dưới dạng ba số nhị phân thay vì hai số đơn và một nhị phân, thì màu không còn có kích thước đa thức, do đó, ngôn ngữ không rõ ràng trong NP.


6

Điều này giống như một bình luận để trả lời cho câu hỏi sửa đổi (phiên bản 3) hơn là một câu trả lời, nhưng nó quá dài cho một bình luận.

Chỉ loại trừ các ngôn ngữ thưa thớt là không đủ để loại trừ các ngôn ngữ như { x ∈ {0,1} * : | x | ∈ S } thay vì {1 n : nS }, trong đó S là một tập hợp con vô hạn của {0, 1, 2, ...}. Tôi muốn chỉ ra rằng nó có thể khó khăn để phân biệt giữa các trường hợp một ngôn ngữ thuộc về P / poly vì nó là “cơ bản thưa thớt” (ví dụ như {1 n : nS } và { x : | x | ∈ S}) và trường hợp ngôn ngữ thuộc về P / poly vì các lý do khác. Rõ ràng vấn đề ở đây là, làm thế nào để xác định thuật ngữ về cơ bản thưa thớt.

Bạn có thể muốn xác định độ thưa thớt thiết yếu của Hồi giáo như sau: một ngôn ngữ về cơ bản là thưa thớt nếu ngôn ngữ này có thể rút gọn thành ngôn ngữ thưa thớt. Tuy nhiên, phải cẩn thận vì nếu bạn sử dụng mức giảm Turing theo thời gian đa thức trong định nghĩa này, định nghĩa này tương đương với tư cách thành viên của P / poly!

Vì vậy, một điều rõ ràng để thử là sử dụng tính khử nhiều lần một đa thức. Tôi không biết liệu điều này có tương đương với tư cách thành viên của P / poly hay không, chứ chưa nói đến việc P / poly có chứa bất kỳ ngôn ngữ tự nhiên nào mà về cơ bản không thưa thớt theo nghĩa này hay không.


Thật ra tôi đã nghĩ về điều này khi tôi thấy các câu trả lời trước khi sửa đổi câu hỏi, vì đó là điều tự nhiên khi nghĩ đến sự kết hợp boolean của các ngôn ngữ thưa thớt. Tôi nghĩ rằng việc loại trừ các ngôn ngữ có thể rút gọn thành các ngôn ngữ thưa thớt (hoặc có thể hơn một chút) là đủ cho câu hỏi của tôi, nhưng có vẻ như điều này liên quan nhiều hơn tôi nghĩ. MộtC0
Kaveh

@Kaveh: Đó có thể là một định nghĩa tốt khác cho cơ bản là thưa thớt. Hãy đọc bình luận của bạn, tôi tự hỏi liệu P / poly = P∪ (AC0 / poly) (tôi đoán là không), bởi vì bất kỳ vấn đề nào trong (P / poly) ( P∪ (ac0 / poly)) có thể cho là cho là “tính toán bằng cách sử dụng một gia đình không đồng dạng của mạch đa thức có kích thước bằng cách thực sự kết hợp sức mạnh của mạch đa thức-kích thước và sức mạnh của nonuniformity.”
Tsuyoshi Ito

Một vấn đề có thể với định nghĩa của tôi dựa trên một trong những ví dụ của bạn là liệu các ngôn ngữ sau đây là chủ yếu thưa thớt : kiểm tra nếu số lượng của những người thân trong đầu vào là bằng một ngôn ngữ thưa thớt . (Nói chung, hãy coi f là một vấn đề chức năng hoàn chỉnh cho lớp C phức tạp và hãy để S là một ngôn ngữ thưa thớt. Hãy nghĩ rằng f có phạm vi lớn tương tự như hàm NumOnes. Gọi L là tập hợp của x s st f ( x ) S. )SfCSfLxf(x)S
Kaveh

[tiếp tục] Một lớp các ngôn ngữ: lấy một ngôn ngữ thưa thớt và ngôn ngữ Một hoàn chỉnh cho lớp phức tạp C và sau đó xem xét việc nối L = A ' .01 . S ' ( Một 'một nơi mà mỗi biểu tượng được thay thế bằng hai bản sao của nó, ví dụ như 010 trở thành 001.100). Người ta cũng có thể yêu cầu độ dài của phần thứ hai trong phần ghép nhỏ hơn độ dài của phần thứ nhất. Những ngôn ngữ này đáp ứng tất cả các điều kiện ngoại trừ là một vấn đề tự nhiên mà mọi người thực sự quan tâm để giải quyết. SMộtCL= =Một'.01.S'Một'Một
Kaveh

@Kaveh: Hmm, tôi hiểu rồi. Cảm ơn đã chia sẻ các ví dụ. Tôi rút lại ý tưởng xem (P / poly) (P∪ (AC0 / poly)) là vì P / poly vì lý do không cần thiết. Nếu tôi không nhầm, cả hai ví dụ của bạn đều có thể rút ngắn nhiều một ngôn ngữ thưa thớt, vì vậy vẫn còn một số hy vọng rằng định nghĩa về độ thưa thớt thiết yếu của Hồi giáo mà tôi đề xuất trong câu trả lời có thể phù hợp.
Tsuyoshi Ito
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.