Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

XVYggbpFw2

.pdf
Скачиваний:
2
Добавлен:
15.04.2023
Размер:
2.31 Mб
Скачать

b)

c)

d)

e)

f)

14. МИНИМИЗАЦИЯ КОНЕЧНЫХ АВТОМАТОВ

Мы уже знаем, что любая регулярная грамматика задается некоторым полным детерминированным конечным автоматом. Среди всех таких автоматов, определяющих данный регулярный язык, существует автомат с наименьшим из возможных количеством состояний. Оказывается такой автомат довольно легко найти, и он является в некотором естественном смысле единственным. Алгоритм его построения есть первая цель данного параграфа.

Начать можно с любого детерминированного автомата, определяющего данный регулярный язык. Для начала делаем его приведенным (выкидываем лишние состояния). Затем, если он неполон, делаем полным, добавляя состояние Err (см. замечание 13.1)

В полном детерминированном автомате каждый терминальный символ a удобно представлять как унарную операцию на множестве состояний Q, т.е. как функцию a:Q Q. Цепочка терминалов определяет суперпозицию этих функций. При этом условимся считать, что сначала действует первый символ, затем - второй и т.д. Результат действия цепочки на со-

стояние A обозначим через A . Цепочка (например, abc) воспринимается автоматом, если функция abc переводит стартовое состояние S в одно из

заключительных (Sabc

F).

 

 

 

Определение 14.1. Пусть A = <Q,T, ,S,F>

- произвольный полный

детерминированный автомат. На множестве состояний Q этого авто-

мата определяем отношение

полагая для A, B

Q :

A B, если для любой терминальной цепочки

элементы A , B

лежат или не лежат в F одновременно.

Несколько иначе для A, B

Q пусть A 0 B означает, что A, B лежат или

не лежат в F одновременно. Тогда, очевидно,

 

A

B

(

T*) A 0 B .

Лемма 14.1. В обозначениях определения 14.1 отношение есть отношение эквивалентности на множестве Q. При этом выполняется свойство:

для любых A, B Q и a T ( A B

Aa Ba)

(*)

Доказательство. То что отношение

является отношением эквива-

лентности на множестве Q, означает рефлексивность,

симметричность и

транзитивность . Какое-то затруднение может возникнуть только при проверке транзитивности. Пусть A B и B C. Если допустить, что A C

не верно, то для некоторого

не верно, что A 0 С . Но для этого

име-

ет место A 0 B и B

0 C . Ясно, что это невозможно.

 

Проверяем (*). Пусть A

B, но высказывание Aa Ba ложно. Тогда

для некоторой цепочки

будем иметь, что один из элементов (Aa)

, (Ba)

заключительный, а другой нет. Но эти элементы – это то же самое, что

Aa , Ba . Значит и высказывание A B ложно. Противоречие, доказывающее лемму.

Благодаря лемме по A можно построить фактор-автомат A . Это тот же, фактически автомат, но в нем каждый класс эквивалентности сжимается в одну точку. Другими словами, состояниями Aстановятся классы эк-

вивалентности. Класс, содержащий S, становится стартовым. Классы, содержащие элементы из F, становятся заключительными. На самом деле, если в классе есть хотя бы один заключительный элемент, то все элементы этого класса будут заключительными. Действия определяются формулой:

[A]a = [Aa]

Здесь [A] – это класс эквивалентности, содержащий элемент A. Определение фактор-автомата иллюстрирует схема:

Здесь изображены два класса эквивалентности. Под действием отображения a одна из точек первого класса (жирная точка) отображается во второй класс. Тогда в силу свойства (*) и все остальные точки первого класса под действием a отображаются в тот же второй класс, что позволяет определить a как действие на классе:

Определение 14.2. Два автомата

A1 = <Q1,T, 1,S1,F1> и A2 = <Q2,T, 2,S2, F2>

называются изоморфными, если существует такая биективная функция

: Q1 Q2

что:

1)(S1) = S2 ;

2)

A Q1 A F1

(A)

F2;

 

3)

A, B Q1 a

T B

1(A,a)

(B) 2( (A),a).

Эти условия попросту означают, что состояния автомата A1 можно так переобозначить состояниями автомата A2, что A1 и A2 просто

