АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Мінімізація детермінованих скінчених автоматів

Читайте также:
  1. Застосування скінчених автоматів при розробці лексичних аналізаторів
  2. Конструкція та особливості автоматів підвісного типу для електродугового зварювання під флюсом.
  3. Конструкція та особливості автоматів тракторного типу для електродугового зварювання під флюсом.
  4. Мінімізація витрат на створення і зберігання запасів
  5. Мінімізація логічних функцій
  6. Мм автоматів АК74 (6П20) і ручних кулеметів РПК74(6П21).

В подальшому при програмуванні скінчених автоматів важливо мати справу з так званими "мінімальними автоматами". Мінімальним для даного скінченого автомата візьмемо еквівалентний йому автомат з мінімальною кількістю станів. Те, що скінчені автомати можна мінімізувати покажемо на наступному прикладі:

 

c q5

a, c a, c

q3 q4

q0

a, b

q2

 

Мал. 2.

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

 

Означення. Стан q скінченого автомата М називається недосяжним, якщо на діаграмі переходів скінченого автомата не існує шляху з q0 в q.

Алгоритм. Пошук недосяжних станів. Спочатку спробуємо побудувати множину досяжних станів. Якщо Qm - множина досяжних станів скінченого автомата М, то Q\Qm - множина недосяжних станів. Побудуємо послідовність множин Q0, Q1, Q2, … таким чином, що:

П0. Q0 = { q0 }.

П1. Q1 = S0 È { q | q Î d(q0, a), для всіх а Î S }.

П2. Qi = Si-1 È { q | q Î d(qj, a), qj Î Qi-1 та для всіх а Î S }.

……………………….

Пm. Qm = Qm+1 = ……..

Очевидно, що кількість кроків П0, П1… скінчена, тому що послідовність Qi монотонна (Q0 Í Q1 Í Q2 Í ….) та обмежена зверху - |Qm| <= |Q|.

Тоді Qm – множина досяжних станів скінченого автомата, а Q\Qm – множина недосяжних станів.

Вилучимо з діаграми переходів скінченого автомата М недосяжні вершини. В новому (мінімізованому) автоматі функція d визначається лише для досяжних станів. Побудований нами скінчений автомат з меншою кількістю станів буде еквівалентний початковому.

Означення. Стан q скінченого автомата М називається тупиковим, якщо на діаграмі переходів скінченого автомата не існує шляху з q в F.

Алгоритм. Пошук тупикових станів. Спочатку спробуємо знайти нетупикові стани. Якщо Sm - множина нетупикових станів, то Q\Sm - множина тупикових станів. Побудуємо послідовність множин S0, S1, S2, … таким чином, що:

П0. S0 = { q | q Î F }.

П1. S1 = S0 È { q | d(q, a) S0 Æ, а Î S }.

П2. Si = Si-1 È { q | d(q, a) Si-1 Æ, а Î S }.

……………………….

Пм. Sm = Sm+1 = ……..

Очевидно, що кількість кроків П0, П1… скінчена, тому що послідовність Si монотонна (S0 Í S1 Í S2 Í ….) та обмежена зверху - |Sm| <= |Q|.

Тоді Sm – множина нетупикових станів скінченого автомата, а Q\Sm – множина тупикових станів. В новому (мінімізованому) автоматі функція d визначається лише для нетупикових станів.

В прикладі наведеному на Мал. 2 множина недосяжних станів - {q5}, а множина тупикових станів - {q3, q4}. Таким чином, для вище наведеного скінченого автомата еквівалентний йому автомат з меншою кількістю станів буде:

 

a, b

q0 q2

Мал. 3.

 

Автомат, у котрого відсутні недосяжні та тупикові стани, піддається подальшій мінімізації шляхом “склеювання” еквівалентних станів. Продемонструємо це на конкретному прикладі:

a, c

c

b

q1 q2

c a, c

q0 a

q3 q4

Мал. 4.

Очевидно, що для наведеного вище скінченого автомата можна побудувати еквівалентний йому скінчений автомат з меншою кількістю станів:

 
 


a, b c a, c

q0 q1 q2

Мал. 5.

Ми досягли бажаного нам результату шляхом “склеювання” двох станів q1, q3. та q2, q4.

Означення. Два стани q1 та q2 скінченого автомата М називаються еквівалентними, якщо множини слів, які розпізнає автомат, починаючи з q1 та q2, співпадають.

Нехай q1 та q2 два різних стани скінченого автомата М, а х Î S*. Будемо говорити, що ланцюжок х розрізняє стани q1 та q2, якщо (q1,x) |=* (q3, e) та (q2,x) |=* (q4, e), причому один з станів q3 або q4 не належить множині заключних станів. Стани q1 та q2 називаються k – нерозрізнені, якщо не існує ланцюжка х (|x| <=k), що розрізняє стани q1 та q2. Два стани q1 та q2 нерозрізнені, якщо вони

