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

advertisement
Теория автоматов
Определение автомата и его разновидности. Таблицы и графы переходов и выходов.
Подавтоматы. Теорема о приведенном автомате
Операции с автоматами
Преобразование автомата Мили в автомат Мура и автомата Мура в автомат Мили.
Эквивалентность автоматов. Различимость состояний автоматов. Минимизация
автоматов. Синтез автоматов. Распознающие автоматы
Автомат — система механизмов, устройств, в которой полностью автоматизированы
процессы получения, преобразования, передачи энергии, материалов, информации Термин
"автомат" используется в двух аспектах:
1) техническом,
2) математическом.
При математическом подходе под автоматом понимается математическая модель
технического устройства, у которого должны быть входы, внутренние состояния и
выходы. Относительно деталей структуры устройства сведений не должно быть.
При техническом подходе под автоматом понимается вполне реальное устройство,
например, телефонный автомат, торговый автомат и т. д. В данном случае, естественно,
известными являются детали внутреннего строения устройства.
Частным и важным случаем автомата выступает цифровой автомат (ЦА), в котором
полностью автоматизированы процессы приема, преобразования, хранения и выдачи
цифровой информации.
С точки зрения сигналов ЦА полезно определить как систему, которая может
принимать входные сигналы, под их воздействием переходить из одного состояния в
другое, сохранять его до прихода следующего входного сигнала, выдавать выходные
сигналы.
ЦА считается конечным, если конечны множества входных сигналов X, состояний S
и выходных сигналов Y. Конечный автомат можно поставить в соответствие такому
устройству, как компьютер. Компьютер перерабатывает поступающие входные данные в
выходные данные (результат), но этот результат соответствует не только входным
данным, но и текущему состоянию компьютера, т.е. тем данным, которые хранятся в
памяти компьютера, например, результаты предыдущих вычислений, программы
вычислений.
Работа ЦА осуществляется в автоматном времени, определяемом числом периодов
поступления входных сигналов.
Абстрактным автоматом называют математическую модель дискретного устройства,
имеющего один входной канал, куда поступают последовательности символов какоголибо языка, один выходной канал, с которого снимают последовательности символов
какого-либо другого языка и находящегося в каждый из моментов дискретного времени в
каком-либо состоянии. Графически абстрактный автомат представлен рис.
Слова входного языка можно представить символами множества X={x 1,x2,...xn},
который называют входным алфавитом, а слова выходного языка - символами множества
Y={y1,y2,...yp}, который называют выходным алфавитом. Множество состояний автомата
S={s1,s2,...sm} называют алфавитом состояний.
Понятие состояние автомата используется для описания систем, выходные сигналы
которых зависят не только от входных сигналов в данный момент времени, но и от
некоторой предыстории, т.е. сигналов, которые поступали на входы системы ранее.
Следовательно, цифровые автоматы относятся к последовательностным схемам, которые,
как уже отмечалось, обладают памятью. Понятие состояние автомата соответствует
некоторой памяти о прошлом, поэтому ввод этого понятия позволяет устранить время
как явную переменную и выразить выходные сигналы как функцию состояний и входных
сигналов.
Работу абстрактного автомата следует рассматривать применительно к конкретным
интервалам времени, т.к. каждому интервалу дискретности t будет соответствовать свой
выходной сигнал y(t). Следовательно, функционирование автомата рассматривается через
дискретные интервалы времени конечной продолжительности. В абстрактной теории
цифровых автоматов считается, что входные сигналы воздействуют на синхронный
автомат в момент начала каждого i-того интервала (кванта) времени, выделенного
соответствующим синхроимпульсом (тактом), а изменение внутренних состояний
автомата происходит в интервалы времени между смежными синхроимпульсами, когда
нет воздействия входных сигналов.
Понятие «состояние» используют для того, чтобы установить функциональную
зависимость генерируемых автоматом символов и/или слов выходного языка от символов
и/или слов входного языка при реализации автоматом заданного алгоритма. Для каждого
состояния автомата sS и для каждого символа xX в момент дискретного времени [] на
выходе устройства генерируется символ yY. Эту зависимость определяет функция
выходов автомата . Для каждого текущего состояния автомата sS и для каждого
символа xX в момент дискретного времени [] автомат переходит в очередное состояние
sS. Эту зависимость определяет функция переходов автомата . Функционирование
автомата состоит в порождении двух последовательностей: последовательности
очередных состояний автомата (s1[[1]s2[2]s3[3]...) и последовательности выходных
символов (y1[1]y2[2]y3[3]...), которые для последовательности символов (x1[1]x2[2]x3[3]...)
разворачиваются в моменты дискретного времени = 1,2,3,.... В прямоугольных скобках
указывают моменты дискретного времени, которые называют иначе тактами, в круглых
скобках - последовательности символов алфавитов X, Y и S.
Итак, математическая модель конечного автомата есть трехосновная алгебра,
носителями которой являются три множества X, Y и S, а операциями - две функции  и :

M =  X; Y; S;  (1.1)
где X={ x1;x2;...xn }
множество
символов входного алфавита;
Y={ y1;y2;...yp }
множество
символов выходного алфавита;
S={s1;s2;...sm}
множество
символов состояний автомата;
функция
переходов автомата для отображения пары (s;x)
SX)  S
текущего момента дискретного времени [] в состояние s
очередного момента дискретного времени [+1];
функция
выходов автомата для отображения пары (s;x)
SX) Y
текущего момента дискретного времени [] в символ y
выходного канала этого же момента дискретного
времени [].
Так как области определения функций переходов и выходов совпадают, то
обобщенный оператор поведения автомата можно представить так:
: SX) SY).
(1.2)
Функционирование автомата в дискретные моменты времени  может быть описано
системой рекуррентных соотношений:
q[   q; x;
(1.3)

y[  q x
Если на входе автомата имеем слово  = (x1x2x3...xn), то, считывая последовательно
символы этого слова, на выходе автомата генерируется последовательность символов
слова  по следующей схеме:
[1]=((s[1];x1[1]));
[2]=((s[1];x1[1])(s[2];x2[2])) = ((s[1];x1[1])(s[1];(x1[1]x2[2])));
……………………………………………..
(1.4)
[n]= ((s[1];x1[1])(s[2];x2[2]) ... (s[n];xn[n])) =
= ((s[1];x1[1])(s[1];(x1[1]x2[2])) ... (s[1];(x1[1]x2[2] ... xn[n])));
Так как на каждом i-ом такте к слову длины (i-1) приписывается справа очередной
символ (s[1];x1[1]x2[2]...xi[i]), то последовательность символов выходного слова можно
записать так:
= ((s;x1)(s;(x1x2))...(s;(x1x2...xn)))=((s;)).
(1.5 )
Если считывание символов входного слова  выполняется последовательно слева
направо, то всегда найдется такая последовательность (x1x2...xn-1)=, для которой
 = ((x1x2...xn-1)xn) =(xn),
(1.6)
где
 =(x1x2...xn-1) - "голова" слова  


xn - "хвост" слова .
Поэтому если входное слово  = (xn), то выходное слово  можно записать так:
= (s; ) = ((s; );xn).
(1.7)
Это означает, что последний символ слова  есть результат работы автомата,
начавшего работу в состоянии s и считавшего последний символ слова , но значение
этого символа зависит от всей входной последовательности.
Длина выходного слова всегда равна длине входного слова.
Изменение состояний автомата для последовательности символов слова  =
(x1x2x3...xn) может быть описано следующей схемой:
s[2] = (s[1];x1[1]);
s[3] = (s[2];x2[2]) = ((s[1];(x1[1]);x2[2]));
(1.8)
...............................................................................................................................
s[n+1] = (s[n];xn[n]) = (... ((((s[1];x1[1]);x2[2]);x3[3]);...xn-1[n-1]);xn[n]),
где s[1] - начальное состояние автомата.
Так как за один такт автомат считывает один символ входного слова, то в
последовательности состояний автомата можно не указывать номер такта, то есть.
s[n+1] = (... ((((s;x1);x2);x3)...xn-1);xn).
(1.9)
Если входное слово  = (xn), то изменение состояния автомата может быть описано
так:
s[n+1] = ((s; );xn).
(1.10 )
Это означает, что s[n+1] есть последнее состояние автомата, начавшего работу в
состоянии s и считавшего последний символ слова  в момент дискретного времени n.
Если функции переходов и выходов однозначно определены для каждой пары
(s;x)SX), то автомат называют детерминированным. В противном случае автомат
называют недетерминированным или частично определенным.
Если функция переходов и/или функция выходов являются случайными, то автомат
называют вероятностным.
Если у автомата задано начальное состояние s=s0S, в котором он находится всегда
до приема первого символа входного слова, то автомат называют инициальным. В этом
случае модель автомата записывают так:
M =  X;Y;S;;s0
(1.11)
Последовательность символов в слове  и последовательность состояний автомата s
однозначно определяются начальным состоянием автомата s=s0 и последовательностью
символов во входном канале . Поэтому отображение входного слова на выходное
слово чаще называют автоматным отображением, то есть = М(s0;), а М – автоматным
оператором.
Автоматное отображение обладает свойствами:
1) входное и выходное слова имеют одинаковую длину (свойство сохранения
длины);
2) yi-ый символ выходного слова зависит от всей последовательности символов
входного слова, до xi-го включительно; кроме того если то.
Задание конечного автомата:
Для описания (задания) ЦА используются разнообразные средства, называемые
языками, которые делятся на начальные и автоматные языки. Поскольку языки
базируются на алфавитах, то применительно к ЦА множество Х трактуется в качестве
входного алфавита, множество Y - выходного алфавита, а множество S - внутреннего
алфавита. Как и для других объектов, для автоматов используются разные таблицы,
матрицы, графы.
Наиболее общее при выработке выходных сигналов, формировании новых
состояний под действием входных сигналов отражается законом функционирования
автомата [4, 12]:
s(t)=  (s(t-1), x(t)),
y(t)=  (s(t-1), x(t)).
Как видно, закон функционирования представляет собой совокупность двух
функций: функции перехода  и функции выхода .
В формулах используются обозначения:
t
- данное автоматное время, t-1 - предыдущее автоматное время,  - оператор
формирования данного состояния s,  - оператор формирования данного выходного
сигнала y, х - входной сигнал.
Видно, что данное состояние s(t) зависит от предыдущего состояния s(t-1) и
входного сигнала в данный момент времени, что выходной сигнал в данный момент
времени так же определяется предыдущим состоянием и входным сигналом в данный
момент времени.
Автомат задан, если заданы:
1. Конечное множество входных сигналов, заданных с помощью входного алфавита
X={x1, x2,…, xm}
2. Конечное множество выходных сигналов, заданных с помощью выходного
алфавита y={y1, y2 ,..., yn}
3. Конечное множество состояний автомата заданного с помощью алфавита
S={s1,s2,...sm}
4. Начальное состояние автомата
5. Функция выходов, определяющая зависимость выходного сигнала и состояния
автомата y[kt]=fв(U[kt], a[kt]) где t – длительность такта k – номер такта. Конечный
автомат существует в конечном (дискретном) времени.
6. Функция переходов
Функция выходов и функция переходов является характеристическими функциями.
Таким образом, в определении конечного автомата фигурирует три множества и две
функции M={X, Y, S, fв, fп}
Функция перехода fп:X*S S
Функция выхода fв:X*S Y
Операторы, описывающие работу автомата, обычно задают таблицей переходов и
таблицей выходов.
В таблице переходов показывают в какое состояние попадает автомат от того или
иного входного сигнала. В таблице выходов показывают какой выходной сигнал
генерирует автомат в зависимости от типа входного сигнала и текущего состояния
автомата.
К примеру, рассмотрим таблицы переходов и выходов некоторого автомата.
Таблица переходов автомата
Состояние a2
Входной сигнал
a0
a1
x1
a1
a2
a3
x2
a0
a0
a0
Таблица выходов автомата
Состояние a2
Входной сигнал
a0
a1
x1
y2
y2
y1
x2
y2
y2
y2
a3
a3
a0
a3
y2
y3
В клетку таблицы переходов, находящуюся на пересечении столбца с буквой а i и
строки с буквой xj, записывается состояние автомата, в которое он переходит из состояния
аi при подаче на вход сигнала xj. В аналогичную клетку таблицы выходов записывается
выходной сигнал yi, который формируется автоматом при таком переходе.
Операторы переходов и выходов могут быть заданы одной таблицей, по которой
однозначно определяются переходы и выходы автомата.
Таблица переходов и выходов автомата
Выходной сигнал Cостояние
a0
a1
a2
a3
x1
a1 y2
a2 y2 a3 y1 a3 y2
x2
a0 y2
a0 y2 a0 y2 a0 y3
Большую наглядность обеспечивает задание конечных автоматов с помощью графов
или диаграмм состояний.
Граф автомата состоит из узлов, соединенных ветвями. Узлы (кружки на схеме
графа) отождествляют внутренние состояния автомата. Каждая ветвь графа, т.е.
ориентированная линия, стрелка которой указывает следующее состояние автомата,
отмечается входным сигналом, вызывающим в автомате соответствующий данной ветви
переход, и выходным сигналом, который возникает при этом переходе. Входной и
соответствующий ему выходной сигналы разделяются на чертеже запятой или косой
чертой. Если некоторый входной сигнал не меняет состояния автомата, то
соответствующая ветвь замыкается на кружке (узле), из которого она выходит.
Поскольку таблица состояний и граф (диаграмма) состояний несут одну и ту же
информацию, их можно преобразовать друг в друга. Каждое состояние представляется
кружком, а каждый элемент таблицы преобразуется в отрезок ориентированной линии,
соединяющей соответствующие кружки. Процедура обратного преобразования очевидна.
Типы конечных автоматов
1) по закону функционирования ЦА делятся на автоматы 1-го рода (автоматы Мили)
и ЦА 2-го рода. Последние автоматы в случае, когда нет явной зависимости от входных
сигналов x(t), являются автоматами Мура. Видимо, целесообразнее по первому критерию
автоматы делить на автоматы Мили и Мура;
В автомате Мили функция выходов  определяет значение выходного символа по
классической схеме абстрактного автомата. Математическая модель автомата Мили и
схема рекуррентных соотношений не отличаются от математической модели и схемы
рекуррентных соотношений абстрактного автомата, т.е.
M  X; Y; Q; ;  ;

