Нещодавно мій студент задає таке питання:
DTIME(f(n))⊊DTIME(g(n)).
Це, ймовірно, може бути показано істинним, побудувавши якщо є конструктивними за часом. Але в цілому я вважаю, що це повинно бути помилковим подібне до .h(n)
Нещодавно мій студент задає таке питання:
DTIME(f(n))⊊DTIME(g(n)).
Це, ймовірно, може бути показано істинним, побудувавши якщо є конструктивними за часом. Але в цілому я вважаю, що це повинно бути помилковим подібне до .h(n)
Відповіді:
Якщо D T I M E ( f ( n ) ) визначений як клас усіх мов, які можна визначити за час O ( f ( n ) ) двома стрічковими машинами Тюрінга, то я підозрюю, що відповідь - ні. Іншими словами, я думаю, що не завжди існує строго проміжний клас часової складності.
Примітка. Ця відповідь може бути не точно тим, що ви шукаєте, тому що я розглядаю не обчислювані функції, і я не включаю кожну деталь аргументу. Але я відчув, що це гарний початок. Будь ласка, не соромтесь задавати будь-які питання. Можливо, я можу в якийсь момент додатково заповнити ці деталі або, можливо, це призведе до кращої відповіді зацікавленого читача.
Розглянемо функції виду F : N → N . Ми називаємо ці функції природними числами.
Позиція 1: Я стверджую, що ми можемо побудувати дуже повільно зростаюче натуральне число (не обчислюється) функцію ε ( n ) таким, що:
ε(n) (1) ε ( n ) не зменшується
ε(n) (2) ε ( n ) = ω ( 1 )
ε(n)=ω(1) (3) Для всіх необмежених обчислювальних f : N → N , множина { n
f:N→N |ε ( n ) ≤ f ( n ) } нескінченно.{n|ε(n)≤f(n)}
Побудуємо ε ( n ) як повільно зростаючу ступінь, що не спадає. Перерахуємо всі необмежені обчислюваних функцій { F I } I ∈ N . Ми хочемо побудувати ε ( п ) таким чином , що для кожного I і будь-якого J ≤ я , м I п { до
Примітка. Я просто представив деяку інтуїцію за п. 1, я не представив детального підтвердження. Будь ласка, приєднуйтесь до обговорення нижче.
Оскільки ε ( n ) є такою повільно зростаючою функцією, ми маємо наступне:
Спосіб 2: Для всіх обчислюваних натуральних чисельних функцій f ( n ) і h ( n ) , якщо h ( n ) = Ω ( f ( n )
f(n) h(n) ε ( n ) )іh(n)=O(f(n)), тодіh(n)=Θ(f(n)).h(n)=Ω(f(n)ε(n)) h(n)=O(f(n)) h(n)=Θ(f(n))
За п. 2, якщо існувала обчислювальна функція h ( n ) між f ( n )
Дозвольте пояснити деякі відповідні подробиці. Припустимо, для суперечності існувала така функція h ( n ) . Тоді ⌊ f ( n )
Примітка: Попередня функція обчислюється, оскільки f ( n ) і h ( n ) обчислюються.
Оскільки h ( n ) = Ω ( f ( n )ε ( n ) ), маємо⌊f(n)
Позиція 3: Для функції, сконструйованої за часом f ( n ) , ми маємо, що D T I M E ( f ( n )
f(n) ε ( n ) )⊊DTIME(f(n)), аленеіснуєh(n)такого, щобf(n)DTIME(f(n)ε(n))⊊DTIME(f(n)) h(n) ε ( n ) ≤h(n)≤f(n)іDTIME(f(n)f(n)ε(n)≤h(n)≤f(n) ε ( n ) )⊊DTIME(h(n))⊊DTIME(f(n)).DTIME(f(n)ε(n))⊊DTIME(h(n))⊊DTIME(f(n))
Щоб просто показати це, D T I M E ( f ( n )ε ( n ) )⊊DTIME(f(n))нам потрібно використовувати сильнішу теорему ієрархії часу, і тут ми використовуємо припущення, що кількість стрічок є фіксованим (ми сказали дві стрічки вище). Див. "Жорстка детермінована ієрархія часу" Мартіна Фурера.
Оскільки між f ( n ) немає функцій обчислюваного натурального числаε ( п ) іе(п), крім тихякі єΘ(F(п)), отримуємо, що для будь-якої функціїч(п)такащоF(п)
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)
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)).
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|x∣x∈{0,1}∗} using a standard crossing sequence argument.