Машина Тьюринга - бесконечная лента в одном или двух направлениях


11

Я видел машины Тьюринга, изображенные бесконечными лентами в одном и двух направлениях. Есть ли разница в мощности таких машин Тьюринга или они в основном эквивалентны? В своей голове я думаю, что они эквивалентны, так как я предполагаю, что должен быть какой-то способ представить двустороннюю бесконечную ленту как одностороннюю бесконечную ленту, но я не могу найти доказательство или пример.


1
Вы дублируете состояния и символы ленты, так что у вас есть версия для правой части и другая для левой части. На ленте вы храните пары символов, левый и правый. Вы настраиваете функцию перехода так, чтобы она изменяла только ту часть пары, которая соответствует половине ленты, с которой вы в данный момент работаете. И добавьте немного управления, когда вам нужно изменить половину ленты, которую вы рассматриваете. Не забывайте, что если вы сложите правую половинку ленты влево, движения головы будут обратными. Поэтому измените свои переходы для правильных состояний соответственно.
Бабу

@babou Превратиться в полноценный ответ?
Юваль Фильмус

Ответы:


12

Они эквивалентны по вычислительной мощности. Все, что вычислимо одним из этих двух видов машин Тьюринга, вычислимо другим. Давайте посмотрим, как смоделировать машину Тьюринга с дважды бесконечной лентой, на машине Тьюринга с единственной бесконечной лентой.

Идея состоит в том, чтобы разрезать вашу дважды бесконечную ленту на две части, чтобы у вас было две одинаково бесконечные ленты: левая и правая, которые вы в конечном итоге объедините. Вы можете пометить концы местоположением ленты, содержащим специальный символ EOF. Вы также дублируете свой конечный элемент управления, чтобы у вас было два идентичных конечных элемента управления. Предполагается, что у вас есть устройство для передачи управления (см. Ниже), поэтому, когда левая машина пытается выйти за правый конец своей ленты, она передает управление правой машине в крайнем левом положении ленты (непосредственно перед левый конец правой ленты). И наоборот, при попытке передать левый конец правой ленты.

Теперь, чтобы различить левую и правую машины, мы меняем имена состояний и символы ленты, индексируя их с и соответственно для левой и правой машины. И мы соответственно меняем переходы двух машин, чтобы они работали как раньше.рL

Теперь мы готовы объединить две половинки ленты, например, сложив правую на левую. Для этого вы переворачиваете правую половину ленты и стараетесь соответствующим образом изменить переходы, меняя правую на левую и левую на правую. Затем вы объединяете две половины ленты в одну ленту, содержащую пары символов, левый и правый, причем каждый компонент может быть пустым.

Вы снова изменяете переходы обеих машин, так что левые (соответственно правые) переходы используют и изменяют только левую (соответственно правую) часть пар на ленте. Затем вы объединяете управление двумя машинами путем простого объединения множеств соответственно для состояний и для переходов.

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

Возможно, я забыл деталь, но это общая идея конструкции. Доказательство оставлено в качестве упражнения.

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

Затем вы убираете отвертку, так как это может быть опасно для детей.

PS Я только показал, что дважды бесконечную ленту можно смоделировать одной бесконечной лентой. Обратное кажется слишком очевидным.


@DW Спасибо за редактирование. Я должен был подумать об этом. Насколько я помню, я вставил последнюю строку как запоздалую мысль в течение 5-минутного льготного периода после редактирования. Учитывая существующие правила по количеству правок, я обычно жду сбора необходимых изменений перед новым сеансом редактирования.
Бабу

Ах, да, правила редактирования! Я не фанат правил, ограничивающих количество правок; в любое время это заставляет людей неохотно улучшать свой ответ, это кажется потерей для сайта, ну да ладно, что ты собираешься делать? Извините, я увеличил количество ваших изменений на единицу - я не хотел вас беспокоить, учитывая объем работы, который вы уже вложили, но, возможно, мне следовало бы сначала спросить. Спасибо за отличный ответ!
DW

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.