Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Автомат Мура - модель управляющего автомата




Для формирования автоматной модели необходимо:

1) все блоки "оператор" пометить символами yi и qi; управляющий автомат по сигналу “1” формирует команду для операционного автомата на исполнение yi-ой операции и одновременно переходит в qi-е состояние; операционный автомат после исполнения команды формирует сигнал "1" для управляющего автомата;

2) все блоки "предикат" пометить символами pi; операционный автомат проверяет pi -ое условие и формирует сигналы “p” или “`p” для управляющего автомата;

3) блок "начало" пометить символом q0; управляющий автомат до команды “старт” (символ "1") находится в состоянии q0;

4) блок "конец" пометить символом qk=q0 (управляющий автомат переводится в начальное состояние); после исполнения алгоритма на управляющий автомат подается команда “стоп” (символ "0").

Пусть даны блок-схемы некоторых алгоритмов (см. рис.6.11).

Разметка блок-схемы согласно правилам позволяет выделить множества входных и выходных сигналов управляющего автомата и его внутренние состояния:

a) X={0;1;p;p-}; Y={0; y1}; Q={q0;q1};

b) X={0;1;p;p-}; Y={0; y1; y2}; Q={q0;q1;q2};

c) X={0;1;p-1;p1.p2;p1.p-2}; Y={0;y1}; Q={q0;q1};

d) X={0;1;p1;p-1.p2;p-1.p-2}; Y={0;y1; y2}; Q={q0;q1;q2}.

Поведения автоматов Мура, реализующих управление алгоритмами, приведены в таблице 6.13.

 

Таблица 6.13

a)   b)
текущее состояние (выход) входные символы   текущее состояние (выход) входные символы
  p p-   p p-
q0(0) q1   q0(0) q1 q2
q1(y1) q0 q1   q1(y1) q0
          q2(y2) q0
c)   d)
текущее состояние (выход) входные символы   текущее состояние (выход) входные символы
  p-1 p1.p2 p1.p-2   p1 p-1.p2 p-1.p-2
q0(0) q1   q0(0) q1 q2 q0
q1(y1) q1 q0 q1   q1(y1) q0
            q2(y2) q0
                             

Пример: на рис. 6.12. дана блок-схема алгоритма. Найти таблицу поведения управляющего автомата Мура.

Разметка блок-схемы согласно правилам позволяет выделить множества входных сигналов для управляющего автомата и его внутренние состояния:

X={0;1; p-; p1.p2; p1.p-2; (p3.p4Úp-3.p5); (p3.p-4Úp-3.p-5)};

Q={q0; q1; q2; q3; q4}.

Введем обозначения k1=(p3.p4Úp-3.p5), k2=(p3.p-4Úp-3.p-5).

На входе оператора 2 действуют также два сигнала: от выхода оператора 1 сигнал (p1×p2) и от выхода оператора 3 - (p3.p-4 Ú p-3.p-5). Переход в заключительное состояние также из двух состояний: от оператора 4 по сигналу “1” и от оператора 3 по сигналу (p3.p-4 Ú p-3.p-5). Введем обозначения k1=(p3.p4 Ú p-3.p5), k2=(p3.p-4 Ú p-3.p-5).

Поведение управляющего автомата Мура представлено в таблице 6.14.

Таблица 6.14

текущие состояния (выход) входные символы
  p-1 p1.p2 p1.p-2 k1 k2
q0 (0) q1
q1 (y1) q1 q2 q4
q2 (y2) q3
q3 (y3) q0 q2
q4 (y4) q0

Микропрограммный автомат

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

Элементарная операция, выполняемая операционным автоматом за один шаг и приводимая в действие одним управляющим сигналом от управляющего автомата, называется микрооперацией.

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

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

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

Такты Операторы и условия Комментарии
  y1: РгВ:=ШиВх принять во входной регистр сумматора В первый операнд из входной шины ШиВх;
  y2: Рг1:=ШиВх принять в регистр 1 АЛУ второй операнд из входной шины ШиВх;
  условие второй операнд положительный?
  p1 "да",
  p-1 "нет";
  y3: РгА:=Pг1 если второй операнд положительный, то принять во входной регистр сумматора А второй операнд из Рг1 в прямом коде;
  y4: РгА=-Рг1 если второй операнд отрицательный, то принять во входной регистр сумматора А второй операнд из Рг1 в обратном коде;
  условие операция сложения?
  p2 "да",
  p-2 "нет";
  y5: РгСм:=РгА+РгВ если p2, то принять в выходной регистр сумматора См значение cуммы двух операндов;
  y6:: РгСм:=РгА+РгВ+1 Если не p2, то` принять в выходной регистр сумматора См значение суммы двух операндов и прибавить "+1";
     
  y7: ШиВых:=РгСм Выдать в шину выхода ШиВых значения выходного регистра РгСм сумматора.

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

Таблица 6.15

qÎQ символы входного алфавита xÎX
  p1 p-1 p2 p-2
