Является ли DSPACE (n) = DSPACE (1,5n)?

11

Из теоремы о пространственной иерархии известно, что если конструируемо в пространстве, то DSPACE ( ) не равно DSPACE ( .f2 f ( n ) f ( n ) )2f(n)f(n))

Здесь под DSPACE ( я подразумеваю класс всех задач, которые могут быть решены в пространстве машиной Тьюринга с некоторым фиксированным алфавитом. Это позволяет с такой точностью рассматривать теорему о пространственной иерархии.f(n))f(n)

Стандартный аргумент дает мультипликативную константу : нам нужно пространство для построения вычисления некоторой машины Тьюринга с помощью универсальной. Также нам нужно чтобы решить проблему с остановкой.2f(n)f(n)

Вопрос: Является ли DSPACE ( ) , равная DSPACE ( )? f(n)332f(n)

Алексей Милованов
источник
2
Любая причина, вы заинтересованы в ? Будет ли одинаково интересным? 1+Ω(1)321+Ω(1)
Томас
1
Почему вы думаете, что теорема о пространственной иерархии дает ? Я предполагаю, что вы утверждаете, что нам нужно пространство для симуляции и пространство для подсчета количества шагов, чтобы избежать бесконечных циклов. Но в обоих случаях нам нужно сначала отметить -ое местоположение на ленте (это можно сделать, так как конструируемо в пространстве), и как бы вы сделали маркировку? Ваш аргумент в порядке, если вы предполагаете, что машинам не разрешено писать *, но в противном случае потребуются некоторые дополнительные сложности. f ( n ) log | Σ | | Σ | f ( n ) f ( n ) f2f(n)f(n)log|Σ||Σ|f(n)f(n)f
Domotorp
@Tommas На самом деле я хочу1+o(1)
Алексей Милованов

Ответы:

9

Можно доказать, что DSPACE (f(32n)) DSPACE(f(n))еслиfрастет хотя бы линейно, используя простой вариант стандартного аргумента заполнения. Для языкаLпустьL={x0|x|/2xL}.

Запрос. L DSPACE (f(n)) тогда и только тогда, когда L DSPACE (f(23n))еслиf(n)32n.

(Мой первый ответ содержал несколько неправильных утверждений, спасибо Эмилю за то, что он это заметил.)

Сначала я покажу, как использовать утверждение, чтобы доказать иерархию. Поскольку f растет хотя бы линейно, имеем DSPACE (2f(n)) DSPACE (f(2n)) . Возьмем язык L DSPACE (f(2n)) DSPACE (f(n)) . Используя утверждение, L DSPACE (f(43n))= DSPACE(f(n)), где последнее равенство является косвенным предположением. Но тогдаLDSPACE(f(32n))= DSPACE(f(n)), где последнее равенство снова по косвенному предположению, что дает противоречие.

Доказательство претензии. Если L DSPACE (f(23n)), то для доказательстваLDSPACE(f(n))нам просто нужно написать|x|/20 до конца вводаxи моделируют машину, которая принялаL. Посколькуf(n)32n, это не увеличит пространство, которое мы используем. (На самом деле, зная, сколько писать 0, совсем не ясно, еслиfмало и мы не можем увеличить размер алфавита - вместо этого мы можем использовать другую ленту и записать на нее все, что будет после концаx.)

Другое направление - это просто, заменяя 0 на *, если нам разрешено писать *. (См. Проблемы с этим в моем комментарии к вопросу.) Если нам не разрешено писать звезды, мы слегка модифицируем определение L как L={x10|x|/2xL} . Теперь вместо записи звезд мы сохраняем исходный ввод x10|x|/2и работать с этим. Но когда мы достигаем 1, мы идем вправо, пока не нажмем еще 1, чтобы проверить, был ли это конец слова 1 или нет. Если мы нашли еще одну 1, мы просто вернемся к нашей 1. Если мы не нашли, мы все еще вернемся, но мы будем знать, что ее следует рассматривать как звезду - если мы будем писать на ней, то мы также пишем 10 после него, чтобы иметь новый маркер конца текущего слова. (На самом деле, в этой части также есть небольшая загвоздка, если f мало - как мы можем проверить, имеет ли вход форму x10|x|/2 ? Без уничтожения ввода я могу решить эту проблему, используя несколько головок для малого f .)

domotorp
источник
Я не понимаю аргумент вообще. В любом случае , я смотрю на это, строительство обивка только показывает , что если , то L 'D S Р С Е ( F ( 2LDSPACE(f(n)), что весьма отличается от претензии (обратите внимание на расположение2LDSPACE(f(23n))23LDSPACE(f(23n))LDSPACE(f(n)+n2)LDSPACE(2f(n))LDSPACE(43f(n)+n3))
1
@ Emil Ты прав. Я пытался это исправить, это выглядит лучше?
Домоторп
1
LDSPACE(f(23n))LDSPACE(f(n))O(logn)fDSPACE(f(n))DSPACE((1+ϵ)f(n))ϵ>0
2
f(n)<n