
— пустое множество цепочек. Это означает 0–неэквивалентность заключительных
и незаключительных состояний. Тогда уже на первом шаге алгоритма определения
эквивалентных состояний мы можем разбить состояния на две группы: заключитель-
ные и незаключительные состояния как не эквивалентные для n = 0.
Пусть теперь построены группы n–эквивалентных состояний H
1
, H
2
, ..., H
t
. В со-
ответствии с определением, из каждого состояния p
k
∈ H
i
распознается одно и то же
множество цепочек M
i
длины не более n. Перейдем к анализу (n+1)–эквивалентности.
Если все группы эквивалентности содержат точно по одному состоянию, то любая
пара сотояний не эквивалентна друг другу, исходный автомат является минималь-
ным. Пусть хотя бы одна группа n–эквивалентных состояний H
i
содержит более одно-
го состояния. Рассмотрим все переходы из p
k
∈ H
i
и из p
m
∈ H
i
в соответствии с мат-
рицей переходов как внутри группы эквивалентности H
i
, так и в некоторую другую
группу H
j
. Для того, чтобы состояния p
k
и p
m
оставались (n + 1)–эквивалентными,
необходимо и достаточно, чтобы переход в каждую группу n–эквивалентности H
j
осуществлялся по одним и тем же символам {a
j1
, a
j2
, ...a
jr
}: тогда для каждого из
этих состояний допускается одно и то же множество цепочек {a
j1
, a
j2
, ...a
jr
} · M
j
.
Другими словами, в каждой подматрице, соответствующей группе эквивалентности,
каждая строка должна содержать одни и те же символы. Если строки хотя бы одной
подматрицы содержат разные символы, то соответствующие состояния не являются
(n+1)–эквивалентными. Разбиение групп n–эквивалентных состояний на подгруппы
(n + 1)–эквивалентных состояний закончится не более чем за |K| шагов, т.к. на каж-
дом шаге отделяется по меньшей мере одно неэквивалентное состояние от какой–либо
группы.
В соответствии с доказательством теоремы можно предложить следующий алго-
ритм построения минимального автомата, эквивалентного исходному.
1. Строится матрица переходов конечного автомата.
2. В матрице группируются отдельно заключительные и незаключительные со-
стояния. Между ними проводится граница как по строкам, так и по столбцам.
3. Рассматриваются поочередно все подматрицы полученной матрицы. В каждой
строке такой подматрицы должны быть одинаковые символы, что означает переход
либо между подгруппами, либо внутри группы по одному и тому же символу. Если
строки содержат разные символы, их нужно сгруппировать так, чтобы в каждой
подгруппе содержались одни и те же символы и выполнить разбиение по границам
между группами.
4. Повторяется п.4 до тех пор, пока возможно разбиение.
5. Когда разбиение закончено, каждой группе эквивалентности сопоставляется
одно состояние.
Пример 8.4. Дана следующая матрица переходов:
p
1
p
2
p
3
p
4
p
5
p
6
p
7
p
1
a a d нач
p
2
b b a b
p
3
b a b
p
4
a a a d
p
5
a d a
p
6
c c закл
p
7
c закл
Применим алгоритм минимизации и получим разбиение этой матрицы
224