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

входную цепочку, даже если удовлетворяет лемме 2.27, Мы хотим преобразовать данный ДМП-автомат Р в эквивалентный ДМП-автомат Я, который никогда не попадает в зацикливающую конфигурацию.

Алгоритм 2.16. Обнаружение зацикливающих конфигураций.

Вход, ДМП-автомат P = (Q, 2, Г, й, q Z„ F).

Выход. (1) С. -{{q, A)\{q, е, А) - зацикливающая конфигурация и не существует такого rF, что ((?, , Л) j-*(/, а) для некоторой цепочки аГ*} и

(2) СаК, Л)!((?, Л) -зацикливающая конфигурация и ((?, е. А) 1- *(г, е, а) для некоторых г F и аГ*}.

Метод. Пусть 4# q - aij, ф= -длина самой длин-

ной цепочки, которую Р может записать в магазин за один такт. Пусть n - n{ril-n)j[n-\), еслил2>1, и п-п, если п=\. Число - это максимальное число е-тактов, которое Может сделать Я, не зацикливаясь.

(1) Для всех q £Q и Л 6Г выяснить, выполняется ли ((?,(?, Л) 1-"з (г, е, а) для каких-нибудь rQ и аГ+.Прн этом используется прямое моделирование Я. Если да, то {q, е. Л)-зацикливающая конфигурация, так как в этом случае -мы это покажем -должна быть такая пара (q, .Л), гдe(?Q и ЛГ, что

(д,е,Л)1-* (9., ЛР) Н" {q\e,AyP)

где т>0 и у > 0. Заметим, что у может быть е.

(2) Если {q,e,A) - зацикливающая конфигурация, выяснить, существует ли такое г £F, что {q, е. Л) !-(/, а) для некоторого О з. При этом снова используется прямое моделирование. Если да, то включить ((?, Л) в С. В противном случае включить ((?, Л) в Q. Мы утверждаем, что если Я может достичь заключительной конфигурации, исходя из {q, Л), то это должно произойти за или меньшее число тактов. □

Теорема 2.22. Алгоритм 2.16 правильно находит множества Ci и С,.

Доказательство. Сначала докажем, что шаг (1) правильно определяет множество CjUCj. Если (9, Л) g Q и то очевидно, что [q, <?, Л) j-"з(г, е, а). Обратно, допустим, что {q, е, Л)1-"з(г,е, а).

Случай 1: Существует такая цепочка р€Г*» что \р\пп и (д, е, А) j-* [р, в, р) 1-* (г, е, а) для некоторого pQ. Если в

последовательности тактов (q, е, А) [-* {р, е, р) для каждого /=1,2, nnJ--l выделить конфигурацию, в которой оказывается Р, когда длина ого магазина в последний раз становится равной /, то можно заметить, что в выделенной последовательности конфигураций некоторое состояние q и символ Л должны дважды встречаться в качестве текущего состояния и верхнего символа магазина; другими словами, можно писать {q,e,A)[~-{q\e,A6))r-4q,e,Ayd)\-*(p,e,[). Таким образом, по лемме 2.20 [q, е. А)\-* [q, е, Ai-" {q, е, АуЩ яля всех / 0. Здесь тО, поэтому, исходя из конфигурации [q, е. Л), можно сделать бесконечно много -тактов и, следовательно, (9, А)£С\]С-.

Случай 2: Допустим, что в противоположность случаю 1 lllnnj для всех таких р, что {q, е, А)\-* {р, е, р)1-* (г, е, а). Так как в этой последовательности конфигураций имеется --1 различных р, число возможных состояний равно /г и число возможных магазинных цепочек длины, не большей nnl, равно

«а + «2 + + -• «2)/К-1). ТО некоторая

конфигурация должна повторяться. Отсюда непосредственно следует, что (q, A)£C\jC.

Доказательство того, что шаг (2) правильно разбивает множество Ci на Q и Сз, оставляем в качестве упражнения. □

Определение. ДМП-автомат Р - [Q, 2, Г, б, q, Z,, F) назовем дочитывающим, если для каждой цепочки и)2* существуют такие pQ и аГ*, что (q, w, {р, е, а). Интуитивно,

дочитывающим называется ДМП-автомат, способный дочитывать до конца каждую входную цепочку.

Лемма 2.28. Пусть Р {Q, 2, Г, q„ Z, F)-ДМП-автомат. Тогда существует эквивалентный ему дочитывающий ДМП-автомат Р,

Доказательство. В силу леммы 2.27 можно считать, что для Р всегда возможен очередной такт. Пусть Я = (Q U {р, г], 2, Г, 6, qfj, Zq, f и {р}), где р и г - новые состояния, а 6 определяется так:

(1) для всех qQ, aI, к Z £Т положим 6 {q, а, Z) = 6 {q, а, Z);

(2) для всех qQ и Z Г, таких, что, {q, е, Z) не является зацикливающей конфигурацией, положим 6[q, е, Z) - 6 {q, е, Z);

(3) для всех {q,Z)£C-, где С -множество, построенное алгоритмом 2.16, положим 6(9, 6, Z) = (г, Z);

(4) для всех (q, Z)£C, где Cg - множество, построенное алгоритмом 2.16, положим б [q, е, Z)-{p, Z);

(5) для всех аб2 и ZT положим б(/?, а, Z)(r,Z) и д(г,а, Z) = {r,Z).



Таким образом, Р моделирует Я, но если Р попадает в зацикливающую конфигурацию, то Р в очередном такте перейдет в состояние р или г в зависимости от того, встречается или нет в циклической последовательности конфигураций заключительное состояние. Затем, какова бы ни была входная цепочка, Р переходит в состояние г и остается в нем, ничего не меняя в магазине. Отсюда L (Р)== L (Р).

Надо показать, что Р-дочитывающий ДМП-автомат. Правила (3) - (5) гарантируют, что условие „дочитывания" для Я выполняется, если Р попадает в зацикливающую конфигурацию. Остается только заметить, что если Р находится в неза-циклнвающей конфигурации, то через конечное число тактов он должен либо

(1) сделать не е-такт, либо

(2) попасть в конфигурацию, укорачивающую магазин.

Кроме того, ситуация (2) не может повторяться бесконечно, так как в исходной конфигурации магазин имеет конечную длину. Таким образом, либо в конце концов произойдет (1), либо после нескольких повторений (2) Р попадет в зацикливающую конфигурацию. Итак, можно заключить, что ДМП-автомат Р дочитывающий. □

Теперь докажем одно важное свойство ДМП-автоматов, а именно, что класс распознаваемых ими языков замкнут относительно дополнения. В следующем разделе мы увидим, что для класса всех КС-языков это не так.

Теорема 2.23, Если L==L(P) для некоторого ДМИ-сштомата Р, то L - L(P) для некоторого ДЩ\-автомата Я.

Доказательство. По лемме 2.28 можно считать, что Я- дочитывающий. Построим Я так, чтобы он моделировал Я и между сдвигами входной головки выяснял, попал ли Я в допускающее состояние. Так как Ядолжен допускать дополнение языка £(Я), то Р допускает входную цепочку, если Я не допускает ее И собирается сдвинуть свою входную головку (и, следовательно, уже не допустит ее и позже).

Формально пусть P = {Q, S, Г, б, q,, Z„, F) и Р= {Q\ 2. Г, 6, 0. Е) где

(1) l1\qQ. (€{0, 1, 2}},

(2) Я-ЛЯ 0] если q,F, и q = [q,, 1], если qF,

(3) F = {[q, 2]9€Q}.

Состояния вида [9, 0] предназначены для обозначения того, что Я не был в заключительном состоянии после последнего не е-такта. Состояния вида [9, 1] указывают, что в данный момент

Я перешел в заключительное состояние. Состояния вида [q, 2] используются только для обозначения заключительных состояний. Если Р находится в состоянии [9, 0] и в соответствующий момент моделируемый распознаватель Я собирается сделать ие е-такт, то р- сначала переходит в состояние \q, 2], а затем моделирует Я. Таким образом, Р допускает тогда и только тогда, когда Я не допускает. Тот факт, что ДМП-автомат Я - дочитывающий, гарантирует, что и у Р всегда есть шанс допустить входную цепочку, если Я не допускает ее. Формальное определение функции б таково:

(i) если qQy 02 и ZF, то

b{[q, 1], G, Z) = b{[q, 2], а, Z) = ([p, г], у)

где b(q, G, Z)={p, у), i = 0> если pF, и / = 1, если pF;

(ii) если qQ, ZV и 6(9, е, Z) = {p, у), то

Ь{[Я, 1]. Z) = ([/7, 1], у) б([9. 0], е, Z)([/7, il у)

где t=0, если рР, и (=1, если pF\

(iii) если 6(9, е, Z)= 0, то д([q, 0], е, Z) - ([9, 2], Z).

Правило (i) относится к не -тактам. Вторая компонента состояния правильно принимает значение О или 1. Правило (ii) относится к е-тактам, и здесь оно управляется со второй компонентой состояния, как задумано. Правило (iii) позволяет Я допускать входную цепочку в точности тогда, когда Р не до-

пускает ее. Формальное доказательство того, что L(P)-L{P), мы опускаем. □

Детерминированные КС-языки обладают и другими важными свойствами; Мы рассмотрим их в упражнениях и в следующем разделе.

УПРАЖНЕНИЯ

2.5.1. Постройте МП-автоматы, допускающие дополнения (относительно {а, 6}*) следующих языков:

(а) {a"bVnl},

(б) {ww\w{a, }*}*

(в) {а"Ь"а"&« I т, п1},

(г) [ww \w {а, Ь}*}.

Указание: Пусть недетерминированный МП-автомат делает предположение относительно того, почему его входная цепочка не принадлежит данному языку, и проверяет, верно ли это предположение.



2.5.2. Докажите, что МП-автомат из примера 2.31 допускает язык {ww \ w £ {а, b}*}.

2.5.3. Покажите, что каждый КС-язык допускается МП-автоматом, кочорый за один такт увеличивает длину магазина не более чем на единицу.

2.5.4. Покажите, что каждый КС-язык допускается таким МП-автоматом, что если (р, у) € 6 (i/, о., Z), то либо у-=е, либо y = Z, либо y-VZ для некоторого К 6 Г- Указание: Рассмотрите конструкцию леммы 2.21.

2.5.5. Докажите, что каждый КС-язык допускается МП-автоматом, не делающим е-тактов. Указание: Вспомните, что каждый КС-язык порождается грамматикой в нормальной форме Грейбах.

2.5.6. Покажите, что для каждого КС-языка L найдется такой МП-автомат Р с двумя состояниями, что L~L{P).

2.5.7. Дополните доказательство леммы 2.23.

2.5.8. Найдите восходящие и нисходящие распознаватели (МП-автоматы) для следующих грамматик:

(а) S~aSb\e

(б) S-AS\b A~SA\a

(в) S -55Л

Л 0Л1 501

2.5.9. Найдите грамматику, порождающую L(P), где -({9о. 9i. {й. Ь}, {Z,, А], 6, q,, Z„ {qj)

и б задается равенствами

6{q„ а, Z) = {q, AZ,) 6{q„ а, A) = {q,, А А) б(?1, fi, A) = {q„ АА) {Яи е. Л) = ((/„ Л) б((?2, Ь, A) = [q, е)

Указание: Для бесполезных нетерминалов строить правила не обязательно.

*2.5.10. Покажите, что если P---(Q, S, Г, 6, q, Z„ F) - МП-автомат, то множество цепочек, которые могут появиться в его магазине, регулярно. Иначе говоря, покажите, что множество {a\(q, W, Zo)b*(, Л, а) для некоторых q, w я х} регулярно.

2.5.11. Дополните доказательство леммы 2.26.

2.5.12. Пусть Я -МП-автомат, для которого существует такая константа k, что в его магазине всегда не более А символов. Покажите, что L (Р) -регулярное множество.

2.5.13. Постройте ДМП-автоматы, допускающие следующие языки:

(а) {01 <<},

(б) {w\w состоит из равного числа символов а и о},

(в) L(Go), где Go -обычная грамматика, определяющая простые арифметические выражения.

2.5.14. Покажите, что ДМП-автомат из примера 2.36 допускает язык {wcw\w£{a, +

2.5.15. Покажите, что если конструкцию леммы 2.21 применить к расширенному ДМП-автомату, то получится ДМП-автомат.

2.5.16. Докажите, что Я н Я в лемме 2.27 допускают один и тот же язык.

2.5.17. Докажите, что шаг (2) алгоритма 2.16 действительно отличает от С.

2.5.18. Дополните доказательство теоремы 2.23.

2.5.19. Определенные нами МП-автоматы делают такт независимо от входа только тогда, когда при этом не сдвигается входная головка. Можно ослабить это ограничение и позволить обозреваемому входному символу влиять на то, что делается в данном такте, и тогда, когда входная головка остается неподвижной. Покажите, что при таком расширении класса МП-автоматов они все еще допускают только КС-языки.

*2.5.20. Можно еще более расширить класс МП-автоматов, позволив входной головке двигаться по ленте в обе стороны и снабдив входную ленту концевыми маркерами. Назовем такой автомат 2МП-автоматом (двусторонним МП-автоматом), а если он детерминированный, то 2ДМП-автоматом. Покажите, что следующие языки распознаются 2ДМП-автоматами:

(а) {а"Ь«с"п>1},

(б) {ww wk {а, Ь}*},

(в) К" п-\}.

2.5.21. Покажите, что 2МП-автомат может распознать язык {wxw\w, х£ jO, 1}*}.

Открытые проблемы

2.5.22. Существует ли язык, который допускается 2МП-ав-томатом, но не допускается 2ДМП-автоматом?





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.0016