Тверской государственный университет
Опубликован: 21.08.2007 | Доступ: свободный | Студентов: 1610 / 191 | Оценка: 5.00 / 5.00 | Длительность: 14:18:00
ISBN: 978-5-94774-714-0
Специальности: Программист, Математик
Лекция 6:

Свойства замкнутости класса автоматных языков. Неавтоматные языки

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Пример 6.2. Пусть алфавиты \Sigma, \Delta и гомоморфизм \phi определены как выше в примере 6.1. Рассмотрим язык L={ w | число букв а в слове w нечетно }.

На следующем рисунке показана диаграмма ДКА A, распознающего язык L, и диаграммы автоматов Ma для \varphi (a) =00, Mb для \varphi (b) =\varepsilon и Mc для \varphi (c) =101.


Рис. 6.1.

Рис. 6.2.

Подставив в A вместо a -переходов автомат Ma, вместо b -переходов автомат Mb и вместо c -переходов автомат Mc, получим представленный на рис. 6.2 недетерминированный автомат M, распознающий язык \varphi (L). На этом рисунке каждая из \varepsilon -петель в состояниях q0 и q1 заменяет по три \varepsilon -перехода, связанных с Mb.

Отметим, что конструкция автомата M в теореме 6.1 удобна для доказательства, но несколько избыточна. Без труда можно сократить в ней все \varepsilon -переходы, склеив начальные и заключительные состояния автоматов Mi с соответствующими состояниями автомата A. Например, в автомате на рис. 6.2 можно объединить начальные состояния p00 и p001 с q0, заключительные состояния p201 и p313 с q1 и т.п.

Одним из интересных частных случаев гомоморфизма является проекция.

Определение 6.3. Пусть \Delta  \subset  \Sigma. Проекцией языка L в алфавите \Sigma на подалфавит \Delta называется язык PROJ_{\Delta }(L) = \{  w | w получено из некоторого слова v\in  L вычеркиванием всех символов, не принадлежащих алфавиту \Delta \}.

Определим гомоморфизм \pi : \Sigma ^{*} \to  \Delta ^{*} следующим образом: \pi (a)=a, если a \in  \Delta и \pi (a)=\varepsilon, если a \notin  \Delta. Тогда для всякого языка L в алфавите \Sigma имеет место равенство PROJ_{\Delta } (L) = \pi (L). Отсюда и из предыдущей теоремы 6.1 получаем замкнутость класса автоматных языков относительно проекции.

Предложение 6.2. Для любых алфавитов \Delta и \Sigma таких, что \Delta  \subset  \Sigma, и любого автоматного языка L в алфавите \Sigma проекция PROJ_{\Delta }(L) также является автоматным языком.

Отметим, что для проекции конструкция автомата M для PROJ_{\Delta } (L) по ДКА A для L существенно упрощается: достаточно в A все переходы по символам из \Sigma  \setminus  \Delta заменить на \varepsilon -переходы.

Следующая теорема устанавливает замкнутость класса автоматных языков относительного обращения гомоморфизмов.

Теорема 6.2. Пусть \varphi : \Sigma ^{*} \to  \Delta ^{*} - произвольный гомоморфизм и L - автоматный язык в алфавите \Delta. Тогда и язык \varphi ^{-1}(L) является автоматным.

Доказательство Пусть A=<\Delta , Q, q_{0}, F, \Phi > - ДКА, распознающий язык L. Пусть \Sigma  = \{ a_{1}, \dots  , a_{m}\}, Q= {q0, q1, ..., qn} и \varphi (a_{i})= d_{1}^{i}d_{2}^{i} \dots  d_{\{ }k_{i}\} ^{i}, d_{l}^{i} \in  \Delta  (1\le  l \le  k_{i}) (если \varphi (a_{i}) \ne  \varepsilon ).

Перестроим его в ДКА M =<\Sigma , Q, q_{0}, F, \Phi ^{M}> с тем же множеством состояний, начальным и заключительными состояниями, который распознает язык \varphi ^{-1}(L).