совпадут. Так что изоморфные автоматы – это по существу одинаковые автоматы.

Отображение в этом определении называется изоморфизмом.

Теорема 14.1. Автомат Aэквивалентен A и содержит наименьшее возможное число состояний среди всех автоматов (полных детерминированных), эквивалентных A.

Более того, любой полный детерминированный автомат B, эквивалентный A и содержащий такое же число состояний, как в A , изомор-

фен A .

 

 

 

 

 

 

 

 

 

 

Доказательство. Эквивалентность автоматов означает, что для лю-

бой цепочки терминалов

имеет место:

 

 

 

 

 

 

 

 

 

S

F

[S]

F ,

 

 

 

где F – заключительные элементы A . Докажем эту равносильность.

Пусть S

= B. Имеем: S

F

B

F

[B]

F

[S]

F , т.к. [S ]

= [S] .

Обратно, [S]

F

[B]

F

B

C для некоторого C

F

B

F

S

F.

 

 

 

 

 

 

 

 

 

Докажем, что автомат A минимален и совпадает (изоморфен) с лю-

бым

другим

минимальным

B. Допустим,

что

автомат

B = <

Q,T

, ,S,F> эквивалентен A и имеет минимально возможное количество состояний. С автоматом B можно проделать такую же процедуру факторизации, как выше с автоматом A. Понятно, что это не увеличит число состояний B. То есть у B и у Bих одинаковое число. Это значит, что B и Bпо существу – один и тот же автомат. Поэтому надо доказать совпадение (изоморфность) Aи Bпри условии, что A и B эквивалентны и яв-

ляются приведенными. Этого достаточно для доказательства теоремы. Установим взаимно-однозначное соответствие между состояниями

автоматов, т.е. между классами [A] для A Q и [B] для B Q. Основой этого соответствия является тот факт, что все состояния A Q выражаются через S, а состояния B Qвыражаются через S. Действительно, это значит, что в этих автоматах все достижимы. Недостижимых состояний действительно быть не может, т.к. при их выкидывании число состояний уменьшится, а автомат останется детерминированным и полным. Если A =

S то , классу [A] поставим в соответствие класс ([A]) = [A] для A=

(S) . Здесь – любая цепочка из терминалов, в том числе и пустая. Проверим корректность этого соответствия:

Пусть A B. Пусть A = S и B = S . Надо доказать, что AB, где

A= (S) , B= (S) . Если это не так, то для некоторой цепочки терми-

налов отношение (A) 0 (B) ложно. Значит ложно (S) 0 (S) . Это значит, что одна из цепочек , воспринимается автоматом B, а другая – нет. Автоматы A и B эквивалентны. Стало быть и для автомата

A отношение S

0 S ложно. Но S =(S ) = A , S =(S ) = B .

Значит, A 0 B ложно. Противоречие.

Симметрия между A и B показывает не только корректность, но и

взаимную однозначность соответствия .

Для доказательства, что это изоморфизм, надо заметить справедливость следующих условий:

1) ([S]) = [S];

 

2) [A] F

([A]) F;

3) для всех a T имеет место ([A] a)= ([A]) a.

Все они легко проверяются. Достаточно внимательно рассмотреть схему:

Теорема доказана.

Теперь рассмотрим произвольные детерминированные, необязательно полные автоматы.

Лемма 14.2. Пусть A - детерминированный и неполный автомат. Пусть A Err – его расширение до полного (см. замечание 13.1). Пусть, наконец, - отношение из определения 14.1, примененное к этому автомату. Тогда класс [Err] фактор-автомата A является непродуктивным

состоянием в этом автомате.

Доказательство. Иначе мы бы имели схему типа:

В последнем классе все состояния являются заключительными состояниями автомата A Err. Следовательно, и в A Err существует путь из состояния Err в какое-то заключительное, что невозможно. Лемма доказана.

Теорема 14.2. Пусть A - произвольный детерминированный автомат. Пусть n - наименьшее такое натуральное число, что существует детерминированный автомат с n состояниями, эквивалентный A. Тогда

любые два детерминированных автомата с n состояниями и эквивалентные A изоморфны между собой.

Доказательство. Пусть B1 и B2 эквивалентны A и содержат каждый по n состояний. Если оба автомата B1 и B2 являются полными, то они изоморфны по теореме 14.1.

