knu/csc/appl-math/c3s2/sys-prog

синтез і аналіз мовних процесорів

Зміст:

Регулярні множини

Нехай — скінчений алфавіт. Регулярна множина в алфавіті визначається рекурсивно:

  1. — пуста множина — це регулярна множина в алфавіті ;

  2. — пусте слово — регулярна множина в алфавіті ;

  3. — однолітерна множина — регулярна множина в алфавіті ;

  4. Якщо та — регулярні множини, то такими є наступні множини:

    • (операція об’єднання);

    • (операція конкатенації);

    • (операція ітерації).

  5. Ніякі інші множини, окрім побудованих на основі 1–4 не є регулярними множинами.

Таким чином, регулярні множини можна побудувати з базових елементів 1-3 шляхом скінченого застосування операцій об’єднання, конкатенації та ітерації.

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

Регулярні вирази позначають регулярні множини таким чином, що:

  1. позначає регулярну множину ;

  2. позначає регулярну множину ;

  3. позначає регулярну множину ;

  4. Якщо та позначають відповідно регулярні множини та , то

    • позначає регулярну множину ;

    • позначає регулярну множину ;

    • позначає регулярну множину .

  5. Ніякі інші вирази, окрім побудованих на основі 1–4 не є регулярними виразами.

Алгебра регулярних виразів

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

  1. (ліва асоціативність додавання);

  2. (права асоціативність додавання);

  3. ( — нейтральний елемент за додаванням);

  4. (ліва асоціативність множення);

  5. (права асоціативність множення);

  6. (комутативність додавання);

  7. ( — нейтральний елемент за множенням);

  8. ( — нульовий елемент за множенням);

  9. (ліва дистрибутивність множення відносно додавання);

  10. (права дистрибутивність множення відносно додавання).

У алгебри регулярних виразів є і некласичні властивості:

  1. ;

  2. ;

  3. ;

  4. .

Лінійні рівняння

За аналогією з класичними алгебрами розглянемо лінійне рівняння в алгебрі регулярних виразів: , де , — регулярні вирази.

Взагалі кажучи таке рівняння (в залежності від та ) може мати безліч розв’язків.

Серед всіх розв’язків рівняння з регулярними коефіцієнтами виберемо найменший розв’язок , який назвемо найменша нерухома точка.

Щоб перевірити, що справді розв’язок рівняння в алгебрі регулярних виразів, підставимо його в початкове рівняння та перевіримо тотожність виразів на основі системи тотожних перетворень:

Системи рівнянь

В алгебрі регулярних виразів також розглядають і системи лінійних рівнянь з регулярними коефіцієнтами:

Метод розв’язування системи лінійних рівнянь з регулярними коефіцієнтами нагадує метод виключення Гауса.

  1. Для , використавши систему тотожних перетворень, записати -е рівняння у вигляді: , де — регулярний вираз в алфавіті , а — регулярний вираз виду

    де () — регулярні коефіцієнти. Далі, в правих частинах рівнянь зі змінними в лівій частині рівняння підставити замість значення .

  2. Для розв’язати -е рівняння яке зараз має вигляд , де , — регулярні вирази в алфавіті , і підставити його розв’язок у коефіцієнти рівнянь зі змінними .

Приклад. Розв’язати систему :

Розв’язок:

  1. З першого рівняння

  2. Підставляємо у друге рівняння, воно набуває вигляду

    Або, після спрощень:

    Звідки знаходимо:

  3. Підставляємо у вираз для :

    Тут можна розкрити дужки, але зараз у цьому немає потреби.

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

  1. Яка множина називається регулярною (в алфавіті )?

  2. Як регулярні вирази позначаються регулярні множини?

  3. Які класичні тотожності алгебри регулярних виразів ви знаєте?

  4. Які не класичні тотожності алгебри регулярних виразів ви знаєте?

  5. Який розв’язок лінійного рівняння називається найменшою нерухомою точкою?

  6. Доведіть, що згаданий у попередньому рівняння вираз справді є розв’язком.

  7. Сформулюйте алгоритм Гауса розв’язування систем лінійних регулярних рівнянь.

  8. Розв’яжіть систему :

(традиційні відповіді можна переглянути у коментарях у вихідному коді цієї сторінки)

Назад до лекцій

Назад на головну