Замкнутость относительно гомоморфизмов и их обращений
Обратимся снова к свойствам замкнутости класса автоматных языков. Как мы уже установили с помощью конструкции произведения автоматов, этот класс замкнут относительно объединения, пересечения и разности (см. следствие 4.1.1). Из теоремы 5.1 непосредственно следует, что класс автоматных языков замкнут относительно операций конкатенации и итерации. Можно легко установить, что он также замкнут относительно дополнения.
Предложение 6.1. Пусть L - автоматный язык в алфавите ?. Тогда его дополнение - язык
также является автоматным.Действительно, достаточно заметить, что язык ?*, включающий все слова в алфавите ? является автоматным и что
.Определенная ниже операция гомоморфизма формализует идею посимвольного перевода слов одного алфавита в слова другого.
Определение 6.1. Пусть ? и Delta - два алфавита. Отображение
: ?* Delta* слов первого из них в слова второго называется гомоморфизмом, если- (?) = ?;
- для любых двух слов w1 и w2 в алфавите ? имеет место равенство (w1w2) = (w1)(w2).
Из этого определения непосредственно следует, что гомоморфизм однозначно определяется своими значениями на символах алфавита ?. Если w=w1w2 … wn, wi
? (1 i n), то (w) = (w1)(w2) … (wn).Пример 6.1.Пусть ? ={a, b, c}, Delta ={ 0, 1}, а гомоморфизм
определен на символах ? следующим образом: (a) =00, (b) =?, (c) =101.Тогда
(aca) = 0010100, (abcb) =00101, (bbb) = ?.Определение 6.2.
Пусть
: ?* Delta* - произвольный гомоморфизм и L - язык в алфавите ?. Образом (L) языка L при гомоморфизме называется язык (L)= { (w) | w L}, состоящий из образов всех слов языка L.Пусть L - язык в алфавите ?. Прообразом этого языка при гомоморфизме
называется язык -1(L)= { w ?* | (w) L}, состоящий из всех таких слов в алфавите ?, чьи образы при гомоморфизме попадают в L.Оказывается, что класс автоматных языков замкнут относительно операций гомоморфизма и обращения гомоморфизма (взятия прообраза)
Теорема 6.1. Пусть
: ?* ?* - произвольный гомоморфизм и L - автоматный язык в алфавите ?. Тогда и язык (L) вляется автоматным.Доказательство Пусть A=<?, Q, q0, F, ?> - ДКА, распознающий язык L. Построим по нему НКА M =<?, QM, q0M, FM, ?M>, распознающий язык (L). Идея этого построения проста: нужно каждый переход из состояния q в q' по букве a ? в автомате A превратить в переход из q в q' по слову (a) в автомате M.
Пусть ? = {a1, … , am}, Q= {q0, q1, …, qn} и (ai)= d1id2i … d{ki}i, dli ? (1 l ki) (если (ai) ?). Для каждого ai зафиксируем простой НКА Mi, распознающий язык {d1id2i … d{ki}i}, имеющий (ki +1) состояние p0i, p1i, …, p{ki}i и команды p{l-1}dli pl (1 l ki). ( Если (ai) = ?, то у Mi будут два состояния, соединенные ?-переходом). Теперь для каждой команды qj ai qr поместим в M между qj и qr автомат Mi (цепочку состояний p0i, p1i, …, p{ki}i). Чтобы состояния различных цепочек не склеивались, придадим им верхний индекс j, т.е. у каждого qj будет своя копия каждого из автоматов Mi. Для этого положим QM = Q { plji | 0 j n, 1 i m, 0 l ki }. Таким образом, pl{ji} - это l-ое состояние на пути из qj по "старой" букве ai. Программа ?M автомата M строится по программе A следующим образом. Для каждой команды вида qj ai qr из ? поместим в ?M следующие команды:
Таким образом, из qj автомат M по пустому переходу попадает в начальное состояние p0ji j-ой копии автомата Mi, затем проходит по слову (ai) и снова по пустому переходу попадает в qr.
Для завершения определения M положим q0M = q0 и FM = F.
Докажем теперь, что наше построение корректно, т.е., что (L)=( LA) = LM .
(L) LM. Заметим вначале, что если ? L, то q0 F и по определению q0 FM, следовательно (?)=? LM.
Пусть w=w1w2… wk L, ws ?. Тогда в диаграмме A имеется путь из q0 в некоторое заключительное состояние q' F, который несет слово w. Пусть это путь . Тогда для каждого 1 x k в ? имеется команда . Но из определения ?M следует, что тогда в автомате M имеется путь из в , несущий слово (wx). Объединив все такие пути, получим путь из из q0 в q' FM, несущий слово (w). Следовательно, (w) LM.
LM (L). Пусть слово u ?* принадлежит LM.
Покажем, что тогда для некоторого w L u =(w). Рассмотрим для этого путь в диаграмме M из q0 в q' FM, несущий слово u . Выделим на этом пути все состояния из Q. Пусть это будут по порядку состояния q0=q{j0}, q{j1}, … q{jk}= q'. Тогда слово u разбивается на k подслов: u=u1u2 … uk таких, что ux переводит в M состояние в
(1 x k). Покажем, что для каждого такого ux существует символ wx ? такой, что ux = (wx) и в ? имеется команда . Действительно, любой путь из в M начинается ?-переходом в некоторое состояние вида . Пусть это будет состояние на пути, который несет ux в . Далее этот путь обязательно будет проходить по состояниям вида и завершится ?-переходом из в состояние . Тогда из определения M следует, что ux = (ai) и в ? имеется команда . Положив wx=ai, получим, что ux = (wx) и u=(w1)(w2) … (wk) =(w), для слова w=w1w2 … wk ?*. При этом каждый символ wx этого слова переводит в автомате A состояние в . Поэтому в A существует путь из q0 в q' F, несущий слово w и, следовательно w L .