Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект ЦС.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
7.34 Mб
Скачать

1.2.8 Мінімізація числа станів автомата методом еквівалентного розбиття

Алгоритм мінімізації заснований на розбитті усієї множини станів на класи еквівалентних станів, що попарно не перетинаються, і заміні усього класу еквівалентності одним станом. Отриманий в результаті мінімізований автомат міститиме стільки станів на скільки класів еквівалентності було розбито початкову безліч станів.

Уведені відношення еквівалентності та k - еквівалентності можуть бути використані для розподілу множини станів автомата на попарно непересічні класи ( так званий - розподіл).

- розподіл визначає замкнену сукупність класів сумісності, якщо для будь-якого його блоку виконується умова: внутрішній стан у мить (t + 1), у який перейде автомат з будь-якого стану одного блоку, завжди буде зна­ходитись у будь-якому, але тільки одному блоці цього розподілу.

- розподіл дозволяє визначити надмірні елементи множини внутрішніх станів. Якщо, наприклад, стани qs та qm еквівалентні, формують один і той же вихідний сигнал, то один із них можна вилучити, унаслідок чого одержимо мінімізований автомат.

Розглянемо алгоритм мінімізації повністю визначених абстрактних автоматів Мілі, запропонований Ауфенкампом і Хоном. Основна ідея цього методу полягає в розбитті усіх станів початкового абстрактного автомата на попарно не пересічні класи еквівалентних станів і заміні кожного класу еквівалентності одним станом.

Відповідне розбиття на класи еквівалентних і k - еквівалентних станів позначатимемо  та k. Розподіл  дозволяє визначити надмірні елементи в множині станів Q. Нехай, наприклад, qm і qs еквівалентні. Це означає, що відносно зору реакцій автомата на всілякі вхідні слова неважливо, знаходиться автомат в стані qm або qs, і одне і них, наприклад qs, може бути видалено з множини Q. Якщо кожен клас еквівалентності містить тільки один стан, множина Q нескоротна. Якщо ж один або декілька класів містять більше за один елемент, усі елементи, окрім одного в кожному клас, можуть бути виключені з множини Q, внаслідок чого виходить автомат з мінімальним числом станів.

Алгоритм мінімізації

Нехай автомат S = {Q, X, Y, , , q1} піддається мінімізації. Цей процес складається з:

1. Знаходиться послідовне розбиття 1, 2,…, k, k+1 множини Q на класи одно -, двох -, …, k -, k+1 еквівалентних станів, до тих пір, поки на якомусь k+1 кроці не виявиться, що k+1 = k. Неважко показати, що тоді розбиття /k = /, тобто що k - еквівалентні стани є в цьому випадку еквівалентними і число кроків k, при якому k =  не перевищує М- 1, де М - число елементів в множині Q.

2. У кожному класі еквівалентності розбиття  вибираються по одному елементу, які утворюють множину Q' станів мінімального автомата S' = {Q ', X, Y, , , q' 1}, еквівалентного автомату S.

3. Функції переходів ' і ' автомата S' визначаються на множині Q' x X. Для цього в таблиці переходів і виходів викреслюються стовпці, відповідні тим що не увійшли до множини Q' станів, а в стовпцях таблиці переходів, що залишилися, усі стани замінюються на еквівалентні з множини Q'.

4. У якості q' 1 вибирається один із станів, що еквівалентний стану q1. Наприклад, зручно за q' 1 приймати само q1.

Приклад мінімізації автомата Мілі

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

q1

q2

q3

q4

q5

q6

q7

q8

q9

q10

q11

q12

X1

q10

q12

q5

q7

q3

q7

q3

q10

q7

q1

q5

q2

X2

q5

q8

q6

q11

q9

q11

q6

q4

q6

q8

q9

q8

Таблиця 1.26 - Таблиця виходів не мінімального автомата Мілі

q1

q2

q3

q4

q5

q6

q7

q8

q9

q10

q11

q12

X1

Y1

Y1

Y2

Y2

Y1

Y2

Y1

Y1

Y2

Y2

Y2

Y2

X2

Y2

Y2

Y1

Y1

Y2

Y1

Y2

Y2

Y1

Y1

Y1

Y1

Безпосередньо по таблиці виходів (табл. 1.26)  отримуємо розбиття 1 на класи одно еквівалентних станів, об'єднуючи в еквівалентні класи однакові стовпці: 1={b1, b2} b1={q1, q 2, q5, q7, q8} b2={q3, q4, q6, q9, q10, q11, q12}. Дійсно, два стани 1 - еквівалентні, якщо їх реакції на всілякі вхідні слова довжини 1 співпадають, тобто відповідні цим станам стовпці в таблиці виходів мають бути однакові. Будуємо таблицю 1, замінюючи стани в таблиці переходів (табл. 1.25) відповідними класами 1- еквівалентності.

Таблиця 1.27 - Розбиття 1 станів автомата Мілі

B1

B2

q1

q2

q5

q7

q8

q3

q4

q6

q9

q10

q11

q12

X1

B2

B2

B2

B2

B2

B1

B1

B1

B1

B1

B1

B1

X2

B1

B1

B2

B2

B2

B2

B2

B2

B2

B1

B2

B1

Очевидно, що 1- еквівалентні стани qm і qs будуть 2 - еквівалентними, якщо вони переводяться будь-яким вхідним сигналом також в 1 - еквівалентні. По таблиці T3 отримуємо розбиття 2={C1, C2, C3, C4} ; C1= {q1, q2}, C2={q5, q7, q8}, C3={q3, q4, q6, q9, q11}, C4= {q10, q12}.

Таблиця 1.28 - Розбиття 2 станів автомата Мілі

C1

C2

C3

C4

q1

q2

q5

q7

q8

q3

q4

q6

q9

q11

q10

q12

X1

C4

C4

C3

C3

C4

C2

C2

C2

C2

C2

C1

C1

X2

C2

C2

C3

C3

C3

C3

C3

C3

C3

C3

C2

C2

Аналогічно побудуємо 3 ={D1, D2, D3, D4, D5}; D1={q1, q2}, D2={q5, q7}, D3={q8}, D4={q3, q4, q6, q9, q11 }, D5={q10, q12} і, нарешті 4 ={E1, E2, E3, E4, E5}, яке співпадає з 3. Процедура розбиття завершена. Розбиття 3 є розбиття множини станів автомата Мілі на класи еквівалентних між собою станів.

Таблиця 1.29 - Розбиття 3 станів автомата Мілі

D1

D2

D3

D4

D5

q1

q2

q5

q7

q8

q3

q4

q6

q9

q11

q10

q12

X1

D5

D5

D4

D4

D5

D2

D2

D2

D2

D2

D1

D1

X2

D2

D2

D4

D4

D4

D4

D4

D4

D4

D4

D3

D3

Викреслюємо з D1 q2, з D2 q7, з D4 q4, q6, q9, q11, з D5 q12 визначуваний мінімальний автомат Мілі.

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

q1

q5

q8

q3

q10

X1

q10

q3

q10

q5

q1

X2

q5

q3(q9)

q3(q4)

q3(q6)

q8

Таблиця 1.31 - Таблиця виходів мінімального автомата Мілі

q1

q5

q8

q3

q10

X1

Y1

Y1

Y1

Y2

Y2

X2

Y2

Y2

Y2

Y1

Y1

Приклад мінімізації автомата Мура

При мінімізації автоматів Мура вводиться поняття 0-еквівалентності станів і розбиття безлічі станів на 0- класи: 0- еквівалентними називаються будь-які однаково відмічені стани автоматів Мура. Якщо два 0-еквівалентні стани будь-яким вхідним сигналом переводиться в два 0-еквівалентні стани, то вони називаються 1-еквівалентними. Усі подальші класи еквівалентності станів для автоматів Мура визначаються аналогічно приведеному вище для автоматів Мілі.

Таблиця 1.32 - Відмічена таблиця переходів немінімального автомата Мура

В результаті застосування алгоритму мінімізації до автомата Мура, що має 12 станів, отримаємо автомат Мура, що має 4 стани. Відпускаючи проміжні таблиці, приведемо лише послідовність розбиття : 0 = {B1, B2, B3}.

Таблиця 1.33 - Відмічена таблиця переходів мінімального автомата Мура

B1={a1, a2, a8}; B2={a6, a9, a10, a11, a12}; B3={a3, a4, a5, a7} 1 ={C1, C2, C3, C4}. C1={ a1, a2, a8}; C2={ a6, a9, a11}; C3={ a10, a12}; C4={ a3, a4, a5, a7} 2 ={D1, D2, D3, D4}; 2 = 1; D1 = C1; D2 = C2; D3 = C3; D4 = C4.

