Tách các lớp thời gian


16

Một sinh viên của tôi gần đây hỏi câu hỏi sau đây:

h ( n ) D T I M E ( f ( n ) ) D T I M E ( h ( n ) ) D T I M E ( g ( n ( n)

DTIME(f(n))DTIME(g(n)).
h(n)
DTIME(f(n))DTIME(h(n))DTIME(g(n))?

Điều này có thể được hiển thị đúng bằng cách xây dựng một nếu có thể xây dựng được theo thời gian. Nhưng nói chung, tôi cảm thấy rằng điều này nên sai tương tự như DSPACE (o (\ log (\ log (n)))) = DSPACE (1) .f , g D S P A C E ( o ( log ( log ( n ) ) ) ) = D S P A C E ( 1 )h(n)f,gDSPACE(o(log(log(n))))=DSPACE(1)


Điều này có thể phụ thuộc vào mô hình chính xác.

Định lý khoảng cách của Borodin được đề cập ở đây có thể có liên quan: cstheory.stackexchange.com/questions/8583/ mẹo
Michael Wehar

Bạn có cho phép f(n),g(n)=O(1) không? Bởi vì sau đó một số ví dụ phải tồn tại đối với một số hàm bằng 0 ở mọi nơi, ngoại trừ vị trí đầu tiên. Nhưng dù sao, câu hỏi này không có ý nghĩa gì nếu fg ở mọi nơi trừ một n ?
domotorp

2
Tôi xin lỗi tôi không hoàn toàn theo dõi vấn đề với f(n),g(n)=O(1) theo định nghĩa DTIME(f(n))=DTIME(g(n)) ?
S. Bắc Kinh

Xin lỗi về điều đó, tôi đã đọc sai câu hỏi và nhận xét trước đó của tôi không có nhiều ý nghĩa. Tôi đã gỡ bỏ nó. Cảm ơn bạn.
Michael Wehar

Câu trả lời:


8

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:NN

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:NN{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}iNε(n)ijiε ( 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))


1
Vâng, đây chính xác là những gì tôi đã nghĩ trong đầu, nhưng rồi bị lẫn lộn ở đâu đó trên đường đi. Tôi chỉ muốn lưu ý rằng không cần phải nhỏ chút nào; một đối số tương tự cho thấy hàm dưới có thể được thay thế bằng hàm luôn luôn là hoặc và hàm trên có thể được thay thế bằng một hàm luôn luôn là hoặc . ϵ(n)f(n)ϵ(n)f(n)0f(n)ϵ(n)f(n)
domotorp

1
(3) cần hạn chế các chức năng không giới hạn . f

@RickyDemer Vâng, bạn nói đúng! Cảm ơn bạn rất nhiều vì đã nắm bắt được điều đó. Tôi chỉnh sửa câu trả lời của tôi để thêm từ không giới hạn. :)
Michael Wehar

1
Tôi không hoàn toàn bị thuyết phục về Yêu cầu 1. Hãy xem xét nếu n i , n - i khác. Xét phép liệt kê này, là ϵ ( n ) = Θ ( 1 ) ? fi(n)=1niniϵ(n)=Θ(1)
S. Bắc Kinh

2
Tôi có thêm hai mối quan tâm của bằng chứng này: 1) Trong tuyên bố 2 chị tuyên bố rằng mâu thuẫn nảy sinh từ thực tế là có không thể tồn tại một tính toán vì nó tương đương | h ( n ) - f ( n ) | . Tôi tin rằng đây là một lỗi đánh máy, vì nó nên nói có tồn tại một k ' như vậy mà ε ( n ) = | h ( n ) - k f ( n ) | . Nhưng lưu ý rằng k 'ϵ(n)|h(n)f(n)|kϵ(n)=|h(n)kf(n)|kkhông cần phải tính toán, vì vậy đối số không cần phải giữ. 2) Bạn đã sử dụng kết quả của Furer trong Yêu cầu 3. Tuy nhiên, kết quả chỉ giữ cho các hàm có thể xây dựng theo thời gian, nhưng cần không có thời gian constructable. f(n)ϵ(n)
S. Bắc Kinh ngày

4

