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

Дополнительные свойства автоматных языков

< Лекция 4 || Лекция 5: 12 || Лекция 6 >

4.2*. Локальные языки

Определение 4.2.1. Гомоморфизм h \colon \Sigma_1^* \to \Sigma_2^* называется побуквенным (length-preserving), если |h(a)| = 1 для каждого a \in \Sigma_1.

Замечание 4.2.2. Гомоморфизм h \colon \Sigma_1^* \to \Sigma_2^* является побуквенным тогда и только тогда, когда |h(w)| = |w| для каждого слова w \in \Sigma_1^*.

Определение 4.2.3. Язык L \subseteq \Sigma^* называется локальным, если существуют такие языки L_1 \subseteq \Sigma^*, L_2 \subseteq \Sigma^*, L_3 \subseteq \Sigma^*, что

  1. языки L1 и L2 содержат только однобуквенные слова;
  2. язык L3 содержит только двухбуквенные слова;
  3. L = ( ( L_1 \cdot \Sigma^* ) \cap ( \Sigma^* \cdot L_2 ) ) -
 ( \Sigma^* \cdot L_3 \cdot \Sigma^* ).

Лемма 4.2.4. Каждый локальный язык является автоматным.

Очевидно, что языки L1, L2 и L3 в определении 4.2.3 являются конечными. Остается применить замечание 2.1.19 и теоремы 3.1.1 и 3.2.1 (напомним, что разность языков выражается через пересечение и дополнение).

Теорема 4.2.5. Пусть L - язык над алфавитом \Sigma и L не содержит пустого слова. Язык L является автоматным тогда и только тогда, когда существуют такие алфавит \Sigma_0, локальный язык L_0 \subseteq \Sigma_0^* и побуквенный гомоморфизм h \colon \Sigma_0^* \to \Sigma^*, что L = h(L0).

Доказательство. Достаточность следует из леммы 4.2.4 и теоремы 4.1.1.

Для доказательства необходимости рассмотрим конечный автомат \langle Q , \Sigma , \Delta , I , F \rangle с однобуквенными переходами, задающий язык L. В качестве алфавита \Sigma_0 возьмем множество \Delta. Положим

\begin{align*}
 L_1 &= \{ \lp p , a , q \rp \mid
 \lp p , a , q \rp \in \Delta \commaand p \in I \} ,\\
 L_2 &= \{ \lp p , a , q \rp \mid
 \lp p , a , q \rp \in \Delta \commaand q \in F \} ,\\
 L_3 &=
 \{ \lp p_1 \!, a_1 \!, q_1 \rp \lp p_2 , a_2 , q_2 \rp \mid
 \lp p_1 \!, a_1 \!, q_1 \rp \squeeze{\in} \Delta ,\
 \lp p_2 , a_2 , q_2 \rp \squeeze{\in} \Delta
 \commaand q_1 \squeeze{\neq} p_2 \}
\end{align*}
и h ( \lp p , a , q \rp ) = a для каждого \lp p , a , q \rp \in \Delta.

Пример 4.2.6. Пусть \Sigma \peq \{ a , b , c \}. Рассмотрим конечный автомат M2 из примера 3.1.3 и обозначим L = L(M2). Применим конструкцию из доказательства теоремы 4.2.5 к языку L. Для удобства заменим \lp 4 , c , 4 \rp на d, \lp 4 , a , 5 \rp на e и \lp 5 , c , 5 \rp на f. Получим алфавит \Sigma_0 \peq \{ d , e , f \} и локальный язык

L_0 = ( ( \{ d , e \} \cdot \Sigma_0^* ) \cap
 ( \Sigma_0^* \cdot \{ e , f \} ) ) \sminus
 ( \Sigma_0^* \cdot \{ df , ed , ee , fd , fe \} \cdot \Sigma_0^* ) .
Можно доказать, что
L_0 = \{ d^m e f^n \mid m \geq 0 ,\ n \geq 0 \} .
Побуквенный гомоморфизм h задается равенствами h(d) = c, h(e) = a и h(f) = c. Легко проверить, что действительно L = h(L0).