Контрольні питання і завдання

  1. Які існують способи завдання цифрових автоматів?

  2. Дайте визначення графа автомата.

  3. Напишіть функції переходів і виходів, що визначають закон функціонування автоматів Мілі і Мура.

  4. Напишіть вирази, що визначають закон функціонування автомата Мура.

  5. У чому полягає різниця між автоматами Мілі та Мура?

  6. Чим відрізняється С-автомат від автоматів Мілі і Мура?

  7. Які особливості має модель цифрового автомата Мілі?

  8. Як перейти від автомата Мура до еквівалентного йому автомата Мілі?

  9. Що означає еквівалентність двох автоматів?

  10. Які головні етапи алгоритму переходу від автомата Мілі до автомата Мура?

  11. У який спосіб задається автомат Мура? У чому різниця між автоматами І і II роду?

  12. Що являє собою граф переходів цифрового автомата Мілі, Мура, С-автомата?

  13. У чому полягає суть таблиці переходів і виходів автомата Мілі? Наве­діть приклади?

  14. У чому полягає ідея мінімізації числа станів абстрактного ЦА? Які методи мінімізації вам відомі?

  1. Які особливості табличного завдання автомата Мура ви знаєте?

  2. Складіть граф - схему автомата Мілі, еквівалентну сумісній таблиці переходів і виходів :

S(t)

X(t)

X1

X2

1

1, y1

4, y2

2

3, y3

2, y2

3

1, y4

4, y3

4

2, y2

3, y4

  1. Наведіть граф - схему автомата Мура відповідно таблиці :

Y(t)

S(t)

X(t)

X1

X2

y1

1

2

4

y2

2

1

3

y2

3

4

2

y3

4

3

1

    1. Що являє собою „матриця з'єднань" ЦА?

    2. Задайте матрицю з'єднань для автомата Мілі, заданого таблицею

( див. таблицю приклада 14).

    1. Задайте матрицю з'єднань автомата Мура (див. таблицю прикл.15).

    2. Створіть сумісну таблицю переходів і виходів для автомата Мілі, зада­ного матрицею з'єднань.

      1. Створіть позначену таблицю переходів для автомата Мура, заданого матрицею з'єднань.

; .

    1. Які автомати називають „ еквівалентними"?

    2. Наведіть алгоритм трансформації автомата Мура в еквівалентний ав­томат Мілі.

    3. Створіть еквівалентну сумісну таблицю переходів і виходів автомата Мілі для автомата Мура, заданого позначеною таблицею переходів:

Y(t)

S(t)

X(t)

X1

X2

y1

1

4

3

y2

2

2

1

y2

3

3

4

y3

4

2

1

          1. Сформулюйте алгоритм трансформації автомата Мілі в еквівалентний автомат Мура.

          2. Для автомата Мілі, заданого сумісною таблицею, створіть позначену таблицю переходів еквівалентного автомата Мура:

S(t)

X(t)

X1

X2

1

2, y2

1, y1

2

4, y1

3, y3

3

2, y3

4, y3

4

1, y2

3, y3

          1. Мінімізуйте кількість внутрішніх станів абстрактного автомата Мілі, заданого сумісною таблицею переходів і виходів:

Q(t)

X(t)

X1

X2

1

5, y1

10, y2

2

8, y1

12, y2

3

6, y2

5, y1

4

11, y2

7, y1

5

9, y1

3, y2

6

11, y2

7, y1

7

6, y1

3, y2

8

4, y1

10, y2

9

6, y2

7, y1

10

8, y2

1, y1

11

9, y2

5, y1

12

8, y2

2, y1

          1. Поясніть суть поняття „еквівалентність" внутрішніх станів абстракт­ного автомата.

          2. Сформулюйте поняття - розподілу внутрішніх станів ЦА.

          3. Сформулюйте поняття „0 - еквівалентність" для автоматів Мура.

          4. Мінімізуйте кількість внутрішніх станів абстрактного автомата Мура, заданого позначеною таблицею переходів:

Y(t)

Q(t)

X(t)

X1

X2

y1

1

5

10

y1

2

10

7

y3

3

6

5

y3

4

7

9

y3

5

9

3

y2

6

6

8

y3

7

3

6

y1

8

10

4

y2

9

7

6

y2

10

1

8