404 9. Сплетение циклических строк
переставляется с α при помощи перестановки вида
αY X → Y Xα.
Таким образом, можно одинаково относиться и к имитируемым
нами правилам грамматики u → v, и к перебрасывающим ша-
гам: и в тех и в других некая подстрока циклической строки
заменяется на другую. Для сохранения контролирующего бло-
ка Y X, возможно, в качестве единого символа, нам понадобят-
ся переставляющие правила αY X → Y Xα. Но на самом деле
умение заменять одни подстроки циклической строки др угими
позволяет вообще отказаться от переброски. Правда, нам по-
требуется дополнительный шаг линеаризации или соглашение
о «линейном» прочтении циклических строк.
Другая мотивировка для рассмотрения операции сплете-
ния, способной производить подстановку в циклических стро-
ках, скрыта в характеризации семейства RE с помощью итери-
рованных ОПМ. Итерация ОПМ нужна для того, чтобы после
разбора строки перейти от последнего символа к первому и
снова запустить данный проц есс. В циклическом же случае на-
чало и конец строки соединены, так что можно считать, что
ОПМ просто продолжает разбор, двигаясь вдоль ц ик лич еской
строки.
Операцию замены подстрок в циклической строке, которая
требуется в приведенных ситуациях, можно определить следу-
ющим образом. Для правила сплетен ия r = u
1
#u
2
$u
3
#u
4
над
некоторым алфавитом V и ˆx, ˆy ∈ V
, z, w ∈ V
∗
, пишем
(ˆx, z) |=
5
r
(ˆy, w)
тогда и только тогда, когда
x = x
1
u
1
u
2
x
2
u
3
u
4
, z = u
2
z
1
u
3
,
y = x
1
u
1
u
2
z
1
u
3
u
4
, w = u
2
x
2
u
3
при некоторых x
1
, x
2
, z
1
∈ V
∗
.
Эту операцию иллюстрирует рис. 9.2. Видно, как строки ˆx и
z меняются подстроками x
2
и z
1
. Циклическая строка разреза-
ется в двух местах, при этом из нее высвобождается подслово
u
2
x
2
u
3
. Концы линейной строки соответствуют концам о став-