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

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

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

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

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

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

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

Пpиклад.

1) множина {e} є регулярною мовою, бо {e} = ;

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) якщо i є регулярними виразами, що позначають мови A i B вiдповiдно, то ( )+( ), ( )( ) i є регулярними виразами, що позначають мови A ∪ B, AB i вiдповiдно;

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

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

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

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

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

множину.

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

• α + β = β + α; • = e; • α + (β + γ) = (α + β) + γ; • α(βγ) = (αβ)γ; • α(β + γ) = αβ + αγ;

• (α + β)γ = αγ + βγ; • αe = eα = α; • ∅α = α∅ = ∅; • = α + ; • = ; • α + α = α;

• α + ∅ = α.

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

Для зручностi запису введемо таке позначення: = .

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

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

Далi, повторюємо наступнi кроки, доки кожна позначка довiльної стрiлки не мiститиме символiв +, · :

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

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

3 ) замiнюємо кожну стрiлку з позначкою на додаткову вершину 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лкою в непочаткову вершину може бути стягнута в одну вершину.

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