Замкнутость регулярных языков относительно различных операций — различия между версиями
MikhailOK (обсуждение | вклад) (→Основные операции) |
MikhailOK (обсуждение | вклад) м (→Основные операции) |
||
Строка 1: | Строка 1: | ||
==Основные операции== | ==Основные операции== | ||
− | Пусть <tex>L_1, L_2</tex> - регулярные языки над одним алфавитом <tex>\Sigma</tex>. Тогда следующие языки также являются регулярными: | + | Пусть <tex>L_1, L_2</tex> - [[Регулярные языки: два определения и их эквивалентность|регулярные языки]] над одним алфавитом <tex>\Sigma</tex>. Тогда следующие языки также являются регулярными: |
#<tex>L_1 \cup L_2</tex> | #<tex>L_1 \cup L_2</tex> | ||
#<tex>L_1 L_2</tex> | #<tex>L_1 L_2</tex> | ||
Строка 9: | Строка 9: | ||
#<tex>\overset{\leftarrow}{L_1}</tex> | #<tex>\overset{\leftarrow}{L_1}</tex> | ||
===Доказательство=== | ===Доказательство=== | ||
− | Свойства 1,2,3 непосредственно следуют из определения регулярных языков. | + | Свойства 1,2,3 непосредственно следуют из определения [[Регулярные языки: два определения и их эквивалентность|регулярных языков]]. |
− | При доказательстве дальнейших свойств воспользуемся эквивалентностью регулярных и автоматных языков. Пусть языки <tex>L_1</tex> и <tex>L_2</tex> распознаются автоматами <br /> <tex>A_1 = \langle \Sigma , Q_1 , s_1 , T_1 , \delta_1 : Q_1 \times \Sigma \rightarrow 2^{Q_1} \rangle </tex> и <tex>A_2 = \langle \Sigma , Q_2 , s_2 , T_2 , \delta_2 : Q_2 \times \Sigma \rightarrow 2^{Q_2} \rangle </tex> соответственно. | + | При доказательстве дальнейших свойств воспользуемся [[Теорема Клини (совпадение классов автоматных и регулярных языков|эквивалентностью регулярных и автоматных языков]]. Пусть языки <tex>L_1</tex> и <tex>L_2</tex> распознаются автоматами <br /> <tex>A_1 = \langle \Sigma , Q_1 , s_1 , T_1 , \delta_1 : Q_1 \times \Sigma \rightarrow 2^{Q_1} \rangle </tex> и <tex>A_2 = \langle \Sigma , Q_2 , s_2 , T_2 , \delta_2 : Q_2 \times \Sigma \rightarrow 2^{Q_2} \rangle </tex> соответственно. |
<ol start="4"> | <ol start="4"> |
Версия 07:34, 8 октября 2010
Основные операции
Пусть регулярные языки над одним алфавитом . Тогда следующие языки также являются регулярными:
-Доказательство
Свойства 1,2,3 непосредственно следуют из определения регулярных языков.
При доказательстве дальнейших свойств воспользуемся эквивалентностью регулярных и автоматных языков. Пусть языки и распознаются автоматами
и соответственно.
Инвертируем множество допускающих состояний: рассмотрим автомат
. Очевидно, он допускает те и только те слова, которые не допускает автомат .
При таком построении следует помнить, что если в исходном автомате было опущено дьявольское состояние, его нужно явно добавить и сделать допускающим.Следует из пунктов 1 и 4, т.к.
.
Автомат для пересечения языков можно построить явно, используя конструкцию произведения автоматов:
, где
Развернем все переходы назад и поменяем стартовое состояние с терминальными: рассмотрим НКА c -переходами , где ; .
Если в исходном автомате путь по из приводил в терминальное состояние, то в новом автомате существует путь по из этого терминального состояния в (и наоборот). Следовательно, этот автомат распознает в точности развернутые слова языка , и из эквивалентности язык -НКА и ДКА - регулярный.
Прямой и обратный гомоморфизмы
Определение: |
Отображение | , сохраняющее операцию конкатенации , называется гомоморфизмом.
Гомоморфизм однозначно задается значениями на алфавите:
.Определение: |
Образом языка | при гомоморфизме называется язык .
Определение: |
Прообразом языка | при гомоморфизме называется язык .
Утверждение: |
– регулярный , – гомоморфизм. Тогда – регулярный. |
Рассмотрим ДКА, распознающий . Заменим в нем все переходы по символам на переходы по их образам при гомоморфизме. Полученный автомат (с переходами по строкам) распознает в точности и имеет эквивалентный ДКА. |
Утверждение: |
– регулярный , – гомоморфизм. Тогда – регулярный. |
Рассмотрим ДКА, распознающий . Отследим для каждого состояния и символа строку : и положим в новом автомате (на том же множестве состояний). Автомат с построенной таким образом функцией переходов, очевидно, распознает слова языка и только их. |