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 )đăng nhập2nn nÔ ( 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.)Ô ( 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, Lọ , 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{ M'Tôi} ( i = 1 , 2 , Hoài , n )M'TôinTôiTôi
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 { k ∈ Z : 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 Cnn≤n0n0C
Đặ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, Lọ , 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, Lọ , Mn0Q0n0Q0C( n0)n'= 2C( n0)n'= 2C( n0)< n0oTôiTôii = 1 , góc , n'M'TôiQ0
TM (trên đầu vào ): εM'Tôiε
- 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
- 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
- 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
- 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')<nM′1,…,M′n′n−(n0−n′)<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 0ioiQ0M′in0n′(M′1,…,M′n′)n0(M1,…,Mn0)M′i(M1,…,Mn0)n′(M′1,…,M′n′)
bằng với sản lượng tối đa của các máy mà chúng thay thế. QEDn0