Регулярні мови і регулярні вирази

Лема Ардена

Нехай A i B – двi мови, причому Регулярні мови і регулярні вирази - student2.ru , i мова X задовольняє рiвнiсть X = AX∪B. ТодiX = Регулярні мови і регулярні вирази - student2.ru .

Дов. Доведемо за iндукцiєю, що X⊂ Регулярні мови і регулярні вирази - student2.ru B. Спершу, розглянемо випадок ω = e. Якщо ω∈X, то ω∈AX∪B. Оскiльки Регулярні мови і регулярні вирази - student2.ru , то необхiдно ω∈Bi, отже, ω∈ Регулярні мови і регулярні вирази - student2.ru B. Далi, припустимо, що для всiх слiв ω довжини менше n виконується, що якщо ω∈X, то ω∈ Регулярні мови і регулярні вирази - student2.ru B, i розглянемо слово α довжини n. Якщо α∈X = AX∪B, то, або α∈B⊂ Регулярні мови і регулярні вирази - student2.ru B або

α = βγ для деяких β∈Aiγ∈X. В другому випадку мусить виконуватися β Регулярні мови і регулярні вирази - student2.ru ei, отже,

|γ| < |α|. Отже, за iндуктивним припущенням, γ∈ Регулярні мови і регулярні вирази - student2.ru Biα∈A Регулярні мови і регулярні вирази - student2.ru B⊂ Регулярні мови і регулярні вирази - student2.ru B. Цим завершується iндуктивний крок i, отже, X⊂ Регулярні мови і регулярні вирази - student2.ru B.

Щоб довести протилежне включення, використаємо iндукцiю, щоб показати, що Регулярні мови і регулярні вирази - student2.ru ⊂X для всiх n ≥ 0. Для n = 0, ми маємо, що Регулярні мови і регулярні вирази - student2.ru B = B⊂AX∪B = X. Для n> 0 за індуктивним припущенням виконується Регулярні мови і регулярні вирази - student2.ru B = A( Регулярні мови і регулярні вирази - student2.ru B) ⊂AX. Таким чином,

Регулярні мови і регулярні вирази - student2.ru B⊂AX⊂AX∪B = X. Дов.

Регулярні мови і регулярні вирази.

Нехай X – довiльний алфавiт. Визначимо регулярну мову (множину) в алфавiтi X рекурсивно наступним чином:

1) порожня множина ∅ є регулярною мовою;

2) для кожної букви a ∈ X множина {a} є регулярною мовою;

3) якщо A i B є регулярними мовами, то множини A ∪ B, AB і Регулярні мови і регулярні вирази - student2.ru також є регулярними мовами;

4) iнших регулярних мов не iснує.

Пpиклад.

1) множина {e} є регулярною мовою, бо {e} = Регулярні мови і регулярні вирази - student2.ru ;

2) множина {001, 110} – регулярна мова над бiнарним алфавiтом, бо

{001, 110} = ({0}{0}{1}) ∪ ({1}{1}{0});

Щоб спростити зображення регулярних мов, визначимо поняттярегулярного виразу над алфавiтом X наступним чином:

1) порожня множина ∅ є регулярним виразом, який позначає порожню множину;

2) e є регулярним виразом, який позначає мову {e};

3) для кожної букви a ∈ X a – регулярний вираз, що позначає мову {a};

4) якщо Регулярні мови і регулярні вирази - student2.ru i Регулярні мови і регулярні вирази - student2.ru є регулярними виразами, що позначають мови A i B вiдповiдно, то ( Регулярні мови і регулярні вирази - student2.ru )+( Регулярні мови і регулярні вирази - student2.ru ), ( Регулярні мови і регулярні вирази - student2.ru )( Регулярні мови і регулярні вирази - student2.ru ) i Регулярні мови і регулярні вирази - student2.ru є регулярними виразами, що позначають мови A ∪ B, AB i Регулярні мови і регулярні вирази - student2.ru вiдповiдно;

5) iнших регулярних виразiв над алфавiтом X не iснує.

Щоб зменшити кiлькiсть дужок в регулярних виразах, будемо вважати, що найвищий прiоритет має операцiя iтерацiї ∗, потiм – конкатенацiя i останньою виконується операцiя +. Наприклад, 01 позначає {01}, Регулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ru , а Регулярні мови і регулярні вирази - student2.ru 001 позначає

множину всiх слiв, якi складаються з нулiв i одиниць i закiнчуються словом 001.

Для кожної регулярної мови iснує нескiнченно багато виразiв, що ї ї зображують. Наприклад, вирази Регулярні мови і регулярні вирази - student2.ru 1+∅ i Регулярні мови і регулярні вирази - student2.ru 1 зображують одну й ту ж мову Регулярні мови і регулярні вирази - student2.ru {1}. Кажемо, що

