[Список тем]


Минимизация КА


Из примера 2 видно, что разные автоматы могут функционировать одинаково, даже если у них разное число состояний. Важной задачей является нахождение минимального автомата, который реализует заданное автоматное отображение. Эквивалентными естественно назвать два состояния автомата, которые нельзя различить никакими входными экспериментами.
Определение 7
Два состояния р и q конечного автомата А = <S, X, Y, S0, , > называются эквивалентными (обозначается pq), если ( X*)*(p, ) = *(q, ).

Для автомата (рис. 8, а) состояния q0 и q2 эквивалентны: любая входная цепочка, поданная на автомат, находящийся в состоянии q0, даст такую же реакцию, как и в случае, когда автомат вначале находился в состоянии q2. Эквивалентные состояния можно объединить в один класс и построить новый автомат, состояниями которого являются классы эквивалентных состояний (см. рис. 8, а). Эквивалентные состояния объединены в классы, эти классы и являются состояниями нового автомата (рис. 8, б). Если мы можем определить на множестве состояний автомата "максимально возможное" разбиение на классы эквивалентности, то, выбирая его классы эквивалентности как новые состояния, получим минимальный автомат, эквивалентный исходному.


Рис. 8. Классы эквивалентных состояний произведения конечных автоматов примера 2

Определение 7 не является конструктивным: оно не дает нам процедуры выяснения того, являются ли два состояния эквивалентными, поскольку мы не можем перебрать все входные цепочки. Однако существует алгоритм определения максимального отношения эквивалентности на множестве состояний конечного автомата, который мы сейчас и рассмотрим.

Алгоритм состоит в последовательном построении на множестве состояний автомата А разбиений 0, 1, ..., таких, что в один класс разбиения k попадают k-эквивалентные состояния, то есть те, которые неразличимы входными цепочками длиной k. Такие состояния будем считать находящимися в отношении эквивалентности "i,. Если (pk q), то р и q назовем k-различимыми. Из определения 7: р k
q ( X*, | | k)*(p, ) = *(q, ).
Очевидно, что в любом автомате все состояния 0-эквивалентны, поскольку при подаче пустой цепочки на вход автомата (цепочки длины 0) выходом является также пустая цепочка независимо от состояния, в котором автомат находится. Следующее разбиение 1 также легко построить. Действительно, по определению в один блок 1 попадают все состояния, в которых автомат одинаково реагирует на входные сигналы:
p 1 q ( X) (p, x) = (q, x). Разбиения 0, содержащее один единственный блок, в который входят все состояния автомата, и 1 каждом блоке которого собраны состояния, не различимые входными сигналами, являются исходными при построении цепочки разбиений 0, 1, ..., . Если мы сможем определить, как строить следующее разбиение из предыдущего, то начиная с 1 мы сможем последовательно построить и всю цепочку.
Теорема 2
Пусть р k q, k > 1. Для того чтобы р k+1 q необходимо и достаточно, чтобы
( X) (р, х) k (q, х).
Иными словами, для того, чтобы два k-эквивалентных состояния конечного автомата были бы k+1 эквивалентными, необходимо и достаточно, чтобы под воздействием любого входного сигнала автомат переходил из тих состояний в пару состояний, которые сами были бы эквивалентными.
Легко понять справедливость этой теоремы. Действительно, для того чтобы входная цепочка длины k+1, например цепочка X0X1X2...Xk, не различала пару состояний р и q, нужно всего лишь, чтобы автомат из этих состояний переходил под воздействием х0 в такие состояния, которые не различимы цепочкой X1X2...Xk, то есть чтобы (р, х0) и (q, X0) были бы k-неразличимы (см. рисунок).


Цепочка длиной k+1

Докажем теорему формально.

