Таблица инструкций по машинам Тьюринга - PullRequest
4 голосов
/ 08 октября 2009

Определения машины Тьюринга говорят, что одному человеку запрещено читать / изменять свою таблицу команд (программу). Собственно говоря, у машины Тьюринга нет доступа к собственной программе.

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

Ответы [ 2 ]

4 голосов
/ 08 октября 2009

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

Итак, ответ НЕТ . Помните, никто, и я имею в виду, что ни у кого, нигде и никогда абсолютно не было 10000 * желанных машин Тьюринга, хотя, без сомнения, были написаны миллионы симуляторов. (Я не признаюсь в этом, но, будучи студентом, я мог сделать что-то подобное ...) Это просто то, на чем основаны различные важные доказательства.

1 голос
/ 31 марта 2012

Более подробно: есть разница между «универсальной машиной Тьюринга» и «машиной Тьюринга». Обычная машина Тьюринга имеет аппаратный набор правил, поэтому не может быть самоизменяющейся. То, что вы описали, - это универсальная машина. Машина Тьюринга, которая считывает свой набор правил с той же ленты, которую использует для ввода-вывода, и имеет возможность изменять этот набор правил. Если UTM имеет возможность перезагрузить (перезагрузить) этот измененный набор правил с ленты, то он находится в факт уже самоизменяется.

...