
- •Лабораторная работа № 3 Минимизация абстрактного автомата
- •3.1. Постановка задачи минимизации
- •3.2. Минимизация полных автоматов
- •3.2.1. Метод Ауфенкампа и Хона
- •Минимизация автомата Мили
- •Минимизация автомата Мура
- •3.2.2. Минимизация абстрактных автоматов с помощью треугольной таблицы
- •3.3. Минимизация частичных автоматов
- •3.3.1. Определения
- •3.3.2. Метод треугольной таблицы
- •3.4. Задания к выполнению работы
- •3.5. Контрольные вопросы
3.2.2. Минимизация абстрактных автоматов с помощью треугольной таблицы
Рассмотрим алгоритм минимизации состояний автоматов с помощью треугольной таблицы, предложенной М.Поллом и С.Ангером. По таблицам переходов и выходов автомата составляется треугольная таблица, столбцы и строки которой сопоставляются с состояниями автомата.
Рассмотрим минимизацию автомата S3, заданного табл. 3.12 и 3.13. Табл. 3.14 – треугольная таблица для автомата S3. Для упрощения записи в этой таблице вместо ai будем писать i.
В треугольной таблице на пересечении строки m и столбца s ставятся:
+ (крест), если в столбцах am и as таблицы выходов стоят разные выходные сигналы, например столбцы а1 и а2 (см. табл. 3.13);
множество всех пар состояний, следующих за парой (am, as) и отличных от неё, эквивалентность которых необходима для эквивалентности пары (am, as). Например, для эквивалентности (а1, а8) необходима эквивалентность (а3, а6) и (а2, а5), так как (а3, а8) и (а2, а5) следуют за парой (а1, а8) по входам z1 и z2 соответственно (см. табл. 3.12);
V (птичка), если за (am, as) не следуют пары, отличные от (am, as). В нашем примере это пара (а6, а7).
Таблица 3.12
|
а1 |
а2 |
а3 |
а4 |
а5 |
а6 |
а7 |
а8 |
z1 |
а3 |
а8 |
а7 |
а2 |
а3 |
а2 |
а2 |
а6 |
z2 |
а2 |
а4 |
а5 |
а4 |
а2 |
а7 |
а6 |
а5 |
Таблица 3.13
|
а1 |
а2 |
а3 |
а4 |
а5 |
а6 |
а7 |
А8 |
z1 |
w1 |
w2 |
w1 |
w2 |
w1 |
w2 |
w2 |
w1 |
z2 |
w2 |
w1 |
w2 |
w1 |
w2 |
w1 |
w1 |
w2 |
Для нахождения неэквивалентных пар состояний треугольная таблица (см. табл. 3.14) просматривается по столбцам. Находится первая клетка, отмеченная крестом. Пусть это будет клетка (i, j). Тогда во всех клетках, где есть пара (i, j), ставится крест, а уже рассмотренная клетка (i, j) отмечается вторым крестом. Эта процедура проводится для всех клеток, отмеченных крестом, включая новые, и заканчивается, когда таких клеток не останется.
Таблица 3.15
2
++
3
3.7+ 2.5+ ++
4
++ 2.8++ ++
5
V ++
3.7+ 2.5+ ++
6
++
2.8+ 4.7+ ++ 4.7 ++
7
++
2.8+ 4.6+ ++ 4.6 ++ V
8
3.6+ 2.5+ ++ 6.7 ++
3.6+ 2.5+ ++ ++
1
2
3
4
5
6
7
Таблица 3.14
2
+
3
3.7 2.5 +
4
+ 2.8 +
5
V +
3.7 2.5 +
6
+
2.8 4.7 + 4.7 +
7
+
2.8 4.6 + 4.6 + V
8
3.6 2.5 + 6.7 +
3.6 2.5 + +
1
2
3
4
5
6
7
Для нахождения разбиения воспользуемся способом, предложенным С.Ангером. Алгоритм сводится к следующему:
1. Начинаем
составление списка классов эквивалентных
состояний с крайнего правого столбца
треугольной таблицы, имеющего по крайней
мере одну клетку без крестов. В примере
Ф
= {}
.
2. Продвигаясь
влево, выписываем для каждого столбца
множества состояний Ai
~ ai,
т.е. множества состояний, соответствующим
клеткам без крестов в i-м
столбце таблицы. В нашем примере 4 ~
(в 4-м столбце табл. 3.15 нет крестов в
строках 6 и 7).
Каждое множество Ai пересекаем с каждым членом текущего списка Ф. Если такое пересечение содержит более одного состояния, то добавляем в список объединение { ai } с результатом пересечения:
;
Ф
= {
}.
Далее проводится максимизация полученного множества Ф - удаление всех множеств, содержащихся в других множествах списка.
Приведём полностью результат применения второго шага ко всем столбцам:
3. В список Ф,
полученный после второго шага, добавляются
все одноэлементные множества, состоящие
из состояний, не включенных ни в какие
другие максимальные классы эквивалентности.
В нашем примере -
.
Таким образом, для автомата S3 множество всех классов эквивалентности – разбиение – имеет вид
=.
Построение минимального автомата S3 по разбиению проводится аналогично пунктам 2 - 4 алгоритма, рассмотренного выше (см. п. 2.1). Из каждого класса эквивалентности выбираем по одному состоянию:
A = { а1, а2, а3, а4} .
Строим таблицы переходов и выходов минимального автомата S3 (табл. 3.16 и 3.17).
Таблица 3.16 Таблица 3.17
|
а1 |
а2 |
а3 |
а4 |
|
|
а1 |
а2 |
а3 |
а4 |
z1 |
а3 |
а3 |
а4 |
а2 |
|
z1 |
w1 |
w2 |
w1 |
w2 |
z2 |
а2 |
а4 |
а1 |
а4 |
|
z2 |
w2 |
w1 |
w2 |
w1 |