Memisahkan kelas waktu

16

Seorang murid saya baru-baru ini mengajukan pertanyaan berikut:

AsumsikanHaruskah ada sedemikian rupa sehinggaD T I M E ( f ( n ) ) D T I M E ( g ( 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))?

Ini mungkin dapat ditunjukkan benar dengan membangun jika adalah konstruktif waktu. Tetapi secara umum, saya merasa bahwa ini harus salah mirip dengan .h ( n ) 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)

S. Pek
sumber
Ini mungkin tergantung pada model yang tepat.
Teorema kesenjangan Borodin yang disebutkan di sini mungkin relevan: cstheory.stackexchange.com/questions/8583/…
Michael Wehar
Apakah Anda mengizinkan ? Karena dengan demikian beberapa contoh harus ada untuk beberapa fungsi yang nol di mana-mana, kecuali tempat pertama. Bagaimanapun, bukankah pertanyaan ini masuk akal jika mana-mana kecuali satu ? f ( n ) , g ( n ) = O ( 1 ) f g nf(n),g(n)=O(1)fgn
domotorp
2
Maaf saya tidak cukup mengikuti masalah dengan seperti definisi ? f ( n ) , g ( n ) = O ( 1 ) D T I M E ( f ( n ) ) = D T I M E ( g ( n ) )f(n),g(n)=O(1)DTIME(f(n))=DTIME(g(n))
S. Pek
Maaf tentang itu, saya salah membaca pertanyaan dan komentar saya sebelumnya tidak masuk akal. Saya menghapusnya. Terima kasih.
Michael Wehar

Jawaban:

8

Jika D T I M E ( f ( n ) )DTIME(f(n)) didefinisikan sebagai kelas semua bahasa yang dapat dipilih dalam waktu O ( f ( n ) )O(f(n)) oleh mesin Turing dua pita, maka saya curiga bahwa jawabannya adalah tidak. Dengan kata lain, saya pikir tidak selalu ada kelas kompleksitas waktu menengah yang ketat.

Catatan: Jawaban ini mungkin tidak persis seperti yang Anda cari karena saya mempertimbangkan fungsi yang tidak dapat dihitung dan saya tidak menyertakan setiap detail argumen. Tapi, saya merasa itu adalah awal yang baik. Silahkan mengajukan pertanyaan. Mungkin saya dapat mengisi rincian ini lebih lanjut di beberapa titik atau mungkin ini akan menghasilkan jawaban yang lebih baik dari pembaca yang tertarik.

Pertimbangkan fungsi dari bentuk f : NNf:NN . Kami menyebut fungsi-fungsi ini sebagai fungsi bilangan alami.

Klaim 1: Saya mengklaim bahwa kita dapat membangun fungsi bilangan alami (tidak dapat dikomputasi) yang sangat lambat tumbuh ε ( n )ε(n) sedemikian rupa sehingga:

(1) ε ( n )ε(n) tidak menurun

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

(3) Untuk semua komputer yang tidak terbatas, f : NNf:NN , himpunan { n|ε ( n ) f ( n ) }{n|ε(n)f(n)} tidak terbatas.

Kami membangun ε ( n ) sebagai fungsi langkah non-menurun yang tumbuh lambat. Mari kita menghitung semua fungsi komputasi terbatas { f i } i N . Kami ingin membangun ε ( n ) sedemikian rupa sehingga untuk setiap i dan setiap j i , m i n { kε(n){fi}iNε(n)iji|ε ( k ) i } m i n { k|f j ( k ) i } . Dengan kata lain, kita menunggu untuk memetakan ε ( n ) ke i sampaifungsi i pertamadalam penghitungan telah dipetakan ke nilai yang lebih besar dari atau sama dengan i setidaknya sekali. Kemudian, ε ( n ) terus memetakan ke i hingga fungsi i + 1 pertamadalam penghitungan telah dipetakan ke nilai yang lebih besar dari atau sama dengan i + 1 setidaknya sekali dan pada titik ini mulai memetakan ke i + 1min{k|ε(k)i}min{k|fj(k)i}ε(n)iiiε(n)ii+1i+1i+1. Jika kita melanjutkan proses berulang ini untuk membangun ε ( n ) , maka untuk setiap fungsi komputabel yang diberikan tidak terikat, meskipun ε ( n ) mungkin tidak selalu lebih kecil, itu akan sering kali paling tidak setidaknya sama kecil.ε(n)ε(n)

Catatan: Saya baru saja memberikan intuisi di balik klaim 1, saya tidak memberikan bukti terperinci. Silakan bergabung dalam diskusi di bawah ini.

Karena ε ( n ) adalah fungsi yang tumbuh sangat lambat, kami memiliki yang berikut:ε(n)

Klaim 2: Untuk semua fungsi bilangan asli yang dapat dihitung f ( n ) dan h ( n ) , jika h ( n ) = Ω ( f ( n )f(n)h(n)ε ( n ) )danh(n)=O(f(n)), laluh(n)=Θ(f(n)).h(n)=Ω(f(n)ε(n))h(n)=O(f(n))h(n)=Θ(f(n))

Untuk klaim 2, jika ada fungsi yang dapat dihitung h ( n ) antara f ( n )h(n)ε ( n ) danf(n)sedemikian rupa sehinggah(n)Θ(f(n)), maka kita akan dapat menghitung fungsi bilangan alami tak terbatas yang tumbuh lebih lambat dariε(n)yang tidak mungkin . f(n)ε(n)f(n)h(n)Θ(f(n))ε(n)

Biarkan saya menjelaskan beberapa detail yang relevan. Misalkan demi kontradiksi bahwa fungsi seperti h ( n ) ada. Lalu, f ( n )h(n)h ( n )tidak terbatas.f(n)h(n)

Catatan: Fungsi sebelumnya dapat dihitung karena f ( n ) dan h ( n ) dapat dihitung.f(n)h(n)

Karena h ( n ) = Ω ( f ( n )ε ( n ) ), kita memilikif(n)h(n)=Ω(f(n)ε(n))h ( n )=O(ε(n)). Karena itu ada beberapa konstantaαsehingga untuk semuancukup besar,αf(n)f(n)h(n)=O(ε(n))αnh ( n )<ε(n). Karena fungsi ini tidak terbatas dan dapat dihitung, kami dapat menerapkan Klaim 1 untuk mendapatkan bahwaε(n)αf(n)αf(n)h(n)<ε(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)).

Michael Wehar
sumber
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)f(n) or 00, and the upper function f(n)ϵ(n)f(n)ϵ(n) can be replaced with a function that is always either f(n)f(n) or .
domotorp
1
(3) needs to restrict to unbounded functions ff. ​ ​
@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)=1fi(n)=1 if nini, nini otherwise. Considering this enumeration, is ϵ(n)=Θ(1)ϵ(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)ϵ(n) as it equals |h(n)f(n)||h(n)f(n)|. I believe this to be a typographical error, as it should say there exist a kk such that ϵ(n)=|h(n)kf(n)|ϵ(n)=|h(n)kf(n)|. But note that kk 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)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)f(n),g(n) are time-constructible, and g(n)o(f(n)/logf(n))g(n)o(f(n)/logf(n)), then DTIME(g(n))DTIME(f(n))DTIME(g(n))DTIME(f(n)).

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

Joshua Grochow
sumber
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))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))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))DTIME1(O(n)) and DTIME1(O(nlogn))DTIME1(O(nlogn)) by the language {x#2|x|xx{0,1}} using a standard crossing sequence argument.

Markus Bläser
sumber