Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Формальные языки и грамматики. Учебное пособие для студентов факультета компьютерных наук и информационных технологий.pdf
Скачиваний:
0
Добавлен:
09.08.2026
Размер:
457 Кб
Скачать

Глава 3 Иерархия автоматов

3.1. Конечные автоматы

Определение 41 (Конечный детерминированный автомат). Систему текстовых замен M = (Ω,P) называют конечным детерминированным автоматом

(КДА), если:

1)в алфавите Ω можно выделить два алфавита Q и Σ, называемых соот-

ветственно множеством символов состояний (множеством состояний) и множеством входных сигналов (входным алфавитом), причем Q ∩Σ = ,

Q Σ = Ω;

2)в множестве Q выделяются элемент q0, называемый начальным (стартовым) состоянием, и подмножество F – множество заключительных состояний;

3)любая продукция в P имеет вид

qa → r, q,r Q,a Σ,

(3.1)

и более того, для любой пары (q,a), где q Q и a Σ, в P присутствует точно одна продукция вида (3.1).

Таким образом, для определения КДА достаточно задать пять компонент (Q,Σ,P,q0,F ). По другому КДА можно определить как пятерку M = = (Q,Σ,δ,q0,F ), где Q,Σ,q0,F обозначают те же объекты, что и в определении 41, а элемент δ, называемый функцией переходов, можно представить как отображение вида δ : Q × Σ → Q, что соответствует набору продукций из P.

Отношение выводимости для КДА имеет общий вид отношения выводимости в системах текстовых замен.

Определение 42 (Язык, допускаемый КДА). Язык, определенный (допускаемый, распознаваемый) КДА M = (Q,Σ,P,q0,F ), есть множество слов

L(M) = {w Σ | q0w q, q F }.

Определение 43 (Конечный недетерминированный автомат). Система текстовых замен M = (Ω,P) называется конечным недетерминированным автоматом (НКА), если:

32

1)в алфавите Ω можно выделить два алфавита Q и Σ, называемых соот-

ветственно множеством символов состояний (множеством состояний) и множеством входных сигналов (входным алфавитом), причем Q ∩Σ = ,

Q Σ = Ω;

2)в множестве Q выделяется подмножество S, называемое множеством начальных (стартовых) состояний, и подмножество F – множество заключительных состояний;

3)любая продукция в P имеет вид

qa → r, q,r Q,a Σ.

По аналогии с КДА можно определить НКА как пятерку M = (Q,Σ,P, S,F ) или пятерку M = (Q,Σ,δ,S,F ), в которой Q,Σ,S,F обозначают те же объекты, что и в определении НКА, а функцию переходов δ можно представить как отображение вида δ : Q × Σ → P (Q), что соответствует набору продукций из P.

Отношение выводимости для НКА имеет общий вид отношения выводимости в системах текстовых замен.

Определение 44 (Язык, допускаемый НКА). Язык, определенный (допускаемый, распознаваемый) НКА M = (Q,Σ,P,S,F ), есть множество слов

L(M) = {w Σ | q0w q, q0 S,q F }.

Очевидно, что конечные детерминированные автоматы являются частным случаем недетерминированных конечных автоматов, в которых накладываются ограничения на множество начальных состояний S (в детерминированном автомате должно быть точно одно начальное состояние) и множество продукций P (в множестве P должна присутствовать в точности одна продукция для каждой пары «состояние – входной сигнал» в левой части).

Функцию переходов конечного автомата обычно представляют в виде таблицы переходов.

Определение 45 (Таблица переходов). Для конечного автомата

M = (Q,Σ,P,S,F )

таблица переходов имеет #Q строк и столбцов, соответствующих всевозможным состояниям входным сигналам автомата. В клетке таблицы, соответствующей состоянию q, и входному сигналу a перечисляются такие состояния r, для которых в P присутствует продукция qa → r.

Если в такой таблице каким-то образом выделить начальные и заключительные состояния, то она будет однозначно определять весь автомат. Условимся здесь каждое начальное состояние автомата обозначать стрелкой, а каждое заключительное состояние – звездочкой перед меткой соответствующей строки таблицы.

33

Пример 27. Определим конечный автомат M1 для языка L = {α00β | α,β{0,1} } – множества всевозможных цепочек из нулей и единиц, в которых есть два подряд идущих нуля.

Пусть M1 = ({q0,q1,q f },{0,1},P,q0,{q f }), где P состоит из следующих продукций:

q00 → q1,

