Синтез конечного автомата

Понятия, особенности построения и преобразования праволинейной и автоматной грамматик, их правила и вид. Определение недетерминированного конечного автомата. Аспекты приведения к детерминированному виду и минимизация состояний. Изображение сети Петри.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.04.2009
Размер файла 329,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

21

1. Задание

Для синтеза конечного автомата задана формальная грамматика:

G= <V,W,S,R>, где

Vt={c1, c2,,c18}-алфавит терминальных символов;

Wn={S, A, B, C, D, E, F}-алфавит нетерминальных символов;

S - аксиома грамматики;

R - правила грамматики.

S ??c1c2c3A

S ??c1c4c5B

S ??c6C

S ??c7F

A ??c8D

A ??c9

B ??c8E

B ??c9

C ??c8E

C ??c9

D ??c10S

D ??c11

E ??c10S

E ??c11

F ??c12c13c14c15

F ??c10c13c14c15

F ??c17c18c16

x0

Й Л Р Щ

x1

А, Ы, Э

х2

В Ф Ч Ш

х3

З И М Ю

х4

Г Ж О С Ц

х5

Б, П, Т, Х, {пробел}

х6

Д Е Ъ Ь

х7

К Н У Я

сi

с1

с2

с3

с4

с5

с6

с7

с8

с9

с10

с11

с12

с13

с14

с15

с16

с17

с18

si

К

О

Н

О

В

А

Л

О

В

А

Н

Д

Р

Е

Й

И

xi

x7

x4

x7

x4

x2

x1

x0

x4

x2

x5

x1

x7

x6

x0

x6

x0

x5

x3

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

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

Грамматика называется праволинейной, если правая часть каждого правила содержит не более одного нетерминала, причем этот нетерминал является самым правым символом. Правила праволинейной грамматики имеют вид:

A>щB, A>щ, щV*, BW, гдеV*-множество всех конечных символов

1) S ??x7x4x7A

2) S ??x7x4x2B

3) S ??x1C

4) S ??x0F

5) A ??x4D

6) A ??x2

7) B ??x4E

8) B ??x2

9) C ??x4E

10) C ??x2

11) D ??x5S

12) D ??x1

13) E ??x5S

14) E ??x1

15) F ??x7x6x0x6

16) F ??x5x6x0x6

17) F ??x5x3x0

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

Грамматика называется автоматной, если ее правила имеют вид:

A>xB, A>о, xV, BW.

1) S ??x7S1

2) S1 ??x4S2

3) S2 ??x7A

4) S ??x7S3

5) S3 ??x4S4

6) S4 ??x2B

7) S ??x1C

8) S ??x0F

9) A ??x4D

10) A ??x2

11) B ??x4E

12) B ??x2

13) C ??x4E

14) C ??x2

15) D ??x5S

16) D ??x1

17) E ??x5S

18) E ??x1

19) F ??x7F1

20) F1??x6F2

21) F2 ??x0F3

22) F3 ??x6

23) F ?? x5F1

24) F ?? x5F4

25) F4 ??x3F5

26) F5 ??x0

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

Конечным автоматом S называется формальная система вида S={A,Q, V, д, л}, где A-входной алфавит {a1, a2,…,am}; Q - алфавит состояний (нетерминальное множество грамматики {g1, g2,…,gm}); V - выходной алфавит; д - функция перехода, которая каждой паре элементов Ai и Qj ставит в соответствие элемент Q1; л - функция перехода, которая каждой паре элементов Ai и Qj ставит в соответствие элемент V1 выходного алфавита.

Недетерминированным конечным автоматом называется такой автомат, любая клетка таблицы переходов которого имеет более одного состояния. Таблица переходов - таблица, где по строкам располагаются состояния, а по столбцам символы входного алфавита

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

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

x0

x1

x2

x3

x4

x5

x6

x7

A

K

D

B

K

E

C

K

E

D

K

S

E

K

S

F

F1 , F4

F1

F1

F2

F2

F3

F3

K

F4

F5

F5

K

S

F

C

S1 , S3

S1

S2

S2

A

S3

S4

S4

B

К

K - заключительное состояние

4. Приведение недетерминированного конечного автомата к детерминированному виду

