{% include mathjax %}
Зміст:
Магазинний автомат
-
$$Q = {q_0, q_1, \ldots, q_{m - 1}}$$ — множина станів магазинного автомату; -
$$\Sigma = {a_1, a_2, \ldots, a_n}$$ — основний алфавіт; -
$$\Gamma = {\gamma_1, \gamma_2, \ldots, \gamma_k}$$ — допоміжний алфавіт (алфавіт магазина); -
$$q_0 \in Q$$ — початковий стан магазинного автомату; -
$$j_0 \in \Gamma^\star$$ — початковий вміст магазину; -
$$\sigma: Q \times (\Sigma \cup {\varepsilon}) \times \Gamma \to 2^{Q \times \Gamma^\star}$$ . -
$$F \subseteq Q$$ — множина заключних станів автомата$$M$$ .
Поточний стан магазинного автомата
-
початкова конфігурація
$$(q_0, \omega, j_0)$$ , де$$q_0 \in Q$$ ,$$\omega$$ — вхідне слово$$(\omega \in \Sigma^\star)$$ ,$$j_0 \in \Gamma^\star$$ ; -
заключна конфігурація
$$(q_f, \varepsilon, \varepsilon)$$ ,$$q_f \in F$$ . В загальній теорії магазинних автоматів іноді як заключну конфігурацію розглядають$$(q_f, \varepsilon, j_f)$$ , де$$(q_f, j_f)$$ — фіксована пара. Можна довести, що визначення заключної конфігурації виду$$(q_f, \varepsilon, \varepsilon)$$ не зменшує потужності класу магазинних автоматів.
Такт роботи (позначається
Робота магазинного автомата
Операції
Мова, яку розпізнає магазинний автомат
Зафіксуємо наступні результати теорії магазинних автоматів:
-
Не існує алгоритму перетворення недетермінованого магазинного автомата у еквівалентний йому детермінований магазинний автомат.
-
Існує алгоритм, який вирішує проблему порожньої множини
$$L(M)$$ для конкретного магазинного автомата. -
Існує алгоритм, який за час, пропорційний
$$O(n^3)$$ перевіряє, чи належить$$\omega \in \Sigma^\star$$ мові, яку розпізнає магазинний автомат$$M$$ . -
Клас мов, які розпізнаються магазинними автоматами, співпадає з класом мов, що породжуються КС-граматиками.
На основі сформульованих вище результатів для лівосторонньої стратегії виводу
Нехай
-
$$Q = {q_0}$$ — множину станів автомата складає один стан$$q_0$$ ; -
$$\Gamma = N \cup \Sigma$$ — допоміжний алфавіт; -
$$j_0 = S$$ — початковий вміст магазина; -
функцію
$$\sigma$$ визначимо так:- якщо
$$A \mapsto \omega_1 \mid \omega_2 \mid \ldots \mid \omega_p$$ належить$$P$$ , то
$$ \sigma(q_0, \varepsilon, A)={(q_0, \omega_1), (q_0, \omega_2), \ldots, (q_0, \omega_p)}. $$
- також поповнимо множину значень функції
$$\sigma$$ наступними значеннями:
$$ \sigma(q_0, a_i, a_i) = {(q_0, \varepsilon)}, \quad a_i \in \Sigma. $$
- якщо
Для слова
-
коли
$$x_1$$ — термінал$$a_1$$ (тобто$$\omega = a_1 \omega_1$$ ), тоді МП-автомат виконає наступний такт:$$(q_0, a_1 \omega_1, a_1 x_2 \ldots x_k) \models (q_0, \omega_1, x_2 \ldots x_k)$$ ; -
коли
$$x_1$$ — нетермінал, тоді в схемі$$P$$ граматики$$G$$ виберемо правило виду$$x_1 \mapsto y_1 y_2 \ldots y_l$$ , зробимо наступний крок безпосереднього виведення:$$S \Rightarrow y_1 \ldots y_l x_2 \ldots x_k$$ . При таких умовах автомат перейде в наступну конфігурацію:$$ (q_0, \omega, x_1 x_2 \ldots x_k) \models (q_0, \omega, y_1 y_2 \ldots y_l x_2 \ldots x_k). $$
Очевидно, якщо слово
-
Що таке магазинний автомат?
-
Що таке конфігурація магазинного автомату?
-
Які конфігурації магазинного автомату називаються початковою і заключною?
-
Що таке такт роботи і робота магазинного автомату?
-
Яку мову розпізнає магазинний автомат?
-
Що таке проблема порожньої множини
$$L(M)$$ ? -
Як за КС-граматикою
$$G$$ побудувати магазинний автомат$$M$$ такий, що$$L(G) = L(M)$$ ? -
Яку стратегію виведення
$$\omega$$ в$$G$$ реалізує побудований у попередньому питанні автомат, і яка обчислювальна складність алгоритму розпізнавання слова$$\omega$$ ?
(традиційні відповіді можна переглянути у коментарях у вихідному коді цієї сторінки)