q01 → q0, q10 → q f ,

q11 → q0,

q f 0 → q f , q f 1 → q f .

Множество P можно представить в виде таблицы

 

0

1

 

 

 

→ q0

q1

q0

q1

q f

q0

q f

q f

q f

В этом автомате три состояния. Автомат находится в состоянии q0 до тех пор, пока на входе не будет получен символ 0. Если этот символ получен, автомат считает его первым нулем из пары подряд идущих нулей и переходит в состояние q1, где ожидает следующего символа. Если им будет 0, то автомат переходит в заключительное состояние q f , из которого уже не выйдет. Но если им будет 1, то пара нулей не состоялась и автомат возвращается в состояние q0.

Например, цепочка 10110001 допускается этим автоматом, так как получив ее, автомат поведет себя следующим образом:

q010110001 q00110001 q1110001 q010001

q00001 q1001 q f 01 q f 1 q f .

Так как q f – заключительное состояние, то последняя конфигурация в приведенной последовательности является заключительной.

Цепочка 01110 не допускается автоматом, так как получив ее, автомат сможет применить продукции

q001110 q001110 q11110 q0110 q010 q00 q1.

Прочитав всю цепочку, автомат не оказался в заключительном состоянии, а следовательно, цепочка не принадлежит языку, определяемому данным автоматом.

Пример 28. Рассмотрим автомат

M2 = ({q0,q1,q2,q3,q f },{1,2,3},P,{q0},{q f }),

34

в котором множество P определено следующим образом:

q01 → q1,

q02 → q2,

q03 → q3,

q11 → q1,

q11 → q f ,

q12 → q1,

q12 → q2,

q13 → q1,

q13 → q3,

q22 → q2,

q22 → q f ,

q21 → q1,

q21 → q2,

q23 → q2,

q23 → q3,

q31 → q3,

q31 → q f ,

q32 → q3,

q32 → q2,

q33 → q1,

q33 → q3.

Множество продукций автомата можно переписать в виде таблицы переходов:

 

1

2

3

 

 

 

 

→ q0

q1

q2

q3

q1

q1,q f

q1,q2

q1,q3

q2

q2,q1

q2,q f

q2,q3

q3

q3,q1

q3,q2

q3,q f

q f

Этот автомат допускает множество всевозможных цепочек, в которых последний символ присутствует в цепочке, как минимум, еще раз.

Так, например, цепочка 1232 допускается автоматом. Здесь среди разных вариантов вывода можно выделить последовательность применения продукций автомата

q01232 q1232 q232 q22 q f ,

допускающую входную цепочку.

Определение 46 (Диаграмма переходов). Диаграмма переходов для конечного автомата M = (Q,Σ,P,S,F ) есть ориентированный граф, определяемый следующим образом.

1.Всякому состоянию из Q соответствует некоторая вершина.

2.Пусть qa → p – продукция автомата для некоторых состояний q, p Q и входного символа a Σ. Тогда диаграмма переходов должна содержать дугу из вершины q в вершину p, помеченную a. Если существует несколько входных символов, переводящих автомат из состояния q в состояние p, то диаграмма переходов может содержать одну дугу, отмеченную списком этих символов.

3.Диаграмма содержит стрелку, направленную в каждое начальное состояние, отмеченную как «Начало».

4.Вершины, не принадлежащие F , изображаются одинарным кружком. Вершины, соответствующие заключительным состояниям, помечаются двойным кружком.

35

Диаграмма переходов для автомата M1 из примера 27 представлена на рис. 3.1.

 

1

 

 

0,1

 

 

 

 

 

 

1

0

q f

Начало

q0

q1

 

 

 

0

 

 

Рис. 3.1. Диаграмма переходов автомата M1

Определение 47 (Полностью определенный конечный автомат). Конечный автомат M = (Q,Σ,P,S,F ) называют полностью определенным, если для каждого q Q и для каждого a Σ найдется r Q такое, что qa → r P.

Любой конечный детерминированный автомат по определению является полностью определенным.

Автомат M2 из примера 28 не является полностью определенным (нет реакции в заключительном состоянии).

Теорема 13 (Признаки непустоты и бесконечности автоматного языка).

Язык, допускаемый конечным автоматом M с n состояниями:

1)не пуст тогда и только тогда, когда M допускает цепочку длины меньшей чем n;

2)бесконечный тогда и только тогда, когда он принимает цепочку длины l, n 6 l < 2n.