(1.12)
 : (Q  X)  Q;
 : (Q  X)  Y.

q[  1]  (q[]; x[]);
(1.13)

 y[]  (q[]; x[]).
Особенностью автомата Мили является то, что функция выходов является
двухаргументной и символ в выходном канале y[] обнаруживается только при наличии
символа во входном канале x[].
Рис. 1.3. Функциональная схема автомата Мили.
В автомате Мура функция  определяет значение выходного символа только по
одному аргументу - состоянию автомата. Эту функцию называют также функцией меток,
так как она каждому состоянию автомата ставит метку на выходе. Математическая
модель и схема рекуррентных соотношений автомата Мура имеют вид:
M  X; Y; Q; ;  ;

(1.14)
 : (Q  X)  Q;
 : Q  Y.

q[  1]  (q[]; x[]);
(1.15)

 y[]  (q[]).
Особенностью автомата Мура является то, что символ y[]
существует все время пока автомат находится в состоянии q[].
в выходном канале
Рис. 1.4. Функциональная схема автомата Мура.
2) по конечности множеств X, Y, и S автоматы бывают конечными и бесконечными.
Может быть, данный критерий стоит трактовать как критерий по мощности ЦА;
3) по объему памяти автоматы делятся на автоматы с памятью
(последовательностные автоматы) и автоматы без памяти (логические комбинационные
схемы);
4) по степени раскрытия структуры автоматы бывают абстрактными автоматами
(детали структуры не раскрыты) и структурными автоматами (раскрыты детали
структуры);
5) по отношению между автоматами среди автоматов можно выделить
подавтоматы, надавтоматы. Если, например, известно, что ЦАА < ЦАВ, то автомат А
является подавтоматом автомата В, а автомат В - надавтоматом автомата А;
6) по полноте используемых переходов автоматы делятся на полностью
определенные автоматы и частично определенные автоматы;
7) по стабильности периода следования входных сигналов автоматы бывают
синхронными автоматами (период следования входных сигналов- постоянная величина) и
асинхронными автоматами (период - переменная величина);
8) по вероятности переходов автоматы делятся на детерминированные (не
вероятностные) и недетерминированные (вероятностные) автоматы;
9) при нулевой мощности множества внутренних состояний (| S |= 0) автомат
называется автономным, при | Y | = 0 - автоматом без выхода. Если среди состояний
автомата выделяется начальное состояние s0, то автомат называется инициальным;
10) по применению автоматы можно разделить на автоматы:
а) промышленные (сварочные, кузнечно-прессовые, литейные, строительные,
транспортные, упаковочные роботы, контрольные, диагностические и др.);
б) сельскохозяйственные (доильные, раздаточные, уборочные и др.);
в) торговые (газетные, упаковывающие, взвешивающие и др.);
г) учебные (обучающие, тестирующие, моделирующие, демонстрирующие и др.);
д) медицинские (искусственные органы, хирургические, диагностирующие,
дыхательные, тренирующие и др.);
е) информационные (видеомагнитофоны, системы "вопрос - ответ" и др.).
Объединение автоматов Мили и Мура представляет С-автомат, для которого схема
рекуррентных соотношений имеет вид:
q[  1]  (q[]; x[]);

(1.16)
 y1 []  1 (q[]; x[]);
 y []   (q[]).
2
 2
Рис.1. 5. Функциональная схема С-автомата.
Интересно выделить особые классы автоматов, математические модели которых
опираются только на два носителя алгебры.
Пусть X=. Тогда математическая модель и система рекуррентных соотношений
имеют вид:
M  Y; Q; ;  ;

(1.17)
 : Q  Q;
 : Q  Y.

q[  1]  (q[]);

 y[]  (q[]).
Функциональная схема автомата приведена на рис.1.6.
(1.18)
Рис.1.6. Функциональная схема порождающего автомата.
Особенностью функционирования такого автомата является генерация
последовательности символов выходного слова только в зависимости от
последовательности состояний автомата. Такие автоматы называют порождающими или
автономными. С помощью такого автомата генерируется последовательность
управляющих команд на какие-либо объекты внешней среды.
Пусть Y=. Тогда математическая модель и система рекуррентных соотношений
имеют вид:
M  X; Q;  ;
(1.19)

 : (Q  X)  Q;
q[1] = (q[];x[]);
(1.20)
Функциональная схема автомата приведена на рис.1.7.
Рис. 1.7. Функциональная схема распознающего автомата.
Особенностью функционирования такого автомата является распознавание в
последовательности изменений аргумента функции переходов значения (qi[];xi[]) и
перевод автомата в заключительное состояние qk. С помощью такого автомата
обнаруживают заданные возмущения со стороны объектов внешней среды или
распознают заданную последовательность входных символов. Поэтому такие автоматы
называют распознающими. Часто и автомат Мура представляют автоматом без выхода,
так как его выходной сигнал эквивалентен состоянию автомата.
Пусть Q=. Тогда математическая модель и система рекуррентных соотношений
имеют вид:
M  X; Y;  ;
(1.21)

 : X  Y;
y[] = (x[]);
(1.22)
Функциональная схема автомата приведена на рис.8.
Рис. 1.8. Функциональная схема комбинационного автомата.
Особенностью функционирования такого автомата является отсутствие "памяти", т.е.
на каждый символ входного алфавита автомат генерирует символ выходного алфавита
без учета состояния автомата. Такие автоматы чаще всего называют комбинационными
автоматами.
Автоматы, выполняющие роль "0" и
"1" в алгебре автоматов. С - автомат
Любая алгебра должна иметь конструкции, выполняющие в ней роль "0" и "1". По
аналогии с алгеброй алгоритмов роль "0" выполняет пустой автомат (ноль-автомат), ЦА0.
Пустой автомат – это автомат, в котором запрещены всевозможные переходы.
Естественно, что ЦАА \/ ЦА0 = ЦАА, ЦАА /\ ЦА0 = ЦА0.
Роль "1" возлагается на полный ЦА (ЦА1), в простейшем случае такой автомат
представляет собой настраиваемое объединение рассматриваемых автоматов.
Естественно, что ЦАА \/ ЦА1 = ЦА1, ЦАА /\ ЦА1 = ЦАА, дополнение ЦА1 = ЦА0,
дополнение ЦА0 = ЦА1.
Равенство, равносильность, эквивалентность, изоморфизм
Автоматы равны тогда, когда у них одинаковое описание.
Автомат можно упростить, тогда упрощенный и исходный автоматы будут
равносильными.
Два автомата считаются изоморфными, если выполняются следующие два условия:
1) между X, Y и S обоих автоматов можно установить взаимно однозначные
соответствия;
2) при учете этих соответствий автоматы оказываются равными.
Эквивалентность автоматов.
Эквивалентность автоматов определяют по их одинаковой реакции на входные
последовательности символов, то есть по формированию одинаковых выходных
последовательностей символов.
Так как модель автомата представляет трехосновную алгебру, то для сравнения двух
автоматов необходимо найти три оператора, формирующих отображение множеств X, Q
и Y модели одного автомата на соответствующие множества модели другого автомата.
После этого необходимо оценить влияние этих операторов на исполнение функций
переходов и выходов каждым автоматом. Если на одинаковые последовательности
входных символов автоматы генерируют одинаковые последовательности выходных
символов, то такие автоматы эквивалентны.
Рассмотрим модели двух абстрактных автоматов:
M 1  X1 ; Y1 ; Q1 ;  1 ; 1 ;
M 2  X 2 ; Y2 ; Q 2 ;  2 ;  2  .
(1.23)
Пусть даны операторы:
f : X1  X 2 ;

g : Y1  Y2 ;
h : Q  Q .
1
2

(1.24)
Если при исполнении функций переходов и выходов выполняются условия:
 2 (h (q1i ); f ( x 1k ))  h (1 (q1i ; x 1k ));
(1.25)

 2 (h (q1i ); f ( x 1k ))  g(1 (q1i ; x 1k )).
то совокупность операторов (f;g;h)формирует гомоморфное отображение
модели автомата М1 на модель автомата М2 когда каждому значению x1kX1 y1jY и
q1iQ1 соответствуют единственные образы x2kX2y2jY2q2iQ1.
 Пусть даны операторы:
f 1 : X 2  X1 ;
 1
g : Y2  Y1 ;
h  1 : Q  Q .
2
1

(1.26)
Если при исполнении функций переходов и выходов выполняются условия:
1 (h 1 (q 2i ); f 1 ( x 2 k ))  h 1 ( 2 (q 2i ; x 2 k ));
(1.27)

1
1
1
1 (h (q 2i ); f ( x 2 k ))  g ( 2 (q 2i ; x 2 k )).
то совокупность операторов -1f-1;g-1;h-1 определяет гомоморфное отображение
модели автомата М2 на модель автомата М1 когда каждому значению x2kX2 y2jY и
q2iQ2 соответствуют единственные образы x1kX1 y1jY1 q1iQ1 .
Если найдена совокупность операторов (-1), для которой
-1= -1 =1,
(1.28)
то такое взаимное отображение называют изоморфным.
Изоморфное отображение рефлексивно, симметрично и транзитивно. Особый
интерес для оценки эквивалентности автоматов представляет случай, когда f=1. По
условиям (1.25) и (1.27) для xkX имеем:
 2 (h (q1i ); x k ))  q(1 (q1i ; x k ));

