Опубликован: 26.09.2006 | Доступ: свободный | Студентов: 1800 / 485 | Оценка: 4.25 / 4.12 | Длительность: 17:09:00
ISBN: 978-5-9556-0066-6
Специальности: Программист, Математик
Лекция 13:

Формальные языки

Автоматное задание языков

Недетерминированные конечные автоматы с \varepsilon -переходами. Недетерминированным конечным автоматом с \varepsilon -переходами над алфавитом A называется набор

\eq*{
{\Re} = (Q, A, q_0, F, \varphi),
}

где Qмножество состояний, Aалфавит, q_0 — начальное состояние (q_0 \in Q), F — множество финальных состояний ( F \subseteq Q) и \varphi\colon Q \x (A\cap
\{\varepsilon\}) \to 2^Q — переходная функция.

Такой автомат можно представить нагруженным ориентированным мультиграфом (диаграммой) следующим образом. Вершинами графа объявить состояния, то есть элементы множества Q, и если q'\in \varphi (q,
x), то из состояния q в состояние q' провести дугу, помеченную символом x \in (A \cup \{\varepsilon\}).

Язык L(\Re), порождаемый автоматом \Re, состоит из всех слов, которые можно прочитать, двигаясь, начиная со стартового состояния q_0, по ребрам и читая приписанные им символы. Чтение заканчивается в любом из финальных состояний множества F не обязательно при первом попадании туда. При чтении символов следует воспринимать \varepsilon как пустое слово.

Пример. Пусть алфавит A = \{a, b, c\}, Q = \{q_0, q_1, q_2\}, F = \{q_1\} и переходная функция \varphi задана таблицей

\varepsilon a b c
q_0 \{q_1\} \{q_1,q_2\} \varnothing \varnothing
q_1 \varnothing \varnothing \{q_0\} \{q_0\}
q_2 \{q_1\} \varnothing \varnothing \varnothing

Диаграмма автомата изображена на рис. 13.1


Рис. 13.1.

Недетерминированные конечные автоматы без \varepsilon -переходов. Недетерминированным конечным автоматом без \varepsilon -переходов над алфавитом A называется набор

\eq*{
\Re = (Q, A, q_0, F, \varphi),
}

где Qмножество состояний, Aалфавит, q_0 — начальное состояние (q_0 \in Q), F — множество финальных состояний (F \subseteq Q) и {\varphi\colon Q \x A \to 2^Q} — переходная функция. Такой автомат также можно представить нагруженным ориентированным мультиграфом (диаграммой). Отличие в том, что дуги теперь могут быть помечены только символами алфавита A.

Язык L(\Re), порождаемый таким автоматом \Re, состоит из всех слов, которые можно прочитать, двигаясь, начиная со стартового состояния q_0, по ребрам и читая приписанные им символы. Чтение заканчивается в любом из финальных состояний множества F не обязательно при первом попадании туда.

Детерминированные конечные автоматы. Детерминированным конечным автоматом над алфавитом A называется набор

\eq*{
\Re = (Q, A, q_0, F, \varphi),
}
где Qмножество состояний, Aалфавит, q_0 — начальное состояние (q_0 \in Q), F — множество финальных состояний (F \subseteq Q) и \varphi\colon Q \x A \to Q — переходная функция.

Такой автомат также можно представить нагруженным ориентированным мультиграфом (диаграммой). Отличие от недетерминированного автомата состоит в том, что из каждого состояния выходит ровно одна дуга, помеченная конкретной буквой алфавита A.

Язык L(\Re), порождаемый таким автоматом \Re, определяется аналогично тому, как это было для недетерминированных автоматов.

Теорема. Классы языков, задаваемые детерминированными конечными автоматами, недетерминированными конечными автоматами с \varepsilon -переходами, недетерминированными конечными автоматами без \varepsilon -переходов, регулярными выражениями совпадают.

Доказательство. Для доказательства достаточно по регулярному выражению научиться строить равносильный недетерминированный конечный автомат с \varepsilon -переходами (синтез), затем избавляться от \varepsilon -переходов, затем детерминировать и, наконец, по детерминированному автомату строить регулярное выражение (анализ).

Синтез. Регулярное выражение \varnothing представляется автоматом

\eq*{
\Re = (Q, A, q_0, F, \varphi),
}
где Q = \{q_0, q_1\}, алфавит A — произволен, q_0 — начальное состояние, F = \{q_1\} — множество финальных состояний и переходная функция \varphi задается соотношениями
\eq*{
(\forall x \in A \cup \{\varepsilon\}) \varphi (q_0, x)
= \varnothing,\quad \varphi(q_1, x) = \varnothing.}

Регулярное выражение \lm представляется автоматом \Re {=} (Q{,} A{,} q_0{,} F{,} \varphi), где Q = \{q_0, q_1\}, алфавит A — произволен, q_0 — начальное состояние, F = \{q_1\} — множество финальных состояний и переходная функция \varphi задается соотношениями \varphi(q_0, \varepsilon) = \{q_1\}, \varphi(q_1,
\varepsilon)
= \varnothing и {(\forall x \in A) \varphi (q_0, x) =
\varnothing}, \varphi (q_1, x) = \varnothing.

Регулярное выражение a (a \in A) представляется автоматом \Re = (Q, A, q_0, F, \varphi), где Q = \{q_0, q_1\}, q_0 — начальное состояние, F = \{q_1\} — множество финальных состояний и переходная функция \varphi задается соотношениями \varphi(q_0, a) = \{q_1\},\ (\forall x \in (A \cup
\{\varepsilon \})\backslash  \{a\}) \varphi (q_0, x) = \varnothing и (\forall x \in (A \cup
\{\varepsilon\})) \varphi (q_1, x) = \varnothing.

Для регулярного выражения (P \vee S), где P и S — регулярные выражения, можно построить задающий автомат \Re = (Q, A, q_0, F, \varphi) следующим образом. Пусть автомат \Re_1 = (Q_1, A, q_1, F_1, \varphi_1) задает L(P), а автомат \Re_2 = (Q_2, A, q_2, F_2,
\varphi_2) задает L(S). Не уменьшая общности, можно считать, что F_1 = \{f_1\} и F_2 = \{f_2\} — одноэлементные и что q_1 \ne f_1, q_2 \ne f_2. Положим Q =
Q_1 \cup Q_2 \cup
\{q_0, f\}, где q_0, f — новые состояния, и поясним построение автомата \Re на языке диаграмм. Состояние q_0 соединим дугами со стартовыми состояниями q_1, q_2 автоматов \Re_1, \Re_2 и пометим их символом \varepsilon. Состояния f_1 и f_2 автоматов \Re_1, \Re_2 соединим дугами с новым состоянием f и также пометим их символом \varepsilon. Начальным состоянием построенного автомата объявим q_0, а финальным — f.

Антон Сиротинкин
Антон Сиротинкин

на стр 6, лекции 3, Очевидно "Ck <= модуль(Gk(е))*b(k+1)" (1) - , подскажите что значит "модуль" и почему это очевидно...