Доказательство. Пусть M = (Q,Σ,P,q0,F ) – конечный автомат, #Q = n. Достаточность условия 1 очевидна. Действительно, если M допускает

цепочку длины меньшей, чем n, то язык L(M) уже не пуст. Необходимость условия 1 следует из следующих рассуждений от про-

тивного. Предположим, что L(M) не пуст, но ни одной цепочки длины меньше n в этом языке не существует.

Рассмотрим цепочку w L(M), предположим, w – одна из самых коротких таких цепочек, w = a1a2a3 ...am, где m > n и каждый ai – входной символ.

Пусть p0 = q0, p1, p2,..., pm – последовательность состояний, через которую переходит автомат при допуске входной цепочки w. Иными словами,

p0w p1a2a3 ...am p2a3 ...am pm,

причем pm F .

Рассмотрим первые n + 1 состояний из последовательности pi для i = = 0,1,...,n. Поскольку автомат M имеет n различных состояний, то найдутся два целых числа i и j (0 6 i < j 6 n), при которых pi = p j . Разобьем цепочку w на xyz следующим образом:

36

1)x = a1a2 ...ai;

2)y = ai+1ai+2 ...a j ;

3)z = a j+1a j+2 ...am.

Цепочка x приводит автомат в состояние pi, y – из pi обратно в pi (так как pi = p j ), а z – остаток цепочки w. Другими словами,

p0xyz piyz + p j z pm,

причем цепочка x может быть пустой при i = 0, а z – при j = n = m. Однако цепочка y не может быть пустой, так как i строго меньше j.

Если на вход автомата подать цепочку xz, автомат переходит из начального состояния q0 в pi, прочитав x. Поскольку pi = p j , то z переводит M из состояния pi в допускающее состояние. Значит, xz L(M).

В то же время |xz| < |xyz| = |w|, но это противоречит предположению, что w – одна из самых коротких цепочек, допускаемых M.

Докажем теперь утверждение 2.

Достаточность условия 2 следует из нижеследующих рассуждений. Пусть существует w L(M), причем n 6 |w| < 2n. Как и в предыдущих

рассуждениях, можем утверждать, что существуют q Q и q f F , что w = = xyz, где y 6= ε, и q0xyz qyz + qz q f .

Но тогда цепочки вида xyiz L(M) при любом i.

Действительно, получая x, автомат переходит из q0 в q, затем, читая yi, циклически проходит через q и, наконец, по z переходит в заключительное состояние. Таким образом, для любого i цепочка xyiz также распознается автоматом M, а значит, принадлежит языку L(M).

Очевидно, множество L(M) бесконечно.

Необходимость условия 2 доказывается методом от противного. Пусть M принимает бесконечное множество цепочек, причем ни одна из них не имеет длину l, n 6 l < 2n.

Если бы существовали только цепочки длиной l < n, то язык L(M) был бы конечен, но это не так.

Рассмотрим цепочки языка длины l > 2n. Пусть w – одна из самых коротких таких цепочек. Очевидно, существуют q Q и q f F такие, что мы можем написать w= xyz, где 0 < |y| 6 n, и q0xyz qyz + qz q f . Но тогда xz L(M), поскольку q0xz qz q f . Поскольку |w| > 2n, то |xz| > n, так как в языке L(M) нет слов длины n 6 l < 2n, |xz| > 2n. В то же время |xz| < |xyz| = |w|, но это противоречит предположению, что w – одна из самых коротких таких цепочек, допускаемых M.

Что и требовалось доказать.

Теорема 14 (Об автоматности языков типа 3). Для языка L следующие три условия эквивалентны:

1) L допускаем конечным детерминированным автоматом;

37

2)L допускаем конечным недетерминированным автоматом;

3)L – язык типа 3.

Доказательство. Любой КДА (Q,Σ,P,q0,F ) можно представить в виде НКА (Q,Σ,P,{q0},F ). Таким образом, следствие 12 очевидно.

Рассмотрим предположение 23, т. е. покажем, что если язык допускается конечным автоматом, то это леволинейный язык.

Пусть M = (Q,Σ,P,S,F ) – НКА. Тогда язык, определенный этим автоматом, можно представить как объединение языков:

L(M) =

{w Σ | q0w q}.

(3.2)

 

q0 S,q F

 

Каждый язык в объединении в (3.2) распознается аналитической грамматикой типа 3, множество правил которой состоит из продукций исходного НКА и дополнительной продукции ε → q0 и заключительный символ которой q. Так как по теореме 5 объединение языков типа 3 есть язык типа 3, делаем заключение, что язык L(M) – язык типа 3. Другими словами, следствие 23 доказано.