к-нерозрізнені для довільного к.

Твердження: два стани q1 та q2 довільного скінченого автомата М з n станами нерозрізнені, якщо вони (n-2)-нерозрізнені.

Доведення: На першому кроці розіб’ємо множину станів скінченого автомата на дві підмножини: F та Q\F. На цій основі побудуємо відношення º0:

q1 º0 q2 , якщо обидва стани одночасно належать F або Q\F.

Побудуємо відношення ºк :

q1 ºк q2 , якщо q1 ºк-1 q2 та d(q1, а) ºк-1 d(q2, а) для всіх а Î S.

Очевидно, кожна побудована множина містить не більше (n-1) елементи. Таким чином, можна отримати не більше (n-2) уточнення відношення º0.

Відношення ºn-2 визначає класи еквівалентних станів автомата М.

Алгоритм. Побудова мінімального скінченого автомата.

П1. Побудувати скінчений автомат без тупикових станів.

П2. Побудувати скінчений автомат без недосяжних станів.

П3. Знайти множини еквівалентних станів та побудувати найменший (мінімальний) автомат.

Ознайомившись з деякими результатами теорії скінчених автоматів, спробуємо уяснити, які мови (словарні множини) є скінченоавтоматними.

Твердження: Скінчено автоматними є наступні множини:

- порожня словарна множина - Æ;

- словарна множина, що складається з одного e-слова – {e};

- множина {a}, a Î S.

Доведення: в кожному випадку нам доведеться конструктивно побудувати відповідний скінчений автомат:

1. Довільний скінчений автомат з пустою множиною заключних станів (а мінімальний – з пустою множиною станів) допускає Æ;

2. Розглянемо автомат М =<{q0}, S, q0, d, {q0}>, у якому d не визначено ні для яких а Î S.

Тоді L(M) = {e}.

3. Розглянемо автомат М =<{q0, q1}, S, q0, d, {q1}>, у якому функція d визначена лише для пари (q0, a), а саме: d(q0, a) = q1.

Тоді L(M) = {a}.

Твердження: Якщо М1 = <Q1, S, q01, d1, F1> та М2 = <Q2, S, q02, d2, F2>, що визначають відповідно мови L(M1) та L(M2), то скінченоавтоматними мовами будуть:

- L(M1) È L(M2);

- L(M1) * L(M2);

- {L(M1)} = {e} È L(M1) È L(M1)* L(M1) È ….,

де:

L(M1) È L(M2) = { w | w Î L(M1) або w Î L(M2) },

L(M1) * L(M2) = {w=xy | x Î L(M1), y Î L(M2) }.

Доведення:

1. Побудуємо автомат М = <Q, S, q0, d, F>, такий що L(M) = L(M1) È L(M2).

- Q = Q1 È Q2 È {q0}, де q0 – новий стан (q0 Ï Q1 È Q2);

- Функцію d визначимо таким чином:

d(q,a) = d1(q,a), q Î Q1, а Î S;

d(q,a) = d2(q,a), q Î Q2, а Î S;

d(q0,a) = d1(q01,a) È d2(q02,a), q01 Î Q1, q02 Î Q2, а Î S;

- Множина заключних станів

Побудований в цьому випадку автомат взагалі недетермінований. Індукцією по i >=1 покажемо, що (q0,w) |=i (q,e) можливо тоді і тільки тоді, коли (q01,w) |=i (q,e), q Î F1 або (q02,w) |=i (q,e), q Î F2.

2. Побудуємо автомат М = <Q, S, q0, d, F>, такий що L(M) = L(M1) * L(M2):

- Q = Q1 È Q2;

- q0 =q01;

- Функцію d визначимо таким чином:

d(q,a) = d1(q,a), q Î Q1\F1, а Î S;

d(q,a) = d2(q,a), q Î Q2, а Î S;

d(q,a) = d1(q,a) È d2(q02,a), q Î F1, q02 Î Q2,а Î S;

- Множина заключних станів

3. Побудуємо автомат М = <Q, S, q0, d, F>, такий що L(M) = {L(M1)}:

- Q = Q1 È {q0}, де q0 – новий стан (q0 Ï Q1);

- Функцію d визначимо таким чином:

d(q,a) = d1(q,a), q Î Q1\F1, а Î S;

d(q0,a) = d1(q01,a), q01 Î Q1, а Î S;

d(q,a) = d1(q,a) È d1(q01,a), q Î F1, а Î S;

- Множина заключних станів F = F1 È {q0}.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.)