Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИСТЕМНЕ ПРОГРАМУВАННЯ ТА ОС.doc
Скачиваний:
9
Добавлен:
28.10.2018
Размер:
503.3 Кб
Скачать
  1. Стекові автомати. Представлення, операції, принцип роботи. Магазинний автомат (ма)

Такий автомат має обмежений набір операцій зі стрічкою, а саме:

  1. Дописати символ  в кінці робочої зони, і пересунутись вправо.

  2. Пересунутись вліво, і витерти символ під голівкою (замінити на λ).

За допомогою автомата з двома магазинами можна промоделювати роботу машини Тьюрінга.

Магазин з унарним алфавітом називається лічильником. Два лічильники можуть промоделювати роботу магазину.

Стековий автомат (са)

Аналогічний МА, але крім цього вміє читати символи з середини стрічки.

Організація автомата з магазинною пам'яттю

АМП як робочу пам'ять використовує стек (магазин). Така пам'ять підтримує тільки обмежені операції доступу, що є достатніми для розв'язання складних задач, включаючи і задачі розпізнавання ланцюжків. Автомат з магазинною пам'яттю визначається наступними п'ятьма об'єктами:

  1. Кінцевою множиною вхідних символів, що включає маркер кінця (┤).

  2. Кінцевою множиною магазинних символів, що включають маркер дна (С).

  3. Кінцевою множиною станів, що включає початковий стан

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

5. Початковим умістом магазина, що містить маркер дна і ланцюжок магазинних символів (можливо порожній).

Автомат з магазинною пам'яттю називається розпізнавачем, якщо він має ще й два виходи: "Допустити" та "Відкинути".

Операції автомата

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

  1. "Виштовхнути" - виштовхує зі стека верхній символ (будемо також використовувати скорочене позначення "↑").

  2. "Заштовхнути А" - вштовхує в стек магазинний символ А (будемо також використовувати скорочене позначення "↓А").

  3. "Замінити XYZ" - використовується для скорочення запису, коли необхідно виштовхнути верхній символ і замість нього вштовхнути кілька інших (у даному випадку X, Y, Z). Еквівалент: ↑↓X↓Y↓Z (скорочено позначимо: ↕ XYZ).

Перехід АМП з одного стану в інший вказується явно операцією "Стан t", де t - новий стан автомата (будемо скорочувати текст даної операції до "[t]").

Зсув вхідної голівки на один символ вправо щодо вхідної стрічки задається операцією "Зсув" (скоротимо до "→"). Після її виконання поточним символом стає наступний символ на вхідній стрічці. Іншою операцією над вхідною голівкою є "Тримати", яка не змінює становище вхідної голівки до наступного кроку (можна просто не писати, якщо немає зсуву).

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