Почему лента не является частью определения машины Тьюринга?

11

Я задавался вопросом, почему ленты / ленты не являются частью формального определения машины Тьюринга. Рассмотрим, например, формальное определение машины Тьюринга на странице Википедии . Определение, следующее за Хопкрофтом и Уллманом, включает в себя: конечный набор состояний , ленточный алфавит , пустой символ , начальное состояние , набор конечных состояний , и переходная функция . Ни одна из которых не является самой лентой.Q ΓbΓq0QFQδ:(QF)×ΓQ×Γ×{L,R}

Считается, что машина Тьюринга всегда работает на ленте, а функция перехода интерпретируется как перемещение ее головы, замена символа и изменение состояния. Итак, почему лента не входит в математическое определение машины Тьюринга?

Из того, что я вижу, само по себе формальное определение не означает, что машина Тьюринга работает так, как ее часто описывают неформально (с головой, перемещающейся по ленте). Или это?

Shuzheng
источник
1
Следующий раздел в Википедии гласит: «По словам Ван Эмде Боаса (1990), стр. 6:« Теоретический набор объектов [его формальное описание из семи кортежей, аналогичное описанному выше] предоставляет только частичную информацию о том, как машина будет вести себя ». и как будут выглядеть его вычисления. "" Это очень похоже на дихотомию программного обеспечения / оборудования / синергию / взаимозависимость. Программное обеспечение предполагает конкретное оборудование, на котором оно работает. если кто-то обнаружит какое-то программное обеспечение в будущем, он не сможет понять его «значение», не понимая также и аппаратное обеспечение, на котором оно работает.
августа
Почему дорога не является частью автомобиля?
Андрей Бауэр

Ответы:

8

Для того, чтобы формально определить экземпляр машины Тьюринга (не общее понятие) не нужно явно указать ЛЕНТУ себя, или его содержимое. Для обозначения конфигурации этой конкретной машины, или вычисления выполняется ею, то есть , когда вам нужна некоторая форма нотации для описания содержимого ленты.

Андре Соуза Лемос
источник
То есть лента нужна только для определения конфигурации и вычислений?
Shuzheng
Да, машина просто работает на ленте. Разное содержимое ленты не создает разные машины.
Андре Соуза Лемуш
1
Другими словами: этот вопрос приводит только синтаксис ТМ. Только при определении семантики лента входит в изображение. (Аналогия: определение синтаксиса C (или любого другого языка программирования) также не упоминает предполагаемый набор команд аппаратной архитектуры / ОС / ЦП.)
Рафаэль
Даже семантически наиболее естественно думать, что машина остается той же самой машиной, даже когда содержимое ленты меняется. (Формально это не так, поскольку начальное содержимое является частью определения машины.)
reinierpost
2

Это немного серая область, но я бы сказал, что определение отделяет модель от экземпляра . Если вы хотите иметь в виду простую идею, подумайте об оборудовании против программного обеспечения.

Модель является оборудование: одна голова. Есть одна лента. Лента бесконечна с одной стороны и содержит пробелы (помимо ввода). Голова может двигаться по одному шагу за раз.

Экземпляр является программным обеспечением: входной диктат , что лента держит в начале, функция состояния / переходе говорит , как двигается голова и как машина «работает». Конечные состояния дают значение успеха / неудачи.

Оба параметра являются настраиваемыми - оба могут быть изменены. Существуют альтернативные модели с двумя лентами, двумя головками, двухсторонними лентами, непустой лентой и т. Д. Но как только вы исправите модель, вам нужно настроить другие «настраиваемые» параметры, такие как количество возможных состояний и функция перехода. ,

Что делает параметр частью модели, а не частью экземпляра? Это просто серая зона, и я не думаю, что есть хороший ответ (может быть, я ошибаюсь. Кто-нибудь?). Кажется, что разделение на «Аппаратное обеспечение» / «Программное обеспечение» наиболее целесообразно для классификации параметров как части модели или части экземпляра, но мы можем представить другие вселенные, в которых эта классификация отличается (например, когда ТМ является 8-кортеж, который также содержит = положение головы в начале, или = количество лент, или = шаблон, который многократно появляется на ленте после конца ввода и т. Д.)М р т т е р нPMpattern

Ран Г.
источник
1

Здесь уже хорошие ответы, но я стараюсь сделать краткий.

Определения не должны быть чрезмерными или подробными.

