Замкнутость регулярных языков относительно различных операций — различия между версиями
| MikhailOK (обсуждение | вклад) м (→Доказательство) | MikhailOK (обсуждение | вклад)   (→Прямой и обратный гомоморфизмы) | ||
| Строка 47: | Строка 47: | ||
| Гомоморфизм однозначно задается значениями на алфавите: <tex>\varphi(\overline{c_1 c_2 \ldots c_k}) = \varphi(c_1) \varphi(c_2)\ldots \varphi(c_k)</tex>. | Гомоморфизм однозначно задается значениями на алфавите: <tex>\varphi(\overline{c_1 c_2 \ldots c_k}) = \varphi(c_1) \varphi(c_2)\ldots \varphi(c_k)</tex>. | ||
| {{Определение | {{Определение | ||
| − | |definition= | + | |definition=Образом языка <tex>L \subset \Sigma_1^*</tex> при гомоморфизме <tex>\varphi: \Sigma_1^* \rightarrow \Sigma_2^*</tex> называется язык <tex>\varphi (L) \overset{\underset{\mathrm{def}}{}}{=} \lbrace \varphi (x) | x \in L \rbrace</tex>. | 
| }} | }} | ||
| {{Определение | {{Определение | ||
| − | |definition= | + | |definition=Прообразом языка <tex>L \subset \Sigma_2^*</tex> при гомоморфизме <tex>\varphi: \Sigma_1^* \rightarrow \Sigma_2^*</tex> называется язык <tex>\varphi^{-1} (L) \overset{\underset{\mathrm{def}}{}}{=} \lbrace x | \varphi (x) \in L \rbrace</tex>. | 
| + | }} | ||
| + | |||
| + | {{Утверждение | ||
| + | |id=st1 | ||
| + | |statement= | ||
| + | <tex>L \subset \Sigma_1^*</tex> – регулярный , <tex>\varphi:\Sigma_1^* \rightarrow \Sigma_2^* </tex> – гомоморфизм. Тогда  <tex>\varphi(L)</tex> – регулярный. | ||
| + | |proof= | ||
| + | Рассмотрим [[Детерминированные_конечные_автоматы|ДКА]], распознающий <tex>L</tex>. Заменим в нем все переходы по символам на переходы по их образам при гомоморфизме. Полученный автомат (с переходами по строкам) распознает в точности <tex>\varphi(L)</tex> и [[Автоматы_с_eps-переходами._Eps-замыкание|имеет эквивалентный ДКА]]. | ||
| + | }} | ||
| + | |||
| + | {{Утверждение | ||
| + | |id=st1 | ||
| + | |statement= | ||
| + | <tex>L \subset \Sigma_2^*</tex> – регулярный , <tex>\varphi:\Sigma_1^* \rightarrow \Sigma_2^* </tex> – гомоморфизм. Тогда  <tex>\varphi^{-1}(L)</tex> – регулярный. | ||
| + | |proof= | ||
| + | Рассмотрим [[Детерминированные_конечные_автоматы|ДКА]], распознающий <tex>L</tex>. Отследим для каждого состояния <tex>u</tex> и символа <tex>c</tex> строку <tex>\varphi(c)</tex>: <tex> \langle u,\varphi(c) \rangle \vdash^* \langle v,\varepsilon \rangle</tex> и положим <tex>\delta (u,c) = v</tex> в новом автомате (на том же множестве состояний). Автомат с построенной таким образом функцией переходов, очевидно, распознает слова языка <tex>\varphi^{-1}(L)</tex> и только их. | ||
| }} | }} | ||
Версия 07:03, 8 октября 2010
Основные операции
Пусть - регулярные языки над одним алфавитом . Тогда следующие языки также являются регулярными:
Доказательство
Свойства 1,2,3 непосредственно следуют из определения регулярных языков.
При доказательстве дальнейших свойств воспользуемся эквивалентностью регулярных и автоматных языков. Пусть языки  и  распознаются автоматами 
  и  соответственно.
- Инвертируем множество допускающих состояний: рассмотрим автомат . Очевидно, он допускает те и только те слова, которые не допускает автомат . 
 При таком построении следует помнить, что если в исходном автомате было опущено дьявольское состояние, его нужно явно добавить и сделать допускающим.
- Следует из пунктов 1 и 4, т.к. . 
 Автомат для пересечения языков можно построить явно, используя конструкцию произведения автоматов:- , где 
 
 
 
 
- . Соответствующий автомат строится как произведение автоматов для языков и 
Прямой и обратный гомоморфизмы
| Определение: | 
| Отображение , сохраняющее операцию конкатенации , называется гомоморфизмом. | 
Гомоморфизм однозначно задается значениями на алфавите: .
| Определение: | 
| Образом языка при гомоморфизме называется язык . | 
| Определение: | 
| Прообразом языка при гомоморфизме называется язык . | 
| Утверждение: | 
|  – регулярный ,  – гомоморфизм. Тогда   – регулярный. | 
| Рассмотрим ДКА, распознающий . Заменим в нем все переходы по символам на переходы по их образам при гомоморфизме. Полученный автомат (с переходами по строкам) распознает в точности и имеет эквивалентный ДКА. | 
| Утверждение: | 
|  – регулярный ,  – гомоморфизм. Тогда   – регулярный. | 
| Рассмотрим ДКА, распознающий . Отследим для каждого состояния и символа строку : и положим в новом автомате (на том же множестве состояний). Автомат с построенной таким образом функцией переходов, очевидно, распознает слова языка и только их. | 
