Các vấn đề tạm dừng giới hạn là quyết định. Tại sao điều này không mâu thuẫn với định lý của Rice?


9

Một tuyên bố về định lý của Rice được đưa ra ở trang 35 của "Độ phức tạp tính toán: Cách tiếp cận hiện đại" (Arora-Barak):

Hàm một phần từ đến là một hàm không nhất thiết phải được xác định trên tất cả các đầu vào của nó. Chúng ta nói rằng TM tính một hàm nếu với mọi mà trên đó được xác định, và với mọi mà không được xác định sẽ đi vào một vòng lặp vô hạn khi được thực hiện trên đầu vào . Nếu là một tập hợp các hàm một phần, chúng tôi xác định là hàm boolean trên đầu vào đầu ra 1 iff{0,1}{0,1}MfxfM(x)=f(x)xfMxSfSαMαtính một hàm một phần trong . Định lý Rice nói rằng với mọi không cần thiết , hàm không thể tính toán được.SSfS

Wikipedia nói rằng các ngôn ngữ của máy bảo vệ thời gian giới hạn đã hoàn tất EXPTIME. Tôi hy vọng ngôn ngữ này trông giống như chấp nhận trong ít hơn bước . Vì vậy, hãy để là một số DTM quyết định ngôn ngữ giới hạn này theo thời gian theo cấp số nhân. Có vẻ như DTM này đang quyết định một số tài sản cho TẤT CẢ các máy turing, vì vậy trực giác của tôi cho tôi biết rằng định lý của Rice loại trừ một quyết định như vậy. Nhưng rõ ràng tính tổng hàm.{(α,x,n):Mαxn}MM

Tôi còn thiếu điều gì về mối quan hệ giữa ngôn ngữ này và định lý của Rice?

Câu trả lời:


13

Ngôn ngữ

{(α,x,n):Mα accepts x in less than n steps}

không phải là một bộ chỉ mục, đó không phải là hình thức

LP={MM is TM, fP. fM=f}

đối với một số bộ (một phần đệ quy) chức năng , với các (một phần) chức năng tính bằng TM . Định lý của Rice đưa ra các tuyên bố chỉ về như vậy ; nhiều cách đọc lại "trực quan" không hữu ích. Xem thêm tại đây .PfMMLP

Lưu ý rằng đây không chỉ là một chi tiết kỹ thuật ở đây. Định lý Rice không áp dụng cho

L={MM accepts M in less than M steps} ,

hoặc. Bạn có thể thấy tại sao không?

Đối với mỗi máy trong bạn có thể dễ dàng xây dựng nhiều máy chấp nhận ngôn ngữ tương tự nhưng chạy hơn bước, và do đó không phải là trong . Do đó, không phải là một bộ chỉ số.LMLL

L là có thể quyết định, sử dụng cùng một đối số như đối với ngôn ngữ gốc mà chúng ta đang thảo luận.


+1. Đặc biệt là đối với các siêu liên kết có lẽ cũng áp dụng ở đây. Tuy nhiên, tôi đã cố gắng đóng góp một phân tích "trực quan" như một câu trả lời thay thế.
Jirka Hanika

6

Định lý Rice nói rằng bạn không thể nói bất cứ điều gì về hành vi cuối cùng của chương trình khi nó chạy đến vô cùng - cho dù bạn phân loại chương trình như thế nào, sẽ có hai chương trình sẽ hội tụ cùng một hành vi cuối cùng (chức năng được tính toán ) mặc dù bạn đã phân loại chúng khác nhau.

Nhưng để cho các chương trình chạy đến vô cùng là điều cần thiết. Để tìm hiểu những gì họ làm trong bước đầu tiên , bạn chỉ cần mô phỏng họ cho bước đầu tiên và sau đó chấm dứt đưa ra phán quyết của bạn về cách chương trình hoạt động. Mô phỏng tương tự cho đến vô cực không hoạt động bởi vì nếu chương trình mô phỏng không bao giờ kết thúc trên đầu vào mô phỏng, bộ phân loại của bạn cũng sẽ phân kỳ, thay vì cung cấp một phân loại.nn


5

Đầu tiên, các từ trong ngôn ngữ của bạn không phải là mã hóa của máy móc, chúng chứa nhiều thông tin hơn, vì vậy bạn không thể trực tiếp áp dụng định lý Rice. Điều đó nói rằng, định lý của Rice nói về sự bất khả thi của lý luận về chức năng được tính toán bởi một máy Turing (cụ thể là, liệu nó có nằm trong tập ). Đây không phải là trường hợp ở đây, vì như Raphael đã đề cập, tồn tại hai máy , người tính toán cùng chức năng, nhưng một máy nằm trong ngôn ngữ của bạn và máy kia thì không (ở đây tôi bỏ qua vấn đề cú pháp và quên đi thực tế là là một phần của đầu vào). Vấn đề là tài sản bạn đang xem ở đây là cơ học, và không phải là ngữ nghĩa (các máy có thể tính toán cùng chức năng, nhưng theo một cách khác).SM,Mx,n


Đối số đầu tiên là chính thức nhưng chính xác. Đối số thứ hai làm tôi bối rối (Tôi không chắc chắn rằng tôi có thể xác định tính cục bộ / tính toàn cầu một cách chặt chẽ; và tôi không biết ý nghĩa của việc tính toán một hàm "từ một tập hợp các hàm").
Jirka Hanika

Đối số đầu tiên thực sự chỉ là cú pháp, như Raphael đã đề cập trong câu trả lời của mình. Vấn đề cục bộ / toàn cầu có nghĩa là chỉ ra sự khác biệt giữa lý luận về kết quả trên một đầu vào so với tất cả các đầu vào (tôi không có ý đó theo nghĩa chính thức, nó có thể có ý nghĩa khác trong một bối cảnh khác). Tính toán một hàm từ một tập đã cho chỉ đơn giản là bạn hỏi liệu hàm được tính bởi có trong . MαS
Ariel

Định lý Rice KHÔNG yêu cầu người ta suy luận về hành vi của máy trên tất cả các đầu vào. Ví dụ: không thể phân loại các chương trình dựa trên việc cuối cùng chúng có chấp nhận hay không khi chạy trên đầu vào "5". Hay đúng hơn, bạn có thể định nghĩa một phân loại như vậy mà bỏ qua hành vi trên hầu hết các đầu vào là tốt, nhưng phân loại vẫn không được đệ quy.
Jirka Hanika

Điều này thực sự khó hiểu, vì người ta có thể định nghĩa là tập hợp các hàm xuất trên một số đầu vào cố định. Cảm ơn đã nêu vấn đề. S1
Ariel

3

Định lý của Rice nói rằng, đối với bất kỳ tập hợp ngôn ngữ nào, bộ máy Turing nhận ra ngôn ngữ trong  là không thể giải quyết được. Wikipedia nói rằng một ngôn ngữ cụ thể là có thể quyết định. Vì vậy, không có mâu thuẫn.LL

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.