Абстрактный синтез конечных автоматов

Исходными данными в каноническом методе синтеза на абстрактном этапе является таблица соответствия между входными и выходными словами.

Результатом абстрактного этапа является абстрактный автомат, представленный в виде графа или таблицы переходов и выхода.

Этап абстрактного синтеза состоит из двух подэтапов:

1. Построение по алфавитному оператору абстрактного автомата;

2. Минимизация числа состояний абстрактного автомата.

Таблица, устанавливающая соответствие между входными и выходными словами, которые перерабатывает автомат, называется алфавитным оператором.

t3 t2 t1 t0 p3 p2 p1 p0
t3 t2 t1 t0 w3 w2 w1 w0
A

Рис. 3.1

Индексы (рис. 3.1) указывают на соответствие входных и выходных символов автоматным тактам, а не на различие между буквами.

Пусть P = {0 , 1}, W = {0 , 1}.

В (табл. 3.1) приведен пример алфавитного оператора, где индексы соответствуют автоматным тактам и задают последовательность считывания и выдачи символов. с числом разрядов

Таблица 3.1

p0 p1 p2 p3 w0 w1 w2 w3
0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0

Алфавитный оператор называется автоматным, если он удовлетворяет следующим условиям:

1. однозначно отображает входные слова в выходные;

2. удовлетворяет условию полноты, т.е. любой начальный отрезок Абстрактный синтез конечных автоматов - student2.ru допустимого слова Абстрактный синтез конечных автоматов - student2.ru также допустим ( Абстрактный синтез конечных автоматов - student2.ru Абстрактный синтез конечных автоматов - student2.ru Pg*);

3. сохраняет длину преобразуемого слова;

4. осуществляет преобразование совпадающих начальных отрезков входных слов в совпадающие начальные отрезки соответствующих выходных слов.

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

Для преобразования неавтоматного алфавитного оператора к автоматному виду используются две операции: выравнивание и пополнение.

Операция выравнивание используется, если нарушено третье условие автоматности оператора и состоит в приписывании специального пустого символа « е» справа к входному или слева к выходному слову, при этом этот пустой символ добавляется во входной и выходной алфавиты

В (табл. 3.2) приведен пример применения операция выравнивание к алфавитному оператору, преобразующему двухбуквенные слова в однобуквенные.

Таблица 3. 2

p0 p1 w0 w1
e
e
e
e

Операция пополнение используется, если нарушено четвертое условие автоматности, и состоит в приписывании пустого символа « e » справа к входному слову и одновременно слева к выходному слову.

В (табл. 3.3) приведен пример применения операция выравнивание к алфавитному оператору, преобразующему двухбуквенные слова в двухбуквенные.

Таблица 3. 3

p0 p1 p1 w0 w1 w2
e e
e e
e e
e e

Первоначально одинаковые начальные отрезки из одной буквы 0 в первом и втором входном слове преобразуется в 0 в первом и в 1 во втором выходном слове, т.е. нарушено четвертое условие автоматности, поэтому к этим входным словам справа и к соответствующим выходным словам слева дописывается пустой символ « e ». После этого одинаковые начальные отрезки первого и второго входного слова преобразуются в одинаковые начальные отрезки выходных слов из буквы « e ». Тоже самое необходимо проделать с третьим и четвертым словом.

Алфавитные операторы могут быть заданы двумя способами: табличным и графическим.

Табличный способ устанавливает соответствие между входными и выходными словами в форме таблицы.

В графическом способе оператор представляется в виде дерева нагруженного входными и выходными словами. Дерево это граф без циклов. Путь от корня (начальной вершины) к листу (конечной вершине) дерева соответствует одному входному слову. Число ярусов дерева соответствует длине входного слова.

Построение дерева входных последовательностей.

Пусть P = {p0 , p1 , … , pn} – входной алфавит.

Алгоритм построения дерева состоит из выполнения следующих шагов:

1. фиксируется начальная вершина, которая называется корнем дерева;

2. из вершины проводятся n дуг, каждая из которых помечается буквой входного алфавита;

3. на концах дуг строится n вершин;

4. из каждой построенной вершины проводятся n дуг и так далее;

