การแยกเวลาเรียน


16

นักเรียนของฉันเพิ่งถามคำถามต่อไปนี้:

D T ฉันM E ( F ( n ) ) D T ฉันM E ( กรัม( n ) )

DTIME(f(n))DTIME(g(n)).
h ( n ) h(n)D T I M E ( f ( n ) ) D T I M E ( h ( n ) ) D T I M E ( g ( n)) ) ?
DTIME(f(n))DTIME(h(n))DTIME(g(n))?

นี่อาจเป็นจริงได้โดยการสร้างถ้าf, gสามารถสร้างเวลาได้ แต่โดยทั่วไปแล้วผมรู้สึกว่านี้ควรจะเป็นเท็จคล้ายกับDSpace (o (\ ล็อก (\ ล็อก (n)))) = DSpace (1)h(n)h(n)f,gf,gDSPACE(o(log(log(n))))=DSPACE(1)DSPACE(o(log(log(n))))=DSPACE(1)


สิ่งนี้อาจขึ้นอยู่กับรุ่นที่แม่นยำ

ทฤษฎีช่องว่างของ Borodin ที่กล่าวถึงในที่นี้อาจมีความเกี่ยวข้อง: cstheory.stackexchange.com/questions/8583/ …
Michael Wehar

คุณอนุญาตให้หรือไม่ เพราะตัวอย่างบางส่วนจะต้องมีอยู่สำหรับบางฟังก์ชั่นที่เป็นศูนย์ทุกแห่งยกเว้นที่แรก คำถามนี้ไม่สมเหตุสมผลถ้าทุกที่ยกเว้นหนึ่ง ? f(n),g(n)=O(1)f(n),g(n)=O(1)fgfgnn
domotorp

2
ฉันขอโทษฉันไม่ได้ติดตามปัญหาด้วยf ( n ) , g ( n ) = O ( 1 )f(n),g(n)=O(1)ตามคำนิยามD T I M E ( f ( n ) ) = D T ฉันM E ( g ( n ) )DTIME(f(n))=DTIME(g(n)) ?
S. Pek

ขออภัยที่ฉันอ่านคำถามผิดและความคิดเห็นก่อนหน้านี้ไม่ค่อยสมเหตุสมผลนัก ฉันลบมัน ขอขอบคุณ.
Michael Wehar

คำตอบ:


8

ถ้าD T I M E ( f ( n ) )DTIME(f(n))ถูกกำหนดให้เป็นคลาสของทุกภาษาที่ decidable ในเวลาO ( f ( n ) )O(f(n))โดยสองเครื่องทัวริงเทปฉันก็สงสัยว่าคำตอบคือไม่ ในคำอื่น ๆ ฉันคิดว่าไม่เคยมีระดับความซับซ้อนเวลากลางที่เข้มงวดเสมอไป

หมายเหตุ:คำตอบนี้อาจไม่ตรงกับสิ่งที่คุณกำลังมองหาเพราะฉันกำลังพิจารณาฟังก์ชั่นที่ไม่สามารถคำนวณได้และฉันไม่ได้รวมรายละเอียดทั้งหมดของการโต้แย้ง แต่ฉันรู้สึกว่ามันเป็นการเริ่มต้นที่ดี โปรดถามคำถามใด ๆ บางทีฉันสามารถกรอกรายละเอียดเหล่านี้เพิ่มเติมในบางจุดหรืออาจนำไปสู่คำตอบที่ดีขึ้นจากผู้อ่านที่สนใจ

พิจารณาการทำงานของรูปแบบF : Nf:NN N เราอ้างถึงฟังก์ชั่นเหล่านี้เป็นฟังก์ชั่นจำนวนธรรมชาติ

การอ้างสิทธิ์ 1:ฉันอ้างว่าเราสามารถสร้างฟังก์ชั่นจำนวนที่ลดลงโดยธรรมชาติ (ไม่คำนวณ) ที่เติบโตช้ามาก ε ( n )ε(n)เช่น:

(1) ε ( n )ε(n)ไม่ลดลง

(2) ε ( n ) = ω ( 1 )ε(n)=ω(1)

(3) สำหรับการคำนวณที่ไม่มีขอบเขตทั้งหมดf : NNf:NNชุด { n|ε ( n ) f ( n ) }{n|ε(n)f(n)}ไม่มีที่สิ้นสุด

เราสร้างε ( n )เป็นฟังก์ชั่นขั้นตอนที่ไม่ลดการเติบโตช้า ขอให้เราระบุฟังก์ชันคำนวณทั้งหมดมากมาย{ ฉัน} ฉัน N เราต้องการสร้างε ( n )ในลักษณะที่สำหรับฉันทุกคนและทุก ๆj ฉัน , m ฉันn { kε(n){fi}iNε(n)iji|ε ( k ) i } m i n { k|J ( k ) ฉัน } กล่าวอีกนัยหนึ่งเรารอแผนที่ ε ( n )ถึง iจนกระทั่งฟังก์ชัน iแรกในการแจงนับมีการแมปกับค่าที่มากกว่าหรือเท่ากับ iอย่างน้อยหนึ่งครั้ง จากนั้น ε ( n )ยังคงจับคู่กับ iจนกระทั่งฟังก์ชัน i + 1แรกในการแจงนับมีการจับคู่กับค่าที่มากกว่าหรือเท่ากับ i + 1อย่างน้อยหนึ่งครั้งและ ณ จุดนี้มันเริ่มแมปกับ i + 1min{k|ε(k)i}min{k|fj(k)i}ε(n)iiiε(n)ii+1i+1i+1. ถ้าเราทำกระบวนการวนซ้ำนี้ต่อไปสำหรับการสร้างε ( n )จากนั้นสำหรับฟังก์ชันการคำนวณที่ไม่มีขอบเขตใด ๆ ที่ได้รับแม้ว่าε ( n )อาจไม่เล็กลงเสมอไป แต่อย่างน้อยมันก็เล็กมากε(n)ε(n)

หมายเหตุ:ฉันเพิ่งให้สัญชาตญาณบางอย่างที่อยู่เบื้องหลังการอ้างสิทธิ์ 1 ฉันไม่ได้แสดงหลักฐานโดยละเอียด โปรดเข้าร่วมในการสนทนาด้านล่าง

เนื่องจากε ( n )เป็นฟังก์ชันที่เติบโตช้าเราจึงมีดังต่อไปนี้:ε(n)

Claim 2: For all computable natural number functions f(n)f(n) and h(n)h(n), if h(n)=Ω(f(n)ε(n))h(n)=Ω(f(n)ε(n)) and h(n)=O(f(n))h(n)=O(f(n)), then h(n)=Θ(f(n))h(n)=Θ(f(n)).

For claim 2, if there existed a computable function h(n)h(n) between f(n)ε(n)f(n)ε(n) and f(n)f(n) such that h(n)Θ(f(n))h(n)Θ(f(n)), then we would be able to compute an unbounded natural number function that grows more slowely than ε(n)ε(n) which isn't possible.

Let me explain some relevant details. Suppose for sake of contradiction that such a function h(n)h(n) existed. Then, f(n)h(n)f(n)h(n) is unbounded.

Note: The preceding function is computable because f(n)f(n) and h(n)h(n) are computable.

Since h(n)=Ω(f(n)ε(n))h(n)=Ω(f(n)ε(n)), we have f(n)h(n)=O(ε(n))f(n)h(n)=O(ε(n)). It follows that there is some constant αα such that for all nn sufficiently large, αf(n)h(n)<ε(n)αf(n)h(n)<ε(n). Since this function is unbounded and computable we may apply Claim 1 to get that ε(n)αf(n)h(n)ε(n)αf(n)h(n) infinitely often which contradicts the previous statement.

Claim 3: For a time constructible function f(n)f(n), we have that DTIME(f(n)ε(n))DTIME(f(n))DTIME(f(n)ε(n))DTIME(f(n)), yet there does not exist h(n)h(n) such that f(n)ε(n)h(n)f(n)f(n)ε(n)h(n)f(n) and DTIME(f(n)ε(n))DTIME(h(n))DTIME(f(n))DTIME(f(n)ε(n))DTIME(h(n))DTIME(f(n)).

