Nếu được định nghĩa là lớp của tất cả các ngôn ngữ có thể quyết định theo thời gian bằng máy Turing hai băng, thì tôi nghi ngờ rằng câu trả lời là không. Nói cách khác, tôi nghĩ rằng không phải lúc nào cũng tồn tại một lớp phức tạp thời gian trung gian nghiêm ngặt.O ( f ( n ) )DTIME(f(n))O(f(n))
Lưu ý: Câu trả lời này có thể không chính xác như những gì bạn đang tìm kiếm vì tôi đang xem xét các hàm không tính toán được và tôi không bao gồm mọi chi tiết của đối số. Nhưng, tôi cảm thấy rằng đó là một khởi đầu tốt. Xin vui lòng để yêu cầu bất kỳ câu hỏi. Có lẽ tôi có thể điền vào các chi tiết này hơn nữa tại một số điểm hoặc có thể điều này sẽ dẫn đến một câu trả lời tốt hơn từ một người đọc quan tâm.
Hãy xem xét các hàm có dạng . Chúng tôi gọi các chức năng này là chức năng số tự nhiên.f:N→N
Yêu cầu 1: Tôi khẳng định rằng chúng ta có thể xây dựng hàm số tự nhiên không giảm (tăng không tính toán) rất chậm
sao cho:ε(n)
(1) không giảmε(n)
(2)ε(n)=ω(1)
(3) Đối với tất cả các tính toán không giới hạn , tập hợp
là vô hạn. { nf:N→N{n|ε(n)≤f(n)}
Chúng tôi xây dựng là một hàm bước không giảm phát triển chậm. Chúng ta hãy liệt kê tất cả các hàm tính toán không giới hạn . Chúng tôi muốn xây dựng theo cách mà với mọi và mọi , . Nói cách khác, chúng tôi chờ ánh xạ đến cho đến khi các hàm đầu tiên trong bảng liệt kê đã ánh xạ tới một giá trị lớn hơn hoặc bằng ít nhất một lần. Sau đó, tiếp tục ánh xạ tới{ f i } i ∈ N ε ( n ) i j ≤ i m i n { kε(n){fi}i∈Nε(n)ij≤iε ( n ) i i i ε ( n ) imin{k|ε(k)≥i}≥min{k|fj(k)≥i}ε(n)iiiε(n)icho đến khi các hàm đầu tiên trong bảng liệt kê đã ánh xạ tới một giá trị lớn hơn hoặc bằng ít nhất một lần và tại thời điểm này, nó bắt đầu ánh xạ tới . Nếu chúng ta tiếp tục quá trình lặp này để xây dựng , thì đối với bất kỳ hàm tính toán không giới hạn nào, mặc dù có thể không phải lúc nào cũng nhỏ hơn, nó thường sẽ ít nhất là nhỏ.i + 1 i + 1 ε ( n ) ε ( n )i+1i+1i+1ε(n)ε(n)
Lưu ý: Tôi chỉ cung cấp một số trực giác đằng sau yêu cầu 1, tôi không cung cấp bằng chứng chi tiết. Xin vui lòng tham gia vào cuộc thảo luận dưới đây.
Vì là một hàm tăng trưởng chậm như vậy, nên chúng tôi có các mục sau:ε(n)
Yêu cầu 2: Đối với tất cả các hàm số tự nhiên có thể tính toán và , nếu và , sau đó .h ( n ) h ( n ) = Ω ( f ( n )f(n)h(n)h(n)=O(f(n))h(n)=Θ(f(n))h(n)=Ω(f(n)ε(n))h(n)=O(f(n))h(n)=Θ(f(n))
Đối với yêu cầu 2, nếu tồn tại hàm tính toán giữa và sao cho , sau đó chúng ta sẽ có thể tính toán một hàm số tự nhiên không giới hạn, phát triển chậm hơn không thể thực hiện được. f ( n )h(n) f(n)h(n)≠Θ(f(n))ε(n)f(n)ε(n)f(n)h(n)≠Θ(f(n))ε(n)
Hãy để tôi giải thích một số chi tiết có liên quan. Giả sử vì mâu thuẫn rằng một hàm đã tồn tại. Sau đó, không bị ràng buộc.⌊ f ( n )h(n)⌊f(n)h(n)⌋
Lưu ý: Hàm trước có thể tính toán được vì và có thể tính toán được.h ( n )f(n)h(n)
Vì , chúng tôi có . Theo sau có một hằng số sao cho tất cả đủ lớn, . Vì chức năng này không bị ràng buộc và có thể tính toán được, chúng tôi có thể áp dụng Yêu cầu 1 để nhận được thường xuyên mâu thuẫn với tuyên bố trước đó.h(n)=Ω(f(n)ε(n))⌊f(n)h(n)⌋=O(ε(n))αn⌊αf(n)h(n)⌋<ε(n)ε(n)≤⌊αf(n)h(n)⌋
Yêu cầu 3: Đối với hàm xây dựng thời gian , chúng ta có , nhưng không tồn tại sao cho và .f(n)DTIME(f(n)ε(n))⊊DTIME(f(n))h(n)f(n)ε(n)≤h(n)≤f(n)DTIME(f(n)ε(n))⊊DTIME(h(n))⊊DTIME(f(n))
Để chỉ ra rằng, chúng ta cần sử dụng định lý phân cấp thời gian mạnh hơn và đây là nơi chúng ta sử dụng giả định rằng số lượng băng được cố định (chúng tôi đã nói hai băng ở trên). Xem "Phân cấp thời gian xác định chặt chẽ" của Martin Furer.DTIME(f(n)ε(n))⊊DTIME(f(n))
Vì không có các hàm số tự nhiên có thể tính toán giữa và ngoài các hàm đó là , nên chúng tôi có hàm đó cho mọi hàm sao cho và , .f(n)ε(n)f(n)Θ(f(n))h(n)f(n)ε(n)≤h(n)≤f(n)h(n)≠Θ(f(n))DTIME(f(n)ε(n))=DTIME(h(n))