Минимизация числа состояний автомата




Некоторые состояния, полученные путём анализа реакции автомата на входные сигналы, могут оказаться избыточными. Это может усложнить комбинационную схему автомата, так как от числа состояний зависит число элементов, в которых хранится информация о текущем состоянии. Минимизация особенно важна, если число состояний переходит через степень 2.

Алгоритм минимизации основан на разбиении всех состояний исходного автомата на попарно непересекающиеся подмножества – классы эквивалентности состояний и замене каждого класса одним состоянием.

Определение. Два состояния as и am являются эквивалентными asºam, если d(as,e)= l(am, e), где e — входное слово произвольной длины. Таким образом состояния будут эквивалентны в том случае, если при одном и том же входном слове произвольной длины e, независимо от того в каком из состояний as или am автомат находился в начальный момент времени, вырабатывается одна и та же последовательность состояний.

Определение. Два состояния as и am являются k–эквивалентными, если d(as,e k)= l(am, ek), где ek— входное слово длины k. То есть состояния будут k–эквивалентны, если при одном и том же входном слове длины ek, независимо от того в каком из состояний as или am автомат находился в начальный момент времени, выработается одна и та же последовательность состояний. При прохождении k+1 слова состояния as и am могут оказаться не эквивалентными.

Для минимизации автомата производят последовательность разбиений П1, П2, П3,..., Пk состояний автомата пока на каком-то k+1 шаге не окажется, что Пk+1= Пk. В таком случае Пk=П k–эквивалентные состояния являются эквивалентными. Из каждого класса эквивалентности выбирается по одному состоянию, которое образует минимальное множество состояний автомата. Для определения таблиц переходов и выходов строки, соответствующие не вошедшим состояниям, вычёркиваются, а в оставшихся строках таблицы переходов все состояния заменяются на эквивалентные.

Вводится понятие 0–эквивалентных состояний, состояний которым соответствуют одинаковые выходные сигналы, так как состояния с разными выходными сигналами нельзя объединить в класс эквивалентности.

 

Проведём минимизацию автомата Мура, заданного выше.

Первое разбиение П1={A0, A1} производится по таблице выходов. В подмножестве A0 объединяются все состояния, которым соответствуют нулевой выходной сигнал, в A1 — единичный. То есть A0={ a0, a1, a2, a3 }, A1={ a4 }. Подмножество A1 состоит из одного элемента, следовательно, a4 обязательно войдёт в минимальную таблицу переходов автомата. Для последующих разбиений в строках, соответствующих состояниям из класса A0, состояния, в которые происходят переходы, заменим на классы 1–эквивалентности в таблице переходов состояния.

 

Таблица 4.4 - Таблица переходов на первом этапе минимизации.

  А\х      
  a0 A0 A0  
A0 a1 A0 A0 B0
  a2 A0 A0  
  a3 A0 A1 B1 *

 

Одинаковые строки в таблице объединим в классы разбиения B0 и B1. П2={ B0, B1 }, где B0={ a0, a1, a2}, B1={ a3 }. Звёздочкой (*) отмечена строка, которая войдёт в минимальную таблицу переходов.

 

Таблица 4.5 - Таблица переходов на втором этапе минимизации.

  А\х      
  a0 B0 B0  
B0 a1 B0 B0 C0
  a2 B0 B1 C1 *

 

П3={C0,C1}, где С0={ a0, a1 }, C1= { a2 }.

 

Таблица 4.6 - Таблица переходов на третем этапе минимизации.

  А\х      
  a0 С0 С0 D0 *
С0 a1 С1 С0 D1 *

Таким образом, мы получили последнее разбиение

П4={D0, D1}, где D0={ a0 }, D1= {a1 }.

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

Выполним для автомата Мили минимизацию состояний.

Первое разбиение произведём по таблице выходов автомата Мили.

П1={A0, A1}, A0={ a0, a1, a2, a4 }, A1={ a3 }.

 

Таблица 4.7 - Таблица переходов на первом этапе минимизации.

  А\х      
  a0 A0 A0  
A0 a1 A0 A0 B0
  a2 A0 A1 B1 *
  a4 A0 A0 B0

 

П2={ B0, B1 }, где B0={ a0, a1, a4}, B1={ a2 }

 

Таблица 4.8 - Таблица переходов на втором этапе минимизации.

  А\х      
  a0 B0 B0 C0
B0 a1 B1 B0 C1*
  a4 B0 B0 C0

 

П3={C0,C1}, где С0={ a0, a4 }, C1= { a1 }.

 

Таблица 4.8 - Таблица переходов на третьем этапе минимизации.

  А\х    
  a0 С1 С0
С0 a4 С1 С0

 

В данном случае состояния a0, a4 являются эквивалентными. Удалим одно из состояний из таблицы переходов.

 

Таблица 4.9 - Минимальная таблица переходов.

А\х    
a0 a1 a0
a1 a2 a0
a2 a2 a3
a3 a1 a0

Анализируя первоначальную таблицу переходов и выходов, получим таблицу выходов:

Таблица 4.10 - Таблица выходов.

А\х    
a0    
a1    
a2    
a3    

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: