Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sergievskii_g_m_korotkova_m_a_vvedenie_v_matema...doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
1.07 Mб
Скачать

Метод Хафмена минимизации числа состояний автомата

Этот метод работает как для лингвистических автоматов, так и для автоматов Мили.

Идея – объединение в один класс предположительно эквивалентных состояний, а затем проверка, являются ли состояния действительно эквивалентными (неразличимыми). Затем, если состояния не эквивалентны, классы разбиваем на подклассы, и проверка повторяется. Если состояния ведут себя одинаково, то процедура закончена и получившиеся классы являются состояниями минимизированного автомата.

Например, рассмотрим автомат SD, диаграмма которого представлена на рис. 25

Рис.25

Алгоритм минимизации автомата

  1. Составляем таблицы переходов и выходов. По строкам указываются входы, по столбцам – состояния, в первом подстолбце каждого столбца указаны переходы, во втором – соответствующие выходы.

A

B

C

D

E

F

G

0

B

1

D

1

E

0

D

1

A

0

G

0

D

0

1

F

0

C

0

G

1

C

0

F

1

E

1

C

1

2. Составляем классы предположительно эквивалентных состояний (состояний, при переходе из которых при одинаковых входах выдаются одинаковые выходы, т.е. тех, у которых одинаковы вторые подстолбцы).

В данном случае это классы K1= {A, B, D}, K2= {C, E, F, G}.

3. Составляем таблицу переходов, в которой вместо состояний указываются классы, которым принадлежат состояния. Для наглядности в таблицу добавлена строка, с указанием номера классов, которым принадлежат состояния.

№ класса

1

1

2

1

2

2

2

Вход\состояние

A

B

C

D

E

F

G

0

K1

K1

K2

K1

K1

K2

K1

1

K2

K2

K2

K2

K2

K2

K2

Если в пределах одного класса состояния ведут себя по-разному, то класс разбивается на подклассы, включающие состояния, ведущие себя одинаково, и возвращаемся к шагу 3 (в рассматриваемом случае классы разбиваются, таблицы приводятся после алгоритма).

4. Если во всех классах состояния ведут себя одинаково, то это действительно классы эквивалентности. Строится автомат, состояниями которого являются классы эквивалентности исходного автомата.

В нашем примере класс К2 разбивается на 2 класса: К3= {C, F} и К4 = {E,G}

№ класса

1

1

3

1

4

3

4

Вход\состояние

A

B

C

D

E

F

G

0

K1

K1

К4

K1

К1

К4

К1

1

К3

К3

К4

К3

К3

К4

К3

После этого разбиения состояния в классах действительно эквиваленты. Диаграмма полученного автомата представлена на рис.26. Этот автомат эквивалентен исходному автомату SD.

Рис.26

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]