Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория автоматов и формальных языков. Учебник.pdf

§ 2.5. Системы уравнений 111
K
является также решением системы
на равное ему выражение. Наоборот, всякое решение системы
может быть продолжено до решения системы
Пустьf— решение системы
K0, полученное по алгоритму. Тогда
K0, так как
K
xnзаменяется
по формуле
K
(3)
по индукционному предположению оно наименьшее. Продлим его
до решения системы
K0по формуле
(3)
. Тогда получится решение
системы K, причём по следствию 48 оно также наименьшее.
Из теоремы получаем важное следствие.
0
.
Сл едствие 50.
Наименьшее решение любой системы уравнений с
регулярными коэффициентами является набором регулярных языков.
Пр име р 44. Найдём наименьшее решение системы двух уравнений
(
x = ab∗x + bby + a + ε
y = x + a∗y + ba.
Выражая из второго уравнения y, получаем
y = (a∗)∗(x + ba) = a∗(x + ba).
Поставляем это выражение в первое уравнение, получаем
x = ab∗x + bba∗(x + ba) + a + ε.
Теперь раскрываем скобки и приводим подобные члены. В результате полу-
чается уравнение
x = (ab∗+ bba∗)x + bba∗ba + a + ε,
откуда находим
x = (ab∗+ bba∗)∗(bba∗ba + a + ε).
Подставляя это выражение в формулу для y, находим
Итак,
y = a∗((ab∗+ bba∗)∗(bba∗ba + a + ε) + ba).
(
x = (ab∗+ bba∗)∗(bba∗ba + a + ε)
y = a∗((ab∗+ bba∗)∗(bba∗ba + a + ε) + ba).

112 Глава 2. Конечные автоматы и регулярные выражения
За меч ани е 2.
ний вида
условии, что все операции в правых частях монотонны. Это утверждение
является частным случаем теоремы Кнастера-Тарского о том, что множество неподвижных точек любой монотонной функции, заданной на полной
решётке, непусто и само является полной решёткой.
xi=
Можно доказать, что любая система, состоящая из уравне-
fi(
x1, x2, . . . , xn), 1
6 i 6 n
, имеет наименьшее решение при
Свяжем с каждой праволинейной грамматикой некоторую систему
уравнений.
Оп ределен ие 61.
ПустьG= (N,Σ
, P, S
) — праволинейная грамматика. Система уравненийEq(G), с о о т в е т с т в у ю щ а я грамматикеG, имеет множество переменныхNи для каждого нетерминала
A ∈ N
содержит уравнениеA=
α1+
α2+
···+αn, где
A → α1| α2| · ·· | αn— все A-правила грамматики G.
Теперь мы покажем, что система уравненийEq(G) «эквивалентна»
грамматике G.
Теорема 51.
правилами вида
ПустьG= (N,Σ
, P, S
) — праволинейная грамматика с
A → aB,A → a,A → ε(A, B ∈ N,a ∈
Σ). Пустьf—
наименьшее решение системы уравненийEq(G). ТогдаL(G) =f(S).
Доказательство. ПустьG= (N,Σ
, P, S
) — праволинейная грам-
матика с правилами указанного вида.
Докажем, чтоL(G)
w ∈ L(G
ром
каждого
часть,
). Это значит, что существует вывод (
γ0=S,
γn=w. Поскольку грамматика праволинейная, то для
i < n
выполняется
Bi∈ N
— нетерминал. Пусть наi-м шаге вывода (
меняется правило
⊆ f(S
Bi→ aiB
), гдеf— произвольное решение. Пусть
γ0, γ1, . . . , γn), в кото-
γi=
i+1
viBi, где
. Тогда
γ
i+1
vi∈
Σ∗— терминальная
=
viaiB
i+1
и
i < n
v
i+1
) при-
=
viai.
Индукцией по i докажем следующее утверждение: vif(Bi) ⊆ f (S).
Б а з и с и н д у к ц и и . Еслиi= 0, то
γi=ε,
Bi=Sи включение
f(S) ⊆ f (S) выполняется.
Ш а г и н д у к ц и и . Предположим, что дляiутверждение верно.
Поскольку
v
i+1
=
viai, то
v
i+1
f(B
i+1
) =
viaif(B
). Так как грамма-
i+1

§ 2.5. Системы уравнений 113
тика содержит правило Bi→ aiB
Bi= ··· + aiB
поэтому
aif(B
)
⊆ f(Bi). По индукционному предположению имеет
i+1
, то в системе есть уравнение
i+1
+ .. . ,
i+1
место включение vif(Bi) ⊆ f (S). Получаем
v
i+1
f(B
) = viaif(B
i+1
) ⊆ vif(Bi) ⊆ f (S).
i+1
Рассмотрим теперь последний шаг вывода. Пусть на последнем
шаге применяется правило
B
→ an. Тогдаw=
n−1
v
n−1an
, а в системе
есть уравнение
B
= ··· + an+ .. . ,
n−1
поэтому
ется v
и
w ∈ f(S
Тогда w = v
an∈ f(B
f(B
n−1
n−1
). По доказанному выше утверждению выполня-
n−1
) ⊆ f (S). Значит,
w = v
n−1an
∈ v
n−1
f(B
n−1
) ⊆ f (S)
). Пусть на последнем шаге применяется правило
, а в системе есть уравнение
n−1
B
n−1
→ ε
.
B
= ··· + ε + . . . ,
n−1
поэтому ε ∈ f (B
). Получаем
n−1
w = v
n−1
∈ v
n−1
f(B
n−1
) ⊆ f (S)
и w ∈ f(S). Итак, в обоих случаях w ∈ f(S). Поэтому L(G) ⊆ f (S).
Теперь докажем, чтоf(S)
системы. Пусть
(
vi, Bi), где
w ∈ f(S
vi— терминальное слово,
⊆ L(G
), гдеf— наименьшее решение
). Построим последовательность пар вида
Bi— нетерминал такие, что
vi∈ f (Bi). Строим последовательность индукцией по i.
Б а з и с и н д у к ц и и . Положим
v0=w,
B0=S. По условию
v0∈ f (B0).

114 Глава 2. Конечные автоматы и регулярные выражения
Ш а г и н д у к ц и и . Пусть уравнение для Biимеет вид
Bi= β1+ ··· + βp.
Тогда
vi∈ f(Bi) тогда и только тогда, когда
vi∈ f(βj) для некоторо-
го j. Возможны три случая.
1)
Если
βj=a, то
vi=a. В этом случае последовательность не
продолжаем.
2)
Если
βj=ε, то
vi=ε. В этом случае последовательность также
не продолжаем.
3)
Пусть
том последовательности будет (
предположению
v
Так как на каждом шаге длина слова
тельность не может быть бесконечной. Пусть (
i+1
βj=
∈ f (B
aB
i+1
).
i+1
, тогда
av
i+1
viимеет вид
∈ f(aB
i+1
av
. Следующим элемен-
i+1
v
, B
i+1
), поэтому
). По индукционному
i+1
av
∈ af(B
i+1
i+1
viуменьшается, то последова-
vn, Bn) — её последний
) и
элемент. Обратной индукцией по i докажем, что Bi⇒∗vi.
Б а з и с и н д у к ц и и . Приi=nимеет место случай 1) или 2).
Тогда в грамматике есть правило Bn→ vn, поэтому Bn⇒ vn.
Ш а г и н д у к ц и и . Предположим, что
пары (
есть правило Bi→ aB
vi, Bi) имел место случай 3), поэтому
. Значит, Bi⇒ aB
i+1
В частности, приi= 0 получаем
S ⇒∗w
B
i+1
vi=
av
⇒∗av
i+1
. Поэтому
⇒∗v
i+1
. Тогда для
i+1
и в грамматике
= vi.
i+1
w ∈ L(G
) и
f(S) ⊆ L(G).
Теорема 51 даёт ещё один способ построения регулярного выражения по конечному автомату: построить по автомату праволинейную
грамматику, преобразовать её в систему уравнений, а затем решить
получившуюся систему.
Пр име р 45. Построим регулярное выражение для языка
L = {w ∈ {a, b }∗: w не содержит abb }.

