Конечный автомат
Конечный автомат (Finite-state automaton, Finite automation) — абстрактная машина, используемая для задания регулярных множеств. Конечный автомат состоит из входной ленты, входной головки и
управляющего устройства. Входная лента — это линейная последовательность клеток, или ячеек, каждая из которых
может содержать любой символ из
Работа конечного автомата представляет собой некоторую последовательность шагов (или тактов). Каждый такт определяется текущим состоянием управляющего устройства и входным символом, обозреваемым в данный момент входной головкой. Сам шаг состоит из изменения состояния управляющего устройства и сдвига входной головки на одну ячейку вправо. Для каждой текущей конфигурации в общем случае существует конечное множество возможных следующих шагов, любой из которых конечный автомат может сделать, исходя из этой конфигурации.
Недетерминированный конечный автомат
(или просто конечный автомат) — это пятерка
(1)
(2)
(3)
(4)
(5)
Конечный автомат
Любая пара
Tакт работы автомата
Автомат
Языком, определяемым (распознаваемым, допускаемым) автоматом
Часто бывает удобно использовать графическое представление
конечного автомата в виде так называемой диаграммы (или графа переходов) автомата — орграфа, вершины которого помечены символами состояний и в котором есть дуга
На рисунке приведены два конечных автомата, допускающих язык
См. также
Литература
- Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. — М.: Мир, 1978. — Т. 1,2.
- Касьянов В.Н. Лекции по теории формальных языков, автоматов и сложности вычислений. — Новосибирск: НГУ, 1995.
- Касьянов В.Н., Касьянова Е.В. Теория вычислений. — Новосибирск: НГУ, 2018.
- Касьянов В.Н., Поттосин И.В. Методы построения трансляторов. — Новосибирск: Наука. Сиб. отд-ние, 1986.