
Математическая Логика и Теория Алгоритмов                                                                    стр. 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. В этом случае по результату применения алгоритма Δ можно узнать, 
является ли заданный  алгоритм Г самоприменимым или нет. 
Доказательство приведем от противного. Допустим, что алгоритм Δ построен. 
Тогда  путем  некоторого  изменения  системы  подстановок  алгоритма Δ  можно постро-
ить  другой  алгоритм  Δ',  который  всякую  запись  несамоприменимого  алгоритма  по-