Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NikitchenkoNEWNEW.doc
Скачиваний:
30
Добавлен:
08.11.2019
Размер:
2.99 Mб
Скачать

4.9.2. Видалення -правил

Визначення 4.35. Назвемо КВ-граматику G=(N, T, P, S) граматикою без -правил (або нескорочуваною), якщо Р не містить -правил, тобто правил виду A →.

Лема 4.6 За кожною КВ-граматикою можна побудувати еквівалентну їй (з точністю до порожнього ланцюжка – -еквівалентну) граматику без -правил.

Доведення. Нехай дана КВ-граматика G=(N, T, P, S), що породжує мову L(G). Проведемо серію перетворень множини P. Якщо множина P містить правила B→Aβ і A→ для деяких A, BN, , β(NT)*, то додамо правило B→β в P. Повторюємо цю процедуру поки множина правил не стабілізується. Далі виключимо із множини P всі правила вигляду A→.

Наведений алгоритм можна уточнити за допомогою наступних індуктивних визначень.

  1. P0=P

  2. P i={B→β є правила B→AβР, A→Pi-1}  R i-1 (i=1,2, …).

Оскільки множина правил є скінченною, а праві частини нових правил коротші, то формула для визначення Pi задає монотонне за і відображення. Тому існує k (k0), що Pk=Pk+1. Інакше кажучи, послідовність P0, P1, P2, … стабілізується на k-му кроці. Покладемо P=Pk\{A→Pk} .

Одержана граматика G=(N, T, P, S) породжує мову L(G)\ {}.

Дійсно, кожен вивід у граматиці G, який не породжує порожнє слово, може бути промодельований у граматиці G, що легко доводиться індукцією по довжині виводу. Так само можна промоделювати виводи в G виводами в G, використовуючи замість модифікованих правил виду B→β початкові правила виду B→Aβ з подальшим виводом порожнього ланцюжка з A.

Приклад 4.20. Розглянемо граматику G з правилами

SaSb

SbSa

S→

Застосувавши до цієї граматики описаний метод видалення -правил, отримаємо граматику G з правилами

SaSb

SbSa

Sab

Sba,

яка еквівалентна з точністю до порожнього ланцюжка граматиці G.

4.9.3. Нормальна форма Хомського

Визначення 4.36. Назвемо КВ-граматику G=(N, T, P, S) граматикою у нормальній формі Хомського, якщо її правила мають вигляд S→, Aa, ABC для деяких A, B, CN, aT.

Лема 4.7. За кожною КВ-граматикою можна побудувати еквівалентну їй граматику у нормальній формі Хомського.

Доведення. Нехай дана КВ-граматика G=(N, T, P, S). Проведемо ряд перетворень цієї граматики так, що породжувана нею мова залишиться незмінною. Спочатку побудуємо еквівалентну граматику G=(N, T, P, S) без -правил.

Далі замінимо у всіх правилах кожен термінальний символ a на новий нетермінальний символ N(a) і додамо до множини P правила N(a)→a для всіх aT.

Видалимо правила вигляду AA1A2An, де n>2, замінюючи його на наступний ряд нових правил AA1N(A2An), N(A2An)→ A2N(A3An), …, N(An-1An)→ An-1An (при цьому додаються нові нетермінальні символи N(A2An), N(A3An), …, N(An-1An)).

Якщо для деяких і (NT)* множина містить правила AB, B→, але не містить правила A→, то додамо це правило в P. Повторюємо цю процедуру, доки можливо. Після цього видалимо із множини P всі правила вигляду AB.

Нарешті, змінимо S на S, та додамо правила S→, SS в тому випадку, коли мова L(G) містить порожній ланцюжок.

Приклад 4.21. Граматика S, SabSc еквівалентна наступній граматиці в нормальній формі Хомського: S, SAB, BCD, DSE, Cb, Aa, Ec.

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