q0 q1; y1
q1 q2; y2
q2 q3; y3 q4; y4
q3 q5; y5 q6; y6
q4 q5; y5 q6; y6
q5 q7; y7
q6 q7; y7
q7 q0; -

В таблице 6.15 дано описание автомата Мили на основе выполненной разметки блок-схемы алгоритма.

Эквивалентность автоматов

Эквивалентность автоматов определяют по их реакции на входные последовательности символов, то есть по формированию одинаковых выходных последовательностей.

Так как модель автомата представляет трехосновную алгебру, то для сравнения двух автоматов необходимо найти три оператора, формирующих отображение множеств X, Q и Y одного автомата на соответствующие множества другого автомата. После этого необходимо оценить влияние этих операторов на исполнение функций переходов и выходов каждым автоматом.

Рассмотрим модели двух абстрактных автоматов:

Пусть даны операторы:

Если при исполнении функций переходов и выходов выполняются условия

 

то совокупность операторов J=<f; g; h> определяет гомоморфное отображение автомата М1 на автомат М2 когда каждому значению x1kÎX1, y1jÎY1 и q1iÎQ1 соответствуют единственные образы x2kÎX2, y2jÎY2,, q2iÎQ2.

Пусть даны операторы:

Если при исполнении функций переходов и выходов выполняются условия:

то совокупность операторов J-1=<f-1;g-1;h-1> определяет гомоморфное отображение автомата М2 на автомат М1 .

Если найдены операторы J и J-1, для которой

J×J-1 =1,

то такое взаимное отображение называют изоморфным.

Изоморфное отображение рефлексивно, симметрично и транзитивно.

Особый интерес для оценки эквивалентности автоматов представляет случай, когда f =1, т. е. X1=X2=X. Тогда для xkÎX имеем:

Если существуют такие q1i и q2i, для которых значения функций выходов j1(q1i; xk) и j2(q2i; xk) совпадают для всех xkÎX, то есть

 

j1(q1i; xk)=j2(q2i; xk),

то g=g-1=1. При этом Y1=Y 2 =Y. Такие состояния q1i и q2i называют неотличимыми по выходу автоматов.

В результате просмотра множества пар неотличимых состояний (q1i; q2i)Î(Q1ÄQ2) можно найти несколько подмножеств, которые формируют разбиение множества {(q1i; q2i)}Í(Q1ÄQ2) на классы неотличимых состояний.

Если для пары неотличимых состояний (q1i; q2i) значения функций переходов формируют для всех символов xkÎX также пары неотличимых состояний (y(q1i[t]; xk[t]); y(q2i[t]; xk[t]))Î (Q1ÄQ2), то состояния q1i и q2i называют совместимыми.

В результате просмотра {(y(q1i[t]; xk[t]); y(q2i[t]; xk[t]))}Í (Q1ÄQ2) всех пар одного класса неотличимых состояний формируется разбиение этого класса на классы совместимых состояний.

Состояния q1i и q2i являются эквивалентными, если для всякой входной последовательности a=(x1x2...xn) выполняется условие:

М1(q1i; a)=М2(q2i; a).

Поэтому необходимо проследить изменения значений функций переходов (y(q1i[t]; xk[t]); t(q2i[t]; xk[t])) для каждого символа входной последовательности a=(x1x2...xn).

Множество всех пар (q1i; q2i), для которых выполняется условие М1(q1i; a)=М2(q2i; a) формирует класс эквивалентных состояний.

Если входной и выходной алфавиты у двух автоматов совпадают, то автомат M2 покрывает автомат M1, если j2(h(q1i); a)=j1(q1i; a) для всех aÎXn, а автомат M1 покрывает автомат M2, если входной и выходной алфавиты у этих автоматов общие и j1(h-1(q2i); a)=j2(q2i; a) для всех aÎXn.

По условиям изоморфизма автоматы M1 и M2 эквивалентны, если M1 покрывает M2 и M2 покрывает M1. У эквивалентных автоматов существуют эквивалентные состояния q1i и q2i.

Если для эквивалентных автоматов М1 и М2 |Q1|<|Q2|, то автомат М1, имеющий меньшее число состояний, покрывает автомат М2, имеющий большее число состояний. Автомат, который нельзя покрыть автоматом с меньшим числом состояний, называют минимальным.

Для поиска эквивалентных состояний q1i и q2i удобно использовать таблицы переходов пар состояний двух автоматов. В каждой паре левый элемент есть состояние автомата М1, а правый - состояние автомата М2. Левый столбец такой таблицы предназначен для указания неотличимых пар состояний, которые формируются по таблицам выходов автоматов, руководствуясь следующим правилом:

"если среди множества состояний двух автоматов Q1 и Q2 найдется такая пара (q1;q2), у которой значения функций выходов равны для каждого символа входного алфавита, т.е. j1(q1i; xk)=j2(q2i; xk), то состояния q1 и q2 неотличимы;"

Позициями таблицы являются пары состояний двух автоматов, в которые они переходят из соответствующих пар неотличимых состояний при подаче на входы автоматов символа xk. Значения очередных состояний могут быть найдены по таблицам переходов автоматов М1 и М2 для соответствующего символа xkÎX.

