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

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

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

9.7*. Теорема Парика

Замечание 9.1.7. В этом разделе предполагается, что зафиксирован некоторый линейный порядок на алфавите \Sigma. Пусть \Sigma \peq \{ a_1 , \ldots , a_n \}.

Определение 9.7.2. Через \cou будем обозначать функцию из \Sigma ^* в \mathbb{N} ^n, определенную следующим образом: \cou ( w ) \mymathrel{\bydef} \lp | w |_{a_1} , \ldots , | w |_{a_n}
\rp. Аналогично, каждому языку L \subseteq \Sigma ^* ставится в соответствие множество \cou ( L ) \subseteq \mathbb{N} ^n, определенное следующим образом:

\cou ( L ) \bydef \{ \cou ( w ) \mid w \in L \} .

Пример 9.7.3. Пусть \Sigma = \{ a_1 , a_2 \} и L = {a1,a1a2a2,a2a2a1}. Тогда \cou ( L ) = \{ \lp 1 , 0 \rp , \lp 1 , 2 \rp \}.

Определение 9.7.4. Пусть B \subseteq \mathbb{N} ^n и P \subseteq \mathbb{N} ^n. Тогда через \linear ( B , P ) обозначается множество

\{ b + p_1 + \ldots + p_k \mid b \in B ,\ k \geq 0 ,\
 p_1 , \ldots , p_k \in P \} .
При этом множество B называется системой предпериодов множества L(B,P). Множество P называется системой периодов множества L(B,P).

Определение 9.7.5. Множество A \subseteq \mathbb{N} ^n называется линейным (linear), если A = L(B,P) для некоторых конечных множеств B и P.

Определение 9.7.6. Множество A \subseteq \mathbb{N} ^n называется полулинейным (semilinear), если оно является объединением конечного числа линейных множеств.

Теорема 9.7.7 (Теорема Парика). Если язык L \subseteq \Sigma ^* является контекстно-свободным, то множество \cou ( L ) является полулинейным.

Доказательство можно найти в [Гин, с. 207-211].

Пример 9.7.8. Пусть \Sigma = \{ a , b \}. Рассмотрим язык L \peq \{ a^m b^n \mid m > n \rusor m \mathspace\text{простое}
\}. Можно проверить, что множество \cou ( L ) не является полулинейным. Следовательно, язык L не является контекстно-свободным.

Теорема 9.7.9. Если множество A \subseteq \mathbb{N} ^n является полулинейным, то существует такой автоматный язык L, что A = \cou ( L ).

Доказательство. Докажем это для произвольного линейного множества A = L(B,P) (на полулинейные множества утверждение распространяется по теореме 3.1.1). Рассмотрим конечный автомат M = \lalg Q , \Sigma , \Delta , I , F \ralg, где Q = {1,2}, I = {1}, F = {2} и

\begin{multiline*}
 \Delta =
 \{ \lp 1 , a_1 ^{k_1} \ldots a_n ^{k_n} , 2 \rp
 \mid \lp k_1 , \ldots , k_n \rp \in B \} \cup
\\ \cup
 \{ \lp 2 , a_1 ^{k_1} \ldots a_n ^{k_n} , 2 \rp
 \mid \lp k_1 , \ldots , k_n \rp \in P \} .
\end{multiline*}
Очевидно, что \cou ( L ( M ) ) = \linear ( B , P ).

Замечание 9.7.10. Теорема 9.3.1 является следствием теорем 9.7.7 и 9.7.9.

Упражнение 9.7.11. Является ли контекстно-свободным язык \{ a^{m^2} b^n \mid m \geq 0 ,\ n \geq 0 \} \cup
 \{ a^m b^n \mid 0 \leq n < m \}

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

Упражнение 2.1.25

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

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

Олег Гуреев
Олег Гуреев
Россия
Илья Константинов
Илья Константинов
Россия, Краснодар