Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Part3.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
317.44 Кб
Скачать

3.5 Магазинні автомати

Магазинний автомат – це власне кажучи ε-НСА з додаванням магазина

Рисунок 3.5 - Схема магазинного автомата

Магазин може читатися, до його вершини можуть додаватися символи, і вони ж можуть зніматися з вершини. Магазинний автомат може робити перехід на основі поточного стану, вхідного символа і символа на вершині магазина.

За один перехід автомат робить дії:

- читає і пропускає символ вхідного ланцюжка (якщо ε - символ не пропускається);

- переходить у новий стан, який може і не відрізнятися від поточного;

- заміняє символ на вершині магазина деяким ланцюжком.

Варіанти роботи магазина.

- Ланцюжок дорівнює ε, це відповідає зняттю з вершини магазина.

- Ланцюжок дорівнює символові, що був на вершині. Магазин не змінюється.

- Ланцюжок дорівнює довільному символові. Замінюється символ на вершині магазина.

- Ланцюжок дорівнює декільком символам, це відповідає поміщенню в магазин декількох символів.

Приклад 3.1 Мова, утворена паліндромами парної довжини з 0 і 1 ,

L = {w wR | w ( 0 | 1) },

де wR позначає обернений ланцюжок.

Стан q відповідає припущенню, що не досягнута середина слова. Символи читаються, а їх копії записуються в магазин.

Припущення про те, що досягнуто середину слова, викликає спонтанний перехід у q . У цьому стані вхідні символи порівнюються із символами на вершині магазина. При збігу магазинний символ віддаляється.

При спустошенні магазина виконується перехід у завершальний стан q .

Формальне визначення МП – автомата.

Запис містить 7 компонентів:

P = (Q, Σ, Г, δ, q , Z , F).

Тут

Q – множина станів;

Σ – множина вхідних символів;

Г – магазинний алфавіт;

(q, a, x) – функція переходів: q – стан; а – вхідний символ або ε ; Х – магазинний символ з Г. Вихід функції – пари (p, γ), де p – новий стан; γ – ланцюжок, що заміняє x;

q – початковий стан;

Z – початковий магазинний символ, “маркер дна”;

F – множина завершальних станів.

Повернемося до прикладу 3.1. Автомат P можна описати набором компонент

P =( {q , q , q }, {0, 1},{ 0, 1, Z }, δ, q , Z , { q } ),

де функція переходів має вигляд:

δ ( q , 0, Z ) = (q , 0Z );

δ ( q , 1, Z ) = (q , 1Z ) перехід за першим символом;

δ ( q , 0, 0) = (q , 00), δ ( q , 0, 1) = (q , 01),

δ ( q , 1, 0) = (q , 10), δ ( q , 1, 1) = (q , 11) – поміщення в магазин;

δ ( q , ε, Z ) = (q , Z ), δ ( q , ε ,0) = (q ,0),

δ ( q , ε , 1) = (q , 1) – спонтанний перехід;

δ ( q , 0, 0) = (q , ε), δ ( q , 1, 1) = (q , ε) – виштовхування з магазина;

δ ( q , ε, Z ) = (q , Z ) – перехід у завершальний стан.

Діаграма цього МП-автомата наведена на рис. 3.6.

Рисунок 3.6 - Діаграма переходів МП-автомата з прикладу 3.1

Наведемо приклад його роботи на ланцюжку 1111 (рис. 3.7).

Ми розглядали МП-автомати, що завершували роботу мовою L по досягненні завершального стану. Можна побудувати автомат, що завершує роботу при спустошенні магазина.

Якщо для деякої мови існує МП-автомат, що закінчує роботу по досягненні завершального стану, то існує і МП-автомат автомат для цієї мови, що завершує роботу при спустошенні магазина.

Справедливо і зворотне.

Клас контекстовільних мов відповідає класові мов, що допускаються МП-автоматами.

Становлять інтерес детерміновані МП-автомати (ДМП-автомати).

МП-автомат є детермінованим, якщо функція переходів має тільки одну пару значень для кожної трійки аргументів (при цьому, якщо значення δ (q, a, X) не порожнє, значення δ (q, ε , X) повинне бути порожнім).

Рисунок 3.7 - Робота МП-автомата на ланцюжку 1111

Якщо мова регулярна, вона є припустимою для деякого ДМП-автомата.

Мови ДМП-автоматів містять у собі всі регулярні мови (рис. 3.7).

Рисунок 3.8 - Співвідношення регулярних мов,

ДМП-мов і КВ-мов

Класи мов, що допускаються ДМП-автоматами по досягненні завершального стану і при спустошенні магазина, не збігаються.

Мови ДМП-автоматів мають однозначну граматику.

У той самий час існують мови з однозначною граматикою, що не є ДМП-мовами.

Наведемо деякі властивості контекстовільних мов.

Теорема (без доведення). Кожна контекстовільна мова породжується граматикою, усі продукції якої мають форму А → ВР або А → а, де А, В, P – змінні; а – термінал.

Ця форма називається нормальною формою Хомського.

Лема про розширення для контекстно-вільних мов. Нехай L – контекстовільна мова. Тоді існує така константа n, що якщо z – довільний ланцюжок довжини не менше n, то її можна подати у вигляді z = uvwxy, де

1) | vwx | ≤ n ;

2) vx ≠ ε ;

3) uviwxiy L для всіх і 0.

Лема про розширення часто використовується при доведенні того, що мова не є контекстовільною.

Контекстовільні мови замкнені щодо операцій об'єднання, конкатенації, замикання і суперпозиції.

Завдання до розділу 3

1 Написати граматику, яка для алфавіту {0,1} генерує всі рядки, включаючи порожній.

2 Є граматика з продукціями

PROGRAM begin DECS ; STATS end

DECS D ; DECS | D

STATS S ; STATS | S .

Написати ліве породження для

begin D ; D ; S ; S end

3 Побудувати контекстовільну граматику, що генерує множину ланцюжків { 0n1n | n ≥ 1}.

4 Подана граматика породжує мову регулярного вирзу { 0*1(0|1)* }:

S A1B , A 0A | ε , B 0B | 1B | ε.

Записати ліве породження для ланцюжка 00101.

5 Подана граматика породжує мову регулярного виразу {0*1(0|1)* }:

S A1B , A 0A | ε , B 0B | 1B | ε.

Записати праве породження для ланцюжка 1001.

6 Подана граматика породжує мову регулярного виразу {0*1(0|1)* }:

S A1B , A 0A | ε , B 0B | 1B | ε.

Записати ліве і праве породження для ланцюжка 00011.

7 Подана граматика породжує мову регулярного виразу {0*1(0|1)* }:

S A1B , A 0A| ε , B 0B|1B| ε.

Записати ліве і праве породження для ланцюжка 00010.

65

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