два регулярних вирази рiвнi (=), якщо вони позначають одну i ту ж

множину.

3.2. Твеpдження. Нехай α, β i γ – регулярнi вирази. Тодi:

• α + β = β + α; • Регулярні мови і регулярні вирази - student2.ru = e; • α + (β + γ) = (α + β) + γ; • α(βγ) = (αβ)γ; • α(β + γ) = αβ + αγ;

• (α + β)γ = αγ + βγ; • αe = eα = α; • ∅α = α∅ = ∅; • Регулярні мови і регулярні вирази - student2.ru = α + Регулярні мови і регулярні вирази - student2.ru ; • Регулярні мови і регулярні вирази - student2.ru = Регулярні мови і регулярні вирази - student2.ru ; • α + α = α;

• α + ∅ = α.

Доведення. Нехай α i β позначають множини A i B вiдповiдно. Тодi α+β позначає A∪B, а β +α позначає B ∪A. Але A∪B = B ∪A за означенням об’єднання, тому α + β = β + α. Решту рiвностей доводяться аналогiчно. Дов.

Для зручностi запису введемо таке позначення: Регулярні мови і регулярні вирази - student2.ru = Регулярні мови і регулярні вирази - student2.ru .

Регулярнi вирази часто зображують помiченими орiєнтованими графами, стрiлки яких позначають буквами з алфавiту X ∪ {e}. Для довiльного регулярного виразу r, граф, що його зображує, утворюється наступним чином:

Регулярні мови і регулярні вирази - student2.ru Спочатку малюємо двi спецiальнi вершини, якi називаються початковою i кiнцевою вершинами, i сполучаємо їх стрiлкою, позначеною r:

Далi, повторюємо наступнi кроки, доки кожна позначка довiльної стрiлки не мiститиме символiв +, · Регулярні мови і регулярні вирази - student2.ru :

1)замiнюємо кожну стрiлку з позначкою f +g на двi паралельнi стрiлки з позначками f i g:

Регулярні мови і регулярні вирази - student2.ru

Регулярні мови і регулярні вирази - student2.ru 2) замiнюємо кожну стрiлку з позначкою fg на додаткову вершину i двi стрiлки з позначками f i g:

Регулярні мови і регулярні вирази - student2.ru 3) замiнюємо кожну стрiлку з позначкою Регулярні мови і регулярні вирази - student2.ru на додаткову вершину i на три стрiлки з позначками e, f i e:

Для регулярного виразу r позначимо через G(r) помiчений орiєнтований граф, що його зображує. Очевидно, що кожна стрiлка в G(r) має позначку з множини X ∪ {e}. Кожному шляху в G(r) вiдповiдає слово, яке одержується конкатенацiєю всiх букв, якi позначають стрiлки шляху. Слово x належить мовi L(r) тодi i тiльки тодi, коли iснує шлях в G(r) з початкової вершини в кiнцеву вершину, якому вiдповiдає слово x. Кожна

е - стрiлка в G(r), яка є єдиною вихiдною стрiлкою з некiнцевої вершини чи єдиною вхiдною стрiлкою в непочаткову вершину може бути стягнута в одну вершину.

3.Формальні породжувальні граматики.Типи граматик.

Ієрархія Хомскі. Дерево виводу.

Формальною породжувальною граматикою називається четвірка виду G = (N, T, S, P), де N – скiнченна непорожня множина, елементи якої будемо називати нетермiнальними символами, T – скінченна непорожня множина, елементи якої будемо називати термiнальними символами, S ∈ N – початковий нетермiнальний символ, P – скiнченна множина продукцiй (правил перетворення) вигляду ξ → η, де ξ та η – слова в алфавiтi

N ∪ T. Букви термiнального алфавiту позначатимемо малими латинськими буквами чи цифрами, а нетермiнального алфавiту – великими латинськими буквами. Слова в алфавiтi N ∪T, як завжди, будемо позначати малими грецькими буквами. Нагадаємо, що множину всiх слiв в алфавiтi A позначають через Регулярні мови і регулярні вирази - student2.ru .

Нехай G = (N, T, S, P) – граматика, i нехай Регулярні мови і регулярні вирази - student2.ru = σ ξ τ (тобто Регулярні мови і регулярні вирази - student2.ru – конкатенацiя слiв σ, ξ i τ ), Регулярні мови і регулярні вирази - student2.ru = σ η τ – слова в алфавiтi N ∪ T. Якщо ξ → η – продукцiя граматики G, то говорять, що Регулярні мови і регулярні вирази - student2.ru безпосередньо виводиться з Регулярні мови і регулярні вирази - student2.ru , i записують Регулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ru . Якщо Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru – слова в алфавiтi N ∪ T такi, що Регулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ru ⇒ . . . ⇒ Регулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ru , то говорять, що Регулярні мови і регулярні вирази - student2.ru виводиться з Регулярні мови і регулярні вирази - student2.ru i записують Регулярні мови і регулярні вирази - student2.ru .

