Лабораторная работа№ 2 «ОПИСАНИЕ ФУНКЦИОНИРОВАНИЯ КОНЕЧНЫХ АВТОМАТОВ» Для задания поведения конечного автомата (преобразователя) необходимо описать функцию f q0 , , отображающую А* в В*(т.е. f : A* B * ). Эта функция может быть задана информационным деревом. Из каждой вершины информационного дерева исходят m ребер A m , взаимно-однозначно соответствующих буквам алфавита A. Каждой вершине приписано состояние автомата, а каждому ребру – буква алфавита B, следующим образом: корню приписано состояние q0; если некоторой вершине приписано состояние qi, то ребру, соответствующему букве a из A, приписана буква b qi , a , а вершине, в которую ведет это ребро, приписано состояние q j qi , a . Каждому слову A* соответствует единственная последовательность ребер этого дерева такая, что слово wB* совпадает со значением 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 – аксиом, т.е. JN, P – продукция вида BiaBj, либо Bia)/ Слово =a1…an выводимо, если в P имеются правила Ja1Bi2, Bi2a2Bi3, …, Binan ФУНКЦИОНИРОВАНИЯ КОНЕЧНОГО АВТОМАТА 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 SV декартова произведения SV в множество W. Иногда, для краткости используют обозначение: s+=s(t+1), s=s(t), v=v(t), w=w(t). Тогда функция переходов автомата Мили запишется в виде s+=(s,v), а функция выходов в виде w=(s,v). Автомат называется полностью опредленным, если D=D=SV. В противном случае автомат называется частичным. Иными словами, у полностью определенного автомата области определения функций [,] и [,] совпадают с декартовым произведением SV, а у частичного автомата эти функции определены на подмножествах D и D множества SV. Способность автомата фиксировать состояния, представляющие классы входных последовательностей (события), называют памятью автомата. Каждое состояние sS автомата представляет некоторый класс эквивалентности {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 QA <q0,0 > <q0,1 > <qz,0 > <qz,1> Q QA 0 <qz> 1 a1b1a2 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 QA QA <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,> имеет следующий граф переходов: Этот распознаватель является не всюду определенным. Замечание Детерминированный частичный конечный автомат можно преобразовать в автомат Мили, если ввести фиктивное состояние на которое заменяют все неопределенные переходы. В качестве примера преобразования частичного автомата в автомат всюду определенный ,рассмотрим полученный граф переходов детерминированного акцептора. Имеем следующий автомат Мили: Моделировать работу автомата Мили существенно проще, чем работу произвольного конечного автомата .Однако , следует учитывать и затраты на моделирование автомата Мили, которые больше, чем затраты на моделирование недетерминированного частичного автомата.