Пусть таблица переходов пар состояний двух автоматов представлена таблицей 6.16, где пары неотличимых состояний, приведенные в левом столбце.

Таблица 6.16.

неотличимые состояния (q1;q2) xiÎX
x1 x2 xn
(q1i;q2j) (q1i;q2j) (q1j;q2p) (q1s;q2i)
(q1j;q2p) (q1i;q2j) (q1p;q2p) (q1s;q2i)
(q1p;q2s) (q1j;q2p) (q1j;q2p) (q1j;q2p)
(q1s;q2i) (q1s;q2p) (q1p;q2j) (q1j;q2i)

Анализ таблицы показывает, что

· состояния q1i и q2j совместимы, т.к. при приеме каждого символа входного алфавита неотличимые состояния автоматов М1 и М2 переходят в в пары также неотличимых состояний;

· состояния q1p и q2s совместимы, т.к. при приеме каждого символа входного алфавита неотличимые состояния автоматов М1 и М2 остаются в одной паре неотличимых состояний;

· состояния q1j и q2p несовместимы, т.к. при приеме символа x2 неотличимые состояния автоматов М1 и М2 переходят в различные пары неотличимых состояний;

· состояния q1s и q2i несовместимы, т.к. при приеме каждого символа входного алфавита неотличимые состояния автоматов М1 и М2 переходят в различные пары неотличимых состояний.

Следовательно, автоматы М1 и М2, даже при наличии совместимых состояний, не эквивалентны между собой.

 

Пример: даны автомат M1=<X1; Y1; Q1; y1; j1,>, где X1={0;1}, Y1={0; 1}, Q1={q11; q12; q13}, y1 и j1 (см. таблицу a)) и автомат M2=< X2; Y2; Q2; y2, j2>, где X2={0;1}, Y2={0;1}, Q2={q21; q22}, y2 и j2 (см. таблицу b)). Определить эквивалентность автоматов М1 и М2.

Таблица a). Таблица b).

qÎQ1 xÎX1   qÎQ2 xÎX2
         
q11 q13; 0 q12; 1   q21 q21; 0 q22; 1
q12 q11; 1 q13; 0   q22 q21; 1 q21; 0
q13 q11; 0 q12; 1        
                   

 

Для автоматов М1 и М2 неотличимыми по выходу являются пары состояний (q11; q21), (q12; q22) и (q13; q21). При этом формируются два класса неотличимых состояний {(q11;q21);(q13;q21)} и {(q12; q22)}.

Если для неотличимой пары (q11;q21) при входном символе "0" автоматы М1 и М2 переходят в неотличимую пару состояний (q13;q21), а при входном символе "1" - в неотличимую пару (q12;q22), то состояние q11 автомата М1 и состояние q21 автомата М2 являются совместимыми.

Если для неотличимой пары состояний (q12; q22) при входном символе "0" автоматы М1 и М2 переходят в неотличимую пару состояний (q11; q21), а при входном символе "1" - в неотличимую пару (q13; q21), то состояние q12 автомата М1 и состояние q22 автомата М2 также являются совмеcтимыми.

И наконец, если для неотличимой пары состояний (q13; q21) при входном символе "0" автоматы М1 и М2 переходят в неотличимую пару состояний (q11; q21), а при входном символе "1" - в неотличимую пару (q12; q22), то состояние q13 автомата М1 и состояние q21 автомата М2 являются совместимыми.

Если состояние q13 автомата М1 совместимо с состоянием q21 автомата М2, а состояние q21 автомата М2 совместимо с состоянием q11 автомата М1, то согласно свойству транзитивности состояние q11 автомата М1 совместимо с состоянием q13 автомата М1. Проверку эквивалентности следует проверять по условию М1(q1i; a)=М2(q2i; a).

Пусть для автомата М1 имеем q11=q0 и a=(01010101). Тогда процесс обработки входного слова формирует следующие последовательности:

вход: 0[1] 1[2] 0[3] 1[4] 0[5] [6] 0[7] 1[8];

q: q11[1] q13[2] q12[3] q11[4] q12[5] q11[6] q12[7] q13[8] q12[9];

выход: 0[1] 1[2] 1[3] 1[4] 1[5] 1[6] 1[7] 1[8],

то есть b1= (01111111).

 

Пусть для автомата М2 имеем q21=q0 и a=(01010101). Тогда процесс обработки входного слова формирует следующие последовательности:

 

вход: 0[1] 1[2] 0[3] 1[4] 0[5] 1[6] 0[7] 1[8];

q: q21[1] q21[2] q22[3] q21[4] q22[5] q21[6] q22[7] q21[8] q22[9];

выход: 0[1] 1[2] 1[3] 1[4] 1[5] 1[6] 1[7] 1[8],

то есть b2=(01111111).

 

Итак, автоматы М1 и М2 эквивалентны. Так как автомат М2 имеет меньшее число внутренних состояний, то он покрывает автомат М1.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...