Nếu kết quả này là đúng, nó sẽ củng cố định lý phân cấp thời gian xác định nổi tiếng nhất. [Đây là một nhận xét nhiều hơn là một câu trả lời, nhưng quá dài cho một nhận xét. Nó lá mở xây dựng trực tiếp của một phản ví dụ.] Nhớ lại rằng tốt nhất xác định Thời gian Hierarchy lý chúng tôi hiện có là nếu là thời gian constructible, và g ( n ) o ( f ( n ) / log f ( n ) ) , sau đó D T I M E (f(n),g(n)g(n)o(f(n)/logf(n)) .DTIME(g(n))DTIME(f(n))

Bây giờ giả sử kết quả mong muốn của bạn là đúng và đặt là một hàm có thể xây dựng theo thời gian gần với, nhưng vẫn còn rất ít, f ( n ) / log ( f ( n ) ) , giả sử, g ( n) ) = f ( n ) / ( log f ( n ) ) 3 / 2 . ( G này có thể không có khả năng xây dựng thời gian cho f có thể xây dựng theo thời gian tùy ý , nhưng chắc chắn trong nhiều thời gian có thể xây dựng đượcg(n)f(n)/log(f(n))g(n)=f(n)/(logf(n))3/2gf này g cũng là thời gian constructible.) Bây giờ, kết quả mong muốn của bạn tạo ra một h D T I M E ( g ( n ) ) D T I M E ( h ( n ) ) D T I M E ( f ( n ) ) . Để tránh cải thiện định lý phân cấp thời gian tốt nhất hiện tại, chúng ta sẽ cần cả g ( n ) = o (fghDTIME(g(n))DTIME(h(n))DTIME(f(n)) h ( n ) = o ( f ( n ) / log ( f ( n ) ) . Hai cùng ngụ ý rằng g ( n ) o ( f ( n ) / ( log ( f ( n ) ) log ( h (g(n)=o(h(n)/log(h(n)))h(n)=o(f(n)/log(f(n)) . Kể từ h ( n ) g ( n ) , chúng ta có g ( n ) o ( f ( n )g(n)o(f(n)/(log(f(n))log(h(n)))h(n)g(n), hoặc tương đươngg(n)logg(n)o(f(n)/log(f(n))). Nhưngg(n)log(g(n))=f(n)/g(n)o(f(n)log(f(n))log(g(n)))g(n)logg(n)o(f(n)/log(f(n))) , không phải lào(f(n)/log(f(n)).g(n)log(g(n))=f(n)/(log(f(n))3/2[log(f(n))(3/2)loglog(f(n)]f(n)/log(f(n))o(f(n)/log(f(n))


1
Mát mẻ! Ngoài ra, lưu ý rằng có một định lý phân cấp thời gian tốt hơn nếu số lượng băng được cố định. Xem "Phân cấp thời gian xác định chặt chẽ" của Martin Furer.
Michael Wehar

1
@MichaelWehar: Cảm ơn con trỏ! Thật vậy, khi một người trở nên chặt chẽ đến mức chỉ yêu cầu , như Furer hiển thị khi số lượng băng được cố định, thì lập luận của tôi biến mất. (Và về cơ bản là cùng một lý do, lập luận của tôi biến mất nếu câu hỏi này là về phân cấp không gian thay vì thời gian: đối với không gian, chúng ta có một định lý phân cấp hoàn toàn chặt chẽ ngay cả khi # băng không cố định.)g(n)=o(f(n))
Joshua Grochow

2

Tôi nghĩ hành vi như vậy là đúng đối với 1-Băng-DTM. Một mặt, chúng ta có . Thật không may, tài liệu tham khảo duy nhất tôi biết là bằng tiếng Đức: R. Reischuk, Einführung in die Komplexitätstheorie, Teubner, 1990, Định lý 3.1.8.DTIME1(O(n))=DTIME1(o(nlogn))

Mặt khác, có thể tách D T I M E 1 ( O ( n log n ) ) bằng ngôn ngữ { x # 2 | x | x x { 0 , 1 } } bằng cách sử dụng đối số chuỗi chéo chuẩn.DTIME1(O(n))DTIME1(O(nlogn)){x#2|x|xx{0,1}}

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.