Лабораторная работа№ 2      

advertisement
Лабораторная работа№ 2
«ОПИСАНИЕ ФУНКЦИОНИРОВАНИЯ КОНЕЧНЫХ
АВТОМАТОВ»
Для задания поведения конечного автомата (преобразователя) необходимо описать
функцию f     q0 ,   , отображающую А* в В*(т.е. f   : A*  B * ). Эта функция
может быть задана информационным деревом. Из каждой вершины информационного
дерева исходят m ребер  A  m , взаимно-однозначно соответствующих буквам алфавита
A. Каждой вершине приписано состояние автомата, а каждому ребру – буква алфавита B,
следующим образом: корню приписано состояние q0; если некоторой вершине приписано
состояние qi, то ребру, соответствующему букве a из A, приписана буква b   qi , a  , а
вершине, в которую ведет это ребро, приписано состояние q j   qi , a  . Каждому слову
A* соответствует единственная последовательность ребер этого дерева такая, что
слово wB* совпадает со значением f     q0 ,   .
Для рассматриваемого примера имеем следующее поддерево информационного
дерева: (левые ребра, исходящие из вершин соответствуют символу a1, правые – символу
a2).
q
0
b
b
q
2
2
1
0
b
b
2
2
q
q
0
q
b0
b
b
2
2
1
q
1
b
b
1
2
q
b1
b
b
1
2
2
q
0
b
2
q
q
q
q
q
q
1
1
0
1
0
0
q
1
Описание поведения конечного автомата (акцептора) в терминах представимого события
может быть сделано с помощью регулярного выражения.
В рассматриваемом примере представимое событие (язык, множество слов) записывается
как регулярное выражение в алгебре
a2b2
a1b2
A,U ,, , т.е. L  a1 * a2b2a1 * a1 * a2b2a1 * a2b2a1 * a2b2a1 *
a1b1
q0
qz
a2b2
Такие события могут быть также заданы как множества слов, порождаемых (выводимых)
в некоторой формальной системе (ex, грамматике). Так, для автоматной (регулярной)
грамматики <T,N,J,P> (здесь T и N соответственно терминальный и вспомогательный
алфавиты, J – аксиом, т.е. JN, P – продукция вида BiaBj, либо Bia)/ Слово =a1…an
выводимо, если в P имеются правила Ja1Bi2, Bi2a2Bi3, …, Binan
ФУНКЦИОНИРОВАНИЯ КОНЕЧНОГО АВТОМАТА
1. Автоматная таблица.
Таблицы переходов (qiaj) = ql и выходов (qiaj) = bk, имеет вид
A
a1
...
…
am
…
B
Q
q0
bt
br
…
…
…
bl
…
…
…
B7
…
qi
…
qm
…
…
…
qr
…
…
…
q4
…
qi
…
…
…
…
bi
…
…
…
B8
…
am
…
...
…
aj
…
...
…
qp
a1
…
ql
...
…
q2
aj
…
Q
q0
qn
qt
…
qz
…
qk
qn
bk
…
b1
…
bl
а их совмещение есть автоматная таблица
A
…
qlbi
…
qpbt
qmbr
…
…
…
qrbl
…
…
…
q4b7
…
qi
…
…
q2b8
…
am
…
...
…
aj
…
...
…
Q
q0
a1
qn
qtbk
…
qzb1
…
qkbl
2. Диаграмма автомата.
Диаграмма автомат – ориентированный граф, вершинам которого взаимно однозначно соответствуют элементы Q, а дугам приписаны некоторые
множества пар вида <aibj>, ai  A bj  B. Функции  и  определяются
следующим образом: (qlai)=qr, (qlai)=bj, если ребру, исходящему из вершины
ql, приписана пара <aibj> и эта дуга ведет в вершину qr.
Пример: Пусть задана автоматная таблица
a1
a2
A
Q
q0
q0b2 q1b2
q1
q1b1 q0b2
Соответствующая
диаграмма
a1b2
a2b2
a1b1
q0
q1
a2b2
Замечание:
Этот орграф (без
bi) есть регулярная
грамматика
 3  a, b, q0q1, A, A  a1 , A  a2 B, B  a1B, B  a2 A .
