Министерство образования Российской Федерации ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) ЛАБОРАТОРНАЯ РАБОТА №1 МАТЕМАТИЧЕСКИЕ ОСНОВЫ ТЕОРИИ СИСТЕМ («Математические основы теории систем», Томск-2002, А.Г. Карпов) Вариант - 13 Выполнил: Студент ФДО ТУСУР группы ФИО 2014 г Цель лабораторной работы освоить основные понятия теории автоматов и основные методы анализа и синтеза конечных автоматов на абстрактном уровне. Автоматы в лабораторной работе заданы автоматной таблицей, в которой строки представляют собой состояния, а столбцы – буквы входного алфавита: на пересечении i-ой строки и j-го столбца стоит номер состояния, в которое переходит автомат из i-го состояния по j-ой входной букве, и через запятую – буква выходного алфавита, появляющаяся при этом на выходе автомата (для автоматов Мили). В таком же виде следует представлять и результаты заданий (где это необходимо). Задание№1 Разложить заданный автомат А на автономные: а) по входным буквам Ax , Ax ; 1 qi x j 1 x1 2, y1 2 3 2 x2 3, y1 2, y1 1, y 2 2, y1 3, y1 Строим граф: x1,y1 x1,y1 1 х2,y2 x2,y1 2 1 x2,y1 х1,y1 3 1 Из автомата с входным алфавитом X =x1, x2 может быть построено 2 различных автономных по входу автоматов исключением из графа переходов автомата всех ребер, кроме ребер с x1 либо x2 Ax1 : x1,y1 1 x1,y1 2 1 x1,y1 3 1 Ax2 : 1 2 1 x2,y1 x2,y1 x2,y2 3 1 x1 X2 1 2, y1 1 3, y1 2 2, y1 2 1, y2 3 2, y1 3 3, y1 б) Аналогично, автомат называется автономным по выходу, если его выходной алфавит состоит из одной буквы Y = y. Ay1 : x1,y1 x1,y1 1 2 1 x2,y1 x2,y1 х1,y1 3 1 Ay2 : 1 x2,y2 2 1 Ay2 Ay1 x1 х2 1 2,у1 3, y1 2 2, y1 3 2, y1 3, y1 x1 X2 1 2 1, y2 3 - Задание №2 По автомату Мили построить эквивалентный ему автомат Мура, используя теорему 4.2.2 [1]. qi x j x1 x2 1 1, y 2 2, y 2 2 2, y1 1, y 3 Для данного автомата число состояний n=2, число входных букв m=2. Построим эквивалентный автомат Мура. В соответствии с теоремой 4.2.2 число состояний эквивалентного автомата Мура составит n*m+n=6. Полагая в формуле Получим Воспользовавшись формулой И учитывая, что индекс l определяется из соотношения Имеем М(q11,x1)=q21 М(q11,x2)=q22 М(q12,x1)=q11 М(q12,x2)=q12 М(q21,x1)=q11 М(q21,x2)=q12 М(q22,x1)=q21 М(q22,x2)=q22 Далее находим функцию отметок по формуле И составляем автоматную таблицу X1 X2 q10 q21 q22 - q20 q11 q12 - q11 q11 q12 y2 q12 q21 q22 y2 q21 q21 q22 y1 q22 q11 q12 y3 Задание №3 По автомату Мура построить эквивалентный ему автомат Мили q x x1 x2 1 3 1 y2 2 2 4 y1 3 1 2 y4 4 2 1 y3 Таблицы переходов автомата Мили и эквивалентного ему автомата Мура совпадают. Таблица выходов автомата Мили составляется так, что в каждую клетку таблицы записывается выходной сигнал, которым отмечено состояние, расположенное в данной клетке. λ(1, x1)=y3 λ(2, x1)=y2 λ(3, x1)=y1 λ(4, x1)=y2 λ(1, x2)=y1 λ(2, x2)=y2 λ(3, x2)=y2 λ(4, x2)=y1 x1 x2 1 3, y3 1, y1 2 2, y2 4, y2 3 1, y1 2,y2 4 2, y2 1, y1 Задание №4 Найти автоматные отображения слов для заданного автомата, предполагая, что: a) Функция выхода обычная (автомат 1 рода). b) Функция выхода сдвинутая (автомат 2 рода). Задан автомат qi/xj x1 x2 x3 3, y2 2, y1 4, y1 1 3, y1 4, y1 1, y2 2 2, y2 3, y1 4, y2 3 4 1, y1 2, y2 3, y1 и входное слово: x= x2x1x2x1x2x3x2 Решение В качестве начального состояния примем q1. Для автомата первого рода q t q t 1 , x t y t q t 1 , x t Получаем ленту автомата: Такт X Q Y 0 1 - x2 1 2 - y1 2 x1 3 y1 3 x2 4 y1 4 x1 3 y1 5 x2 2 y1 6 x3 4 y1 7 x2 2 y2 6 x2 2 y2 7 - Для автомата второго рода q t q t 1 , x t y t q t , x t Получаем ленту автомата: Такт X Q Y 0 x2 2 y1 1 x1 3 y1 2 x2 4 y1 3 x1 3 y1 4 x2 2 y1 5 x3 4 y1 Задание №5 Минимизировать автомат, используя алгоритм Мили: q x x1 x2 x3 1 3 ,1 7 ,0 1 ,0 2 7 ,1 6 ,1 2 ,0 3 3 ,1 3 ,0 1 ,0 4 9 ,0 8 ,1 7 ,1 5 5 ,0 6 ,1 6 ,1 6 7 ,1 3 ,1 2 ,0 7 9 ,0 3 ,1 3 ,1 8 4 ,0 8 ,1 4 ,1 9 6 ,1 6 ,0 4 ,0 Решение Шаг 1. Разбиение множества состояний автомата на классы эквивалентности по сигнатуре выходов: q2 q6 q4 q5 q7 q8 q1q3q9 1 0 0 011 110 Шаг 2. Разбиение классов эквивалентности состояний по сигнатуре переходов: q1q3q9 q4 q5q7 q8 x1 q3q3q6 x1 x2 x2 x3 q7q3q6 q1q1 q4 q2 q6 x1 x2 q7 q7 x3 q6 q3 q2 q2 q9q5q9q4 q8q8 q6q3 q7 q6q3 q4 x3 Шаги 3,4... В результате разбиения, получаем новый набор классов эквивалентности, для которого снова проводим процедуру разбиения: q9 q1q3 q5 q8 x1 q4q7 q2q6 x1 q3q3 x2 x3 q7 q3 q1q1 q9q9 x1 x2 q7 q7 q8 q3 q7 q3 x3 x2 x3 q6q3 q2q2 q9 q1 q3 q5 q8 q4 q7 q2q6 x1 q7 q7 x2 x3 q6 q3 q7 q7 Как видно, все классы эквивалентности, в конце концов, разбились на исходный набор состояний. Минимизация автомата невозможна. Задание №6 Написать формулу в алгебре Клини, задающую событие в алфавите {a,b,c}: Все слова, содержащие b нечётное число раз. Решение Для формирования заданного регулярного события использовать вспомогательное событие – Н1=слово не содержит b. Тогда искомое событие получает вид: H1 е q0 H1 b е qz можно Событие Н1, в свою очередь, можно представить в виде сигнального графа b cb е е b q0 q1 qz q2 a e Расщепляя вершину q1, получаем источник: e b е b q1/ cb q0 q2 a qz е q1// cbbb*a е q0 b е b q1 q2 qz e Соответствующий формуле H1 c b b a b c b b a c b b a b e c b b a Таким образом, решением задачи является формула E c b b a b c b b a Задание №7 Синтезировать автомат (на абстрактном уровне), представляющий регулярное событие: (c ab)* c* Решение Сигнальный граф заданного события: c a b е q0 е e q2 q1 a q3 qz c Детерминизация: q a b c q0 {q1, qz} {q2,q3} {q2,q3} {q1, qz} {q1, qz} {q2,q3} {q2,q3} {q2,q3} {q1, qz} {q2,q3} {q2,q3} После переобозначения вершин, получаем таблицу переходов и граф автомата: q a b c 1 1 2 3 2 1 2 3 3 1 2 3 а 1 2 bc bc 3 bc Выделены состояния: 1 –начальное , 2 — конечное (содержит qz исходного источника) Задание №8 Провести анализ автомата (написать выражение регулярного события, представляемого автоматом). Начальное состояние — 1, заключительное — 4. q/x 1 2 3 4 a 3 2 2 b 2 4 4 - c 1 4 Решение В виде графа заданный автомат выглядит так: с 3 а а 1 b 2 a b b 4 c После приведения к индексному остатку получаем: 3 a 1' c a b 2 b a 1'' b 4' c e 4'' После нахождения приращений индексных вершин, получаем: qz остаточных дуг и устранения 3 a c a b 2 b 1'' b 4'' e qz c*∙b∙a c*∙ab*ab*∙(c*ba)* b 1 qz c*∙ba*∙b∙(cbva) Итак, искомое регулярное выражение события, представляемого заданным автоматом, имеет вид: Е= c*∙ba*∙b∙(cbva) или c*∙ab*ab*∙(c*ba)* b