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

§ 2.1. Детерминированные конечные автоматы 61
О
ε
Р
Р
Р РО
О
Р
(а) Конечный автомат.
1/2
ε
1/2
1/2
Р РО
1
(б) Упрощённая цепь Маркова.
О
О ОО
Р
О
2
Р
О,Р
1/2
О ОО
1/2
1/2
1/2
О
1
О,Р
1/2
1
1
2
1
Рис. 5. Конечный автомат и цепь Маркова.
состояниеεв состояние 1, а если РОР встречается раньше — то в состояние
2. В автомате не отмечены заключительные состояния, поскольку он служит
не для распознавания языка, а только для определения победителя. Если мы
объявим состояниеεначальным, а состояние 1 (или 2) — заключительным,
то автомат будет распознавать те и только те последовательности, которые
являются выигрышными для первого (соответственно второго) игрока.
Фактически построенный автомат является цепью Маркова с семью
состояниями, в которой вероятности всех переходов равны1/2
выигрыша первого игрока — это вероятность перехода цепи Маркова из
состоянияεв состояние 1. Аналогично, вероятность выигрыша второго
игрока — это вероятность перехода цепи Маркова в состояние 2. Эти вероятности можно вычислить, используя общие теоремы о цепях Маркова,
однако в конкретном случае можно поступить проще. Прежде всего заметим, что если автомат пришёл в состояние Р, то рано или поздно он с
. Вероятность

62 Глава 2. Конечные автоматы и регулярные выражения
вероятностью 1 перейдёт в состояние РО. Поэтому цепь Маркова можно
упростить (рис. 5б). Обозначим черезπцикл (ОО, Р, РО, ОО), а через
циклπ, повторённыйkраз. Вероятность того, что, начав в состоянии ОО,
автомат пройдёт циклπ, равна1/2 ·1·1/2
=1/4
. Из рисунка видно, что путь
из ε в 1 может иметь один из трёх видов:
πk—
• π
• π
• π
= ε → О → ОО → πk→ 1;
1,k
= ε → О → Р → РО → ОО → πk→ 1;
2,k
= ε → Р → РО → ОО → πk→ 1.
3,k
Вероятности этих путей равны
P (π
P (π
P (π
1,k
2,k
3,k
) =
) =
) =
·
· 1 ·
1
2
k
1
1
·
4
2
1
1
·
2
4
k
1
·
4
1
1
·
2
2
1
1
·
2
2
1
· 1 ·
2
1
=
8
k
·
1
·
=
2
k
1
·
1
2
;
4
1
=
16
1
1
·
8
4
k
1
·
;
4
k
.
Суммируя по всемk, получаем, что вероятность выигрыша первого игрока
равна
P1=
1
+
8
16
Итак, первый игрок побеждает с вероятностью
∞
1
X
1
+
8
k=0
k
1
4
5
·
1 −1/4
1
=
16
5
=
·
16
P1=5/12
4
5
=
12
.
3
, а второй — с
вероятностью P2= 1 −P1=7/12.
Разные конечные автоматы могут отличаться только названиями
состояний.
Оп ределен ие 48.
M2= (
Q2,Σ, δ2, q
Конечные автоматы
2
, F2) называются и з о м о р ф н ы м и , если суще-
0
ствует взаимно-однозначное отображение
M1= (
Q1,Σ, δ1, q
f : Q1→ Q2(и з о м о р -
1
, F1) и
0
ф и з м) такое, что:
1
1) f(q
) = q
0
2
;
0
2) q ∈ F1тогда и только тогда, когда f(q) ∈ F2;