3. Матрица переходов (соединений).
Матрица переходов представляет собой квадратную матрицу размера Q , в
который номера строк и столбцов соответствуют элементам множеств внутренних
состояний Q. Клетка матрицы на пересечении i-той строки и j-того столбца заполняется
дизъюнкцией пар «вход-выход», которая приписана дуге графа, исходящей из i-той
вершины в j-тую вершину. При отсутствии такой ветви клетка заполняется нулем или
остается свободной. Так для рассмотренного выше примера имеем:
Q q0
q1
Q
q0
a1b2 a2b2
q1
a2b2 a1b1
ПРИМЕРЫ КОНЕЧНЫХ АВТОМАТОВ
1.Автомат Мили
Выходной символ автомата Мили в момент времени t определяется функцией
выходов
w(t)=[s(t),v(t)].
(3)
Таким образом, функция выходов автомата Мили реализует отображение некоторого
подмножества D SV декартова произведения SV в множество W. Иногда, для
краткости используют обозначение: s+=s(t+1), s=s(t), v=v(t), w=w(t). Тогда функция
переходов автомата Мили запишется в виде s+=(s,v), а функция выходов в виде w=(s,v).
Автомат называется полностью опредленным, если D=D=SV. В противном
случае автомат называется частичным. Иными словами, у полностью определенного
автомата области определения функций [,] и  [,] совпадают с декартовым
произведением SV, а у частичного автомата эти функции определены на подмножествах
D и D множества SV.
Способность автомата фиксировать состояния, представляющие классы входных
последовательностей (события), называют памятью автомата. Каждое состояние sS
автомата представляет некоторый класс эквивалентности {v(0)v(1)v(2)…v(k)}s входных
последовательностей, поскольку поведение автомата в любой момент времени t зависит
только от класса, т.е. s(t), и входного воздействия v(t). Такой подход позволяет устранить
время как явную переменную и выразить выходные символы как функцию состояний и
входных символов в данный момент времени, что находит выражение в общей записи
модели A абстрактного автомата Мили:
A = <V,W,S,,,s(0)>,
(4)
где
V,W,S - алфавиты входных, выходных символов и символов состояний соответственно;
2.Автомат Мура
Абстрактный автомат Мура это частный случай автомата Мили (4), когда
выходной символ зависти только от сосояния автомата, а именно функция выходов
автомата Мура:
w=(s)
(5)
Для каждого автомата Мили можно построить эквивалентный автомат Мура,
реализующий точно такой же алфавитный оператор. Пусть A = <V,W,S,,,s(0)> автомат
Мили. В качестве состояний эквивалентного автомата Мура возьмем пары
Тогда функция выходов эквивалентного автомата Мура
~~
w   s, v  
s ,
а функция переходов

 
~
s  s, v  .
(6)



~
~ ~
~
s   s  , v    s, v , v    ~
s , v    ~
s , v .
(7)
,  - функции переходов и выходов
соответственно;
s(0) - начальное состояние.
1,0
0,0
0,0
q0
qя
1,1
QA
<q0,0
>
<q0,1
>
<qz,0
>
<qz,1>
Q

QA
0
<qz>
1
a1b1a2
b2
qя
a2b2
1.
B
<q0>
a1b1
q0

0,1, q0 q z , 0,1, q0 , Г f
- детерминированный, инициальный,
логический, всюду определенный, преобразователь А*  В* (автомат
Мили)
2.
a1a2 , q0 qz , b1b2 , q0 ,  , 
- недетерминированный по переходам,
детерминированный по выходам, инициальный, частично определенный
преобразователь.
3.
<{a1,a2},{q0,qz},{b1,b2},q,,>-детерминированный по переходам ,недетерминированный
Q
QA
QA

<q0,a1
>
<q0,a2
<q0>
>
<qz,a1
<qz>
>
<qz,a2
>
по выходам инициативный преобразователь - определенный.
QXA

Q
QXA


