Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие ДМ2 15.10.11.doc
Скачиваний:
220
Добавлен:
31.05.2015
Размер:
16.53 Mб
Скачать

2.2.3. Эквивалентные состояния автоматов

Пусть дан автомат . Требуется построить новый автомат, который:

1) покрывает (возможно, даже, эквивалентен ему)

2) имеет наименьшее число состояний среди всех автоматов, покрывающих . Считается, что функцииφиψвсюду определены.

Далее следует определить эквивалентные друг другу состояния автомата . Затем следует склеить все эквивалентные состояния в одно.

Определение. Состояния автоматовиназываютсяr-эквивалентными, если для любой входной строки длиныr () имеет место . В этом случае используется запись . Если это не так, то используется запись . Если для любогоr,то говорят, что состоянияиэквивалентныи записывают.

Отношения Er и Eпредставляют собой отношения эквивалентности. Классы эквивалентности отношенияE1являются множествами всех пар состояний, перерабатывающих каждый входной символ в фиксированный выходной символ. То есть запись означает, что

.

В этом равенстве легко убедиться по таблице состояний.

Например, для автомата, заданного таблицей состояний:

Текущее состояние

φ

0

1

0

1

0

1

1

0

0

1


В данном случае имеем . Таким образом, отношение эквивалентностисостоит из следующих элементов:

Дополнение отношения обозначается как. Тогда записьозначает, что. Таким образом:

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

Вводятся функции φ*иψ*

Определение:Функция, задаваемая выражением

указывает на то, что –есть конечное состояние, в которое переходит автомат, начав работу из состоянияs0и считав строкудлиныr.

Определение: Функция, задаваемая выражением

указывает на то, что - есть последний символ выходной строки, которую печатает автомат, начав работу из состоянияs0и считав строкудлиныr.

Например, для первого автомата, изображенного на рисунке () при имеем:

.

2.3. Процедура минимизации конечных автоматов

Процедура минимизация основана на рассмотрении отношений эквивалентности между упорядоченными парами состояний конечного автомата.

Рассмотрим таблицу состояний автомата.

Текущее состояние

1

0

0

0

1

1

1

0

0

0

1

1

1

0

0

0

1

1

1

0

0

1

0

0

0

1

1

Рис. 1. Таблица состояний автомата, подлежащего минимизации.

Начнем с нахождения отношений и. В соответствии с функцией, находим первое разбиение

. (1)

Оно разбивает состояния автомата на два класса эквивалентности и(здесь вместопишется 1, вместопишется 2 и т.д.). Так как отношениерефлексивно и симметрично, то его всегда можно восстановить по множеству тех пар, для которых выполняется условие, Обозначим его через. Обозначим, в общем случае, черезмножество упорядоченных пар, со свойствами. Для разбиенияимеем:

={(1,3)(1,5)(1,7)(1,8)(3,5)(3,7)(3,8)(5,7)(5,8)(7,8,)(2,4)(2,6)(2,9)(4,6)(4,9)(6,9)},

={(1,2)(1,4)(1,6)(1,9)(2,3)(3,4)(3,6)(3,9)(2,5)(4,5)(5,6)(5,9)(2,7)(4,7)(6,7)(7,9)(2,8)(4,8)(6,8)(8,9)}.

Так как и– классы эквивалентности относительноE1, имеемs1E1s3,s1E1s5иs1s2,s1s4и т.д.

Множество состоит из элементов множестваи ещё пар (2,9), (4,9) и (6,9). Например,a3переводит (2,9) в (4,7), а эта последняя парапринадлежитG(). Добавление этих пар кG() определяет новое разбиение на классы эквивалентности:

(2)

Определим теперь множество . Оно состоит из элементов множества и еще двух пар (2,6) и (4,6).

Например, переводит (2,6) в (4,9), а эта последняя пара принадлежит .При разбиенииπ3имеем следующие классы эквивалентности:

(3)

Дальнейший перебор показываетπ54иE4=E.

Конструкция покрывающего автомата теперь несложна. Каждый класс эквивалентности последнего разбиения становится состоянием нового автомата. Например,обозначается через,черези т.д. Получается автомат с 5-ю состояниями, покрывающий первоначальный автомат с 9-ю состояниями. Так как выходы для каждого начального состояния в фиксированном классе эквивалентности не зависит от этого состояния при односимвольных входах, то в таблице состояний нового автомата выход прямо считывается с таблицы состояний первоначального автомата. Чтобы построить функцию перехода в следующее состояние, выберем по состояниюsiв каждом классе, и если элементaAпереводитsiв неоторое состояние из, положим φ(si,a) =. Заметим, что это предписание однозначно: всеsпереходят в состояния изпосле считывания изaA.

Результат этой процедуры, примененной к автомату с рис. 1, показан на рис. 2. Получен минимальный автомат.

Текущее состояние

Следующее состояние

Выход

1

0

0

0

1

1

1

0

0

0

1

1

0

1

1

Рис. 2. Минимальный автомат, покрывающий автомат с рис. 1.

Практически необязательно перечислять все пары из G(Ei) иG().На каждом шаге достаточно смотреть, переводит ли некоторый входaiAпару (si,sj) в разные классы эквивалентности. Если да, то на следующем шагеsiиsjследует развести по разным классам.

Пример.

Рассмотрим автомат с пятью состояниями:

Текущеесостояние

Следующее состояние

Выход

0

1

0

1

s0

s1

s2

1

0

s1

s4

s2

0

0

s2

s3

s0

1

0

s3

s4

s0

0

0

s4

s4

s4

0

0

Имеем:

s0E1s2, s1E1s3, s1E1s4, s3E1s4.

Это приводит к разбиению

.

Вход 1 переводит s3вs0, т.е. ν(s3,1) =s0; кроме того, ν(s4,1) =s4. Однакоs0s4, такчтоs3s4 (ибоΨ(s3,10) = 1 и Ψ(s4,10) = 0).

Следующее разбиение π2состоит из классов эквивалентности

.

Дальнейшего измельчения не просходит, ибо ν переводит каждый элемент класса эквивалентности в тот же класс. Итак, состояния s0иs2можно склеить в одно состояние, а состоянияs1иs3– в состояние. Состояниеs4 получает первое обозначениеs2. Новый минимальный автомат, покрывающий исходный автомат:

Следующее состояние

Выход

0 1

0 1

1

0

0

0

0

0