Я задавался вопросом, почему ленты / ленты не являются частью формального определения машины Тьюринга. Рассмотрим, например, формальное определение машины Тьюринга на странице Википедии . Определение, следующее за Хопкрофтом и Уллманом, включает в себя: конечный набор состояний , ленточный алфавит , пустой символ , начальное состояние , набор конечных состояний , и переходная функция . Ни одна из которых не является самой лентой.
Считается, что машина Тьюринга всегда работает на ленте, а функция перехода интерпретируется как перемещение ее головы, замена символа и изменение состояния. Итак, почему лента не входит в математическое определение машины Тьюринга?
Из того, что я вижу, само по себе формальное определение не означает, что машина Тьюринга работает так, как ее часто описывают неформально (с головой, перемещающейся по ленте). Или это?
источник
Ответы:
Для того, чтобы формально определить экземпляр машины Тьюринга (не общее понятие) не нужно явно указать ЛЕНТУ себя, или его содержимое. Для обозначения конфигурации этой конкретной машины, или вычисления выполняется ею, то есть , когда вам нужна некоторая форма нотации для описания содержимого ленты.
источник
Это немного серая область, но я бы сказал, что определение отделяет модель от экземпляра . Если вы хотите иметь в виду простую идею, подумайте об оборудовании против программного обеспечения.
Модель является оборудование: одна голова. Есть одна лента. Лента бесконечна с одной стороны и содержит пробелы (помимо ввода). Голова может двигаться по одному шагу за раз.
Экземпляр является программным обеспечением: входной диктат , что лента держит в начале, функция состояния / переходе говорит , как двигается голова и как машина «работает». Конечные состояния дают значение успеха / неудачи.
Оба параметра являются настраиваемыми - оба могут быть изменены. Существуют альтернативные модели с двумя лентами, двумя головками, двухсторонними лентами, непустой лентой и т. Д. Но как только вы исправите модель, вам нужно настроить другие «настраиваемые» параметры, такие как количество возможных состояний и функция перехода. ,
Что делает параметр частью модели, а не частью экземпляра? Это просто серая зона, и я не думаю, что есть хороший ответ (может быть, я ошибаюсь. Кто-нибудь?). Кажется, что разделение на «Аппаратное обеспечение» / «Программное обеспечение» наиболее целесообразно для классификации параметров как части модели или части экземпляра, но мы можем представить другие вселенные, в которых эта классификация отличается (например, когда ТМ является 8-кортеж, который также содержит = положение головы в начале, или = количество лент, или = шаблон, который многократно появляется на ленте после конца ввода и т. Д.)М р т т е р нP M pattern
источник
Здесь уже хорошие ответы, но я стараюсь сделать краткий.
Определения не должны быть чрезмерными или подробными.
Действительно, определение машины Тьюринга также определяет абстракцию ленты. Q0 - это начало ленты. Алфавит - это содержание ленты. И δ: (Q ∖ F) × Γ → Q × Γ × {L, R} утверждает, что лента имеет левую и правую стороны и бесконечность в обоих направлениях.
Итак, лента, голова, перемещает только удобные для человека представления модели, они уже в математической модели , но сами по себе они не являются формальной моделью.
источник
Лес дает краткий и правильный ответ: математические определения настолько кратки, насколько это возможно, и явное включение бесконечной ленты в определение машины Тьюринга сделало бы ее определение гораздо менее кратким, поэтому мы этого не делаем.
Это не отвечает на вопрос: почему ? Как определение может исключить бесконечную ленту, когда она нам нужна?
Ответ: мы не делаем. В некотором смысле, машины Тьюринга на самом деле не требуют бесконечных лент, и их определение проясняет это.
По определению, движение машины Тьюринга переводит машину из одной конфигурации в другую; конфигурация включает в себя конечную строку, которую мы рассматриваем как конечный фрагмент записанной ленты. Каждое движение либо перемещает головку ленты на одну позицию, либо перезаписывает символ под головкой ленты. Однако - и это важно для его работы:
Таким образом, для того, чтобы произвольные машины Тьюринга могли работать бесконечно, на обоих концах необходимо бесконечное количество пустых ленточных ячеек. Между тем, в любой момент его конфигурация, описывающая отрезок ленты, на котором она написана, всегда конечна: после шагов головка ленты никогда не сможет отклониться дальше, чем ячеек от своей начальной точки.n n
Один из способов перефразировать это так: машина работает на бесконечной ленте, полностью заполненной пробелами, за исключением конечного фрагмента, на котором находится ее головка ленты. Это то, что говорят большинство объяснений.
Другой способ перефразировать это так: машина работает на конечной ленте, вытянутой заготовками всякий раз, когда ее головка смещается с ленты на любом конце.
Оба эти способа являются правильными для понимания того, как работает машина: в обоих случаях, если бы у вас действительно была машина, работающая подобным образом, она правильно реализовала бы машину Тьюринга.
Если все, что вас интересует, это научить студентов тому, как работают машины Тьюринга, возможно, не имеет значения, какую концепцию вы выберете.
Тем не менее, я думаю, что первая концептуализация является ошибкой по двум причинам:
Подводя итог: идея машин Тьюринга, использующих или содержащих бесконечную ленту, служит для того, чтобы подчеркнуть важную техническую точку, но это не обязательно самый интуитивный способ мышления о машинах Тьюринга, и она вызывает определенные неверные выводы. Используйте с осторожностью.
источник