B
4. <{a1,a2},{q0,qz},{b1,b2},q,>-недетерминированный , всегда
определенный преобразователь.
B
b1
b2
QXA
QXA
1
2
Q
B
5. <{a},{q1,q2,q3},{b1,b2},,>-автономный автомат Мили(генератор)
6. <{a1,a2},{q1,q2,q3},{b1,b2},,>-автомат Мура
7. логический автомат Мили без выходов(акцептор)<{a,1},{q0,q1},>
8. комбинационный автомат ,эквивалентный автомат без памяти
Алгоритм преобразования недетерминированного конечного автомата к
детерминированному виду.
Шаги алгоритма преобразования недетерминированного автомата <A,Q,P,> в
эквивалентный детерминированный акцептор < A,Q|, q0, > следующие:
1. Q|=B(Q)-,| Q||=2n-1,B(Q)-булеан
2. (qi,a)=qj,i=1,m, j=1,k
3. q0=q0|
4. Множество конечных состояний детерминированного автомата строится из всех
состояний , имеющих […,fi,…], где fi конечное состояние детерминированного
акцептора.
5. Из построенного акцептора удаляют все недостижимые состояния . Доказано ,что
рассматриваемый алгоритм строит детерминированный акцептор, эквивалентный
заданному недетерминированному распознавателю.
Пример
Заданный автомат является недетерминированным внутренними состояниями. Поэтому |
Q||=2n-1 =15
1. B(Q)\={q1}U{q2}U{q3}U{q3}U{q4}U{q1,q2}U{q1,q3}U{q1,q4}U{q2,q3}U{q2,q3}U{
q2,q4}U{q3,q4}U{q1,q2,q3}U{q1,q2,q4}U{q1,q3,q4}U{q2,q3,q4}U{q1,q2,q3,q4}.
2. Cтроим ф-ию переходов:
(q1,a2)=q3,
(q3,a1)=q2,
(q2,a2=(q3,q4),
({q1,q3},a1)=q3, ({q1,q2},a2)=(q3,q4)
({q1,q4},a2)=q3
({q1,q4},a2)=q3
({q2,q3},a1)=q2
({q2,q3},a2)=(q3,q4)
({q2,q4},a2)=(q3,q4)
({q3,q4},a1)=q2
({q1,q2,q3},a10=q2
({q1,q2,q3},a2)={q3,q4}
({q1,q2,q4},a2)=(q3,q4)
({q1,q3,q4},a2)=q3
({q1,q3,q4},a1)=q2
({q2,q3q4},a1)=q2
({q2,q3,q4},a2)=(q3,q4)
({q1,q2,q3,q4},a1)=q2
({q1,q2,q3,q4},a2)=(q3,q4)
3. Аналогичное состояние эквивалентного акцептора q0|=q1
4. Множество конечных состояний F эквивалентного автомата
F={qz,(q1,qz),(q2,qz),(q3,qz),(q,q2,qz),(q1,q3,qz),(q2,q3,qz),(q1,q2,q3,qz)
5. Удаляем недостижимые вершины графа, недостижимыми вершинами являются, те
состояния которых при каком-то А невозможен переход из q0,построенного
детерминированного автомата следующим
:(q1,q2),(q1,q3),(q1,q4),q4,(q1,q2,q3),(q1,q2,q4),(q2,q3,q3),(q1,q3,q4),(q1,q2,q3,q4),(q2,q3)
, (q2,q4).
Исходный акцептор
<{a1,a2},{q1,q2,q(3,q4)=qz}/q1=q0,> имеет следующий граф переходов:
Этот распознаватель является не всюду определенным.
Замечание

Детерминированный частичный конечный автомат можно преобразовать в автомат
Мили, если ввести фиктивное состояние
на которое заменяют все неопределенные
переходы. В качестве примера преобразования частичного автомата в автомат всюду
определенный ,рассмотрим полученный граф переходов детерминированного
акцептора. Имеем следующий автомат Мили:
Моделировать работу автомата Мили существенно проще, чем работу произвольного
конечного автомата .Однако , следует учитывать и затраты на моделирование автомата
Мили, которые больше, чем затраты на моделирование недетерминированного частичного
автомата.
Download