Нормальные алгоритмы Маркова Рассмотрим алфавит A. Множество слов этого алфавита обозначим через A∗ . Число букв в слове P ∈ A∗ называется его длиной. Будем считать существующим и пустое слово, не содержащее букв, и обозначать его через Λ. Его длина считается равной 0. Пустое слово можно вставлять между любыми двумя буквами данного слова. Говорят, что слово P входит в слово Q, если Q имеет вид P1 P P2 . При этом слова P1 и P2 могут оказаться пустыми, и тогда P просто совпадает с Q. Пусть слово P входит в слово Q несколько раз. Выберем такое вхождение, при котором число символов в слове Q, стоящих слева от слова P , наименьшее. Это вхождение слова P в слово Q называют первым. Пусть A – некоторый алфавит, не содержащий стрелки "→" и точки "." в качестве букв. Простой формулой подстановки в алфавите A называют слово P → Q (в расширенном алфавите A0 = A∪{→, .}), где P, Q ∈ A∗ , а заключительной формулой подстановки – слово P → ·Q, где P, Q ∈ A∗ . Слово P называется левой, а слово Q – правой частью подстановки P → γQ, где γ ∈ {·, Λ}. Результатом применения подстановки P → Q к слову R = P1 P P2 называется слово R0 = P1 QP2 . Определение. Конечная упорядоченная система подстановок P → γ1 Q1 , 1 P2 → γ2 Q2 , (1) .., Pn → γn Qn , где Pi , Qi ∈ A∗ , γi ∈ {·, Λ}, i = 1, .., n, называется нормальной схемой в алфавите A. Определение. Нормальным алгоритмом в алфавите A, задаваемым нормальной схемой (1), называется алгоритм, преобразующий слова в алфавите A следующим образом. Пусть дано слово P ∈ A∗ . 1) Если среди формул из (1) нет ни одной, у которой левая часть входит в P , то процесс применения алгоритма к слову P считается законченным и результатом считается само число P . 2) Если среди формул из (1) есть такая, у которой левая часть входит в P , то берем самую верхнюю из формул с таким свойством; пусть это формула Pi → γi Qi . Для нее выбираем первое вхождение слова Pi в слово P ; пусть это представление P = P 0 Pi P 00 ; для него выполняем подстановку P → P̃ = P 0 Qi P 00 . 3) Если примененная формула Pi → γi Qi была заключительной (т.е. γi = ·), то процесс считается законченным и результатом применения алгоритма к слову P считается слово P̃ . 4) Если Pi → γi Qi была простой (т.е. γi = Λ), то к слову P̃ применяется предыдущая процедура (т.е. переходим к пункту 1), т.е. процесс применения алгоритма продолжается. Возможно, что описанный процесс никогда не закончится. В таком случае говорят, что нормальный алгоритм не применим к слову P . Определение. Функцию f (x1 , x2 , .., xn ) будем называть вычислимой по Маркову, если существует нормальный алгоритм в некотором конечном алфавите A, содержащем символы 1 и ∗, который применим к слову 1...1 |{z} ∗ ... ∗ 1...1 |{z} |{z} ∗ 1...1 x1 x2 xn (1...1 |{z} в случае n = 1) тогда и только тогда, когда (x1 , x2 , .., xn ) ∈ D(f ), при этом результатом x1 применения алгоритма является слово 1...1 |{z} . f (x1 ,x2 ,..,xn ) Возникает естественный вопрос: всякая ли интуитивно-вычислимая функция является вычислимой по Маркову? Ответ на него дает тезис Маркова (Черча–Маркова): всякая интуитивно-вычислимая функция вычислима по Маркову. Теорема. Следующие утверждения эквивалентны: (i) функция f (x1 , .., xn ) частично рекурсивна; (ii) функция f (x1 , .., xn ) вычислима по Тьюрингу: (iii) функция f (x1 , .., xn ) вычислима по Маркову. (без доказательства) 1