Алфавит и схема алгоритма.
Нормальные алгоритмы являются вербальными, то есть предназначенными для применения к словам в различных алфавитах.
Определение всякого нормального алгоритма состоит из двух частей: определения алфавита алгоритма (к словам из символов которого алгоритм будет применяться) и определения его схемы. Схемой нормального алгоритма называется конечный упорядоченный набор так называемых формул подстановки, каждая из которых может быть простой или заключительной. Простыми формулами подстановки называются слова вида , где
и
— два произвольных слова в алфавите алгоритма (называемые, соответственно, левой и правой частями формулы подстановки). Аналогично, заключительными формулами подстановки называются слова вида
, где
и
— два произвольных слова в алфавите алгоритма. При этом предполагается, что вспомогательные буквы
и
не принадлежат алфавиту алгоритма (в противном случае на исполняемую ими роль разделителя левой и правой частей следует избрать другие две буквы).
Примером схемы нормального алгоритма в пятибуквенном алфавите может служить схема
Процесс применения нормального алгоритма к произвольному слову в алфавите этого алгоритма представляет собой дискретную последовательность элементарных шагов, состоящих в следующем. Пусть
— слово, полученное на предыдущем шаге работы алгоритма (или исходное слово
, если текущий шаг является первым). Если среди формул подстановки нет такой, левая часть которой входила бы в
, то работа алгоритма считается завершённой, и результатом этой работы считается слово
. Иначе среди формул подстановки, левая часть которых входит в
, выбирается самая первая. Если эта формула подстановки имеет вид
, то из всех возможных представлений слова
в виде
выбирается такое, при котором
— самое короткое, после чего работа алгоритма считается завершённой с результатом
. Если же эта формула подстановки имеет вид
, то из всех возможных представлений слова
в виде
выбирается такое, при котором
— самое короткое, после чего слово
считается результатом текущего шага, подлежащим дальнейшей переработке на следующем шаге.
Например, в ходе процесса применения алгоритма с указанной выше схемой к слову последовательно возникают слова
,
,
,
,
,
,
,
,
,
и
, после чего алгоритм завершает работу с результатом
. Другие примеры смотрите ниже.
Любой нормальный алгоритм эквивалентен некоторой машине Тьюринга, и наоборот — любая машина Тьюринга эквивалентна некоторому нормальному алгоритму. Вариант тезиса Чёрча — Тьюринга, сформулированный применительно к нормальным алгоритмам, принято называть «принципом нормализации».
Нормальные алгоритмы оказались удобным средством для построения многих разделов конструктивной математики. Кроме того, заложенные в определении нормального алгоритма идеи используются в ряде ориентированных на обработку символьной информации языков программирования — например, в языке Рефал.