Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик (Отчет).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.49 Mб
Скачать

2.Построение автоматной грамматики по праволинейной

Автоматные грамматики, или иначе А-грамматики, имеют правила вывода вида U::=T или U::=TW, где TVT; UVn; WVn.

Перейти от полученной праволинейной грамматики к автоматной можно расширением нетерминального словаря следующим образом: Sc1S1; S1c2S2; S2с3А и т.д, оставляя в правой части правила один терминальный и один нетерминальный символы или один терминальный.

Для рассматриваемого примера выполним преобразование праволинейной грамматики G'=(VN,VT,S,R') в автоматную G"=(VN",VT,S,R").

При этом получим следующее множества R правил вывода

Sx5S1;

S1x1S2;

S2x4A;

Sx5S3;

S3x6S4;

S4x1B;

Sx7C;

Sx3F;

Ax0D;

Ax5;

Bx0E;

Bx5;

Cx0E;

Cx5;

Dx3S;

Dx0;

Ex3S;

Ex0;

Fx6F1;

F1x7F2;

F2x5F3;

F3x1;

Fx7F4;

F4x7F5;

F5x5F6;

F6x1;

Fx6F7.

F7x0F8;

F8x1;

Следовательно, словарь нетерминальных символов VN будет иметь вид V"N = {S,S1,S2,S3,S4,А,В,С,D,E,F,F1,F2,F3,F4,F5,F6,F7,F8}.

В рассматриваемом примере нетерминальный словарь имеет 19 символов и его мощность V"N равна 19, мощность VT терминального словаря VT равна 8.

3.Построение недетерминированного конечного автомата

Недетерминированный конечный автомат это пятерка A=(Q,V,М,S,Z), где Q - множество (алфавит) внутренних состояний; V - входной алфавит;

М - функция переходов, представляющая отображение V*QP(Q);

P(Q) - множество подмножеств из Q; SQ - множество начальных состояний; ZQ - множество заключительных состояний; SZ.

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

Как правило, недетерминированные конечные автоматы порождаются регулярными грамматиками, которые содержат правила вывода вида

U::= TW R::= TW, что соответствует фрагменту диаграммы

Частичная функция переходов этого случая имеет вид: M(W,T)={U,R}.

В рассматриваемом примере недетерминированный конечный автомат имеет одно начальное состояние S. Зададим этот автомат следующим образом. Поставим в соответствие символам нетерминального словаря V"N состояния из Q, в том числе нетерминалу S - начальное состояние qo. Добавим заключительное состояние Z, в котором автомат оказывается, если цепочка символов, поступающих на автомат, принадлежит L (G").

Составим табл.3, в которой, нетерминальным символам из множества V"N соответствуют состояния автомата из множества Q.

Таблица 3

S

S1

S2

S3

S4

A

B

C

D

E

q0

q1

q2

q3

q4

q5

q6

q7

q8

q9

F

F1

F2

F3

F4

F5

F6

F7

F8

Z

q10

q11

q12

q13

q14

q15

q16

q17

q18

q19

Здесь начальному состоянию S соответствует qo, а конечному Z соответствует q19. Общее количество состояний Q=V"N+1 и равно 20.

Поставим в соответствие правилам вывода переходы автомата. Так, правилу Аx0D - переход из состояния q5 в состояние q8 под воздействием входного символа x0, а правилу Ех0 - переход из состояния q9 в заключительное состояние q19 при входном символе х0.

Выполнив указанные действия для всех правил R", получим таблицу переходов (табл.4) недетерминированного конечного автомата, соответствующего рассматриваемому примеру. Граф переходов, построенный по этой таблице, приведен на рис.1.

Таблица 4

X0

X1

X2

X3

X4

X5

X6

X7

q0

q10

q1,3

q7

q1

q2

q2

q5

q3

q4

q4

q6

q5

q8

q19

q6

q9

q19

q7

q9

q19

q8

q19

q0

q9

q19

q0

q10

q11,17

q14

q11

q12

q12

q13

q13

q19

q14

q15

q15

q16

q16

q19

q17

q18

q18

q19

q19

Рис.1

В полученном графе присутствуют девять цепочек переходов по графу: 51400; 5145; 5615; 56100; 700; 75; 36751; 37751; 3601; и три цепочки: 51403; 56103; 703; при которых происходит возвращение к начальному состоянию автомата S = q0.

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

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