1
1
1 (h (q 2i ); x k ))  g ( 2 (q 2i ; x k )).
(1.29)
Если существуют такие q1i и q2i, для которых значения функций выходов 1(q1i;xk) и
2(q2i;xk) совпадают для всех xkX, то есть
1(q1i;xk)=2(q2i;xk),
(1.30)
-1
-1
то g=g =1, h(q1i)=q2i, h (q2i)=q1i. При этом Y1=Y2=Y. Такие состояния q1i и q2i называют
неотличимыми по выходам автоматов.
В результате просмотра множества пар неотличимых состояний (q1i;q2i)(Q1Q2)
можно найти несколько подмножеств, которые формируют разбиение
множества
(Q1Q2) на классы неотличимых по выходу состояний.
Если для пары неотличимых состояний (q1i;q2i) значения функций переходов
формируют для всех символов xkX
также пары
неотличимых
состояний
((q1i[];xk[]);(q2i[];xk[])), то состояния q1i и q2i называют совместимыми. В результате
такого просмотра всех пар одного класса неотличимых состояний формируется его
разбиение на классы совместимых состояний.
Состояния q1i и q2i являются эквивалентными, если для всякой входной
последовательности =(x1x2...xn) выполняется условие:
М1(q1i;)=М2(q2i;),
(1.31)
Поэтому необходимо проследить изменения значений функций переходов
((q1i[];xk[]);(q2i[];xk[])) для каждого символа входной последовательности
=(x1x2...xn).
Множество всех пар (q1i;q2i), для которых выполняется условие (1.31), формирует
класс эквивалентных состояний.
Если входной и выходной алфавиты у двух автоматов совпадают, то автомат M 2
покрывает автомат M1, если 2(h(q1i);)=1(q1i;) для всех Xn, а автомат M1 покрывает
автомат M2, если входной и выходной алфавиты у этих автоматов общие и
1(h-1(q2i);)=2(q2i;) для всех Xn.
По условиям изоморфизма автоматы M1 и M2 эквивалентны, если M1 покрывает M2 и
M2 покрывает M1. У эквивалентных автоматов существуют эквивалентные состояния q1i и
q2i.
Если для эквивалентных автоматов М1 и М2 имеем Q1  Q2, то автомат М1,
имеющий меньшее число состояний m1 = Q1, покрывает автомат М2, имеющий большее
число состояний m2 = Q2. Автомат, который нельзя покрыть автоматом с меньшим
числом состояний, называют минимальным.
Для поиска эквивалентных состояний q1i и q2i удобно использовать таблицы
переходов пар состояний двух автоматов. В каждой паре левый элемент есть состояние
автомата М1, а правый элемент - состояние автомата М2. Левый столбец такой таблицы
предназначен для указания неотличимых пар состояний, которые формируются по
таблицам выходов автоматов следующим правилом:
"если среди множества состояний двух автоматов Q1 и Q2 найдется такая пара
(q1;q2), у которой значения функций выходов равны для
каждого символа входного
алфавита xkX, т.е. 1(q1i;xk)=2(q2i;xk), то состояния q1 и q2 неотличимы;"
Позициями таблицы являются пары состояний двух автоматов, в которые они
переходят из соответствующих состояний пары неотличимых состояний при подаче на
входы автоматов символа xk. Значения очередных состояний могут быть найдены по
таблицам переходов автоматов М1 и М2 для соответствующего символа xkX, т.е.
(q1=(q1i;xk); q2 = (q2i;xk)).
Пусть таблица переходов пар состояний двух автоматов представлена таблицей 1.19,
где пары неотличимых состояний, приведенные в левом столбце, есть (q 1i;q2j), (q1j;q2p),
(q1p;q2s), (qs;q2i).
текущая
пара
состояний (q1;q2)
…
(q1i;q2j)
(q1j;q2p)
(q1p;q2s)
(q1s;q2i)
…
неотличимых символы входного алфавита xiX
x1
x2
…
…
…
…
(q1i;q2j)
(q1j;q2p)
…
(q1i;q2j)
(q1p;q2p)
…
(q1j;q2p)
(q1j;q2p)
…
(q1s;q2p)
(q1p;q2j)
…
…
…
…
xn
…
(q1s;q2i)
(q1s;q2i)
(q1j;q2p)
(q1j;q2i)
…
Анализ таблицы показывает, что
1) состояния q1i и q2j совместимы, т.к. при приеме каждого символа входного
алфавита неотличимые состояния автоматов М1 и М2 переходят в в пары также
неотличимых состояний;
2) состояния q1p и q2s совместимы, т.к. при приеме каждого символа входного
алфавита неотличимые состояния автоматов М1 и М2 остаются в одной паре
неотличимых состояний;
3) состояния q1j и q2p несовместимы, т.к. при приеме символа x2 неотличимые
состояния автоматов М1 и М2 переходят в различные пары неотличимых состояний;
4) состояния q1s и q2i несовместимы, т.к. при приеме каждого символа входного
алфавита неотличимые состояния автоматов М1 и М2 переходят в различные пары
неотличимых состояний.
Следовательно, автоматы М1 и М2, даже при наличии совместимых состояний, не
эквивалентны между собой.
Пример 1.5. Пусть даны автомат M1=X1;Y1;Q1;11,где X1{0;1}, Y1{0;1},
Q1={q11;q12;q13}, 1 и 1 (см. таблицу 1.20) и автомат M2=X2;Y2;Q2;22,гдеX2{0;1},
Y2{0;1}, Q2={q21;q22}, 2 и2 (см. таблицу 1.21).
Граф автомата М1 приведен на рис.1.13, автомата М2 - на рис.1.14. Определить
эквивалентность автоматов М1 и М2.
текущее
состояние
qQ1
q11
q12
q13
символы входного
алфавита xX1
0
1
q13;0
q12;1
q11;1
q13;0
q11;0
q12;1
текущее
состояние
qQ2
q21
q22
символы входного
алфавита xX2
0
1
q21;0
q22;1
q21;1
q21;0
Рис.1.13 Граф автомата М1
Рис.1.14 Граф автомата М2
Для автоматов М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
также являются совместимыми.
И наконец, если для неотличимой пары состояний (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 имеем q11=q0 и  = (01010101). Тогда процесс обработки входного
слова формирует следующие последовательности:
вход:
0[1] 1[2] 0[3] 1[4] 0[5] 1[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],
то есть 1 (01111111).
Пусть для автомата М2 имеем q21=q0 и =(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],
то есть 2 (01111111).
Итак, автоматы М1 и М2 эквивалентны. Так как автомат М2 имеет меньшее число внутренних
состояний, то он покрывает автомат М1.
МИНИМИЗАЦИЯ АВТОМАТОВ
Минимальный автомат - это автомат, имеющий наименьшее возможное количество
состояний и реализующий заданную функцию выходов.
Два состояния автомата называются 1-эквивалентными, если, находясь в любом из
этих состояний, автомат на один и тот же входной сигнал (входное слово длиной в 1)
выдает один и тот же выходной сигнал. Два состояния автомата называются Кэквивалентными, если, начиная с любого из этих состояний, автомат на любые
одинаковые слова длины К выдает одинаковые выходные слова (также длины К). Если два
состояния К- эквивалентны для любых К, то их называют (просто) эквивалентными.
Множество попарно эквивалентных состояний образует класс эквивалентности.
Смысл минимизации состоит в выявлении классов эквивалентности и замене
каждого класса одним состоянием. Процедура минимизации состоит в следующем:
1. По таблице выходов автомата Мили (или по первой строке отмеченной таблице
переходов автомата Мура) находятся состояния, имеющие одинаковые столбцы
(отмеченные одинаковыми выходными сигналами) – это 1-эквивалентные состояния.
2. Далее используется таблица переходов. Все состояния, входящие в 1эквивалентный класс, которые под воздействием первого сигнала перешли в состояния,
принадлежащие в свою очередь 1-эквивалентному классу, образуют 2-эквивалентный
касс.
3. Процедура разбиения на классы эквивалентности продолжается до тех пор, пока
при очередном шаге К- эквивалентные классы не совпадут с (К-1)-эквивалентными, т.е.
получатся эквивалентные классы.
4. Все состояния, входящие в один класс эквивалентности, заменяются одним
состоянием.
Пример. Рассмотрим автомат Мили
1 2 3 4 5 6
X1 Y1 Y1 Y1 Y1 Y1 Y2
X2 Y2 Y2 Y2 Y2 Y2 Y2
α
1
β
2
X1 1
3
4
α
X2 2
6
1
3
4
α
2
β
5
α
β
6
6
β
α
α
5
2
α
α
4
5
α
α
α
α
β
α
γ
1 – эквивалентные классы определяются из табл. 8 , 2 – эквивалентные из табл. 9 , а 3
– эквивалентные и просто эквивалентные из табл. 10 .
Таблица 10
1
2
4
3
5
6
X1 1
4
2
6
6
4
α
α
α
γ
γ
α
1
2
3
5
5
X2 2
α
α
α
β
β
β
В качестве имен состояний минимального автомата возьмем имена классов.
Минимальный автомат представлен табл. 11 и 12. Таблица 11 Таблица 12
α β γ
α β γ
X1 α γ
α
X1 Y1 Y1 Y2
X2 α β β
X2 Y2 Y2 Y2
РАСПОЗНАЮЩИЕ АВТОМАТЫ
Распознающий автомат – это автомат Мура, в котором фиксируется начальное
состояние и подмножество состояний F⊂Q, называемое множеством заключительных
состояний. Говорят, что автомат допускает (принимает, распознает, представляет) данное
слово, если реакцией на это слово может быть переход автомата в одно из
заключительных состояний.
Примеры. 1. Автомат (рис. 4) с начальным состоянием 1 и заключительным F1 и F2
допускает слова, в которых имеются только парные вхождения букв a и b, например,
a a, a a a a a a, b b a a и т.д.
Для распознавания часто используются частичные автоматы (рис.5), допускающие
тоже множество слов, что и автомат, показанный на рис.4.
Здесь начальное состояние 1, а заключительное F. Слово считается недопустимым,
если в результате реакции на него автомат не остановится в заключительном состоянии
или если будет подан запрещенный (для данного состояния) входной сигнал. Например,
воздействие входного слова ab на автомат вызовет переход в состояние 2 по букве a , но в
этом состоянии не определен переход по букве b , следовательно, слово ab недопустимо.
Если считать пустое (не содержащее ни одной буквы) слово допустимым, то можно еще
более упростить частичный автомат, объединив начальное и заключительное состояния
(рис.6).
3.Одним из наиболее широко используемых на практике типов распознающих
автоматов является частичный недетерминированный автомат. Недетерминизм
проявляется в том, что из одного состояния по одному и тому же входному сигналу
возможны переходы в различные состояния, т.е. функция переходов заменяется
отношением переходов. Недетерминированный автомат (рис.7) принимает, например,
слова ab, aa, bb, bba и т.д. здесь начальное состояние A, а заключительное -F.
Таблица переходов данного автомата будет иметь вид табл.13.
A
B
C
D
a
B,C
F
b
B
C,F
Пустые клеточки говорят о том, что автомат частичный, а наличие сразу нескольких
букв в одной клеточке – о том, что автомат недетерминированный. Для таких автоматов
обычно предпочитают использовать не табличное и не графовые представления, а запись
в виде так называемых продукций или грамматических правил, представленных в двух
столбцах соответственно:
A → aB A:: = aB / bB / aC
A → bb B:: = bC / b
A → aC C:: = a
B → bC
B→b
C→a
Такого рода грамматики называют регулярными, или автоматными.
Автоматное моделирование алгоритмов.
Для наглядного представления алгоритма используют блок-схемы в виде
ориентированного графа. Основными элементами такого графа являются блоки "операторы" и
"предикаты" и дуги, указывающие возможные пути на графе. Кроме того, есть единственный блок
"начало", из которого исходит единственная дуга и единственный блок "конец", из которого не
исходит ни одна дуга (см. рис 2.17).
Рис. 2.17 Компоненты блок-схемы алгоритма.
Каждый шаг алгоритмического процесса - это этап в обработке информации блоками
"оператор" или "предикат" и передача результатов в очередной блок. В блоке "оператор"
выполняются функциональные преобразования информации (например, арифметические
операции, хранение или передача информации) и результаты передаются по единственной дуге
на выход. В блоке "предикат" проверяются условия (например, арифметические или логические) и
результаты передаются по одной из двух дуг выхода: "да" или "нет", что определяет выбор пути
на графе алгоритма.
Важной особенностью блок-схемы является то, что связи, которые она описывает, не
зависят от того являются ли операции элементарными или представляют собой самостоятельные
алгоритмы.
Для автоматного моделирования необходимо рассматривать раздельно процессы
обработки информации и выбора маршрута на графе алгоритма. Для решения первой задачи
создают операционный автомат, а для решения второй - управляющий.
Автоматное моделирование процесса обработки информации можно рассматривать на
макроуровне, когда каждый блок "оператор" представляет собой самостоятельный алгоритм, и на
микроуровне, когда каждый блок "оператор" представляет элементарную операцию. Первый
подход нашел применение в проектировании дискретных устройств, работающих в асинхронном
режиме, второй - в проектированию вычислительных комплексов, работающих в синхронном
режиме.
Схема взаимодействия операционного и управляющего автоматов показана на рис. 2.18.
Рис. 2.18 Операционный и управляющий автоматы.
Операционный автомат для разнообразной обработки операндов содержит цепи приема
операндов, регистры операндов и результатов, цепи выдачи результатов, преобразователи кодов,
сумматор, схемы сдвига, анализа полученных результатов (рис. 32).
Операционные автоматы делятся на блочные и многофункциональные, синхронные и
асинхронные, на автоматы обратного и дополнительного кодов, на автоматы двоичной,
десятичной систем исчисления и другие.
В блочном автомате для каждой операции предусмотрен соответствующий блок, в
многофункциональном автомате единая структура перестраивается с учетом каждой операции.
В автомате с синхронным управлением на любую операцию затрачивается одинаковое
время ( время самой продолжительной операции), в автомате с асинхронным управлением время
каждой операции различно.
ОА имеет определенные характеристики: набор операций, точность расчетов,
быстродействие, код, систему счисления и другие.
В дискретные моменты времени по каналу 1 на вход операционного автомата поступает
обрабатываемая информация, а по каналу 2 снимают результаты ее обработки. По каналу 3 в
управляющий автомат поступает сообщение об исполнении шага алгоритма и о результатах
проверки условий, а по каналу 4 в операционный автомат - управляющее воздействие для
исполнения очередного шага алгоритма. По каналу 5 в управляющий автомат поступает команда
для исполнения оператора, а по каналу 6 - сообщение об его исполнении.
Управляющие цифровые автоматы (УЦА) делятся на: автоматы с микропрограммным
управлением и автоматы с жёсткой логикой (ЖЛ). Первые автоматы можно называть автоматами с
программируемой логикой (ПЛ).
Структурная схема любого УА выглядит так, как показано на рис.33. Она состоит из трех
частей: запоминающей части с дешифратором, схемы формирования сигналов возбуждения
триггеров запоминающей части, схемы формирования выходных сигналов.
В дальнейшем вторая и третья части будут для упрощения именоваться входной и
выходной частями соответственно.
ЗУ с дешифратором содержит триггерный регистр, на котором могут размещаться
всевозможные числа, соответствующие требуемым состояниям.
Дешифратор расшифровывает число в нужный сигнал состояния, индекс которого
совпадает с величиной числа.
Входные сигналы, множество которых обозначено через Х, сигналы состояний, множество
которых обозначен через S, используются для формирования сигналов возбуждения триггеров как
для автоматов Мили, так и для автоматов Мура, а также для формирования выходных сигналов
автоматов Мили.
Для формирования выходных сигналов автоматов Мура достаточно только сигналов
состояний
Анализ и синтез конечных автоматов
Анализ – это осуществление некоторых испытаний (фактических или виртуальных)
некоторого объекта с целью выяснения интересующих нас свойств.
Синтез – это «конструирование» сложного объекта из простых объектов. При этом
мы задаем некоторые желаемые свойства синтезируемого объекта.
Анализ конечного автомата сводится к следующему: задан конечный автомат
(таблицей или графом), дано начальное состояние автомата, дана последовательность
входных сигналов. Найти последовательность выходных сигналов и соответствующих
состояний конечного автомата.
Например, выбрав в имеющемся графе любое исходное состояние и
последовательность 5-7 входных сигналов, построить соответствующее число пар
выходных сигналов – состояний.
При синтезе комбинационных схем можно составить таблицу зависимости значения
выходного сигнала от комбинации входных. Такая таблица однозначно определяет
систему ПФ, описывающую работу КС.
Составить аналогичную таблицу, описывающую работу конечного автомата, не
представляется возможным, т.к. множество допустимых входных слов автомата, вообще
говоря, бесконечно. Поэтому для задания КА и используются таблицы переходов и
выходов, которые позволяют представить соответствие между бесконечными
множествами входных и выходных слов конечными таблицами. В связи с этим, прежде
чем приступить к синтезу схемы КА необходимо составить таблицу переходов и выходов,
что не всегда является простым делом особенно в тех случаях, когда алгоритм работы
автоматов задан в описательной форме. Для того, чтобы упростить и формализовать
процедуру построения таблиц переходов и выходов необходимо ввести такую исходную
форму задания автоматов, переход к которой от алгоритмов, сформулированных в
описательной форме, не представляет трудностей. Мы рассмотрим один из возможных
способов формального задания автоматов, а именно, задание автомата на языке
регулярных событий.
Событием называют любое множество слов входного алфавита X {x1, x2, …,xm}
автомата.
Пусть Y{y1, y2, …, yk} – выходной алфавит конечного автомата S с
фиксированным начальным состоянием a0. Тогда каждой букве yj, выходного алфавита
можно поставить в соответствие множество входных слов Sj(x1, x2,…, xm), которые
вызывают появление на выходе автомата буквы yj. Определенное таким образом
множество слов Sj(x1, x2, …, xm) называют событием, представленным в автомате
выходным сигналом yj.
Поэтому для задания конечного автомата, имеющего выходной алфавит Y{y1, y2,
…, yk}, достаточно разбить множество всех возможных входных слов на K событий S1,
S2, …, Sk, представленных в автомате выходными сигналами y1, y2, …, yk
соответственно. Для частичного автомата необходимо, кроме того, задать множество Sз
запрещенных слов. Таким образом, конечный автомат может быть задан таблицей,
устанавливающей соответствия между событиями и буквами выходного алфавита. Зная
набор событий Sj, можно, не пользуясь таблицами переходов и выходов, найти реакцию
автомата на любое входное слово, для чего достаточно определить в множество каких
слов входного алфавита оно входит (т.е. какому событию принадлежит).
Событие
буква выходного алфавита
S1(x1, x2,…, xm)
y1
S2(x1, x2,…, xm)
y2
…
…
Sk(x1, x2,…, xm)
yk
Sx(x1, x2,…, xm)
Для описания автоматов на языке регулярных событий вводят ряд операций над
событиями, т.е. строят алгебру событий. Мы рассмотрим алгебру событий, введенную
Клини и усовершенствованную академиком Глушковым В. М.
Алгебра событий включает три операции:
·
Дизъюнкцию (объединение) событий;
·
Произведение событий;
·
Итерацию событий.
Дизъюнкцией событий S1, S2, …, Sk называют событие S = S1vS2v…vSk, состоящее
из всех слов, входящих в события S1, S2, …, Sk.
Пример. Событие S1 содержит слова x1, x2x1, x1x1, т.е. S1 = (x1, x2x1, x1x1), а S2 =
(x2, x1x2). Тогда S = S1vS2 = (x1, x2, x1x1, x1x2, x2x1).
Произведением событий S1, S2, …, Sk называется событие S = S1* S2* …,*Sk,
состоящее из всех слов, полученных приписыванием к каждому слову события S1
каждого слова события S2, затем слова события S3 и т.д.
Пример. S1 и S2 те же. S = S1*S2 = (x1x2, x1x1x2, x2x1x2, x2x1x1x2, x1x1x2,
x1x1x1x2).
Произведение событий не коммутативно, т.е. слова, входящие в события S1S2 и S2S1
различны. Поскольку произведение не коммутативно, следует различать операции
«умножение справа» и «умножение слева». Например, относительно произведения
событий S1S2 можно сказать, что событие S2 умножено на событие S1справа, а событие
S1на S2 слева.
Третьей операцией, применяемой в алгебре событий, является одноместная
операция итерация, которая применима только к одному событию. Для обозначения
итерации вводят фигурные скобки, которые называются итерационными.
Итерацией события S называется событие {S}, состоящее из пустого слова e и
всех слов вида S, SS, SSS и т.д. до бесконечности. Т.е. {S} = e v S v SS v SSS v….
Пример. S = (x2, x1x2).
{S} = (e, x2, x2x2, x2x2x2, …, x1x2, x1x2x1x2, …, x2x1x2, x1x2x2, …)
При синтезе конечных автоматов важнейшую роль играют регулярные события.
Пусть дан конечный алфавит X = (x1, x2, …, xm).
Определение. Любое событие, которое можно получить из букв данного алфавита с
помощью конечного числа операции дизъюнкции, произведения и итерации, называется
регулярным событием, а выражение, составленное с помощью этих операций –
регулярным выражением.
Очевидно любое событие, состоящее из конечного множества слов, является
регулярным. Действительно, такие события можно представить в виде дизъюнкции всех
входящих в него слов, образованных из букв заданного алфавита с помощью операции
умножения. События, состоящие из бесконечного числа слов, могут быть как
регулярными, так и не регулярными.
Теорема. Любые регулярные выражения и только они представимы в конечных
автоматах.
Из этой теоремы следует, что любой алгоритм преобразования информации, который
можно записать в виде регулярного выражения, реализуется конечным автоматом. С
другой стороны, любые конечные автоматы реализуют только те алгоритмы, которые
могут быть записаны в виде регулярных выражений.
Рассмотрим, как можно совершить переход от описательной формы задания
алгоритмов работы конечных автоматов к представлению этих алгоритмов в виде
регулярных выражений. С целью упрощения такого перехода вводят основные события,
из которых с помощью операций дизъюнкции, умножения и итерации можно составить
более сложные события, соответствующие заданному алгоритму работы автомата. За
основные события принимают такие события, которые более часто встречаются в
инженерной практике при синтезе схем ЦВМ.
Задача абстрактного синтеза заключается в составлении таблиц переходов и выходов
автоматов по заданным условиям его функционирования, представленным в форме
регулярных выражений.
Абстрактный синтез обычно выполняется в два этапа:
1. Первый этап заключается в получении таблиц переходов и выходов в некоторой
исходной форме. Построенный по этим таблицам автомат обычно содержит «лишние»
внутренние состояния.
2. На втором этапе производится минимизация количества внутренних состояний
заданного автомата.
Синтезируемый автомат может быть задан либо как автомат Мура, либо как автомат
Мили. Поскольку для автомата Мура всегда можно построить эквивалентный автомат
Мили, то достаточно рассмотреть алгоритм синтеза автомата Мура, который проще
автомата Мили.
Рассмотрим пример абстрактного синтеза автомата для случая, когда регулярные
отношения составлены без применения операции итерации. Составим отмеченную
таблицу переходов автомата, имеющего входной алфавит X{x1, x2} и реализующий
следующий алгоритм.
S1 = x1x2 v x1x1x1 | y1
Sзапр. =x1 v x2x2x2
___________
S2 = x1x2x2 v x2x2 | y2
S4 = S1 v S2 v S3| e.
При синтезе условимся начальное состояние автомата обозначать цифрой 0, а
остальные состояния – десятичными числами 1, 2, 3 и т.д. Очевидно, самый простой, хотя
и не экономный по числу используемых внутренних состояний автомата, алгоритм
синтеза заключается в следующем. Фиксируется начальное состояние и для входного
слова , содержащего r букв, назначается r внутренних состояний. Переходы в автомате
определяются так, что первая буква входного слова переводит автомат из начального
состояния 0 в состояние 1, вторая буква из 1 в 2 и т.д. Аналогичные последовательности
внутренних состояний назначаются для всех остальных слов. Затем все конечные
состояния, в которые автомат попадает после подачи слов, входящих в событие Si,
отмечаются выходными сигналами yi.
Чтобы система переходов автомата была определенной, для всех слов, имеющих
одинаковые начальные отрезки, следует назначать одну и ту же последовательность
состояний. Например, для регулярного события S1 первая буква x1 переводит автомат из
начального состояния 0 в состояние 1, вторая буква x2 – из 1 в 2.
S = | x1| x2 | v | x1| x1| x1|
0 1 2 0 1 3 4
S = | x1| x2 | x2 | v | x2| x2|
0 1 2 5 0 6 7
Поскольку первая буква второго слова x1x1x1, входящего в S1 также есть x1, то она
переводит автомат из начального состояния 0 в 1. Вторая буква x1 переводит автомат из 1
в 3, третья – из 3 в 4.
Первые две слова x1x2x2, входящего в S2, совпадают с первым словом события S1.
Поэтому первые две буквы этого слова должны последовательно переводить автомат из 0
в 1, и из 1 в 2. Дальнейшие состояния обозначим числами 5, 6 и 7. Получившаяся в
результате форма записи определяет разметку мест регулярных выражений.
Местами регулярного выражения называют промежутки между двумя буквами,
между буквой и знаком дизъюнкции, а так же между буквой и скобкой. Кроме того,
вводят начальное место, обозначаемое цифрой 0 и конечные места, отождествляемые с
концом каждого слова. Для запрещенного события Sзапр последовательность событий
можно не назначать.
Для размеченных регулярных выражений составляется отмеченная таблица
переходов.
e
e
y1
e
y1
y2
e
y2
E
xj\
0
1
2
3
4
5
6
7
*
ai
x1
1
3
*
4
*
*
*
*
*
x2
6
2
5
*
*
*
7
*
*
Чтобы система переходов автомата была определена при подаче любого входного
слова, кроме состояний 0 ё 7, вводится еще одно состояние, которое обозначается
звездочкой *. В это состояние автомат переходит при подаче входных слов, которые не
входят в события S1 и S2. Выходным сигналом y1 отмечены состояния 2 и 4, y2 –
состояния 5 и 7. Остальные состояния отмечены пустой буквой e.
Алгоритм синтеза усложняется, если регулярные выражения содержат итерационные
скобки.
При разметке регулярных выражений различают основные и предосновные места.
Все места регулярного выражения, слева от которых стоит буква, а так же все
начальные места называют основными.
Все места, справа от которых стоит буква, называют предосновными. Очевидно,
некоторые места могут быть одновременно основными и предосновными.
Все основные места отмечаются различными десятичными числами, при этом всем
начальным местам приписывается индекс 0. Затем каждое предосновное место отмечается
совокупностью индексов основных мест. В эту совокупность входят индексы внутренних
состояний, находясь в которых автомат может принять букву, стоящую справа от
предосновного места.
Разметка регулярных выражений проводится по правилам подчинения мест.
Рассмотрим эти правила на примере синтеза автомата, описываемого следующим
регулярным выражением:
S = | {| x2| v | x1| x2| v | x1| x1| x2|} | x1| x1| x1| {| x1| }| x2|
0
1
2 3
4 5 6
7 8 9
10 11
В этом автомате сигнал y1 выдается после поступления подряд 3-ех букв x1, а y2 –
после x2, следующей за серией их трех и более букв x1. В остальных случаях выдается
буква e.
Индексы основных мест записываются непосредственно под регулярными
выражениями, а индексы предосновных мест располагаются ниже индексов основных
мест, под горизонтальной чертой. Выражение имеет 12 основных мест (от 0 до 12).
Проведем разметку предосновных мест. В начале определим, какие буквы может
принять автомат, если он находится в состоянии 0. Поскольку на вход автомата может
поступить любое из трех слов, записанных в итерационных скобках, то индекс 0
распространяется на каждое из трех предосновных мест, расположенных в начале этих
слов. Учитывая, что событие, соответствующее выражению, записанному в итерационных
скобках, содержит пустое слово е, индекс 0 распространяется на предосновное место,
расположенное сразу за скобками. Это означает, что в частном случае ни одно из трех
слов, заключенных в итерационные скобки, на вход автомата не поступит и тогда первой
буквой, которую принимает автомат, является буква x1, стоящая непосредственно за
итерационными скобками. Таким образом все эти предосновные места подчинены месту с
индексом 0.
Теперь найдем предосновные места, на которые распространяется индекс 1. Если
автомат находится в состоянии 1, то он может принять букву x2, расположенную слева от
места 1, т.к. эта буква находится в итерационных скобках и, следовательно, неоднократно
может повторятся во входном слове автомата. Кроме того, в состоянии 1 автомат может
принять начальные буквы других слов, расположенных в итерационных скобках, и букву
x1, непосредственно следующую за этими скобками. Таким образом, месту с индексом 1 в
данном случае подчиняются те же предосновные места, что и месту с индексом 0.Если
автомат находится в состоянии 2, то он может принять только букву x2, расположенную
справа от места с индексом 2. Поэтому индекс распространяется на единственное
предосновное место, являющееся одновременно основным местом 2. Аналогично можно
найти подчиненные места других основных мест.
По окончании слева, входящего в событие S автомат переходит в состояние 11,
после чего на вход автомата может поступить второе слово, этого события S, т.к. мы
считаем, что автомат многократного действия. Автоматами многократного действия
называются такие автоматы, которые могут неоднократно принимать слова, входящие в
события, представленные в автомате. В таких автоматах индекс конечного места
распространяется на те же предосновные места, на которые распространяется индекс
начального места, т.е. по окончании очередного слова, на вход автомата этого слова
может поступить вновь.
Сформулируем теперь общие правила подчинения мест регулярного выражения.
1.
Индекс места перед любыми скобками распространяется на начальные
места всех дизъюнктивных членов, записанных в этих скобках.
2.
Индекс конечного места, любого дизъюнктивного члена, заключенного
в любые скобки, распространяется на место, непосредственно следующее за этими
скобками.
3.
Индекс места перед итерационными скобками распространяется на
место, непосредственно следующее за этими скобками.
4.
Индекс конечного места любого дизъюнктивного члена, заключенного
в итерационные скобки, распространяется на начальные места всех дизъюнктивных
членов, заключенных в эти итерационные скобки.
5.
Индексы мест, слева и справа от которых стоят буквы, никуда не
распространяются.
6.
В автоматах многократного действия индекс конечного места всего
выражения распространяется на те же места, на которые распространяется индекс
начального места. Это правило справедливо только в тех случаях, когда событие
представлено регулярным выражением так, что оно не содержит многократно
повторяющихся слов, входящих в заданное событие. И тогда организация автомата
многократного действия осуществляется путем разметки.
Смысл приведенных правил подчинения мест сводится к следующему: основному
месту с индексом i подчиняется место j, если автомат, находящийся в состоянии i, может
принять букву входного алфавита, записанную непосредственно справа от места j.
По размеченному регулярному выражению теперь можно составить таблицу
переходов автомата. Однако перед построением таблицы целесообразно уменьшить число
индексов основных мест, а следовательно и число внутренних состояний автомата.
На этом первом этапе минимизации внутренних состояний можно пользоваться
следующим правилом:
Если несколько предосновных мест отмечено одинаковой совокупностью индексов и
справа от этих мест записаны одинаковые буквы, можно отметить одинаковыми
индексами.
В полученном нами выражении основные места 2, 4 и 7 можно отметить общим
индексом, т.к. слева от каждого из этих мест записана буква x1, а предосновные места,
предшествующие этой букве, имеют одинаковую совокупность индексов (0, 1, 3, 6, 11).
Теперь с учетом этого проведем новую разметку.
= | {| x2| v | x1| x2| v | x1| x1| x2|} | x1| x1| x1| {| x1| }| x2|
0
1
2 3
2 4 5
2 6 7
8
9
0
0 2
0 2 4
0 2 6
7
7
1
1
1
1
8
8
3
3
3
3
5
5
5
5
9
9
9
9
На этом первый этап минимизации (минимизации по регулярному выражению)
закончен.
Составим теперь отмеченную таблицу переходов автомата. Определим вначале
внутренние состояния, в которые переходит автомат из состояния 0 при подаче на его
вход сигнала x1. Для этого найдем все предосновные места, содержащие индекс 0, справа
от которых записана буква x1. Таких мест в выражении три. Все основные места,
расположенные за этой буквой x1, отмечены индексом 2. Следовательно, автомат из
состояния 0 под действием сигнала x1 переходит в состояние 2. Аналогично, сигнал x2
переводит автомат из состояния 0 в состояние 1, т.к. за предосновным, содержащим
индекс 0, после буквы x2 расположено основное место с индексом 1. Таким же образом
определяются переходы автомата их других внутренних состояний. Сигнал y1 выдается
после поступления подряд трех букв x1, т.е. в состоянии 6, а сигнал y2 – после x2,
следующей за серией из трех и более букв, т.е. в состоянии 8. В остальных случаях
выдается пустая буква е. Отсюда получаем следующую отмеченную таблицу переходов:
y
e e e e e e y
e y
g
1
2
x
0 1 2 3 4 5 6
7 8
j\ai
x
2 2 4 2 6 2 7
7 2
1
x
1 1 3 1 5 1 8
8 1
2
y
E
e
x
A
1
A
2
a
2
a
3
g
j\ai
0
x
1
1
e
1
a
3
a
4
y
a
4
a
4
e
2
a
5
a
1
y
a
a
x
A
a
a
a
a
a
0
0
0
5
5
0
Из построенной таблицы видно, что из состояний 0, 1,3 и 5 автомат сигналами x1 и
x2 переводится в одинаковые состояния (2 и 1). Кроме того, все перечисленные состояния
отмечены одинаковыми выходными сигналами. Поэтому состояния 0, 1, 3 и 5 можно
объединить в одно состояние, обозначив его как а0. Введем также обозначения: 2 – а1; 4 –
а2; 6 – а3; 7 – а4; 8 – а5. Тогда получим упрощенную таблицу переходов автомата. В этой
таблице из состояний а3 и а4 под действием входных сигналов х1 и х2 автомат переходит
в одинаковые состояния а4 и а5. Но объединять эти состояния нельзя, т.к. отмечены
разными выходными сигналами. По этой же причине нельзя объединять состояния а0 и
а5. Объединение состояний и составляет второй этап минимизации, причем объединяются
только такие состояния, которые отмечены одинаковыми выходными сигналами, и из
которых под действием одинаковых входных сигналов происходит переход в одинаковые
состояния. Очевидно, у таких состояний должны совпадать столбцы таблицы переходов.
2
Download