( UPDATE : лучше формируются вопрос ставятся здесь в качестве комментариев к общепринятом ответу ниже , показывает , что этот вопрос не является четко определенным)
Классическое доказательство невозможности проблемы остановки зависит от демонстрации противоречия при попытке применить алгоритм обнаружения остановки к себе в качестве входных данных. Смотрите фон ниже для получения дополнительной информации.
Продемонстрированное противоречие применимо из-за парадокса самоссылки (например, предложение «Это предложение не соответствует действительности»). Но если мы строго запрещаем такие ссылки на себя (т.е. принимаем тот факт, что такие ссылки не могут быть остановлены), с каким результатом мы останемся? Решается ли проблема остановки для оставшегося набора машин, которые не ссылаются на саму себя, или нет?
Вопросы это:
Если мы рассмотрим подмножество всех возможных машин Тьюринга, которые не имеют самоссылки (то есть не принимают их в качестве входных данных), что мы знаем о проблеме остановки для этого подмножества?
ОБНОВИТЬ
Возможно, лучшая формулировка того, что мне нужно, это лучшее понимание того, что определяет разрешимый набор. Я пытался выделить классическое доказательство неразрешимости, потому что оно не добавляет никакой информации о неразрешимости, за исключением случаев, когда вы запускаете HALT для себя.
Предпосылки: Предполагая, что существует противоречие, что существует машина Тьюринга которая может определить вход M, который является кодированием для машины Тьюринга и X , независимо от того, останавливается ли M ( X ) . Затем рассмотрим машину Тьюринга K, которая принимает M и X и использует Q, чтобы решить, останавливается ли M ( X ) или нет, а затем делает обратное, то есть K останавливается, если M ( X ) не останавливается, и не останавливается, если М ( Х )привалы. Тогда демонстрирует противоречие, так как K должен остановиться, если он не останавливается, и не останавливается, когда он останавливается.
Мотивация: коллега работает над формальной проверкой программных систем (особенно, когда система уже проверена на уровне исходного кода, и мы хотим подтвердить ее для ее скомпилированной версии, чтобы нейтрализовать проблемы компилятора), и в его случае он заботится о специальный набор встроенных управляющих программ, для которых мы точно знаем, что они не будут ссылаться на себя. Один из аспектов проверки, которую он хочет выполнить, заключается в том, будет ли гарантировано, что скомпилированная программа остановится, если будет доказано, что входной исходный код завершается.
ОБНОВИТЬ
Основываясь на комментариях, приведенных ниже, я проясняю значение несамостоятельных машин Тьюринга.
Цель состоит в том, чтобы определить его как множество, которое не приводит к противоречию, поставленному в доказательстве (см. «Предпосылки» выше). Это может быть определено следующим образом:
Предполагая, что существует машина Тьюринга которая решает проблему остановки для набора машины Тьюринга S , тогда S не является самоссылкой относительно Q, если она исключает все машины, которые вызывают Q на S (прямо или косвенно). (Понятно, что это означает, что Q не может быть членом S. )
Чтобы уточнить, что имеется в виду, косвенно вызывая на S :
Вызов на S обозначается машиной Тьюринга Q с набором состояний и определенными возможными начальными входами на ленте (соответствующими любому члену S ), причем голова изначально находится в начале этого входа. Машина W вызывает Q на S «косвенно», если существует (конечная) последовательность шагов, которые W предпримет, чтобы сделать свою конфигурацию «гомоморфной» начальной конфигурации Q ( S ) .
ОБНОВЛЕНИЕ 2
Из ответа ниже, утверждающего, что бесконечно много машин Тьюринга выполняют одну и ту же задачу, и поэтому не является уникальным, мы изменим приведенное выше определение, сказав, что Q - это не одна машина Тьюринга, а (бесконечный) набор вычислений всех машин та же функция (HALT), где HALT - это функция, которая определяет, останавливается ли машина Тьюринга на конкретном входе.
ОБНОВЛЕНИЕ 3
Определение гомоморфизма машины Тьюринга:
TM A гомоморфен TM B, если граф переходов A гомоморфен графу переходов B, в стандартном смысле гомоморфизмов графов с помеченными узлами AND ребер. Граф переходов (V, E) ТМ таков, что V = состояния, E = дуги перехода между состояниями. Каждая дуга помечена символом (S, W, D), S = символом, считываемым с ленты, и W = символом, который должен быть записан на нее, и D = направление, в котором движется шоу головы.