Рассматривается такой язык
для всех МТ
, либо
и
, т.е. дополнение языка
.
Здесь
-- алфавит из двух символов
и
,
-- множество всех слов в алфавите
;
-- код машины Тьюринга
;
-- язык, принимаемый МТ
.
Также, если
(класс рекурсивно перечислимых языков), существует МТ
с принимаемым языком
, при этом для слова
МТ
либо работает бесконечно, либо завершает работу в отклоняющем состоянии.
Нужно доказать, что
(т.е. существует машина Тьюринга, принимающая этот язык и, возможно, работающая бесконечно на каких-то входах, этому языку не принадлежащих).
Доказательство.
Так как для любой НМТ
существует детерминированная МТ
такая, что
, нам достаточно показать, что существует НМТ
с языком
. Опишем такую машину, которая работает над входом
следующим образом.
Этап 1.
детерминированно проверяет, выполнено ли для некоторой МТ
условие
. Если
не кодирует никакую МТ, то
допускает слово
.
Этап 2. Если
для некоторой МТ
, то
недетерминированно генерирует слово
и детерминированно моделирует вычисление
над этим словом
.
Этап 3. Если
принимает
(т.е. если
), то
допускает свой вход
.
Если
отклоняет
, то
не принимает
в этом вычислении.
Если вычисление
над
бесконечно, то и
не завершает работу над словом
-- и, следовательно, в этом вычислении слово
не принимается.
Итак, согласно описанию этапа 1,
принимает все слова, которые не кодируют машины Тьюринга.
Если
для некоторой МТ
, и при этом
, то существует слово
. Следовательно, существует допускающее вычисление машины
над
.
Если же
, то существует допускающее вычисление машины
над словом
-- и, следовательно
.
(взято из книги Ю. Громковича "Теоретическая информатика. Введение в теорию автоматов, теорию вычислимости, теорию сложности, теорию алгоритмов, рандомизацию, теорию связи и криптографию")
=========================================
1. Нет ли в приведенном доказательстве ошибок/возможных опечаток и т.п.?
2. Мне непонятно, что значит
Цитата:
недетерминированно генерирует слово
Как можно пояснить смысл этого выражения? Что подразумевается под "недетерминированно генерирует слово
"?
Работу
на Этапе 2 я представляю таким образом. Начиная с пустого слова
, для текущего слова
МТ
имеет три возможных действия:
1) приписать
к слову
, т.е. сгенерировать слово
;
2) приписать
к слову
, т.е. сгенерировать слово
;
3) промоделировать работу машины
над словом
.
Т.е. у каждого внутреннего узла дерева вычислений машины
имеется три потомка, соответствующих этим действиям. В каждом из этих трёх случаев
переходит соответственно в состояния
,
,
(здесь
просто фиксированный символ, не переменное, т.е. речь идёт всего о 3-х состояниях).
Поэтому если
принимает какое-то
, то у
в дереве вычислений будет присутствовать "моделирующая ветвь", в которой
на входе
завершает работу в допускающем состоянии, и после этого
будет принимать свой вход
. При этом если
не имеет конечных вычислений над входом
, то
также будет работать бесконечно, т.е. она имеет бесконечные вычисления на каких-то входах. Правильно?