3.4. Формальное описание алгоритма через замену
текстов
3.4.1. Текстовые замены
Для точного описания алгоритма (которое допускает машинную обработку и
выполнение) требуется формальный язык (подмножество из V
∗
с заданным
набором знаков V ) для записи алгоритмов и точное определение понятия
эффективности (выполнимости) элементарных шагов переработки. В про-
стейшем случае алгоритмы в качестве входа и выхода используют слова над
некоторым набором знаков. Поскольку в виде слов может быть представлена
самая различная информация, можно считать, что алгоритмы всегда опери-
руют со словами.
Одной из простейших концепций элементарных шагов переработки после-
довательностей знаков является замена определенных подслов (образцов) в
обрабатываемом слове другими словами. Эта концепция ведет к алгоритмам
в форме систем текстовых замен на последовательностях знаков.
Пусть V — запас знаков. V
∗
— множество всех конечных цепочек симво-
лов из V . Пустая цепочка, т.е. цепочка, не содержащая ни одного символа,
обозначается ε. Пара (v, w) ∈ V
∗
× V
∗
называется заменой над V . Замена
часто записывается в виде v → w.
Конечное множество R замен будем в дальнейшем называть системой тек-
стовых замен (СТЗ) над V . Элементы системы будем называть правилами
текстовых замен (ПТЗ). СТЗ служат для представления алгоритмов, отдель-
ные шаги которых состоят в применении правил замен.
Замена s → t называется применением правила v → w, если имеются
слова a, v, w, z ∈ V
∗
такие, что справедливо s = а · v · z, t = а · w · z.
Слово s ∈ V
∗
называется терминальным (или терминалом) в R, если не
существует слова t ∈ V
∗
такого, что справедливо следующее: замена s → t
является применением какого-либо правила из R. Таким образом, к терми-
нальному слову s нельзя больше применить никакого правила замены.
3.4.2. Вычисления
Через повторное применение ПТЗ, исходя из начально заданного слова t
0
,
возникают вычисления. Если t
0
, t
1
, . . . , t
n
принадлежат V
∗
и t
i
→ t
i+1
есть
применение некоторого правила из R для всех i, 0 ≤ i < n, то последователь-
ность (t
i
)0 ≤ i ≤ n называют (конечным) вычислением над R для t
0
. Часто
вычисление записывается следующим образом: t
0
→ t
1
→ . . . → t
n
.
Слово t
0
называется также входом для вычисления. Если t
n
есть тер-
минал, то вычисление называется завершающимся (конечным) с результа-
26