- •Самарский государственный архитектурно-строительный университет
- •Часть 1.
- •Оглавление
- •1. Модели дискретных структур. Комбинационные схемы
- •1.1. Введение
- •1.2. Функции алгебры логики
- •1.3. Булева алгебра. Функциональная полнота
- •Свойства алгебры Жегалкина
- •1.4. Минимизация функции алгебры логики
- •1.5. Функции k-значной логики
- •1.6. Основные понятия трехзначной логики
- •1.7. Представление k-значных функций в виде нормальных форм
- •1.8. Двоичное кодирование переменных и функций трехзначной логики
- •1.9. Элементная база комбинационных схем
- •1.10. Программная реализация логических функций и автоматов
- •2. Формальные языки и грамматики
- •2.1. Введение в теорию формальных языков и грамматик
- •2.2. Выводы цепочек формального языка. Деревья ксг
- •2.3. Основные понятия теории формальных языков и грамматик
- •2.4. Приведение грамматик
- •2.4. Операции над языками
- •2.5. Право-линейная и автоматная грамматики
- •3. Теория автоматов
- •3.1. Введение
- •3.2. Способы представления конечных автоматов
- •3.3. Минимизация числа состояний автомата
- •3.4. Использование сети Петри при переходе от грамматики к автомату
- •3.5. Сети Петри. Маркировка
- •3.6. Классификация сетей Петри
- •Статические ограничения
- •3.7. Синхронные и асинхронные автоматы
- •3.8. Модели автоматов Мили и Мура
- •3.9. Кодирование автомата
- •3.10. Элементная база синтеза комбинационных схем
- •3.11. Структурный синтез автомата
- •4. Отдельные вопросы теории вычислительных процессов
- •4.1. Автоматы с магазинной памятью
- •4.2. Комбинационные схемы обнаружения ошибок
- •4.3. Пространство сообщений. Коды обнаружения и исправления ошибок
- •Контрольные вопросы
3.3. Минимизация числа состояний автомата
Теорема. Для любого автомата существует минимальный автомат с точностью до изоморфизма.
Алгоритм Мили
Пусть задан автомат S с n состояниями. На каждом шаге алгоритма будем строить некоторое разбиение множества состояний Q на классы cij, где i - номер шага, j - номер класса. Разбиение на i + 1 шаге получается разбиением классов, полученных на i шаге.
1. Два состояния q’ и q’’ относятся в класс c1j, если при A для функций выхода справедливо равенство
( q’, ) = ( q’’, ).
2. q’ и q’’ из класса cij относятся к классу ci+1,j , если для A найдется такое j, для которого справедливы следующие отношения принадлежности
( q’, ) cij, ( q’’, ) cij.
Вычисления по пункту 2 алгоритма продолжаются до тех пор, пока процесс разбиения на классы может быть продолжен, в противном случае процесс останавливается, и полученные заключительные классы состояний будут представлять собой классы эквивалентных состояний.
Пример. Для автомата, заданного таблицей переходов вида:
-
a1
a2
a3
q1
2,0
4,1
4,1
q2
1,1
1,0
5,0
q3
1,1
6,0
5,0
q4
8,0
1,1
1,1
q5
6,1
4,1
3,0
q6
8,0
9,1
6,1
q7
6,1
1,1
3,0
q8
4,1
4,0
7,0
q9
7,0
9,1
7,1
построить разбиение состояний на классы эквивалентности.
Решение. Построим классы c1j в соответствии с первым шагом алгоритма:
c11 = { q1, q4, q6, q9 } , c12 = { q2, q3, q8 }, c13={ q5, q7 }.
Следующие классы будем выделять в соответствии с пунктом 2 алгоритма:
c21 = { q1, q6, q4}, c22 = { q9 }, c23 = { q2, q3, q8}, c24 = { q5, q7 };
c31 = { q1, q4 }, c32 = { q6 }, c33 = { q9 }, c34 = { q2, q3, q8},
с35 = { q5, q7 }; c41 = { q1, q4 }, c42 = { q6 }, c43 = { q9 },
c44 = { q2, q8 }, c45 = { q3 }, c46 = { q5, q7 }.
Из эквивалентных состояний, принадлежащих одному классу, оставляем только одно состояние. В итоге, множество состояний минимизированного автомата представится множеством {q1, q6, q9, q2,q3, q5 }. Следовательно, новая таблица переходов будет иметь на три строки меньше, поскольку на три состояния уменьшилось общее число состояний заданного автомата. Таблица переходов минимального автомата будет следующей:
|
a1 |
a2 |
a3 |
q1 |
2,0 |
1,1 |
1,1 |
q2 |
1,1 |
1,0 |
5,0 |
q3 |
1,1 |
6,0 |
5,0 |
q5 |
6,1 |
1,1 |
3,0 |
q6 |
2,0 |
9,1 |
6,1 |
q9 |
5,0 |
9,1 |
5,1 |
Алгоритм минимизации автомата по методике Мура
1. В таблице переходов отыскиваются строки, у которых есть рабочие
состояния в одинаковых столбцах. Рабочим состоянием считается
состояние отличное от состояния ошибки. Состояния, которым
соответствуют такие строки, заносятся в группы.
2. Рабочие состояния каждой группы проверяются на эквивалентность.
Если среди рабочих состояний групп установлена эквивалентность, то состояния, образующие группу, считаются
эквивалентными.
Пример. Для автомата, заданного таблицей переходов вида:
|
x0 |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
q0 |
q7 |
|
|
|
|
|
q10 |
q1,3 |
q1,3 |
q2 |
|
|
q4 |
|
|
|
|
q2 |
|
q5 |
|
|
|
|
|
|
q4 |
|
|
|
|
|
|
|
q6 |
q5 |
|
|
|
|
|
|
|
q8,19 |
q6 |
|
|
|
|
|
|
|
q9,19 |
q7 |
|
|
|
|
|
|
|
q9,19 |
q8,19 |
|
|
|
|
q0 |
q19 |
|
|
q9,19 |
|
|
|
|
q0 |
q19 |
|
|
q10 |
|
|
|
|
|
q11 |
|
q14,17 |
q11 |
|
q12 |
|
|
|
|
|
|
q12 |
|
|
|
|
|
q13 |
|
|
q13 |
|
|
|
|
|
|
q19 |
|
q14,17 |
|
q15,18 |
|
|
|
|
|
|
q15,18 |
|
|
|
|
|
q16 |
q19 |
|
q16 |
|
|
|
|
|
|
q19 |
|
q19 |
|
|
|
|
|
|
|
|
построить минимальный автомат, используя методику Мура.
Решение. Построим группы состояний, подозреваемых на эквивалентность, в соответствии с алгоритмом. Ими будут:
[ q4; q5; q6; q7 ] ; [ q8, 19; q 9, 19 ]; [ q13; q16 ]; [ q2; q11; q14,17 ].
Состояния внутри выделенных групп необходимо проверить на эквивалентность. После проверки и удаления из групп состояний, не удовлетворяющих условию эквивалентности, классы эквивалентных состояний примут вид:
[ q5; q6; q7 ]; [ q8, 19; q 9, 19 ]; [ q13; q16 ].
Введем новые обозначения состояний автомата:
r0 = { q5, q6, q7}; r6 = { q10 }; r7 ={ q11 };
r1 = { q9,19, q8,19 }; r8 ={ q12 };
r2 = { q13, q16 }; r9 = { q14,17 };
r3 = { q1,3 }; r10 = { q15,18 };
r4 = { q2 }; r11 = { q19 } - заключительное состояние;
r5 = { q4 }; r12 = { q0 } - начальное состояние.
Таблица переходов минимального автомата примет вид:
|
x0 |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
r0 |
|
|
|
|
|
|
|
r1 |
r1 |
|
|
|
|
r12 |
r11 |
|
|
r2 |
|
|
|
|
|
|
r11 |
|
r3 |
r4 |
|
|
r5 |
|
|
|
|
r4 |
|
r0 |
|
|
|
|
|
|
r5 |
|
|
|
|
|
|
|
r0 |
r6 |
|
|
|
|
|
r7 |
|
r9 |
r7 |
|
r8 |
|
|
|
|
|
|
r8 |
|
|
|
|
|
r2 |
|
|
r9 |
|
r10 |
|
|
|
|
|
|
r10 |
|
|
|
|
|
r2 |
r11 |
|
r11 |
|
|
|
|
|
|
|
|
r12 |
r0 |
|
|
|
|
|
r6 |
r3 |