Конечный автомат: различия между версиями

Материал из WikiGrapp
Перейти к навигации Перейти к поиску
м (Защищена страница «Конечный автомат» ([edit=autoconfirmed] (бессрочно) [move=autoconfirmed] (бессрочно)))
Нет описания правки
Строка 22: Строка 22:
<math>M=(Q,\Sigma,\delta,q_0,F)</math>, в которой
<math>M=(Q,\Sigma,\delta,q_0,F)</math>, в которой


(1) <math>Q</math> --- конечное множество ''состояний'';
(1) <math>Q</math> --- конечное множество [[Состояние автомата|''состояний'']];


(2) <math>\Sigma</math> --- конечное множество допустимых ''входных
(2) <math>\Sigma</math> --- конечное множество допустимых ''входных
Строка 30: Строка 30:
множество подмножеств <math>Q</math>, называемое ''функцией переходов'';
множество подмножеств <math>Q</math>, называемое ''функцией переходов'';


(4) <math>q_0\in Q</math> --- выделенное ''начальное состояние'';
(4) <math>q_0\in Q</math> --- выделенное [[Начальное состояние автомата|''начальное состояние'']];


(5) <math>F\subseteq Q</math> --- множество ''заключительных состояний''.
(5) <math>F\subseteq Q</math> --- множество [[аключительное состояние автомата|''заключительных состояний'']].


'''Конечный автомат''' <math>M</math> называется ''детерминированным'',
'''Конечный автомат''' <math>M</math> называется [[Детерминированный конечный автомат|''детерминированным'']],
если множество <math>\delta(q,a)</math> содержит не более одного
если множество <math>\delta(q,a)</math> содержит не более одного
состояния для любых <math>q\in Q</math> и <math>a\in\Sigma</math>. Если
состояния для любых <math>q\in Q</math> и <math>a\in\Sigma</math>. Если
<math>\delta(q,a)</math> всегда содержит точно одно состояние, то
<math>\delta(q,a)</math> всегда содержит точно одно состояние, то
автомат <math>M</math> называется ''полностью определенным''.
автомат <math>M</math> называется [[Полностью определенный конечный автомат|''полностью определенным'']].


Любая пара <math>(q,\omega)\in Q\times\Sigma^*</math>
Любая пара <math>(q,\omega)\in Q\times\Sigma^*</math>
называется ''конфигурацией'' автомата <math>M</math>. Конфигурация
[[Конфигурация конечного автомата|''конфигурацией'']] автомата <math>M</math>. Конфигурация
<math>(q_0,\omega)</math> называется ''начальной'', а пара <math>(q,e)</math>,
<math>(q_0,\omega)</math> называется [[Начальная конфигурация конечного автомата|''начальной'']], а пара <math>(q,e)</math>,
где <math>q\in F</math>, называется ''заключительной'' (или ''допускающей'').
где <math>q\in F</math>, называется [[Заключительная конфигурация конечного автомата|''заключительной'']] (или [[Допускающая конфигурация конечного автомата|''допускающей'']]).


Tакт работы автомата <math>M</math> представляется бинарным отношением
Tакт работы автомата <math>M</math> представляется бинарным отношением
Строка 63: Строка 63:


Часто бывает удобно использовать графическое представление
Часто бывает удобно использовать графическое представление
'''конечного автомата'''  в виде так называемой ''диаграммы''
'''конечного автомата'''  в виде так называемой [[Диаграмма конечного автомата|''диаграммы'']]
(или ''графа переходов'') автомата ---
(или [[Граф переходов автомата|''графа переходов'']]) автомата ---
[[орграф|''орграфа'']], [[вершина|''вершины'']] которого помечены
[[орграф|''орграфа'']], [[вершина|''вершины'']] которого помечены
символами состояний и в котором есть дуга <math>(p,q)</math>, если
символами состояний и в котором есть дуга <math>(p,q)</math>, если

Версия от 02:06, 5 мая 2009

Конечный автомат (Finite-state 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).

FSA.gif

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

См. также

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

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

Литература

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

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

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