Bị ràng buộc thấp hơn về số lượng các cuộc gọi tiên tri để giải quyết trường hợp của vấn đề tạm dừng


9

Tôi đã gặp câu hỏi sau đây, đó là một bài tập dễ dàng (spoiler bên dưới).

Chúng tôi được cung cấp trường hợp của sự cố tạm dừng (ví dụ: TM ) và chúng tôi cần quyết định chính xác vấn đề nào trong số đó dừng lại trên . Nghĩa là, chúng ta cần xuất . Chúng tôi được đưa ra một lời tiên tri cho vấn đề tạm dừng, nhưng chúng tôi phải sử dụng nó một số lần tối thiểu.M 1 , . . . , M n ϵ { i : M i  dừng lại trên  ϵ }nM1,...,Mnϵ{i:Mi halts on ϵ}

Không khó để chỉ ra rằng nó có thể được thực hiện với các lệnh gọi .log(n+1)

Câu hỏi của tôi là: chúng ta có thể chứng minh một giới hạn thấp hơn? Có lý do để nghi ngờ rằng một ràng buộc như vậy sẽ rất khó tìm?

Câu trả lời cho chính câu hỏi (spoiler, chuột di chuột):

Hãy xem xét trường hợp của TM. Chúng ta có thể xây dựng một TM chạy song song và tạm dừng nếu ít nhất hai trong số chúng dừng lại (nếu không nó bị kẹt). Tương tự, chúng ta có thể tạo một TM tạm dừng nếu ít nhất một trong số chúng dừng lại. Sau đó, chúng ta có thể gọi nhà tiên tri trên . Nếu nó dừng lại, thì chúng ta có thể chạy các máy song song và chờ cho một máy dừng lại. Sau đó chúng ta có thể gọi nhà tiên tri trên cái cuối cùng. Nếu nhà tiên tri nói "không", thì chúng ta sẽ chạy nhà tiên tri trên . Nếu nó dừng lại, thì chúng ta sẽ chạy máy cho đến khi dừng lại và đó là máy duy nhất dừng lại. Nếu không dừng lại, thì không ai trong số họ dừng lại. Mở rộng điều này cho máy rất dễ dàng.H 2 M 1 , M 2 , M 3 H 1 H 2 H 1 H 1 n3H2M1,M2,M3H1H2H1H1n

Quan sát đầu tiên về câu hỏi này là dường như không thể giải quyết bằng cách sử dụng các công cụ lý thuyết thông tin, vì chúng tôi chủ yếu dựa vào khả năng của chúng tôi để có được thông tin bằng cách chạy các máy mà không có lời tiên tri.


@Kaveh - như Neal Young đã viết, chúng ta cần tính toán chính xác bộ máy tạm dừng.
Shaull

Câu trả lời:


11

Kết quả có thể được tìm thấy trong

Bằng chứng của họ trong thực tế cho thấy rằng vấn đề của bạn không thể được giải quyết với ít hơn truy vấn đối với bất kỳ bộ , chứ đừng nói đến vấn đề tạm dừng. Đối với một số ký hiệu, vấn đề của bạn đôi khi được ký hiệu là hoặc (tùy thuộc vào ký hiệu yêu thích của bạn cho vấn đề tạm dừng).X C K n C H A L T nlog2nXCnKCnHALT

Đối với điều này và nhiều kết quả liên quan, xem thêm:


10

EDIT: Lập luận mà tôi đã trả lời không sai, nhưng nó hơi sai lệch, ở chỗ nó chỉ cho thấy rằng giới hạn trên phải được thắt chặt đối với một số (điều này thực sự không quan trọng, vì nó phải chặt chẽ khi và giới hạn là 1).n = 2nn=2

Đây là một lập luận chính xác hơn. Điều đó cho thấy rằng nếu giới hạn trên của bị lỏng đối với bất kỳ cụ thể nào , thì với tất cả , số lượng cuộc gọi sấm yêu cầu là .n n O ( 1 )log2nn nO(1)

(Chắc chắn đó không phải là , vì vậy giới hạn trên không bao giờ lỏng lẻo! Nhưng tôi không thực sự chứng minh điều đó ở đây, và đưa ra câu trả lời khác cho vấn đề, nó dường như không đáng để theo đuổi.)O(1)

Xem xét vấn đề tính toán đầu ra tối đa :

Cho một tuple của các máy Turing, tính toán sản lượng tối đa (của các máy Turing tạm dừng, nếu chạy trên ). Nếu không ai trong số họ dừng lại, trả về 0.( M 1 , ... , M n ) εn(M1,,Mn)ϵ

Là một hàm của , số lượng các cuộc gọi tiên tri trong trường hợp xấu nhất được yêu cầu để tính toán hàm này giống như số cần thiết để quyết định máy nào trong số máy đã cho dừng. (Nếu tôi biết máy nào dừng, tôi có thể dễ dàng tính toán đầu ra tối đa. Ngược lại, nếu tôi muốn biết máy nào dừng, sau khi xây dựng trong báo cáo sự cố, tôi có thể xây dựng máy nơi chạy tất cả các máy được đưa ra trong song song, sau đó tạm dừng và đầu ra nếu trong số họ bao giờ dừng lại. sản lượng tối đa sẽ cho tôi biết con số đó dừng lại. Từ đó tôi có thể tính toán chính xác là dừng lại.)n { M i } ( i = 1 , 2 , Mạnh , n ) M i n i inn{Mi} (i=1,2,,n)Minii