Детерминированным конечным автоматом называется такой автомат, любая клетка таблицы переходов которого не содержит более одного состояния.

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

1. Определим клетку, которая содержит два перехода

2. Строки состояний накладываются друг на друга, и в таблице появляется новая строка, которая будет соответствовать новому состоянию

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

x0

x1

x2

x3

x4

x5

x6

x7

A

K

D

B

K

E

C

K

E

D

K

S

E

K

S

F

F1, 4

F1

F1

F2

F2

F3

F3

K

F1, 4

F5

F2

F5

K

S

F

C

S1, 3

S1, 3

S2, 4

S2, 4

B

A

К

5. Минимизация состояний автомата

Минимизация состояний автомата осуществляется по алгоритму Мура:

1) В таблице переходов отыскиваются строки, у которых имеются рабочие состояния в одинаковых столбцах (состояния отличные от состояния ошибки). Состояния таких строк заносятся в группы.

2)Рабочее состояние для каждой группы проверяется на эквивалентность.

3)Если для всех рабочих состояний группы установили эквивалентность, то состояние образующее группу также эквивалентно.

{A, B, C}

{D, E}

{F}

{F2}

{F3}

{F5}

{F1, 4}

{S}

{S1, 3}

{S2, 4}

{K}

r0={A, B, C}

r1={D, E}

r2={F}

r3={F2}

r4={F3}

r5={F5}

r6={F1, 4}

r7={S}

r8={S1, 3}

r9={S2, 4}

r10={K}

r7 - аксиома

r10 - заключительное состояние

Минимизированный детерминированный конечный автомат:

x0

x1

x2

x3

x4

x5

x6

x7

r0

r10

r1

r1

r10

r7

r2

r6

r6

r3

r4

r4

r10

r5

r10

r6

r5

r3

r7

r2

r0

r8

r8

r9

r9

r0

r0

r10

6. Построение сети Петри

Сеть Петри определяется как формальная система, характеризуема 4 формальными объектами: S= <P, T, E, M0>, где

P - конечное множество позиций

T - конечное множество переходов

E - конечное множество дуг

M0 -- начальная маркировка

Графическим изображением сети Петри является двудольный ориентированный граф с двумя типами вершин Р и Т. Поставим в соответствие нетерминальным символам грамматики позиции сети Петри, а терминальным переходы. Если в правой части некоторого правила имеет место конкатенация терминалов, то в сети Петри между переходами, помеченными терминалами, должны появляться дополнительные позиции.

21

Минимизация сети Петри

21

7. Кодирование состояний автомата

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

Существуют два способа кодирования автомата:

1) Характеризуется устранением всех состязаний элементов памяти. Для этого всем внутренним состояниям, для которых существуют переходы приписываются соседние кодовые комбинации, отличающиеся друг от друга одной переменной.

2) Связан с устранением критических состязаний.

21

x0

x1

x2

x3

x4

x5

x6

x7

r0

r10

r1

0001

r1

r10

r7

0011

r2

r6

r6

0101

r3

r4

1001

r4

r10

1010

r5

r10

1000

r6

r5

r3

1101

r7

r2

r0

r8

0111

r8

r9

0110

r9

r0

r0

0100

r10

0010

8. Построение комбинационной схемы таблицы переходов автомата

В качестве структурной схемы распознающего автомата используем следующую схему:

Схема автомата состоит из комбинационной схемы, реализующей функцию возбуждения элементов памяти: памяти, построенной на триггерах по двухрегистровой схеме и дешифратора входных сигналов.

При синхронной реализации автомата предполагается, что все переходные процессы в этих схемах успевают закончиться к моменту прихода синхросигнала t1, стробирующего (разрешающего) прием информации с выходов комбинационной схемы с триггеров регистра 1. Второй регистр осуществляет прием информации, которая стробируется синхросигналом t2, необходимым для того, чтобы сделать состояние автомата устойчивым. Триггеры регистра 1 называются вспомогательными, а регистра 2 основными.

Сигнал derr является сигналом ошибки, а сигнал dok - сигналом принадлежности входной цепочки языку заданной грамматики.

z=(z1, z2, z3, z4)

компоненты вектора - переменные коды состояний;

(p1 p2 p3) - код входного символа.

