logo
Лекции по теории автоматов

Алгоритмы минимизации на основе треугольной матрицы.

Изначально нам задан автомат, имеющий Lсостояний.

  1. Строится треугольная матрица без диагональных элементов, столбцы которого нумеруются символами состояний с 1 по L-1, а строки со второй поL.

  2. Клетки матрицы с координатами i,jпредставляют отношение эквивалентностей между состояниямиSi,Sjи заполняются следующим образом:

  1. если для Si,Sjневыполнимо условие 1 эквивалентности, то в клетку ставят «X»

  2. если выполняется заведомо два условия для Si,Sj (переходы осуществляются в одно и то же состояние для второго условия) – клетка оставляется пустой либо ставится «▼»

  3. если для пары состояний Si,Sjвыполняется 1 условие, но не известно выполняется ли второе, т.к. переходы осуществляется в разное состояние, то в клетку записывают номера состояний от эквивалентности которых зависит эквивалентность данных.

  1. Заполненная треугольная матрица, последовательно просматривающаяся по клеткам, в которых записаны состояния и если известно, что вписанная в клетку состояние не эквивалентны, то в этой клетки ставят «X».

Рассмотрение матрицы осуществляется до тех пор пока не перестанут появляться новые пары неэквивалентных состояний.

  1. Выписываются все пары эквивалентных состояний (там где не стоит X) и строят из них классы эквивалентностей. Каждому классу эквивалентности ставится в соответствие символ нового состояния и переписывают таблицу переходов входов и выходов путем объединения одинаковых строк.

Пример минимизации:

P = {a,b,c}

W = {1,2}

S = {1,2,3,4,5,6,7,8}

Si / Pk

a

b

c

1

4/1

2/2

5/1

2

5/2

1/1

4/2

3

3/2

5/1

4/2

4

5/1

8/2

4/2

5

7/1

2/2

1/1

6

1/1

3/2

4/2

7

5/1

3/2

7/2

8

3/2

5/1

6/2

Получили следующие пары эквивалентных состояний:

1 ≡ 5

3 ≡ 8

4 ≡ 6

4 ≡ 7

6 ≡ 7

Классы эквивалентности:

C1 = {1 , 5}

C2= {2}

C3= {3 , 8}

C4= {4 , 6 , 7}

Получили 4 класса эквивалентности.

Далее перепишем:

C1– 1

C2– 2

C3- 3

C4– 4

Получим:

Si / Pk

a

b

c

1

4/1

2/2

5/1

2

1/2

1/1

4/2

3

3/2

1/1

4/2

4

1/1

3/2

4/2

1

4/1

2/2

1/1

4

1/1

3/2

4/2

4

1/1

3/2

4/2

3

3/2

1/1

4/2

Объединяем строчки:получим

Si / Pk

a

b

c

1

4/1

2/2

5/1

2

1/2

1/1

4/2

3

3/2

1/1

4/2

4

1/1

3/2

4/2