5. последняя висячая вершина (лист) – называется конечной вершиной.

Для построения автомата по автоматному алфавитному оператору необходимо выполнить следующие действия :

1. построить дерево входных последовательностей.

2. отметить все вершины дерева символами состояний автомата si, при этом корень пометить символом начального состояния s0, а все висячие вершины (листья) символами конечного состояния sk.

3.1. для получения графа автомата Мура вершины дерева отметить символами соответствующих выходных слов;

3.2. для получения графа автомата Мили отметить дуги символами соответствующих выходных слов

4. все конечные вершины совместить в одну.

В результате выполнения этого подэтапа получается граф полностью определенного абстрактного автомата.

Минимизация числа состояний абстрактного автомата, заданного графом переходов .

Уменьшение числасостояний полностью определенного абстрактного автомата можно осуществить за счет объединения эквивалентных состояний

Два состояния автомата называются эквивалентными, если при переходе из них по одинаковым входным символам в одно и то же состояние происходит выдача одинаковых выходных символов.

На (рис. 3.2) представлен фрагмент графа автомата Мили с двумя эквивалентными состояниями si и sj ,что обозначается: si Абстрактный синтез конечных автоматов - student2.ru sj.

si
pk / Wk
pi
pk / wk
sj
pj
sk

Рис. 3.2

После объединения этих эквивалентных состояний в одно, обозначенное символом sij ,получается фрагмент графа автомата Мили (рис. 3.3) с меньшим числом состояний.

sij
sk  
pi  
pj  
pk / wk  

Рис. 3.3

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

Для получения автомата многократного действия необходимо его начальную вершину совместить с конечной.

Пример построения абстрактного автомата Мили по автоматному алфавитному оператору, заданного таблицей (табл. 3.4).

Таблица 3. 4

p0 p1 p2 w0 w1 w2

Из таблицы определяется входной и выходной алфавит:

P = {0 , 1}, W = {0 , 1}.

Строится дерево входных последовательностей (рис. 3.4).

s0
 
 
 
 
 
 
 
 
 
 
 
 

Рис.3.4

Дерево входных последовательностей с вершинами размеченными символами состояний (рис. 3.5) формирует следующее множество состояний: S = {s0 , s1 , s2 , s3 , s4 , s5 , s6 , sk }.

s0
 
 
 
 
 
 
s1
s3
sk
s4
s2
s5
s6
sk  
sk  
sk  
sk  
sk  
sk  
sk  

Рис.3.5

Дерево с дугами, размеченными соответствующими выходными символами (рис. 3.6).

0 / 1
s0
0 / 0
s1
s3
sk
s4
s2
s5
s6
sk
sk
sk
sk
sk
sk
sk
1 / 0
0 / 0
1 / 0
0 / 1
1 / 0
1 / 0
1 / 0
0 / 1
0 / 1
0 / 0
1 / 0
1 / 0

Рис.3.6

После объединения в одну всех вершин, помеченных символом sk , получается граф автомата Мили (рис. 3.7).

s0
0 / 0
s1
s3
sk
s4
s2
s5
s6
1 / 0
0 / 0
1 / 0
0 / 1
1 / 0
1 / 0
1 / 0
0 / 1
0 / 1
0 / 0
1 / 0
1 / 0
0 / 1

Рис.3.7

Вторым этапом абстрактного синтеза является минимизация числа состояний. Из анализа переходов в конечное состояние sk видно, что существуют две пары эквивалентных состояний s3 Абстрактный синтез конечных автоматов - student2.ru s4 и s5 Абстрактный синтез конечных автоматов - student2.ru s6. После объединения этих состояний получается граф автомата Мили (рис. 3.8).

s0
0 / 0
s1
s34
s2
s56
1 / 0
0 / 0
1 / 0
sk
0 / 1
0 / 0
1 / 0
1 / 0
1 / 0
0 / 1

Рис.3.8

Из анализа переходов в конечное состояние sk на рис.3.8 видно, что новые состояния s34 и s56 также эквивалентны, т.е. s34 Абстрактный синтез конечных автоматов - student2.ru s56. После их объединения получается граф автомата Мили (рис. 3.9).

