Многоленточные машины Тьюринга
[9/22%]Найдите трёхленточную ДМТ , которая вычисляет функцию на натуральных числах и .
Докажите, что для любого языка существует ДМТ с бесконечным числом лент, допускающая .
Опишите подробно последнюю часть одноленточной ДМТ из теоремы 4.11, моделирующей двустороннюю ДМТ . То есть покажите инструкции , которые восстанавливают результат из двухдорожечной формы в однодорожечную форму. Например, она должна преобразовывать конфигурацию ленты
в конфигурацию , а также преобразовывать конфигурацию ленты
в конфигурацию .
Опишите подробно шаг моделирования двусторонней ДМТ из теоремы 4.13, моделирующей трёхленточную ДМТ . То есть покажите инструкции , которые сдвигают головку влево, чтобы собрать информацию о лентах , а затем сдвигают её вправо, чтобы на основе этой информации выполнить инструкцию .
Для заданной двусторонне бесконечной одноленточной ДМТ с и постройте многоленточную ДМТ , которая на входе моделирует на входе не более чем за шагов, так что она останавливается тогда и только тогда, когда останавливается на входе за не более чем шагов.
Постройте многоленточные ДМТ, допускающие следующие языки. Для каждого языка обсудите, сколько времени экономит ваша машина по сравнению с одноленточной ДМТ, использующей тот же алгоритм.
.
.
.
.
.
Постройте многоленточные ДМТ, вычисляющие следующие функции. Для каждой функции обсудите, сколько времени экономит ваша машина по сравнению с одноленточной ДМТ, использующей тот же алгоритм.
на строках .
на натуральных числах .
на положительных целых числах , , где не фиксировано.
максимальное число вхождений одного и того же положительного целого числа в , где не фиксировано. (Например, и .
список , отсортированный по возрастанию, где — положительные целые числа, а не фиксировано.
Двумерная ДМТ — это МТ, «лента» которой представляет собой двумерную плоскость, разделённую на бесконечное число ячеек (см. рисунок 4.15). Двумерная ДМТ работает подобно двусторонней ДМТ, за исключением того, что на каждом шаге она может сдвигать головку вверх (U), вниз (D), влево (L), вправо (R) или оставаться на месте (S). Изначально входное слово хранится в горизонтальной строке, и головка находится над пустой ячейкой справа от него. Когда машина останавливается, результат также хранится в горизонтальной строке (но не обязательно в той же строке, что и вход), при этом головка указывает на пустую ячейку справа от него. Все остальные символы, не находящиеся в этой строке, игнорируются.
Рисунок 4.15: Двумерная ДМТ.
Рисунок 4.16: Изменение конфигурации в упражнении 6(b).
Опишите, как представить конфигурацию двумерной ДМТ. Используя эту нотацию, дайте формальное определение понятия функции, вычисляемой двумерной ДМТ.
Разработайте двумерную ДМТ, переводящую начальную конфигурацию ленты (a) в новую конфигурацию (b), как показано на рисунке 4.16.
Покажите, что двумерная ДМТ может быть смоделирована многоленточной ДМТ. Следовательно, все функции, вычисляемые двумерными ДМТ, являются тьюринг-вычислимыми.
Мы говорим, что автомат с магазинной памятью является детерминированным, если для любой конфигурации применима не более чем одна инструкция. Покажите, что любой детерминированный автомат с магазинной памятью может быть смоделирован двухленточной ДМТ. (В разделе 4.7 мы покажем, что все контекстно-свободные языки являются тьюринг-допустимыми.)