Допустим, что один из них, скажем B1, неполный, а другой – B2 полный. Применим к B1 конструкцию теоремы 14.1. Напомним, что B1 превращается в полный B1Err за счет добавления еще одного состояния Err. Затем к B1Err применяется факторизация. В результате, опять по теореме 14.1, должен получиться автомат, изоморфный B2. В автомате B1Err

(n+1) состояние. При факторизации получится n состояний - классов. По лемме 14.2 одно из этих состояний непродуктивно. Выкинув его получим автомат из (n-1)-го состояния, эквивалентный A. А это противоречит вы-

бору числа n.

Рассмотрим последний случай, когда оба автомата B1 и B2 являются неполными. На этот раз факторизация обеих автоматов B1Err и B2Err даст

полные детерминированные автоматы из (n+1) состояния. Действительно, оба по лемме 14.2 имеют непродуктивное состояние, выкидывание которого уменьшает число состояний. Будь в каком то из них состояний меньше (n+1), мы бы и здесь получили автомат с меньшим, чем n числом состояний и эквивалентный A.

По теореме 14.1 B1Err и B2Err - минимальные полные автоматы и

изоморфные между собой. Каждое состояние-класс этих автоматов состоит из единственного элемента-состояния исходного автомата. Это говорит о том, что B1Err- это то же самое, что B1Err, а B2Err- то же самое, что B2Err. Значит B1Err и B2Err изоморфны.

Наконец, оба автомата имеют по единственному непродуктивному состоянию Err. Будь их два или больше, мы бы опять имели автомат с меньшим, чем n количеством состояний и эквивалентный A. Значит, при

изоморфизме между B1Err и B2Err их состояния Err соответствуют друг другу. Следовательно, при выкидывании этих Err из B1Err и B2Err мы получим изоморфные автоматы. Но получим мы в точности B1 и B2. Это доказывает их изоморфизм. Теорема доказана.

Итак, можно сделать обобщающий вывод

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

Как искать такой автомат? Теорема 14.1 дает такой способ в классе полных детерминированных автоматов. Для прочих детерминированных автоматов теорема 14.2 лишь утверждает его существование. Но доказательство теоремы 14.2 подсказывает, как его искать. Мы предлагаем следующий способ.

Алгоритм вычисления минимального детерминированного автомата.

Дан произвольный автомат A.

1.Находим ему эквивалентный детерминированный и полный автомат Adf.

2.По Adf строим Adfm - минимальный в классе детерминированных полных.

3.Выкидываем из Adfm все непродуктивные состояния (если такие найдутся). Это и будет ответ.

Докажем, что это так. Предположим, что автомат Adfm не имеет непродуктивных состояний. Если допустить, что он не минимален (среди всех детерминированных), то минимальный (какой-то B) с необходимо-

стью полным не является и состояний в нем меньше, чем в Adfm. Тогда BErr будет полным, содержать состояний не больше, чем их в A и он не будет изоморфен A (в нем состояние Err лишнее, а в A лишних нет). Противо-

речие с теоремой 14.1.

Предположим, что автомат Adfm имеет непродуктивные состояния. Выкинем их согласно п.3 алгоритма. Получим некий B. Если допустить, что этот автомат не минимален, то минимальным будет некий C c еще меньшим числом состояний. Т.е. C будет эквивалентен Adfm и иметь состояний по крайней мере на два меньше, чем их в Adfm. Тогда в полном CErr их будет просто меньше, чем в Adfm. Это снова противоречит теореме

14.1.

Заметим, что автомат Adfm на самом деле не может иметь более одного лишнего состояния. Это легко доказать аналогичными рассуждениями.

Самая сложная вычислительная часть при поиске минимального автомата – это, естественно, вычисление A по полному детерминированному автомату A. Для практического вычисления отношения помощью будем использовать следующую лемму. Для произвольного целого числа k 0 пусть A k B означает, что для любой цепочки терминалов длины не

больше k имеет место A 0 B .

Лемма 14.2. A k+1B равносильно выполнению условий:

1)A kB;

2)для каждого терминала a имеет место Aa kBa.

Доказательство. Очевидно.