(Необходимость.) Нужно доказать pk+1 q ( x X) (p, x) k (q, x). Докажем контрапозицию: ( х ( Х)[( ((р, х) ( k ( (q, х)] ( р k+1 q. Если состояния (р, х) и (q, х), в которые попадает автомат из р и q под воздействием х, R-различимы, то пусть X1X2...xk - цепочка входных сигналов, их различающая. Тогда, очевидно, цепочка XX1X2...Хk длиной k+1 различает р и q.

(Достаточность.) Нужно доказать (x X)(p, x)k (q, x) pk+1 q, ecли pk q при k > 1. Из определения расширенной функции переходов

*(р, х) = (р, х)*((р, х)а) и *(q, х) = (q, x) *((q, х)).

Поскольку k > 1 и р kq, ,(р, х) = (q, х). Из того, что (р, х) и (q, х) k-эквивалентны, следует, что ( Xk)*((p, x)) = *((q,x)). Следовательно, для любых цепочек длины k+1, (p, ) = (q, ), то есть p k+1 q, что и требовалось доказать.

Очевидно, что если р и q k+1-эквивалентны, то они k-эквивалентны. Иными словами, блоки разбиения k+1 являются подблоками разбиения k. Поскольку число состояний конечно, может быть только конечное число последовательно уменьшающихся разбиений k, начиная с максимального разбиения 0, содержащего один единственный блок. Более того, очевидно, что их не больше, чем N-число состояний автомата. Однако последовательное построение уменьшающихся разбиений пг можно не продолжать дальше, как только два последовательных разбиения совпадают.
Теорема 3
Пусть k+1 = k. Тогда для любого i > k, i = k.
Доказательство. Из доказанного выше следует, что:

(p, q S)pk+1 q pk q & (x X)(p, x)=k (q,x).

Обозначим R(p, q, k) (x X)(p,x)k (q, х). Тогда доказанное утверждение теоремы 3.2 запишется:

(p, q S)pk+1 q pk q & R(p, q, k).

Пусть теперь pr+1 q = prq. Тогда (p, q S)p r qp=r q&R(p, q, k). Но это значит, что

(p, q S)pr qR(p, q, г).

Предположим теперь, что для некоторого i > r i = r, но i+1 i. Это значит, что

[(p, q S)p i q R(p, q, i)]. Однако, поскольку i = r, a R зависит только от i, это противоречит утверждению (p, q S)pr q R(p, q, r). и, следовательно, наше предположение неверно, что и требовалось доказать.

Пример 3. Минимизация конечного автомата, заданного таблицей переходов табл. 3, проводится последовательным построением разбиений 0, 1, ... .

Таблица 3

Таблица 3

Начальное разбиение представляет собой один блок, включающий все состояния, поскольку входные цепочки длиной 0 (пустая цепочка ) не различают состояний: независимо от того, в каком состоянии автомат находился при подаче входа , выходом тоже будет . Поэтому

0={А0 = <1,2,3,4,5,6,7,8,9>}.

Разбиение 1 в один блок объединяет те состояния, которые нельзя различить при подаче цепочек длиной 1. Функция выходов при подаче а и b не может различить 1,3, 5, 6,8 и 9, поскольку для каждого из этих состояний при подаче на вход автомата а он выдает 1, а при подаче на вход b он выдает 0. Состояния 2,4 и 7 попадают в другой блок, но между собой входной цепочкой длины 1 их различить нельзя.
Поэтому:

1 = (А1 = <1,3, 5,6,8,9 >; B1 = <2,4,7>}.

Следующее разбиение 2 объединяет в один блок те состояния, которые нельзя различить при подаче цепочек длиной 2. Перебирать все такие цепочки долго, поэтому воспользуемся теоремой 2. В соответствии с ней, в один блок разбиения k+i попадут те состояния р и q, для которых справедливо
(x X)(p, x)k (q, x). Как было установлено выше, эти состояния должны быть из одного блока предыдущего разбиения. Обратимся к построению 2.
Построим таблицу переходов, но вместо значения состояния (р, х) будем писать номер блока разбиения 1 в которое попадает (р, х). Так, (3, а) = 1, а это состояние находится в блоке А1
Аналогично, (3, b) = 4, а это состояние находится в блоке B1.
После такого построения видно, что состояния 1,3,5,6,8 и 9 нужно разбить на три элока: <1, 5, 6>, <3, 9> и <8>.
Состояния 2, 4 и 7 попадают в одни и те же блоки предыдущего разбиения 1 поэтому они попадут в один и тот же блок разбиения 2.
Итак:

2 = {А2 = <1,5,6>; В2 = <2,4,7> С2 = <3,9>; D2 = <8>}.
Аналогично строится 3. При его построении не нужно проверять, в какой блок 2 будет переводить автомат из состояния 8, поскольку оно единственное в блоке разбиения 2, и поэтому далее дробиться этот блок не будет. Таким образом,

3 = {А3 = <1, 5, 6> В3 = <2>; С3 =<4, 7> D3 = <3, 9> Е3 = <8>}.

Разбиение 4 совпадает с разбиением 3. На основании теоремы 3 искомое разбиение , совпадает с 3.
Итак, минимальный автомат с эквивалентным поведением имеет 5 состояний, представляющих блоки разбиения 3, а его функции переводов и выходов определяются так:

3, а) = D3,
3, b) = А3,
3, а) = 1 и т. д.

Тест № 1: Представления конечных автоматов (F-схем)


[Список тем]