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

4.7.3. Лінійно-обмежені автомати

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

Визначення 4.28 Машина Тьюрінга M =(Q, A, #, , q0, F) називається лінійно-обмеженим автоматом, якщо існує число k, що для будь якого ланцюжка v A* довжини n, з умови #q0v# |–* #w1q w2# (qQ, w1, w2A*) випливає, що |w1 w2| kn.

Наведену умову важко перевірити, маючи машину Тьюрінга, тому наведене визначення часто спрощують, вимагаючи, щоб k=1, тобто, щоб голівка машини Тьюрінга не могла записувати нові символи за межами вхідного ланцюжка. Є й інші варіанти визначення лінійно-обмежених автоматів.

Використовуючи методи, наведені в попередньому підрозділі, можемо за лінійно-обмеженим автоматом побудувати еквівалентну породжуючу граматику типу 1, і навпаки, за граматикою типу 1 побудувати лінійно-обмежений автомат. Таким чином, справедливе наступне твердження.

Теорема 4.5. За кожним лінійно-обмеженим автоматом можна побудувати еквівалентну йому породжуючу граматику типу 1, і навпаки, за кожною породжуючою граматикою типу 1 можна побудувати еквівалентний їй лінійно-обмежений автомат.

Говорячи більш просто, теорема стверджує, що клас лінійно-обмежених автоматів еквівалентний класу породжуючих граматик типу 1.

4.7.4. Магазинні автомати

Магазинні автомати (автомати з магазинною пам’яттю, МП-автомати, стекові автомати) широко використовуються в програмуванні, бо дозволяють моделювати різні важливі алгоритми, які пов’язані з компіляцією та інтерпретацією мов програмування, обробки складних структур даних – дерев, списків і т. ін. Такі автомати можна розглядати як обмежені машини Тьюрінга, що мають вхідну стрічку, на якій голівка може тільки читати символи і рухатися тільки в один бік, та робочу стрічку, яку відповідна голівка може обробляти лише з однієї сторони. Як і в попередніх випадках є різні варіанти визначень магазинних автоматів. Наведемо тут просте екстенсіональне визначення, яке разом з тим є еквівалентним іншим визначенням за класом мов, що розпізнаються.

Визначення 4.29. Магазинний автомат – це шістка M =(Q, A, Γ, , q0, F), де

  • Q – скінченна множина станів,

  • A – скінченний вхідний алфавіт (QA=),

  • Γ – скінченний магазинний алфавіт,

  •  – скінченне відношення переходів (скінченне відображення :QAQ*),

  • q 0 – початковий стан із Q,

  • F – підмножина фінальних (заключних) станів із Q.

Виконання команди виду (q, a, Z)(p, ) означає, що знаходячись у стані q, та оглядаючи символ a на вхідній стрічці і символ Z у магазині, автомат переходить у стан p, стирає символ a та пересуває голівку до наступного символу на вхідній стрічці, а замість символу Z записує у магазин ланцюжок . Зауважимо, що в інших модифікаціях магазинних автоматів перехід у новий стан може відбуватися без стирання символу із вхідної стрічки (так званий -перехід).

Конфігурацію магазинного автомату можна задати як трійку (q, w, ), де qQ, wA*, *). Відношення безпосереднього переходу |– задається так: (q, aw, Z)|– (p, w, ), якщо команда (q, a, Z)(p, ) належить .

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

Для нас важливим є наступне твердження.

Теорема 4.6. За кожним магазинним автоматом можна побудувати еквівалентну йому породжуючу граматику типу 2 (контекстно-вільну граматику), і навпаки, за кожною породжуючою граматикою типу 2 можна побудувати еквівалентний їй магазинний автомат.

Зважаючи на те, що синтаксис мов програмування, як правило, задається граматиками типу 2, теорема стверджує, що алгоритми обробки програм можуть базуватися на магазинних автоматах.

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