Рассмотрим предположение 32, т. е. покажем, что любой леволинейный язык может быть определен конечным автоматом.

Пусть задан язык L = L(G), где G = (N,Σ,P,S) – аналитическая грамматика типа 3.

Сначала покажем, что для грамматики G можно построить эквивалентную грамматику G= (N,Σ,P,S), каждое правило в которой представлено в одной из следующих форм:

Ba → A,

a Σ, A,B N,

(3.3)

ε → A,

A N.

(3.4)

Кроме правил в форме (3.3) и (3.4), в G могут содержаться также правила вида

Ba1

...ak → A,

k > 2, ai Σ, A,B N,

(3.5)

a1

...ak → A,

k > 1, ai Σ, A,B N,

(3.6)

 

B → A,

A,B N.

(3.7)

Таким образом, нам необходимо избавиться в G от правил (3.5)–(3.7). Для каждого правила вида (3.5) введем новые нетерминалы

X1,X2,...,Xk−1

и заменим (3.5) на набор продукций

Ba1 → X1, X1a2 → X2, ... Xk−1ak → A.

38

Для каждого правила вида (3.6) введем новые нетерминалы

X0,X1,X2,...,Xk−1

и заменим (3.6) на набор продукций

ε → X0, X0a1 → X1, X1a2 → X2, ..., Xk−1ak → A.

Очевидно, что язык, сгенерированный исходной грамматикой, не претерпит изменений в результате таких модификаций множества правил. Эту процедуру следует выполнять, пока в грамматике остаются правила вида (3.5) или (3.6). Пусть в результате получена грамматика G′′, содержащая только правила вида (3.3), (3.4) и (3.7) и для которой выполняется L(G′′) = L(G).

Для того чтобы избавиться от правил вида (3.7), сделаем следующее. Для каждого нетерминала C N определим множество U (C) = {X N | | C X }, т. е. множество нетерминалов, которые можно получить из C применением любого количества правил вида (3.7). После этого удалим все продукции вида (3.7) из грамматики. Добавим в множество правил для каждого правила вида α → A (правила в форме (3.3) или (3.4)) правила α → X для всех X U (A). Полученная грамматика G= (N,Σ,P,S) будет определять тот же язык, что и исходная грамматика G.

Заменим построенную грамматику недетерминированным конечным автоматом M = (N,Σ,P′′,N′′,{S}), где N′′ – множество нетерминалов из N,

для которых в Pесть правило вида (3.4), P′′ – все продукции из Pвида

(3.3).

 

Покажем, что

 

L(M) = L(G).

(3.8)

Действительно, пусть w = a1a2 ...ar L(G), где ai Σ, тогда существует вывод

a1a2 ...ar X0a1a2 ...ar X1a2 ...ar Xr−1ar S

(3.9)

по правилам грамматики G, а также по определению автомата M

 

X0a1a2 ...ar X1a2 ...ar Xr−1ar S.

(3.10)

В то же время вывод (3.9) может быть получен из (3.10). Следовательно, (3.8) имеет место и верно следствие 32.

Рассмотрим предположение 21.

Пусть имеется НКА M = (Q,Σ,P,S,F ). Построим КДА M= (Q,Σ,P, q0,F ), допускающий тот же язык.

Возьмем в качестве множества Qсимволов состояний автомата Mмножество всех подмножеств множества Q, т. е. Q= P (Q).

Определим q0 – начальное состояние автомата M– как множество всех стартовых состояний исходного автомата, т. е. q0 = S.

39

Множество F заключительных состояний нового автомата определим состоящим из подмножеств множества Q, содержащих хотя бы одно заключительное состояние, т. е.

F = {q Q| q ∩ F 6= }.

Для каждой пары (q,a), q Q, a Σ, добавим в множество продук-

ций Pправило

 

qa → r, где r = {p Q | sa → p P,s q}.

(3.11)

Теперь можно показать, что L(M) = L(M). Пусть w = a1a2 ...ar L(M),

где ai Σ. Тогда существует вывод

 

s0a1a2 ...ar s1a2 ...ar sr−1ar s f

(3.12)

согласно продукциям автомата M. По определению автомата M

 

q0a1a2 ...ar q1a2 ...ar qr−1ar q f ,

(3.13)

