Московский государственный университет имени М.В.Ломоносова
Опубликован: 09.07.2007 | Доступ: свободный | Студентов: 2485 / 1007 | Оценка: 4.56 / 4.26 | Длительность: 20:40:00
ISBN: 978-5-9556-0062-8
Специальности: Математик
Лекция 3:

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

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >

2.4. Характеризация праволинейных языков

Теорема 2.4.1. Каждый автоматный язык является праволинейным.

Без ограничения общности можно предположить, что исходный язык задан конечным автоматом \langle Q , \Sigma , \Delta , I , F \rangle, где Q \cap \Sigma = \varnothing и I = {q0}. Положим N = Q, S = q0 и

P = \{ p \to x q \mid \langle p , x , q \rangle \in \Delta \} \cup
 \{ p \to \varepsilon \mid p \in F \} .

Пример 2.4.2. Язык, распознаваемый конечным автоматом из примера 2.1.2, порождается грамматикой

\begin{align*}
K_1 \; & {\to} \; aaa K_1 , \\
K_1 \; & {\to} \; ab K_2 , \\
K_1 \; & {\to} \; b K_2 , \\
K_2 \; & {\to} \; K_1 , \\
K_2 \; & {\to} \; \varepsilon .
\end{align*}

Теорема 2.4.3. Каждый праволинейный язык является автоматным.

Доказательство. Без ограничения общности можно предположить, что исходный язык задан праволинейной грамматикой, не содержащей правил вида A \to u, где u \in \Sigma ^+. Положим Q = N, I = {S}, F = \{ A \in N \mid ( A \to \varepsilon ) \in P \} и \Delta = \{ \langle A , u , B \rangle \mid ( A \to u B ) \in P \}.

Пример 2.4.4. Пусть \Sigma = \{ a , b \}. Рассмотрим грамматику

\begin{align*}
S \; & {\to} \; aa , \\
S \; & {\to} \; T , \\
T \; & {\to} \; baT , \\
T \; & {\to} \; a .
\end{align*}
Она эквивалентна грамматике
\begin{align*}
S \; & {\to} \; aaE , \\
S \; & {\to} \; T , \\
T \; & {\to} \; baT , \\
T \; & {\to} \; aE , \\
E \; & {\to} \; \varepsilon .
\end{align*}
Язык, порождаемый этими грамматиками, распознается конечным автоматом \langle Q , \Sigma , \Delta , I , F \rangle, где Q = {S,T,E}, I = {S}, F = {E} и
\Delta = \{
\langle S , aa , E \rangle ,\
\langle S , \varepsilon , T \rangle ,\
\langle T , ba , T \rangle ,\
\langle T , a , E \rangle
\} .
\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
  *=[o][F-]{S}
 \ar @`{+/l16mm/} [] ^{}
 \ar  "1,2"  ^{\varepsilon}
 \ar  "2,2"  _{aa}
& *=[o][F-]{T}
 \rloop{0,1} ^{ba}
 \ar  "2,2"  ^{a}
\\
  %
& *=[o][F=]{E}
}

Упражнение 2.4.5. Найти праволинейную грамматику, порождающую язык \{ w \in \{a,b\}^* \mid | w |_a \  \vdots \ 2 ,\ | w |_b\  \vdots \  2\}

Упражнение 2.4.6. Существует ли такая праволинейная грамматика G, что язык L(G)R не порождается ни одной праволинейной грамматикой, имеющей столько же правил, сколько грамматика G?

Упражнение 2.4.7. Существует ли такая праволинейная грамматика G, что язык L(G)R не порождается ни одной праволинейной грамматикой с количеством правил n + 1, где n - количество правил в грамматике G?

Упражнение 2.4.8. Существует ли такая праволинейная грамматика G с тремя вспомогательными символами, что язык L(G)R не порождается ни одной праволинейной грамматикой с тремя вспомогательными символами?

2.5.Нормальная форма праволинейных грамматик

Определение 2.5.1. Праволинейная грамматика в нормальной форме ( автоматная грамматика, регулярная грамматика, finite-state grammar) - это праволинейная грамматика, в которой каждое правило имеет вид A \to \varepsilon, A \to a, или A \to a B, где A \in N, B \in N, a \in \Sigma.

Теорема 2.5.2. Каждая праволинейная грамматика эквивалентна некоторой праволинейной грамматике в нормальной форме.

Доказательство. Применим последовательно теорему 2.4.3, лемму 2.3.3 и воспользуемся конструкцией из доказательства теоремы 2.4.1.

Теорема 2.5.3. Если праволинейный язык не содержит пустого слова, то он порождается некоторой праволинейной грамматикой в нормальной форме без \varepsilon -правил.

Упражнение 2.5.4. Найти праволинейную грамматику, эквивалентную грамматике

\begin{align*}
S \; & {\to} \; E, & E \; & {\to} \; a, \\
S \; & {\to} \; b E, & E \; & {\to} \; b S . \\
S \; & {\to} \; ca E, 
\end{align*}

Упражнение 2.5.5. Найти праволинейную грамматику в нормальной форме без \varepsilon -правил, порождающую язык

\{ a^k b^m c^n \mid k \geq 0 ,\ m \geqslant 1 ,\ n \geqslant 0 \} .

Упражнение 2.5.6. Найти праволинейную грамматику в нормальной форме без \varepsilon -правил, порождающую язык

\{a,b\}^* - (\{ a^n \mid n \geqslant 0 \} \cup \{ b^n \mid n \geqslant 0 \}) .

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Юлия Маковецкая
Юлия Маковецкая

Упражнение 2.1.25

Евгения Гунченко
Евгения Гунченко

Сдавала тест экстерном, результат получен 74 после принятия данного результата и соответственно оплаты курса, будет ли выдано удостоверение о повышении квалификации?