Основные определения: алфавит, слово, язык, конкатенация, свободный моноид слов; операции над языками — различия между версиями
Shersh (обсуждение | вклад)  (примеры гомоморфизмов)  | 
				Shersh (обсуждение | вклад)   | 
				||
| Строка 99: | Строка 99: | ||
* гомоморфизм цепочек: <tex> \varphi: \Sigma_1 \to \Sigma_2^* </tex>, действует от каждого символа строки из языка, то есть <tex> \varphi(\overline{c_1 c_2 ... c_n}) = \varphi(c_1)\varphi(c_2) ... \varphi(c_k) </tex>. Регулярные языки [[Замкнутость регулярных языков относительно различных операций#st1 | замкнуты]] относительно гомоморфизма цепочек  | * гомоморфизм цепочек: <tex> \varphi: \Sigma_1 \to \Sigma_2^* </tex>, действует от каждого символа строки из языка, то есть <tex> \varphi(\overline{c_1 c_2 ... c_n}) = \varphi(c_1)\varphi(c_2) ... \varphi(c_k) </tex>. Регулярные языки [[Замкнутость регулярных языков относительно различных операций#st1 | замкнуты]] относительно гомоморфизма цепочек  | ||
* ''солнечный язык'' из детских игр (когда после каждой гласной в слове надо добавлять букву "С" и эту же гласную) может быть представлен в виде гомоморфизма языков, где все согласные символы отображаются сами в себя, а гласный символ <tex> z </tex> переходит в <tex> zCz </tex>    | * ''солнечный язык'' из детских игр (когда после каждой гласной в слове надо добавлять букву "С" и эту же гласную) может быть представлен в виде гомоморфизма языков, где все согласные символы отображаются сами в себя, а гласный символ <tex> z </tex> переходит в <tex> zCz </tex>    | ||
| − | *   | + | * циклический гомоморфизм: зафиксируем порядок символов в алфавите, будем отображать каждый символ в следующий, а последний {{---}} в первый. Обратным гомоморфизмом будет отображение каждого символа в предыдущий.  | 
== Ссылки ==  | == Ссылки ==  | ||
Версия 16:12, 16 ноября 2013
Содержание
Базовые определения
| Определение: | 
| Алфавит (англ. alphabet) — конечное непустое множество элементов, называемых символами (англ. symbols). Условимся обозначать алфавит большой греческой буквой . | 
Наиболее часто используются следующие алфавиты:
- — бинарный или двоичный алфавит.
 - — множество строчных букв английского алфавита.
 
| Определение: | 
| Слово (англ. string) или цепочка — конечная последовательность символов некоторого алфавита. | 
| Определение: | 
| Пустая цепочка — цепочка, не содержащая ни одного символа. Эту цепочку, обозначаемую , можно рассматривать как цепочку в любом алфавите. | 
| Определение: | 
| Длина цепочки — число символов в цепочке. Длину некоторой цепочки обычно обозначают . | 
| Определение: | 
| — множество цепочек длины над алфавитом . | 
| Определение: | 
| — множество всех цепочек над алфавитом . | 
| Определение: | 
| Язык (англ. language) над алфавитом — некоторое подмножество . Иногда такие языки называют формальными (англ. formal), чтобы подчеркнуть отличие от языков в привычном смысле. | 
Отметим, что язык в  не обязательно должен содержать цепочки, в которые входят все символы . Поэтому, если известно, что  является языком над , то можно утверждать, что  — это язык над любым алфавитом, являющимся надмножеством .
| Определение: | 
| Пусть . Тогда или обозначает их конкатенацию (англ. concatenation), т.е. цепочку, в которой последовательно записаны цепочки и . | 
Множество строк с операцией конкатенации образует свободный моноид.
Операции над языками
Пусть и — языки. Тогда над ними можно определить следующие операции.
- Теоретико-множественные операции:
- — объединение,
 - — пересечение,
 - — разность,
 - — дополнение.
 
 - Конкатенация: .
 - Конкатенация с обратным языком: ; конкатенация с обратным словом: .
 - Степень языка:
 - Замыкание Клини: .
 - Гомоморфизм
 
Примеры
- — язык состоит из последовательностей нулей, последовательностей единиц и пустой строки.
 - — аналогично предыдущему, но не содержит пустую строку.
 - — содержит все двоичные векторы и пустую строку.
 - Если — язык десятичных представлений всех простых чисел, то язык будет содержать десятичные представления простых чисел, не начинающихся с тройки.
 - .
 
Гомоморфизм языков
| Определение: | 
Пусть даны два алфавита . Гомоморфизмом называется такое отображение , что:
  | 
| Определение: | 
| Образом языка  при гомоморфизме  (иногда называют прямым гомоморфизмом) называется язык .  Заметим, что будет гомоморфизмом моноидов и  | 
| Определение: | 
| Прообразом языка при гомоморфизме (иногда называют обратным гомоморфизмом) называется язык . | 
Примеры
- тривиальный гомоморфизм: , тогда
 - гомоморфизм цепочек: , действует от каждого символа строки из языка, то есть . Регулярные языки замкнуты относительно гомоморфизма цепочек
 - солнечный язык из детских игр (когда после каждой гласной в слове надо добавлять букву "С" и эту же гласную) может быть представлен в виде гомоморфизма языков, где все согласные символы отображаются сами в себя, а гласный символ переходит в
 - циклический гомоморфизм: зафиксируем порядок символов в алфавите, будем отображать каждый символ в следующий, а последний — в первый. Обратным гомоморфизмом будет отображение каждого символа в предыдущий.
 
Ссылки
- Wikipedia — Formal language
 - Wikipedia — Kleene star
 - Wikipedia — String homomorphism
 - Википедия — Формальный язык
 - Википедия — Звезда Клини
 - M.Lothaire "Combinatorics on words"
 - Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — М.:Издательский дом «Вильямс», 2002. — С. 45.