где si qi. q f содержит s f , а значит, является заключительным состоянием. В то же время вывод (3.12) может быть получен из (3.13). Следовательно, L(M) = L(M), а значит, верно следствие 21.

Теорема доказана.

Следствие 14.1. Класс языков L3 замкнут относительно дополнения и пересечения.

Доказательство. Пусть L – язык типа 3. Тогда существует конечный детерминированный автомат M = (Q,Σ,P,q0,F ) такой, что L = L(M).

Построим автомат

M= (Q,Σ,P,q0,F ),

в котором

F = Q − F.

Очевидно, что автомат Mбудет допускать только те цепочки, которые не допускаются автоматом M, и наоборот, т. е.

L(M) = L.

Так как пересечение можно расписать через операции дополнения и объединения

L1 ∩ L2 = (( L1) ( L2)),

по теореме 5 полученный язык есть язык типа 3.

40

Следствие 14.2. Любой язык типа 3 может быть порожден грамматикой

G = (N,Σ,P,S),

где каждое правило из P имеет одну из двух следующих форм:

A

→ Ba,

a Σ, A,B N,

(3.14)

A

→ ε,

A N.

 

Доказательство. Пусть L – язык типа 3. Тогда найдется G – аналитическая грамматика типа 3, его допускающая. По алгоритму, приведенному в доказательстве теоремы 14, по грамматике G найдем грамматику G, состоящую только из правил вида (3.3)–(3.4). В грамматике, двойственной к G, правила будут иметь вид (3.14).

Пример 29. Рассмотрим недетерминированный конечный автомат, заданный следующей таблицей переходов (автомат из примера 28):

 

1

2

3

 

 

 

 

→ q0

q1

q2

q3

q1

q1,q f

q1,q2

q1,q3

q2

q2,q1

q2,q f

q2,q3

q3

q3,q1

q3,q2

q3,q f

q f

Найдем КДА, определяющий тот же язык, что и данный автомат.

В качестве состояний нового автомата возьмем множество всех подмножеств недетерминированного автомата. Для простоты состояния нового автомата переименуем буквами (или парами букв) латинского алфавита, как показано, в новой таблице переходов.

Определим новое множество продукций так, как это предложено в (3.11). Например, для определения правой части продукции H1 → x вычисляем

x = {r | q1 → r P,q H}.

Так как H = {q0,q2}, то множество x составят состояния из правых частей всех продукций, имеющих в левой части q01 или q21. Таких продукций три:

q01 → q1, q21 → q1, q21 → q2.

41

 

 

1

2

3

 

 

 

1

2

3

 

 

 

 

 

 

 

A

 

A A A

 

Q

{q0,q1,q2}

X X W

B

{q0}

C

D E

 

R

{q0,q1,q3}

Y W Y

C

{q1}

M

K L

 

S

{q0,q1,q f }

M K L

D

{q2}

K O N

 

T

{q0,q2,q3}

W Z Z

E

{q3}

L N P

 

U

{q0,q2,q f }

K O N

F

{q f }

A

A A

 

V

{q0,q3,q f }

L N P

G

{q0,q1}

M

K L

 

W

{q1,q2,q3}

EE EE EE

H

{q0,q2}

K O N

 

X

{q1,q2,q f }

X X W

I

{q0,q3}

L N P

 

Y

{q1,q3,q f }

Y W Y

J

{q0,q f }

C D E

 

Z

{q2,q3,q f }

W Z Z

K

{q1,q2}

X X W

 

AA

{q0,q1,q2,q3}

EE EE EE

L

{q1,q3}

Y W Y

 

BB

{q0,q1,q2,q f }

X X W

M

{q1,q f }

M K L

 

CC

{q0,q1,q3,q f }

Y W Y

N

{q2,q3}

W Z Z

 

DD

{q0,q2,q3,q f }

W Z Z

O

{q2,q f }

K O N

 

EE

{q1,q2,q3,q f }

EE EE EE

P

{q3,q f }

L N P

 

FF

{q0,q1,q2,q3,q f }

EE EE EE

Объединяя правые части правил, получим x = {q1,q2}, или, в новых обозначениях, x = K. Следовательно, искомая продукция

H1 → K.

Сделав подобные построения для каждой пары «состояние, входной сигнал», получим автомат с построенной таблицей переходов.

Полученный автомат является полностью определенным детерминированным конечным автоматом.

В построенном детерминированном автомате есть лишние («бесполезные») состояния. Например, из начального состояния B автомат никогда не сможет перейти в состояние AA.