Лемма 14.3. Отношения

 

k

являются отношениями эквивалентно-

 

 

 

 

 

 

 

сти. Любой класс отношения

k

является объединением классов отноше-

 

 

 

 

 

 

 

ния k+1. При этом, если

k совпадает с k+1, то

k совпадает с .

Доказательство. То, что все

 

k – отношения эквивалентности и то,

что A kB

A k+1B, очевидно. В силу леммы 14.2 отношение k+1 выра-

жается через

k. Точно также

k+2

выражается через

k+1 и т.д. Поэтому

как только совпадут k и

k+1, то совпадут и все

т для m=k, k+1,…

Лемма доказана.

 

 

 

 

 

 

Лемма показывает, как надо находить отношение . Начиная с 0, которое разделяет множество состояний на два класса (заключительных и

незаключительных),

строим

1, 2 и т.д. Если очередное отношение k+1

не совпадает с предыдущим

k, то оно разделяет по крайней мере один

класс отношения

k

на несколько новых классов. Всего классов не может

 

 

 

 

 

быть больше, чем состояний (допустим n). Для

0

имеется два класса (если

 

 

 

 

 

не рассматривать тривиальных случаев). Следовательно процесс вычисления может продлиться максимум до n-2, когда получится n классов.

Пример 14.1. Рассмотрим автомат:

который, как нетрудно догадаться, распознает множество таких слов от a,b, в которых содержится четное число букв a и четное число букв b. Это детерминированный и полный автомат. Для того, чтобы проделать с ним процедуру минимизации, надо вычислить следующую таблицу:

 

 

0

1

2

 

 

S

1

1

1

 

 

A

2

2

2

 

 

B

2

3

3

 

 

C

2

4

4

 

 

D

1

1

1

 

 

 

 

 

 

 

В таблице содержится информация о классах отношений эквивалентности 0, 1, 2. В столбце, помеченном 0, цифры 1,2 показывают, что есть два

класса. В классе 1 лежат S и D, в классе 2 – состояния A,B,C. Класс 1 составлен из всех заключительных состояний автомата, класс 2 – из всех остальных состояний.

В следующем столбце содержатся классы отношения 1. Их оказывается 4 штуки. Как они вычислены? Во-первых, учитывается, что классы

отношения 1 -

это результат какого-то разбиения классов 0. Первый

класс отношения

0 - это пара {S,D}. Согласно лемме 14.2 эти два элемен-

та останутся эквивалентными и по отношению 1, если для обеих терми-

налов a и b имеет место Sa 0 Daи Sb 0 Db. Это действительно так хотя бы

из-за того, что Sa =Da= B и Sb= Db= C. Таким образом, элементы S,D останутся эквивалентными по отношению 1, и первый класс отношения 0

на части не разделится. Считая, что это и есть первый класс для 1, и име-

ем в столбце с меткой

1

числа 1 напротив S и D.

 

 

 

 

Второй класс отношения

1

развалится сразу на три части. Действи-

 

 

 

 

тельно, этот класс состоит из трех состояний A,B,C. При этом Aa =C – не является конечным состоянием , Ba =D – конечное состояние автомата. Значит Aa 0 Ba – не верно. Значит и A 1 B – не верно. Аналогично, пары (A,C) и (B,C) не являются 1–эквивалентными. Таким образом каждый из

трех элементов A, B ,C образует свой собственный класс. Если эти классы обозначить цифрами 2,3,4, то мы и получим второй столбец таблицы.

Теперь надо вычислить, как каждый из 1–классов разбивается на 2–классы. Здесь все просто. Классам 2,3,4 разбиваться уже некуда, т.к. в

них только по одному элементу. Класс 1 состоит из двух элементов S,D. Он разделился бы на две части, если элементы бы хотя одной из пар

(Sa,Da) и (Sb,Db) окажутся не 1–эквивалентными. Но т.к. Sa =Da и Sb=

Db, это невозможно. Отсюда – последний столбец таблицы. В результате получилось, что отношения 1 и 2совпали. Значит, это есть окончатель-

ная конгруэнция . Видим, что минимальный автомат состоит из четырех состояний: A,B,C,{S,D}. Последнее состояние является заключительным. Если его обозначить за F, то окончательным ответом будет:

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