s0
0 / 0
s1
s3456
s2
1 / 0
sk
1 / 0
1 / 0
0 / 1
0 / 0
0 / 0
1 / 0

Рис.3.9

Из анализа переходов в состояние s3456 видно, что s1 Абстрактный синтез конечных автоматов - student2.ru s2 и после их объединения получается граф автомата Мили (рис. 3.10).

s0
0 / 0
s3456
s12
1 / 0
sk
1 / 0
0 / 1
0 / 0
1 / 0

Рис.3.10

Для получения автомата многократного действия совмещаются состояния s0 и sk и после их переобозначения получается граф автомата Мили (рис. 3.11).

s0
0 / 0
s1
1 / 0
s2
1 / 0
0 / 1
0 / 0
1 / 0

Рис. 3.11

Графу автомата Мили (рис. 3.11) соответствует таблица переходов и выхода (табл. 3.5).

Таблица 3.5

pi sj
s0 s1/0 s1/0
s1 s2/0 s2/0
s2 s0/1 s0/0

Для проверки работы полученного автомата промоделируем его работу по переработке входного слова: 1 1 0. Результат работы приведен в табл. 3.6.

Таблица 3.6

tk t0 t1 t2  
si s0 s1 s2 s0
pj  
wm  

Таким образом, входное слова: 1 1 0 перерабатывается в выходное слова: 0 0 1, что соответствует заданному алфавитному оператору.

3.2. Минимизация числа состояний полностью определенного автомата

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

Пусть полностью определенный автомат A, имеющий k состояний, задан таблицей переходов и выхода. Требуется построить эквивалентный ему автомат A* c числом состояний k*, причем k* ≤ k.

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

Два состояния s и s называются эквивалентными, если любую входную последовательность автомат перерабатывает в одинаковые выходные последовательности, независимо от того какой из этих двух состояний s или s выбраны в качестве начального т.е. s≡ s.

Отношение эквивалентности обладает следующими свойствами:

1. рефлексивность, т.е. s’ ≡ s’;

2. симметричность, т.е. если s’≡ s”, то из этого следует: s”≡ s’;

3. транзитивность, т.е. если s≡ sk и s≡ sk, то из этого следует что: s ≡ s.

Отношение эквивалентности разбивает все множество состояний S на классы эквивалентности: S = C1 U C2 U C3 U…U Cq.

Класс эквивалентности Ci Абстрактный синтез конечных автоматов - student2.ru S - это подмножество состояний попарно эквивалентных между собой, причем . Ci ∩ Cj = Ø, если i ≠ j, т.е. пересечение любых двух классов эквивалентности представляет собой пустое множество и следовательно каждое состояние может входить только в один класс эквивалентности.

На рис. 3.12 приведен тривиальный пример эквивалентных состояний s’≡ s” и их объединения, который был использован ранее при переходе от алфавитного оператора к графу автомата.

s
s””
sk
p1 / w1  
p1 / w1
s
sk sk
p1 / w1  

Рис. 3.12

На рис. 3.13 приведен пример фрагмента графа автомата, в котором эквивалентность состояний sи sне являетсястоль очевидной.

sj
s  
s
p2 / w2
p2 / w2  
p1 / w1  
p2 / w2  
p1 / w1
p1 / w1  

Рис. 3.13

На рис. 3.14 приведен фрагмент графа после объединения sи s.

p1 / w1  
p2 / w2  
p1 / w1  
p2 / w2  
sj
s  

Рис. 3.14

Два необходимых условия эквивалентности состояний автомата Мили.

Два состояния s и sявляются эквивалентными, если:

1. при переходе из этих состояний под воздействием любого одинакового входного символа pk вырабатываются одинаковые выходные символы, т.е: ψ(s,pk) = ψ”(s,pk);

2. при переходе из этих состояний под воздействием любого одинакового входного символа pk переход осуществляется в одно и то же или в эквивалентные состояния, т.е. если

si = φ(s,pk) и sj = φ(s,pk), то следует, что si ≡ sj.

Алгоритм минимизации числа состояний полностью определенного с помощью треугольной матрицы.

Задан таблицей переходов и выхода полностью определенный автомат Мили, имеющий k –состояний.

Алгоритм состоит из выполнения следующих шагов:

