Главная Промышленная автоматика.

состояния, отличные от q , в которые он тоже может перейти за один такт.

ЗаписьС!-означает, что СС, а С(, [-м (для - что существуют такие конфигурации С, .... C ,, что Q -lO+i для всех 0i<,k. С\-/С означает, что С\-~С для некоторого 1, а С \-м С - чтоС1-м С для некоторого > 0. Таким образом, отношения и 1-м являются соответственно транзитивным и рефлексивно-транзитивным замыканием отношения 1-, Будем опускать нижний индекс-Af там, где это не приведет к недоразумениям.

Говорят,что автомат допускает цепочку MJ,ecли (o.te?) -*{q,e) для некоторого qF. Языком, определяемым (распознаваемым, допускаемым) автоматом М (обозначается L [М)), называется множество входных цепочек, допускаемых автоматом М, т. е.

L{M)=={w\wX* и (qt,, w)\-*(q, е) для некоторого qF)

Приведем два примера конечных автоматов. Первый--простой „детерминированный" автомат; второй пример показывает использование недетермпиизма.

Пример 2.11. Пусть М==({р, q, г], {О, 1}, б. р, {г}) -конечный автомат, где б задается табл. 2.1.

Таблица 2Л


М допускает все цепочки нулей и единиц, содержащие два стоящих рядом нуля. Начальное состояние р можно интерпретировать так: ,два стоящих рядом нуля еще не появились и предыдущий символ не был нулем*. Состояние q означает, что ,два стоящих рядом нуля еще не появились, но предыдущий символ был нулем". Состояние г означает, что „два стоящих рядом нуля уже появились". Заметим, что, попав в состояние г, автомат М остается в этом состоянии.

Для входа 01001 единственной возможной последовательностью конфигураций, начинающейся конфигурацией (р, 01001),

будет

(р, 01001) 1-(, 1001) Н(Р,001) Н(<?,01) 1-(г. 1) Ь {г, е)

Таким образом, 01001 L(M). Dj

Пример 2.12. Построим недетерминированный конечный автомат, допускающий цепочки в алфавите {1,2,3}, у которых последний символ цепочки уже появлялся в ней раньше. Иными словами, цепочка 121 допускается, а 31312-нет. Введем состояние (/о, смысл которого в том, что автомат в этом состоянии не пытается ничего распознать, он (или какой-то его экземпляр) находится в так называемом нейтральном состоянии. Введем также состояния q, q. и q, смысл которых в том, что они „делают предположение" о том, что последний символ цепочки совпадает с индексом состояния. Кроме того, пусть будет одно заключительное состояние Qf. Находясь в состоянии q, автомат может остаться в нем или перейти в состояние q, если а -очередной символ, Находясь в состоянии q, экземпляр автомата может перейти в состояние q, если видит символ а. Из состояния qf автомат никуда не переходит, так как вопрос о том, допускается ли входная цепочка, решается один только раз.

Таблица 2.2

Вход

СостояЕше 9о 91

{Яо, 9i} {91. <?/} Ы

{о. 9з} М Ы {7з, 9/} 0

когда автомат сочтет входной символ „последним". Формально автомат М определяется как пятерка

M-({q„ q, q. Я-,. 9/}, {U 2. 3}, 6, q,,, {qf\)

где й задается табл. 2.2.

Процесс порождения конфигураций для входа 12321 показан на рис. 2.2.



гл. 2. .9лел1Енты ТЕОРИИ языков

Так как {q, 12321)b*(?/, то 12321 Заметим, что

некоторые конфигурации на рис. 2.2 повторяются. Поэтому для представления конфигураций, в которые попадает автомат М, по-видимому, больше подходит ориентированный ациклический граф. □

que) qz*y-(g2»e)

Рис. 2.2. Конфигурации автомата М.

Часто бывает удобно графическое представление конечного автомата.

Определение. Пусть M = (Q, 2, 6, f) -недетерминированный конечный автомат. Диаграммой (или графом переходов) автомата М называют неупорядоченный помеченный граф, вершины которого помечены именами состояний и в котором есть дуга (p,q), если суи;ествует такой символ а 6 2, что qk(P )- Кроме того, дуга (р, q) помечается списком, состоящим из таких а, что qb{p, а).

На рис. 2.3 показаны диаграммы автоматов из примеров 2.11 и. 2.12. Начальное состояние указывается иа диаграммах направленной в него стрелкой, помеченной словом „начало", а заключительные состояния обводятся кружком.

Определим детерминированный конечный автомат как частный случай недетерминированного.

Определение. Пусть M(Q, 2, q, F) - недетерминированный конечный автомат. Назовем автомат М детерминированным, если множество 6 [q, а) содержит не более одного состояния для любых qQ и й$2. Если (q,a) всегда содержит точно одно состояние, то автомат М назовем полностью определенным.

Таким образом, автомат из примера 2.11 - полностью определенный детерминированный конечный автомат. В дальнейшем конечным автоматом будем называть полностью определенный детерминированный конечный автомат.

Один из наиболее важных результатов теории конечных автоматов состоит в том, что класс языков, определяемых недетерминированными конечными автоматами, совпадает с классом

2,2. РЕГУЛЯРНЫЕ МНОЖЕСТВА, ИХ РАСПОЗНАВЛНИЕ И ПОРОЖДЕ НИЕ

языков, определяемых полностью определенными детерминированными конечными автоматами. Сейчас мы это докажем.

Соглашение. Так как нам придется рассматривать в основном детерминированные , конечные автоматы, мы будем писать 6(9, а) = р вместо b{q,a) = {p}, когда автомат с функцией пере-

ИйЧМО


7.2,3



S пример 2.12

Рнс. 2.3. Диаграммы автоматов.

ХОДОВ б детерминированный. Если 6(9, о) = 0, то часто будем говорить, что 6 (q, а) не определено.

Теорема 2.3. Если L=J.{M) для некоторого недетерминированного конечного автомата М, то L = L(M) для некоторого конечного автомата М.

Доказательство. Пусть M = (Q, 2, б, q, F). Построим M = {Q 2, 6, ql F) следующим образом:

(1) Q==(Q), т. е. состояниями автоматам являются множества состояний автомата М;

(2) qo={qb с п

(3) F состоит из всех таких подмножеств Л множества V,

что ЗпЕф0;

(4) 6(S, a)S для всех SQ, где S =p\?>{q, а) содержит р для некоторого qS\.



Оставляем в качестве упражнения доказательство индукцией по i утверждения

(2.2.16) (5, w)\-!,(S,e) тогда и только тогда, когда = {р\(Яу ИЬм [Р.е) для некоторого qS].

Отсюда, в частности, следует, что ({J, w)i. [S, е) для некоторого S F тогда и только тогда, когда (9, w)\-~%{p е) для некоторого pF. Итак, L{M) = L{M). П

Пример 2,13. Построим конечный автомат M = {Q, {1,2,3}, й. {9о}» ). допускающий язык L{M), определяемый автоматом М из примера 2.12. Так как М имеет 5 состояний, то, казалось бы, М должен иметь 32 состояния. Однако не все они достижимы из начального состояния. Состояние р называется дости-окимым, если существует такая цепочка w, что (о, w)\-*{p,e),

\ 2 3

состоятвА - {о}

0 =№,ff3}

P = {Qo.quQu,<?3,Qf}

Рис. 2.4. Функция переходов автомата М\

где -начальное состояние. Мы будем строить только достижимые состояния.

Начнем с замечания, что состояние {q\ достижимо. 6 ({J, а) {Яц, Яа) для а=\, 2 и 3. Рассмотрим состояние {q, J, Имеем б({(7о, q\, \){q, q, q}. Продолжая в том же духе, получаем, что множество состояний автомата М (оно является состоянием автомата М) достижимо тогда и только тогда, когда

(1) оно содержит и

(2) если оно содержит q, то содержит также и j, q или 3,

Множество всех достижимых состояний автомата М вместе с функцией 6 приведено на рис. 2.4.

Начальным состоянием автомата М является Л, а множество заключительных состояний -{£, Я, J, К, М, N, Р}. □

2.2.4. Конечные автоматы и регулярные множества

Покажем, что язык является регулярным множеством тогда и только тогда, когда он определяется конечным автоматом. Для этого мы докажем сначала, что конечно-автоматный язык определяется праволинейной грамматикой, а затем- что множество конечно-автоматных языков содержит языки 0, {е\, {й:} для всех символов а и замкнуто относительно объединения, конкатенации и итерации. Таким образом, каждое регулярное множество оказывается конечно-автоматным языком.

Лемма 2.8. Если L-=L{M) для некоторого конечного автомата М, то L - L(G) для некоторой праволинейной грамматики G.

Доказательство. Пусть M(Q, S, б, q, Р) -конечный автомат (детерминированный, разумеется). Возьмем грамматику G=-={Q, 2, Р, i/o), где Р определяется так:

(1) Если f){q, а) -г, то Р содержит правило q-ar.

(2) Если pF, то р-еР.

Можно показать, что каждый шаг вывода в грамматике G имитирует такт автомата М: Докажем индукцией по /, что

(2.2.17) qw для qQ тогда и только тогда, когда {q, w) 1- (г, е) для некоторого rF.

Базис. Для i = 0 очевидно, что qe тогда и только тогда, когда [q, e)"{q, е) для qF.

Шаг индукции. Предположим, что (2.2.17) истинно для /, и возьмем w = ax, где \x\=i. Тогда q::>-w равносильно тому, что q asax для некоторого sQ. Но qras равносильно b(q, a)= s. По предположению индукции sх тогда и только тогда, когда (s, х) ]-(г, е) для некоторого rF. Следовательно, qz--w равносильно [q, w) \- (г, е) для некоторого г £ Итак, утверждение (2.2.17) истинно для всех iO.

Отсюда заключаем, что qw тогда и только тогда, когда (q isy-*(г, е) для некоторого rF. Таким образом, Z-(G) 1{М). □

Лемма 2.9. Пусть - конечный алфавит. Множества (i) 0, (ii) {е} и (iii) {а} для всех йХ являются конечно-автоматными языками.

Доказательство. (1) Любой конечный автомат с пустым множеством заключительных состояний допускает 0.

(ii) Пусть M = {{q,}, 2. б, q„ {q,}), где 6 ((/ц, а) ие определено ни для каких а2. Тогда L(M)==={e}.





0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

0.0021