Мовою, що породжується граматикою G = (N, T, S, P), називають множину всiх слiв термiналiв, якi виводяться з початкового символу S. Її позначають L(G). Таким чином, L(G) = {ω ∈ T∗| S ⇒∗ω}.

Якщо ми маємо багато правил граматики з однаковими лівимичастинами

A → Регулярні мови і регулярні вирази - student2.ru ,A → Регулярні мови і регулярні вирази - student2.ru , . . .A → Регулярні мови і регулярні вирази - student2.ru , то ми можемо об’єднати їх в одне правило наступного вигляду A → Регулярні мови і регулярні вирази - student2.ru | Регулярні мови і регулярні вирази - student2.ru | . . . | Регулярні мови і регулярні вирази - student2.ru .

Граматики класифiкують за типами продукцiй. Розглянемо класифiкацiю, яку запропонував американський математик i лiнгвiст Н.Хомскi. Принцип цiєї класифiкацiї полягає в тому, що на продукції накладено певнi обмеження. Вiн подiлив граматики на чотири типи.

У граматицi типу 0 немає жодних обмежень на продукцiї. Граматика типу 1 може мати продукцiї лише у виглядi ξ → η, де довжина слова η не менша, нiж довжина слова ξ, або у виглядi ξ → e. У граматицi типу 2 можуть бути лише продукцiї A → ω, де A – нетермiнальний символ, ω ∈ Регулярні мови і регулярні вирази - student2.ru . Граматика типу 3 може мати такi продукцiї:

A → ωB, A → ω i A → e, де A, B – нетермiнали, ω – слово з термiналiв. Iз цих означень випливає, що кожна граматика типу n, деn = 1, 2, 3, є граматикою типу n−1. Граматики типу 2 називають контекстно вiльними, бо нетермiнал A в лiвiй частинi продукції

A → η можна замiнити словом η в довiльному оточеннi щоразу, коли він зустрiчається, тобто незалежно вiд контексту.

Мову, яку породжуєграматика типу 2, називають контекстно вiльною. Якщо в множинi продукцiй P є продукцiя виду γ µ δ → γ ν δ, |µ| ≤ |η|, то граматику називають граматикою типу 1, або контекстно залежною, оскiльки µ можна замiнити на ν лише в оточеннi слiв γ . . . δ, тобто у вiдповiдному контекстi. Мову, яку породжує граматика типу 1, називаютьконтекстно залежною. Граматику типу 3 називають праволiнiйною.

Двоїсто визначають лiволiнiйну граматику – вона може мати такi продукцiї:

A → ωB, A → ω i A → e, де A, B – нетермiнали, ω – словоз термiналiв. Лiволiнiйнi i праволiнiйнi граматики називаються регулярними. Регулярнi граматики породжують регулярнi мови i тількиїх.

Слово ω належить мовi L(G) контекстно вiльної граматики G тодi i лише тодi, коли iснує виведення S Регулярні мови і регулярні вирази - student2.ru ω в G. Таке виведення показує як крок за крококом застосовуються продукцiї граматики, щоб одержати слово ω з початкового нетермiнального символу S.

Це виведення можна також продемонструвати наочно з допомогоюдерева, яке називатемемо деревом виведення. Наприклад, розглянемо контекстно вiльну граматику G = ({S}, {a, b, c}, S, P), де P = {S →SbS | ScS | a} i слово abaca ∈ L(G). Виведення

S ⇒ SbS ⇒ SbScS ⇒ abScS ⇒ abSca ⇒ abaca показано на рисунку (а), а виведення

S ⇒ ScS ⇒ SbScS ⇒ abScS ⇒ abSca ⇒ abaca зображено деревом на рисунку (б).

Регулярні мови і регулярні вирази - student2.ru

В загальному випадку для контекстно вiльної граматики G =(N, T, S, P) дерево виведення будується наступним чином:

1) Вершиною дерева є початковий нетермiнальний символ S.

2) Повторюємо наступнi кроки доти, доки кожен листок дерева буде або порожнiм символом e або термiнальним символом: длякожного листка A ∈ N дерева обираємо продукцiю A → Регулярні мови і регулярні вирази - student2.ru . . . Регулярні мови і регулярні вирази - student2.ru граматики G, де Регулярні мови і регулярні вирази - student2.ru ∈ N ∪ T i замiнюємо вершину A ∈ N наступним деревом:

Регулярні мови і регулярні вирази - student2.ru Якщо конкатенацiя листкiв дерева виведення є словом ω ∈ Регулярні мови і регулярні вирази - student2.ru ,то кажемо, що дане дерево є деревом виведення для слова ω.

