Конечный автомат

Материал из WikiGrapp

Конечный автомат (Finite-state automaton, Finite automation) — абстрактная машина, используемая для задания регулярных множеств. Конечный автомат состоит из входной ленты, входной головки и управляющего устройства. Входная лента — это линейная последовательность клеток, или ячеек, каждая из которых может содержать любой символ из Σ. В каждый данный момент входная головка читает, или, как иногда говорят, обозревает одну входную ячейку, а управляющее устройство находится в одном состоянии из конечного множества Q, т.е. имеет конечную память.

Работа конечного автомата представляет собой некоторую последовательность шагов (или тактов). Каждый такт определяется текущим состоянием управляющего устройства и входным символом, обозреваемым в данный момент входной головкой. Сам шаг состоит из изменения состояния управляющего устройства и сдвига входной головки на одну ячейку вправо. Для каждой текущей конфигурации в общем случае существует конечное множество возможных следующих шагов, любой из которых конечный автомат может сделать, исходя из этой конфигурации.

Недетерминированный конечный автомат (или просто конечный автомат) — это пятерка M=(Q,Σ,δ,q0,F), в которой

(1) Q — конечное множество состояний;

(2) Σ — конечное множество допустимых входных символов;

(3) δ — отображение множества Q×Σ в множество подмножеств Q, называемое функцией переходов;

(4) q0Q — выделенное начальное состояние;

(5) FQ — множество заключительных состояний.

Конечный автомат M называется детерминированным, если множество δ(q,a) содержит не более одного состояния для любых qQ и aΣ. Если δ(q,a) всегда содержит точно одно состояние, то автомат M называется полностью определенным.

Любая пара (q,ω)Q×Σ конфигурацией автомата M. Конфигурация (q0,ω) называется начальной, а пара (q,e), где qF, называется заключительной (или допускающей).

Tакт работы автомата M представляется бинарным отношением M, определенным на конфигурациях. Если δ(q,a) содержит p, то (q,aω)M(p,ω) для всех ωΣ. Отношения M+ и M являются соответственно транзитивным замыканием и рефлексивным и транзитивным замыканием отношения M.

Автомат M допускает цепочку ωΣ, если (q0,ω)M(q,e) для некоторого qF.

Языком, определяемым (распознаваемым, допускаемым) автоматом M (обозначается L(M)), называется множество входных цепочек, допускаемых автоматом M, т.е. L(M)={ω:ωΣ и (q0,ω)M(q,e) для некоторого qF}.


Часто бывает удобно использовать графическое представление конечного автомата в виде так называемой диаграммы (или графа переходов) автомата — орграфа, вершины которого помечены символами состояний и в котором есть дуга (p,q), если существует такой символ aΣ, что qδ(p,a). Кроме того, дуга (p,q) помечается списком, состоящим из таких a, что qδ(p,a).

Finite-state automation.gif

На рисунке приведены два конечных автомата, допускающих язык {anbm:n>0,m>0}: M1 — недетерминированный, M2 — детерминированный полностью определенный.

См. также

Литература

  • Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. — М.: Мир, 1978. — Т. 1,2.
  • Касьянов В.Н. Лекции по теории формальных языков, автоматов и сложности вычислений. — Новосибирск: НГУ, 1995.
  • Касьянов В.Н., Касьянова Е.В. Теория вычислений. — Новосибирск: НГУ, 2018.
  • Касьянов В.Н., Поттосин И.В. Методы построения трансляторов. — Новосибирск: Наука. Сиб. отд-ние, 1986.