Определение 48 (Недостижимое состояние). Состояние q конечного автомата M = (Q,Σ,P,S,F ) называется недостижимым, если не найдется начального состояния q0 S и цепочки α Σ , приводящей автомат из начального состояния в состояние q. Другими словами, α Σ : q0α q.

Логично предположить, что недостижимые состояния – бесполезные состояния. Удаление из автомата недостижимых состояний не приведет к изменению языка, допускаемого автоматом.

Теорема 15 (О КДА без недостижимых состояний). Для любого конечного детерминированного автомата M найдется эквивалентный конечный детерминированный автомат Mбез недостижимых состояний.

42

Доказательство. Пусть M = (Q,Σ,P,q0,F ) – заданный КДА. Возьмем Q= {q0}.

Добавим в Qвсевозможные состояния r Q, для которых найдется продукция

q0a → r P

для некоторого входного сигнала a Σ.

Если в P найдется продукция qa → r, такая, что q Qи r / Q, то добавим r в Q.

Будем повторять последний шаг, пока он приводит к пополнению множества Q.

Очевидно, что в множество Qпопадут все достижимые состояния автомата M. Тогда автомат

M= (Q,Σ,P,q0,F ),

где P= P ∩ (QΣ × Q), F = F ∩ Q, будет допускать тот же язык, что и исходный автомат.

Пример 30. Рассмотрим автомат, полученный в примере 29. Выполняя алгоритм, изложенный в доказательстве теоремы 15, на начальном шаге получим

Q= {B}.

Добавим в Qвсе состояния, достижимые из B:

Q= {B, C, D, E}.

Последовательно пополняя множество Q, получим:

Q= {B,C,D,E,

состояния, достижимые из C: M,K,L,

состояния, достижимые из D: O,N,

состояния, достижимые из E: P,

состояния, достижимые из K: X,W,

состояния, достижимые из L: Y,

состояния, достижимые из N: Z,

состояния, достижимые из W: EE}.

Остальные 17 состояний, не перечисленные в Q, оказались недостижимыми. Удалив их, получим автомат со следующей таблицей переходов:

43

 

 

1

2

3

 

 

 

1

2

3

 

 

 

 

 

 

 

 

B

{q0}

C

D E

 

O

{q2,q f }

K O N

C

{q1}

M K L

 

P

{q3,q f }

L N P

D

{q2}

K O N

 

W

{q1,q2,q3}

EE EE EE

E

{q3}

L N P

 

X

{q1,q2,q f }

X X W

K

{q1,q2}

X X W

 

Y

{q1,q3,q f }

Y W Y

L

{q1,q3}

Y W Y

 

Z

{q2,q3,q f }

W Z Z

M

{q1,q f }

M K L

 

EE

{q1,q2,q3,q f }

EE EE EE

N

{q2,q3}

W Z Z

 

 

 

 

 

 

Пример 31. Рассмотрим грамматику G = ({S,A,B},{0,1,2},P,S), в которой множество P представлено продукциями

S → A0 | B1 | ε,

A → S0 | B1 | 2,

B → S1 | A1.

Сначала получим двойственную грамматику:

A0 → S, B1 → S, ε → S,

S0 → A, B1 → A, 2 → A,

S1 → B, A1 → B.

Избавимся от правила

2 → A,

заменив его на

ε → C, C2 → A.

По полученному множеству продукций построим конечный недетерминированный автомат M = ({S,A,B,C},{0,1,2},P,{C,S},{S}), в котором

P– множество продукций

A0

→ S, B1

→ S,

S0 → A, B1 → A, C2 → A,

S1

→ B, A1

→ B.

Если представить построенный автомат в виде таблицы, получим

 

0

1

2

 

 

 

 

→ S

A

B

A

S

B

B

S, A

→ C

A

 

 

 

 

44

По последнему автомату построим конечный детерминированный автомат. Если оставить в таком автомате только достижимые состояния, получим автомат, определенный следующей таблицей переходов (во втором столбце таблицы приведена расшифровка новых обозначений состояний):

 

 

0

1

2

 

 

 

 

 

→ q0

{S,C}

q1

q2

q1

q1

{A}

q3

q2

q4

q2

{B}

q4

q5

q4

q3

{S}

q1

q2

q4

q4

 

q4

q4

q4

q5

{S,A}

q5

q2

q4

Определение 49 (Различение состояний автомата). Пусть задан конечный детерминированный автомат M = (Q,Σ,P,q0,F ). q1 и q2 – два состояния этого автомата. Говорят, что цепочка α различает состояния q1 и q2, если

