Зміст:
Скінченно-автоматні мови
Ознайомившись з деякими результатами теорії скінчених автоматів, спробуємо з’ясувати, які мови (множини слів) є скінчено-автоматними.
Базові мови
Твердження: Скінчено автоматними є наступні множини:
-
порожня словарна множина — ;
-
словарна множина, що складається з одного -слова — ;
-
множина , .
Доведення: в кожному випадку нам доведеться конструктивно побудувати відповідний скінчений автомат:
-
Довільний скінчений автомат з пустою множиною заключних станів (а мінімальний — з пустою множиною станів) допускає ;
-
Розглянемо автомат , у якому не визначено ні для яких . Тоді .
-
Розглянемо автомат , у якому функція визначена лише для пари , а саме: . Тоді .
Операції над мовами
Твердження: Якщо та , що визначають відповідно мови та , то скінченно-автоматними мовами будуть:
-
;
-
;
-
.
Доведення: в кожному випадку нам доведеться конструктивно побудувати відповідний скінчений автомат:
-
Побудуємо автомат такий, що :
-
, де — новий стан ;
-
Функцію визначимо таким чином:
-
Множина заключних станів:
Побудований таким чином автомат взагалі кажучи недетермінований.
Індукцією по показуємо, що тоді і тільки тоді, коли або .
-
-
Побудуємо автомат такий, що :
-
;
-
;
-
Функцію визначимо таким чином:
-
Множина заключних станів:
-
-
Побудуємо автомат такий, що :
-
, де — новий стан ;
-
Функцію визначимо таким чином:
-
Множина заключних станів .
-
Скінченні автомати та праволінійні граматики
Породжуюча граматика — це четвірка
де:
-
— скінченна множина — допоміжний алфавіт (нетермінали);
-
— скінченна множина — основний алфавіт (термінали);
-
— скінченна множина правил вигляду
-
— виділений нетермінал (аксіома).
Класифікація граматик Хомського
В залежності від структури правил граматики діляться на чотири типи:
-
Тип 0: граматики загального вигляду, коли правила не мають обмежень, тобто
-
Тип 1: граматики, що не укорочуються, коли обмеження на правила мінімальні, а саме:
-
Тип 2: контекстно-вільні граматики, коли правила в схемі мають вигляд:
-
Тип 3: скінченно-автоматні граматики, коли правила в схемі мають вигляд:
де , .
В класі скінченно-автоматних граматик виділимо так звані праволінійні граматики — це граматики, які в схемі Р мають правила вигляду:
де , .
Нескладно довести, що клас праволінійних граматик співпадає з класом граматик типу 3.
Мова породжена граматикою
Ланцюжок безпосередньо виводиться з ланцюжка (позначається ), якщо , та в схемі граматики є правило виду . Оскільки поняття “безпосередньо виводиться” розглядається на парах ланцюжків, то в подальшому символ буде трактуватися як бінарне відношення.
Ланцюжок виводиться з ланцюжка (позначається ), якщо існує скінчена послідовність виду . Або кажуть, що бінарне відношення — це рефлексивно-транзитивне замикання бінарного відношення .
Мова, яку породжує граматика (позначається ) — це множина термінальних ланцюжків:
Праволінійна граматика скінченний автомат
Теорема. Клас мов, що породжуються праволінійними граматиками, співпадає з класом мов, які розпізнаються скінченими автоматами.
Доведення. Спочатку покажемо, що для довільної праволінійної граматики можна побудувати скінчений автомат , такий що .
Розглянемо правила праволінійної граматики. Вони бувають двох типів: , і .
На основі правил граматики побудуємо схему нової граматики, яка буде еквівалентною початковій, а саме:
-
правила виду замінимо послідовністю правил
-
правила виду замінимо послідовністю правил
де — це нові нетермінали граматики .
Очевидно, що граматика буде еквівалентна граматиці .
Далі, на основі граматики побудуємо скінчений автомат , таким чином:
-
як імена станів автомата візьмемо нетермінали граматики ;
-
початковий стан автомата позначається аксіомою ;
-
функція визначається діаграмою переходів, яка будується на основі правил вигляду :
-
множина заключних станів скінченого автомата визначається так: .
Індукцією по довжині вхідного слова покажемо, що якщо , то :
-
База: : , тоді .
-
Перехід: нехай , тобто . Тоді та , де .
Доведення навпаки є очевидним.
Контрольні запитання
-
Які три базові скінченно-автоматні мови ви знаєте?
-
Доведіть, що мови з попереднього питання справді є скінченно-автоматними.
-
Які три операції над скінченно-автоматними мовами ви знаєте?
-
Доведіть, що результати операцій з попереднього питання справді є скінченно-автоматними.
-
Що таке породжуюча граматика?
-
Які чотири типи граматик за Хомським ви знаєте?
-
Що таке праволінійна граматика?
-
Дайте визначення безпосереднього виведення, виведення, породженої граматикою мови.
-
Доведіть, що скінченний автомат це майже праволінійна граматика.
(традиційні відповіді можна переглянути у коментарях у вихідному коді цієї сторінки)