Дерево виведення слова ω вiдповiдає виведенню ω в граматицi G. Легко бачити, що часто дерево виведення вiдповiдає бiльш нiж одному виведенню слова ω. Контекстно вiльна граматика G = (N, T, S, P) називається не-однозначною, якщо iснує слово ω ∈ L(G), яке має два або бiльшерiзних дерев виведень.Розглянемо граматику G з правилами S → if b then S else S | if b then S | a.

Ця граматика неоднозначна, оскiльки слово

if b then if b then a else a

має два виводи

if b then (if b then a) else a та

if b then (if b then a else a),

яким вiдповiдають два рiзних дерева виведення.

4.Автомати Мілі та автомати Мура.Типи автоматів. Способи задання автоматів.

Розглянемо деякий пристрiй,який має n входiв i m виходiв. Будемо вважати, що на входи iнформацiя подається в дискретнi моменти часу Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru . Iнтервалчасу Регулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ru називається тактом. Аналогiчно i з виходiв інформаціяодержується дискретно в часi. На кожному iз входiв (виходiв) сигналможе приймати дискретнi значення з деякого набору Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru .Сукупнiсть значень вхiдних сигналiв в момент часу Регулярні мови і регулярні вирази - student2.ru називатимемо вхiдною буквою, а послiдовнiсть вхiдних букв – вхiдним словом.Множину всiх вхiдних букв назвемо вхiдним алфавiтом.Можна уявляти будь-який перетворювачiнформацiї як пристрiй з одним входом, на який надходять слова,складенi з букв вхiдного алфавiту, i з одним виходом, на якому одержуються слова в вихiдному алфавiтi.

Автоматом називають перетворювач алфавiтної iнформацiї, якиймає один вхiд i один вихiд. Для задання умов функцiонування автомата фiксуються три множини, елементами яких є букви трьох алфавтiв: вхiдного X = { Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru }, вихiдного

Y = { Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru } і множина внутрiшнiх станiв автомата Q = { Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru }.

Регулярні мови і регулярні вирази - student2.ru Автомат складається з трьох частин – стрiчки, головки i керуючого пристрою. Стрiчка використовується для запису вхiдних даних (вхiдного слова). Вона подiлена на скiнченну кiлькiсть комiрок.

Головка переглядає стрiчку, читає букву з неї i передає одержану iнформацiю керуючому пристрою. Кожного разу головка переглядає тiльки одну комiрку стрiчки, читає записану в нiй букву i переходить до наступної комiрки праворуч. Керуючий пристрiй складається з станiв з множини станiв Q.

Семiрка A = (Q,X, Y, δ, f, Регулярні мови і регулярні вирази - student2.ru , F) називається автоматом Мiлi, якщо вона складається iз множини станiв автомата Q, множини вхiдних символiв X, множини вихiдних символiв Y , функцiї переходiв δ : Q×X → Q, функцiї виходiв f : Q×X → Y , початкового стану Регулярні мови і регулярні вирази - student2.ru та множини кiнцевих станiв F. Множини X i Y називають вiдповiдно вхiдним i вихiдним алфавiтами автомата. Якщо δ(a, x) = Регулярні мови і регулярні вирази - student2.ru , то кажуть, що автомат Q пiд дiєю вхiдного сигналу x ∈ X переходить в стан Регулярні мови і регулярні вирази - student2.ru , або сигнал x переводить автомат Q iз стану a в стан Регулярні мови і регулярні вирази - student2.ru .

Якщо, f(a, x) = y, то кажуть, що автомат Q перетворює в станi a вхiдний сигнал x ∈ X у вихiдний сигнал y ∈ Y .

Автомат A = (Q,X, Y, δ, f, Регулярні мови і регулярні вирази - student2.ru , F) називається скiнченним, якщо всi три множини – Q, X i Y – скiнченнi, i нескiнченним, якщо хоч одна з них нескiнченна.

Автомат називається повним або повнiстю визначеним, якщо функцiї переходiв i виходiв повнiстю визначенi, i частковим, якщо хоч одна з них часткова.

Iнколи трапляються автомати, в яких компонент δ – не функцiя,а деяке вiдношення, тобто в таких автоматах не виконується умова однозначностi переходу. Автомати такого типу називаються недетермiнованими. Якщо ж вiдношення δ є функцiєю, то автомат називається детермiнованим. Отже, для детермiнованого автомата Q зпочатковим станом a однозначно знаходиться стан b, в який автоматперейде пiд дiєю слова ω ∈ F(X). А в недетермiнованому автоматi таких станiв може бути не один, а декiлька. Ясно, що клас детермiнованих автоматiв є пiдкласом класу недетермiнованих автоматiв.

Крiм класiв детермiнованих i недетермiнованих автоматiв, iснують i iншi спецiальнi класи. Серед них видiляються деякi виродженiкласи автоматiв, в яких одна з множин