Bây giờ, hãy để là số nguyên nhỏ nhất (nếu có) sao cho các giá trị sau: nn0n

Sử dụng các cuộc gọi orory, người ta có thể tính toán đầu ra tối đa của máy đã cho. (Đó là, giới hạn trên không chặt chẽ cho .)n nC(n)=max{kZ:2k<n}nn

Rõ ràng , vì . Trên thực tế, cũng vậy, vì , nhưng không thể tính được sản lượng tối đa của máy nhất định (không có lệnh gọi orory). Bây giờ hãy xem xét lớn hơn :C ( 1 ) = - 1 n 0 > 2 C ( 2 ) = 0 2 nn0>1C(1)=1n0>2C(2)=02n

Yêu cầu: Nếu là hữu hạn, thì với bất kỳ nào , người ta có thể tính toán đầu ra tối đa của máy đã cho trong các cuộc gọi tiên tri . n n C ( n 0 ) n0nnC(n0)n 0 C( n 0 )=O(1)(Lưu ý rằng nếu là hữu hạn, thì .)n0C(n0)=O(1)

Bằng chứng. . Chúng tôi chứng minh điều đó bằng cảm ứng trên . Các trường hợp cơ sở là , mà giữ theo định nghĩa của và .n n 0 n 0 Cnnn0n0C

Đặt là TM, được cung cấp cho bất kỳ máy nào , tính toán đầu ra tối đa chỉ bằng các cuộc gọi đến nhà tiên tri.n 0 C ( n 0 )Q0n0C(n0)

Khắc phục mọi . Cho bất kỳ máy , tính toán đầu ra tối đa như sau. n M 1 , Tầm , M nn>n0nM1,,Mn

Tập trung vào các máy đầu tiên . Cân nhắc chạy trên các máy này . Lưu ý rằng thực hiện các cuộc gọi đến nhà tiên tri và chỉ có có thể có các phản hồi của nhà tiên tri đối với các cuộc gọi này. Lưu ý rằng theo định nghĩa . Hãy để biểu thị phản ứng có thể thứ . Với mỗi , xây dựng một máy mô phỏng trên các máy này như sau: Q 0 n 0 Q 0 C ( n 0 ) n = 2 C ( n 0 ) n = 2 C ( n 0 ) < n 0 o i i i = 1 , gan , n M i Q 0M1,,Mn0Q0n0Q0C(n0)n=2C(n0)n=2C(n0)<n0oiii=1,,nMiQ0

TM (trên đầu vào ): εMiϵ

  1. Mô phỏng trên các máy , nhưng thay vì gọi lời sấm truyền, giả sử nhà tiên tri trả lời theo .n 0 ( M 1 , Hoài , M n 0 ) o iQ0n0(M1,,Mn0)oi
  2. Mô phỏng này có thể không dừng lại (ví dụ nếu không phải là điều mà nhà tiên tri thực sự sẽ trở lại).oi
  3. Nếu quá trình mô phỏng tạm dừng, hãy để là đầu ra tối đa mà nói sẽ được cung cấp.Q 0hiQ0
  4. Dovetail tất cả các máy . Nếu một trong số họ từng xuất , dừng và xuất . ( M 1 , ĐI , M n 0 ) h i h in0(M1,,Mn0)hihi

Bây giờ, trong chuỗi nhất định máy móc, thay thế đầu tiên máy bởi những máy . Trả về giá trị được tính bằng cách đệ quy trên chuỗi này của máy. (Lưu ý rằng nhà tiên tri không được gọi trước khi đệ quy, do đó, nhà tiên tri chỉ được gọi sau khi đạt được trường hợp cơ sở.)n 0 M 1 , Vay , M n 0 n < n 0 M 1 , Khoan , M nnn0M1,,Mn0n<n0 n-(n0-n')<nM1,,Mnn(n0n)<n

Đây là lý do tại sao tính toán này là chính xác. Đối với sao cho là phản hồi `` chính xác '' của nhà tiên tri đối với các truy vấn, sẽ tạm dừng và đưa ra đầu ra tối đa chính xác của các máy gốc . Do đó, đầu ra tối đa của các máy ít nhất là đầu ra tối đa của các máy . Mặt khác, ở bước 4, không nào có thể đưa ra một đầu ra lớn hơn đầu ra tối đa của . Như vậy, sản lượng tối đa của máyo i Q 0 M ' i n 0 n ' ( M ' 1 , ... , M ' n ' ) n 0 ( M 1 , ... , M n 0 ) M ' i ( M 1 , ... , M n 0 ) n ) N 0ioiQ0Min0n(M1,,Mn)n0(M1,,Mn0)Mi(M1,,Mn0)n(M1,,Mn) bằng với sản lượng tối đa của các máy mà chúng thay thế. QEDn0

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.