Комбинационная схема автомата реализует функцию его переходов. Исходным заданием для ее построения является граф переходов или таблица переходов и выбранный вариант кодирования.

Построить функцию переходов - значит найти переключательную функцию кодирующих (внутренних) переменных. Каждая внутренняя переменная z1, z2, z3, z4 представляется состоянием элемента памяти, то есть триггера. По переключательным функциям внутренних переменных находят функции возбуждения соответствующих им триггеров. Реализация этих функций образует комбинационную схему автомата.

Таблица переходов автомата по символу x0

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r3

1

0

0

1

1

0

1

0

r4

r5

1

0

0

0

0

0

1

0

r10

r7

0

1

1

1

0

1

0

1

r2

z1(t+1)= z1(t)& z4(t)

z2(t+1)= z2(t)

z3(t+1)= z1(t)

z4(t+1)= z2(t)

Таблица переходов автомата по символу x1

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r1

0

0

1

1

0

0

1

0

r10

r7

0

1

1

1

0

0

0

1

r0

z1(t+1)= z1(t)

z2(t+1)= z1(t)

z3(t+1)=

z4(t+1)= z2(t)

Таблица переходов автомата по символу x2

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r0

0

0

0

1

0

0

1

0

r10

r9

0

1

0

0

0

0

0

1

r0

z1(t+1)= z1(t)

z2(t+1)= z1(t)

z3(t+1)= z4(t)

z4(t+1)= z2(t)

Таблица переходов автомата по символу x3

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r6

1

1

0

1

1

0

0

0

r5

z1(t+1)= z1(t)

z2(t+1)= z3(t)

z3(t+1)= z3(t)

z4(t+1)= z3(t)

Таблица переходов автомата по символу x4

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r0

0

0

0

1

0

0

1

1

r1

r8

0

1

1

0

0

1

0

0

r9

z1(t+1)= z1(t)

z2(t+1)= z2(t)

z3(t+1)= z4(t)

z4(t+1)= z4(t)

Таблица переходов автомата по символу x5

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r1

0

0

1

1

0

1

1

1

r7

r2

0

1

0

1

1

1

0

1

r6

z1(t+1)= z2(t)

z2(t+1)= z4(t)

z3(t+1)= z3(t)

z4(t+1)= z4(t)

Таблица переходов автомата по символу x6

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r4

1

0

1

0

0

0

1

0

r10

r6

1

1

0

1

0

1

0

1

r2

z1(t+1)=

z2(t+1)= z2(t)

z3(t+1)= z3(t)

z4(t+1)= z4(t)

Таблица переходов автомата по символу x7

t

t+1

z1

z2

z3

z4

z1

z2

z3

z4

r2

0

1

0

1

1

1

0

1

r6

r7

0

1

1

1

0

1

1

0

r8

r9

0

1

0

0

0

0

0

1

r0

z1(t+1) = & z4(t)

z2(t+1)= z4(t)

z3(t+1)= z3(t)

z4(t+1)=

9. Построение комбинационной схемы распознавания цепочек языка конечным автоматом

Функция возбуждения сигнала ошибки может быть представлена:

derr= x0&derrx0\/ x1&derrx1\/…\/x7&derrx7

Считаем, что ошибка может возникнуть, когда на xi срабатывает какое-либо состояние, отличное от состояния заданного таблицей переходов.

Другими словами, при переходе сигнала xi автомат находится не в тех состояниях, которые ему предписаны таблицей переходов.

Рассмотрим как определить функции распознавания цепочек входного языка, т.е. функцию dok. Очевидно, что dok вырабатывается только тогда, когда на вход автомата пришёл сигнал конца ошибки, а автомат находился в заключительном состоянии.

Таблица функций derr

Сост.

код

derr,x0

derr,x1

derr,x2

derr,x3

derr,x4

derr,x5

derr,x6

derr,x7

r0

0001

1

1

0

1

0

1

1

1

r1

0011

1

0

1

1

1

0

1

1

r2

0101

1

1

1

1

1

0

1

0

r3

1001

0

1

1

1

1

1

1

1

r4

1010

1

1

1

1

1

1

0

1

r5

1000

0

1

1

1

1

1

1

1

r6

1101

1

1

1

0

1

1

0

1

r7

0111

0

0

1

1

1

1

1

0

r8

0110

1