§ 2.5. Системы уравнений 115
Сначала построим для языкаLконечный автомат и преобразуем его в
праволинейную грамматику:
a b
нач, закл q0q1q
закл q1q1q
закл q2q1q
q3q3q
0
2
3
3
Далее построим по грамматике систему уравнений:
q0= aq1+ bq0+ ε
q1= aq1+ bq2+ ε
q2= aq1+ bq3+ ε
q3= aq3+ bq
Чтобы построить регулярное выражения для языкаL, нужно найти значе-
ние переменной
q0, соответствующей начальному нетерминалу. Значения
остальных переменных находить не требуется. Сначала найдём
следнего уравнения. Оно эквивалентно уравнению q3= (a + b)q3, поэтому
q0→ aq1| bq0| ε
q1→ aq1| bq2| ε
q2→ aq1| bq3| ε
q3→ aq3| bq
3
3
q3из по-
q3= (a + b)∗∅ = ∅
(в уравнении свободный член равен∅). Подставляя полученное выражение
для q3в третье уравнение, получаем
q2= aq1+ ε.
Теперь подставим q2во второе уравнение. Получаем
q1= aq1+ b(aq1+ ε) + ε,
то есть
q1= (a + ba)q1+ b + ε,
откуда
q1= (a + ba)∗(b + ε).
Наконец, подставим q1в первое уравнение. Получается уравнение
q0= a(a + ba)∗(b + ε) + bq0+ ε.