(Q, X або Y ) одноелементна.

У таких випадках розглядаються спрощенi моделi автоматiв. Наведемо деякi приклади.

Автомат без пам’ятi - це трiйка (X, Y , f), де f : X → Y .

Цей автомат виконує посимвольну трансформацiю символiв вхідногоалфавiту X в символи вихiдного алфавiту Y , при якому на один ітой же вхiдний символ x ∈ X вiн реагує одним i тим же вихiдним символом y ∈ Y .

Автономний автомат – це четвiрка (Q, Y, δ, f) де δ : Q → Q, f : Q → Y . Для такого автомата поданням початкового стану визначається весь подальший процес його функцiонування.

Автомат без виходiв, або X-aвтомат – це п’ятiрка (Q,X, δ, Регулярні мови і регулярні вирази - student2.ru , F), де F – деяка пiдмножина станiв автомата, елементи якої називаються кiнцевими або представляючими станами, а Регулярні мови і регулярні вирази - student2.ru ∈ Q – початковий стан автомата.

Автомати Мура є окремим випадком автоматiв Мiлi. Автомат A = (Q,X, Y, δ, f) називається автоматом Мура, якщо його функція виходiв f(a, x) виражається функцiєю переходiв δ(a, x) за допомогою рiвняння f(a, x) = h(δ(a, x)), де h : Q → Y . В автоматi Мура вихiднийсигнал в момент часу t однозначно визначається станом автомата втой же момент часу, тобто y(t) = g(q(t)). Функцiя h називається функцiєю вiдмiток автомата, а її значення h(a) на станi a – вiдмiткою цього стану.

У загальному випадку для задання скiнченних автоматiв користуються двома стандартними способами, якi називаютьсяунiверсальними – це таблицi переходiв i виходiв та графи переходiв i виходiв.

Таблицi переходiв i виходiв автомата - це двi матрицi однакової розмiрностi, стовпчики яких вiдмiченi рiзними символами вхідного алфавiту, а рядки – рiзними символами станiв автомата. Для функцiї переходiв (перша матриця) на перетинi i-го рядка, вiдмiченого

вiдмiченого станом a ∈ Q i j-го стовпчика, вiдмiченого символом x ∈ X, знаходиться значення δ(a, x) = b. Аналогiчно для функції виходiв (друга матриця) – на перетинi i-го рядка i j-го стовпчика знаходиться значення f(a, x) = y ∈ Y . Вважають, що початковий

стан автомата вiдмiчає перший стовпчик як в таблицi переходiв, такi в таблицi виходiв.

Граф переходiв i виходiв скiнченного автомата A є альтернативним шляхом для зображення A. Вiн являє собою помiчений орiєнтований граф, вершини якого взаємно однозначно вiдповiдають станам автомата. Стрiлки графа вiдмiченi парами символiв: перший – символом вхiдного алфавiту, другий - символом вихiдною алфавiту. У цьому разi вiдповiднiсть мiж графом переходiв i виходiв i функцiями переходу δ i виходу f така, що коли δ(a, x) = Регулярні мови і регулярні вирази - student2.ru i f(a, x) = y, то в графi з вершини Регулярні мови і регулярні вирази - student2.ru у вершину Регулярні мови і регулярні вирази - student2.ru веде стрiлка, вiдмiчена парою (x/y),i навпаки, коли в графi переходiв i виходiв автомата iснує стрiлка

( Регулярні мови і регулярні вирази - student2.ru ), вiдмiчена парою (x/y), то для функцiй переходу δ i виходу f виконуються рiвностi δ(a, x) = Регулярні мови і регулярні вирази - student2.ru i f(a, x) = y. Крiм того, щоб пiдкреслити початковий стан Регулярні мови і регулярні вирази - student2.ru , малюється стрiлка без початкової вершини, кiнцевою вершиною, якої є стан Регулярні мови і регулярні вирази - student2.ru . Кiнцевий стан позначається двома концентричними колами.


5. Детерміновані скінченні автомати без виходу.Алгоритми синтезу ДСА.

Якщо ж вiдношення δ є функцiєю, то автомат називається детермiнованим. Отже, для детермiнованого автомата Q зпочатковим станом a однозначно знаходиться стан b, в який автоматперейде пiд дiєю слова ω ∈ F(X).

Регулярні мови і регулярні вирази - student2.ru Розглянемо рiзнi методи побудови детермiнованих скiнченних автоматiв (ДСА) без виходу.

Пpиклад. Побудуємо граф ДСА A = (Q,X, δ, q0, F) i знайдемо мову, яка розпiзнається A, якщо Q = {q0, q1, q2, q3}, X = {0, 1}, F ={q1, q2}, а функцiя переходiв δ задана таблицею:

Помiчений граф автомата A має вигляд:

Регулярні мови і регулярні вирази - student2.ru

