Недетерминированный автомат
При проектировании автоматов часто возникают ситуации, когда для некоторых символов входного алфавита не заданы значения функций выходов и/или переходов. Это приводит к тому, что в таблицах выхода и/или переходов не определены отдельные позиции. В такую позицию можно поместить любой символ выходного алфавита или алфавита состояний. Пусть таблицами 6.21 и 6.22 дано описание недетерминированного автомата.
Эквивалентность состояний автомата определяют по реакции автомата на входную последовательность a=(x1x2...xp). Если существуют qi и qj, для которых значения функций выходов j(qi;xk) и j(qj; xk) определены для некоторых xkÎX и они совпадают, или значение одной из функций покрывает безразличную позицию другой или значения обеих функций не определены для некоторых xkÎX, то состояния qi и qj называются неотличимыми. Например, такими парами по таблице 6.21 являются (qp; qt), (qp; qv), (qr; qu), (qr; qs), (qs; qu), (qu;qv). Если существуют состояния qi и qj, значения функции выходов которых различны хотя бы для одного xkÎX, т. е. j(qi; xk)¹j(qj;xk), то такие состояния называются отличимыми. Например, такими парами являются (qp; qr), (qp; qs), (qp; qu), (qr; qt), (qr; qv), (qs; qt), (qs; qv), (qt; qu) и (qt; qv).
Если множеству неотличимых пар принадлежат (qi; qj), (qj; qk) и (qi; qk), то {qi; qj; qk} формирует класс неотличимых состояний Q'i (условие транзитивности). Например, Q'1={qr; qs; qu}. Если множеству неотличимых пар принадлежат (qi; qj), (qj; qk), но не принадлежит (qi; qk), то формируются два класса неотличимых состояний {qi; qj} и {qj; qk}. При этом одно состояние qj принадлежит двум классам неотличимости. Например, Q'2={qp; qt}, Q'3={qp; qv} и Q'4={qu; qv}. Выходные последовательности bi и bj с неопределенными символами считаются неотличимыми, если в каждой позиции, где выходные символы определены, они совпадают. Например, неотличимыми являются b1=(0*1*1*), b2=(011***), b3=(*1*01*) и b4=(***011). Выходная последовательность bi=(y1y2... yp) покрывает выходную последовательность bj=(y1*...*yp), в которой могут быть неопределенные символы, если всякий определенный символ в последовательности bj равен соответствующему символу в слове bi. Например, bi=(100100) покрывает bj=(1*0**0) или bk=(**0*0*). Это условие записывают так: bi³bj. Если функция переходов определена для всех символов слова a=(x1x2...xp), кроме, возможно, последнего - xn, то есть qp= y(...(y(y (q0;x1);x2);...xp-1), то последовательность a=(x1x2...xp) называется допустимой для автомата, находящегося в состоянии q0. Например, для q0=qp последовательность a=(x1xnx2x1x2x1) является допустимой, т. к. qp[1]qr[2]qr[3]qt[4]qs[5]*[6], а последовательность a=(x1xnx2x2xnx1) - недопустимой, т. к. qp[1]qr[2]qr[3]*[4]. Состояния qi и qj называют совместимыми для допустимой последовательности a, если j(qi; a) неотличима от j(qj; a). Если автомат, начав работу в состоянии qi или qj, формирует на выходе одинаковые последовательности, то состояния qi и qj можно заменить эквивалентным состоянием q. Например, состояния qp и qt (см. таблицы) являются совместимыми для входной последовательности a= (x1x2xnx1x1x1): вход: x1- x2- xn- x1- x1- x1; вход: x1- x2- xn- x1- x1- x1; q: qp- qr- qt- qp- qr- qp; q: qt- qs- qp- qt- qs- *; выход: ys- yj- yt- ys- yi- ys, выход: ys- *- yt- ys- yi - *, то есть b1=(ysyjytysyiys). то есть b2=(ys*yt ys yi*).
При этом последовательность b1 покрывает последовательность b2, т. е. b1>b2. Состояния qr и qu (cм. таблицы) не являются совместимыми для входной последовательности a= (x2x2x2xnx1x2), так как вход: x2- x2- x2- xn- x1- x2; вход: x2 - x2- x2 - xn- x1- x2; q: qr- qt- qr- qt- qp- qr; q: qu - qv- qv - qv- qp- qr; выход: yj- yp- yj- yt- ys- yj; выход: yj - yi- yi - * - ys- yj. то есть b1=(yjypyjytysyj). то есть b=(yjyiyi*ysyi). Следовательно, состояния qr и qu не эквивалентны. Для поиска совместимых состояний следует использовать таблицу переходов пар неотличимых состояний. Левый столбец этой таблицы предназначен для указания пар неотличимых состояний. Позициями этой таблицы являются пары состояний, которые определяются по таблице переходов при приеме символа xkÎX, т.е. (y(qi; xk); y(qj; xk)). Если одна или обе функции переходов имеют неопределенное значение для xkÎX, то в соответствующей позиции ставится знак "*". Пусть таблица переходов пар неотличимых состояний представлена таблицей 6.23.
Анализ таблицы показывает, что · состояния qp и qv совместимы, так как при приеме символа xn переходят в неотличимую пару состояний (qp; qt); · состояния qr и qs совместимы, так как. при приеме символа x2 переходят в неотличимую пару состояний (qp; qt); · состояния qs и qu совместимы, так как при приеме символа x2 переходят в неотличимую пару состояний (qp; qv); · состояния qp и qt совместимы, так как при приеме символа x1 переходят в неотличимую пару состояний (qr; qs); · состояния qu и qv совместимы, так как при приеме символа x2 переходят в одно состояние qv, а при приеме символа xn переходят в неотличимую пару состояний (qp; qt); · состояния qr и qu не совместимы, так как при приеме символа xn переходят в пару отличимых состояний (qr; qt), а при приеме символа x2 - в пару отличимых состояний (qt; qv); следовательно, класс Q'1 следует разложить на два класса совместимых состояний Q'5={qr; qs} и Q'6={qs; qu}. Если есть совместимые пары (qi; qj), (qj; qk) и (qi; qk), то по условию транзитивности формируется класс совместимых состояний Q'i={qi; qj; qk..}. Таких пар в данном примере нет.
Если множеству совместимых пар принадлежат пары (qi; qj), (qj; qk) и не принадлежит пара (qi; qk), то есть не выполняется условие транзитивности, то формируются два класса совместимых состояний Q'i= {qi; qj..} и Q'j={qj; qk..}. Таких пар в данном примере четыре. Поэтому должно быть сформировано пять классов совместимости: Q'2={qp;qt}, Q'3={qp;qv}, Q'4={qu;qv}, Q'5={qr;qs} и Q'6=(qs;qu}. Множество совместимых классов называется согласованным, если для любого класса из этого множества и любых его элементов qi и qj значения функций переходов y(qi; xk) и y(qj; xk) принадлежат только одному совместимому классу или одному состоянию для любого символа xk. В данном примере это условие выполняется (см. таблицу 6.24).
Множество совместимых и согласованных классов называется замкнутым, если любое состояние автомата принадлежит хотя бы одному из этих классов. В данном примере это условие также выполняется. Замкнутое множество совместимых и согласованных классов называется минимальным, если все внутренние состояния автомата принадлежат минимальному числу согласованных классов. В данном примере минимальный автомат могут представлять три согласованных класса: Q'2={qp; qt}, Q'4={qu; qv} и Q'5={qr; qs}. Состояния каждого класса можно представить эквивалентным состоянием. Пусть q'1«{qp; qt}, q'2«{qu; qv}, q'3«{qr; qs}. Поведение минимального автомата описано таблицами 6.25 и 6.26. Таблица 6.25 Таблица 6.26
Анализ показывает, что в результате поиска неотличимых и совместимых состояний, их согласования и склеивания получен детерминированный автомат, имеющий меньшее число состояний. Для проверки эквивалентности заданного недетерминированного и минимального детерминированного автоматов следует рассмотреть их реакцию на допустимую входную последовательность.
Пусть a=(x1x2x1x2xnx1x2x1). Для недетерминированного автомата имеем вход: x1 - x2 - x1 - x2 - xn - x1 - x2 - x1; q: qp - qr - qt - qs - qp - qt - qs - qp; выход: ys - yj - ys - * - yt - ys - * - ys. Для минимального автомата имеем: вход: x1 - x2 - x1 - x2 - xn - x1 - x2 - x1; q: q1 - q3 - q1 - q3 - q1 - q1 - q3 - q1; выход: ys - yj - ys - yj - yt - ys - yj - ys. Так найден минимальный автомат, который покрывает исходный недетерминированный автомат. Алгоритм минимизации числа внутренних состояний недетерминированного автомата: шаг 1: выделить в таблице выходов автомата множества неотличимых и отличимых пар по правилу: "а) если среди множества пар состояний автомата (qi; qj)Î(QÄQ) найти такие qi и qj, для которых значения функций выходов j(qi;xk) и j(qj;xk) определены и они совпадают, или значение одной из функций покрывает безразличную позицию другой или значения обеих функций не определены, то пару (qi; qj) считать неотличимой; b) если среди множества пар (qi; qj)Î(QÄQ) найти такие qi и qj, для которых значения функции выходов j(qi; xk) и j(qj;xk) различны хотя бы для одного xkÎX, то пару (qi; qj) считать отличимой "; в результате анализа таблицы 6.21 пары неотличимых состояний есть (qp; qt), (qp; qv), (qr; qu), (qr; qs), (qs; qu), а пары отличимых состояний - (qp; qr), (qp; qs), (qp; qu), (qr; qt), (qr; qv), (qs; qt), (qs; qv), (qt; qu), (qt; qv). шаг 2: на множестве пар неотличимых состояний определить классы неотличимых состояний по правилу: "а) если среди множества пар неотличимых состояний существуют пары (qi; qj), (qj; qk) и (qi; qk), то по условию транзитивности формируют класс неотличимых состояний Q'i ={qi; qj; qk }; b) если среди множества пар неотличимых состояний существуют пары (qi; qj), (qj; qk) и не существует пара (qi; qk), то формируют два класса неотличимых состояний Q'l={qi; qj} и Q'k={qj; qk}, при этом состояние qj принадлежит двум классам"; в результате анализа множества неотличимых пар сформированы классы неотличимых состояний Q'1={qr; qs; qu}, Q'2={qp; qt} и Q'3={qp; qv}; при этом Q'1ÈQ'2ÈQ'3=Q, Q'1ÇQ'2=Æ, Q'1ÆQ'3=Æ, но Q'2ÇQ'3¹Æ; шаг 3: составить таблицу переходов для пар неотличимых состояний: "левый столбец таблицы представить парами неотличимых состояний, которые сгруппированы по классам неотличимости; позиции таблицы заполнить по таблице переходов для каждой неотличимой пары (qi; qj) и для каждого символа xkÎX парами значений (y(qi; xk);y(qj; xk)); если хотя бы одно из значений функции переходов y(qi;xk) или y(qj;xk) имеет значение "*", то паре (y(qi;xk);y(qj;xk)) присвоить значение "*""; шаг 4: на множестве пар неотличимых состояний по таблице переходов определить пары совместимых состояний: "если для пары неотличимых состояний (qi; qj) значения функции переходов (y(qi; xk);y(qj; xk)) для xkÎX принадлежат также множеству пар неотличимых состояний (левому столбцу таблицы), то состояния qi и qj совместимы, иначе пару (qi; qj) удалить из множества пар неотличимых состояний (из левого столбца таблицы)";
в результате анализа можно установить, что совместимыми парами являются (qp; qv), (qr; qs), (qs; qu), (qp; qt) и (qr; qu). шаг 5: на множестве пар совместимых состояний найти классы совместимых состояний: "а) если множеству совместимых пар принадлежат пары (qi; qj), (qj; qk) и (qi; qk), то по условию транзитивности формируют класс совместимых состояний Q'i={qi; qj; qk..}; b) если множеству совместимых пар принадлежат (qi; qj), (qj; qk) и не принадлежит (qi; qk), т.е. не выполняется условие транзитивности, то формируют два класса совместимых состояний Q'i= {qi; qj;...} и Q'j={qj; qk;...}"; в результате анализа множества совместимых пар выявлены классы совместимости Q'2={qp; qt}, Q'3={qp; qv}, Q'4={qu; qv},Q'5={qr; qs} и Q'6=(qs; qu}. шаг 6: найти наименьшее множество совместимых классов, покрывающих все исходные состояния автомата: (Q'2ÈQ'4ÈQ'5) = {qp; qr; qs; qt; qu; qv}. шаг 7: на множестве классов совместимых состояний, выбранных на шаге 6, найти согласованные состояния: "если для любого класса наименьшего множества совместимых состояний и любых его элементов qi и qj значения функций переходов y(qi; xk) и y(qj; xk) принадлежат одному совместимому классу для всех символов xkÎX, то такие классы являются согласованными и следует перейти к шагу 8, иначе перейти к шагу 6 и найти другое наименьшее множество классов совместимых состояний, покрывающее все исходные состояния автомата"; в результате анализа таблицы 6.23 установлено, что все состояния согласованы в минимальном наборе классов совместимых состояний Q'2, Q'4, Q'5; шаг 8: состояния каждого класса согласованных состояний заместить эквивалентным состоянием: q'1«{qp; qt}, q'2«{qp; qv}, q'3«{qu; qv}, q'4«{qr; qs} и q'5«{qs; qu}; отличимые состояния сохраняют свое значение в описании минимального автомат; составить таблицы переходов и выходов. Пример: дан недетерминированный автомат M = <X; Y; Q; y; j>, где X={x1; x2; x3; x4}, Y={0; 1}, Q={q1; q2; q3; q4; q5}, функции y и j заданы таблицей. Найти минимальный автомат.
.
Проверим согласование на различных наборах классов совместимых состояний: а) пусть Q''1={q1; q2} и Q''4={q3; q4; q5}.
Анализ показывает, что выбранные классы не согласованы, так как для x1 и x3 класс совместимых состояний Q''1 переходит в различные классы Q''1 и Q''4. b) пусть Q''1={q1; q2}, Q''2={q1; q4} и Q''41={q3;q5}.
Анализ показывает, что выбранные классы также не согласованы, так как для x1 и x3 класс совместимых состояний Q''1 переходит в различные классы Q''1 и Q''41. c) пусть Q''1={q1; q2}, Q''3={q2; q3} и Q''42={q4; q5}.
Анализ показывает, что выбранные классы согласованы, так как для любого символа все классы совместимых состояний переходят в один класс совместимых состояний. Введем обозначения состояний, замещающих согласованные классы: q'1«{q1; q2}, q'2«{q2; q3}, q'3«{q4; q5}.
Для проверки эквивалентности автоматов подадим на вход каждого из них одинаковую последовательность символов: а) пусть a= (x1x2x3x4) для исходного автомата: для минимального автомата: вход: x1- x2- x3- x4; вход: x1- x2- x3- x4; q: q1- q2- q5- q1- q2; q: q'1-q'2- q'3- q'1 - q'1; выход: 0- 1- 1- *; выход: 0- 1- 1- *; то есть b=(011*). то есть b=(011*).
b) пусть a= (x4x3x2x1) для исходного автомата: для минимального автомата: вход: x4- x3- x2- x1; вход: x4- x3- x2- x1; q: q1- q2- q2- q5- *; q: q'1- q'1- q'2- q'3- *; выход: *- 0- 1- *; выход: *- 0 -1- *; то есть b= (*01*). то есть b= (*01*). Так подтверждается эквивалентность исходного и минимального недетерминированных автоматов. Структурный автомат Если элементарный автомат представляет собой устройство, имеющее один вход и один выход, то последовательное и/или параллельное соединение нескольких автоматов формирует сеть. Под действием входных сигналов происходит изменение внутренних состояний автоматов, что порождает изменение состояния всей сети. При описании сети необходимо также вводить понятие дискретного времени t. Функция y каждого автомата реализует задержку на один такт изменения внутреннего состояния, что формирует задержку изменения состояния всей сети. Совокупность функций j автоматов, принадлежащих сети, формирует выходной сигнал всей сети. Сеть автоматов, вход которой есть (x1, x2,..xn)ÎXn, а выход - (y1, y2, …yp)ÎYp, называют структурным автоматом. Структурный автомат содержит m элементарных автоматов с одним входом и одним выходом, множество состояний которых в момент времени t формируют состояние сети (q1,q2,..qm)ÎQm. Одновременное изменение внутренних состояний всех автоматов формирует синхронный режим работы сети. В этом случае состояние сети из m автоматов M1, M2,...Mm может быть представлено для каждого момента времени t вектором q[t]=(q1[t];q2[t];...qm[t]). Каждая компонента этого вектора описывает внутреннее состояние соответствующего автомата, то есть q1ÎQ1, q2ÎQ2,...qmÎQm. Число состояний сети равно произведению числа состояний составляющих его автоматов, так как Q=(Q1ÄQ2Ä...ÄQm). Поэтому синхронный режим работы сети часто называют произведением автоматов. Разновременное и последовательное изменение внутренних состояний автоматов формирует асинхронный режим работы сети. Изменение состояния такой сети из m автоматов M1, M2,...Mm для каждого момента времени t может быть описано изменением внутреннего состояния только одного автомата, то есть q[t]=qi[t] где qiÎQi. Число состояний сети равно сумме числа внутренних состояний составляющих его автоматов, так как Q=(Q1ÈQ2È...ÈQm). Поэтому асинхронный режим работы сети часто называют суммой автоматов. Все разнообразие соединений автоматов можно рассмотреть на примере двух простых автоматов М1 и М2, поведение которых представлено таблицами 6.27 и 6.28.
6.2.1. Произведение автоматов При синхронном режиме работы состояния qÎQ автомата М определяются прямым произведение состояний автоматов M1 и M2, т. е. q=(q1i; q2j)Î(Q1ÄQ2).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|