116 Глава 2. Конечные автоматы и регулярные выражения
Отсюда
q0= b∗(a(a + ba)∗(b + ε) + ε).
Это и есть искомое регулярное выражение.
Мы видим, что метод, основанный на использовании систем уравнений, потребовал значительно меньше вычислений, чем метод теоремы 45 в примере 40, даже несмотря на то, что автомат в примере 40
был проще.
Задачи
93.
Найдите наименьшие решения следующих систем уравнений и упростите
получающиеся регулярные выражения:
(
x = (a + b)x + b∗y
(а)
y = bbx + a∗b∗y + ba
(
x = aax + a∗y + bb
(б)
y = (b∗+ ba)x + ay + a
94. Найдите наименьшее решение уравнения x = xax + b.
95.
Пустьx=px+q— уравнение,pиq— регулярные выражения в алфавите Σ.
Докажите следующие два утверждения.
(а) Если ε /∈ L(p), то p∗q — единственное решение уравнения.
(б)
Если
ε ∈ L(p
), то множество решений уравнения совпадает с множеством
языков p∗(q + L), где L задаёт любой язык (не обязательно регулярный).
96.
Приведите пример регулярных выраженийpиqтаких, что
уравнение x = px + q имеет единственное решение.
97.
Докажите, что любая система линейных уравнений с регулярными коэффици-
ентами имеет наибольшее решение и предложите алгоритм для его нахождения.
98.
Где в доказательстве теоремы 51 используется минимальность решения си-
стемы?
99.
Постройте регулярные выражения для следующих языков с помощью систем
уравнений:
(а) L1= { w ∈ { a, b }∗: w не содержит подслова abab };
(б) L2= { w ∈ { a, b }∗: |w|aнечётно, |w|bнечётно };
(в) L3= { w ∈ { 0, 1 }∗: w — двоичная запись числа кратного трём }.
(
x = abx + a∗by + bb
(в)
y = (b + bb)x + b∗y + a + b
ε ∈ L(p
), но

§ 2.6. Двусторонние конечные автоматы 117
§ 2.6. Двусторонние конечные автоматы
Конечные автоматы, которые мы изучали до сих пор, передвигали
головку только слева направо. Можно ослабить это требование и
разрешить автомату передвигать головку по входному слову как
влево, так и вправо. Используемая память по-прежнему должна быть
конечной. Такие устройства называются двусторонними конечными
автоматами.
Оп ределен ие 62.
н ы й к о н е ч н ы й а в т о м а т (двусторонний ДКА, 2ДКА) —
это пятёрка M = (Q, Σ, δ, q0, F ), где
1) Q — конечное множество состояний;
2) Σ — конечный входной алфавит;
Д в у с т о р о н н и й д е т е р м и н и р о в а н -
3) δ : Q×Σ→ Q×{−1,0,+1}
4) q0∈ Q — начальное состояние;
5) F ⊆ Q — множество заключительных состояний.
Как обычно, еслиδ(
программа автомата содержит команду
в виде q, a → p, s ∈ δ.
Оп ределен ие 63.
(
q, w, i
), гдеq— состояние,w— слово в алфавите Σ,i— целое
число такое, что 1
это конфигурация вида (
рация — это конфигурация вида (qf, w, |w| + 1), где qf∈ F .
Отношение п е р е х о д а з а о д и н ш а г определяется на множестве конфигураций следующим образом: (
существует команда q, a → p, s такая, что w(i) = a и j = i + s.
Содержательно,q— это текущее состояние автомата,w— входное
слово (целиком), аi— номер обозреваемого символа. Условие 1
q, a
К о н ф и г у р а ц и я 2ДКА — это тройка
6 i 6 |w|
q0, w,
— функция переходов (программа);
) = (
p, s
), то мы будем говорить, что
q, a → p, s
+ 1. Н а ч а л ь н а я конфигурация —
1). З а к л ю ч и т е л ь н а я конфигу-
q, w, i)`M(
и записывать это
p, w, j
), если
6

118 Глава 2. Конечные автоматы и регулярные выражения
i 6 |w|
+ 1 говорит, что автомат не может передвинуть головку левее
первого символа входного слова, а также правее последнего символа
более чем на одну позицию. Автомат может двигаться по ленте в
двух направлениях. Команда
q, a → p, s
говорит, что если автомат в
состоянииqобозревает ячейку с символомa, то он должен перейти
в состояниеpи сдвинуть головку в соответствии со значениемs:
направо, еслиs= +1; налево, еслиs=−1; не сдвигать, еслиs= 0.
По определению конфигурации
j >
1, поэтому автомат не может
сделать шаг влево, если он уже находится в самом начале слова
w
. Аналогично, по определению конфигурации
i 6 |w|
+ 1, поэтому
если автомат перемещает головку правее последнего символа слова
w
, то он останавливается, так как ни одна команда не может быть
выполнена.
Оп ределен ие 64.
п о з н а ё т словоw, если (
qf∈ F
. Язык, р а с п о з н а в а е м ы й автоматомM, — это множе-
Двусторонний ДКАM= (Q,Σ
q0, w,1)`
∗
(
qf, w, |w|
M
+ 1) для некоторого
, δ, q0, F
) р а с -
ство всех слов, распознаваемых автоматом M .
Если автомат находится в конфигурации (
есть команда
q, a → p, −
1, гдеw(1) =a, то будем говорить, что авто-
q, w,
1) и в программе
мат с х о д и т с л е в о г о к р а я л е н т ы . Аналогично, если автомат
находится в конфигурации (
q, a → p,
+1, гдеw(
|w|
) =a, то будем говорить, что автомат сх о -
q, w, |w|
) и в программе есть команда
д и т с п р а в о г о к р а я л е н т ы . Тогда определение распознавания
слова можно переформулировать следующим образом: автомат
M
распознаёт словоw, если при работе наwон сходит с правого края
ленты и при этом попадает в заключительное состояние.
Пр име р 46.
M = ({ q0, q1, q2, q3}, {a, b }, δ, q0, {q3}) с программой
Рассмотрим следующий двусторонний конечный автомат
q0, a → q0, +1 q2, a → q2, +1
q0, b → q1, 0 q2, b → q3, +1
q1, a → q1, −1 q3, a → q3, +1
q1, b → q2, −1 q3, b → q3, 0