Знайдемо мову L(A), яка розпiзнається автоматом A.

Нагадаємо, що слово ω ∈ L(A), якщо автомат A зупиняє аналiз ω в одному з кiнцевих станiв множини F. З графа ДСА видно, що якщоавтомат переходить в стан q3 при аналiзi слова ω, то вiн залишається

в ньому до кiнця роботи i ω ∉ L(A). З другого боку, перейшовши в кiнцевий стан q2, автомат нiколи не покине даного стану, i такiслова розпiзнаються ДСА. З вищесказаного випливає, що мова L(A) мiстить слово 0 (аналiз якого зупиняється в станi q1) i всi слова, якi мають префiкс 00. Таким чином, регулярний вираз мови L(A) маєвигляд 0 + 00(0 + 1 Регулярні мови і регулярні вирази - student2.ru .

2.2. Пpиклад. Знайдемо мову, яка розпiзнається ДСА A = (Q,X, δ, q0, F), заданого помiченим графом:

Регулярні мови і регулярні вирази - student2.ru Аналогiчно як у прикладi 3.2, якщо при аналiзi слова ω автомат переходить в стан q6, то дане слово не розпiзнається A i, навпаки, перейшовши в кiнцевий стан q3, автомат розпiзнає слово ω. Отже, нам потрiбно проаналiзувати як зi стану q0 можна перейти в стан q3. Всього є три типи шляхiв з q0 в q3:

(q0, q1, q2, . . . , q2, q3); (q0, q1, q5, . . . , q5, q3); (q0, q4, q5, . . . , q5, q3).

Вони вiдповiдають словам, префiкси яких належать регулярним мовам 01 Регулярні мови і регулярні вирази - student2.ru 0, 00 Регулярні мови і регулярні вирази - student2.ru 1 i 10 Регулярні мови і регулярні вирази - student2.ru 1 вiдповiдно. Таким чином,

Регулярні мови і регулярні вирази - student2.ru

Пpиклад. Побудувати ДСА, який розпiзнає всi слова в бiнарному алфавiтi X = {0, 1}, якi мають префiкс 01.

Регулярні мови і регулярні вирази - student2.ru Легко бачити, що регулярний вираз шуканої формальної мовимає вигляд 01(0 + 1 Регулярні мови і регулярні вирази - student2.ru . Побудуємо граф цього регулярного виразу:

Даний граф не є графом ДСА, оскiльки в графi ДСА з кожної вершини q має виходити єдина стрiлка з позначкою a для кожної пари (q, a) ∈ Q × X. Щоб виконати цю умову, побудуємо додаткову тупикову виршину q3 i стрiлки q0 → q3 i q1 → q3 з позначками 1 i 0 вiдповiдно. Шуканий граф ДСА має вигляд:

Регулярні мови і регулярні вирази - student2.ru Пpиклад. Побудувати ДСА, який розпiзнає всi слова в бiнарному алфавiтi X = {0, 1}, якi мiстять пiдслово 00.

Спершу вiдмiтимо, що з регулярного виразу (0+1 Регулярні мови і регулярні вирази - student2.ru 00(0+1 Регулярні мови і регулярні вирази - student2.ru неможна визначити перше входження пари 00 в вхiдному словi. З другого боку, шуканий ДСА мусить виявляти 00 вже при першому йоговходженнi у вхiдне слово. Проаналiзуємо дану проблему детальнiше.

Регулярні мови і регулярні вирази - student2.ru Припустимо, що на стрiчцi записане слово ω = x1x2 . . . xn, де xi∈{0, 1}. Ми маємо перевiряти кожне пiдслово x1x2, x2x3, . . . xn−1xn i як тiльки виявиться, що якась пара рiвна 00, робити висновок, що слово w розпiзнається ДСА. Звiдси випливає наступний алгоритмпобудови ДСА.

Крок 1. Будуємо граф

з кiнцевою вершиною q2, з допомогою якої розпiзнаються слова, що мiстять 00. Зокрема, якщо x1x2 = 00, то слово ω розпiзнається.

Регулярні мови і регулярні вирази - student2.ru Крок 2. Якщо x1 = 1, то ми залишаємо пiдслово x1x2 i переходимодо перевiрки x2x3. Таким чином, автомату потрiбно перейти в станq0, тобто δ(q0, 1) = q0.

Регулярні мови і регулярні вирази - student2.ru Крок 3. Якщо x1 = 0 i x2 = 1, то нi пiдслово x1x2, нi x2x3 недорiвнюють 00. Отже, керуючий пристрiй ДСА має перейти в стан q0 для аналiзу пiдслова x3x4. Таким чином, покладаємо δ(q1, 1) = q0.Граф шуканого ДСА має вигляд:

Регулярні мови і регулярні вирази - student2.ru Пpиклад. Побудувати ДСА, який розпiзнає всi слова в бiнарному алфавiтi X = {0, 1}, якi мiстять пiдслово 00101.

Аналогiчно, як i в попередньому прикладi, крок за кроком будуємо шуканий ДСА:

Регулярні мови і регулярні вирази - student2.ru Регулярні мови і регулярні вирази - student2.ru Пpиклад. Побудувати ДСА, який розпiзнає всi слова в бiнарному алфавiтi X = {0, 1}, якi мають суфiкс 01. Спершу, побудуємо наступний граф:

Стани q0 та q1 вказують, що "не знайдено префiкса слова 01"та"знайдений префiкс 0 слова 01"вiдповiдно. Аналогiчно, як i в попередньому прикладi, покладемо

Регулярні мови і регулярні вирази - student2.ru δ(q0, 1) = q0 i δ(q1, 0) = q1. Якщоперейшовши в стан q2 автомат не закiнчив аналiз вхiдного слова, тонеобхiдно покласти δ(q2, 0) = q1 i δ(q2, 1) = q0. Таким чином, шуканий граф ДСА має вигляд:

Теоpема. Клас формальних мов, якi розпiзнаються детермiнованими скiнченними автоматами, замкнений вiдносно скiнченних об’єднань, перетинiв, доповнення, рiзницi i симетричної рiзницi.

Iдея побудови ДСА для об’єднання цих мов, полягає в розглядi так званого добутку автоматiв. Нехай A1 = (Q1,X, δ1, q0, F1) iA2 = (Q2,X, δ2, q0, F2) – два автомати (вiдмiтимо, що Q1 i Q2 можуть мати стани з однаковими назвами, якi виконують рiзнi функції в двох ДСА). Визначимо добуток A = A1 × A2 автоматiв A1 i A2наступним чином. Нехай

A = (Q,X, δ, Регулярні мови і регулярні вирази - student2.ru , F). Покладемо

Q = Q1 × Q2 = {(qi, qj) | qi∈ Q1, qj∈ Q2},

δ((qi, qj), a) = (δ1(qi, a), δ2(qj , a)) i Регулярні мови і регулярні вирази - student2.ru = (q0, q0).


6. Недетерміновані скінченні автомати без виходу.Алгоритми синтезу НСА.

Iнколи трапляються автомати, в яких компонент δ – не функцiя,а деяке вiдношення, тобто в таких автоматах не виконується умова однозначностi переходу. Автомати такого типу називаються недетермiнованими.

Недетермiнований скiнченний автомат (НСА) без виходу (Q,X, δ, Регулярні мови і регулярні вирази - student2.ru , F)визначається так само як i ДСА за винятком того, що в ньому дозволяються переходи в декiлька станiв та e-переходи. Це означає, що для кожного стану q i вхiдної букви a значення δ(q, a) функції переходiв на парi (q, a) є пiдмножиною множини станiв Q, тобто

δ(q, a) = { Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru }. Остання рiвнiсть означає, що проаналiзувавши букву a в станi q автомат може перейти в довiльний зi станів Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , або Регулярні мови і регулярні вирази - student2.ru . В випадку, коли δ(q, a) = ∅ автомат не переходит в жоден стан, "зависає"i вважаємо, що вхiдне слово не розпiзнається

НСА незважаючи на те, що деякi букви слова ще не проаналiзованi автоматом. Це рiвносильно тому, що ДСА перейшов в тупиковий стан. Крiм переходiв в декiлька станiв, в НСА дозволяються також e-переходи (e-такти). При e-переходi головка автомата нiчого не виконує (не читає i не рухається), але стан при цьому може змiнитися на довiльний зi станiв Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , або Регулярні мови і регулярні вирази - student2.ru . Таким чином, функцiя переходiв формально визначається як:

δ : Q × (X ∪ {e}) → Регулярні мови і регулярні вирази - student2.ru ,де через Регулярні мови і регулярні вирази - student2.ru позначається сiм’я всiх пiдмножин множини Q. Прикладом функцiї переходiв НСА Регулярні мови і регулярні вирази - student2.ru є:

Регулярні мови і регулярні вирази - student2.ru НСА так як i ДСА задаються графами, вершинами яких є стани автомата, а за допомогою стрiлок зображаються переходи, тобто якщо

δ(q, a) = { Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru }, то ми вiдкладаємо k стрiлок з вершини q до кожної з вершин Регулярні мови і регулярні вирази - student2.ru , Регулярні мови і регулярні вирази - student2.ru , . . . , Регулярні мови і регулярні вирази - student2.ru i всi стрiлки помiченi буквою a.

Наприклад, граф розглянутого вище автомата A1 має вигляд (вважаємо, що F = { Регулярні мови і регулярні вирази - student2.ru }):

Регулярні мови і регулярні вирази - student2.ru На вхiдному словi ω НСА може мати бiльше нiж один обчислювальний шлях. В загальному випадку, обчислювальнi шляхи для вхiдного слова ω утворюють дерево виводу, оскiльки всi вони виходять з однiєї i тієї ж вершини Регулярні мови і регулярні вирази - student2.ru i їх гiлки не утворюють циклiв.

Вважають, що автомат розпiзнає слово ω, якщо принаймi один з обчислювальних шляхiв закiнчується в кінцевому станi.

Щоб визначити строго, коли НСА розпiзнає вхiдне слово ω, потрiбно ввести поняття e-замикання. Назвемо e-замиканням пiдмножини P ⊂ Q множину станiв, якi досягаються з станiв q ∈ P e-переходами (включаючи переходи з q в q). Тобто,

Регулярні мови і регулярні вирази - student2.ru

Продовжимо функцiю переходiв δ на множину Регулярні мови і регулярні вирази - student2.ru × (X ∪ {e}),поклавши

Регулярні мови і регулярні вирази - student2.ru

а далi продовжимо ї ї на Регулярні мови і регулярні вирази - student2.ru наступним чином:

Регулярні мови і регулярні вирази - student2.ru

Регулярні мови і регулярні вирази - student2.ru

Тепер можна строго означити, що НСА (Q,X, δ, q0, F) розпiзнає слово ω, якщо δ({q0}, ω) ∩ F Регулярні мови і регулярні вирази - student2.ru ∅. Через L(A) позначаємо мову, яка розпiзнається НСА A, тобто

Регулярні мови і регулярні вирази - student2.ru

Теоpема. Клас формальних мов, якi розпiзнаються недетермiнованими скiнченними автоматами, замкнений вiдносно конкатинацiї та iтерацiї.

Хоча недетермiнованi скiнченнi автомати легше будуються нiждетермiнованi скiнченнi автомати, але, насправдi, вони є iдеалiзованими машинами i не можуть бути ефективно застосованi на практицi,оскiльки реальна машина може працювати тiльки єдиним обчислювальним шляхом в один i той же час. Виявляється, що для НСА єпроостий алгоритм для перетворення його в ДСА, який розпiзнає туж мову, що i НСА.

Розглянемо НСА A = (Q,X, δ, q0, F). Для кожного ω∈ Регулярні мови і регулярні вирази - student2.ru позначимо через Регулярні мови і регулярні вирази - student2.ru множину станiв, якi є останнiми станами обчислювальних шляхiв слова ω, тобто Регулярні мови і регулярні вирази - student2.ru = δ({q0}, ω), де δ – функцiяпереходiв, визначена на множинi Регулярні мови і регулярні вирази - student2.ru × Регулярні мови і регулярні вирази - student2.ru . Зокрема, Qe = cle({q0}).

Таким чином, слово ω розпiзнається НСА тодii тiльки тодi, коли Регулярні мови і регулярні вирази - student2.ru . Отже, ми можемо взяти цi пiдмножини Регулярні мови і регулярні вирази - student2.ru ⊂Q в якостi

станiв нового еквiвалентного ДСА. Iншими словами, побудуємо ДСА

Регулярні мови і регулярні вирази - student2.ru з наступними компонентами:

Регулярні мови і регулярні вирази - student2.ru , деω∈ Регулярні мови і регулярні вирази - student2.ru , a∈X.

Вiдмiтимо, щокоженстан Регулярні мови і регулярні вирази - student2.ru єпiдмножиноюмножиниQi, отже, Регулярні мови і регулярні вирази - student2.ru єскiнченноюмножиною. Справдi, Регулярні мови і регулярні вирази - student2.ruРегулярні мови і регулярні вирази - student2.ru i, отже, | Регулярні мови і регулярні вирази - student2.ru | ≤ Регулярні мови і регулярні вирази - student2.ru .

Далi, якщо Регулярні мови і регулярні вирази - student2.ru = Регулярні мови і регулярні вирази - student2.ru , то Регулярні мови і регулярні вирази - student2.ru = Регулярні мови і регулярні вирази - student2.ru длявсiхa∈X. Звiдсивипливає,щоозначенняфункцiїпереходiв Регулярні мови і регулярні вирази - student2.ru єкоректним. Попереднiй аналiзпоказує, що конструкцiя ДСА є коректною. Дана конструкцiя називається побудовою ДСА за допомогою пiдмножин.

Теоpема 1. Формальна мова розпiзнається НСА тодii лише тодi, коли вона розпiзнається ДСА.

Теорема 1 дає нам простий метод побудови ДСА, який розпiзнає мову L: спершу ми будуємо НСА для L, а потiм перетворюємойого в еквiвалентний ДСА.

Твеpдження. Кожна регулярна мова розпiзнається деякимнедетермiнованим скiнченним автоматом.

Наши рекомендации