Nó có thể được xác định nếu ngôn ngữ L nằm trong NP?


15

Cho một ngôn ngữ L được xác định bởi Máy Turing quyết định ngôn ngữ đó, liệu có thể xác định thuật toán liệu L có nằm trong NP không?


Được trang bị lại cho lý thuyết phức tạp. Không chắc chắn điều này có liên quan đến NP-Completeness.
Aryabhata

1
FWIW, mặc dù bỏ phiếu trên trang web đề xuất, tôi nghĩ rằng câu hỏi này có phạm vi rộng hơn so với câu hỏi về bao thanh toán chính xác bởi vì câu hỏi về bao thanh toán sẽ được đề cập trong hầu hết các khóa học phức tạp giới thiệu, nhưng câu hỏi này thậm chí không được đề cập trong nhiều cấp độ sau đại học các khóa học phức tạp.
Joshua Grochow

1
Đây không phải là điều được đề cập trong các khóa học giới thiệu về khả năng tính toán như là một ứng dụng điển hình của định lý Rice?
Moritz

3
Moritz - mặc dù câu trả lời có / không cho câu hỏi này được bao phủ bởi Định lý Rice, hãy xem câu trả lời của tôi dưới đây để có kết quả thú vị hơn. Có lẽ, txwikinger, bạn nên thay đổi câu hỏi thành "Độ phức tạp của tập {i: L (M_i) có trong NP} là gì?"?
Joshua Grochow

Tôi sẽ trả lời câu hỏi của Joshua ở đây. Câu trả lời có thể rõ ràng khi ngôn ngữ được chỉ định bởi Máy Turing, nhưng câu trả lời là giống nhau (và có lẽ không hoàn toàn rõ ràng) nếu chúng ta cho phép ngôn ngữ được chỉ định theo một số định dạng tùy ý.
Anand Kulkarni

Câu trả lời:


24

Thứ nhất, theo Định lý Rice, đây là một tài sản của các TM chỉ phụ thuộc vào ngôn ngữ mà họ tính toán, vì vậy nó không thể tính toán được.

Nhưng, hơn thế nữa, người ta biết rằng bộ chỉ số (nghĩa là tập hợp các TM tính toán ngôn ngữ trong ) là ( trong hệ thống phân cấp số học tính toán, không phải là phân cấp số học tính toán, không phải là hệ thống phân cấp đa thức).NPNPΣ30Σ30

Những câu hỏi như thế này lần đầu tiên được điều tra bởi Hajek . Để biết thêm, xem ví dụ bài viết này của Ken Regan.

Một vài cốm tuyệt vời từ giấy của Hajek:

  • Bộ chỉ mục của là .PΣ30
  • {Tôi:PL(MTôi)NPL(MTôi)} là hoàn thànhΠ20
  • Có tổng số máy Turing (tạm dừng trên tất cả các đầu vào) sao cho nhưng câu lệnh " " là độc lập (trong đó ). Tương tự như vậy đối với tương đối hóa trong đó .MTôiPLTôi= =NPLTôiPLTôi= =NPLTôiLTôi= =L(MTôi)PNP

1
Ở đây, câu hỏi dường như là một vấn đề quyết định hứa hẹn (ngôn ngữ đã cho được hứa sẽ được quyết định bởi một TM, không chỉ được công nhận) trái ngược với vấn đề quyết định tổng thể. Định lý Rice sẽ vẫn được áp dụng ở đây chứ? Hãy nhớ lại rằng bằng chứng của Định lý Rice sử dụng tính không ổn định của việc tạm dừng, vì vậy tính không chắc chắn là rất cần thiết ở đó.
Zeyu