Идея этого построения состоит в том, чтобы переходить из состояния q в q' по букве a\in  \Sigma в автомате M, если в автомате A слово \varphi (a) \ne  \varepsilon переводит q в q'. Если же для a\in  \Sigma образ пуст, т.е. \varphi (a) = \varepsilon, то в автомате M слово a переводит каждое состояние в себя, так как символы a могут встречаться в каждом слове из \varphi ^{-1}(L) в любом месте и в любом количестве.

Таким образом, положим для каждой пары q_{j} \in  Q и a_{i}\in  \Sigma \Phi ^{M}(q_{j}, a_{i}) = q_{r}, если \varphi (a_{i}) \ne  \varepsilon и в автомате A (q,\phi(a))\vdash_A^* (q_r, \varepsilon). Если же \varphi (a_{i}) = \varepsilon, то полагаем \Phi ^{M}(q_{j}, a_{i}) = q_{j}.

Так как A - детерминированный автомат, то функция переходов \Phi ^{M} определена однозначно и для всех пар q_{j} \in  Q и a_{i}\in  \Sigma. Следовательно, M детерминированный.

Нетрудно показать, что L_{M} = \varphi ^{-1}(L).

Действительно, если слово w=a_{i_1}a_{i_2}\ldots a_{i_k}\ \in L_M, то в M путь q_0, q_{i_1}q_{i_2}\ldots q_{i_k}, несущий это слово ведет в заключительное состояние q_{i_k}\in F. Из определения \Phi ^{M} следует, что тогда в A существует соответствующий путь из q0 в q_{i_k}\in F, который несет слово \phi(a_{i_1})\phi(a_{i_2})\ldots \phi(a_{i_k}) = \phi(w). Следовательно, w \in  \varphi ^{-1}(L).

Обратно, пусть w=a_{i_1}a_{i_2}\ldots a_{i_k}\ \in \phi^{-1}(L). Тогда слово u = \phi(w) = \phi(a_{i_1})\phi(a_{i_2})\ldots \phi(a_{i_k}) \in L и в автомате A имеется путь, несущий u, который переводит q0 в некоторое заключительное состояние q' \in  F. Зафиксируем на этом пути состояния q_{i_j}, в которые он попадает после прочтения префиксов \phi(a_{i_1})\phi(a_{i_2})\ldots \phi(a_{i_j}) слова u (j = 1, 2, ... , k). Тогда q_{i_k} = q^\prime и для всех j = 1, 2, ... , k имеет место \ (q_{i_{j-1}},\phi(a_{i_j})\ \vdash_A^*\ (q_{i_j}, \varepsilon). Отсюда и из определения \Phi ^{M} получаем, что в M для всех j = 1, 2, ... , k имеет место переход ха один шаг \ q_{i_{j-1}},a_{i_j} \rightarrow q_{i_j}. Следовательно, в M путь q0, q{i1}q{i2}... q{ik} несет слово w и завершается в заключительном состоянии q_{i_k} = q^\prime. А это означает, что w \in  L_{M}.

Пример 6.3. Пусть алфавиты \Sigma, \Delta и гомоморфизм \phi определены как выше в примере: \varphi (a) =00, \varphi (b) =\varepsilon , \varphi (c) =101. Рассмотрим язык L={ w | число букв 0 в слове w нечетно, а число букв 1 - четно}.

На следующем рисунке показана диаграмма ДКА A, распознающего язык L.

 Автомат A: L(A)=L

Рис. 6.3. Автомат A: L(A)=L

Применив к этому автомату конструкцию из теоремы 6.2, обнаружим, что a и b оставляют все состояния на месте, а c переводит каждое состояние в соседнее состояние "по горизонтали". В результате получаем автомат M, показанный ниже на рис. 6.4.

 Диаграмма автомата M, распознающего язык phi^-1(L)

Рис. 6.4. Диаграмма автомата M, распознающего язык phi^-1(L)

Легко заметить, что в нем состояния q2 и q3 недостижимы из начального состояния q0 и что этот автомат M распознает язык

L_M =\phi^{-1}(L) = \{ u\ |\ \textit{слово }\ u\ \textit{ содержит нечетное число символов}\ c \}.

Имеется еще много операций, относительно которых замкнут класс автоматных языков. Некоторые из них приведены далее в разделе задач.

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >