Опубликован: 09.07.2007 | Уровень: профессионал | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 10:

Основные свойства контекстно-свободных языков

< Лекция 9 || Лекция 10: 123456 || Лекция 11 >

9.3. Свойства замкнутости класса линейных языков

Пример 9.3.1. Пусть \Sigma = \{ a , b , c \}. Язык \{ u c u \reverse \mid u \in \{ a , b \}^* \} является линейным, так как он порождается грамматикой

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

Пример 9.3.2. Рассмотрим алфавит \Sigma = \{ a , b , c \}. Язык

\{ a^m b^n c^k \mid 0 \leq m < n \commaand k \geq 0 \}
является линейным, так как он порождается грамматикой
\begin{align*}
S \; & {\to} \; S c , & T \; & {\to} \; a T b , \\
S \; & {\to} \; T , & T \; & {\to} \; T b , \\
& & T \; & {\to} \; b .
\end{align*}

Теорема 9.3.3. Если L1 и L2 - линейные языки над алфавитом \Sigma, то L_1 \cup L_2 тоже линейный язык.

Доказательство. Пусть язык L1 порождается линейной грамматикой \lalg N_1 , \Sigma , P_1 , S_1 \ralg и L2 порождается линейной грамматикой \lalg N_2 , \Sigma , P_2 , S_2 \ralg, где N_1 \cap N_2 = \varnothing. Тогда L_1 \cup L_2 порождается грамматикой

\lalg N_1 \cup N_2 \cup \{ T \},
 \Sigma,
 P_1 \cup P_2 \cup \{ T \tto S_1 ,\ T \tto S_2 \} ,
 T \ralg ,
где T \notin N_1 \cup N_2 \cup \Sigma.

Пример 9.3.4. Рассмотрим алфавит \Sigma = \{ a , b , c \}. Язык

L \peq \Sigma ^* \sminus
 \{ a^n b^n c^n \mid n \geq 0 \}
является линейным, поскольку
L \peq L_1 \cup L_2 \cup ( \Sigma ^* \sminus L_3 ) ,
где языки
L_1 \peq \{ a^m b^n c^k \mid m \neq n \commaand k \geq 0 \} ,\quad
 L_2 \peq \{ a^m b^n c^k \mid n \neq k \commaand m \geq 0 \}
являются линейными, а язык
L_3 \peq \{ a^m b^n c^k \mid m \geq 0 ,\ n \geq 0 \commaand k \geq 0 \}
является автоматным, и можно применить теоремы 9.3.3, 3.2.1, 2.4.1 и лемму 1.5.13.

Упражнение 9.3.5. Пусть \Sigma = \{ a , b , c \}. Является ли линейным язык \Sigma ^* \sminus \{ u c u \mid u \in \{ a , b \}^* \}?

Упражнение 9.3.6. Пусть \Sigma = \{ a , b , c \}. Является ли линейным язык \Sigma ^* \sminus \{ u c u \reverse \mid u \in \{ a , b \}^* \}?

Упражнение 9.3.7. Найти линейную грамматику, порождающую язык \{a,b,c\}^* \sminus L_1, где L1 порождается грамматикой

\begin{align*}
F \; & {\to} \; ba F aaa , \\
F \; & {\to} \; baa F b , \\
F \; & {\to} \; ba c aaa , \\
F \; & {\to} \; baa c b .
\end{align*}

< Лекция 9 || Лекция 10: 123456 || Лекция 11 >
Юлия Маковецкая
Юлия Маковецкая

Упражнение 2.1.25

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

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

Юрий Фролов
Юрий Фролов
Украина
Руслан Мухамедьяров
Руслан Мухамедьяров
Россия, Казань, КФУ