2
Trong câu hỏi, ngôn ngữ L được "đưa ra bởi một máy quyết định nó." Vì vậy, nó thực sự là: được cung cấp một máy Turing M, có thể xác định được nếu L (M) ở trong NP. Nếu ngôn ngữ L không được chỉ định bởi một TM, mà chỉ được đưa ra dưới dạng tập hợp con của các số tự nhiên, thì việc quyết định theo thuật toán nếu L nằm trong NP là gì? Cụ thể, làm thế nào chúng ta có thể nghĩ L là đầu vào của một thuật toán khi bản thân L không được đưa ra bởi một mô tả hữu hạn?
Joshua Grochow

1
Vâng tôi biết. Nhưng trong Định lý của Rice, có thể TM không quyết định ngôn ngữ, nghĩa là nó không tính tổng hàm.
Zeyu

2
Một giả thuyết chung cho rằng, với một thuộc tính ngữ nghĩa của các máy Turing, chẳng hạn như "M định nghĩa ngôn ngữ NP", trước tiên người ta nên cố gắng thể hiện tính chất này theo logic thứ nhất. Điều này đặt thuộc tính trong một mức phân cấp số học; heuristic là tài sản thường được hoàn thành cho mức phân cấp đó. Tôi muốn hỏi liệu có bất kỳ phản ứng đáng chú ý nào đối với heuristic này không.
Andy Drucker

2
Thu nhỏ lại theo Hệ thống phân cấp đa thức, mọi thứ ít có khả năng ứng xử rất độc đáo. Ví dụ, hãy xem xét thuộc tính "C là một mạch Boolean có kích thước tối thiểu (đối với chức năng mà nó tính toán)". Vấn đề này là NP-hard và có thể được đặt trong Phân cấp đa thức, nhưng nó mở cho dù nó hoàn thành cho cấp độ mà nó tồn tại tự nhiên. (kết quả như vậy được biết đến với một số lớp hạn chế của các mạch, ví dụ như DNFs, xem cuộc khảo sát 2 phần "Đầy đủ trong Đa thức Hierarchy" bởi Schaefer và Umans.)
Andy Drucker

5

Câu trả lời cho câu hỏi theo nghĩa đen của bạn là không, như Joshua Grochow đã chỉ ra.

Tuy nhiên, như Holger đã nêu, có thể kiểm tra theo thời gian tuyến tính xem máy Turing không xác định (NTM) có tự "đồng hồ" và dừng lại sau n ^ k bước cho một số k không đổi, thông qua một số cách mô phỏng chuẩn của đồng hồ (chẳng hạn như mã bên dưới). Thông thường khi một tờ giấy hoặc cuốn sách sẽ gợi ý (không chính xác) rằng có thể xác định xem một NTM có phải là thời gian đa thức hay không, đây là ý nghĩa thực sự của chúng. Có lẽ đây là lý do tại sao bạn đặt câu hỏi? (Tôi đã có cùng một câu hỏi khi lần đầu tiên tôi học lý thuyết phức tạp và ở đâu đó đã thấy tuyên bố rằng có thể kiểm tra xem TM có phải là đa thời gian không.) Câu hỏi thực sự là tại sao người ta có thể muốn làm điều này, mà tôi sẽ thảo luận dưới đây sau khi giải thích như thế nào .

Có rất nhiều cách để thêm một tính năng đồng hồ như vậy. Ví dụ, hãy tưởng tượng trên đầu vào x có độ dài n, luân phiên thực hiện một câu lệnh của "thuật toán chính" được đặt xung nhịp, và sau đó một câu lệnh của thuật toán sau, kết thúc bằng (một cái gì đó gần với) n ^ k bước:

cho i_1 = 1 đến n
  cho i_2 = 1 đến n
...
        cho i_k = 1 đến n
          không ra đâu;
trở về;

Nếu đoạn mã trên trả về trước khi thuật toán chính dừng lại, thì tạm dừng toàn bộ tính toán (giả sử, với sự từ chối).

Thuật toán quyết định xem NTM có ở dạng này hay không, nếu được hiểu là một nỗ lực của thuật toán để quyết định xem đầu vào của nó có phải là NTM đa thời gian hay không, sẽ báo cáo một số phủ định sai: mặc dù một số NTM được bảo đảm tạm dừng trong thời gian đa thức, mặc dù họ không luân phiên thực hiện một câu lệnh của thuật toán bằng một câu lệnh của đồng hồ như mã ở trên (do đó sẽ bị từ chối mặc dù là đa thời gian).

Nhưng không có dương tính giả. Nếu một NTM vượt qua bài kiểm tra, thì nó chắc chắn tạm dừng trong thời gian đa thức, do đó nó xác định một số ngôn ngữ NP. Tuy nhiên, có lẽ hành vi của thuật toán chính cơ bản của nó bị thay đổi, nếu đồng hồ đôi khi hết trước khi thuật toán chính dừng lại, khiến cho việc tính toán bị từ chối mặc dù thuật toán chính có thể đã chấp nhận nếu có đủ thời gian để kết thúc. Do đó, ngôn ngữ quyết định có thể khác với ngôn ngữ chính. Nhưngvà đây là chìa khóa, nếu trên thực tế thuật toán chính được thực hiện là thuật toán đa thức thời gian chạy trong thời gian p (n) và nếu hằng số k trong đồng hồ đủ lớn để n ^ k> p (n), thì thuật toán chính sẽ luôn dừng lại trước khi hết giờ. Trong trường hợp này, câu trả lời của thuật toán chính không bị thay đổi, do đó, thuật toán chính và NTM có xung nhịp mô phỏng nó do đó quyết định cùng một ngôn ngữ NP.

Sao nó lại quan trọng? Điều này có nghĩa là có thể "liệt kê tất cả các ngôn ngữ NP" (như tôi đã nói trong tài liệu thường được nêu không chính xác là "quyết định liệu một NTM đã cho là đa thời gian" hay "liệt kê tất cả các NTM đa thời gian"). Chính xác hơn, có thể liệt kê một danh sách vô hạn của M_1 M_2 M_2, ..., với các thuộc tính

  1. Mỗi M_k chạy trong thời gian đa thức (ví dụ: bằng cách gắn đồng hồ ^ k-time vào M_k), do đó quyết định một số ngôn ngữ NP và
  2. Mỗi ngôn ngữ NP là ngôn ngữ được quyết định bởi một số M_i trong danh sách.

Điều không xảy ra là mọi NTM thời gian đa thức đều có trong danh sách. Nhưng mỗi ngôn ngữ NP có vô số NTM đại diện cho nó. Do đó, mỗi ngôn ngữ NP được đảm bảo có ít nhất một số NTM đại diện của nó trong danh sách, cụ thể là tất cả các ngôn ngữ NTM đó với chỉ số đủ lớn k mà n ^ k vượt quá thời gian chạy của M_k.

Điều này rất hữu ích để thực hiện các thủ thuật như đường chéo, yêu cầu liệt kê một cách thuật toán các danh sách vô hạn (hoặc không giới hạn) như vậy của tất cả các ngôn ngữ NP. Và tất nhiên, toàn bộ cuộc thảo luận này áp dụng cho nhiều loại máy khác ngoài các NTM đa thời gian, chẳng hạn như các TM xác định đa thời gian.


3

p(n)


2
Điều đó chỉ hoạt động nếu đó là một TM không đặc biệt có đồng hồ . Nếu tôi chỉ cung cấp cho bạn một TM có đồng hồ (thậm chí một TM chạy theo thời gian theo cấp số nhân), thì vẫn không thể chắc chắn liệu ngôn ngữ mà nó quyết định có trong NP hay không. Tuy nhiên, nếu N_1, N_2, ... là một bảng liệt kê các TM có đồng hồ theo cấp số nhân, thì bộ {i: L (N_i) nằm trong NP} có lẽ không còn là Sigma_3 nữa, vì bạn đã được đảm bảo rằng N_i tổng cộng, nhưng nó vẫn chắc chắn không thể tính toán được.
Joshua Grochow
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.