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

Материал из WikiGrapp
Перейти к навигации Перейти к поиску

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

FiniteStateAutomation.gif


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

Недетерминированный конечный автомат (или просто конечный автомат) --- это пятерка 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).


См. также

Преобразователь,

Теорема о детерминизации.

Литература

[Ахо-Ульман],

[Касьянов/95],

[Касьянов-Поттосин]