q1α r1, q2α r2,

где r1,r2 Q, причем одно из состояний r1 или r2 является заключительным, а второе нет.

Определение 50 (k-неразличимые состояния). Два состояния q1 и q2 конечного детерминированного автомата M = (Q,Σ,P,q0,F ) называют k-нераз- личимыми и пишут q1 k q2, когда не найдется цепочки α Σ , |α| 6 k, различающей эти состояния.

Определение 51 (Эквивалентные состояния). Два состояния q1 и q2 конечного детерминированного автомата M = (Q,Σ,P,q0,F ) называют неразличимыми (эквивалентными) и пишут q1 ≡ q2, если они k-неразличимы для любого k > 0.

Теорема 16 (Критерий неразличимости состояний автомата). Для того чтобы два состояния q1 и q2 конечного детерминированного автомата M = = (Q,Σ,P,q0,F ) были неразличимы, необходимо и достаточно, чтобы они были (n − 2)-неразличимы, где n – число состояний автомата M.

Доказательство.

Необходимость. Тривиально. Если два состояния неразличимы, то они k-неразличимы для любого k > 0 (по определению неразличимости), в том числе и для k = n − 2.

Достаточность. Отношение k-неразличимости является отношением эквивалентности на множестве состояний автомата M. Два состояния r1,r2Q, принадлежащие разным классам эквивалентности при отношении k-не- различимости, не могут принадлежать одному классу эквивалентности при отношении l-неразличимости, l > k, по определению k-неразличимости.

45

Кроме того, из определения k-неразличимости имеем следующие соотношения:

1)r1 0 r2 тогда и только тогда, когда r1 F и r2 F или r1 / F и r2 / F ;

2)r1 k+1 r2 тогда и только тогда, когда r1 k r2 и для любого a Σ, при наличии в P продукций r1a → s1 и r2a → s2 выполняется s1 k s2.

Из этих соотношений следует, что если найдется такое k, что k=≡k+1, то k=≡l , l > k и k=≡. Действительно, пусть k=≡k+1. Тогда из соотношения 2 следует r1 k+1 r2 тогда и только тогда, когда r1 k+2 r2. Так как r1 и r2 – любые состояния, принадлежащие одному классу эквивалентности при k-неразличимости, то k=≡k+1=≡k+2. Применяя свойство 2 многократно, получим k=≡.

Предположим, что в автомате есть различимые состояния, а значит, F =6 , F =6 Q. Тогда #F 6 n − 1 и #(Q\F ) 6 n − 1. Иными словами, в каждом из классов эквивалентности при отношении 0-неразличимости менее n состояний. Можно производить деление этих классов на новые не более n − 2 раз. Достаточность доказана.

На основе последней теоремы существует метод нахождения всех пар эквивалентных состояний КДА, который называется методом заполнения таблицы.

Пусть M = (Q,Σ,P,q0,F ) – КДА, в котором n = #Q.

Создадим n × n-таблицу T , в которой строки и столбцы соответствуют состояниям данного автомата. Изначально все ячейки таблицы пусты. Будем помещать в клетку таблицы T (q,r) знак «×», если состояния q и r различимы. Таблица будет симметрична относительно главной диагонали, а следовательно, когда будем заполнять ячейку таблицы T (q,r), будем заполнять и ячейку T (r,q). В дальнейшем при заполнении одной ячейки таблицы не будем дополнительно упоминать о заполнении другой.

Если q – заключительное состояние, а r нет, то q и r – различимые состояния. Помещаем знак «×» в ячейку T (q,r).

Пусть q и r – состояния, для которых существует входной сигнал a Σ, такой, что qa → p P, ra → s P и T (p,s) = ×. Тогда (q,r) – пара различимых состояний. Помещаем знак «×» в ячейку T (q,r).

Повторяем последний шаг до тех пор, пока он приводит к добавлению в таблицу знака «×».

Из теоремы 16 следует, что достаточно n −2 раза просмотреть по порядку все пустые клетки таблицы (выше или ниже главной диагонали), чтобы отметить все пары различимых состояний.

Пример 32. Рассмотрим автомат M0, представленный на рис. 3.2.

Найдем все пары неразличимых состояний, используя метод заполнения таблицы. В качестве T возьмем 8 × 8-таблицу, строки и столбцы которой помечены состояниями данного автомата. Так как в представленном

46

01

Начало

A

0

B

1

C

 

D

1

0

0 1

 

