Mój student ostatnio zadał następujące pytanie:
Prawdopodobnie można to udowodnić, konstruując jeśli są konstruowalne w czasie. Ale ogólnie uważam, że powinno to być fałszem podobne do .
cc.complexity-theory
S. Pek
źródło
źródło
Odpowiedzi:
JeśliDTIME(f(n)) jest zdefiniowany jako klasa wszystkich języków rozstrzygalnych w czasie O(f(n)) przez dwie taśmy Turinga, to podejrzewam, że odpowiedź brzmi „nie”. Innymi słowy, uważam, że nie zawsze istnieje klasa złożoności czasowej ściśle pośredniej.
Uwaga: Ta odpowiedź może nie być dokładnie tym, czego szukasz, ponieważ rozważam funkcje niepoliczalne i nie uwzględniam wszystkich szczegółów argumentu. Ale czułem, że to dobry początek. Zadawaj pytania. Może w którymś momencie mogę uzupełnić te dane, a może doprowadzi to do lepszej odpowiedzi zainteresowanego czytelnika.
Rozważmy funkcje postacif:N→N . Te funkcje nazywamy funkcjami liczb naturalnych.
Konstruujemy jako wolno rosnącą, nie malejącą funkcję krokową. Pozwól nam wyliczyć wszystkie funkcje obliczalne nieograniczone { f I } I ∈ N . Chcemy skonstruować ε ( n ) w taki sposób, aby dla każdego i i dla każdego j ≤ i , m i n { kε(n) {fi}i∈N ε(n) i j≤i . Innymi słowy, czekamy na mapowanie ε ( n ) na i, dopóki pierwszefunkcje i w wyliczeniu nie zostaną mapowane na wartość większą lub równą i przynajmniej raz. Następnie ε ( n ) kontynuuje mapowanie do i, dopóki pierwszefunkcje i + 1 w wyliczeniu nie zostaną odwzorowane na wartość większą lub równą i + 1 przynajmniej raz, i w tym momencie zaczyna mapować na i + 1min{k|ε(k)≥i}≥min{k|fj(k)≥i} ε(n) i i i ε(n) i i+1 i+1 i+1 . Jeśli będziemy kontynuować ten iteracyjny proces konstruowania , to dla dowolnej nieograniczonej funkcji obliczeniowej, chociaż ε ( n ) nie zawsze może być mniejszy, będzie nieskończenie często co najmniej tak mały.ε(n) ε(n)
Uwaga: Właśnie przedstawiłem trochę intuicji za twierdzeniem 1, nie przedstawiłem szczegółowego dowodu. Dołącz do dyskusji poniżej.
Ponieważ jest tak wolno rosnącą funkcją, mamy następujące:ε(n)
2, jeśli istniała obliczalna funkcja między f ( n )h(n) if(n), tak żeH(n)≠Θ(f(n)), wówczas będzie mógł obliczyć nieograniczony naturalną funkcję numeryczny, który staje się coraz bardziej powoli a nieε(n),co nie jest możliwe . f(n)ε(n) f(n) h(n)≠Θ(f(n)) ε(n)
Pozwól mi wyjaśnić kilka istotnych szczegółów. Załóżmy ze względu na sprzeczność, że taka funkcja istniała. Następnie ⌊ f ( n )h(n) jest nieograniczone.⌊f(n)h(n)⌋
Uwaga: Funkcja poprzedzający obliczeniowy ponieważ i h ( n ), to obliczeniowy.f(n) h(n)
Ponieważ , mamy⌊f(n)h(n)=Ω(f(n)ε(n)) . Wynika z tego, że istnieje pewna stałaαtaka, że dla wszystkichnwystarczająco dużych,⌊αf(n)⌊f(n)h(n)⌋=O(ε(n)) α n . Ponieważ ta funkcja jest nieograniczona i obliczalna, możemy zastosować Zastrzeżenie 1, aby uzyskaćε(n)≤⌊αf(n)⌊αf(n)h(n)⌋<ε(n) nieskończenie często, co jest sprzeczne z poprzednim stwierdzeniem.ε(n)≤⌊αf(n)h(n)⌋
Aby to pokazać, musimy użyć silniejszego twierdzenia o hierarchii czasu i tutaj przyjmujemy założenie, że liczba taśm jest stała (powiedzieliśmy dwie taśmy powyżej). Patrz „Ścisła deterministyczna hierarchia czasu” Martina Furera.DTIME(f(n)ε(n))⊊DTIME(f(n))
Ponieważ nie ma obliczalnych funkcji liczb naturalnych międzyf(n)ε(n) and f(n) other than those that are Θ(f(n)) , we have that for every function h(n) such that f(n)ε(n)≤h(n)≤f(n) and h(n)≠Θ(f(n)) , DTIME(f(n)ε(n))=DTIME(h(n)) .
źródło
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 iff(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 letg(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)) .
źródło
I think such a behaviour is true for 1-Tape-DTMs. On the one hand, we haveDTIME1(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 separateDTIME1(O(n)) and DTIME1(O(nlogn)) by the language {x#2|x|x∣x∈{0,1}∗} using a standard crossing sequence argument.
źródło