§ 2.6. Двусторонние конечные автоматы 119
Рассмотрим несколько примеров его работы.
Пусть сначала w1= aabaa. Тогда
(q0, aabaa, 1) ` (q0, aabaa, 2) ` (q0, aabaa, 3) `
` (q1, aabaa, 3) ` (q2, aabaa, 2) ` (q2, aabaa, 3) `
` (q3, aabaa, 4) ` (q3, aabaa, 5) ` (q3, aabaa, 6).
Так как автомат прочитал всё слово
w1∈ L(M ).
Теперь рассмотрим слово w2= aaa:
(q0, aaa, 1) ` (q0, aaa, 2) ` (q0, aaa, 3) ` (q0, aaa, 4).
В результате автомат сходит с правого края ленты. Так как
w2/∈ L(M ).
Пусть w3= baa. Автомат делает один шаг
(q0, baa, 1) ` (q1, baa, 1),
после чего сходит с левого края ленты, поэтому w3/∈ L(M ).
Наконец, рассмотрим слово w4= ababa:
(q0, ababa, 1) ` (q0, ababa, 2) ` (q1, ababa, 2) `
` (q2, ababa, 1) ` (q2, ababa, 2) ` (q3, ababa, 3) `
` (q3, ababa, 4) ` (q3, ababa, 4) ` (q3, ababa, 4) ` . . .
После этого конфигурация (
зацикливается и отвергает слово w4, то есть w4/∈ L(M ).
Нетрудно видеть, что автоматMраспознаёт язык, задаваемый регулярным выражением
не может сделать ни одного шага и отвергает его. Если слово начинается
наb, то автомат выполняет команды
зультате чего сходит с левого края ленты. Следовательно, входное слово
должно начинаться на положительное число символовa. Далее должен
встретиться символb, так как в противном случае автомат останется в
незаключительном состоянии
выполнит команды
q0, b → q1,0;q1, b → q2, −1;q2, a → q2,
q3, ababa,
aa∗ba∗. Действительно, если слово пусто, то автомат
q0. Дойдя до первого символаb, автомат
w1и оказался в состоянии
4) будет повторяться, поэтому автомат
q0, b → q1,
0 и
q1, b → q2, −
+1;
q2, b → q3,
q0/∈ F
1, в ре-
q2, то
, то
+1.

120 Глава 2. Конечные автоматы и регулярные выражения
При этом он окажется в состоянии
заb. Если далее встречаются только символыa, то автомат дочитает их
до конца, оставаясь в состоянии
то автомат выполняет команду
доказательство оставляем в качестве упражнения.
q3и будет обозревать символ, следующий
q3. Если же далее встречается символb,
q3, b → q3,
0 и зацикливается. Формальное
Мы видим, что в случае двусторонних автоматов появляются
дополнительные случаи, когда автомат отвергает слово: он может
либо сойти с левого края ленты, либо зациклиться.
Обычные ДКА (будем называть их односторонними) являются
частным случаем 2ДКА, поэтому любой регулярный язык распознаётся и двусторонним автоматом. Мы докажем, что верно и обратное:
любой двусторонний ДКА распознаёт регулярный язык.
С каждым словом
w ∈
Σ∗мы свяжем некоторое отображение
τw,
описывающее работу автомата на правом краю слова w.
Оп ределен ие 65.
ДКА,w— произвольное слово в алфавите Σ. Пусть
словаwопределяется отображение
Пусть
M
= (Q,Σ
, δ, q0, F
τw: Q → Q ∪ {r }
) — двусторонний
r /∈ Q
. Для
, с в я з а н н о е
с о с л о в о м w:
1) τw(q) = p, если (q, w, |w|) `
2) τ
(q) =r, если не существует состоянияpтакого, что
w
(q, w, |w|) `
∗
(p, w, |w| + 1).
M
Неформальная интерпретация функции
∗
(p, w, |w| + 1);
M
τwтакова. Предположим,
что на ленте написано словоwи автоматMобозревает его последний
символ. Тогда
τw(q) =pозначает, что автомат после нескольких
шагов сдвинет головку в следующую заwячейку и при первом
посещении этой ячейки он окажется в состоянииp. При этом перед
первым сдвигом в правую ячейку он может проделать сколь угодно
много шагов внутри словаw. Отображение
τwучитывает только
первое посещение правой ячейки. Равенствоτ(q) =rозначает, что
автомат никогда не посетит ячейку, расположенную справа отw. Это
возможно в двух случаях: либо автомат сойдёт с левого края ленты,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