1

1

1

0

1

1

1

r9

0100

1

1

0

1

1

1

1

0

r10

0010

1

1

1

1

1

1

1

1

Анализ таблицы 3 показывает, что в ней больше 1 чем 0. Поэтому удобнее строить логическую функцию для отрицания ошибки derr.xi . Для каждой функции derr.xi строим карты Карно и проводим минимизацию слабо определенной функции. На карте проставляем 0 и 1 и рассматриваем функцию как слабо определенную. Затем берем отрицание полученной в ходе минимизации функции.

Z1

*

*

1

1

Z4

Z3

1

*

*

*

Z2


Z1

*

*

Z4

Z3

1

1

*

*

*

Z2


Z1

*

1

*

1

Z4

Z3

*

*

*

Z2


Z1

*

*

1

Z4

Z3

*

*

*

Z2


Z1

*

*

1

Z4

Z3

*

*

1

*

Z2


Z1

*

*

1

Z4

Z3

1

*

*

*

Z2


Z1

*

*

1

Z4

Z3

*

*

*

1

Z2


Z1

*

1

*

1

Z4

Z3

1

*

*

*

Z2


Комбинационная схема, реализующая функцию переходов автомата

Комбинационная схема, реализующая функцию ошибки derr


Подобные документы

  • Построение праволинейной грамматики, автоматной грамматики по полученным результатам. Построение недетерминированного конечного автомата. Сведение недетерминированного конечного автомата к детерминированному. Описание программы и контрольного примера.

    курсовая работа [674,9 K], добавлен 13.06.2012

  • Сведение недетерминированного конечного автомата к детерминированному. Построение минимального детерминированного автомата из праволинейной грамматики двумя различными способами: с помощью сетей Петри и с помощью таблиц. Описание контрольного примера.

    курсовая работа [903,9 K], добавлен 14.07.2012

  • Специфика построения и минимизации детерминированного автомата методом разбиения. Построение детерминированной сети Петри, моделирующей работу распознающего автомата. Особенности программной реализации праволинейной грамматики, построение ее графа.

    курсовая работа [615,1 K], добавлен 19.06.2012

  • Изучение методов построения конечного автомата, распознающего заданный язык, и принципы его программной реализации. Проектирование комбинационной и принципиальной схем распознающего конечного автомата с использованием библиотеки интегральных микросхем.

    дипломная работа [1,8 M], добавлен 18.08.2013

  • Важный частный случай недетерминированного конечного автомата. Проверка нечетности числа единиц в произвольной цепочке, состоящей из нулей и единиц. Составление формальной грамматики, блок-схемы и программы, моделирующей работу конечного автомата.

    курсовая работа [210,8 K], добавлен 05.12.2013

  • Построение математической модели программы, одноленточного автомата над алфавитом, допускающего различные множества слов. Алфавит терминальных символов, множество состояний и переходов. Определение начального и конечного состояний. Понятие сети Петри.

    контрольная работа [294,8 K], добавлен 17.09.2013

  • Синтез автомата для преобразования двоично-десятичного кода. Кодировка алфавитов и состояний. Построение булевых функций, минимизация. Разметка вход-выходных слов для автомата Мили и автомата Мура. Реализация на элементах малой степени интеграции.

    контрольная работа [141,5 K], добавлен 14.10.2012

  • Теоретические и практические основы грамматик, теория конечных автоматов-распознавателей. Эквивалентные и недостижимые состояния конечных автоматов. Классификация грамматик и порождаемых ими языков. Разработка программного комплекса построения грамматик.

    курсовая работа [654,2 K], добавлен 14.11.2010

  • Методика минимизации абстрактного автомата. Порядок построения графа полученного минимизированного автомата. Синтез на элементах ИЛИ-НЕ и Т-тригерах. Составление таблицы переходов. Разработка микропрограммного автомата, реализующего микропрограмму.

    курсовая работа [997,7 K], добавлен 28.03.2011

  • Минимизация абстрактного автомата Мили, моделирование его работы. Синтез схемы конечного автомата, микропрограммного автомата и счетчика числа микрокоманд. Разработка цифровой линии задержки. Построение граф-схем исходного и оптимизированного автоматов.

    курсовая работа [823,8 K], добавлен 19.07.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.