In order to just show that, DTIME(f(n)ε(n))DTIME(f(n))DTIME(f(n)ε(n))DTIME(f(n)) we need to use a stronger time hierarchy theorem and this is where we use the assumption that the number of tapes is fixed (we said two tapes above). See "The tight deterministic time hierarchy" by Martin Furer.

Since there are no computable natural number functions between f(n)ε(n)f(n)ε(n) and f(n)f(n) other than those that are Θ(f(n))Θ(f(n)), we have that for every function h(n)h(n) such that f(n)ε(n)h(n)f(n)f(n)ε(n)h(n)f(n) and h(n)Θ(f(n))h(n)Θ(f(n)), DTIME(f(n)ε(n))=DTIME(h(n))DTIME(f(n)ε(n))=DTIME(h(n)).


1
Yes, this is exactly what I had in mind too, but then got confused somewhere along the way. I just want to note, that ϵ(n)ϵ(n) needn't be small at all; a similar argument shows that the lower function f(n)ϵ(n)f(n)ϵ(n) can be replaced with a function that is always either f(n) or 0, and the upper function f(n)ϵ(n) can be replaced with a function that is always either f(n) or .
domotorp

1
(3) needs to restrict to unbounded functions f. ​ ​

@RickyDemer Yes, you are right! Thank you very much for catching that. I edited my answer to add the word unbounded. :)
Michael Wehar

1
Im not entirely convinced about Claim 1. Consider fi(n)=1 if ni, ni otherwise. Considering this enumeration, is ϵ(n)=Θ(1)?
S. Pek

2
I have two more concerns of this proof: 1) In claim 2 you said that the contradiction arises from the fact that there cannot exist a computable ϵ(n) as it equals |h(n)f(n)|. I believe this to be a typographical error, as it should say there exist a k such that ϵ(n)=|h(n)kf(n)|. But note that k need not be computable, so the argument need not hold. 2) You used the result by Furer in Claim 3. However, the result only holds for time-constructable functions, but f(n)ϵ(n) need not be time-constructable.
S. Pek

4

If this result is true, it would strengthen the best-known deterministic time hierarchy theorem. [This is more of a comment than an answer, but too long for a comment. It leaves open the direct construction of a counterexample.] Recall that the best Deterministic Time Hierarchy Theorem we currently have is that if f(n),g(n) are time-constructible, and g(n)o(f(n)/logf(n)), then DTIME(g(n))DTIME(f(n)).

Now suppose your desired result is true, and let g(n) be a time-constructible function that is close to, but still little-oh of, f(n)/log(f(n)), say, g(n)=f(n)/(logf(n))3/2. (This g may not be time-constructible for arbitrary time-constructible f, but surely for many time-constructible f this g is also time-constructible.) Now, your desired result produces an h such that DTIME(g(n))DTIME(h(n))DTIME(f(n)). In order to avoid improving the current-best time hierarchy theorem, we would need both g(n)=o(h(n)/log(h(n))) and h(n)=o(f(n)/log(f(n)). These two together imply that g(n)o(f(n)/(log(f(n))log(h(n))). Since h(n)g(n), we have g(n)o(f(n)log(f(n))log(g(n))), or equivalently g(n)logg(n)o(f(n)/log(f(n))). But 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)), which is not o(f(n)/log(f(n)).


1
Cool! Also, note that there is a better time hierarchy theorem if the number of tapes is fixed. See "The tight deterministic time hierarchy" by Martin Furer.
Michael Wehar

1
@MichaelWehar: Thanks for the pointer! Indeed, when one gets so tight as to only require g(n)=o(f(n)), as Furer shows when the number of tapes is fixed, then my argument goes away. (And for basically the same reason, my argument goes away if this question were about space hierarchy instead of time: for space we have a perfectly tight hierarchy theorem even if # tapes isn't fixed.)
Joshua Grochow

2

I think such a behaviour is true for 1-Tape-DTMs. On the one hand, we have DTIME1(O(n))=DTIME1(o(nlogn)). Unfortunately, the only reference I know is in German: R. Reischuk, Einführung in die Komplexitätstheorie, Teubner, 1990, Theorem 3.1.8.

On the other hand, it should be possible to separate DTIME1(O(n)) and DTIME1(O(nlogn)) by the language {x#2|x|xx{0,1}} using a standard crossing sequence argument.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.