Математическая Логика и Теория Алгоритмов стр. 48 из 64
© 2003 Галуев Геннадий Анатольевич
дующий: исходя из произвольного слова Р, система подстановок просматривается в
естественном порядке. Отыскивается первая подстановка, левая часть которой вхо-
дит в Р. Если таковой не имеется, то процесс обрывается; в противном случае (най-
дена подстановка), выполняется подстановка первого вхождения. В результате полу-
чаем новое слово
1
P . Для
1
P выполняется аналогичная процедура и так далее до тех
пор, пока на n-м шаге для слова
n
P процесс не оборвется. Таким образом имеем не-
который алгоритм переработки слов в алфавите А.
Этот алгоритм перерабатывает слово P=cbbabcb в слово bba:
cb
babcb→ababcb→babcb→bbcb→bba (Слово просматривается слева направо, и под-
становки просматриваются в естественном порядке). Дальнейшие подстановки невоз-
можны. Однако слово Q=cbbcba. Не может быть переработано, так как получается
бесконечная последовательность:
cb
bcba→abcba→bcba→bcca→bbaa→bcba→bcaa→bbaa→bcba→bcaa…
поэтому к слову Q алгоритм не применим.
В нормальном алгоритме Маркова порядок применения подстановок следующий. Ис-
ходя из произвольного слова Р, все подстановки просматриваются в естественном по-
рядке. Находится подстановка с левой частью, входящей в
0
P . Если таковой нет, то
процесс обрывается. В противном случае берется первая из таких подстановок и вы-
полняется замена ее правой части вместо первого вхождения ее левой части в Р, что
дает новое слово
1
P
. Для
1
P
выполняется аналогичная процедура и так далее. Про-
цесс оканчивается тогда, когда получим слово
n
P такое, что к нему не применима ни
одна подстановка или когда применяется подстановка, объявленная последней.
Как видно, в отличие от предыдущего алгоритма Маркова остановка может на-
ступать в двух случаях. Если в приведенной выше полутуэвской системе объявим
подстановку baa→cba последней, то ясно, что слово Q будет переработано в слово
bcba.
Гипотеза Маркова
. Всякий алгоритм в алфавите А эквивалентен некоторому
нормальному алгоритму в том же алфавите.
Эта гипотеза позволяет строго проводить доказательство алгоритмической не-
разрешимости того или иного круга проблем.
Рассмотрим в качестве примера доказательство алгоритмической неразрешимости
проблемы самоприменимости алгоритма.
Пусть в некотором алфавите А={
n
aaa ,...,,
21
} задан нормальный алгоритм Г. в
записи подстановок, кроме букв алфавита А, содержаться символы ''→'' и
'',''(запятая). Обозначив эти символы буквами
1+n
a и
2+n
a получим возможность изо-
бражать алгоритм Г словом в расширенном алфавите А*={
211
,,,...,
++ nnn
aaaa }. Приме-
ним теперь алгоритм Г к слову которое его изображает.
Если алгоритм Г перерабатывает это слово в некоторое другое слово, после че-
го наступает остановка, то это означает, что алгоритм Г применим к собственной за-
писи. Такой алгоритм назовем самоприменимым
. В противном случае алгоритм будем
называть несамоприменимым
.
Естественно возникает задача распознавания самоприменимости: по записи
данного алгоритма определить самоприменим этот алгоритм или нет.
Решение этой задачи можно представить в виде построения некоторого нор-
мального алгоритма Δ, который будучи применен во всякой записи самоприменимого
алгоритма Г, перерабатывает эту запись в некоторое слово М, а примененный ко вся-
кой записи
несамоприменимый алгоритма Г, перерабатывает эту запись в некоторое
другое слово L. В этом случае по результату применения алгоритма Δ можно узнать,
является ли заданный алгоритм Г самоприменимым или нет.
Доказательство приведем от противного. Допустим, что алгоритм Δ построен.
Тогда путем некоторого изменения системы подстановок алгоритма Δ можно постро-
ить другой алгоритм Δ', который всякую запись несамоприменимого алгоритма по-