§ 2.1. Детерминированные конечные автоматы 63
3) q = δ1(p, a) тогда и только тогда, когда f (q) = δ2(f(p), a).
Легко видеть, что изоморфные автоматы всегда эквивалентны, но
обратное неверно.
Важным свойством конечных автоматов является о т с у т с т в и е
п р е д в о с х и щ е н и я. Неформально это означает, что текущее состояние автомата полностью определяется прочитанным до настоящего
момента словом, то есть автомат не может заранее среагировать на
ещё не поступившие символы (предвосхитить их). Сформулируем
точно это свойство и докажем его.
Ле мма 26.
слов
u, v ∈
(q, u) `
n
M
Пусть
Σ∗и любых состояний
M
= (Q,Σ
, δ, q0, F
q, p ∈ Q
) — ДКА. Тогда для любых
выполняется следующее:
(p, ε) тогда и только тогда, когда (q, uv) `
n
M
(p, v).
Доказательство. Индукция по n.
Б а з и с и н д у к ц и и . Еслиn= 0, то оба вычисления существуют
тогда и только тогда, когда q = p и u = ε.
Ш а г и н д у к ц и и . Пусть (
состояние
q, a → r ∈ δ
(
r, u0v)`
(
q, uv)`
n
M
n+1
M
r ∈ Q
, символ
и (
r, u0)
(
p, v
), поэтому, применяя правило
(
p, v
). Обратно, если (
a ∈
n
`
(
p, ε
M
состояниеr, символaи слово
(
r, u0v)`n(
p, v
). По индукционному предположению (
q, u)`
Σ и слово
). По индукционному предположению
u0такие, чтоu=
Применяя команду q, a → r, получаем (q, u) `
n+1
M
u0∈
q, uv)`
(
p, ε
). Тогда существует
Σ∗такие, чтоu=
q, a → r
n+1
(
p, v
M
), то существует
au0,
q, a → r ∈ δ
r, u0)
n+1
(p, ε).
au0,
, получаем
n
`
(
p, ε
M
Теперь мы определим важную операцию на автоматах — операцию
произведения. Эта операция строит по двум автоматам
M1и
M
новый автоматM, который на любом входе моделирует параллельно
вычисления автоматов M1и M2.
Оп ределен ие 49.
(
Q2,Σ, δ2, q
2
, F2) — два детерминированных конечных автомата.
0
Пусть
П р о и з в е д е н и е м автоматов
M1= (
M1и
M2называется автоматM=
Q1,Σ, δ1, q
1
, F1) и
0
M2=
и
).
2

64 Глава 2. Конечные автоматы и регулярные выражения
1
(
Q1× Q2,Σ, δ,(q
2
, q
)
, F
0
), гдеδ((
0
p, q), a
) = (
δ1(
p, a), δ2(
q, a
)),
F ⊆
Q1× Q2.
Заметим, что в определении не сказано, чему равно множествоF.
Это значит, что произведение двух автоматов определено однозначно
с точностью до множества заключительных состояний.
В следующей лемме сформулировано основное свойство произведения автоматов.
Ле мма 27.
два ДКА,M= (
любых слов
Пусть
M1= (
Q1×Q2,Σ, δ,(q
w, w0∈
Σ∗и для любых состояний
Q1,Σ, δ1, q
1
2
, q
)
0
0
, F
выполняется следующее свойство: ((
n
только тогда, когда (p, w) `
(p0, w0) и (q, w) `
M
1
1
, F1) и
0
M2= (
Q2,Σ, δ2, q
) — их произведение. Тогда для
p, p0∈ Q1,
p, q), w)`
n
M
n
M
((
p0, q0)
(q0, w0).
2
2
, F2) —
0
q, q0∈ Q
, w0) тогда и
Доказательство. Непосредственная индукция по n.
Определяя различными способами заключительные состояния
произведения, можно получать автоматы, распознающие объединение,
пересечение и разность языков, задаваемых исходными автоматами.
Теорема 28.
Пусть
M1= (
Q1,Σ, δ1, q
два ДКА, M = (Q1× Q2, Σ, δ, (q
1
, F1) и
1
0
0
2
, q
), F ) — их произведение.
0
M2= (
Q2,Σ, δ2, q
2
, F2) —
0
2
1)
ЕслиF={(
p, q
) :
p ∈ F1или q ∈ F2}
, тоL(M) =L(
M1)
L(M2).
2) Если F = { (p, q) : p ∈ F1и q ∈ F2}, то L(M ) = L(M1) ∩L(M2).
3) Если F = { (p, q) : p ∈ F1и q /∈ F2}, то L(M ) = L(M1) \L(M2).
Доказательство. Докажем первое утверждение. По определению
w ∈ L(M
для некоторого (
что (
w
q
1
q
, w)`
0
принадлежит языкуL(
1
∈ F1или
f
) тогда и только тогда, когда ((
1
q
, q
f
∗
1
(
q
M
q
f
, ε
f
1
2
∈ F2. А это условие эквивалентно условию (
2
f
), (
)
2
q
, q
)
0
0
∈ F
. По лемме 27 это эквивалентно тому,
2
q
0
∗
M
2
(
q
, ε
). С другой стороны, слово
f
2
, w)`
M1)
∪ L(M2) тогда и только тогда, когда
, w)`
∗
M
1
2
((
q
, q
)
, ε
f
f
1
2
q
, q
)
∈ F
f
f
1
по выбору F .
Доказательства второго и третьего утверждений аналогичны.
∪
)

§ 2.1. Детерминированные конечные автоматы 65
a b
нач, закл q0q1q
q1q0q
(а) Автоматы M1и M2.
0
1
нач p0p0p
закл p2p2p
a b
p1p0p
1
2
2
a b
нач (q0, p0) (q1, p0) (q0, p1)
(q0, p1) (q1, p0) (q0, p2)
(q0, p2) (q1, p2) (q0, p2)
(q1, p0) (q0, p0) (q1, p1)
(q1, p1) (q0, p0) (q1, p2)
(q1, p2) (q0, p2) (q1, p2)
(б) Произведение автоматов
M1и
M2.
Рис. 6. Произведение конечных автоматов.
Сл едствие 29.
Класс автоматных языков замкнут относительно
объединения, пересечения, разности и дополнения.
Доказательство. Первые три свойства следуют из предыдущей
теоремы. Замкнутость относительно дополнения получается из ра-
венства L = Σ∗\ L и автоматности языка Σ∗.
Пр име р 25.
w содержит подслово bb }
и
M2, распознающие языки
зано их произведение. Чтобы этот автомат распознавал язык
в качестве множества заключительных состояний нужно выбратьF=
{(q0, p0),(
{(q0, p2) }, а для языка L1\ L2нужно выбрать F = {(q0, p0), (q0, p1) }.
Пусть
q0, p1),(
L1=
q0, p2),(
{w ∈ {a, b }∗:
. На рис. 6а показаны конечные автоматы
L1и
q1, p2)}. Для языка
|w|aчётно },L2=
L2соответственно. На рис. 6б пока-
L1∩ L2нужно выбратьF=
{w ∈ {a, b }∗:
L1∪ L2,
M
1

66 Глава 2. Конечные автоматы и регулярные выражения
Задачи
48. Докажите лемму 22.
49.
Постройте детерминированные конечные автоматы, распознающие следую-
щие языки, и докажите их правильность:
(а) L1= { w ∈ { b, a }∗: w начинается на ba и не содержит подслова aba };
(б) L2= { w ∈ { a, b }∗: |w|aчётно и w заканчивается на baa };
(в) L3= { w ∈ { a, b }∗: w не содержит подслова babb
и содержит подслово baa };
(г) L4= { w ∈ { a, b }∗: между любыми двумя символами a в слове w
содержится чётное число символов b (быть может, ни одного) };
(д) L5= { w ∈ { a, b }∗: w начинается и заканчивается
на один и тот же символ };
(е) L6= { w ∈ { a, b }∗: w содержит подпоследовательность baab };
(ж) L7= { w ∈ { a, b }∗: w не содержит подпоследовательности abaa };
(з) L8= { w ∈ { a, b }∗: w содержит подслова aab и baa };
(и) L9= { w ∈ { a, b }∗: на третьем месте с конца в слове w стоит символ a };
(к) L10= { w ∈ { a, b, c }∗: |w| > 1 и последний символ слова
w не встречается в w на других позициях };
(л) L11= { w ∈ { 0, 1 }∗: w — двоичная запись числа кратного трём };
(м) L12= { w ∈ { a, b, c }∗: между любыми двумя
подсловами ab стоят ровно две буквы c };
(н) L13= { w ∈ { a, b }∗: среди любых пяти соседних букв слова w
есть по меньшей мере два символа b };
i
i
1
(о) L14= { a
50.
Постройте детерминированные конечные автоматы, распознающие следую-
ba
2
щие языки:
(а) L1— имена переменных на языке C;
(б) L2— объявления переменных типа int на языке C (без инициализации);
(в) L3— объявления переменных типа
зацией (в качестве выражений могут использоваться только переменные и
целочисленные константы);
(г) L4— ключевые слова if, in, is, select, set, sub, while, where.
51.
Элементарной конъюнкцией называется конъюнкция литералов, то есть пере-
менных и их отрицаний. Дизъюнктивной нормальной формой (ДНФ) называется
b . . . ba
i
n
: среди i1, . . . , inимеется
чётное количество чётных чисел }.
int
на языке C с возможной инициали-

§ 2.2. Недетерминированные конечные автоматы 67
дизъюнкция элементарных конъюнкций. При записи ДНФ будем ставить скобки
только вокруг элементарных конъюнкций, содержащих более одного литерала.
Например, слово (
является. Постройте ДКА, распознающий все ДНФ с переменными
52. Докажите, что следующий язык является автоматным:
L = { an: существуют простые числа-близнецы p и p + 2 большие n }.
53. Докажите лемму 27.
54. Докажите второе и третье утверждения теоремы 28.
55.
С помощью теоремы 28 постройте конечные автоматы для языков
L3из задачи 49.
56.
Сколько существует различных конечных автоматов сnсостояниями и
входными символами?
57.
Сколько существует неизоморфных конечных автоматов с входным алфави-
том { a, b } и с одним или двумя состояниями?
58.
Сколько существует различных языков в алфавите
ются некоторым конечным автоматом с одним или двумя состояниями?
59.
Докажите, что для любого натурального числа
распознаваемый некоторым ДКА сnзаключительными состояниями, но не
распознаваемый никаким ДКА с меньшим числом заключительных состояний.
x∧¬y)∨z∨(x∧y ∧¬t
) является ДНФ, а слово ((
{ a, b }
n >
0 существует язык,
x∧y)∧z)∨(z∧t
x1, x2, . . . , xn.
, которые распозна-
L1,
) не
L2и
m
§ 2.2. Недетерминированные конечные
автоматы
Аналогично недетерминированным машинам Тьюринга можно
ввести понятие и недетерминированного конечного автомата, который
в одной конфигурации может применить несколько разных команд.
Оп ределен ие 50.
а в т о м а т (НКА) — это пятёрка M = (Q, Σ, δ, q0, F ), где
1) Σ — конечный входной алфавит;
2) Q — конечное множество состояний;
3) δ : Q ×(Σ∪ {ε })→P(Q
ма);
Н е д е т е р м и н и р о в а н н ы й ко н е ч н ы й
) — функция переходов (или програм-

68 Глава 2. Конечные автоматы и регулярные выражения
4) q0∈ Q — начальное состояние;
5) F ⊆ Q — множество заключительных состояний.
Недетерминированные автоматы отличаются от детерминированных тем, что для каждого состоянияqи входного символаaможет
существовать несколько состояний, в которые можно перейти изqпо
символуa. Также недетерминированный автомат может перейти в
следующее состояние, не читая входного символа.
Формально ДКА не являются НКА, так как функция переходов ДКА принимает в качестве значений состояния, а не множества
состояний. Но если по ДКА
M0= (Q,Σ
то (
q, w)`
, δ0, q0, F
n
(
M
), в котором
q0, w0) тогда и только тогда, когда (
M
δ0(
= (Q,Σ
q, a
) ={δ(
, δ, q0, F
q, a)}
) построить НКА
для всехqиa,
q, w)`
n
M
(
0
q0, w0).
Поэтому детерминированные автоматы можно считать частным случаем недетерминированных. Если в НКА
выполняется|δ(
q, a)|
= 1 и для всех
q ∈ Q
M
для всех
q ∈ Q,a ∈
выполняетсяδ(
q, ε
Σ
) =∅,
то мы будем называть автомат M детерминированным.
Недетерминированные конечные автоматы можно задавать теми
же способами, что и детерминированные. Если автомат задаётся
таблицей, то в ней появляется дополнительный столбец, помеченныйε.
При построении таблицы мы будем оставлять пустую клетку, если
δ(q, a
) =∅. Еслиδ(
все состояния из множестваδ(
q, a)6=∅
, то мы будем записывать через запятую
q, a
). Для краткости будем опускать
фигурные скобки. При записи автомата в виде списка правил будем
писать
q, ε → p
, если
p ∈ δ(q, ε
). Команды вида
q, ε → p
будем
называть п у с т ы м и к о м а н д а м и илиε- к о м а н д а м и . Как и
для ДКА, будем отождествлять функциюδс множеством команд,
так что вместо p ∈ δ(q, a) будем писать q, a → p ∈ δ.
Как и в случае ДКА, работа НКА определяется в терминах кон-
фигураций.

§ 2.2. Недетерминированные конечные автоматы 69
Оп ределен ие 51.
нечного автоматаM= (Q,Σ
К о н ф и г у р а ц и я недетерминированного ко-
, δ, q0, F
) — это пара (
q, w
), где
q ∈ Q
w ∈ Σ∗.
Отношение п е р е х о д а з а о д и н ш а г определяется следую-
щим образом: (
q1, w1)
`M(
q2, w2), если для некоторого
a ∈Σ∪ {ε }
выполняется w1= aw2и q2∈ δ(q1, a).
Как и ДКА, НКА работают без предвосхищения. Определение
начальной и заключительной конфигураций и вычисления остаются
теми же, что и для ДКА. Поскольку в НКА допустимыε-команды,
то некоторые вычисления могут быть бесконечными.
В отличие от случая ДКА, отношения
`M,
n
M
∗
,
`
M
`
+
и
`
мо-
M
гут не быть функциями. Для конфигурацииcмогут существовать
различные конфигурации
c1, . . . , ckтакие, что
c `Mc1, . . . , c `Mck.
Может оказаться, что для конфигурацииcвообще не существует
конфигурации
c1такой, что
c ` c1, так как множествоδ(
q, a
) может
быть пустым. Заметим также, что в случае недетерминированных
автоматов допустим случайa=ε, поэтому может оказаться, что
w1= w2.
Подчеркнём, что команда вида
фигурации с состояниемq, а не только в конфигурациях вида (
q, ε → p
применима в любой кон-
q, ε
Другими словами, такая команда позволяет автомату перейти из
состоянияqв состояниеp, не читая входные символы, но она не
говорит, что входное слово закончилось.
,
).
Оп ределен ие 52.
НКАM= (Q,Σ
, δ, q0, F
) р а с п о з н а ё т слово
w ∈ Σ∗, если (q0, w) `∗(q, ε) для некоторого q ∈ F .
Язык, распознаваемый НКАM, — это множество всех слов,
распознаваемых автоматом M .
Таким образом, НКА воспринимает словоw, если существует
хотя бы один способ прочитатьwи попасть в заключительную конфигурацию. НКА отвергает слово, если любая последовательность
конфигураций при работе автомата наwне заканчивается заключи-

70 Глава 2. Конечные автоматы и регулярные выражения
a
нач q0q1, q
q
1
закл q
2
q
3
a b ε
2
q2q
q
q
0
3
q
2
q
0
3
q
1
a
b
q
2
q
1
εa
ε
a
q
3
b
Рис. 7. Недетерминированный конечный автомат из примера 26.
тельной конфигурацией.
Два конечных автомата (детерминированных или недетерминированных) называются э к в и в а л е н т н ы м и, если L(M1) = L(M2).
Пр име р 26.
(Q,Σ
, δ, q0, F
программой
На рис. 7 изображены его таблица и диаграмма.
Рассмотрим работу автомата на слове w1= aba:
Рассмотрим недетерминированный конечный автоматM=
), в которомQ=
q0, a → q
q0, a → q
q1, b → q
q1, ε → q
{q0, q1, q2, q3}
q2, a → q
1
q2, b → q
2
q3, a → q
2
q3, ε → q
3
, Σ =
0
3
2
1
{a, b },F
=
{q2}
, с
(q0, aba) `M(q2, ba) `M(q3, a) `M(q2, ε).
Так как
q2∈ F
, тоMраспознаёт слово
aba
. Заметим, что для
aba
существуют и другие вычисления, некоторые из которых не являются допускающими,
например,
(q0, aba) `M(q1, ba) `M(q2, a) `M(q0, ε).
Но для того чтобы автомат распознавал слово, должно существовать хотя
бы одно допускающее вычисление.
Теперь рассмотрим слово
w2=
aab
. Для него существуют следующие
вычисления:
(q0, aab) `M(q2, ab) `M(q0, b);
(q0, aab) `M(q1, ab) `M(q3, ab) `M(q2, b) `M(q3, ε).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