E

1

0

1

G

1

H

 

 

F

 

0

 

 

 

 

 

 

 

1 0

0

Рис. 3.2. Автомат M0

автомате только лишь одно состояние C заключительное, помечаем в таблице T все ячейки в строке, соответствующей состоянию C, и в столбце, соответствующем состоянию C, за исключением ячейки T (C,C). Получим таблицу:

 

A

B

C D

E

F

G

H

 

 

 

 

 

 

 

 

 

A

 

 

×

 

 

 

 

 

B

 

 

×

 

 

 

 

 

C

×

×

 

×

×

×

×

×

D

 

 

×

 

 

 

 

 

E

 

 

×

 

 

 

 

 

F

 

 

×

 

 

 

 

 

G

 

 

×

 

 

 

 

 

H

 

 

×

 

 

 

 

 

Так как T (C,H ) = ×, а автомат из состояний E и F по сигналу 0 переходит в состояния H и C, значит, пара {E ,F } – различимые состояния, помечаем T (E ,F ) = T (F,E ) = ×. Аналогично по сигналу 1 автомат переходит из состояния A в F и из G в E . Но T (E ,F ) = ×, а следовательно, помечаем T (A,G) = T (G,A) = ×. Продолжаем такие рассуждения, пока это возможно (т. е. пока можно обнаружить новые пары различимых состояний). Окончательный вариант таблицы T :

 

A

B

C

D

E

F

G

H

A

 

×

×

×

 

×

×

×

B

×

 

×

×

×

×

×

 

C

×

×

 

×

×

×

×

×

D

×

×

×

 

×

 

×

×

E

 

×

×

×

 

×

×

×

F

×

×

×

 

×

 

×

×

G

×

×

×

×

×

×

 

×

H

×

 

×

×

×

×

×

 

47

Итак, согласно полученной таблице, только следующие пары состояний неразличимы: {A,E }, {B,H }, {D,F }.

Определение 52 (Эквивалентные автоматы). Два конечных автомата называют эквивалентными, если они допускают один и тот же язык.

По конечному автомату можно построить эквивалентный ему конечный детерминированный автомат с минимальным возможным числом состояний. Соответствующий процесс называется минимизацией конечного автомата. Минимизация заключается в удалении всех недостижимых состояний и исключении парных неразличимых состояний.

Теорема 17 (О минимальном автомате). Для любого конечного детерминированного автомата M = (Q,Σ,P,q0,F ) найдется эквивалентный автомат M= (Q,Σ,P,q0,F ) без неразличимых состояний, допускающий тот же язык. При этом если M – автомат без недостижимых состояний, то не

существует КДА, допускающего L(M) и имеющего меньше состояний, чем

#Q.

Доказательство. Разобьем множество состояний Q на классы эквивалентности, соответствующие отношению неразличимости (используя выкладки из доказательства теоремы 16 или метод заполнения таблицы), и пусть [Q]– совокупность полученных классов эквивалентности.

Определим автомат M= (Q,Σ,P,q0,F ), где:

1)Q= [Q];

2)q0 = [q0];

3)F = [q][Q]| q F ;

4)P= {[q]a → [r]| где qa → r P}.

Очевидно, что построенный автомат допускает тот же язык, что и ис-

ходный автомат.

Пусть в M отсутствуют недостижимые состояния. Покажем, что построенный автомат имеет минимально возможное число состояний.

Предположим, что имеется КДА M′′ = (Q′′,Σ,P′′,q′′0 ,F ′′), такой, что L(M′′) = L(M) и в котором #Q′′ < #Q. Тогда найдутся цепочки γ1 и γ2, ко-

торые переводят автомат Mв разные состояния q0γ1 Mq1, q0γ2 Mq2, а автомат M′′ – в одно и то же состояние q′′0 γ1 M′′ q′′1 , q′′0 γ2 M′′ q′′1 . Так

как в автомате Mнет эквивалентных и недостижимых состояний, существует цепочка ϑ, такая, что q1ϑ Mq3, q2ϑ Mq4, где точно одно из состояний q3, q4 является заключительным. Очевидно, что точно одна из цепочек γ1ϑ, γ2ϑ допускается автоматом M, следовательно, принадлежит языку L(M). Но в автомате M′′ цепочки γ1ϑ, γ2ϑ переводят автомат в одно и то же состояние. Значит, эти цепочки одновременно принадлежат или не принадлежат языку L(M). Получили противоречие.

Теорема доказана.

48

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]