Синтез конечного автомата
Понятия, особенности построения и преобразования праволинейной и автоматной грамматик, их правила и вид. Определение недетерминированного конечного автомата. Аспекты приведения к детерминированному виду и минимизация состояний. Изображение сети Петри.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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