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

Слова, языки и грамматики

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >

1.2. Операции над языками

Определение 1.2.1. Пусть L_1 , L_2 \subseteq \Sigma ^*. Тогда

L_1 \cdot L_2 \rightleftharpoons 
\{ x y \mid x \in L_1, \; y \in L_2 \} .
Язык L_1 \cdot L_2 называется конкатенацией языков L1 и L2.

Пример 1.2.2. Если L1 = {a,abb} и L2 = {bbc,c}, то L_1 \cdot L_2 = \{ ac , abbc , abbbbc \}.

Упражнение 1.2.3. При каких положительных целых числах k, l, m, n существуют алфавит \Sigma, язык L_1 \subseteq \Sigma^* и язык L_2 \subseteq \Sigma^*, удовлетворяющие условиям | \Sigma | = k, |L1| = l, |L2| = m, | L_1 \cdot L_2 | = n

Определение 1.2.4. Пусть L \subseteq \Sigma ^*. Тогда

\begin{align*}
 L^0 &\rightleftharpoons \{ \varepsilon \} ,\\
 L^n &\rightleftharpoons
 \underbrace{ L \cdot \ldots \cdot L }_{n \; \text{раз}} \,,
 \; \text{если} \; n > 0 .
\end{align*}

Пример 1.2.5. Если L = {akbal | 0 < k < l}, то L2 = {akbalbam | 0 < k < l - 1, m > 1}.

Упражнение 1.2.6. Пусть \Sigma = \{ a , b \} и L = {aa,ab}. Найти L3.

Определение 1.2.7. Итерацией языка (Kleene closure) языка L (обозначение L* ) называется язык

\bigcup \limits_{ n \in \mathbb{N} } L^n.
Эта операция называется также звездочкой Клини (Kleene star, star operation).

Пример 1.2.8. Если \Sigma = \{ a , b \} и L = {aa,ab,ba,bb}, то

L^* = \{ w \in \Sigma ^* \mid
 | w | \; \vdots \; 2 \} .

Упражнение 1.2.9. Пусть \Sigma = \{ a , b , c , d \} и

L = \{ w \in \Sigma ^* \mid | w |_a = 1, \; | w |_c = 1 \} .
Верно ли, что abcdcacdcabbacba \in L^*

Упражнение 1.2.10. Существует ли такой язык L, что выполняется неравенство L^* \neq \{ x^n \mid x \in L ,\ n \geqslant 0 \}

Определение 1.2.11. Обращением или зеркальным образом слова w (обозначается wR ) называется слово, в котором символы, составляющие слово w, идут в обратном порядке.

Пример 1.2.12. Если w = baaca, то wR = acaab.

Определение 1.2.13. Пусть L \subseteq \Sigma ^*. Тогда

L \reverse \rightleftharpoons \{ w \reverse \mid w \in L \} .
Язык LR называется обращением языка L.

Упражнение 1.2.14. Существует ли такой язык L, что выполняется неравенство (L \reverse)^* \neq (L^*) \reverse?

Определение 1.2.15. Говорят, что слово x - префикс ( начало ) слова y (обозначение x \sqsubset y ), если y = xu для некоторого слова u.

Пример 1.2.16. Очевидно, что \varepsilon \sqsubset baa, b \sqsubset baa, ba \sqsubset baa и baa \sqsubset baa.

Определение 1.2.17. Пусть L \subseteq \Sigma ^*. Тогда через Pref(L) обозначается множество, состоящее из всех префиксов слов языка L:

\mathrm{Pref} ( L ) \rightleftharpoons 
\{ x \mid ( \exists y \in L )\, x \sqsubset y \} .
Множество Pref(L) называется множеством префиксов языка L.

Определение 1.2.18 Говорят, что слово x - суффикс ( конец ) слова y (обозначение x \sqsupset y ), если y = ux для некоторого слова u.

Определение 1.2.19. Пусть L \subseteq \Sigma ^*. Тогда через Suf(L) обозначается множество, состоящее из всех суффиксов слов языка L:

\mathrm{Suf} ( L ) \rightleftharpoons
\{ x \mid ( \exists y \in L )\, x \sqsupset y \} .
Множество Suf(L) называется множеством суффиксов языка L.

Определение 1.2.20. Говорят, что слово x - подслово (substring) слова y, если y = uxv для некоторых слов u и v.

Определение 1.2.21. Пусть L \subseteq \Sigma ^*. Тогда через Subw(L) обозначается множество, состоящее из всех подслов слов языка L. Множество Subw(L) называется множеством подслов языка L.

Определение 1.2.22. Слово a1a2...an (длины n \geqslant 0 ) называется подпоследовательностью (subsequence) слова y, если существуют такие слова u0, u1, ..., un, что u0a1u1a2...anun = y.

Замечание 1.2.23. Все подслова слова y являются также подпоследовательностями слова y.

Определение 1.2.24. Пусть L \subseteq \Sigma ^*. Тогда через Subseq(L) обозначается множество, состоящее из всех подпоследовательностей слов языка L. Множество Subseq(L) называется множеством подпоследовательностей языка L.

Пример 1.2.25. Рассмотрим язык L = {cba, c} над алфавитом {a, b, c}. Очевидно, что \mathrm{Subseq} ( L ) =
\{ \varepsilon , a , b , c , ba , ca , cb , cba \}.

Определение 1.2.26. Функция f \colon K \to L называется биекцией (bijection), если каждый элемент множества L является образом ровно одного элемента множества K (относительно функции f ).

Определение 1.2.27. Множества K и L называются равномощными (of equal cardinality), если существует биекция из K в L.

Упражнение 1.2.28. Существуют ли такие языки L1 и L2, что языки L_1 \cdot ( L_2 \reverse ) и L_1 \reverse \cdot L_2 неравномощны?

Упражнение 1.2.29. Существуют ли такие языки L1 и L2, что языки L_1 \reverse \cdot L_2 и L_2 \reverse \cdot L_1 неравномощны?

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

Упражнение 2.1.25

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

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

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