1. Строится треугольная матрица без диагональных элементов, столбцы которой нумеруются слева направо индексами состояний с 1 до k -1, а строки матрицы сверху вниз с 2 до k;

2. Любой клетки матрицы с координатами i и j соответствовать пара состояний si и sj. Последовательно просматривая таблицу переходов матрица заполняются следующим образом:

a) если для пары si и sj невыполнимо первое условие эквивалентности, то в клетку ставят «×», это означает, что эти состояния заведомо; неэквивалентны;

b) если для пары состояний si и sj выполняется первое условие, но еще не известно выполняется ли второе, т.к. переходы осуществляется в разные состояния, то в клетку записывают номера состояний от эквивалентности которых зависит эквивалентность рассматриваемой пары;

c) если для пары состояний si и sj сразу выполняются оба условия, то клетка оставляется пустой, то означает, что эти состояния заведомо эквивалентны;

3. заполненная треугольная матрица, последовательно просматривается по клеткам, содержащим номера пар состояний и если известно, что эти номера соответствуют не эквивалентным состояниям, то в этой клетки ставят «×». Просмотр матрицы продолжается до тех пор пока не перестанут появляться новые пары неэквивалентных состояний;

4. Из треугольной матрицы выписываются все пары эквивалентных состояний (где не содержится «×») и из них образуются классы эквивалентности;

5. Каждому классу эквивалентности ставится в соответствие символ нового состояния и переписывается исходная таблица переходов и выхода.

Пример минимизации автомата Мили заданного таблицей переходов и выхода (табл. 3.7).

P = {a, b, c}, W = {1, 2}, S = {s1, s2, s3, s4, s5, s6, s7, s8}.

В таблице переходов и выхода (табл. 3.7) для наглядности вместо символов состояний указаны только их индексы.

pk si a b c
4 / 1 2 / 2 5 / 1
5 / 2 1 / 1 4 / 2
3 / 2 5 / 1 4 / 2
5 / 1 8 / 2 4 / 2
7 / 1 2 / 2 1 / 1
1 / 1 3 / 2 4 / 2
5 / 1 3 / 2 7 / 2
3 / 2 5 / 1 6 / 2

Таблица 3.7

3,5 1,5
4,7 1,5
1,5 3,8
3,8 4,7
3,5 1,5 4,6
4,6
1,5 4,7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
Рис. 3.15

На рис. 3.15 приведена треугольная матрица, заполненная по изложенному выше алгоритму. Клетки, не содержащие «×» соответствуют следующим парам эквивалентных состояний: 1 ≡ 5, 3 ≡ 8, 4 ≡ 6, 4 ≡ 7,6 ≡ 7 и из них можно образовать следующие классы эквивалентности:

C1 = {1 , 5}, C2 = {2}, C3 = {3 , 8}, C4 = {4 , 6 , 7}.

Каждому классу сопоставляется символ нового состояния:

C1 – s1, C2 – s2, C3 – s3, C4 – s4. Далее в исходной таблице переходов символ старого состояния, заменяется на символ нового состояния, который соответствует классу, в который это старое состояние входит. В результате получается таблица переходов и выхода (табл. 3.8).

После объединения в ней одинаковых строк получается таблица переходов и выхода минимального автомата Мили (табл. 3.9), с числом состояний k* = 4 вместо k = 8 в исходном автомате.



Таблица 3.8

pk si a b c
1’ 4’/ 1 2’/ 2 1’/ 1
2’ 1’/ 2 1’/ 1 4’/ 2
3’ 3’/ 2 1’/ 1 4’/ 2
4’ 1’/ 1 3’/ 2 4’/ 2
1’ 4’/ 1 2’/ 2 1’/ 1
4’ 1’/ 1 3’/ 2 4’/ 2
4’ 1’/ 1 3’/ 2 4’/ 2
3’ 3’/ 2 1’/ 1 4’/ 2

Таблица 3.9

pk si a b c
1’ 4’/ 1 2’/ 2 1’/ 1
2’ 1’/ 2 1’/ 1 4’/ 2
3’ 3’/ 2 1’/ 1 4’/ 2
4’ 1’/ 1 3’/ 2 4’/ 2

Наши рекомендации