Главная Промышленная автоматика. (iii) Пусть М-({о. 2, 6, q, {q}), где b(q, а) = д, а в остальных случаях функция 6 не определена. Тогда Лемма 2.10. Пусть 1 = 1 [Mj) и LLiM) для конечных автоматов и М. Множества {[) LuL, (ii) LJ. и (iii) Ll являются конечно-автоматными языками. Доказательство. Пусть М -(Q, 2, Й, q, F) и = (Qa> 2» /а. а)- 63 нотерн общности МОЖНО считэть, что QnQ2=0T так как в npotHBHOM случае состояния можно было бы переименовать. (i) Пусть M={QiUQ2U {qo\, 2, 6, qQ, f) -недетерминированный конечный автомат, где (1) - новое состояние, (2) F=FUF, если eLUL, и F F,U FU {q}, если eL,UL„ (3) (а) 6 ((/о а) -б ((7, а) и б ((72, а) для всех а € 2, (б) 6(q, a)6i((?, а) для всех g€Qi и а 2, (в) 6((?, а)=б2((7, а) для всех <? € Qa 2. Таким образом, автомат М вначале как бы угадывает, какой из автоматов М, ему моделировать. Так как М - недетерминированный автомат, то фактически он моделирует и тот, и другой. Можно показать индукцией по t> 1, что (q, w)\-M{q, е) тогда и только тогда, когда qQii (qi, w)\-M,{q, или (742 и {q, w)[-M(q, е). Отсюда и из определения множества F вытекает, что L(M)L{Mj}(jL (М). (ii) Чтобы построить конечный автомат М, распознающий язык /.jZ-a, положим М -(Q1UQ2. 2, 6, q, F), где F, если qF-i, FUF, если €2» а функция б определяется равенствами (1) 6(f/, a) = y(q, а) для всех qQi~Fi, (2) б ((7, о) = 61 (7, а)иб2(72» «) для всех qFi* (3) 6(7, а) = 62 ((7, а) для всех f/Qa- Таким образом, М начинает работать, моделируя М. Когда М достигает заключительного состояния автомата М, он может недетерминированно вообразить, что находится в начальном состоянии автомата М (равенство (2)), и моделировать М. Пусть xLi и yL. Тогда (q, xy)[-M{q, у) для некоторого qFi. Если х~е, то q~q. Если уфе, то, применяя один раз равенство (2) и нуль или более раз равенство (3), получаем (яу У)\-м(г, для некоторого rF. Если у = е, то qF, так как qF, Отсюда xyL{M), Допустим, что wL(M), Тогда (t/i, w)\-\i[q, е) для некоторого qF. Рассмотрим отдельно два случая; qF и qF. Пусть q£F. Тогда w - xay для некоторого а€2, удовлетворяющего условиям где rF, sQ-i и 62 (л, а) содержит s. Следовательно, €1 и ayL.. Пусть теперь qFj. Тогда qF. и eL. Таким образом, Отсюда заключаем, что L{M) = LL2. (iii) Построим автомат М (Qi (J j*?}, 2, б, q, /"U {<?}), где q - новое состояние, не принадлежащее Q, который допускает язык Ll. Определим функцию б равенствами (1) б((7, a)--6i((7, а), если qQ~Fi и аб2, (2) 6(9, a) = 6i((7, й)иб, (9i» «), если qF и а€2, (3) 6(9, a) = 6i((7i а) для а2. Таким образом, когда М попадает в заключительное состояние автомата М, он может на выбор либо продолжать моделирование Мт, либо начать заново моделирование М с начального состояния. Доказательство того, что L(M) = L{, аналогично доказательству части (ii). Заметим, что eL(M), так как q - заключительное состояние. □ Теорема 2.4. Дзь/к допускается конечным автоматом тогда и только тогда, когда он является регулярным множеством. Доказательство. Теорема непосредственно следует из теоремы 2.2 и лемм 2.8-2.10. □ 2.2,5. Резюме Результаты разд. 2,2 можно сформулировать в виде следующей теоремы. Теорема 2.5. Утверждения (1) L - регулярное множество, (2) L - праволинейный язык, (3) L~~конечно-автоматный язык, (4) L - недетерминированный конечно-автоматный язык, (5) L обозначается регулярным выражением эквивалентны. □ УПРАЖНЕНИЯ 2.2.1. Какие из следующих множеств регулярны? Для тех, которые регулярны, напишите регулярные выражения. (а) Множество цепочек с равным числом нулей и единиц. (6) Множество цепочек из {О, 1}* с четным числом нулей и нечетным числом единиц. (в) Множество цепочек из {О, 1}*, длины которых делятся на 3. (г) Множество цепочек из {О, 1}*, не содержащих подцепочки 101. 2.2.2. Покажите, что множество регулярных выражений в алфавите -2 является КС-языком. 2.2.3. Покажите, что если L - произвольное регулярное множество, то существует бесконечно много регулярных выражений, обозначающих L. 2.2.4. Пусть L-регулярное множество. Прямо из определения регулярного множества получите, что - регулярное множество. Указание: Докажите это индукцией по числу применений определения регулярного множества, использованных при построении L как регулярного множества. 2.2.5. Докажите следующие тождества для произвольных регулярных выражений а, р и у: (а) а(Р + у) = ар + ау, (ж) (а + Р) у := ау + Ру. (б) а + (Р + у)-(а + р) + у. (3) 0*6, (в) а(Ру) = (аР)у, (и) а* = а--а*, (г) ае = еа = а, (к) (а*)* = а*, (д) 0а-а0 = 0, (л) (а + Р)* = (а*р*)*, (е) аа = а, (м) а0 = а. 2.2.6. Решите систему уравнений с регулярными коэффициентами Л,==(01*+1)Л + Л2 Л.И + Ы + ООЛз Лз = е*-Л1 + Л2 2.2.7. Рассмотрите уравнение (2.2.18) Х = аХ + р где а и р-регулярные выражения в алфавите 2 и Х2. Покажите, что (а) если еа, то X - а*р-единственное решение уравнения (2.2.18); (б) если еа, то а*р - наименьшая неподвижная точка уравнения (2.2.18), но решений бесконечно много; (в) в любом случае каждое решение уравнения (2.2.18) имеет вид а*(ри/-). где L - некоторый (не обязательно регулярный) язык. 2.2.8. Решите стандартную систему, состоящую из двух уравнений общего вида X = а,Х + aY + крд+р,к+рз 2.2.9. Восполните детали доказательства леммы 2.4. 2.2.10. Докажите лемму 2.5. 2.2.11. Найдите праволинейные грамматики для тех множеств упр. 2.2.1, которые регулярны. Определение. Грамматика G = (N, 2, Р, 5) называется лево-линейной, если каждое правило множества Р имеет вид А-Bw или А->w. 2.2.12. Покажите, что язык является регулярным множеством тогда и только тогда, когда он порождается леволинейной грамматикой. Указание: Воспользуйтесь упр. 2.2.4. Определение. Праволинейная грамматика G=(N, 2, Р, S) называется регулярной (или автоматной), если (1) все ее правила, за исключением S->е, имеют вид Л->йВ или Л-а, где SN, а2, (2) если 5-принадлежит Р, то 5 не встречается в правых частях правил. 2.2.13. Покажите, что каждое регулярное множество порождается регулярной грамматикой. Указание: Это можно сделать несколькими способами. Один из них состоит в том, чтобы применить к праволинейной грамматике G последовательность преобразований, которая переведет G в эквивалентную регулярную грамматику. Другой способ-построить регулярную грамматику по конечному автомату. 2.2.14. Постройте регулярную грамматику для регулярного множества, порождаемого праволинейной грамматикой с правилами Л-ВС В->0В 1В011 С-Ш\\С\е 2.2.15. Опишите алгоритм, который по данной регулярной грамматике G и цепочке w определяет, принадлежит ли w язы-ку L(G). 2.2.16. Докажите утверждение (2.2.16) из доказательства теоремы 2.3. 2.2.17. Дополните доказательство леммы 2.7 (iii). Определение. Правило А - сс праволинейной грамматики G(N, 2,Р, 5) называется бесполезным, если в множестве 2* не существует таких цепочек w я х, что 5=* wAwa=* WX гл. 2. ЭЛЕМЕНТЫ ТЕОРИИ ЯЗЫКОВ 2.2.18. Постройте алгоритм, преобразующий праволинейную грамматику в эквивалентную ей грамматику без бесполезных правил. *2.2.19. Пусть G(N, 2, Р, 5) -праволинейная грамматика. nycTbN={i.....Л„}каи = х, + х-{-... гдеv4,--iy... ...\x,„Aj-это все правила вида Л;->yAj. Положим а - х... ... -\-х, где Afxl.. .-это все правила вида Ау. Пусть, наконец, Q будет системой уравнений в стандартной формеЛ-а,-о + а,.1Л1 + а.2Л2+ ... +а-„Л„. Покажите, чтоL{G)- наименьшая неподвижная точка системы Q. Указание: Воспользуйтесь леммой 2.3. 2.2.20. Покажите, что язык L{G) из примера 2.10 - это множество цепочек в алфавите {0,1}, длина которых делится на 3. 2.2.21. Найдите детерминированные и недетерминированные конечные автоматы для тех множеств из упр. 2.2.1, которые регулярны. 2.2.22. Покажите, что конечный автомат из примера 2.11 допускает язык (О + 1)*00(0 + 1)*. 2.2.23. Докажите, что конечный автомат из примера 2.12 допускает язык {wa\a{l, 2, 3} и а входит в w\. 2.2.24. Дополните доказательство леммы 2.10(111). *2.2.25. Двусторонний конечный автомат состоит из (недетерминированного) управляющего устройства с конечным числом состояний и входной головки, которая может двигаться по входной цепочке влево, вправо или оставаться неподвижной. Покажите, что язык допускается двусторонним конечным автоматом тогда и только тогда, когда он является регулярным множеством. Указание: Постройте детерминированный односторонний конечный автомат, который, прочитав входную цепочку w=ye, помещает во внутреннюю память управляющего устройства конечную таблицу, указывающую для каждого состояния q двустороннего автомата, в каком состоянии (если таковое существует) он сойдет с правого конца цепочки w, начав работу на этом правом конце в состоянии q. *2.2.26. Покажите, что если позволить односторонним конечным автоматам сдвигать входную головку ие на каждом такте, то это не увеличит класса определяемых ими языков. **2.2.27. Покажите, что для любого п существует регулярное множество, которое допускается недетерминированным конечным автоматом с п состояниями, но для распознавания которого детерминированным конечным автоматом требуется 2" состояний. 2.3. СВОЙСТВА РЕГУЛЯРНЫХ МНОЖЕСТВ 2.2.28. Покажите, что каждый язык, допускаемый двусторонним конечным автоматом с п состояниями, допускается односторонним конечным автоматом с 2"""* состояниями. **2.2.29. Сколько различных языков в алфавите {О, 1} определяются (а) недетерминированными, (б) детерминированными и (в) двусторонними конечными автоматами с двумя состояниями? Определение. Множество S целых чисел образует арифметическую прогрессию, если его можно записать в виде 5{с, с + р, с-[-2р, ..., cip, ...}. UycTb S {L) = {i\\w\ = i для некоторого wL} для любого языка L. **2.2.30. Покажите, что для каждого регулярного языка L множество S{L) можно представить в виде объединения конечного числа арифметических прогрессий. Открытая проблема 2.2.31. Насколько приведенная в упр. 2.2.28 верхняя граница числа состояний одностороннего автомата, моделирующего двусторонний конечный автомат, близка к наименьшему возможному числу состояний? ) Замечания по литературе Регулярные выражения были определены Клинн [1956]. Дополнительную информацию о регулярных выражениях можно найти в работах Мак-Нотоиа и Ямады [1960] и Бжо.зовского [1962] 2). Саломаа [1966а] описал две системы аксиом для регулярных выражений з). .Хомский и Миллер [1958] доказали эквивалентность регулярных грамматик и регулярных выражений, а Рабин н Скотт [1959] -эквивалентность детерминированных и недетерминированных конечных автоматов. Упр. 2.2.25 взято из работ Рабина и Скотта [1959] н Шепердсоиа [1959. 2.3. СВОЙСТВА РЕГУЛЯРНЫХ МНОЖЕСТВ В этом разделе мы докажем несколько полезных результатов о конечных автоматах и регулярных множествах. Особенно важный результат состоит в том, что для каждого регулярного множества по существу однозначно находится определяющий его конечный автомат с минимальным числом состояний. 2.3.1. Минимизация конечных автоматов По данному конечному автомату М можно найти наименьший эквивалентный ему конечный автомат, исключив все недостижимые состояния и затем склеив лишние состояния. Лишние ) В связи с этой проблемой см. работу ХаргыаЕЕса[1970]. -Прим. перев. ) О регулярных выражениях написано много, см. монографин, упоминаемые в замечаниях по литературе к разд. 2.3. -Прим. перев. ) В связи с этим см. также работы Редько [1964] и Саломаа [19666] - Прим. перев. 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.0022 |