Действительно, определение машины Тьюринга также определяет абстракцию ленты. Q0 - это начало ленты. Алфавит - это содержание ленты. И δ: (Q ∖ F) × Γ → Q × Γ × {L, R} утверждает, что лента имеет левую и правую стороны и бесконечность в обоих направлениях.

Итак, лента, голова, перемещает только удобные для человека представления модели, они уже в математической модели , но сами по себе они не являются формальной моделью.

Les
источник
1

Лес дает краткий и правильный ответ: математические определения настолько кратки, насколько это возможно, и явное включение бесконечной ленты в определение машины Тьюринга сделало бы ее определение гораздо менее кратким, поэтому мы этого не делаем.

Это не отвечает на вопрос: почему ? Как определение может исключить бесконечную ленту, когда она нам нужна?

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

По определению, движение машины Тьюринга переводит машину из одной конфигурации в другую; конфигурация включает в себя конечную строку, которую мы рассматриваем как конечный фрагмент записанной ленты. Каждое движение либо перемещает головку ленты на одну позицию, либо перезаписывает символ под головкой ленты. Однако - и это важно для его работы:

  • всякий раз, когда мы удаляем этот конечный фрагмент строки, мы предполагаем, что символ под головкой ленты равен , пустой символ.b
  • мы можем делать это бесконечно часто .

Таким образом, для того, чтобы произвольные машины Тьюринга могли работать бесконечно, на обоих концах необходимо бесконечное количество пустых ленточных ячеек. Между тем, в любой момент его конфигурация, описывающая отрезок ленты, на котором она написана, всегда конечна: после шагов головка ленты никогда не сможет отклониться дальше, чем ячеек от своей начальной точки.nn

Один из способов перефразировать это так: машина работает на бесконечной ленте, полностью заполненной пробелами, за исключением конечного фрагмента, на котором находится ее головка ленты. Это то, что говорят большинство объяснений.

Другой способ перефразировать это так: машина работает на конечной ленте, вытянутой заготовками всякий раз, когда ее головка смещается с ленты на любом конце.

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

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

Тем не менее, я думаю, что первая концептуализация является ошибкой по двум причинам:

  • Это нереально . На самом деле мы не можем построить машину с бесконечной лентой. Мы можем построить машину с конечной лентой, расширенной по запросу.
  • Это нелогично. Мы не думаем, что машины, выполняющие задачи произвольно часто, содержат бесконечное количество ресурсов. Например, мы не думаем о копировальном аппарате как о бесконечном количестве копировальной бумаги. Машины Тьюринга моделируют вычислительную деятельность. Они моделируют то, что произошло бы, если бы мы заменили компьютер (которым на момент изобретения была женщина, выполняющая вычисления на бумаге) на машину, способную выполнять произвольные программируемые вычисления. Мы не думаем об этой женщине как о бесконечном количестве бумаги. Скорее, мы предполагаем, что ей будет предоставлено столько бумаги, сколько ей нужно, и мы рассматриваем неспособность сделать это как неудачу окружающей среды, а не говорим, что такая женщина не может существовать. Почему бы не сделать то же самое для машины?
  • Это предлагает вводящие в заблуждение выводы. Я видел это много. Например:
    • Люди говорят, что машины Тьюринга на самом деле не могут быть построены, в то время как конечные автоматы могут. Ну, мы не можем построить произвольные большие конечные автоматы больше, чем можем поставить произвольное количество ленты на машину Тьюринга.
    • Люди говорят , что машины Тьюринга не модели компьютеров правильно, в то время как конечные автоматы делают. Это служит важным моментом: если все, что нас интересует, - это использование машины для определения языков ввода, то компьютер, работающий только со своим (фиксированным) внутренним хранилищем, может полностью реализовать любой конечный автомат до определенного размера, в то время как он не может в полной мере реализовать большинство машин Тьюринга, так как он будет работать из внутренней памяти для многих из них. Однако, это часто обобщено говоря: компьютеры являются конечными автоматами, которая вводит в заблуждение:
      • Это не рисует реалистичную картину большинства компьютерных программ. Действительно, программирование потока данных фактически основано на конечных автоматах, но традиционное императивное программирование - нет; он использует программы, которые гораздо ближе к экземплярам машины Тьюринга.
      • На практике компьютеры также взаимодействуют с внешними источниками ввода, вывода и хранения, которые не имеют фиксированного размера.
      • Машины Тьюринга не должны моделировать компьютеры в первую очередь; они моделируют произвольные вычисления.

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

reinierpost
источник