Упражнение 4.2.7. Пусть \Sigma = \{a,b,c,d\}. Существует ли такой побуквенный гомоморфизм h \colon \Sigma^* \farrow \Sigma^*, что h(abc) = bac и h(da) = da?}

Упражнение 4.2.8. Является ли локальным язык

\{ (ab)^n \mid n \geq 1 \}
над алфавитом \Sigma = \{a,b\}?

Упражнение 4.2.9. Является ли локальным язык

\{ aa u \mid u \in \{a,b\}^* \}
над алфавитом \Sigma = \{a,b\}?

Упражнение 4.2.10. Является ли локальным язык

\{ b u a \mid u \in \{a,b,c\}^* \}
над алфавитом \Sigma = \{a,b,c\}?

4.3. Длины слов в автоматных языках

Определение 4.3.1. Пусть \cala \subseteq \mathbb{N}, m \in \mathbb{N} и m > 0. Множество \cala называется заключительно периодическим (ultimately periodic) с периодом m, если выполнено условие

( \exists n_0 \in \mathbb{N} ) \, ( \forall n \geq n_0 ) \,
( n \in \cala \liff n + m \in \cala ) .

Лемма 4.3.2. Пусть \cala \subseteq \mathbb{N}. Тогда равносильны следующие утверждения:

  1. множество \cala является заключительно периодическим ;
  2. найдутся такие положительное целое число m и конечные множества \calm \subseteq \mathbb{N} и \calk \subseteq \{ 0 , 1 , \ldots , m - 1 \}, что
    \cala =
 \{ k \in \mathbb{N} \mid ( k \mybmod m ) \in \calk \} \sminus \calm ;
  3. множество \cala является объединением конечного семейства арифметических прогрессий.

Теорема 4.3.3. Язык L над однобуквенным алфавитом {a} является автоматным тогда и только тогда, когда множество \{ k \in \mathbb{N} \mid a^k \in L \} является заключительно периодическим.

Доказательство. Для доказательства необходимости достаточно рассмотреть детерминированный конечный автомат, распознающий язык L.

Теорема 4.3.4. Если язык L является автоматным, то множество \{ | w | \mid w \in L \} является заключительно периодическим.

Доказательство. Рассмотрим конечный автомат, распознающий язык L. Заменим все символы в метках переходов на символ a. Осталось применить теорему 4.3.3 к полученному автоматному языку над однобуквенным алфавитом {a}.

Упражнение 4.3.5. Существует ли такой автоматный язык L над алфавитом {a}, что язык \{ a^n \mid a^{n^2} \in L \} не является автоматным?

Упражнение 4.3.6. Существует ли такой автоматный язык L над алфавитом {a}, что язык \{ a^n \mid a^{2^n} \in L \} не является автоматным?

Упражнение 4.3.7. Существует ли такой автоматный язык L1 над алфавитом \Sigma, что язык

L_2 \peq \{ w \in \Sigma ^* \mid w x \in L_1 \commaand | x | = 2^{ | w | }
 \mathspace\text{для некоторого слова}\mathspace
 x \squeeze{\in} \Sigma ^* \}
не является автоматным?

Упражнение 4.3.8. Существует ли такой автоматный язык L над алфавитом {a,b}, что язык \{ a^{2^n} \mid a^n \notin L \} не является автоматным?

Упражнение 4.3.9. Существует ли такой автоматный язык L над алфавитом {a,b}, что язык \{ a^n \mid a^{n^3} \notin L \} не является автоматным?

< Лекция 4 || Лекция 5: 12 || Лекция 6 >
Юлия Маковецкая
Юлия Маковецкая

Упражнение 2.1.25

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

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

Виктор Мерзляков
Виктор Мерзляков
Россия, Краснодар, Кубгту
Дмитрий Заболотнов
Дмитрий Заболотнов
Россия, Краснодар