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

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

Зміст:

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

Магазинний автомат — це сімка , де:

Поточний стан магазинного автомата описується конфігурацією. Конфігурація магазинного автомата — це трійка , де , , . Серед конфігурацій магазинного автомата виділимо дві:

Такт роботи (позначається ) магазинного автомата — це перехід від однієї конфігурації до іншої, а точніше:

Робота магазинного автомата (позначається ) — це послідовність тактів роботи, а точніше: тоді і тільки тоді, коли

Операції та можна трактувати як бінарні відношення на відповідних кортежах. Тоді робота магазинного автомата — це рефлексивно-транзитивне замикання бінарного відношення .

Мова магазинного автомату

Мова, яку розпізнає магазинний автомат — позначається — це множина слів які задовольняють умові:

Зафіксуємо наступні результати теорії магазинних автоматів:

  1. Не існує алгоритму перетворення недетермінованого магазинного автомата у еквівалентний йому детермінований магазинний автомат.

  2. Існує алгоритм, який вирішує проблему порожньої множини для конкретного магазинного автомата.

  3. Існує алгоритм, який за час, пропорційний перевіряє, чи належить мові, яку розпізнає магазинний автомат .

  4. Клас мов, які розпізнаються магазинними автоматами, співпадає з класом мов, що породжуються КС-граматиками.

На основі сформульованих вище результатів для лівосторонньої стратегії виводу в запропонуємо наступне твердження: для довільної КС-граматики можна побудувати магазинний автомат такий, що . При цьому автомат буде моделювати лівосторонню стратегію виводу в .

Магазинний автомат за КС-граматикою

Нехай — КС-граматика. Побудуємо відповідний магазинний автомат :

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

Очевидно, якщо слово виводиться за кроків, то МП-автомат зробить кроків та розпізнає . Таким чином, .

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

  1. Що таке магазинний автомат?

  2. Що таке конфігурація магазинного автомату?

  3. Які конфігурації магазинного автомату називаються початковою і заключною?

  4. Що таке такт роботи і робота магазинного автомату?

  5. Яку мову розпізнає магазинний автомат?

  6. Що таке проблема порожньої множини ?

  7. Як за КС-граматикою побудувати магазинний автомат такий, що ?

  8. Яку стратегію виведення в реалізує побудований у попередньому питанні автомат, і яка обчислювальна складність алгоритму розпізнавання слова ?

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

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

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