/
Автор: Гинзбург С.
Теги: математика теория алгоритмов дискретная математика теория автоматов математическая лингвистика
Год: 1970
Текст
Seymour Ginsburg
THE MATHEMATICAL THEORY
OF CONTEXT-FREE LANGUAGES
Me GRAW-HILL BOOK COMPANY, INC.
NEW YORK • SAN FRANCISCO • TORONTO • LONDON
1966
Сеймур Гинзбург
МАТЕМАТИЧЕСКАЯ ТЕОРИЯ
КОНТЕКСТНО-СВОБОДНЫХ
ЯЗЫКОВ
ПЕРЕВОД С АНГЛИЙСКОГО
А. Я. Д И К О В С К О Г О и Л. С. МОДИНОЙ
ПОД РЕДАКЦИЕЙ
Л. В. ГЛАДКОГО
ИЗДАТЕЛЬСТВО «МИР»
Москва 1970
УДК 410.51
В книге достаточно полно изложены основные
понятия и результаты теории контекстно-свобод-
контекстно-свободных грамматик и языков, прослеживаются ее
связи с теорией автоматов, языками программи-
программирования, лингвистикой и машинным переводом.
Имеется .большое число упражнений самой раз-
различной трудности, которые в совокупности
существенно дополняют основной текст книги.
Книга окажется полезной математику, жела-
желающему детально ознакомиться с теорией фор-
формальных грамматик и ее связями с другими
математическими теориями.
Редакция литературы по математическим наукам
Инд. 2-2-3
3-70
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
Книга С. Гинзбурга «Математическая теория контекст-
контекстно-свободных языков» является одной из первых в миро-
мировой литературе монографий по теории формальных грам-
грамматик. Эта теория представляет собой центральную состав-
составную часть математической лингвистики — сравнительно
новой математической дисциплины, возникшей в связи
с потребностями, с одной стороны, лингвистики (языко-
(языковедения) и, с другой — математического обеспечения
вычислительных машин. Возникновение теории формаль-
формальных грамматик относится ко второй половине 50-х гг.;
ее основоположником по праву считается американский
лингвист Н. Хомский. В работах [Хо 1], [Хо 2] и [Хо 3] *)
он ввел специальные исчисления, названные им граммати-
грамматиками, для порождения множеств правильных предложе-
предложений естественных языков.
Сразу же выяснилось, что эти исчисления представляют
собой разновидности довольно давно уже существовавшего
в математике понятия полусистемы Туэ (англ. semi-Thue
system). Без сомнения, то обстоятельство, что формальный
аппарат уже существовал, благотворно сказалось на раз-
развитии теории грамматик и ее приложений.^ Вместе с тем
это обстоятельство ни в какой степени не умаляет
заслуг Н. Хомского, к числу которых относятся, во-пер-
во-первых, указание на возможность применения формальных
исчислений для целей описания языка и разработка путей
такого применения и, во-вторых, выделение тех классов
таких исчислений, которые играют в лингвистических
приложениях особо важную роль 2); замечательно, что
2) См. список литературы в конце настоящей книги.
2) Этим вовсе не исчерпывается вклад Н. Хомского в лингви-
лингвистику и математическую лингвистику; мы говорим лишь о тех сто-
сторонах его деятельности, которые имеют непосредственное отноше-
отношение к предмету этой книги.
6 Предисловие редактора перевода
именно эти классы оказались наиболее интересными
и с математической точки зрения.
Наиболее важным среди указанных классов является,
безусловно, класс так называемых контекстно-свободных
грамматик (англ. context-free grammars; в русской лите-
литературе употребителен также термин бесконтекстные грам-
грамматики). С одной стороны, контекстно-свободные грамма-
грамматики оказались хорошо приспособленными для описания
подавляющего большинства конструкций естественных
языков, а в последние годы нашли применение также для
описания языков программирования; с другой — благода-
благодаря простоте своей структуры и тесным связям с некото-
некоторыми концепциями теории абстрактных автоматов они
особенно удобны для математического изучения. Поэтому
исследования, посвященные контекстно-свободным грам-
грамматикам и порождаемым ими языкам (контекстно-свобод-
(контекстно-свободным языкам), получили весьма широкое развитие.
Первой монографией, подытоживающей результаты
этих исследований, явилась предлагаемая сейчас в рус-
русском переводе книга С. Гинзбурга. Она содержит довольно
полное и подробное изложение подавляющего большинства
основных аспектов теории контекстно-свободных грамма-
грамматик и языков х). По своему характеру книга является
чисто математической. Лингвистические приложения упо-
упоминаются в ней лишь вскользь. Более подробно рассмот-
рассмотрены приложения к языкам программирования. Изложе-
Изложение по большей части весьма детальное (в ряде случаев
автора можно упрекнуть даже в излишней детализации
и недостатке содержательных пояснений). Несомненным
достоинством книги является наличие в ней большого
числа упражнений самой различной трудности — от про-
простейших выкладок до доказательства довольно сложных
теорем; эти упражнения содержат разнообразные факты,
служащие хорошим дополнением к основному тексту.
Указан ряд нерешенных проблем (некоторые из них, как,
например, проблема дополнения к языку, порождаемому
грамматикой непосредственно составляющих, широко
известны, другие опубликованы здесь впервые), а также
г) Из важных вопросов теории контекстно-свободных языков,
не нашедших отражения в книге, можно упомянуть, например,
категориальные грамматики.
Предисловие редактора перевода 7
«тем для исследования», требующих не только решения,
но и уточнения постановки задач.
Без сомнения, книга будет полезной всем математикам,
которые захотят основательно познакомиться с теорией
контекстно-свободных грамматик и языков — как ради
нее самой и ее связей с другими математическими теория-
теориями (в особенности с теорией автоматов), так и ради
ее приложений к теории программирования, лингвистике,
автоматическому переводу.
В переводе изменено определение МП-преобразователя
(разд. 3.5), поскольку при прежнем определении теоре-
теорема 3.5.1 была неверна (этот факт отмечен в только что
появившейся работе автора и Дж. Роуза [GRo 3]). В связи
с этим пришлось выпустить теорему 4.4.1 и внести неко-
некоторые изменения в формулировки и доказательства лем-
леммы 4.4.1 и теоремы 4.4.2, получившей теперь номер 4.4.1.
Кроме того, переводчики и редактор позволили себе
исправить замеченные ими в оригинале неточности (впро-
(впрочем, несущественные и немногочисленные) без специаль-
специальных оговорок. В ряде мест, требовавших разъяснения
или дополнения, сделаны примечания. Библиография
дополнена работами, вышедшими после 1966 г., и рабо-
работами, не попавшими в поле зрения автора (в частности,
советскими). Вместо оригиналов статей, переведенных на
русский язык, указаны переводы. Ссылки на американ-
американскую учебную литературу заменены ссылками на соответ-
соответствующие книги на русском языке. Работы, добавленные
при переводе, отмечены в библиографии звездочками.
Л. Гладкий
Новосибирск,
январь 1969 г.
ПРЕДИСЛОВИЕ АВТОРА
Понятие контекстно-свободного языка было впервые
введено в 1959 году Хомским [Хо 3] *) при попытке найти
приемлемую математическую модель естественных языков,
таких, как английский, французский и т. д. В 1959—
1960 гг. появилось еще несколько работ, развивающих
теорию контекстно-свободных языков [Хо 3, 4; ХМ; BGS;
BPS]. В 1960 году было обнаружено, что класс так назы-
называемых «языков типа АЛГОЛ», т. е. языков, определяе-
определяемых нормальной формой Бэкуса (которая представляет
собой метаязык, предназначенный для описания широко
распространенного языка программирования АЛГОЛ-60),
совпадает с классом контекстно-свободных языков. С этого
времени началось бурное развитие теоретических иссле-
исследований по контекстно-свободным языкам. Значительной
участие в этой работе приняли специалисты по использо-
использованию вычислительных машин для исследования естест-
естественных языков и Специалисты по языкам программиро-
программирования. Контекстно-свободными языками занялись также
математики и логики, которых заинтересовали соответст-
соответствующие задачи, методы и результаты. Бьщ получен ряд
теоретических результатов, связанных с математическим
обеспечением машин и в особенности с техникой програм-
программирования. Имеется, например, характеристика контекст-
контекстно-свободных языков в терминах автоматов с магазинной
памятью (специальных устройств, используемых для син-
синтаксического анализа). Известно также, что конечный
преобразователь (простейшее преобразующее устройство)
отображает контекстно-свободный язык на контекстно-сво-
*) Обозначения в квадратных скобках, такие, как [Хо 3],
относятся к библиографии, помещенной в конце книги.
Предисловие автора 9
бодный язык. Другим примером является доказательство
отсутствия алгоритма, позволяющего по произвольной
контекстно-свободной грамматике узнать, является ли она
неопределенной.
Интересной темой для исследования является связь
между теорией контекстно-свободных языков и теорией
автоматов. При этом каждая из этих теорий является
инструментом и источником проблем для другой. На
деле — так же как и в первых двух из приведенных
выше примеров — часто трудно решить, относится ли дан-
данная проблема к теории автоматов или к теории языков.
По существу содержание теории контекстно-свободных
языков я рассматриваю как логическое продолжение тео-
теории автоматов. В частности, двухсеместровый курс лек-
лекций, прочитанный мною в Калифорнийском университете
(Лос-Анжелес), был назван «Теория автоматов и контек-
контекстно-свободных языков». Первая часть этого курса чита-
читалась по ранее написанному мной пособию [Gi 1], а вто-
вторая — по запискам, которые легли в основу настоящей
книги. Часть курса, посвященная контекстно-свободным
языкам, предназначалась для студентов, обладающих
серьезной математической подготовкой и специализирую-
специализирующихся либо по математике (в особенности по математиче-
математической логике), либо по математическому обеспечению
машин (в особенности по программированию), либо
по вычислительной технике. Замечания этих студентов
оказались в высшей степени полезными для устранения
ряда ошибок и уточнения некоторых доказательств.
Цель настоящей книги состоит в том, чтобы изложить
ряд важных вопросов теории контекстно-свободных языков
и приблизить читателя к переднему краю исследований
в этой области. Важными признаются такие вопросы,
которые либо A) используются в других частях теории,
либо B) имеют отношение к естественным языкам или
языкам программирования. Поэтому такие сами по себе
интересные понятия, как последовательностные языки
и металинейные языки, упомянуты лишь вскользь.
Рассматриваемый материал разделен на шесть глав
(в их число не входит подготовительная глава, в которой
приведены необходимые сведения из математики). В первой
главе вводятся основные понятия, такие, как контекстно-
10 Предисловие автора
свободная грамматика, контекстно-свободный язык, дере-
дерево вывода, неопределенность, и приводятся некоторые
элементарные сведения относительно этих понятий. Вто-
Вторая глава посвящена регулярным множествам, конеч-
конечным автоматам и автоматам с магазинной памятью. В этой
главе дается характеристика регулярных множеств в тер-
терминах праволинейных (и леволинейных) грамматик
и характеристика контекстно-свободных языков в терми-
терминах автоматов с магазинной памятью. В третьей главе
изучаются операции, относительно которых класс всех
контекстно-свободных языков является инвариантным.
Здесь среди прочих результатов можно указать, напри-
например, следующие: A) пересечение произвольного контек-
контекстно-свободного языка и произвольного регулярного мно-
множества является контекстно-свободным языком; B) образ
произвольного контекстно-свободного языка при отобра-
отображении, осуществляемом конечным преобразователем,
является также контекстно-свободным языком. Четвертая
глава посвящена изучению алгоритмических проблем.
Ее основные результаты состоят в доказательстве невоз-
невозможности построения алгоритмов, дающих ответ на сле-
следующие вопросы: A) порождают ли две контекстно-сво-
контекстно-свободные грамматики один и тот же контекстно-свободный
язык; B) существует ли конечный преобразователь, осу-
осуществляющий нетривиальное отображение произвольного
заданного контекстно-свободного языка в другой произволь-
произвольный заданный контекстно-свободный язык; C) является ли
произвольная наперед заданная контекстно-свободная грам-
грамматика неопределенной. В пятой главе рассматриваются
ограниченные контекстно-свободные языки и полулиней-
полулинейные множества. В частности, приводится доказательство
результата Парика об отображении контекстно-свободного
языка на полулинейное множество; дается характеристика
ограниченных контекстно-свободных языков, излагаются
методы, позволяющие доказывать, что некоторые мно-
множества не являются контекстно-свободными языками.
В шестой главе исследуется вопрос о существенной неопре-
неопределенности. Выводится некоторое алгебраическое необхо-
необходимое и достаточное условие существенной неопределен-
неопределенности ограниченного контекстно-свободного языка. При-
Приводится также доказательство невозможности построения
Предисловие автора 11
алгоритма, позволяющего по произвольному контекстно-
свободному языку устанавливать, является ли он суще-
существенно неопределенным.
В конце каждой главы приводится историческая справ-
справка. К книге приложена обширная библиография, вклю-
включающая все использованные работы, в том числе и такие,
на которые нет ссылок в тексте. Кроме того, в изложение
включено большое число упражнений. Они не только обес-
обеспечивают более полное понимание материала, но и вклю-
включают в себя некоторые менее важные вопросы теории.
(Читателю следует иметь в виду, что среди упражений
встречается немало громоздких и трудных.) Многие упраж-
упражнения заимствованы из опубликованных работ или являют-
являются хорошо известными, но ранее не публиковались (везде,
где это возможно, приводятся соответствующие ссылки).
Остальные упражнения возникли в ходе бесед с Шейлой
А. Грейбах, Томасом Н. Хиббардом, Джином Ф. Роузом,
Эдвином X. Спэниером и Джозефом С. Уллиэном.
В разных местах в текст вкраплены некоторые нере-
нерешенные, т. е. открытые, вопросы и задачи, а также проб-
проблемы для исследования. Это сделано с целью наметить
пути дальнейшей разработки теории. Я считаю, что мой
труд окупится сторицей, если некоторые из указанных
проблем и задач будут изучены и решены читателями.
Я выражаю глубокую благодарность Джину Ф. Роузу
и Майклу Харрисону, скрупулезно прочитавшим рукопись.
Слова признательности должны быть сказаны и в адрес
моего коллеги Томаса Н. Хиббарда, с которым я неодно-
неоднократно, с пользой для себя, обсуждал вторую главу.
Я благодарен также В. Е. Синглетэри и X. Р. Эдмундсону
за многочисленные предложения по улучшению изложе-
изложения. Наконец, я хочу выразить глубокую благодарность
Корпорации по разработке систем, которая финансировала
работу по подготовке рукописи, а также постоянно созда-
создавала условия для моей научной деятельности в данной
области.
Сеймур Гинзбург
ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
Здесь кратко перечисляются некоторые встречающиеся
в тексте теоретико-множественные и алгебраические поня-
понятия и их свойства. Чтение этого материала может быть
отложено до тех пор, пока в нем не возникнет потребности.
Множество всех элементов, обладающих свойством Р,
записывается следующим образом: {х \ х имеет свой-
свойство Р).
Множество, не содержащее ни одного элемента, назы-
называется пустым множеством и обозначается 0.
Для произвольных множеств A is. В множество А есть
подмножество В (обозначение А ^ В или В з 4), если
каждый элемент А является и элементом В.
Множества А и В равны (обозначение А = В), если
A s В и В s А.
Теоретико-множественное объединение или просто
объединение семейства множеств {Аа \ а} (обозначение
U Аа) есть множество элементов, содержащихся по край-
а
ней мере в одном из множеств Аа. Объединение системы,
не содержащей ни одного множества, считается по опре-
определению пустым множеством.
Теоретико-множественное пересечение или просто пере-
пересечение системы множеств {Аа \]а} (обозначение П^а)
а
есть множество элементов, содержащихся в каждом
из множеств Аа.
Если [система состоит из конечного (бесконечного)
числа множеств Л1? ..., Ап (Аи ..., Ап, ...), то объединение
может быть записано как А1 [} А2 (J ... U An, или U Aiy
п
или и At ( U Аг или U At), а пересечение — как
il i^l ii
Предварительные сведений 13
п
• • • П An, или П Ли или П М ( П Ах или
оо
П At).
Множества А и В не пересекаются, если А (] В = 0.
Л —5, где Л и 5 —произвольные множества, есть множе-
множество тех элементов А, которые не содержатся в 5.
Если А ^ В, то дополнение А до 5 есть множество
5 — 4 (обычно В подразумевается).
Через # (А) обозначается число элементов конечного
множества А.
Семейство всех подмножеств произвольного множества
А обозначается через 2Л, т. е. 2А = {В \ В е А}.
Множество, состоящее из единственного элемента а,
иногда записывается как а (вместо обычного {а}).
Алфавит — непустое конечное множество. Буква 2
будет всегда, если не оговорено противное, обозначать
алфавит г).
Цепочка (длины k ^ 0) над алфавитом (в алфавите)
2 есть конечная последовательность хи . . ., xh элемен-
элементов 2. Цепочка хи . . ., xk обычно записывается без
запятых, т. е. в виде х{ . . . xk.
Цепочка длины нуль называется пустой цепочкой
и обозначается е.
Непустой цепочкой называется цепочка длины к ^> 1.
Длина цепочки w обозначается \w\.
Цепочка х^ . . . xh называется Ъ-цепочкой, если к ^ 1
и каждое хг принадлежит 2.
2-цепочки Xi . . . хТ и у± . . . ys равны (обозначение
xi . . . хт = г/i . . .г/8), если г = s и хг = yt для всех i.
Пусть х = Xi . . ,хг и у = ух . . ,ys — некоторые цепоч-
цепочки. Конкатенацией или (прямым) произведением х и у
(обозначение х-у) называется цепочка х^ . . ,хТ у<±. . . ys.
Обычно вместо х-у пишут ху.
п
х) 2 в этом употреблении следует отличать от 2 хь чт0> как
обычно, является обозначением для суммы чисел хт, . . .,
т. е. хт + . . . + хп.
w
,o _
14 Предварительные сведения
Множество всех цепочек (включая пустую цепочку е)
над алфавитом 2 обозначается через 2*. Упорядоченная
пара B*,-), где • обозначает операцию конкатенации,
называется свободной полугруппой {порожденной алфави-
алфавитом 2). Обычно пишут 2* вместо B*,-).
Пусть X и Y — некоторые подмножества множества
2*. (Прямым) произведением X и Y (обозначение X-Y
или XY) называется множество {ху \ х£Х, y£Y}.
Пусть 4g J*, тогда А0 = {&} и для каждого п ^ 1
Ап = Ап~гА. Итерацией множества А (обозначение А*)
оо
называется множество (J Ап.
71=0
Таким образом, если дана некоторая цепочка w, то
— г, wn = гг;п"хгг;для всех п ^ 1 и w* — {wn | я ^ 0}.
Пусть х ж у — некоторые цепочки из 2*. Цепочка х
является подцепочкой цепочки г/, если у = wa;y для подхо-
подходящих цепочек и и г; из 2*. Цепочка л: есть начало цепоч-
цепочки у, если у = xv для подходящей цепочки i; из 2*.
Цепочка х является концом цепочки г/, если у = их для
подходящей цепочки и из 2*.
Декартовым произведением конечной последователь-
последовательности множеств Аь . . ., Ап (обозначение Ai х . . . X Ап)
называется множество всех тг-ок вида (аь . . ., ап), где
at £At для каждого i.
Отношением R на множестве А называется подмноже-
подмножество R множества А X А. Обычно вместо (х, у) £ R
пишут xRy или «имеет место xRy». Запись xRy обозначает,
что xRу не имеет места.
Отношение R на непустом множестве А называется
отношением эквивалентности, если A) для всех х из А
имеет место xRx, B) из xRy следует yRx и C) из xRy
и yRz следует xRz.
Если R — некоторое отношение эквивалентности на А,
то каждое множество [х] —{у \ xRy}, щех £ Л, называется
классом эквивалентности по отношению R.
Отношение ^ на множестве А называется частичным
порядком на А, если A) х ^ х для всех х из А, B) из х ^ у
и у ^ z следует х ^ z и C) изж^г/иг/^ж следует
х = у.
Упорядоченная пара (А, ^ ) называется частично упо-
упорядоченным множеством.
Предварительные сведения 15
Пусть (А, <) — частично упорядоченное множество;
х0 £ А называется минимальным элементом, если из х ^ #0
следует х0 = я. Элемент я0 £ Л называется максимальным,
если из #о ^ х следует я0 = я. Элементы хну множества А
называются несравнимыми, если не имеет места ни х ^ у,
ни у < я.
Порядком (или линейным порядком) на множестве Л
называется частичный порядок ^ на множестве Л, удов-
удовлетворяющий следующему условию: для всех х, у £ 4
либо х ^ у, либо у ^ х.
Функцией (отображением, преобразованием, операцией)
называется упорядоченная тройка (Л, 5, /), где А ж В —
непустые множества и каждому элементу х множе-
множества А соответствует элемент (обозначаемый / (х)) мно-
множества В. Тройка (А, В, /) называется также отображе-
отображением множества А во множество В.
Для обозначения функции (А, В, /) обычно употреб-
употребляется символ /, при этом говорят, что функция (А, В, /)
определена на множестве А.
Пусть / — отображение множества А во множество В.
Если Е^А, то f(E) = {f(x)\x£E}. Если Е е В,
то /-1 (Е) = {х | / (х) е Е). Если / (А) = В, то / назы-
называется отображением множества А на множество В.
Отображение / называется взаимно однозначным, если
из Xi Ф х2 следует / (я4) Ф f (я2).
Пусть / — отображение множества А во множество В
ж g — отображение множества С во множество D, причем
В ^ С. Тогда через gf обозначается отображение множе-
множества А во множество D, определенное следующим образом:
Sf (я) = g [/ (я)] для всех х из Л.
Если (Л, 5, /) и (С, D, g) — отображения, то запись gf
возможна лишь в случае, когда В ^ С.
Множество А называется не более чем счетным, если
существует взаимно однозначное отображение / множест-
множества А во множество натуральных чисел. Множество А
называется счетным, если оно не более чем счетно и бес-
бесконечно.
Множество называется несчетным, если оно не является
не более чем счетным. Если из несчетного множества
удалить не более чем счетное число элементов, то остав-
оставшееся множество также будет несчетным.
16 Предварительные сведения
Бесконечная последовательность {хп} называется
периодической, если существуют натуральные числа
п0 и щ, такие, что хп+Пх = хп для каждого натурального
числа п ^ п0. Множество В неотрицательных чисел
называется периодическим, если либо В конечно, либо
последовательность уи у2 — уи . . ., уп+1 — уп, . . ., где
*/ь Уъ, • • • — элементы множества В, расположенные
по возрастанию, является периодической.
Конечным ориентированным графом называется упоря-
упорядоченная пара (V, D), где
1. V — непустое конечное множество (множество вер-
шин).
2. D — конечная последовательность (рь q^), . . ,
• • •» (Pr,Qr) элементов множества V X V. (Каждая упоря-
упорядоченная пара (pt, qt) есть дуга, ведущая из pt в qt).
Пусть (F, D) — конечный ориентированный граф.
Конечная непустая последовательность П
(Pin Qh), • • -»(PV qib)
дуг из D называется путем, если qi. — pi. для всех
/A</<&—1)- П называется также путем из pix в qi
(длины к). Все рг и qi называются вершинами пути;
иначе: путь содержит все вершины pi. и #*..
Если в конечном ориентированном графе (V, D) для
любых двух вершин р и q существует не более одного i,
для которого (pt, qi) = (p, q), то произвольный путь
(Pin Qii)i • • •»(Pik> Qik) записывается обычно в виде ph, qh,
Пусть П! — дуть (ph, qix), . . ., (pik, qih), П2 — путь
(pW ?*л+1)'---'(Р**' ?i*) и при этом qik==Pik+\' Тогда
ЩПз есть путь (pilf дц), . ..,(Pir ?it).
Пусть П4 и П2 — некоторые пути. Путь П4 назы-
называется концом (заключительным отрезком) пути П2, если
либо Щ = П2, либо П2 = П3П1 для подходящего пути П3.
Конечным ориентированным нагруженным графом назы-
называется упорядоченная четверка (V, D, Е, /), где
1. (V, D) — конечный ориентированный граф, D —
последовательность (ри qj, . . ., (рг, qr).
Предварительные сведения 17
2. Е — непустое конечное множество (множество поме-
пометок).
3. / — отображение множества {1, . . ., г} в Е (/ (i) —-
пометка при дуге (pt, qt)).
Пусть (F, Z), Е, /) — конечный ориентированный
нагруженный граф и Е ^ 2*. Тогда цепочкой, производи-
производимой путем (pi , qt)9 . . ., (pib, qtb), называется цепочка
11 Я, ■ ft
f (h) ■ ■ ■ / («*)•
Конечным корневым ориентированным деревом с поме-
помеченными вершинами называется упорядоченная пятерка
(F, D, Я, /, 50), где
1. (F, D) — конечный ориентированный граф,
D — последовательность (рь gj, . . ., (рг, дг).
2. Я — непустое конечное множество (множество поме-
пометок при вершинах).
3. / — отображение множества V во множество
Н (/ (и) — пометка при вершине v).
4. s0 — элемент множества V (корень).
5. Qt Ф qj для i ф j.
6. Для каждого q Ф s0 из V существует путь из s0 в q.
7. Ни для какого q £ F не существует пути из g в д.
Пусть J?" = {fa, . . ., хп) | каждое #* есть рациональ-
рациональное число}. Каждый элемент множества Мп есть вектор.
Для всякого рационального числа с и для произвольных
элементов х = (#ь . . ., #п) и г/ = (уь . . ., уЛ) множе-
множества Мп полагаем х + у = (zt + уи . . ., хп + уп)
и сх = (cXi, . . ., схп). Через (Мп, + ) обозначается век-
векторное пространство всех п-ок рациональных чисел над
полем рациональных чисел.
Пусть (хи . . ., хп) и' (уи . . ., уп) — произвольные
элементы множества Мп* По определению (#ь . . ., хп) =
= (Уь • • •» Уп), если ^i = У^ Для всех *•
Система {zi, . . ., zk} элементов множества Мп назы-
называется линейно независимой, если из с& +• • • + ckzk =
= @, . . ., 0) следует, что для каждого i сг = 0. В про-
противном случае система {z1? . . ., zk} является линейно
зависимой.
Всякая система из п + 1 вектора векторного про-
пространства Мп является линейно зависимой.
Пусть {z1? . . ., zn) —линейно независимая система
векторов пространства 31й. Тогда каждое х из Мп един-
18
Предварительные сведения
ственным образом представимо в виде линейной комбина-
комбинации векторов zt — иначе говоря, существует единствен-
единственный набор рациональных чисел q, . . ., сп, таких, что
Xz==LC\Z\^ ~j~ « • • г" CnZn.
Пусть {z1? ..., Zh | к < n) — линейно независимая система
векторов пространства ^?п. Тогда в пространстве Мп
существуют векторы zk+1, ...,zn, такие, что система
'{zi,...izn} является линейно независимой. Более того,
если {z1? ..., zh | к <С п) — линейно независимая система
векторов пространства Мп и {^, ...,Zn} — некоторая дру-
другая линейно независимая система векторов простран-
пространства Мп, то существует п — к векторов z^, скажем z^, ...
.. ., zl таких, что система {zu ..., z&, zL, ... ,z\ }
Ti~R *■ П—H,
является линейно независимой.
Если {zt = (ziu ..., Zin) 11 < i < ^} — линейно независи-
независимая система векторов пространства Мп, то1)
1 ... zin
через
чисел
Если tu . . , tr — действительные числа, то
max {tt\ I <; i <; г} обозначают наибольшее из
tt, а через min {tt\ I ^ i ^ г) — наименьшее.
Пусть т и п — целые числа, т является делителем п,
если существует целое число /с, такое, что п = кт.
Наибольшим общим делителем целых чисел tt назы-
называется наибольшее целое число иг, являющееся делителем
каждого из чисел tt.
Целые числа tu . . ., tr называются взаимно простыми,
если их наибольший общий делитель равен единице.
2) Мы предполагаем, что читатель знаком с элементарной теори-
теорией определителей в объеме, например, первой главы йниги [Ку].
Г ЛАВА 1
КОНТЕКСТНО-СВОБОДНЫЕ ЯЗЫКИ
И ЯЗЫКИ ТИПА АЛГОЛ
Говоря нестрого, формальный язык есть множество
цепочек (называемых обычно либо словами, либо «правиль-
«правильно построенными предложениями», либо «грамматически
правильными предложениями»), составленных из элемен-
элементов некоторого алфавита (множества основных символов).
Цепочки языка выделяются с помощью конечного множе-
множества правил (называемого «грамматикой»). Мы займемся
изучением одного специального семейства формальных
языков; понятия, относящиеся к этому семейству, возник-
возникли в результате исследования естественных языков, таких,
как английский, и языков программирования, таких, как
АЛГОЛ. Мы будем рассматривать главным образом те
понятия и те свойства данного семейства, которые (как,
например, «определенность») представляют интерес для
машинной математики. В разд. 1.1 и 1.3 приводятся два
различных определения указанного семейства и доказы-
доказывается их эквивалентность. В дальнейших разделах главы
мы введем некоторые понятия, связанные с «грамматика-
«грамматиками», и получим несколько полезных результатов.
1,1. Языки, порождаемые грамматиками
Как уже отмечалось выше, формальный язык L есть
множество цепочек в алфавите 2 (т. е. L ^ 2*), выделен-
выделенных с помощью некоторого конечного множества правил.
Таким образом, проблема определения того или иного
формального языка сводится к проблеме определения
соответствующих правил и указания способа выделения
цепочек с помощью этих правил. Мы рассмотрим один
довольно общий тип правил — так называемые «правила
подстановки», и укажем, как ими пользоваться.
20
Рл. 1. Контекстно-свободные языки
Для обоснования выбора правил *) рассмотрим задачу
анализа предложения «(The) (man) (ate) (the) (tomato)» (Че-
(Человек ел помидор). Некоторый анализ этого предложения
изображен на рис. 1.1, где символ а обозначает «предло-
«предложение», (NP) —«именную группу», (VP) —«группу глаго-
глагола», Т —«артикль», N —«существительное», V —«глагол».
(The)
т*
(man)
N
(ate)
(the)
(tomato)
N
(NP)>
(VP)>
(NP)
Рис. 1.1
(Некоторые последовательности символов, например «man»,
«VP», заключены в скобки, чтобы подчеркнуть, что они
являются неделимыми объектами.) Рисунок показывает,
что последовательность неделимых объектов «(The) (man)»
является именной группой, «(ate) (the) (tomato)»—группой
глагола и т. д. Мы можем предположить, что искомая
грамматика состоит (хотя бы частично) из правил вида
а -> (NP) (VP), (NP) ->- TN, V ->■ (ate) и т. д., где сим-
символы, стоящие слева от -»•, могут быть заменены на сим-
символы, стоящие справа от -> (на рисунке символы, стоя-
*) Дополнительные комментарии и разъяснения, относящиеся
к лингвистическому смыслу правил подстановки, читатель может
найти в работе [Хо 2]. [Лингвистические аспекты теории формаль-
формальных грамматик рассматриваются довольно подробно в [ГМ].— Ред.]
1.1. Языки, порождаемые грамматиками 21
щие справа от ->-, расположены над символами, стоящими
слева от ->). Приняв такое допущение, можно считать,
что данное предложение порождается с помощью «правил
подстановки» по следующей схеме (на каждом этапе при-
применяется в точности одно правило):
cr=»(NP) (VPHTN (VPH(The) N (VPH(The) (man)
=Ф (The) (man) V (NP) =ф (The)(man)(ate) (NP) =Ф
=^> (The) (man) (ate) TN =ф (The) (man) (ate) (the) N =>
=Ф (The) (man) (ate) (the) (tomato)
(Символ =Ф имеет следующий смысл: если один из недели-
неделимых объектов слева от =^> заменить, а остальные пере-
переписать без изменения, то получится цепочка неделимых
объектов, расположенная справа от =>.)
Дадим теперь строгое определение понятий, о которых
шла речь в предыдущем абзаце.
Определение. Порождающей грамматикой (или
системой подстановок) называется упорядоченная четвер-
четверка G = (F, 2, Р, а), где
1. V — конечный алфавит.
2. 2 ^ V — конечный алфавит.
3. Р — конечное множество упорядоченных пар вида
(и, и), где и 6 (V - 2)* - {е} и и 6 V*.
4. а 6 V - 2 х).
Элементы множества V — 2 называются вспомогатель-
вспомогательными символами (или переменными). Элементы множества
2 называются основными символами (или\ буквами).
2 и V — 2 называются соответственно основным и вспомо-
вспомогательным алфавитом. Элементы (и, и) множества Р назы-
называются правилами (или правилами подстановки) и запи-
записываются обычно в виде и —►■ и. Элемент а называется
начальным символом или аксиомой.
2) В литературе чаще встречается несколько иное определение
порождающей грамматики, отличающееся от данного тем, что на вид
левых частей правил не накладывается никаких ограничений,
т. е. условие и £ (У — 2)* — {г} в пункте 3 заменяется условием
и$ У*. Такое изменение определения не меняет класса языков?
порождаемых грамматиками.— Прим. ред.
22 Гл. 1. Контекстно-свободные языки
Содержательно элементы множества V — 2 представ-
представляют собой «металингвистические переменные» или «син-
«синтаксические классы» (иначе «грамматические классы»),
элементы множества 2 — элементарные единицы опреде-
определяемого языка, Р — множество грамматических правил,
а есть синтаксический класс «предложений».
Примеры. 1. Пусть G = ({а, Ь, с, g, v}, {а, Ъ, с}, Р, g),
где Р состоит из правил g ->- ab, g ->- bgvav, g ->- е, v ->- bgcb
и gv ->- vab. Здесь £ есть порождающая грамматика.
2. Пусть £ = ({а, Ь, а}, {а, &}, Р, а), где Р состоит из пра-
правил a ->- aobao, a -»- Ь и ао ->- Ь. Поскольку aa не принадлежит мно-
множеству (У — 2)* — {е}, £ не является порождающей грамматикой.
3. Пусть G = ({а, Ь, сг, £}, {а, 6}, Р, а), где Р состоит из
правил a ->- ab, а -»- aag, ag -> Ь и а-* Ьо. Поскольку а не принад-
принадлежит множеству (У— 2)* — {е}, G не является порождающей
грамматикой.
Укажем теперь, как применяются правила. Способ
их применения есть обобщение процедуры замены, проил-
проиллюстрированной на рис. 1.1.
Определение. Пусть G = (F, 2, Р, а) — порож-
порождающая грамматика и w, у £ F*. Будем писать w =$ у
G
(или w=$y, если G подразумевается), если существуют
z1? z2, ииг;, такие, что м; = ^м^, г/ = ztuz2 и и ->■ v £ Р.
* *
Далее, пишем w=$y (или w =$ у, если G подразумевается),
G
если либо w = у, либо существуют м?0» • • •» ^г, такие,
что w0 = w, wr = у л wt =$ Wi+i для всех i. Последова-
Последовательность w0, . . ., wr называется выводом (длины г) и запи-
записывается в виде
*
*
Иначе: w =$ у реализуется с помощью вывода w0 =ф
=^> . . . =^> wr. Будем говорить также, что w0 =Ф wt =ф
=^> . . . =^> wr есть вывоЗ м;г из w0.
Пример. Пусть G = (У, 2, Р, а), где V = {а, £, а, Ь}, 2 =
= {а, Ь} и Р состоит из правил о -* ab, о ->■ alob, £ -> ЬаЬ, |а -> Ъ
и g -> г. Тогда последовательности
а =Ф а^оЬ =^> abb и agag =Ф а|а =Ф abobo =Ф abobab
являются выводами.
1.1. Языки, порождаемые грамматиками 23
Используя введенные только что понятия, мы можем
указать способ, при помощи которого грамматика выде-
выделяет цепочки, составляющие «язык».
Определение. Пусть G = (F, 2, Р, а) —-
порождающая грамматика.
Множество
называется языком, порождаемым грамматикой. (Иначе —
грамматика G порождает язык L (G).) Каждая цепочки
языка L (G) является выводимой (из а).
Итак, для каждой порождающей грамматики G порож-
порождаемый ею язык есть множество L (G) = 2* П DG, где
DG — наименьшее множество, которое A) содержит a
и B) содержит цепочку иуи всякий раз, когда uwu £ DG
иш ->■ у £ Р. Другими словами, порождающая грамматика
выделяет именно те цепочки из множества 2*, которые
являются выводимыми (из а).
Произвольные порождающие грамматики могут порож-
порождать множества весьма общего вида *). Поэтому мы нало-
наложим на допустимые правила подстановки два ограничения.
Каждое из этих ограничений приводит к возникновению
некоторого специального семейства формальных языков.
Определение. Порождающая грамматика
G = (F, 2, Р, a) называется грамматикой непосредственно
составляющих (НС-грамматикой), если каждое ее правило
имеет вид и& -►■ иуи, где £ £ V — 2; и, v £ (V — 2)*"
и у £ V* — {&}. Язык, порождаемый НС-грамматикой,
называется НС-языком 2).
2) Известно, что семейство языков, порождаемых грамматиками,
совпадает с хорошо изученным в математической логике семейст-
семейством рекурсивно перечислимых множеств [Хо 3].
2) Термин «грамматики непосредственно составляющих» связан
с тем, что такие грамматики позволяют осуществлять анализ выводи-
выводимых в них предложений путем разбиения на словосочетания (так,
как показано на рис. 1.1), называемые в лингвистике «составляю-
«составляющими» или «непосредственно составляющими».
В литературе более распространено другое определение НС-
грамматики, в котором условие u, v£ (У — 2)* заменяется более
общим условием u, v £ У*. Такое изменение определения не сказы-
сказывается ни на объеме класса НС-языков, ни на виде систем состав-
составляющих, сопоставляемых грамматиками выводимым в них пред-
предложениям.— Прим. ред,
24 Гл. 1. Контекстно-свободные языки
Таким образом, замена символа !• цепочкой у возможна
лишь в контексте и . . . v.
Существуют языки L ^ 2* — {е}, порождаемые грам-
грамматиками и не являющиеся НС-языками *). Несмотря
на несомненную важность НС-языков для изучения естест-
естественных языков и языков программирования, о них извест-
известно немного (хотя положение-уже начинает меняться),
и мы не будем ими заниматься. Читателю, желающему
детально ознакомиться с НС-языками, рекомендуется сле-
следующая литература: [На 2; Ku; Lai, 2; My 2] 2).
Приведем определение семейства языков, являющегося
основным объектом наших дальнейших рассмотрений.
Определение. Порождающая, грамматика G —
= F, 2, Р, а) называется контекстно-свободной
(К С-грамматикой), если каждое ее правило имеет вид
| -»■ v, где I £ V — 2 и v 6 V*. Язык LgH* называется
контекстно-свободным языком (КС-языком), если он
порождается некоторой КС-грамматикой.
Термин «контекстно-свободная» в названии грамматики
отражает тот факт, что замена вспомогательного символа
на цепочку не зависит от контекста.
Примеры. 1. Пусть V = {I, а, Ь}, 2 = {а, Ь} и Р =
= {I -^ а, I -^ alalb}; G = (У, 2, Р, £) является КС-граммати-
КС-грамматикой.
2. Пусть У = {g, а, Ь}, 2 = {а,Ь}иР={^ ga, gg -+ aba)',
G — (V, S, P, ?) — не КС-грамматика, поскольку цепочка слева
от ->- в правиле_gg -+~dba не принадлежит множеству V — 2.
Каждая КС-грамматика, не содержащая правил вида
£ —>- е, является НС-грамматикой. Каждый КС-язык
L ^ 2* — {г} является НС-языком (см. ниже теоре-
2) Каждый НС-язык является рекурсивным множеством и каж-
каждое рекурсивно перечислимое множество является языком, поро-
порождаемым грамматикой [Хо 3]. Таким образом, любое рекурсивно
перечислимое нерекурсивное множество [Ма] может служить при-
примером языка, порождаемого грамматикой и не являющегося НС-
языком. [Существуют и рекурсивные — и даже примитивно рекур-
рекурсивные — множества, не являющиеся НС-языками. Более того,
в имеющихся в настоящее время классификациях примитивно
рекурсивных множеств по сложности НС-языки оказываются
на низших ступенях иерархии.— Ред.]
2) См. также [Хо 5, гл. 4, 6, 7].— Прим. ред.
1.1. Языки, порождаемые грамматиками 25
му 1.8.1); обратное, вообще говоря, неверно. Например,
язык {anbnan \ n ;> 1} является НС-языком (упр. 1.1.9),
но не является КС-языком (теорема 3.1.1).
Заметим, что грамматика, на которой основан приведен-
приведенный выше анализ фразы «(The) (man) (ate) (the) (tomato)»,
является контекстно-свободной. Однако несмотря на оче-
очевидную адекватность КС-грамматики в данном случае,
подавляющее большинство лингвистов сходится в мнении,
что КС-языки недостаточно мощны для «адекватного»
моделирования естественных языков. (Общепризнанной
математической модели естественных языков, пока в сущ-
сущности нет). Тем не менее КС-языки представляют интерес
(для нематематических целей) в том отношении, что
1) они служат исходным пунктом при построении более
адекватных моделей естественных языков [Хо 2],
2) они являются хорошим приближением для синтак-
синтаксических классов используемых в настоящее время язы-
языков программирования.
Следующие два раздела будут посвящены более подроб-
подробному разъяснению второго пункта.
Упражнения 1.1
1. Пусть G— порождающая грамматика (У, 2, Р, а), где
У = {а, I, а, Ь}, 2 = {а, Ь} и Р = {а -+ аЪ, а -+ a%ob, I -+
->■ bob, £а ->- Ь, g ->- е}. Показать, что цепочка ababbabb принад-
принадлежит множеству L (G).
2. Пусть G = (У, 2, Р, а), где 2 = {а, Ь, с} и Р =
= {а -►- а2а, а -►- 6с}. Показать, что L (£) = (a2)* be.
3. (Обобщение упр. 2.) Пусть G = (У, 2, Р, а), где Р =
= {а ->- ^а, . . ., а ->- u;sa, а ->- иА, . . ., а ->- щ \ wti uj ^2*
для всех г, /}. Показать, что L (G) = {н?ь . . ., ws}* {щ, . . ., щ}.
4. Пусть G = (У, 2, Р, а), где 2 = {а} и Р =
= {а -+ [хту, у -^ ту, у -^ [х, т[х -* |а, т? -^ |тр, fxg -^ jxv,
vt-^ tv, va ->- fxa, рт-^ тр, pa-^ aa, [xjx ->- е}. Показать, что
п
L (G) = {а1 <п> | л > 1}, где * (и) = У1, i для всех и.
i=l
5. Пусть 2 = {а, Ь). Построить грамматики, порождающие
следующие языки.
a. Язык {anbnan | п>1}.
b. Язык {ап2 | л >1}.
с Язык (an6n2 | л >1}.
26 Гл. 1. Контекстно-свободные языки
6. (Упражнение рассчитано на читателя, знакомого с теорией
групп.) Пусть 2 = {аи . . ., ат, а^1, . . ., а^1}, Р =
= {а -+ оагоа уха | г = 1, . . ., m}[j {а -^ оат1оаго | i = l,. . ., m}(J
U{a-^ е} и G = ({а} U 2, 2, Р, а). Показать, что L (G) есть
множество слов (цепочек), равных единице в свободной группе
с системой свободных образующих {с^, . . ., ат}. Множество
L (G) называется языком Дикка [Ch 5].
7. Показать, что никакой НС-язык не содержит пустой цепоч-
цепочки 8.
8. Показать, что множество цепочек LCE* тогда и только
тогда является НС-языком, когда L = L (G) для подходящей грам-
грамматики G = (У, 2, Р, а), в которой каждое правило и -+ v £ Р
удовлетворяет условию | и | <; | v |. См. [Хо 3].
9. Пусть 2 = {а, Ь}. Показать, что {anbnan \ п > 1} есть
НС-язык.
10. Пусть У = {£ь £2* а, 6} и 2 = {а, &}. Для каких мно-
множеств Р (см. ниже) четверка (У, 2, Р, £2) является грамматикой?
a. Р= {Ь-*Ь, £2 + 4ib}.
b. Р=
с Р= {I1t1ti, gi?2}
d. P = {Ь -^ ЬЬ, ЬЕа -^ ag2, g2 -^ a}.
И. Пусть 2 = {аи . . ., ап, V, Л, -,[,]}иб= ({a}U 2,
2, Р, а), где Р = {a -* at \ 1 < i < n) |J {a -^ ~ a, a -►
-*- [а V а], а -^ [а Д а]}. Показать, что язык L (G) есть мно-
множество всех правильно построенных формул исчисления высказы-
высказываний с п переменными.
12. КС-грамматика G = (У, 2, Р, а) называется операторной
грамматикой, если ни одно из ее правил не имеет вида £ ->- 8 или
| -►■ мару, где а, р G У — 2 и и, у £ У* [F1 3]. Показать, что
если в операторной грамматике х =Ф у, где ж, у £ V* и а: не содер-
содержит ни одного элемента множества (У— 2) (У — 2), то у не содер-
содержит ни одного элемента множества (У — 2) (У — 2).
13. Пусть G = (У, 2, Р, а) — операторная грамматика и а,
Ь £ 2. Будем писать (а) а = Ь, если g -> жабг/ или g
для подходящих х, у £ У*; g, v £ У — 2; (b) a-> 6, если |
-*- a;vbi/ и v =$zaw для подходящих ж, г/, z ^ У*; g, v G У — 2
и ш £ (У — 2)* и (с) а <-Ь, если g -^ a;avi/ и v=$wbz для под-
подходящих ж, г/, z ^ У*; g, v £ У — 2 и ш £ (У — 2)*. Допустим,
что для любых а и Ь из 2 справедливо не более чем одно из трех
соотношений а = Ь, а<»6 и а»> Ъ. (В этом случае б1 называется
грамматикой с отношением предшествования [F1 3].) Доказать,
что если g =$ хаЪ,Ъу или o=$xaby) a, 6 £ 2; ж, г/ £ У* и g £
£ У — 2, то имеет место в точности одно из трех соотношений
1.2. Языки типа АЛГОЛ 27
1.2. Языки типа АЛГОЛ1)
Мы рассмотрим сейчас некоторую модель синтаксиче-
синтаксических классов международного языка программирования
АЛГОЛ [На]. При этом мы сначала проиллюстрируем
на примерах метод описания синтаксических классов и уже
затем формализуем его.
Рассмотрим следующие три «металингвистические фор-
формулы» («формулы»), взятые из описания АЛГОЛа.
1. (идентификатор) :: = (буква) | (идентификатор)
(буква) | (идентификатор) (цифра).
2. (целое без знака) :: = (цифра) | (целое без знака)
(цифра).
3. (метка) :: = (идентификатор) | (целое без знака).
Это типичные примеры формул, используемых для
описания различных синтаксических классов, составляю-
составляющих АЛГОЛ. (АЛГОЛ имеет более 150 таких формул.)
Форма, в которой они записаны, называется нормальной
формой Бэкуса, сокращенно НФБ; она используется для
описания многих языков программирования. Перепишем
формулы 1 — 3 в более привычных математических обозна-
обозначениях, а затем укажем интерпретацию символов. Заме-
Заменим (идентификатор) на /, (буква) — на Lb (цифра) —
на D, (целое без знака) — на f/, (метка) — на L2, :: =
— на =и | — на U . В результате получим более ком-
компактную (и более «математическую») запись:
4. / = и\IЬх\}Ю.
5. U = D[)UD.
6. L2 = I[) U.
В АЛГОЛе Li и D — конечные множества цепочек
(Lj — конечное множество букв и D — множество, состоя-
состоящее из первых десяти неотрицательных целых чисел).
Формулы 4 — 6 определяют множества цепочек /, U и L2
следующим образом:
2) Читатель, который не интересуется специально мотивами
изучения контекстно-свободных языков или готов принять на веру,
что эти языки являются приближением к синтаксическим классам
современных языков программирования, может опустить этот
и следующий разделы. Специфические обозначения и понятия этих
двух разделов нигде больше в тексте не встречаются.
28 Гл. 1, Контекстно-свободные языки
8. Если / э Г, U = U' и L2 = L;, to / => U \] ГЬХ U
U/'£>, U =>D\]U'D TtLt=sr[}U'.
9. Множества /, U и L2 состоят только из тех цепочек,
которые должны им принадлежать в силу условий 7 и 8.
«Вычисление» множеств /, U и L2 может быть представ-
представлено несколько иначе. Запишем формулы 4 — 6 в функ-
функциональной форме:
10. I =f, (I, U, L2).
11. U = ft(I, U, L2).
12. L2 = /3 (/, U, L2).
Тогда /, С/ и L2 могут быть вычислены следующим образом:
13. I(O)=/i@, 0, 0)=£1U0AU0# = £i.tf(O) =
= /2@, 0, 0)=Z>U0£>=-D и£2(О)=/3@, 0, 0) =
= 0U0 = 0.
14. Для fc > 0 положим / (& + 1)=/, (/(&), U(k),L2(k)),
U(k + 1) =.ft(I(k),U(k), Lt(k)) и L,(ft + 1) =
= /3 (/ (Л), С/ (A), L2 (*g.
и L2 =
15
oo
= и
. Положим
L2 (к).
/ =
и
/
и
= [
J
fe=0
и
(к)
ft0
Прежде чем дать формальное описание системы урав-
уравнений и ее решения, рассмотрим функции / Aи . . ., 1п),
представляющие собой обобщение функций ft (I, U, Ь2).
Определение. Пусть 2 — некоторый алфавит,
£i, . . ., \п — переменные, принимающие значения из
множества 22* (множества всех подмножеств множе-
множества 2*), и V'= 2 U {Еь • • -, In}- Рассмотрим функ-
функции / (li, . . ., ^п), являющиеся цолиномами вида
8
f Aи • • ., In) = .U я, (gb . . ., £п), где каяедое
^г (^ь • • •, ?п) (называемое членом функции) является
конечным произведением некоторых переменных и под-
подмножеств множества 2* (называемых коэффициен-
коэффициентами). (/ (£ь . . ., £п) является отображением множества
B2* х • • * X 2s*) (гс раз) во множество 2s*.) Полином
/ Aи . . ., 1п) называется стандартной функцией, если
все его коэффициенты являются конечными множествами.
Поскольку произведение множеств дистрибутивно
по отношению к их объединению, можно считать — так
1.2. Языки типа АЛГОЛ 29
мы будем делать,— что каждый член стандартной функции
является цепочкой в алфавите V*.
Пример. Пусть / (%и £2, £3) = (^i£i U А2) Ыь где At и
и А2 — подмножества множества 2*. Тогда, как в элементарной
алгебре, / (|lf g2, g3) = ^iEiSz^i U ^2^1- Если Л± = {ab, са}
иА2= {а, &с},то/(^, g2, Ез) =({а&} U {ee»EiE2({eb} U {са}) U
U ({«} U (И) ?2 ({«&} U {са}) - аЫ^аЬ U a&gi^a U calfaab U
U са^2са U а^2«& U а^г^а U bcl2ab Q Ъс12са. Таким образом, каж-
каждый член функции / (glt g2» ?з) является цепочкой в алфавите 7*.
При изучении «систем уравнений» нам понадобится
некоторый метод, позволяющий рассматривать одновре-
одновременно несколько функций.
Определение. Пусть U (Ъи • • •, 5Л), •••
• • •» /n (£i» • • -, En) — стандартные функции, отображающие
множество B2*)пво множество 22*. Функция/FЬ . . ., £п) =
— (/ь • • -, /п), отображающая множество B2*)п во
множество B2*)п и определяемая для каждой тг-ки
(Аи . . ., Лп) 6 B2*)п равенством
/(Л4, . .., Ап) =
= (/iD •• ., ЛО, . .,М4 . . ., Ап)),
называется п-компонентной стандартной функцией.
Формализация описываемой системы понятий будет
закончена, если мы определим «решение» уравнения
(li, • • ., In) = / Fi, • • ., 5п), ГДе, / (Si, • • -? 5n) есть
^-компонентная стандартная функция.
Определение. Пусть / Aи ..., %п) есть д-компо-
нентная стандартная функция. Положим а@> == (а^, ..., а^0)) =
= /@, -м 0) идлявсехЛцустьа(Л+1) = (а^+1), ..., с4?+1)) =
00 (ft)
= /(а<*>). Обозначим через а; множество (J а) '
ft=0
A</<тг). Тогда гс-ка (а1? ..., ад) называется «решением»
уравнения (^, . .., %п) = / (&, .. ., |л), а каждая компо-
компонента а^ называется языком типа АЛГОЛ.
30 Гл. 1. Контекстно-свободные языки
Пример. Пусть / (li9 g2) = (/ь /г), где U = c£i U d%2 U a
и /2 = d6i U ^2 U Ь, 2 = {а, &, с, d}. Тогда
= {а,
= {а, са,
В большинстве случаев множества ajft) имеют довольно
сложное строение, а нахождение общих формул для компо-
компонент решения является, как правило, трудной задачей.
Хотя понятие языка типа АЛГОЛ получено формали-
формализацией принятого в АЛГОЛе способа определения синтак-
синтаксических классов, языки типа АЛГОЛ являются лишь
приближением к синтаксическим классам языков програм-
программирования. В большинстве языков программирования
содержатся синтаксические классы, для определения кото-
которых в описанный только что формализм приходится вно-
вносить некоторые изменения. Кроме того, даже с «утилитар-
«утилитарной» точки зрения в АЛГОЛе имеются противоречия.
Если определять АЛГОЛ, как это сделано выше, исполь-
использование некоторых синтаксических классов для построе-
построения программ потребует некоторых дополнительных допу-
допущений. Подробнее об этом см. [F1 1; Саг]. Для языков
программирования, так же как и для естественных языков,
пока что нет еще вполне удовлетворительной модели.
Упражнения 1.2.
1. Пусть 2 = {а А с} и / &и £2) = (Д, /2), где h =
= a^ib U cl2 U а и h = li« U &?2 U с- Найти множества а£0),
а«», а?>, <#>, а<2) и с42>.
2. Пусть 2 = {а, Ь, с} и/ (£) = (/* (£)), где h (I) = alb |J с.
Показать, что с^ = {апсрп \ п^> 0}.
1,3. Эквивалентность КС-языков и языков типа АЛГОЛ
В настоящем разделе мы докажем, что класс КС-языков
совпадает с классом языков типа АЛГОЛ.
Лемма 1.3.1. Пусть f (glf . . ., gn) = (/1? . . ., fn)
есть п-компонентная стандартная функция и для всех i
1.3. Эквивалентность КС-языков и языков типа АЛГОЛ 31
U (Еь • • ., In) = U ли Fi, . . ., 1п) (гдеп
з
и
есть цепочка из множества У*). Пусть Gt = (У, 2, Р, ?j)
есть К С-грамматика, в которой Р состоит из правил
li~+ttij (?i, . . ., In) для всех i и j. Тогда L (Gt) для
каждого i есть i-я компонента решения уравнения
Доказательство. Пусть ? = (?i, . .., ?д), а@) =
= (а*0), .. ., а(п0)) = / @, ..., 0) и для каждого к a<ft+D =
= (а?+1), .. .,а?+1)) = /(а<*>). Пусть «;= U «У0 Для
каждого /. Тогда а = (аь . . . , аЛ) является решением
системы уравнений / (?) = ?. Каждый член л^- (?) есть
цепочка над алфавитом У*, и, следовательно, представим
в виде
nij \Ъ) — YO'l \b/ • • • yijmii, j) \b),
где каждое ytjh (?) есть либо переменная, либо цепочка
из 2*.
Начнем с доказательства того, что для всех i и к имеет
место aift) s L (Gt) (и, следовательно, для всех i имеет
место aj eL Fj)). Рассмотрим случай к = 0. Пусть
м;—некоторая цепочка из множества о40) =/£ @, . . ., 0).
Тогда м; есть некоторый член пц (?) функции ft (?),
и, следовательно, в Р содержится правило ?* -> м;,
откуда ^=Фм?; а поскольку ш£ 2*, имеем w £ L (Gt).
Продолжая индукцию, предположим, что для некото-
некоторого к и для всех i имеет место ai&) ^ L (Gt). Пусть
w — некоторая цепочка из множества a|ft+1) = ft (ak).
Тогда w £ TLtj (a<fe)) для некоторого / и, следовательно,
w 6 Yiji (a(fe)) • • • Yijm (i,j) (a(fe)). Таким образом, м; мож-
можно представить в виде w = ^ . . . хт D| 7-), где
^s = Yije (?) Для каждого 5, если yzjs (?) — цепочка из 2*,
и isf afjs), если Yj7*s (?) — переменная ?V(s). В последнем
случае по индуктивному предположению ?v (S) <=Ф #s,
поскольку av(S) ^ i (^v(s)). Отсюда следует, что
32 Г л, 1, Контекстно-свободные языки
Таким образом, g{ =^> w для любой цепочки w из множе-
множества a|fe+1) и, следовательно, a|fe+1) s L (Gt) для всех i.
Теперь для завершения доказательства достаточно
показать, что L (Gh) ^ <%h для всех h. Для этого в свою
очередь достаточно убедиться, что
(^s) если^ (у и #2 (ъ)— цепочки из V и я^ (у =ф х2 (s),
то ^ (a) Sx2 (a).
В самом деле, если w £ L (G/J, то £л =Ф м; и, следователь-
следовательно, ah = lh(a) 3 и? (a) = w. Таким образом, ah ^ L (Сл).
Для доказательства утверждения (Н?) [рассмотрим две
цепочки xt(l) и л:2E) из F*, такие, что ^ (Е) =ф л:2 (g).
Для каждой такой пары цепочек х^ (£) и х2 (g) пусть
z0 (g), ..., zr (g) есть последовательность цепочек, такая*
что z0 (g) =Xi (g), zr (g) =а:2 (g) и zt (g) =Ф zf+1 (l) для всех i.
Предположим, что r=l. Тогда для ^i (g) и ^2(|) сущест-
существуют цепочки u?i (g), ^2(g), 1^3 (§) и и>4(£) в алфавите F*,
такие, что х^ (I) = ^! (g) м;3 (g) ^2 F). #2 E) = и>1 (^) и>4 E) ^2 (Ю
и ^з (?) —> ^4 Ш 6 -Р- Отсюда в свою очередь следует, что
Мз(%) = Ъ Для некоторого £, а цепочка н;4(£) совпадает
с одним из членов л^7- (^) функции /^, так что /f(g) =
— яо(Юи U ^s(9« Кроме того, имеет место равенство
•Фз
ft (a) = а*. (В самом деле, будем писать (Ait ..., Ап) s
^ (Bit ..., £л), если Ат ^ 5т для всех т, где 4т и 5т —
подмножества множества 2*. Тогда из (Аи .. ., Ап) е
^(^4, . . ., Вп) следует, что /m(ilt . . . , Ап) е
^fm(Bu ...,5П) для всех /7г — иначе говоря, имеет место
/ (j4lf ..., Лл) ^ / (.Si, . . . , 5Л). Таким образом, если
о№) ^ a^fe+^, то a^+^ = f (о№)} с= /(а^~^^). Поскольку
@»--,0)£ <^@), то по индукции аФ) ^ а<9>, если р<Сд. Из
сказанного следует, что /i (a) = /* ( U a\ \ . . . , U »n 7 =
fe=0 /i=0
U /г (Об 1 » • • • » СХп ) == U /i (Об 1 » • • •» СХп ) ==
oo oo oo
= U aift+1)= U a|ft)= U a|fe)=a£.) Итак, имеют место
/i=0 ft=l ft=0
равенства
^з (a) = аг == /i (a) - яо- (a) U U ягз (a) = wk (a) U U n:ie (a).
1.3. Эквивалентность КС-языков и языков типа АЛГОЛ 33
Отсюда непосредственно следует, что w3 (а) з w^ (а). Нако-
Наконец, имеем
xt (а) = w{ (а) ш3 (а) Щ (а) 3 wy (а) м;4 (а) и?2 (а) = ^2 (а)«
Это завершает доказательство базиса индукции. Допустим
теперь, что (#) истинно для всех цепочек х{ (?) и х% (Е),
таких, что г ^ к. Пусть а^ (?) и я2 (Е) таковы, что
г = к + 1. Тогда *! (Е) = 20 (Е) ^ Zi (Е) =Ф • . . ^zk (I)
и zft (I) => z7l+1 (?) = х2 (Е). Согласно индуктивному пред-
предположению, #! (а) з ^ (а) и zk (а) ^ х2 (а). Отсюда ^(а) 3
Э л;2 (а).
Лемма 1.3.2. Пусть G = (V, 2, Р, а) есть К С-грам-
С-грамматика, Ei» • • •» Ел — вспомогательные символы из V,
Ед = а, 1г пусть Ег —> w;(il), • • •»Ei ~^ ^1A) — все ^е ^Ра"
мз Р, д^бы^ части которых совпадают с Е* Eдя кааяг-
i, l<i<4 Пусть, далее, f (Elf . .., Ел) = (/i. • • •» /л)
п-компонентная стандартная функция, определяе-
t(i)
t(i) (i)
мая равенствами ft= \J w) . Тогда язык L (G) совпадает
с д-w компонентой решения системы уравнений (Ei, ..., Ел) —
= /(£i 5»)-
Доказательство. Очевидно, грамматика G
совпадает с грамматикой Gn = (F, S, jP, Ел)» построенной
в лемме 1.3.1. Таким образом, L (G) является п-и компо-
компонентой решения системы уравнений (Ei, . . ., En) ==
= /(Ei, •-., Е„).
Из лемм 1.3.1 и 1.3.2 немедленно следует
Теорема 1.3.1. Каждый язык типа АЛГОЛ
является КС-языком и каждый КС-язык является языком
типа АЛГОЛ.
Теорема 1.3.1 показывает, что изучение КС-языков
может быть мотивировано соображениями, относящимися
не только к естественным яыкам, но и к языкам програм-
программирования. Имеются и другие источники теории КС-язы-
КС-языков. Например, изучение особого рода искусственных
языков — так называемых «бесскобочных»— привело
34 Гл. 1. Контекстно-свободные языки
к понятию «категориальной грамматики» *). Некоторые
рассмотрения, связанные с естественными языками, при-
привели к «грамматикам зависимостей». Оба эти типа грам-
грамматик дают в точности КС-языки [BGS; Ga; ДМ; Фи].
Таким образом, теория КС-языков возникает из многих
источников, и в ее разработке участвовали люди с совер-
совершенно различными интересами. Из всех вопросов разра-
разработанной теории в наше изложение войдут лишь вопросы
первостепенной важности. При этом особое внимание
будет уделено тем свойствам КС-языков, которые либо
возникают при рассмотрениях, связанных с переработкой
информации, либо сами являются предметом для этих
рассмотрений.
Пример. Пусть 2 = {а, Ь, с} и / (gb g2) = (/ь /2), где Д =
= ali U ?2fl^?i U с и /г — 5i?2 U a5i U ас- Положим G =
= (F, 2, Р, £2), где Р состоит из правил £4 ->- а£ь £4 -»- 52afr5i,
5i ->■ с, 52 -> 6ii2» £2 -> 4i и^-> «с. Тогда L (G) является второй
компонентой решения системы уравнений (£4, £2) = / Ei» ?г)-
Упражнения 1.3.
1. Пусть 2 = {а, Ь, с}. Используя обозначения леммы 1.3.1,
описать
a) L(G2) для системы уравнений / (£ь g2) = (/1» /2), где Д =
= ab%i U 6^2 и /г = ^^1?2^ U ас>
b) L (Gi) для системы уравнений / (£4) = (Д), где /4 = Л^Ь [J а
и Л = {а, аЬ, 66};
c) L (Gi) для системы уравнений / (£i) = (/4), где /4 =
= А\^А2 (J Ь, yli = {аЬ, с} и А2 = {66, а}.
2. Построить ^-компонентную стандартную функцию так,
как это сделано в лемме 1.3.2 для КС-грамматики G = (F, 2, Р, ^3)?
где 2 = {а, 6, с} и Р = {£3 ->■ a6g4, g3 -> &5,з?2» ?з -> Ь, g4 ->
3. Пусть / (g1? . . ., ^п) есть ^-компонентная стандартная функ-
функция. Назовем (Р1? . . ., рп) £ B )п наименьшей неподвижной точ-
точкой функции / (|ь . . ., 1п), есш f (Рь . . ., Рп) = (рь . . ., рп)
и для всякого (у!, . . ., Yn) £ B2*)п, такого, что / (у4, . . ., уя) =
= (Yi» • • •» Yn)' имеет место Pi Су., 1 <; i <; дг. Показать, что
наименьшая неподвижная точка функции / Ei, • • •, ?п) совпадает
с решением системы уравнений (£i, . . ., 5л) == / (li» • • •» 5л)
[ГРа].
х) Это утверждение навряд ли верно. Основным источником
возникновения понятия категориальной грамматики послужило,
видимо, изучение обычных формальных языков математики.—
Прим. ред.
1.4. Вспомогательные утверждения,
1,4. Вспомогательные утверждения
Ниже будет приведено несколько простых результатов,
используемых в дальнейшем как в явной, так и в неявной
форме. Ни один из них не имеет самостоятельной ценности;
они нужны лишь как вспомогательные утверждения.
Лемма 1.4.1. Пусть G = (F, 2, Р, о) есть КС-грам-
КС-грамматика, и пусть Р' — множество тех правил из Р, кото-
которые не имеют вида £ -> £. Тогда L (G) = L (С), где G' =
= (У, 2, Р\ о).
Доказательство предлагается читателю в качестве
упражнения.
Пример. Пусть G = (F, 2, Р, £2), где Р состоит из правил
-I bEib* и^Ег1-* аЬ. 2Пусть G' = (f/s^P', Е2), 'где JP' = Р ~
~ {Ei ~> Еь Ег ~> Ег}. Тогда L (G) = L (Gf).
Введем обозначение для «обращения», или «зеркального
образа» цепочки.
Обозначение. Положим sR = e; для каждой
цепочки xi . . . xk £ V* положим (^ ... Xk)R = xk . . . х^
Для каждого множества Н ^ V* положим HR =
=-- {wR \w 6 Я}.
Для произвольных цепочек и и и имеет место очевид-
очевидное равенство (uu)R = vRuR. Для произвольных мно-
множеств U и V (UV)R = VRUR\ L тогда и только тогда
является КС-языком, когда таковым является LR (см.
ниже упр. 1.4.3).
Две следующие леммы дают процедуры, позволяющие
в произвольной КС-грамматике находить и устранять
«лишние» вспомогательные символы двух разных типов.
В обоих случаях получаемая КС-грамматика «проще»
исходной (в том смысле, что множество ее правил является
подмножеством множества правил исходной КС-грам-
КС-грамматики) .
36 Гл. 1. Контекстно-свободные языки
Определение. Пусть G = (F, 2, JP, а) есть
КС-грамматика. Скажем, что ^зависит от v (£, v £ F—2),
если £ =# ww для некоторых миуиз F*.
Следующая лемма позволяет находить и устранять
те вспомогательные символы, от которых а не зависит.
Лемма 1.4.2. (О зависимости.) Пусть G =
= (F, 2, Р, а) есть КС-грамматика и И — множество
тех вспомогательных символов из V, от которых зависит а.
a. Яг/сть W^io} и Wh+l = WkU{veV-Z \t-+
jP для подходящих и, v £ V* и % £ Wk}, к ^> 1.
Я - Wr, где г = # (V - 2).
b. Пусть Рг состоит из тех правил \-+w из Р, в кото-
которых Ъ, w £ B U Я)*. Тогда L(G)=L (G'), где G' - BU#,
2, Р', а).
Доказательство, а. Очевидно, PF7. ^ H. Пред-
Предположим, что v £ Н. Тогда существует вывод
1. а = Wi =#> w2 =^> . . . ==> w;fe+1 = ZiVz2.
Все вспомогательные символы, встречающиеся в цепоч-
цепочке Wj, принадлежат множеству Wj для каждого /. (Дейст-
(Действительно, о = Wi принадлежит Wi по определению; про-
продолжая индукцию, предположим, что каждый вспомо-
вспомогательный символ, встречающийся в wu i < /, j ^ 2,
принадлежит множеству Wt. Пусть Wj-Y — aJ_1^J_1i;J_1,
Wj = Uj-^j-iVj-i и |7-_! ->■ г/j-i g jP для всех/ ^> 2. Согласно
индуктивному предположению, ^_i и каждый вспомога-
вспомогательный символ из Uj-i и Vj-i принадлежат множеству
Wj-i. Тогда каждый вспомогательный символ из Uj-U
vj-i> Уз-i и> следовательно, из Wj принадлежит множеству
Wj.) Таким образом, v g Wh+i> Для завершения доказа-
доказательства достаточно показать, что Wk+i ^ Wr.
2. Wt s TFj+i для всех i.
Предположим, что существует число /, для которого
Wj = Wj+i. Тогда ^ - ^+1 = Wj+2 = ... = Wj+m
для всех т ^> 0. Другими словами:
3. Если PF; = Wj+i для некоторого /, то Wj = TFj+m
для всех #г ^> 0.
Из утверждений 2 и 3 следует, что Wr = Wr+m для
всех т^О. Таким образом, Wk+i ^ ТУГ, если к + 1 < г,
1.4. Вспомогательные утверждения 37
и Wk+i = Wr, если к -\~ 1 ^> г. В обоих случаях
*
Ь. Поскольку Р' ^ jP, то из того, что о=^ш в С,
следует, что о =Ф w в G. Таким образом, L {G') ^ L(G).
Остается доказать обратное включение. Пусть w — неко-
некоторая цепочка из L (G). Тогда найдутся цепочки z0 = a
и zu . . ., zk = w, такие, что zt =ф zi + 1 для всех i. Таким
G
образом, для всех £, 1 ^ i<A: — 1, существуют цепочки
щ, vu wt и li из 7*, такие, что zt = м^^, 2г + 1 = м^и;^
и |г —> Wt £ Р. Согласно определению множества Н, каж-
каждый вспомогательный символ, встречающийся в цепоч-
цепочках z0, . . ., zft, принадлежит Н. Таким образом,
^j~->-w;?- g Р'для всех i, l^t^/c —1, и, следовательно,
zt =ф 2г+4. Отсюда а=Фм;, другими словами, w £ L (С).
Итак, L(G) c= L (Gf).
Пример. Пусть б1 = (У, 2, Р, g4) — КС-грамматика, причем
2 = {а, Ь, с} и Р = {Ij -> alib, |i -> bg2g3, 6i -> а, ? £
{5 ? ? ?
{
} Тогда Wi = {&}, 2 «i, Ei}
и И^4 = ТУз. В данном случае Р = Рг.
Назначение следующей леммы заключается в построе-
построении процедуры, позволяющей находить и устранять вспо-
вспомогательные символы, от которых зависит а, но которые
не встречаются ни в одном выводе, заканчивающемся
некоторой цепочкой из L (G).
Лемма 1.4.3. Пусть G = (V, 2, Р, о) есть КС-грам-
матика и Н = {£ £ V — 2 |^=^>z для некоторого z £ 2*}.
a. Пусть Wi = {££7—2 \ l~* z £ Р для некото-
некоторого z е 2*}, Wk+t^Wh[j {I e V — 2 \%-+z£P для неко-
некоторого z 6 B U Wh)*} при &>0. Гог^а Н = Wr, где
г = #(У -2).
b. Пусть Р1 состоит иг тех правил \ -> w g jP, в кото-
которых % и w принадлежат множеству BU^)*- Тогда
L (G) = L (G)', г^ б' - BU#U (а}? 2? ^'. ^)-
Доказательство предлагается читателю в качестве
упражнения.
Пример. Пусть G = G, 2, Р, g4) есть КС-грамматика и Р =
38 Гл. 1. Контекстно-свободные языки
В обозначениях леммы 1.4.3 имеем Wi = {g2}» ^2 = {£2» 5з}»
Р ' = {1& -+ а%3а, Ь -> 1Ф, 13 -> ЪЫ21 12 -> аЬ2}.
Определение. КС-грамматика 6? = (F, 2, Р, a)
называется приведенной, если она удовлетворяет следую-
следующим условиям: A) а зависит от всех вспомогательных
символов и B) для каждого вспомогательного символа
v ф а существует цепочка ш £ И*, такая, что v =ф w.
Следующая лемма является непосредственным следст-
следствием лемм 1.4.2 и 1.4.3.
Лемма 1.4.4. Для всякой К С-грамматики G =
= (F, 2, jP, а) существует приведенная КС-грамматика
G' = (V, 2, Р\ а), такая, что
(a) L(G) = L (Gf); (Ь) 7' е= F; (с) i>' s P.
Лемма 1.4.4 позволяет без потери общности рассматри-
рассматривать только приведенные КС-грамматики.
В некоторых случаях полезны также следующие леммы.
Лемма 1.4.5. Пусть для каждого вспомогательного
символа v КС-грамматики G = (F, 2, Р, а) множество
L (Gv) (где Gv = (V, 2, Р, v)) непусто. Тогда если вспомо-
вспомогательный символ | зависит от вспомогательного символа v,
то во множестве 2* найдутся цепочки у и z, такие, что
yL (Gv)z <= L (Gg).
Доказательство. Поскольку Е зависит от v,
то существуют цепочки и, и g V*, такие, что ^ =Ф uvv.
Поскольку L (Gv) Ф 0 для каждого вспомогательного
символа v, существуют цепочки у, z £ 2*, такие, что
* * * * *
и =ф г/ и г; =Ф z. Таким образом, £ =Ф гггг; =Ф i/vy =Ф i/vz.
Пусть и; — произвольная цепочка из множества L (Gv).
Тогда v =$> w и, следовательно, ё =Ф i/w;z. Поэтому
L (Gi), так что г/L (Gv)z ^
Лемма 1.4.6. J?c^w, ^! . . . vr =$ w, то существуют
цепочки Wi, . . ., wr, такие, что w = Wi ... wr и ut =ф wt
для всех i. Более того, каждое вхождение правила, ветре-
1.4. Вспомогательные утверждения 39
чающегося в выводе v^ ... иг =Ф w, встречается в некото-
ром выводе ut =ф wiy и обратно.
Доказательство. Пусть G = (У, 2, Р, а)
есть КС-грамматика и
Vi . . . Уг = Щ ==> Щ =Ф ... ^Ws = ^
Обозначим через я* правило, применяемое при переходе
от и^ к ^г +1 • Пусть 4 = {li,]t | 1 <С i <С г} — множество,
состоящее из 2г символов, не принадлежащих V,
и GB = G|J^» 2U^, Р, а). Рассмотрим вывод в GB
где переход wj =Ф w4+i происходит за счет применения
правила nt к тому же самому вхождению того же вспомо-
вспомогательного символа в щ, что и при переходе от ut к ui + l.
Тогда каждая цепочка и\ имеет вид IiMjJi . . . [TuiT]r,
где utj 6 F*, wOj — uj и wij ^ w(H-iO Для в^ех /. Более
G
того, для каждого фиксированного i цепочки utj и U(i + l)j
совпадают для всех /, кроме одного. Положим Wj = usj для
каждого /. Ясно, что w = Wi ... wr, Uj =ф usj для всех /;
G
вторая часть формулировки леммы также, очевидно, верна.
Последняя лемма утверждает, что можно устранить
все вспомогательные символы, кроме а, из которых выво-
выводимо лишь конечное число цепочек в алфавите 2.
Лемма 1.4.7. Пусть G = G, 2, Р, а) есть КС-грам-
КС-грамматика и\Ф а — ее вспомогательный символ, такой, что
*
множество А = {w £ 2* | £ =Ф w} конечно. Пусть G' =
= (V — {Е}, 2, Р', о) — КС-грамматика и Р' состоит
из (а) всех правил грамматики G, не содержащих вхожде-
вхождений |, и (Ь) всех правил вида v-+UiWi . . . urwrur+i,
таких, что каждое wt принадлежит А, цепочка vui . . .
. . . ur+i не содержит вхождений вспомогательного
символа | и в Р имеется правило v ->■ щЪ> . . . и
Тогда L(G) = L (Gf).
40 Гл. 1. Контекстно-свободные языки
Доказательство. Поскольку каждое правило
грамматики G' соответствует некоторому выводу в грам-
грамматике G, имеем L (G1) e L (G). Обратное включение выте-
вытекает из утверждения
если v =ф w, и;£2* и v£(V — {ty)*, то и =Ф w,
G G'
к доказательству которого мы и перейдем. Предположим,
что (Hfi) неверно. Пусть s есть наименьшее из всех нату-
натуральных чисел, обладающих следующим свойством: най-
найдутся цепочки v£(V — {£})*, w£2* и v = vOy ии . . ., v8=w,
такие, что \)% =ф ^+1 для всех i, но не существует вывода
G
цепочки iv из цепочки v в грамматике G'. Из построения
множества Рг видно, что хотя бы одна из цепочек
Vi,...,vs содержит вхождение символа g. Пусть i —
наименьшее число, такое, что ut содержит вхождение £.
Из минимальности s следует, что i— 1. Тогда vi может
быть представлено в виде у±1у21 • • • iyr+i, где г/j 6 (F—{g})*
для всех /. Поскольку v£(V—{Е})*, найдутся цепочки
м1? м|, мг+1 и и;+1, такие, что yi=u1uu yr+1=ur+iu'r+i
и при переходе от и0 к v^ применяется правило
v —> ufey2 . .. E^r+i € -Р- Согласно лемме 1.4.6, найдутся
цепочки zu Wi, z2, .. ., wr и zr+1, такие, что (а) ^ =
1, (Ь) J/j =Ф Z;, 1</<г+1, (с) 5=»ы;7-,
G G
(d) каждое вхождение правила, использованного в выводе
* *
v =ф w, встречается в одном из выводов у,- =^> Z; или
a G
g =Ф ц;7., и обратно. Следовательно, калщая цепочка Wj
G
принадлежит множеству А. Кроме того, так как s мини-
мально, а выводы yt =ф zt имеют длины, меньшие s для
G
всех i, то из уъ =^> zt следует yt =$ zt. Поскольку
G G'
v —> и$О\.Уг • • • u>rUr+i 6 ^ имеем
G*
что противоречит нашему допущению. Таким образом,
L(G) я=: L (Gf).
1.5. Деревья выводов 41
Следствие 1.4.1. Для всякого КС-языка L суще-
существует порождающая его КС-грамматика G, такая, что
для каждого вспомогательного символа | Ф а множество
{w £ 2* | £-=ф w} бесконечно.
Упражнения 1.4
1. Доказать лемму 1.4.1.
2. Пусть для каждого i, 1 < i < га, Gt — (Vt, 2г, Pf, af)
есть КС-грамматика, и пусть (Vt — 2^) f| 2У- = 0 для всех г ф j.
Обозначим через Gi A <! i <! га) КС-грамматику ((J У/, U 2У-, Pi^t).
з з
Доказать, что L (Gt) — L (Gi). Таким образом, если имеется конеч-
конечное число КС-грамматик, то их можно рассматривать как грамма-
грамматики с общим алфавитом.
3. Показать, что язык L тогда и только тогда является кон-
контекстно-свободным, когда таковым является язык LR [ВPS].
4. Скажем, что КС-грамматика G = (У, 2, Р, а) задана
в бинарной стандартной форме, если каждое ее правило имеет
либо вид g ->• а, где а £ 2 (J {&}, либо £ -^ yv» гДе Y, v G У ~ 2.
Показать, что для каждой КС-грамматики G существует КС-грам-
КС-грамматика G' в бинарной стандартной форме, такая, что L (G) —
= L (Gf) [Xo 3].
5. Пусть Wf — множество, определенное в лемме 1.4.2.
a. Выписать множества Wi (I ^ i <J 4) для КС-грамматики
G = (V, 2, Р, |4), где Р^= {gj -> gigifl, |t -> &, |2 -> agib,
b. Показать, что для произвольного числа г > 1 существует
КС-грамматика с г вспомогательными символами, такая, что И^ Ф
Ф Wi+i для всех i, 1 <! i <! r — 1.
6. Доказать лемму 1.4.3.
7. Доказать, что если Wt определено, как в лемме 1.4.3, то для
произвольного числа г > 1 существует КС-грамматпка с г вспомо-
вспомогательными символами, такая, что Wt Ф Wi+i для всех i, I <! i <!
<! г — 1.
1.5. Деревья выводов
Понятия порождающей грамматики и КС-грамматики
были получены нами как обобщение указанного в примере
на рис. 1.1 способа порождать цепочки. Теперь, исходя
из строгого определения КС-грамматики, мы будем
ассоциировать с каждым выводом в ней £ = Wi =ф ...
, . . =ф wr = w (где | — вспомогательный символ, w —
42 Гл. 1, Контекстно-свободные языки
цепочка основных символов) так называемое дерево
вывода — некоторое ориентированное дерево с помечен-
помеченными вершинами. В лингвистике дерево вывода назы-
называется деревом синтаксического анализа *). Назначение
дерева синтаксического анализа предложения состоит
в изображении синтаксических связей между словами
и словосочетаниями. В программировании дерево вывода
(или некоторое эквивалентное понятие) используется при
преобразовании программы, записанной на одном языке,
в программу, записанную на другом языке.
Дерево вывода £ = wt =Ф . . . =Ф wr = w, иначе, дерево
вывода w из |, строится следующим образом. Вершинами
дерева являются упорядоченные системы целых положи-
положительных чисел (£ь . . ., ik), где &<г. Дугами дерева
вывода являются все упорядоченные пары вершин, име-
имеющие вид ((ib . . ., ih), (ib . . ., ц, ik+i)). Для каж-
каждого £, 1^ i ^ г — 1, обозначим через nt правило уг ->■ zu
такое, что игуьиг = ivt и и^гиь = ivi+i. Одноэлементная
система A) является корнем дерева, а £ — пометкой при
корне. Если w2 = 8, то система A,1) по определению
является вершиной дерева, а 8 — пометкой при этой вер-
вершине. ЕСЛИ Же W2 = X2i • • • #2пB) И хгз 6 У A <^
<7 ^ п B)), то для каждого i, 1< г<гс B), система A, i)
является по определению вершиной дерева вывода,
a x2t — пометкой при этой вершине. Пусть для всех
t ^ к каждое вхождение символа из V в цепочку wt
служит пометкой при некоторой вершине дерева вывода.
Пусть, кроме того,
($) UkykVk = Wk =Ф Wk+i = UkZkVk.
Допустим теперь, что (iu . . ., is) есть вершина дерева,
помеченная именно тем вхождением yk, которое выделено
в^(^е). Если zk = 8, то система (iit . . ., i8t 1) будет считать-
считаться вершиной дерева и 8 — пометкой при ней. Если
zk = xhi . . . xkn{k) и xhj 6 У A < j < п (/с)), то для каж-
каждого £, 1 ^ i ^ п (к), (iu . . ., ie, i) считается вершиной
х) Точнее, деревом составляющих, в отличие от дерева подчине-
подчинения, соответствующего другому способу представления структуры
предложения, но не в меньшей степени заслуживающего название
«дерева синтаксического анализа».— Прим. ред,
1.5. Деревья выводов
43
и xki — пометкой при этой вершине. Описанная процедура
повторяется для всех к, к ^ г — 1. Получаемое так конеч-
конечное ориентированное дерево с помеченными вершинами
и есть, по определению, дерево вывода. Будем говорить,
что дерево вывода производит вывод (или производится
выводом) % = Wi =Ф . . . =ф wr *).
Из построения дерева вывода следует, что каждое вхо-
вхождение каждого символа из F в какую-либо цепочку
wu . . ., wr является пометкой при некоторой вершине
дерева.
Ради простоты мы будем часто говорить о пометках
при вершинах как о самих вершинах, например будет
говориться: «£ встречается в дереве вывода» вместо
«£ является пометкой при некоторой вершине дерева
вывода».
На рисунках мы будем изображать дерево вывода
в виде дерева с пометкой при каждой вершине. Вершину q
мы будем обозначать этой буквой, помещенной в кружок
(чтобы ее легко было отличить от пометки).
Пример. Пусть
и Р = {£i -> ag2, £i
дится дерево вывода
G = (F, 2, Р,
есть КС-грамматика
b}. На рис. 1.2 приво-
привоВершина 1 есть система A). Вершина 2 есть система A,1),
3 — A,2), 4—A,2,1), 5—A,2,2), 6—A,2,1,1). В дальнейшем мы
обычно будем опускать номер вершины в изображении дерева.
Таким образом, дерево рис. 1.2 будет обычно изображаться как
на рис. 1.3.
2) Изложенная процедура, вообще говоря, не определяет произ-
производимое выводом дерево однозначно. Пусть, например, грамматика
имеет правило g ->- g|; тогда вывод £=Ф!£=Ф£££ производит два
разных дерева, представленных выше.— Прим. ред<
44
Гл. 1. Контекстно-свободные языки
Введем несколько терминов, связанных с деревьями
выводов.
Вершина (/4, . . ., jt) называется продолжением верши-
вершины (iit . . ., i8), если s ^ t и ik = jk для всех к <С 5.
Пусть ^ = (£ь . . ., g ид2- (уь . . ., jt) — верши-
вершины. Будем писать qi ^ g2, если либо q2 является продол-
продолжением qu либо ik <C jk для наименьшего /с, такого, что
ik Ф ik- Таким образом вершины упорядочиваются по пер-
первым несовпадающим компонентам.
Отношение ^ является отношением линейного порядка
на множестве вершин. Вершина q называется максималь-
максимальной, если не существует отличной от q вершины, являю-
являющейся продолжением q. В противном случае вершина назы-
называется немаксималъной.
Дерево Г, производимое выводом ^ из Н, называется
минимальным, если не существует дерева вывода с мень-
меньшим числом вершин, чем в Г, производимого некоторым
ВЫВОДОМ W ИЗ £.
Пример. В предыдущем примере каждая вершина с пометкоц q.
пли Ъ максимальна,
1.5. Деревья выводов 45
Следующая теорема включает в себя несколько утвер-
утверждений относительно деревьев выводов. Доказательства
этих утверждений предоставляются читателю.
Теорема 1.5.1. Пусть Т есть дерево вывода, про-
производимое выводом w из \.
a. Если q — немаксималъная вершина дерева Т', то
пометка х при q есть вспомогательный символ
*
и £ =Ф uxv для некоторых и, v £ V*.
b. Пусть дь . . ., qr — все максимальные вершины Т
и qt ^ qi + l для каждого i. Тогда цепочка, получаемая
заменой в цепочке дА . . . qr каждой вершины на пометку
при ней, совпадает с w.
c. Пусть q — немаксималъная вершина их — пометка
при ней. Тогда «поддерево» дерева Т, состоящее из всех
вершин Т, являющихся продолжениями вершины q, тоже
является деревом вывода г) (это поддерево называется под-
поддеревом, порожденным q).
А. Пусть w = uyv, и пусть Т^ — дерево вывода, про-
производимое выводом Wi из у. Если Ti подставить (очевидным
образом) в Т, так, чтобы корень Ti совпал с вершиной,
помеченной тем вхождениежу, которое выделено в представ-
представлении w = иуи, то полученное в результате подстановки
дерево является деревом вывода, производимым выводом
UWiV U3 £.
е. Пусть q — немаксималъная вершина Т\ отличная
от корня. Пусть, кроме того, Ti является результатом
удаления из Т всех вершин р, отличных от вершины q
и являющихся ее продолжениями (и всех дуг, инцидентных
этим вершинам). Тогда Г4 является деревом вывода.
Пример. Пусть G = (V, 2, Р, £4) есть КС-грамматиками Р =
{6 4 l l l Ъ 1 ig Ё Ъ Ъ }
{6i 4г, li li, li , 12 iig2. Ё2 Ъ2, Ъг }
а. На рис. 1.4 изображено дерево, производимое выводом
Ь. Максимальные вершины этого дерева, упорядоченные
в смысле определенного выше порядка вершин, суть 1,2,3,4,5.
г) Точнее, деревом вывода будет дерево, вершинами которого
являются упорядоченные системы чисел, получаемые из вершин
описанного поддерева следующим образом: если q = (ii7 . . ., ik),
то каждое продолжение (ц, . . ., ih, ik+i, . . ., i^+i) вершины q заме-
заменяется на A, t^+i» • • •» *А + г)*— Прим, ред.
Гл. 1. Контекстно-свободные языки
Цепочка а^сЬ^ получается заменой в цепочке 12345 каждой вер-
вершины на пометку при ней.
с Изображенное на рис. 1.5 поддерево Т\. дерева Г, образован-
образованное вершинами Г, являющимися продолжениями вершины 6, есть
дерево вывода, производящее вывод £ic&£2 из £2-
d. На рис. 1.6 изображено дерево T2i являющееся результатом
подстановки изображенного на рис. 1.5. дерева Т в себя, причем
Рис. 1.4.
корень подставляемого «экземпляра» Т совпадает с вершиной 2 ис-
исходного «экземпляра» Т\ Т2 производит вывод аа^сЬ^сЬ^ из £i*
е. На рис. 1.7 изображено дерево T3i являющееся результатом
удаления из дерева Г2, изображенного на рис. 1.6, всех вершин д,
отличных от вершины 7 и являющихся ее продолжениями. Т3
производит вывод аа^сЬ^^г из £4.
Упражнения 1.5.
1. Пусть G = G,
= {It -»- al2i li -+Ъ, lz~+
производящее вывод
Р, li) — КС-грамматика и Р =
» ?2-^^}« Выписать дерево вывода,
Рис. I.e.
48
Гл. 1. Контекстно-свободные языки
2. Найти вывод, производящий дерево Г2» изображенное
на рис. 1.6.
3. Найти вывод, производящий дерево T3i изображенное
на рис. 1.7.
4. Доказать теорему 1.5.1.
5. Для каждого натурального числа к обозначим через F^ мно-
множество всех тех минимальных деревьев, производящих выводы t
из g (t £ У*), в которых любой путь имеет длину, не большую к.
Показать, что Fk конечно.
6. Пусть 2 = {а, Ь, с}. Построить дерево, производимое
выводом
=> аЪсЪасаЪЪаа,
и указать его максимальные вершины.
2.6. Неопределенность
49
1.6. Неопределенность
Сейчас мы рассмотрим следующую проблему: когда
считать два вывода тождественными и когда — существен-
существенно различными? Это необходимо, чтобы сформулировать
понятие неопределенности, которое будет иметь для нас
первостепенную важность.
Пример. Рассмотрим дерево вывода, изображенное на рис. 1.8.
Одним из выводов, производящих это дерево, является следующий:
О" =Ф ?i?2?2 =Ф «?з?2?2 =у abcl2l2 =Ф abcdel2 =Ф abcdede.
Это же дерево производится выводом
с =Ф ?i?2?2 =Ф «?з?2?2 =Ф «1з^?2 =
а также выводом
Ф abcdede,
=Ф a\zdede =Ф abcdede.
Во всех приведенных выводах используются одни
и те же правила, причем одно и то же правило применяется
в каждом выводе одинаковое число раз. Именно правило
Рис. 1.8.
<* -*■ S1S2S2 встречается в каждом выводе один раз, по
столько же раз встречаются в каждом выводе правила
£i -*■ ^Ез и £з "-^ ^с, правило |2 ->■ de встречается дважды.
Указанные три вывода совпадают с точностью до порядка
применения правил. Следующая теорема показывает, что
описанная ситуация не случайна.
50 Гл. 1. Контекстно-свободные языки
Теорема 1.6.1. Все выводы, производящие одно
и то же данное дерево вывода, совпадают с точностью
до порядка применения правил. Для каждого дерева вывода,
производимого выводом w из £, w £ 2*, существует один
и только один вывод Е = w0 =Ф Wi =Ф . . . =£> wr = w;,
обладающий следующим свойством: если wt = и{О(у1,
Wi+i = MfZii/j и уг ->■ Zj — правило, то ut £ 2*.
Доказательство этой теоремы становится очевидным,
если заметить, что дерево вывода не меняется, если изме-
изменить порядок замены вхождений символов в одну и ту же
цепочку.
Определение. Вывод, обладающий свойством,
указанным в формулировке теоремы 1.6.1, называется
левосторонним. Итак, если G = (V, 2, Р, а) есть КС-
грамматика, то вывод | = w0 =$> . . . =ф wr является лево-
левосторонним, если для всех i, 0<^t^r — 1, wt — и(О(у1,
Wi + l = UiZiHi, Vt -> Zt 6 P И Щ 6 2*.
Аналогичное определение очевидным образом приво-
приводит к понятию правостороннего вывода.
Пример. Вывод
<* =Ф ?i?2 =Ф «?2?2 =Ф «Ь|2 =Ф abl2bli =ф a&c&g! =Ф аЪсЪаЬ
является левосторонним и производит дерево, изображенное на
рис. 1.9.
Пользуясь тем, что все выводы, производящие данное
дерево, совпадают с точностью до порядка применения
правил, мы в некоторых случаях будем ограничиваться
рассмотрением лишь левосторонних выводов. Таким обра-
образом, левосторонний вывод будет 'служить каноническим.
Используя понятие левостороннего вывода, мы введем
теперь понятие определенной КС-грамматики.
Определение. КС-грамматика G называется не-
неопределенной, если в языке L (G) найдется по меньшей
мере одна цепочка, порождаемая двумя различными лево-
левосторонними выводами (из аксиомы а). КС-грамматика,
не являющаяся неопределенной, называется определенной.
Таким образом, КС-грамматика G является неопреде-
неопределенной, если некоторая цепочка w £ L (G) имеет два
«существенно различных» вывода из а. Другими словами,
грамматика G неопределенна, если некоторая цепочка
1.6. Неопределенность
51
w £ L (G) имеет два различных дерева вывода, корни
которых помечены аксиомой а.
Заметим, что если КС-грамматика G = (F, 2, Р, а)
является определенной, то и любая КС-грамматика
Р п с. 1.9.
G' = (V, 2, Р\ а), где F'gFnP'gP, также является
определенной.
Примеры. 1. Пусть G = (У, 2, Р, а) есть КС-грамматика
п Р = {I -^ Ьа, g -^- aggfe, а -^ а^Ь, а -^ абаб, а -^ а}.
Тогда цепочка аЪаЪ имеет два различных левосторонних вывода:
а =Ф абаб =Ф а&аЬ и а =Ф а§6 =
Поэтому G неопределенна.
2. На рис. 1.10 и рис. 1.11 изображены деревья выводов в неко-
некоторой КС-грамматике с основным алфавитом 2 = {(They), (are),
(flying), (planes)}. Эта КС-грамматика является неопределенной1)
[Хо 1]. (Вспомогательные символы интерпретируются следующим
образом: а соответствует категории «правильно построенного пред-
предложения», (Рг) — категории «местоимения», (VP) —«группе глагола»
V — «глаголу», (NP) —«именной группе», А —«прилагательному»,
N -—«существительному», (Aux) — «вспомогательному глаголу»,
Р —-«причастию».)
В задачах, связанных с переработкой информации,
очень важно, чтобы грамматики были определенными.
*) Фраза «They are flying planes» при анализе, изображенном
на рис. 1.10, означает «Это летящие самолеты», а при анализе
на рис. 1.11— «Они пилотируют самолеты».— Прим. перев.
52 Гл. 1. Контекстно-свободные язШги
(Например, при составлении программы всякий раз, когда
цепочка имеет два существенно различных вывода в дан-
данной КС-грамматике, возникает проблема: какой вывод
следует рассматривать, чтобы правильно обработать эту
цепочку?) Вот почему неопределенность и определенность
относятся к основным вопросам теории КС-языков
и к настоящему моменту хорошо изучены. Однако с мате-
математической точки зрения и требование неопределенности
(определенности) является довольно слабым. Как сама
по себе, так и при дополнительных требованиях неопреде-
неопределенность (или определенность) редко влечет те или иные
интересные свойства.
Тема для исследования. Найти какое-либо семейство определен-
определенных КС-грамматик. (Одно такое семейство описано* в теореме 2.6.3.)
Всякий КС-язык имеет бесконечно много порождаю-
порождающих его КС-грамматик. (См. ниже упр. 1.6.1 и 1.6.2.)
Зачастую одни из этих грамматик оказываются неопреде-
неопределенными, другие — определенными.
Пример. Пусть Gi = (Vi, {а}, Рь |) есть КС-грамматика
и Pi = {| -> Ц, g -> а5} и G2 = (У2, {а}, Р2, v) есть другая КС-
грамматика, причем Р2 = {v ->- a5v, v -»■ а5}. Тогда L (£i) =
= L (G2) = {abk | k >- 1}; при этом грамматика G2 — определенная,
a Gi — неопределенная.
Определение. КС-язык L называется суще-
существенно неопределенным, если каждая порождающая его
КС-грамматика является неопределенной. В противном
случае язык L называется определенным.
Как уже было отмечено, в задачах, связанных с перера-
переработкой информации, предпочтительны определенные грам-
грамматики. Поэтому было бы удобно, если бы любой КС-язык
порождался некоторой определенной КС-грамматикой,
т. е. если бы существенно неопределенных КС-языков
не было. К несчастью, на самом деле такие КС-языки
существуют. (См. ниже лемму 6.3.1.)
В шестой главе мы увидим, что объединение опреде-
определенных КС-языков не обязательно является определен-
определенным КС-языком. Однако, как показывает следующая тео-
(They) (are) (f lying) (planes)
Рис. 1.10.
(They) (are) (ftying) (planes)
(Pr)
(NP)
(VP)
Pnc. 1.11,
54 Гл. 1. Контекстно-свободные языки
рема, если эти языки не пересекаются, то их объединение
также будет определенным КС-языком.
Теорема 1.6.2. Если определенные К С-языки
г
L1? . . ., Lr попарно не пересекаются, то язык (J Lf
1
является определенным.
Доказательство. Нетрудно видеть, что мы
можем ограничиться случаем г — Ъ. Пусть определенные
КС-языки Li и L2 порождаются соответственно опреде-
определенными КС-грамматиками G4 = (F1? 2, Ри а4) и G2 =
= (F2, 2, Р2, а2). Без потери общности можно считать,
что Gi — 2) П (Vz—'2) = 0. Рассмотрим КС-грамматику
G = G, 2, Р, а), где o£Vi[}V2,V= {а} U ^i U V2
и jP = Pi U Л U {<? -*■ ог±, а -> а2}. Очевидно, L (G) =
= L (Gj) U ^ (G2). Пусть
— левосторонние выводы цепочки ws = yt £ L (G). По-
Поскольку в схеме Р имеется лишь два правила вида а ->■ z,
то w;i и г/i принадлежат множеству {аь а2}. Предпо-
Предположим, что Wi = yi = Gt. Из соотношения G4 — 2) П
П (V2 — 2) — 0 следует, что в обоих выводах приме-
применяются только правила из Р^ поэтому — так как грам-
грамматика 6?i является определенной — данные выводы сов-
совпадают. Аналогично доказывается, что выводы совпадают
в случае гх?± = г/± = а2. Предположим, что w^ = а4
и yY = ст2. Тогда вывод а =ф wY =Ф . . . =Ф ws является
выводом в грамматике 6?ь а вывод о =^у{ =Ф . . . =$ yt —
выводом в грамматике G2. Отсюда ws = yt £ L4 fl ^2»
что противоречит условию, что 1^ f| L2 = 0. Таким
образом, выводы и в этом случае совпадают; грамматика G
является определенной.
Упражнения 1.6.
1. Пусть для каждого п > 1 Gn--=({o, а}, {а}, {а -»■ ап}, а).
Показать, что, каково бы ни было w, L FП) = 0.
2. Пусть б1 = (F, 2, Р, ст) есть КС-грамматика, порождающая
непустой язык. Рассмотрим некоторую цепочку w £ L (G) и символ §,
не принадлежащий множеству 7. Для каждого п обозначим через
1.6. Неопределенность 55
Gn КС-грамматику
G U {1Ь 2> рп> сг),
где Рп = Р U {сг -> ш£п, £ -> е}. Показать, что L (G) = L (Gn)
для каждого п.
3. Пусть 2 = {а, 6, с}. Для каких из приводимых ниже
множеств Р КС-грамматика G = G, 2, Р, а) является неопре-
неопределенной?
a. Р = {а -* ааЬс, а -* с, а -* ЬЕ» £ -* ЬЕ» Е -* а}.
b. Р = {ст ->- а2сга, сг ->- асга, а ->- асг, сг ->- е}.
c. Р — {сг -^ avc, сг -> Ьсг, v ->- av, v -►■ va, v -*- с}.
d. P = {a ->- acr, cr -+■ ста, а -^ bvb, v -►■ avb, v -►■ ясЬ}.
4. Пусть б1 = G, 2, P, а) есть произвольная КС-грамматика.
Сопоставим каждому а £ 2 символ |а, не принадлежащий 7. Пусть,
далее, £i = Gi, 2, Р4, сг) есть КС-грамматика, причем У4 =
~ ^ U {la I a 6 2 } и Pi состоит из следующих правил.
a. 5а -*■ а Для всех а 6 2.
b. f ->- е, если | -^ е £ Р.
c. | -> vx . . . vx , где Е -> xi . . . жг G P, Vy. = жг, если
хг е V — 2, и vx = Сх., если жг 6 2.
Доказать, что L (G ) — L Fг4) и, более того, б1 является неопре-
неопределенной тогда и только тогда, когда таковой является G\.
5. Пусть для произвольной КС-грамматики G — G, 2, Р, а)
построена КС-грамматика £ь как в упр. 4, и Gf2 = G2, 2, Р2, о)
есть КС-грамматика, такая, что Р2 состоит из следующих правил:
a. Е -*■ а» если Е-*-я6^1»я62и {е}.
b. | -^ v|n и ёя -^ 8» гДе Е -^ v есть правило л; из Р4 (v G ^i —
— 2) и Ея — символ, не принадлежащий У4.
c. Е -^ viv2, где Е -^ ViV2 6 ^Pi (vi, v2 6 Vi — 2).
d EE ЕЕ ll
Ея(г-1) ->- vr_ivr, где E "^ Vi . . . vr есть правило jt из схемы Рь
г > 3, v^ G Vi — 2 и Еяг 1 ^i Для всех *• Показать, что L (Gi) —
= L F^2) и 6^1 является неопределенной тогда и только тогда,
когда таковой является £2. (Таким образом, произвольная КС-грам-
КС-грамматика G является неопределенной тогда и только тогда, когда
таковой является ассоциированная с ней КС-грамматика в бинарной
стандартной форме.)
6. Пусть G — G, 2, Р, а) — приведенная КС-грамматика
в бинарной стандартной форме. Для каждой цепочки w £ 7* рас-
смотрим множество L (w) = {и £ 2 * | w =Ф и} и для каждого
Е 6 V — 2 — множества Н (Е) = {u | z;u G L (|) для некоторого
i; 6 L (Е)}, ЛГ (Е) = {и \ uv £ L (Е) для некоторого i; £ L (Е)}. Пока-
Показать, что G тогда и только тогда является неопределенной, когда
либо (а) существуют два правила Е -*- а и Е ->- Р» таких, что а ^ р
и L (а) П L (Р) ^ 0, либо (Ь) существует правило Е -> ХУ
(х, i/CF-S), такое, что Я (х) П К (у) ф 0 [See].
7. Пусть б1 = G, 2, Р, а) есть КС-грамматика. Сопоставим
каждому правилу \ ->■ w новый символ (Е ->- w). Каждому левосто-
56 Гл. 1. Контекстно-свободные языки
роннему выводу о~ = wi —> ... =Ф wr+u wr+i £ 2*, сопоставим
цепочку (гц) . . . (яг), где лг — правило, применяемое на шаге
wt =Ф м?£+1* Показать, что множество всех сопоставленных выводам
цепочек является КС-языком.
8. Пусть G — G, 2, Р, а) есть КС-грамматика, яь . . ., лг —
различные ее правила и символы [ь . . ., [г, ]4, . . ., ]г не при-
принадлежат 7. Пусть GB = (Ув, 2 в» ^в» а) есть КС-грамматика
и SB = SU{[*. ]«|1<*<г}, 7B=7U2B, Рв =
= {£ -> [£и?]г | | -►- w = jtj}. Пусть / — отображение множества
2в на множество 2*, определяемое соотношениями / (е) = е,
/(а) -а для всех a G 2, /([.) = /(].) = е, / fo . . . xk) =
= /Ы • • ../(*A)fo esB, 1 <;" <Л).
a. Показать, что КС-грамматика б1 является определенной
тогда и только тогда, когда отображение / взаимно однозначно.
b. Показать, что КС-грамматика GB является определен-
определенной [GHa].
9. Назовем формальным полиномом (над 2*) выражение вида
h = miWi + . . . + msws, где каждое т^ есть неотрицательное
целое число, а каждое ws принадлежит 2*. Цепочки w^ назовем
цепочками полинома. Два формальных полинома равны, если мно-
множества цепочек этих полиномов совпадают и коэффициенты при
одинаковых цепочках равны. Можно предполагать, что любые два
формальных полинома имеют одинаковые множества цепочек
(при некоторых из них коэффициенты могут быть нулевыми). Пусть
hi = miWi + . . . + mtwt и h2 = щт^ -f- . . . + ntwt. Сложение
и умножение полиномов определяется следующими равенствами:
hi + h2 — (mi + пу) wi + . . . + (mt + и^) wu hih2 = miniwiWi+
+ . . . + miUjWiWj +...-[- mtntwtwt. Пусть имеется G =
= G, 2, P, сг) и / (|i, . . ., ln) есть соответствующая гс-компо-
нентная стандартная функция, причем |п = а. Рассмотрим поли-
полиномы gt (%it . . ., £п) = яп + яг2 + • • • + яЖ|> * такие, что для
каждого i ft = nti U ... U я|(уф (я^ 6 ^*)- Далее, пусть g\ =
= ЙГ« С0\ . . . ^Г) и для каждого/с, Л > 0, g}ft+1) = gi Dft), • • ., g^)-
Показать, что G тогда и только тогда является неопределенной,
когда найдется такое /с, что коэффициент при некоторой цепочке
полинома g№ больше единицы [Sch 1].
10. Пусть 24 — некоторый алфавит 22 = {ти . . ., mt)
и 24 П 22 = 0. Пусть G = G, 2i (J 22, Р, а),1 где 7 = 24 U
U 22 U {ст } и
P = {a-^miaa\ I <i < t} [j {o-+a J а g 24}.
Показать, что КС-грамматика б1 является определенной. (Языки
типа L F1) называются бесскобочными языками.) См. [Ое].
11. Пусть б1 = G, 2, Р, сг) — приведенная КС-грамматика,
не имеющая правил вида £—*-£. Грамматическим элементом назы-
вается упорядоченная пара (I, w), где £ £ 7—2, и;^7*и^^
причем в выводе участвует по меньшей мере одно правило. Грам-
1.7. Подстановка 57
матический элемент называется заключительным, если «; ^ 2*.
Структурой грамматического элемента (£, w) называется упоря-
упорядоченная система (аь . . ., ато, Pi, . . ., pm), где т > 1, c*i £ 7,
рг- £ 7* A <! i <! w), и при этом либо (а) т = 1иа1 = |=Фм?= pi,
либо (b) li =Ф ai . . . ат =^> р! ... рт = м? есть нетривиальный
вывод (т. е. вывод с применением правил) и щ =Ф рг для всех i.
Показать, что G является определенной тогда и только тогда, когда
каждый грамматический (каждый заключительный грамматиче-
грамматический) элемент имеет единственную структуру [Fa].
1.7. Подстановка
Одним из важных средств исследования КС-языков
являются отображения, сохраняющие контекстно-сво-
контекстно-свободную структуру языков, т. е. переводящие всякий
КС-язык в КС-язык. (Этим отображениям посвящена гл. 3.)
В данном разделе мы изучим одно из наиболее полезных
отображений такого рода —«подстановку».
Определение. Сопоставим каждому символу
а £ 2 алфавит 2а и множество % (а) с= 2*. Пусть т (е) = е
и т (#! . . . хг) = % (Xi) . . . т (хТ) для каждой цепочки
Xi . . . хт £ 2*. Тогда отображение т множества 2*
(U 2а)*
во множество 2 а называется подстановкой. Если
для каждого а 6 2 множество т (а) состоит из единственной
цепочки м;а f 2J, то т рассматривается как отображение
множества 2* во множество (U 2а)* и называется гомо-
а
морфизмом (или гомоморфным отображением) Л).
Теорема 1.7.1 (о подстановке). Если L есть КС-
язык их — подстановка, такая, что % (а) есть КС-язык
для каждого а £ 2, то % (L) тоже является КС-языком.
Доказательство. Пусть L = L(G), где G =
= (V1 2, Р, а) является КС-грамматикой, каждому символу
а£2 соответствует КС-грамматика Ga={Va, 2а, Ра, оа)
и т (а) = L (Ga). Мы всегда можем считать, что (Va— 2a) П
П(^ь-2ь) = 0 и (Fa-Za)n(F-2)=0 Для всех афЬ
из 2. Определим гомоморфизм \х следующим образом:
|я(е) = е, [а(!) = £ для всех l£V — 2, (л(а) = аа для всех
х) Это определение согласуется с обычным алгебраическим поня-
понятием гомоморфизма одной полугруппы в другую.
58 Гл. 1. Контекстно-свободные языки
а £ 2 и \i (Xi . . . хТ) = \i (х^ .. . \i (xr) для каждой цепочки
xY .. . хт g F*. Рассмотрим КС-грамматику С = (V, 2', Р', а),
где V' = V[) [)Va, 2'= U2a и
2
Покажем, что L (Gf) = x (L).
Пусть w£r(L). Если w = 8 и e£L, то s£L(G'). Рас-
Рассмотрим случай, когда юфг*. Тогда w£x(y), где г/ =
= a A) ... а (к) принадлежит языку L {G). Цепочку w можно
в этом случае разбить на части w-=^w^ ... Wk так, что
Wi£x(a(i)) для всех iA <i<к). Пусть
= г/
G G G
есть вывод цепочки г/ в грамматике G. Поскольку wt (f
£L(Ga(i)) для всех t, то aa(i) =ф и;*. Тогда
= aa A)... aa
есть вывод в грамматике С, равно как и вывод
* *
За (ft) ^ W\Oa B) • • • Оа (ft) =Ф • • • =Ф W^i • • • l#& = U7.
G' Ga(i\ Ga{2) Ga{k)
Таким образом, w£L(G').
Допустим теперь, что w g L (Gf). Поскольку ни из
одного вспомогательного символа, принадлежащего мно-
множеству U (Va — 2a), не выводима в грамматике G'
а
цепочка, содержащая вспомогательный символ из мно-
множества V— 2, найдется такой вывод цепочки w в G\
что ни одно правило из множества U Ра не применяется
раньше некоторого правила вида !• -> \i (z). Иначе говоря,
существует такой вывод
G' G'
что для каждого г, меньшего некоторого числа £, на шаге
Wi=$Wi+1 применяется правило вида !;—»[i(z), а для каж-
каждого г, i>^, на шаге г^^=Фи;^+1 применяется некоторое
1.8. Неукорачивающие КС-грамматики 59
правило из множества U Ра. Тогда wt£{oa\ a£ 2}*, напри-
мер Wt = Оа(\) - • • оа(т)- Рассмотрим цепочку и/, получае-
получаемую из цепочки Wt заменой каждого символа оа симво-
символом а. Нетрудно видеть, что w'£L(G). Из леммы 1.4.6
и из того, 470 аа<о • •. ста(т)=фи;, следует, что существуют
G'
цепочки vi9 .. ., umi такие, что w = и1 . . . ит и имеет место
выводимость оа (г) =Ф г^ с использованием правил из мно-
множества U Ра- Поскольку множества Ра попарно не пере-
секаются, имоем оа{\) ==Ф vt. Таким образом, w£x(wf) и,
Ga (г)
следовательно, w g т (L).
Следствие 1.7.1. Если L есть КС-язык и х —
гомоморфизм, то т (L) тоже является КС-языком.
Пусть а — некоторый символ. Рассмотрим гомомор-
гомоморфизм т, определяемый следующим образом: т (х) = а
для всех х £ 2. Тогда имеет место
Следствие 1.7.2. Для каждого КС-языка L и каж-
каждого символа а множество {alw\ \ w £ L) является КС-язы-
КС-языком.
Пример. Пусть Li и L2 — КС-языки. Множество {anbn | n !> 1}
является КС-языком и порождается КС-грамматикой с правилами
о -+ ab, о -+■ aob. Тогда множество U (Li)n (£2)птоже будет КС-язы-
КС-языком. п^!
Рассмотрим произвольные КС-языки L4 и L2. Посколь-
Поскольку множества {а, Ъ) {аЪ} и {а}* (а и Ъ — некоторые сим-
символы) являются КС-языками, то, согласно теореме 1.7.1,
множества L1[)L2, LiL2 и L* тоже являются КС-язы-
КС-языками.
Теорема 1.7.2. Семейство всех К С-языков замкну-
замкнуто относительно операций \] , • и *.
1.8. Неукорачивающие КС-грамматики
Во многих случаях желательно, чтобы в схеме КС-грам-
КС-грамматики G не было правил вида | -►• 8. Если G есть КС-грам-
КС-грамматика и е £ L (G), то хотя бы одно правило вида £ -*• е
60 Гл. 1, Контекстно-свободные языки
в схеме имеется. (См. упр. 1.8.1.) Если е g L (G), то по
грамматике G может быть эффективно построена КС-грам-
КС-грамматика, тоже порождающая язык L (G), но не содержащая
ни одного правила вида £ ->■ е. Это утверждение (тео-
(теорема 1.8.1) будет основным результатом настоящего
раздела.
Определение. КС-грамматика G = (V, 2, Р, а)
называется неукорачивающей, если w ф г для всякого
правила £ ->• w £ Р.
Лемма 1.8.1. Пусть G = (V, 2, Р, о) есть КС-грам-
КС-грамматика с п вспомогательными символами, и пусть Wi =
— {Е I E^ &}• Пусть, далее.
для каждого к ^ 1. Тогда
a. Wt s Wn для всех £,
b. Е 6 Wn тогда и только тогда, когда
U I => 8.
Доказательство предлагается читателю в качестве
упражнения.
Теорема 1.8.1. Пусть G = (V, 2, Р, а) есть неко-
некоторая К С-грамматика с п вспомогательными символами
и множество Wn определяется, как в лемме 1.8.1. Рас-
Рассмотрим множество Р', состоящее из всех правил £ ->■ х
(х Ф е), удовлетворяющих условию:
(sfc) в Р найдется такое правило | -> у, что х полу-
получается из у удалением некоторых {возможно, никаких)
вхождений символов из множества Wn.
Тогда КС-грамматика G' = (V, 2Г Р', .а) является
неукорачивающей, L (Gf) = L (G) — {г} и в случае, если
грамматика G является определенной, грамматика G'
также является определенной.
Доказательство. КС-грамматика G', очевидно,
является неукорачивающей. Докажем, что L (G') =
= L (G) — {г}. Пусть | -> х 6 Р'- Тогда найдется у £ V*,
такое, что % ->■ у £ Р ж х получается из у удалением неко-
некоторых вхождений символов из множества Wv Иначе
1.8. Неукорачивающие К С-грамматики 61
говоря, существуют цепочка у = у^ . . . ys £ V* и под-
подпоследовательность уЛA) , . . ., уцк) последовательности
уи . . ., у8, такие, что yj £ Wn для всех / ф h A), . . .
. . ., j Ф h (k) и х — у]х{\) . . . yh{k). Поскольку у,=Ф е
G
для всех j Ф h A), . . ., h (к), имеем
=
G
Таким образом, если |—>х£Р', то Е=Ф#, так что |=фгг;
G G'
влечет ^ =Ф гг;. Отсюда следует, что L(G')c^L(G) и, ввиду
того, что 8gLF/), L(G/)^L(G)-{8}.
Для завершения доказательства равенства L (С) =
= L (G) — {е} достаточно показать, что L (G) — {е} ^
s L (G'). Рассмотрим КС-грамматику G" = G, 2, Р", а),
где Р" = PU^P'- Поскольку, очевидно, L (G) ^ L (£"),.
имеем L (G) — {е} е L (G") — {е}. Поэтому достаточно
показать, что L (G'') — {г} ^ L (С). Допустим против-
противное. Тогда найдется цепочка w £ L {G") — {е}, не при-
принадлежащая множеству L (G'). Пусть Т (см. рис. 1.12)
есть минимальное дерево вывода, производящее вывод w
из а в G". Таким образом, Т производит некоторый вывод
0 — w0 =ф . . . =ф wt = г^. Поскольку wi'f L (С), то су-
G" G"
ществует индекс £, такой, что на шаге wt =ф г^г-+1 приме-
применяется правило v —>- 8 £ Р. Вершину дерева Г, помечен-
помеченную этим вхождением 8, обозначим через q. Пусть q0, ...
. . ., qr есть путь в дереве Г, начинающийся в корне
дерева q0 и заканчивающийся в вершине qr = g. Обо-
Обозначим через Uj правило из Р", применяемое к пометке
при qj в рассматриваемом выводе @ ^ / ^ г — 1). По-
Поскольку \ Wt | > 0, существует наибольший индекс т,
такой, что правило пт имеет вид £ ->■ v4 . . . vs, где
Vj £ V для всех / A ^ j'^ s) и s ^> 2. Пусть v^ есть то вхож-
вхождение вспомогательного символа, которым помечена вер-
вершина qm+i> Вследствие максимальности т каждое правило
П] (т + 1 <С / ^ Т — 2) имеет вид £7- -> |7-+1, при этом
1 = vh и яг _i есть правило v->■ е. Отсюда можно
Р и с. 1.12. Дерево вывода Г.
1.8. Йеукорачивающие К С-грамматики
заключить, что v^ =Ф 8. (Рассмотрим некоторое /, ш + 1 <С
G
<С 1 ^С г — 2. Поскольку £7- ->■ |7+1 g P', существует
#/» ^i 6 ^*» такие, что 57- -►■ Xl f Р }
8.
Рис. 1.13. Дерево вывода 7V
Итак, гл = £m+1 =ф 8.) Поэтому I -+ Vi . . . vh
G
• • • Vs 6 P\ иг следовательно (см. рис. 1.13), дерево Гь
получаемое из Т удалением вершин gm+i, . . ., qr вместе
с дугами, оканчивающимися в этих вершинах, тоже произ-
*
водит вывод Gr=$w. Однако это противоречит минималь-
G"
ности дерева Т (так как дерево Тг имеет меньше вершин).
Следовательно, L {G") — {г} е L (С).
64 Гл. 1. Контекстно-свободные языки
Предположим теперь, что КС-грамматика G является
определенной. Рассмотрим некоторое правило |—>х из Р'.
Пусть £—>у = У\ ... ys есть некоторое правило из Р,
такое, что yj£V A</<s), и для подпоследовательности
Ун A)» • • •» Уть.) последовательности символов уи .. ., ys
имеет место, во-первых, у^=Ф е(/ Ф h A), ..., h(k)), и,
G
во-вторых, x = yh{1) ... yh{h)- Пусть, далее,
а, ^
есть вывод £=Ф yi . . . ув=Ф уЛ A) .. . yh (ft), получаемый в ре-
результате последовательного проведения всех выводов
уДе(;>ЛA), ...,Л(Л)). Пусть
G
b. a =^> w;! =ф . .. =ф г/;г — w;
есть левосторонний вывод некоторой цепочки w£L (Gf)
в грамматике 6?\ Пусть, кроме того,
С, а=ф2!=Ф . . . =^Zt = W
есть вывод в G, получаемый из вывода Ь заменой (для
каждого i) правила £ ->■ х £ Р', применяемого на шаге
w;j =Ф W7j + i, выводом а. Обозначим через Г дерево вывода,
производимое выводом с, через Е — множество таких
вершин р дерева Г, что поддерево Г, порожденное вер-
вершиной р, является деревом вывода цепочки 8. Пусть,
далее, 7^ есть граф, получаемый из Т удалением всех
вершин из множества Е вместе с заходящими в них дуга-
дугами. Тогда Ti есть дерево вывода, производящее вывод Ь.
(Удаленные вершины помечены либо вхождениями е,
либо вхождениями тех вспомогательных символов, кото-
которые являются потомками вспомогательных символов, уда-
удаленных при построении правила £->■:£.)
Предположим, что
есть другой левосторонний вывод цепочки w в граммати-
грамматике G'. Пусть
е. ^ '
1.8. Неукорсшивающие КС-грамматики 65
есть вывод в G, получаемый заменой (для каждого i)
правила Б -> х g Р', применяемого на шаге w\ =^> w\+i,
на вывод а. Пусть Т' есть дерево вывода, производящее
вывод е. Поскольку G — определенная КС-грамматика,
Т' = Т. Тогда дерево вывода Т\ производит вывод d
и, следовательно, левосторонние выводы b и d совпадают.
Таким образом, КС-грамматика G' тоже является опреде-
определенной.
Вернемся к вопросу о порождении произвольного
КС-языка некоторой КС-грамматикой, не имеющей правил
вида £ -> v, где v — некоторый вспомогательный сим-
символ 1).
Лемма 1.8.2. а. Пусть \ — некоторый вспомога-
вспомогательный символ КС-грамматики G = (V, 2, Р, а). Пусть
Н = {[х £ F — 2 |[х=Фе}. Пусть, далее, Wi = {£} и для
всех к > 1 PFfe+i = Wk[} {у £V — 2 \\l~+ wiywz 6 P;
Wi, w2 g Я*, |x g Wk}. Тогда ^ =Ф v <9дл некоторого вспомо-
вспомогательного символа v тогда и только тогда, когда v £ 1¥п,
г&? п = # (F— 2).
Ь. Пусть % и v (v Ф о) — произвольные вспомогатель-
вспомогательные символы КС-грамматики G = (F, 2, Р, а), такие,
что g =ф v и v =ф £. Пусть G' = (V — {v}, 2, Р;, а) есть
К С-грамматика, такая, что Р' состоит из всех правил,
получаемых из правил грамматики G заменой всех вхож-
вхождений v вхождениями \. Тогда L (G) =*= L (G').
Доказательство предлагается в качестве упражнения.
Пример. Пусть G = (Vj 2, Р, £3) есть КС-грамматика
и Р= {gi -^ agig2, li-^Ыи li-+аЪ, 5i->58. &2-^- Si6s> 1г -> 5i,
S2 ^" с> ?з ->■ aSi^> 6з ^ Si }• Применяя условие леммы 1.8.2
к I = Ъз, получаем Wt = {l3} и W2 = {5i» 1з}- Таким образом,
Ба ^Ф 6i. Точно так же ^ ^Ф g8- Пусть С = (У - {g^, 2, Р', g,)
есть КС-грамматика и Р' = {13 -> а|3^2> Ss -> £г£з, 5з -> «&»
1з - Ба, 5з -> 5з6з, ^2 -> Ба» Е> -> с, Ба ~> «£з&>. Тогда Z, (С) =
= L (G').
Лемма 1.8.3. Пусть G = (V, 2, Р, а) есть КС-грам-
КС-грамматика с п вспомогательными символами и Б — o<9aw аз ее
вспомогательных символов. Пусть Wi (|) — {£} a
х) Оставшаяся часть раздела при первом чтении может быть
опущена.
66 Г л* 1. Контекстно-свободные языки
= wk(%) и {ц е v - s | v -^ (х e p, v e »гл (Е)>
/с ^ 1. Тогда вспомогательный символ v принадлежит
множеству Wn (|) в тож а только в том случае, если
найдется последовательность вспомогательных символов
Vi, . . ., vr, такая, что | == vb v = vr и Vj-+ v^+i 6 ^
для всех ].
Доказательство предлагается в качестве упражнения.
Теорема 1.8.2. По каждой К С-грамматике G
может быть построена КС-грамматика Gu порождаю-
порождающая язык L (G) и не содержащая ни одного правила вида
I -->- v, где v £ V — 2. Если е g L (G), то по грамматике G
может быть построена КС-грамматика 6?ь порождающая
язык L (G) и такая, что ни для каких вспомогательных сим-
волов \и\ не существует вывода \ =ф v х) . В обоих случаях
если G — определенная К С-грамматика, то GY также
является определенной.
Доказательство. Если L (G) = 0, то в ка-
качестве 6?! можно взять КС-грамматику с единственным
правилом а -> gg. Пусть L (G) Ф 0 и G = (V, S, Р, а).
В силу леммы 1.4.1 можно считать, что
a. ни одно правило не имеет вида £"-*£•
В силу лемм 1.8.3 и 1.8.2 можно также считать, что для
любых различных переменных g и v
b. либо 11 Wn (v), либо veWn (I),
где VF7t (g) определено, как в лемме 1.8.3. Будем писать
v ^ | для произвольных вспомогательных символов v и |,
*) В этом утверждении легко освободиться от требования
8 £ L (G). Действительно, пусть е £ L F1). Построимте теореме 1.8.1
КС-грамматику £', такую, что L (£') = L (G) — {е}. Для нее по
теореме 1.8.2 можно построить грамматику G\=.(VU 2, Pit 0*1),
порождающую тот же язык L (G) — {&} и обладающую тем свойством,
что ни для какой пары различных вспомогательных символов £» v
не существует вывода v из g. Грамматика £2 = (F4 U {сг2 },
2, Pi (J {о*2->^ь ..., o2-^wt, о*2-^8}, а2)> где 0*2 6 Fi и»!,..., ы;/—
все цепочки, для которых Р4 содержит правила Gi-^w^ ..., ai->w;f,
очевидно, также обладает этим свойством, и L (G2) = L (G). Ясно,
кроме того, что из определенности G следует определенность
G2-—Прим. ред.
1.8. Веукорачивающие К С-грамматики 6?
если либо v = £, либо существуют вспомогательные симво-
символы 10 = Ъ, Ъи • • •, lh = v, такие, что & ->■ gf + 1 для
каждого z<^ k есть правило. Ясно, что из v ^ ^ и Е <J Y
следует v ^ у. Кроме того, ввиду Ь из ^ v и v ^ ^
следует £ — v. Таким образом, отношение ^ является
отношением частичного порядка на множестве вспомога-
вспомогательных символов.
Рассмотрим вспомогательные символы £ и v, такие,
что £ —>■ v £ Р- Пусть у есть минимальный вспомогатель-
вспомогательный символ (в смысле только что введенного частичного
порядка), удовлетворяющий неравенству у ^ v; у суще-
существует, поскольку число вспомогательных символов
конечно. Пусть \i — такой вспомогательный символ, что
|i->Y 6 Р- В силу а \ьф у. Пусть Y^-^ь • • •» У~*~и>г —
все правила из Р, имеющие у в левой части. Поскольку у
минимально, ни одна цепочка wt не является вспомога-
вспомогательным символом. Пусть
Поскольку ни одна цепочка wt не является вспомогатель-
вспомогательным символом, во множестве Р' правил вида \ -> v содер-
содержится на одно меньше, чем во множестве Р. В то же время
L(G) = L (Gf), где G' = G, 2, Р\ а). (Поскольку каждое
правило грамматики G' соответствует некоторому выводу
в грамматике G, L (Gr) e L (G). Докажем обратное вклю-
включение. Пусть z 6 L (G), а =ф zy =ф ... =Ф z6 = z — вывод
G G G
цепочки гвбиГ- дерево этого вывода. Если указанный
вывод не является выводом в грамматике G', то, как
нетрудно видеть, дерево Т производит некоторый вывод
а=Ф^=^ . . . =ф ys = z, такой, что если на шаге г/^ =ф
G G G G
применяется правило а -»- v, то на шаге i/i + 1 =Ф z/j + 2 при-
G
меняется некоторое правило у -> м;^. Тогда, применяя
к цепочке yt правило \л -►■ м;у- из множества Р;, имеем
Hi =$ i/i+2. Элиминируя таким образом все применения
G'
правила \i ->■ у, получаем вывод а =ф ^j =^ ... =ф ^fe = z
в грамматике G' Итак, L (G) s L (G').) Описанная про-
процедура повторяется применительно к Р', и так далее
до тех пор, пока исчезнут все правила вида £ -> v, где v —
68 Гл. 1. Контекстно-свободные языки
вспомогательный символ. В результате получится КС-
грамматика Gb также порождающая язык L (G), но не
содержащая правил вида £->v.
Докажем вторую часть теоремы. Для этого предполо-
предположим, что 8 g L (G). По теореме 1.8.1 мы можем построить
КС-грамматику 6?ь порождающую язык L (G) и удовле-
удовлетворяющую условию
c. ни одно правило не имеет вида £ -> е.
Воспользовавшись доказанной частью теоремы, мы можем
допустить что
d. ни одно правило не имеет вида £ -> v, где v — вспо-
вспомогательный символ.
Предположим, что существуют различные вспомога-
вспомогательные символы | и v, такие, что £ =ф v. Рассмотрим
некоторый вывод £ =ф z4 =£ ... =Ф zs = v. Ввиду с | z-t | =
Gi Gi Gi
= 1 для всех i. Отсюда, однако, следует, что £ ->- zb где
z4 — вспомогательный символ, является правилом грам-
грамматики Gi. Наше допущение привело к противоречию
с условием d, поэтому не существует различных вспомо-
*
гательных символов £ и v, таких, что £ =ф v.
Gi
Предположим, наконец, что КС-грамматика G является
определенной. Тогда G удовлетворяет условиям а и Ь.
Рассмотрим первый случай. Докажем, что построенная
в первой части теоремы грамматика G' также является
определенной. Предположим противное. Тогда в G' най-
найдутся два различных левосторонних вывода а = у0 =ф . . .
. . . =ф ys и а = z0 =ф . . . =ф zt одной и той же цепочки
У = ys = %t из языка L (Gf). Пусть i — наименьший
индекс, такой, что уг ф zt. Пусть а = у'о =ф . . . =^> у} =
= y-L-i = zi-i — левосторонний вывод в G. Пусть, кроме
ТОГО, у-г = у\ =ф . . . =ф yl = у И Zj = Zi =ф . . . =^> Zg —
= у — левосторонние выводы в G. Рассмотрим правила
tti и я2 из Р\ применяемые на шагах уг-± =ф г/г и 2г_! =ф
=Ф Zj соответственно. Если я4 и я2 принадлежат Р, то
и
представляют собой два различных левосторонних вывода
1.8. Неукорачивающие КС-грамматики 69
цепочки у в грамматике G, что невозможно. Предположим,
что Я1 6 Р' П Ризх2£Р' -Р. Тогда я2 есть одно из пра-
правил |х ->■ *#,. Пусть z' есть цепочка, получаемая в резуль-
результате применения правила |х ->■ у к самому левому вхож-
вхождению вспомогательного символа в цепочку у} = yt-\ =
= zt-i. Тогда
суть левосторонние выводы цепочки у в грамматике G.
Поскольку z' Ф у\ (zf получается из у} заменой самого
левого вхождения |х на у, а у\ — заменой того же вхож-
вхождения |х на wu и у Ф wt), эти выводы различны, чего быть
не может. Аналогичное противоречие возникает в случае,
когда Я! 6 Р' — Р и ^2 6 Р' П Р• Предположим, нако-
наконец, что Tii и я2 принадлежат Р' — Р. Тогда ji4 есть пра-
правило \l-> wj и я2 — правило \i-*~ wh для некоторых /
и к (] ф к). Пусть, как и прежде, z' — цепочка, получае-
получаемая в результате применения правила \л ->■ у к самому
левому вхождению вспомогательного символа в цепочку
Vf = Ui-i = Zi-i- Тогда
суть различные левосторонние выводы цепочки у в грамма-
грамматике G, что невозможно. Таким образом, G' — опреде-
определенная КС-грамматика.
Если КС-грамматика G является определенной и 8 g
g L (G), то, согласно теореме 1.8.1 и только что разо-
разобранному случаю настоящей теоремы, можно построить
определенную КС-грамматику Git порождающую L (G)
и удовлетворяющую условиям end. Это доказывает
справедливость последнего утверждения теоремы для вто-
второго случая.
У п ражнения 1.8.
1. Показать, что если G — неукорачивающая КС-грамматика,
то L (G)C2* - {e}.
70 Гл. 1, Контекстно-свободные языки
2. Доказать лемму 1.8.1.
3. Пусть G = (F, 2, Р, £i) есть КС-грамматика. Найти мно-
множество W4 в случае, когда Р = {^ -^- £2&» ёг -^ ?з«? ёг -* а^»
4. Доказать лемму 1.8.2.
5. Пусть G = (F, 2, Р, g5) есть КС-грамматика и Р =
(a) Найти все вспомогательные символы £» такие, что ^5 ^ ?•
(b) Найти КС-грамматику (?г, такую, что L (G1) = L (G) и не
существует различных вспомогательных символов g и v, для кото-
* * с
рых имеет место g =^> v и v =Ф g.
G' G'
6. Доказать лемму 1.8.3.
7. Показать, что для каждой КС-грамматики G и для каждого
натурального числа п существует КС-грамматика Gn, такая, что
L (Gn) = L (G) — {и £ 2* | |м|<;?г}и каждое правило £„ имеет
вид I -^ ш, | м; | > п.
1.9. Историческая справка
Понятие контекстно-свободного языка впервые вве-
введено Хомским [Хо 1,2]. Более подробно КС-языки были
изучены в работе [Хо 3]. Нормальная форма Бэкуса
впервые появилась в сообщении о языке АЛГОЛ-60
[На]. Языки типа АЛГОЛ были изучены в работе [ГРа];
там же доказана теорема 1.3.1. Многие результаты настоя-
настоящей главы хорошо известны, но не все они имелись в лите-
литературе в явной форме. Лемма 1.4.4, теоремы 1.7.1, 1.7.2,
1.8.1 и понятие дерева вывода содержатся в [BPS]. Первые
же части теоремы 1.8.2 доказаны в [BPS; Ра 1]. Понятие
определенности хорошо известно лингвистам *). В при-
применении к КС-языкам это понятие в неявном виде исполь-
используется в [Xol] и^в явном — в [Can; F1 1; Ра 1]. Теоре-
Теорема 1.6.1 и идея левостороннего вывода имеются в [Ev].
Понятие существенной неопределенности впервые рас-
рассмотрено в [Ра 1].
1).В связи с явлением омонимии.— Прим. перее.
ГЛАВА
АВТОМАТЫ И ЯЗЫКИ
В этой главе мы опишем два типа автоматов, играющих
важную роль в теории КС-языков. Эти автоматы функ-
функционируют как устройства, допускающие или распознаю-
распознающие цепочки, и каждому типу автоматов соответствует
при этом некоторое семейство множеств цепочек. Авто-
Автоматы первого типа — конечные автоматы — распознают
регулярные множества, играющие очень важную роль
в теории автоматов. Как мы увидим в дальнейшем, регу-
регулярные множества играют существенную роль и в теории
КС-языков. Автоматы второго типа — автоматы с мага-
магазинной памятью — распознают КС-языки. Этот факт по-
позволяет рассматривать произвольный КС-язык как мно-
множество, распознаваемое подходящим автоматом с мага-
магазинной памятью.
2.1. Конечные автоматы и регулярные множества
Предполагается, что читатель знаком с элементами
теории конечных автоматов в объеме статьи [PC]. В настоя-
настоящем разделе мы коротко изложим необходимые сведения
из этой теории. Доказательства результатов, приведенных
в"[РС], а именно теорем 2.1.1, 2.1.4 и 2.1.5, опускаются.
Мы будем изучать автоматы, имеющие конечное число
состояний «внутренней» памяти. Характер производимых
автоматом «элементарных действий» может быть различ-
различным в зависимости от типа автомата. Сначала мы рас-
рассмотрим наиболее простой тип — так называемые конеч-
конечные автоматы. Они имеют конечное число состояний
(составляющих внутреннюю память автомата) и конечное
число входных символов. Как только входной символ
72 Гл. 2. Автоматы и языки
вводится в конечный автомат, автомат переходит из одного
состояния в другое, причем этот переход является детер-
детерминированным. Кроме того, во множестве состояний
выделяются начальное состояние и множество заключи-
заключительных состояний. Цепочка (конечная последователь-
последовательность входных символов) допускается конечным авто-
автоматом, если, начав работать в начальном состоянии
и прочтя всю цепочку, автомат переходит в одно из заклю-
заключительных состояний. Таким образом, каждый конечный
автомат функционирует как устройство, распознающее
некоторое множество цепочек (оно допускает те и только
те цепочки, которые принадлежат этому множеству).
Приведем теперь формальные определения понятий,
о которых сейчас шла речь.
Определение. Конечным автоматом г) назы-
называется упорядоченная пятерка (К, 2, б, р0, F).
1. К — непустое конечное множество (множество состо-
состояний).
2. 2 — алфавит (множество входных символов).
3. 6 — отображение множества К X 2 во множество
К (функция переходов).
4. р0 — выделенный элемент множества К (начальное
состояние).
5. F — подмножество множества К (множество заклю-
заключительных состояний).
Отображение б доопределяется до отображения мно-
множества К X 2* во множество К следующим образом:
5 (?> е) = д; б (q, xi . . . xh) = qh, где, q0 = q и qt =
= б (qt-i, xt) для каждого i A ^ i ^ k), каждого состоя-
состояния q и каждой 2-цепочки я^ . . . xh. Заметим, что
б (g, xt . . . xh) = б (б (g, xi . . . xt), xi+i . . . xh).
Символ 2 использовался выше для обозначения мно-
множества основных символов грамматики, здесь же этот
символ используется для обозначения множества входных
символов конечного автомата. Такой выбор обозначения
объясняется тем, что в дальнейшем в качестве множества
Конечные автоматы иногда называют просто автоматами.
2.1. Конечные автоматы и регулярные множества 73
входных символов конечного автомата будет выступать
множество основных символов некоторой грамматики.
Определение. Пусть А = (К, 2, б, р0, F) —-
произвольный конечный автомат. Множество Т (А) =
= {х £ 2* | б (р0, х) £ F) называется множеством цепо-
цепочек, допускаемых конечным автоматом А.
Определение. Множество U 9== 2* называется
регулярным, если существует конечный автомат А, такой,
что U = Т (А).
Регулярные множества играют центральную роль в тео-
теории автоматов и весьма важную — в теории КС-языков.
(Они будут фигурировать, например, в теореме 3.2.1,
имеющей весьма широкие приложения, а также во многих
доказательствах гл. 4.) Если бы регулярные множества
не были до сих пор известны, то развитие теории КС-язы-
КС-языков непременно привело бы к их обнаружению.
Важным свойством регулярных множеств является
факт, содержащийся в следующей теореме (в пункте Ь).
Теорема 2.1.1. а. Если множества U и V регу-
регулярны, то множества U [} V, U [\ V и U — V регулярны.
Ь. Семейство регулярных множеств г) есть наименьшее
семейство подмножеств множества 2*, содержащее все
конечные множества и замкнутое относительно операций
U, • и*.
Следующий результат дает описание структуры регу-
регулярных множеств над однобуквенным алфавитом. Оно
будет потом использовано в конечном счете для описания
структуры КС-языков над таким алфавитом.
Теорема 2.1.2. Пусть 2 = {а}. Множество U
тогда и только тогда регулярно, когда U = {V \] £ В},
где В есть периодическое множество неотрицательных
целых чисел.
Доказательство. Пусть множество U регу-
регулярно. Тогда U = Т (А) для подходящего конечного
*) Точнее — семейство регулярных множеств в алфавите Г. —
Прим. \перев
74 Гл. 2. Автоматы и языки
автомата А = (К, {а}, б, р0, F). Пусть pt = б (р0, аг)
для каждого i. Поскольку множество К конечно, сущест-
существуют числа тип, такие, что 0^т</ги рт = рп. Тогда
Pi = Pi+in-my Для каждого i, i>m. Пусть / A), . . .
. . ., / (г) — те из чисел i (О ^ i < m), для которых
Pi £F, ж g A), .Л, g E) — те из чисел i (т < i < тг),
для которых pi £ F. Тогда
ГD) = {о/«)|1</<г}и U аё^(ап-т)*.
Следовательно,
k /<r}U U
а это — периодическое множество.
Допустим теперь, что U = {V | / g S}, где 5 — перио-
периодическое множество неотрицательных целых чисел. Тогда
существуют числа т и пи такие, что для каждого /, / ^ т,
если j g 5, та и / + щ g В. Пусть / A), . . ., / (г) — все
элементы множества {i \ 0 ^ i < m} О В и g A), . . .
. . ., g (s) — все элементы множества {i \ m ^ i < т +
+ щ} П 5. Тогда
|<Л<г}и U
Следовательно,
С/ = {a/ <fe> 11 <: /с -< г} U U
а это множество регулярно в силу теоремы 2.1.1. Дока-
Доказательство закончено.
Пусть Н = {iVi, . . ., w;r} — конечное подмножество
множества 2* и G = G, S, Р, а), где Р = {а ->■ w;j I I <^
^ i ^ г}. Тогда Н = L (G). Итак, каждое конечное
подмножество множества 2* является КС-языком. Семей-
Семейство КС-языков содержит, следовательно, все конечные
множества; согласно теореме 1.7.2, оно замкнуто относи-
относительно операций (J , • и *. Отсюда по теореме 2.1.1 каж-
каждое регулярное множество является КС-языком. В сле-
следующем разделе мы покажем, что каждое регулярное
множество порождается КС-грамматикой некоторого чрез-
чрезвычайно простого вида.
2.1. Конечные автоматы и регулярные множества 75
Замечание. Поскольку регулярные множества
являются КС-языками и распознаются устройствами,
имеющими «конечную память», их называют иногда «язы-
«языками с конечным числом состояний».
Пусть R — регулярное множество. Тогда R получается
из конечных множеств цепочек, т. е. из конечных объе-
объединений цепочек («одноцепочных» множеств) конечным
числом применений операций U , • и *. Если в конечном
объединении цепочек мы заменим каждый элемент а
множества 2 на регулярное множество т (а), то получим
регулярное множество (являющееся конечным объеди-
объединением множеств, каждое из которых есть произведение
регулярных множеств). Так как в результате применения
операций (J , • и * к регулярным множествам мы вновь
получаем регулярные множества, множество % (R) являет-
является регулярным. Итак, мы получили следующую теорему,
являющуюся аналогом теоремы 1.7.1.
Теорема 2.1.3; (о подстановке). Пусть R — регу-
регулярное множество, т — определенное выше отображение
и множество % (а) регулярно для каждого а £ 2. Тогда мно-
множество х (R) также регулярно.
Конечный автомат — устройство по существу детер-
детерминированное. Это означает, что для каждого состояния
и каждого входного символа следующее состояние опреде-
определяется однозначно. Теперь мы снимем это ограничение —
предоставим автомату возможность выбора одного из
нескольких следующих состояний и, кроме того, позво-
позволим ему иметь более одного начального состояния. Цепоч-
Цепочка допускается таким устройством, если при некотором
выборе следующих состояний это устройство, работая
с данной цепочкой, переходит из некоторого начального
состояния в некоторое заключительное *). Понятие неде-
недетерминированности будет важно не только для устройства,
используемого при изучении регулярных множеств, но
и для устройств, связанных с рассмотрением КС-языков.
х) Функционирование такого автомата можно сравнить с блуж-
блужданием по лабиринту, в котором в различных местах имеется воз-
возможность выбирать различные пути. При этом некоторые из этих
путей] приводят к смертельному исходу, другие — к выходу,
а третьи — к успеху.
76 Гл. 2. Автоматы и языки
Приведем более точные определения введенных поня-
понятий.
Определение. Недетерминированным конечным
автоматом называется упорядоченная пятерка А =
= (К, 2 Д S0,F).
1. К — непустое конечное множество (множество со-
состояний).
2. 2 — алфавит (множество входных символов).
3. 6 — отображение множества К X 2 во множество
2К [б (q, x) есть множество следующих состояний].
4. SQ — непустое подмножество множества К (мно-
(множество начальных состояний).
5. F — подмножество множества К (множество заклю-
заключительных состояний).
Для недетерминированного конечного автомата б до-
доопределяется следующим образом: б (q, e) = {q} для всех q.
Определение. Пусть А — (К, 2, б, 50, F) —
недетерминированный конечный автомат. Цепочка w при-
принадлежит множеству Т (А) (или допускается автоматом А),
если либо w = &nSo{]Fz£0, либо w = я4 . . . хп,
где для каждого i xt £ 2, и существует последователь-
последовательность 50, . . ., sn элементов множества К, такая, что
1. soeso,
2. st g 6 (st _i, xt) для 1 < i < n,
з. sn e f.
Следующий результат является основным в теории
недетерминированных конечных автоматов.
Теорема 2.1.4. Для каждого недетерминированно-
недетерминированного конечного автомата А множество Т (А) регулярно.
Таким образом, конечные автоматы и недетерминиро-
недетерминированные конечные автоматы имеют одинаковую порождаю-
порождающую силу, а именно они распознают одни и те же мно-
множества цепочек.
Приводимый ниже результат дает два дополнительных
свойства регулярных множеств, которые, впрочем, будут
редко использоваться.
Определение. Пусть = является отношением
эквивалентности, определенным на 2*. Если из х = у
2.1. Конечные автоматы и регулярные множества 77
следует uxv = uyv для всех и, г; £ 2*, то отношение s=
называется отношением конгруэнтности.
Определение. Индексом отношения эквивалент-
эквивалентности называется число (конечное или бесконечное) клас-
классов эквивалентности по этому отношению.
Теорема 2.1.5. Для каждого множества цепочек U
следующие три утверждения эквивалентны:
a. Множество U регулярно.
b. На множестве 2* существует отношение эквивалент-
эквивалентности = конечного индекса, такое, что U есть объединение
некоторых классов эквивалентности по этому отношению.
c. Пусть s= есть отношение конгруэнтности на мно-
множестве 2*, определенное следующим образом: х = у, если,
каковы бы ни были цепочки w и z, цепочки wxz и wyz одно-
одновременно принадлежат или не принадлежат множеству
U. Тогда отношение s= имеет конечный индекс.
Упражнения 2.1
1. Доказать, что множество U тогда и только тогда регулярно,
когда таковым является множество U . См. [PC].
2. Пусть множество U регулярно, Ut, . . ., Un — произволь-
произвольные множества, А = {at | 1 < г < ?г} — множество, состоящее
из п элементов, их — подстановка, определенная следующим обра-
образом: т (at) — Ut для всех i. Показать, что множество V =
= {и; |т(ш)с[/} регулярно [GH 1]. (Указание. Пусть U = Т (А),
где А = (К, 2,6, s0, F). Пусть, далее, В — конечный автомат
BК - {0}, А, вв, Ы, 2F - {0-}), где бв (Е, at) =
= {б (я, и?) | g 6 Е, we Ut}. Тогда F = Т (В).)
3. Пусть множество 2* частично упорядочено следующим
образом: и <J у, если у = иы; для некоторого w g 2*. Показать, что
для всякого регулярного множества С/ множества минимальных
и максимальных элементов множества U регулярны.
4. Пусть / — гомоморфное отображение, определенное на мно-
множестве 2*. Показать, что множество {/ (w) \ f (w) = f (у) для неко-
некоторого у Ф w) регулярно. (Указание. Пусть 2 = {at \ 1 •< i <! п)
и В = {/ (at) | 1 <; i <; п}*. Доказать, что интересующее нас мно-
п
жество представляется в виде ВС, где С = U U (/ (а^) 2?f|/ (aj) ^)-)
5. Пусть Я С 2 X 2 и R = {^ . . . xk \ к > 2, (жг, £+1N
Я для i -< /с — 1}. Доказать, что множество R регулярно [Е1 1].
78 Гл. 2. Автоматы и языки
6. Показать, что КС-язык {anbn \ п ^> 1} не является регуляр-
регулярным множеством.
7. Доказать, что множество цепочек U тогда и только тогда
регулярно, когда семейство множеств (Uz | z £ 2*} конечно, где
17г= {хеЪ* \zx£ U) [GRo 2].
8. КС-грамматика £ = (F, 2, Р, а) называется КС-грамма-
КС-грамматикой равномерно ограниченной активной емкости, если существует
натуральное число &, такое, что для каждой цепочки w £ V*, если
а =$ w, то w содержит не больше к вхождений вспомогательных
символов [Ва; А1]. Пусть G = (V, 2, Р, а) — произвольная
КС-грамматика равномерно ограниченной активной емкости. Для
каждого ее правила %-^w введем абстрактный символ (£ ->- w). Со-
Сопоставим каждому левостороннему выводу цепочку (jii) ... (яг),
где щ — правило, используемое для перехода wt =$ wi+i. Пока-
Показать, что множество всех цепочек, сопоставленных таким образом
левосторонним выводам, является регулярным [А1]. Показать, что
если рассматривать не только левосторонние выводы, то полу-
получаемое множество цепочек останется регулярным [Ва].
2.2. Линейные правила
Сейчас мы займемся рассмотрением КС-грамматик
с правилами некоторого специального очень простого
вида. В терминах таких грамматик мы затем охарактери-
охарактеризуем регулярные множества.
Определение. Правило называется линейным,
если оно имеет вид | ->■ и или | ->■ uvv, где и, г; £ 2*,
v £ V — 2. КС-грамматика называется линейной, если
каждое ее правило линейно. КС-язык называется линей-
линейным, если он порождается некоторой линейной КС-грам-
КС-грамматикой.
Таким образом, КС-грамматика тогда и только тогда
является линейной, когда правая часть каждого ее пра-
правила содержит не более одного вхождения вспомогатель-
вспомогательного символа.
Примеры. 1. Грамматика G =^(F, {а, Ь}, Р, а)/ где Р =
= {а ->- aoba, а -> vab, v -> boa, a -> &}, является линейной.
2. Правило a -> aa&afr не является линейным.
Линейные грамматики не представляют для нас сущест-
существенного интереса сами по себе; мы будем изучать лишь
некоторый специальный класс линейных грамматик.
2.2. Линейные правила 79
Определение. Правило называется праволиней-
ным (леволинейным), если оно имеет вид £ ->- и или £ ->■ uv
(| ->■ vu), где и £ 2* hv( F- 2. КС-грамматика назы-
называется праволинейной (леволинейной), если каждое ее пра-
правило является праволинейным (леволинейным).
Пример. Грамматика G = (F, {а, Ь, с}, Р, а), где Р =
= {а ->- аба, а ->- rv, v ->- bav, v ->- а}, является праволинейной.
Очевидно, что всякое праволинейное правило является
линейным.
Приводимые ниже утверждения будут касаться, как
правило, праволинейных грамматик. Аналогичные утвер-
утверждения справедливы для леволинейных грамматик.
Установим связь между регулярными множествами
и праволинейными грамматиками. В сущности следующий
результат утверждает, что регулярные множества — это
языки, порожденные КС-грамматиками некоторого «про-
«простейшего» вида.
Теорема 2.2.1. Множество тогда и только тогда
является регулярным, когда оно порождается некоторой
праволинейной К С-грамматикой.
Доказательство, а. Пусть L = L (G), где G
есть праволинейная КС-грамматика. Чтобы доказать,
что L регулярно, построим недетерминированный конеч-
конечный автомат А, такой, что L — {е} = Т (А). Однако
прежде покажем, что множество L — {е} порождается
КС-грамматикой некоторого специального вида.
Согласно теореме 1.8.1, существует неукорачивающая
КС-грамматика Gu такая, что L (Gi) = L (G) — {г}. Бо-
Более того, грамматика Gt является праволинейной и по тео-
теореме 1.8.2 по грамматике Gi может быть построена КС-
грамматика G2 = (V2, 2, Р2, а), порождающая язык
L (Gi) и не содержащая ни одного правила вида !• -»■ v,
v f F2 — 2. Из доказательства теоремы 1.8.2 видно,
что грамматика G2 является праволинейной и неукора-
чивающей. Определим Р3 как множество, состоящее из сле-
следующих правил:
1- I -> atln2, %ni ->■ uilnu + t), где 2 < i < k — 1, и
ёзть -+■ ahv для каждого правила п £ Р2 вида | ->■ at ... ahv
(at £ 2 для каждого i, v£V2—S).
80 Гл. 2» Автоматы и языки
2. I ->■ ailn2, Int ->■ а|6я(«+1) Для 2 < i < А — 1 i я
^пк^аъу для каждого правила я £Р2 вида £-^#1 . . . ahv
(at £ 2 для каждого г; v £ F2 — 2).
^Положим G3 = (^з, 2, />3, or), где V3 состоит из V2
и всех £яь входящих в правила из Рг. Очевидно, что
L (G3) = L (G2) = L — {е} и каждое правило грамматики
G3 имеет вид !• ->■ а или ^ -> av, где а£2 и vf F3 — 2.
Пусть А = (К, 2, 8*, {а}, F) есть недетерминирован-
недетерминированный конечный автомат, построенный следующим обра-
образом. Положим К = (Vs — 2) U {р0}, где р0 g F3 — 2;
положим также f = {р0}. Для а £ i£ и а £ 2 полагаем
в, (а, а) =
если правило а—>а не принадлежит Р3, и
если правило а—>а принадлежит Р3. Заметим, что
б*(Ро»а) = 0. Тогда цепочка а4 ... ak над алфавитом 2
тогда и только тогда принадлежит множеству L (G3), когда
о =
т. е. V! £ б# (v0, аО, ..., уА_4 £ б„ (vft_2, aA_i)
т. в. at...ah£T(A).
b. Допустим теперь, что множество L регулярно, т. е.
L = T(A), где А— конечный автомат (К, 2, б, ри F).
Изменив, в случае необходимости, обозначения, мы можем
считать, что #П2 = 0. Пусть G=(F, 2, Р, р4), где
F-ZLJ2 и
Грамматика G является, очевидно, праволинейной. Пока-
Покажем, что L (G) = Т (А).
Пусть цепочка w принадлежит множеству Т (А). Если
w = е, то pi g F, pi -> e 6 £* и е 6 ^ (G). Допустим
теперь, что w = Xi . . . xk. Тогда б (рь ж4 . . . xh) 6 ^ и
б (ри хг . . . xk) ->■ 8 6 P.
2.2. Линейные правила 81
Итак,
— \ Or» Xb
Следовательно, Т (А) ^ L (G).
Докажем обратное включение. Пусть w — цепочка
из множества L (G). Предположим, что w = е. Тогда
Pi~+ е £ Р, Pi (z F и е f Г (А). Далее, предположим,
что w Ф е. Рассмотрим некоторый вывод в G3 : pi =
— Wi =Ф . . . =Ф wr Ф е. Из вида рассматриваемых пра-
правил ясно, что для каждого i цепочка wt содержит не более
одного вхождения вспомогательного символа и таковым
может быть только самый правый символ цепочки wt.
Допустим, что цепочка wr содержит вхождение вспомо-
вспомогательного символа. Поскольку wt Ф wi + i (так как нет
правил вида £—>-£), имеем Wi = pi, w2 = x{b (рь х{), ...
. . ., Wi + i = Xi ... xfi (pi, х{ . . . xt) для i <C r — 1
и wr = Xi . . . хт, где xt 6 2 для £ <C r — 1 и xr =
= б (pi, Xi . . . xr-i) e V — 2. Итак,
3. если pi = Wi =ф . . . =Ф w;r =7^= e и цепочка wr
содержит вхождение некоторого вспомогательного симво-
символа, то wr = Xi ... хг, где xt £ 2, i <^ г — 1, и #г —
Допустим теперь, чтои;г не содержит вспомогатель-
вспомогательных символов. Согласно 3, wr-i = х{ ... хг-ф (рх,
Xi . . . £г_2). Тогда wr ~ Xi ... £г_2, где б (рь ^ . . •
...хг-2)-+е g Р. Отсюда б (р4, ж4 . . . xr-2) g F, так что wr t
6Г D). Следовательно, L (G) <= Г (Л)."
Заметим, что грамматика, построенная в пункте Ь
доказательства теоремы 2.2.1, является определенной.
Итак, справедлива следующая
Теорема 2.2.2. Каждое регулярное множество
является определенным К С-языком.
82
Гл. 2. Автоматы и языки
Упражнения 2.2
1. Доказать, что каждый линейный язык порождается грам-
грамматикой, в которой каждое правило является либо леволинейным,
либо праволинейным.
2. Пусть т — гомоморфизм, и язык L порождается линейной
(праволинейной) грамматикой. Показать, что язык т (L) также
порождается некоторой линейной (праволинейной) грамматикой.
3. KG-грамматика G — (F, 2, Р, о*) называется металииейной,
если каждое ее правило либо является линейным, либо имеет вид
а ->- w, w £ V*, и ни одно ее правило не имеет вида g ->- w^wi,
где wu u>2 (z V*- КС-язык называется металипейным, если он
порождается некоторой металинейной КС-грамматикой [ХШ].
a. Показать, что КС-язык тогда и только тогда является мета-
линейным, когда он представляет собой объединение конечного
числа произведений линейных языков.
b. Пусть' G = (F, 2, Р, а), где 2 = {а, Ь, с} и Р =
— {а ->■ £v, £ ->■ agu, v ->■ avb, | ->■ с, v ->■ с}. Показать, что
КС-язык является мета линейным, но не линейным.
4. КС-грамматика G = G, 2, Р, сг) называется последова-
телъностной, если все ее вспомогательные символы могут быть
расположены в последовательность а = £1? . . ., £г таким образом,
что каждое правило ^ ->■ w грамматики G обладает свойством:
w G B (J {|j | i <1; <! г})* [ГРа]. КС-язык L называется после-
дователъностным, если L — L (G) для подходящей последователь-
ностной грамматики G. Пусть 2 = {а, Ь, с). Показать, что множе-
множество {xcxR \ х £ (a*b*ca*)*} не является последовательностным
КС-языком [Sh 1].
5. По каждому из приводимых ниже конечных автоматов А
построить праволинейную КС-грамматику, порождающую множе-
множество Т (А).
a. А = (К, 2, б, /?!, {рз})> 5 задается табл. 2.1.
b. А = (#, 2, б, рь {р4» Рб})> ^ задается табл. 2.2.
Таблица 2.1 1) Таблица 2.2*)
Pi
Р2
Рз
Pk
Ръ
Р2
Рз
Р2
Рз
Р2
Р5
Р4
Р5
Pi
Р4
Pi
Р2
Рз
Р4
Р5
Рб
а
Р2
Pi
Р4
Р2
Р4
Pi
Рз
Рб
Р4
Рз
Рб
Р2
С
Pi
Р5
Р2
Pi
Рз
Рд
1) На пересечении строки р^ и столбца х указано значе-
значение 6 (р-, х).
2.3. КС-языки специального вида 83
6. Построить право линейные КС-грамматики, порождающие
множества
a. (аЪ)* U {Ъс, а}* Ь.
b. ({а, Ъ}* U {be})* U {с}-
7. По каждой из приводимых ниже КС-грамматик G построить
недетерминированный конечный автомат А, такой, что Т (А) —
L (G)
--
a
a
L (G):
a. G
-> aav,
b. G
=
a •
=
a -
-> a,
2,
a -
2,
i, ^
p,
p,
—>-
b, v
где 2
-> 66a, v -
где 2 =
, Ё -+ bbo,
= {«
= {«',
ь,
bv,
}
V
II
II
p =
p =
= (°
(a-
аба,
8. Доказать, что множество L тогда и только тогда является
регулярным, когда существует порождающая L КС-грамматика
G = (F, 2, Р, а), каждое из правил которой имеет один из сле-
следующих видов: (а) a -> е, (Ь) | -> rv, где #£2 и v £ V — 2,
(с) Ъ-+х, где ж е 2.
9. Вспомогательный символ £ приведенной КС-грамматики
называется самовставляющимся, если существуют непустые цепочки
и и v, такие, что £ =Ф и^и. КС-грамматика называется КС-грамма-
КС-грамматикой с самовставлением, если она является приведенной и имеет
самовставляющийся вспомогательный символ. Доказать, что
КС-язык L тогда и только тогда является регулярным, когда суще-
существует порождающая этот язык приведенная КС-грамматика без
самовставления [ХоЗ,4].
10. Показать, что подмножество X множества 2* — {е} тогда
и только тогда является регулярным, когда существует неукорачи-
вающая КС-грамматика G = (F, 2, Р, а), все вспомогательные
символы которой могут быть расположены в последовательность
G = li» • • ••> %п таким образом, что каждое правило грамматики G
имеет вид %t -> w или \г -*- т\ь где w g B |J {gf+1, . . ., gn})*
[GRo2].
И. Пусть G = (F, 2, P, a) есть КС-грамматика и сущест-
существует натуральное число w, такое, что если a=^wga для w £ 2*,
I £ у ~ 2 и a 6 F*, то | а | < т. Показать, что множество L ((?)
регулярно.
2.3. КС-языки специального вида х)
Займемся теперь рассмотрением КС-языков вида
{xcxR}. Как будет видно из теорем 2.3.1 и 2.3.2, эти
языки тесно связаны с регулярными множествами.
Теорема 2.3.1. Пусть U — регулярное множество
и с g S. Тогда множество М = {xcxR \ х £ U} является
К С-языком.
При первом чтении этот раздел может быть опущен.
84 Гл. 2. Автоматы и языки
Доказательство. Пусть U = Т (А), где
А = (К, 2, б, ри F). Можно считать, что К П 2 = 0
и с £ К U 2. Положим
C = BU£UM, SUM, Л Pi),
где
Р = {р-+х6(р, х)х\р£К, x
Покажем, что М = L (G).
Пусть цепочка w принадлежит L (G), т. е. существуют
цепочки Wi = p, w2, . . ., wr = w, такие, что Wi =ф w2 =$..-
. . . =Ф ы?г. Поскольку каждое правило грамматики G
является линейным, для каждого £ цепочка ш^ содержит
не более одного вхождения вспомогательного символа.
Предположим, что для i < г существуют символы хи ...
. . ., х^_1, принадлежащие 2 и такие, что
(#) wt = xi ... xt-fi {pu xt . . . хы) xt-i ... a?i,
Очевидно, соотношение (♦) справедливо для i = 1. Рас-
Рассмотрим M?f + 1. Если i -f 1 < г, то благодаря специаль-
специальному виду правил
wi + l = xi . . . xfi (б (ри Xi . . . zf_i), a;f) жг . . . xt =
Итак, соотношение (♦) справедливо для всех i, i < г.
Следовательно,
Поскольку цепочка wr не содержит вхождений вспомога-
вспомогательных символов, имеем
Wr = Xi . . . Xr -iCXr _i . . . Xi
и S (p1? Xi . . . жг _4) 6 F. Итак, a?! . . . xr _4 £ Г D) и
L (G) s M.
Пусть теперь цепочка w; принадлежит М. Тогда
w = xcxR, где х £ Т (А), так что б (рь х) -> с £ Р. Если
з; = б, то ш = с и 8 (рь е) = pt g /^. Таким образом,
Pi~+c(iPwc£L (G). Предположим, что w = xi . . . xk.
2.3. КС-языки специального вида 85
Тогда
Pl=$>Xi6(pi4 Xt)Xi
1, xlx2)x2xl
=ф Xi . . . Xk6 (pu Xi . . . Xh) Xh . . . XY
=$XY . . . XkCXk . . . Xi.
Итак, M g= L (G), откуда M = L (G).
Справедливо также утверждение, обратное в некото-
некотором смысле теореме 2.3.1. Именно имеет место
Теорема 2.3.2. Пусть с g S и L есть КС-язык,
такой, что A) каждая цепочка языка L имеет вид хсу,
где х, у 6 2*, и B) для каждой цепочки у £ 2* множество
X (у) = {х | хсу £ L) конечно. Тогда множество
U = {х | хсу 6 L для некоторой цепочки у £ 2*}
является регулярным.
Доказательство. Поскольку язык L не содер-
содержит пустой цепочки е, то,согласно теореме 1.8.^существу-
1.8.^существует неукорачивающая КС-грамматика G = (F, S U {с},
Р, а), порождающая этот язык. Если L — конечное мно-
множество, то теорема справедлива. Предположим, что мно-
множество L бесконечно. Согласно лемме 1.4.4, можно счи-
считать, что грамматика G является приведенной. Итак,
a. для каждой цепочки w из множества V* существует
цепочка wY из множества 2*, такая, что w =ф Wi.
b. Согласно следствию 1.4.1, мы можем считать также,
что для каждого вспомогательного символа £ множество
{w £ 2* | Е =ф и;} бесконечно.
Обозначим через PF множество тех вспомогательных
символов, из которых выводима хотя бы одна цепочка
из множества V*cV*. Пусть I ->• z 6 Р, где | £ W. Посколь-
Поскольку грамматика G является приведенной, во множестве
V* существуют цепочки s и t, такие, что а ==> sit. Если
цепочка st содержит вхождение символа с или вспомога-
вспомогательного символа из множества W, то из цепочки s^t
и, следовательно, из символа а выводима цепочка, при-
принадлежащая множеству B U {с})* и содержащая два
86 Гл. 2. Автоматы и языки
вхождения символа с. Получаем противоречие. Итак,
цепочка st принадлежит множеству (V — W — {с})*. Рас-
Рассмотрим цепочку z. Пусть z £ (V — W — {с})*- Тогда
из цепочки z и, следовательно, из символа а выводима
цепочка, принадлежащая множеству 2*. Снова полу-
получаем противоречие. Итак, цепочка z содержит вхождение
символа из множества W [} {с}. Кроме того, цепочка z
не может содержать двух вхождений символов из этого
множества. (В противном случае в силу утверждения
а язык L (G) содержал бы цепочку с двумя вхождениями
символа с, что противоречит условию.) Итак,
c. если £->- z g Р, I 6 W, то z = uyv, где у 6 W [} {с}
и и, и 6 (У- W - {с})*.
Рассмотрим правило £ ->■ иуи, где ^,у g W [) {с}.
Поскольку грамматика G является приведенной, имеем
* * *
а =ф sty и v =Ф у' для некоторых s, i, у' f S*. Итак, а =ф
=Ф 5w^^. Если цепочка и содержит вспомогательный
символ, то множество {w £ 2* | и =Ф и;}, а следовательно,
и множество X (v't) является бесконечным. Получили
противоречие. Следовательно, цепочка и принадлежит
множеству 2*, т. е.
d. если I -> z 6 Р, g 6 W, то z = муу, где у g И7 U {^}?
мбЗ*и1;еG— РГ— {с})*.
Для каждого правила п 6 Р вида ^ -> w^, ^, у 6 W,
через g (я) обозначим правило | -> му и для каждого
правила я £Р вида £ -> мсг; через g (я) обозначим правило
6-> м. Пусть G' = (V, 2 U {с}, jP', а), где Р' состоит
из всех правил g (л). Согласно утверждению d, грамма-
грамматика G' является право линейной. Следовательно, множест-
множество L (Gr) регулярно.
Для завершения доказательства достаточно показать,
что L (Gr) — U. Пусть а = z0 =ф ... =ф zr — правосто-
правосторонний вывод в грамматике G цепочки z = set g L (G).
Для каждого i, i ^ r — 1, цепочка zf содержит в точности
одно вхождение вспомогательного символа из множества
W\ согласно утверждению d, таковым является самый
левый вспомогательный символ цепочки wt. Для каждого
h i-^r — 1, обозначим через лг правило, в результате
применения которого из цепочки zt получена цепочка
J. Пусть 0 = i @) < i A) < . . . < i (/) — такие нату-
2,3. КС-языки специального вида 87
ральные числа i, для которых цепочка zt принадлежит
2*PF2*. Тогда а = w[i0) =ф . . . =ф u?J(i/) =ф s — вывод в
грамматике С, такой, что для каждого к цепочка w[ik+l)
получена из цепочки w'iik) в результате применения пра-
правила g (ni(k)). Итак, U ^ L (С).
Пусть теперь a = z0 =#>... =$zr — вывод цепочки zr£
£L(G') в грамматике С. Для каждого i, £<r—1, обозна-
обозначим через ftj правило из множества Р', в результате при-
применения которого из цепочки z^ получена цепочка zt.
Пусть для каждого правила л£Р' вида ^—>иу, у £ PF,
правило \—>uyv принадлежит множеству Р, г;'—-такая
*
цепочка из множества 2*, что v=$v' в грамматике G
*
и /(я) —вывод %=$иуи'. Пусть для каждого правила
п£Р' вида ^—>и, м^2*, правило !■—->wci; принадлежит
множеству Р, г;' — такая цепочка из множества 2*, что
£7г=ф£/ в грамматике G, и /(я) —вывод %=$uyv'- Тогда
а = z'o =ф .. . =^> z'r — такой вывод в грамматике G цепочки
z'r£L(G), что для каждого i цепочка z% получена из це-
цепочки . zi_! в результате вывода f {л^{). Очевидно, что
z'r = zrcz' для некоторой цепочки z;£2*. Итак, L(G')^U.
Теорема доказана.
Следствие 2.3.1. Пусть а £ S, с^2 и L есть
КС-язык, каждая цепочка которого имеет вид хса^ . Тогда
множество {х \ хса)х\ £ L) регулярно.
Замечание. Множества, состоящие из цепочек
вида хса\х\, встречаются в синтаксисе многих языков
программирования. Более того, множество {х | хса^ g L}
обычно не является регулярным. Это подтверждает тот
факт, что в некоторых аспектах КС-языки не могут слу-
служить моделями языков программирования. Тем не менее
практически для многих из них КС-языки служат пре-
прекрасным приближением.
Упражнения 2.3
1. Построить КС-грамматики, порождающие множества
a. {xcxR\ х £ Ь2а2Ь*а},
b. \xcxR\ х £ ab3a*b \J a2b*a*b}.
88 Гл. 2. Автоматы и языки
2. Пусть U — регулярное множество, fug — гомоморфизмы,
определенные на множестве 2*. Показать, что язык
L = {/ И eg (w)R \w eU}
является линейным.
3. а. Пусть U^{a,b}* и L--={xcy\x£ U, \х\ = \у\, у£{а,Ь}*}.
Показать, что если множество L является КС-языком, то множе-
множество U регулярно.
Ь. Чтобы убедиться в необходимости символа с (метки для
середины), достаточно показать, что хотя множества L —
оо оо
= U аП К b}7t {а, Ь}*п и U = U ап {а, Ъ}п являются КС-языками,
1 1
тем не менее множество U не регулярно и при этом
L = {xy\x$U, \х\ = \у\, у£{а, Ь}*}.
4. Показать, что {anbncbnan \ п !> 1} не является КС-языком.
5. Пусть с (f 2. КС-язык LC 2*с2* называется с-конечным,
если (а) для каждой цепочки и множество {v \ ucv £ L} конечно
и (Ь) для каждой цепочки и множество {и \ ucv £ L) конечно. Дока-
Доказать, что КС-язык L тогда и только тогда является с-конеч-
с-конечным, когда L = L (G) для подходящей КС-грамматики G =
= G, 2 (J {с}, Р, а), каждое правило которой имеет вид g -^ uvu
или | ^- ису, где u,v G2* — {е} и v £ У — 2.
6. Пусть б1 = G, 2 U {с}» Р> G) — приведенная КС-грам-
КС-грамматика, такая, что L (G) с 2*с2*, с^2. Пусть И7 =
= {1} G 7 — 2 — {с} | £ ==> ысу для некоторых и, v £ Т7*} [J {с}
иХ= 7- 2 — ТУ. Пусть для каждого символа I £ X JL и Ед -
абстрактные символы, не принадлежащие множеству 7, и Y =
— {Il» Ir I £ G -X"}- Пусть /гь и /^я — гомоморфизмы, определенные
на множестве 7* следующим образом: hL (х) = /гя (ж) = ж для всех
х G 2 U T7, hL (I) = lL и hR (I) = gfi для всех g e X. Доказать,
что L(G) = L (G'), где (?' = G [j У, 2 U {^}, P', or) и Р' состоит
из правил
a, lL -+ hL (w) и lR^hR И, где I -+ w £ P, и; G (X (J 2)*,
b. I ^ hL (u) xhR (v), где g -+ uxv £ P', u, v £ V* и ж g И7.
7. Множество f/cs* называется (регулярным) множеством
т
второго класса [Shi], если U имеет вид U Хю ... Xik , где для
любых i, / либо Xij = Yij, либо Хг7- — y*j, где Y(j — некоторое
конечное подмножество множества 2*. Пусть с £ 2.
a. Доказать, что если U — множество второго класса, то мно-
множество {xcxR \ х £ U} является последовательностным языком.
b. Пусть L U 2*с2* — последовательностный язык, удовлетво-
удовлетворяющий следующему условию: для каждой цепочки х £ 2 * множе-
множество {у | хсу £ L) конечно. Доказать, что множество {у \ хсу £ L)
является множеством второго класса.
2.4. Автоматы с магазинной памятью 89
2.4. Автоматы с магазинной памятью
Теперь мы введем семейство недетерминированных
автоматов, которые допускают в точности все КС-языки
и находятся, таким образом, в том же отношении с этими
последними, в каком конечные автоматы стоят к нерегу-
нерегулярным множествам. Такие автоматы, называемые авто-
автоматами с магазинной памятью, или, сокращенно, МП-ав-
МП-автоматами, неформально могут быть описаны следующим
образом. Автомат имеет конечное множество состояний,
конечное множество входных символов и неограниченную
справа вспомогательную ленту (называемую лентой мага-
магазинной памяти, или магазинной памятью). Кроме того,
он имеет начальное состояние, начальный вспомогатель-
вспомогательный символ (вспомогательными символами называются
символы, записываемые в магазинной памяти) и некоторое
множество заключительных состояний. В общем случае
автомат, находясь в некотором состоянии, читает входной
символ, или 8, и в качестве самого правого символа в мага-
магазинной памяти имеет символ Z. «Элементарный шаг»
работы автомата состоит в том, что он (недетерминирован-
(недетерминированным образом) одновременно переходит в другое состояние,
стирает только что прочитанный входной символ (или е),
уничтожает символ Z и записывает в магазинную память
некоторую цепочку (возможно, пустую), начиная с ячей-
ячейки, в которой был записан символ Z. Более формально
определение выглядит так.
Определение. Автоматом с магазинной па-
памятью называется упорядоченная семерка М = (К, 2, Г,
б, Zo, q0, F), где
1) К — непустое конечное множество (множество
состояний)]
2) 2 — непустое конечное множество (множество вход-
входных символов);
3) Г — непустое конечное множество (множество сим-
символов магазинной памяти);
4) б — отображение множества ifxB|J {е})хГ во
множество всех конечных подмножеств множества7£хГ*;
5) #о 6 К (начальное состояние);
6) Zo £ Г (маркер магазинной памяти);
7) F s К (множество заключительных состояний).
90 Гл. 2. Автоматы и языка
Функционирование МП-автомата может быть теперь
формализовано.
Обозначения. Пусть М есть МП-автомат. Отно-
Отношение |-~, или |—, если М подразумевается, на множестве
7£х2*хГ* определяется следующим образом. Для Z £ Г
и я £ 2 U {г} полагаем (р,х w, aZ) |— (q, w, ay) (пере-
(переход от левой части этой записи к правой назовем тактом
работы автомата), если (q, у) £ б (р, х, Z). Для всех р, w
и а полагаем (р, w, a) |— (p, w, a). Для а, р £ Г* и всех
xt £ 2 U {е}, 1 ^ i ^ к, полагаем (р, xt . . . Я/^, а) |—
|— (q, w, P), если существуют последовательность состоя-
состояний Pi = р, . . ., Ph + i — Q и последовательность цепочек
a4 = a, . . ., afe+i = р из множества Г*, такие, что
{ри xt . . . xkw, at) |— (pi+i, xi + i . . . xftM;, aj+1) для всех
^» 1 ^ i -^ й:. Если имеет место
xkw, at) \— (p2, я2 . . . xftu;, a2) |— . . .
• • • \—{Pk+u ™
мы будем говорить, что (р, ^ . . . xftu;. a) |— (g, u;, P) реа-
реализуется с помощью (^е).
Упорядоченная тройка (р, w, а) (называемая конфигу-
конфигурацией) является записью того факта, что МП-автомат
находится в состоянии р, в его магазинной памяти запи-
записана цепочка а, его входная цепочка есть w. Запись
(р,х w, aZ) \—(q, w, ay) означает, что автомат, находясь
в состоянии р и имея Z в качестве самого правого символа
в магазинной памяти, переходит в состояние q, заменяет
символ Z на цепочку 7 и стирает х, где х — либо самый
левый входной символ, либо 8. Запись (р, xY . . . xkw, a) \—
\— (q, w, P) означает, что МП-автомат, находясь в состоя-
состоянии р и имея xi . . . XfrW в качестве входной цепочки
и цепочку а в магазинной памяти, через несколько тактов
работы переходит в состояние q, имеет в магазинной
памяти цепочку р и на входе — цепочку w.
Такт работы МП-автомата (р,^ w, aZ) \— (q, w, ay)
может быть проиллюстрирован следующим образом.
На рис. 2.1 (а) МП-автомат изображен в конфигурации
(р, Xiiv, aZ), Xi 6 2 U {в}, Z 6 Г. На рис. 2.1 (б) изобра-
изображен МП-артомат после выполнения указанного такта.
2.4. Автоматы с магазинной памятью
91
Замечание. Предположим, что лента магазинной
памяти расположена вертикально так, что самый правый
символ оказывается самым верхним. Тогда магазинная
(Входная цепочно)
(Состояние 6 исходный момент)
Щепочка, записанная б магазинной
памяти)
(Входная цепочно)
(Состояние в следующий момент)
(i/ёпочна, записанная 6 магазинной
памяти)
F)
Р и с.
2.1.
память функционирует, как автомат, продающий бутер-
бутерброды в кафетерии. Напомним, что в такой автомат A)
новый поднос всякий раз вводится сверху, и при этом
все подносы, стоящие ниже, сжимают пружину; B) подно-
подносы берутся в порядке, обратном тому, как они заклады-
закладываются в автомат, т. е. последним оказывается наверху
гот поднос, который был положен первым.
Иногда МП-автомат переходит из состояния р в состоя-
состояние q (с соответствующим изменением в магазинной памя-
памяти), не стирая при этом никакого входного символа.
Это возможно, если (g, w) £ б (р, £, Z) для подходящих
92 • Глш 2. Автоматы и языки
р, q, w и Z. Такое «самопроизвольное порождение» в МП-
автомате разрешено из соображений удобства. Одно из
важных приложений МП-автоматов состоит в использо-
использовании их для доказательства того, что те или иные мно-
множества цепочек ярляются КС-языками. Существует немало
множеств цепочек, для которых легко показать, что они
являются КС-языками, если отображение б определено
на множестве К X B U {в}) X Г, но достаточно трудно
сделать это, если отображение б определено на множестве
К X 2 X Г (см. ниже упр. 2.4.2). Можно показать
(см. упр. 2.5.8), что каждое множество цепочек, допу-
допускаемое произвольным МП-автоматом, допускается и таким
МП-автоматом, в котором каждое множество о (р, е, Z)
пусто.
МП-автомат допускает цепочку w, если из начального
состояния с входной цепочкой w и символом Zo в мага-
магазинной памяти МП-автомат может перейти в заключи-
заключительное состояние, стерев при этом всю цепочку w. При-
Приведем формальное определение.
Определение. Цепочка w допускается МП-авто-
МП-автоматом М = (К, 2, Г, 6, Zo, g0, Л» если (?о, ">, %о) \—
|— (q, е, а) для некоторых q £ F и а £ Г*. Множество
всех цепочек, допускаемых МП-автоматом М, обозна-
обозначим Т (М).
Заметим, что е £ Т (М), если qQ £ F.
Теперь понятно назначение символа Zo. МП-автомат
не может функционировать, если его магазинная память
пуста, т. е. (р, w, е) |— (д, у, у) невозможно ни для каких
р, g, w, у и у. Символ Zo помещается в магазинную память,
чтобы позволить МП-автомату начать работу с целью
определить, допускается ли данная цепочка этим авто-
автоматом.
Пример. Положим М= ({pi, р2, Рз}> 2, Г, б, Zo, pu {р3})>
где 2 - {a, 6},r={a,Z0,Z1},6(p1,a,Z0)= {(Pi, Z4)}, б (Pl, а, Zd)=
= {(pi, Ztfl)}, б (plt a, a) = {(pit aa)}, б (ри b, a) = {(p2, e)},
б (Pl, 6, Zi) = {(рз, ZO}, б (p2, 6, a) - {(p2, e)} и б (р2, &, Z4) =
= {(p3, ZO}1). Тогда
(Pi, ab, Zo) |- (Pi, b, Zi) I— (рз, е, Z^,
x) Здесь и всюду далее при задании МП-автоматов принимается
следующее соглашение: если для какой-либо тройки (р, a, Z)
значение функции б не указано, это означает, что б (р, a, Z) == <0'.
2.4. Автоматы с магазинной памятью 93
так что аЪ £ Т (М). Для п > 1
(Pi, аЧп, Zo) |- (Рь ^^, Zi) |- (Pi, &n, Zia-~-i) |~
|-(Р2, &, ^i)|—(Рз, е, Z0,
так что ап6ЛеГ(М).
МП-автомат можно рассматривать как обобщение неде-
недетерминированного конечного автомата с одним начальным
состоянием. В самом деле, пусть А = (К, 2, бА, {s0}, F) —
такой недетерминированный конечный автомат и М =
= (К, 2, {Zo}, бм, Zo, s0, Л, гДе (?, Y) 6 6М (р, а, ж) тогда
и только тогда, когда х = у = Zo и g £ бА (р, ^)- Оче-
Очевидно, Г (Л) = Г (М). Итак, МП-автомат с «сущест-
«существенно» той же структурой получается из недетермини-
недетерминированного конечного автомата добавлением ленты мага-
магазинной памяти, на которой стирается и затем снова запи-
записывается символ Zo.
Было бы естественно обобщить МП-автомат и его
«допускающую способность» следующим образом: обоб-
обобщенным МП-автоматом называется упорядоченная семер-
каМ = (К, 2, Г, Н, Zo, q0, F), где К, S, Г, Zo, q0 и F
имеют тот же смысл, что и в МП-автомате, и Н — конеч-
конечное подмножество множества К X 2* X Г* X К X Г*.
Для р, g 6 К, wiy w2 £ 2* и уь у2, у3 £ Г* полагаем
(Р, и>1 ^2? YiY'i) |— (?, м>2» YiYs), если (р, ^, у2, д, у3) 6 ^У-
Для р, q £ К, х, у £ 2*, у, |i 6 Г* полагаем (р, ж, у) |—
|—д,г/, ц), если (р, ж, v) = (?, У, И-) или существуют р =р0,
Рь • • ■, Ph=Qi х=хОу хи . . ., хк = у h'y=y<>, Yb • • ■, Ть =
= и, такие, что (pf, д:г, y«) |—(Pf + i» ^+i» Yf+i) Для
всех t, i <й. Положим Г (М) = {и; £ 2* | (qo,w, Zo) |—
l~fe» 8? Y) Для некоторых q £ F и y 6 Г*}. Тогда
для каждого обобщенного МП-автомата М существует
МП-автомат N, такой, что Т (М) = Т (N) (см. ниже
упр. 2.4.7). Таким образом, поскольку речь идет о «допу-
«допускающей способности», мы можем без потери общности
ограничиться в дальнейшем рассмотрением «необобщен-
«необобщенных» МП-автоматов.
Упражнения 2.4
1. Показать, что в приведенном выше примере Т (М) =
= {апЪп | п > 1}.
2. Пусть 2^{а, 6}, ш^-^аЧа2, wz=ba44*№, f(l) = ab, /B) =
= a*b и L = {wi...wilcf(ii)...f{ih)\k>l, ij=l,2}.
54 Гл. 2. Автоматы и языки
a. Построить МП-автомат М, такой, что Т (М) = L.
b. Построить МП-автомат М, такой, что б (р, е, Z) = 0 для
всех р и Z и Т (М) = L.
3. Построить МП-автомат М, такой, что Е = {а, Ь}, и Г (М) —
множество всех цепочек, содержащих одинаковое число вхождений
символов а и Ъ.
4. Построить МП-автомат М, такой, что 2 = {а, Ь} и Т (М) =
пЬп1 | > 1 i > 1}и{пЬ2п*Ь31 U > 1 > 1 }
5. Пусть М = (К, 2, Г, б, Zo, gOi Л — МП-автомат, для
каждого символа Z £ Г пусть Z'и Z"—абстрактные символы и Г'=
= {Z, Z', Z" | Z g Г}. Пусть, кроме того, Ж' — МП-автомат
(К, 2, Г', б', ZJ, я,, F), где б' й, я, Z) = б (<?, *, Z) и
б' (q, х, Z') = {(р, У'а) | (р, Уа) 6 б (?, ж, Z), У g T}U
, U {(Р, ^") 1(Р, в) 6 в to, *, Z)}
для всех ^ g к, х G 2 U {г} и Z £ Г.
a. Показать, что Т (М) = Г (М').
b. Показать, что (#0, ш, Zq) [^t (g, е, в) не имеет места ни для
каких ы?£2* и q £ К.
6. Пусть ДГ есть МП-автомат. Показать, что существует
МП-автомат М = (К, 2, Г, б, Zo, qOi F), такой, что (а) Т (М) =
— Т (М1) и (Ь) | у | <С 2, если (р, у) £ б (д, ж, Z) для некоторых
#, р, ж и Z.
7. Для каждого обобщенного МП-автомата ЛГ построить
МП-автомат JV, такой, что Г (М) = Т (N).
8. Пусть М = (К, 2, Г, б, Zo, g0» Л — МП-автомат, такой,
что К П (S U Г) = 0, Р = {Zp* +Y? | Z 6 Г, р £ Я, * 6 2 (J {е},
(#» Y) £ ^ (р» ^^ ^)}* Показать, что если отношение ^опреде-
^определено так же, как в разд. 1.1, то w £ Т (М) тогда и только
тогда, когда Zoqow =Ф yq для некоторых у £ Г* и g £ F [Ev; Kn 1].
9. Пусть X и У — регулярные множества. Построить МП-ав-
МП-автомат М, такой, что Т (М)= (J (ХПП^'П) [Gr 7].
2.5. Характеристика КС-языков в терминах МП-автоматов
Займемся теперь доказательством того факта, что
множество цепочек U тогда и только тогда является
КС-языком, когда* U — Т (М) для некоторого МП-авто-
МП-автомата М.
Обозначение. Пусть М = (К, S, Г, б, Zo, q0, F).
Полагаем Null (М) = {ы; | (д0) w, Zo) i-^- (g, e, e) для
некоторого q £ К}.
2.5. Характеристика КС-языков в терминах МЙ-автоматов §5
Итак, Null (M) есть множество таких цепочек над
алфавитом входных символов, после прочтения которых
М опустошает магазинную память.
При доказательстве совпадения множеств Т (М) с кон-
контекстно-свободными языками мы покажем попутно, что
и множества Null (M) совпадают с контекстно-свобод-
контекстно-свободными языками. Затем мы покажем, что для каждого
МП-автомата М существуют МП-автоматы N и TV', такие,
что Null (М) = Т (N) и Г (М) = Null (N*).
Лемма 2.5.1. Для каждого К С-языка L существует
МП-автомат М с одним состоянием, такой, что
Null (М) = L.
Доказательство. Пусть G = (F, 2, Р, а)
есть КС-грамматика, порождающая язык L, и М —
МП-автомат ({р}, 2, F, б, а, р, 0), где отображение б
определено следующим образом: для всех £ £ V — S
и а 6 2
a. б(р, е, £) - {(р,**) |^*е^}>
b. б О, а, а) = {(>, е)}.
*
Покажем, что а =ф w, u;f S*, имеет место тогда и только
тогда, когда (р, w, а) |— (р, 8, е), т. е. что Null (M) = L.
Пусть w — цепочка из множества L. Тогда существует
вывод
где h(:V— 2 для каждого г. Согласно условиям а и Ь,
(р, ^i . .. иГ, а) |— (р, И! ... иГ) yf ii^f) |—
1-^- (р, И2 . . . ИГ) I7fgi> |— . . . |— (р, UT, V^lr-l) |—
|—(р, иГ) и?)|—(р, 8, е).
Итак, цепочка w принадлежит множеству Null(Tkf).
Пусть теперь o;£Null(M). Тогда существуют такие
символы а0, . .., as^ из множества 2 |J {e} и такая после-
последовательность уо^о, Yii •••! Ye = e» чт0 м = ао ••• ^s-i и
(р, а0 • • • «e-ii То) |— (р, «1 ... ae-i, Yi) |— • • • |— (Р> 8' Y«)-
Пусть /с @) < ... < k (m) — такие натуральные числа, что
96 Гл. 2. Автоматы и языки
yk{i) = у£. для некоторых yt £ V* и ^ £ F—2. Заметим,
что /с @) = 0. Поскольку не существует символа а £ 2
и цепочки уб^*, таких, что (р, a, ytli) |—(р, 8, у), то для
каждого г ат = & и Yfeo)+i = y«zf» ГДе ^ —>zi(zP- Кроме
того, (р, а, у) |—(р, 8, у'), а £2, имеет место для неко-
некоторого у' тогда и только тогда, когда у'а = у. Отсюда
•• ^-1, так как
• • «s-Ь Ут^) |— (р, 8, 8),
и для каждого i, i<Cm,
= ak{i) . .. ak(i-{-i)-\
поскольку (p, afe(i) . . . a8-u у&) |— (p, afe(i)+j ...
|—(Pi aft(i+D • • • as-u yi+i li+i)- Следовательно,
= a0 • • • «s-i = w.
Итак, цепочка w принадлежит множеству L и Null (M)=L
Лемма 2.5.2. Для каждого К С-языка L существует
МП-автомат N с двумя состояниями, такой, что L =
= Т (N).
Доказательство. По лемме 2.5.1 существует
МП-автомат М = ({р}, 2, Г, б, Zo, p, 0) с одним состоя-
состоянием, такой, что Null (М) = L. Пусть d Ф р, и для каж-
каждого символа Z из множества Г пусть Z' — абстрактный
символ. Положим N = ({р, d}, 2, Гдг, 6^, Z^, p, {d}),
где Г^ = Г U {Z' | Z g Г} и отображение 6^ определено
следующим образом: для a£l,\J{&}mZ£T
a. бдг (р, a, Z) = 6 (р, а, Z),
b. 8^ (р, а, Z') = {(р, У'а) | (р, Уа) 6 в (р, а, Z),
Y е Г, а G Г*}, если (р, е) g б (р, а, Z),
с 6^ (р, a, Z') - {(р, У'а) | (р, Га) еб (р, а, Z),
У е Г, а 6 Г*} U {(d, 8)}, если (р, е) 6 б (р, а, Z).
2.5. Характеристика КС-языков в терминах МП-автоматов 97
(Заметим, что команды пунктов b и с «отмечают» первый
символ на ленте магазинной памяти МП-автомата N.) Итак,
если (р, wi9 Z'Q) \-jj- (q, w2, а) для некоторого a Ф e, то q=^ p
и a = Z'|3 для некоторых Z'£TN — Г и р£Г*. Следова-
Следовательно, а = е, если (р, wu Z'o) |Jjr(d, u?2> a), и (p, w, Zo) |~-
|-^(p, в, е) имеет место тогда и только тогда, когда
(р, и?, Z;) |-^r(d, е, е). Итак, (р, и;, Z;) |-^-(d, e, a) для неко-
некоторого а имеет место тогда и только тогда, когда
(р, w, Z'o) |-±- (d, е, е), т. е. когда (р, w, Zo) |^- (p, е, е). Таким
образом, Null(M) = r(iV).
Докажем теперь утверждения, обратные леммам 2.5.1
и 2.5.2.
Лемма 2.5.3. Для каждого МП-автомата М мно-
множество Null (M) является КС-языком.
Доказательство. Пусть М=(К, S, Г, б, Zo,
q0, F). Пусть [г, Z, q] для любых д, г £ К и Z £Т будет
некоторым абстрактным символом. (Содержательно [г, Z, g]
будет вспомогательным символом КС-грамматики, из ко-
которого выводимы в точности те цепочки a £ И*, для кото-
которых имеет место (г, a, Z) |— (q, e, е); см. ниже пункты
с и с2.) Далее, пусть
v = {[r, z, q\ \q, re к, zen и s.
Для каждого р £ Z полагаем Gp = G, S, jP, [g0, Z0) pi)
где JP состоит из правил следующего вида.
a. Если (g, Zi . . . Zk) £б (г, a, Z), Zf g Г для каж-
каждого £, то [г, Z, Si]->a[g, Zft) sft] [sk, Zh_u sk^] . . .
. . . [s2, Zi, «il 6 ^ Для каждой последовательности состоя-
состояний 5Ь . . ., sk е К.
b. Если (q, e) g б (г, a, Z), то [г, Z, g] -> а £ Р.
c. Мы покажем, что цепочка а £ F* выводима из сим-
символа [г, Z, g] тогда и только тогда, когда имеет место либо
cl. a=wy для некоторых цепочек и; £2* и у£ (F — 2) У*
и существуют р1? ..., рт+1 и f/i? . . ., Um, такие, что
?, У= [Pi. ^1. Р2] • • . [Pmr *7m, Pm+l] И (r, M?, Z) |-^
J7 C/0
|(plf ,m 0,
либо
c2. a6 2* и (rfa,Z)|-4gf8|e).
98 Гл. 2. Автоматы и языки
Отсюда будет следовать, что множество
Null (М) = {ос£2*| (go> a, Z0)\—(q, е, е) для некоторого q)
= \JL (Gq)
является КС-языком1).
*
I. Предположим, что [г, Z, q]=$wy, где w£2*
и i/£(F —2) F*. Рассмотрим левосторонний вывод цепочки
wy из [г, Z, g]:
d. [r,2
Если g = 1, то [г, Z, g] ->■ а4 — правило типа а, и имеет
место cl. Продолжая индукцию, предположим, что cl
имеет место для всех g, удовлетворяющих условию
1 <С ё ^С h. Пусть g = h + 1. Тогда ah = гг;Лг/Л для неко-
некоторых цепочек ^f 2* и yh g (F — 2) F*. По индуктив-
индуктивному предположению существуют рь . . ., pm+i = q
и f/1? . . ., f/m, такие, что yh = [pi9 Uu p2] . . .
• • • IPm, f^m, Pm + il И (г, И7Л) Z) |— (Pi, 8, Um . . . f^).
Поскольку d — левосторонний вывод, то имеет место
один из двух случаев.
1. Цепочка a^+1 получена из ah в результате приме-
применения правила вида [ри Ui9 p2]->a[p\ Z'k, s^] .. . [s2, Z;, p2].
Согласно пункту а, (р', Z[... Zy 6 б (р1? a, f/^.Тогда аЛ+1 ==
= м;Ла [р', Zft, s'k]. ..[si %[, Pi] [Рг? U2, p3] .. .[pm, J7m, pm+1],
(r, u;,a, Z)|-4-(plfflff/IIl...J71)|-i-(p',8,^IIl... U2Z[ .. . Z'h).
2. Цепочка a^+i получена из цепочки a^ в результате
применения правила вида [ри Uu Рг1 ~^а- Согласно
пункту Ь, (р2, е) 6 6 (рь a, J7i). Тогда
2? U2, Рз] ... [Pm, C^m, Pm+l]
(г, ^a, Z) |-*-(plf a, J7m . .. U,) |^(p2, e, J7m ... U2).
II. Предположим, что [г, Z, q]=$a для agS*. Рас-
Рассмотрим левосторонний вывод а из [г, Z, q]:
:) Оставшаяся часть доказательства при первом чтении может
быть опущена.
2.5. Характеристика КС-языков в терминах МП-автоматов 99
Если g — 1, то [г, Z, q] ^> o&i — правило типа Ь, и имеет
место с2. Продолжая индукцию, предположим, что с2
имеет место для g, I ^ g ^ /г. Пусть g = /г + 1. Так как
оьЛ+1 6 2*, то ah = и?Л1/Л, где м;Л 6 2* и yh = [ри V\, р2].
Более того, цепочка аЛ+1 получена из ah в результа-
результате применения правила вида [pi, U\, p2] -> я, так что
аЛ+1 = м;Ла. Согласно пункту Ь, (р2, е) (= б (рь a, СЛ).
Имеет место (г, wh, Z) \—(pu e, U{) и р2 = q согласно
пункту I. Итак,
(г, wha, Z) |-i- (pu a, J7i) |— (р2, е, е) - (q, e, е).
Докажем теперь, что если имеет место либо cl, либо
с2, то имеет место и с. Возможны два случая.
III. Предположим, что имеет место cl. Тогда (г, w, Z) |—
|-i- (pu e, Um . . . f/i), г/ = [рь C/i, p2] . . . [pm, C/m,
b
+
e. Пусть (r, w, Z) \— (ru wu a{) \— . . . j— (rg, wg, ag) —
последовательность тактов работы МП-автомата, перево-
переводящая конфигурацию (г, w, Z) в (рь е, Um . . . U\).
Тогда rg = pu wg = е и ag = C/m ... Ь^ Пусть
g — 1. Тогда и; 6 S U {е}, г4 = р4 и а4 = г7то . . . J74.
Отсюда (гь cci) 6 8 (г, м;, Z) и [г, Z, pm+il -> ^ [pi, С^ь Р2Ь..
. . . [pm, f/m, pm+J 6 ^Р- Итак, существует левосторонний
вывод цепочки а = wy из символа [г, Z, pm + J и имеет
место с. Продолжая индукцию, предположим, что из cl
следует с для всех g, удовлетворяющих условию 1 ^ g ^
<Л. Пусть g - А+1. Имеем (г, м?, Z) \— . . . |— (гЛ, м?Л,ай)
и (гЛ, гг;Л, аЛ) |— (гЛ+1, е, Um . . . J7i), где rh + i = ри
wh+i = г и аЛ+1= J7m . . .J74. Тогда и;Л 6 2 JJ {е},
и; = м?м?л_ и (г> ^» ^) |— (гь м>1, а4) |— .. . |— (гЛ, и;Л, аЛ),
где wt = WiWh для всех i и ah = Um ... J7AJ7 для некото-
некоторого /с>1 или ah^U для некоторого символа С/ g Г. При
этом Wh^s- По индуктивному предположению, с имеет
*
место_для g = /г. Итак [г, Z, pm+1] =ф и;у, где
У = [rh, U, pk] [рА, C/a»_Pa+i] • • • [Pm, Um, pm+i],
если ah = Um ... UkU, и у = [гл, С/, рт+1], если ah=r-U.
Пусть /с=1. Поскольку (rh, Wh, Um ... С/±С7) |—
|— (rh+u e, Um ... С74), то (гл+1, 8)^б(гл, и;л, С/), так что
7*
100 Гл. 2. Автоматы и языки
[гл, U, rh+i]—>wh£P, т. е. [гл, С/, Pi] —>гг7Л6^. Таким
образом,
*
[г, Z, рт+1] =ф w [rh, С/, Pi] ... [рт, J7m, pm+i]
=Ф м?м;л [ри Uu р2] .. . [рт, J7m, р,п+1]
= и; [pi, Uu р2] ... [рт, J7m, pm+ih
так что с выполняется.
Пусть Л>1. Поскольку (гЛ, м;Л, Um ... J7AJ7) |—
I— (Pi, e, J7m ... C/i), имеем [гЛ, С/, рЛ] -»м;Л [р4, J74, р2] ...
... [р*-ь ^-1, Р^б^Р. Итак,
[г, Z, pm+i] =-> м; [гЛ, С/, рЛ] ... [pm, J7m, pm+1]
=Ф М^^Л [Pi, f^l, Рг1 • • • [Pm, ^m, Pm+l]
= и; [pi, J74, p2] ... [pm, Um,
так что с выполняется.
Пусть аЛ=: С/. Поскольку (гЛ, гг;Л, 17) |— (pi,.e, J7m . .. J74),
то [гЛ, С/, рт+1] -> гг;Л [рх, С/1? р2] . .. [pm, J7m, рт+1] £ Р. Тогда
[г, Z, рт+1] =ф и; [гЛ, С/, рт+1] =^ и;и;Л [рь С/ь р2] . ..
так что и в этом случае с выполняется. Итак, из cl
следует с.
IV. Предположим, что имеет место с2. Тогда (г, w, z) |—
!-*-(?, в, е).
f. Пусть
(г, и;, Z) \— (ru wu а4) |— ... |— (rg, wg, ag)]
— последовательность тактов работы МП-автомата, пере-
переводящая конфигурацию (г, w, Z) в конфигурацию (д, е, е),
так что Wg^ag — г и rg — q. Пусть g==l. Тогда w;£S U {е},
(q, е) £ б (г, ш, Z) и [г, Z, g] —> w £ Р, так что с имеет место.
Продолжая индукцию, предположим, что с справедливо
для g = h. Пусть g=h+l. Тогда (г, W,Z)\—... |— (гЛ, м;Л,_аЛ)
и (г^, гг;Л, аЛ) |—Jg, е, е), причем и;_л 6 S U {е}, и; =_м;и;Л
и (г, и;, Z)|— (r4, u;4, а4) |— * .. |— (гл, wh, ah), где Wi==WiWh
для всех i и а/г— £7"£ Г; при этом Wh=-s. Согласно
2.5. Характеристика КС-языков в терминах МП-автоматов 101
пункту (III),[r, Z, q] =ф w [гл, С/, q]. Поскольку (гЛ, м;Л, С/) |—
|— (д, е, е), имеем (д, е) £ б (гЛ, wh,U), откуда получаем
[Oi, J7, g] —>wh£P. Тогда
[r, Z, g] =Ф и; [rh, U, q] =*> wwh = w,
так что с имеет место.
Лемма 2.5.4. Для каждого МП-автомата М мно-
множество Т (М) является КС-языком.
Доказательство. Пусть М = (К, 2, Г, б,
Z, go» F), d £ if и для каждого Z £ Г Z' — некоторый
абстрактный символ. Пусть PFo 6 Г |J {Z' | Z £ Г} и 7V =
U {И^о} и б^ определено следующим образом. Пусть а £
6 2 U {е} и Z 6 Г. Тогда
a. 6N (p, a, Z) = б (р, а, Z), еслир £ .ЙГ — F или а =^= е;
b. б^ (р, е, Z) = б (р, е, Z) U {(d, e)}, если р £ ^;
c. б^ (р, е, Z') - {(д, Уа) | (д, Уа) 6 б (р, е, Z)} U
U {(d, e)}, еслир £ ^;
d. б^ (р, а, Z') - {(д, У'а) | (д, Уа) 6 б (р, а, Z)} U
U {(g, Wo) | (д, е) 6 б (р, а, Z), q £ К - F) [}
U {(д, е) | (д, е) 6 б (р, а, Z), д 6 F}, если р £K-F
или а ^= е;
e. б^ (d, e, Z) = 8N (d, e, Z') - {(d, e)}.
(Заметим, что пункты end «отмечают» первый символ
на ленте магазинной памяти МП-автомата N.)
Ввиду леммы 2.5.3 достаточно показать, что Т(М) =
= Null (N). Предположим, что w £ Т (М). Тогда (g0, w, Zo) |-^-
\~W (Pi ei У) Для некоторых p£F и у^Г*. Если у = Ур,
У 6 Г, то, согласно пунктам а —е, (g0, w, Z'o) \~- (р, е, УГР)|-^-
1-^г (d, е, е). Если у - е, то (д0, м;, Zo) |-^ (g', w', У) ^ (р, е, е)
для некоторых У£Г и ^гб2и{е}- Итак, (д0, w;, Z^) |-^-
|-^-(д', шг, Уг)|-^-(р, е, е), если wr g 2 или q'£K — /*\
и (д0, м?, Z;)|-|-(g/, и;', У) |-^ (d, е, е), если w'= г и q'£F.
Следовательно, Т (М) s Null (TV).
Предположим теперь, что (qo, w, Z'0)\-^-(t, e, e). Если
t=^=d, то, согласно пункту d, t^F и (g0, w;, Zo) |-~ (^, e, e).
Пусть ^^d. Тогда (g0, и;, Zo)|-^(^, e, У')^^, е, е) для
102 Гл. 2. Автоматы и языки
некоторых tf£K\J{d} и У£Г. Если£' = й, то, согласно
пункту b, (q0, w, Z0)\^(q, e, Zv) для некоторых gg/7
и Z£F. Если Уфс1, то ^g/7 и, согласно пункту d,
(qo,w,Zo)\^-(tr, е, Y). Во всех случаях Null (N) <= Т (М)
и, следовательно, Null (N) = Т (М).
Из лемм 2.5.1 и 2.5.3 вытекает
Теорема 2.5.1. Множество цепочек L тогда и толь-
только тогда является КС-языком, когда существует МП-авто-
МП-автомат М, такой, что L = Null (M).
Из лемм 2.5.2 и 2.5.4 вытекает
Теорема 2.5.2. Множество цепочек L тогда и толь-
только тогда является К С-языком, когда существует МП-авто-
МП-автомат М, такой, что L = Т (М).
Поскольку КС-языки — это в точности те языки, кото-
которые допускаются МП-автоматами, кажется естественным
попытаться охарактеризовать основные свойства КС-язы-
КС-языков с помощью свойств МП-автоматов. Мы рассмотрим
с этой точки зрения свойство определенности КС-языков;
именно покажем, что КС-язык тогда и только тогда
является определенным, когда он допускается некоторым
«определенным» МП-автоматом.
Опр е деление. МП-автомат М = (К, 2, Г, б, Z0,q0, F)
называется определенным, если для каждой цепочки
w £ Т (М) существует в точности одна последовательность
вида
(q0, w0, Zo) |— (qu wu Yi) |— . . . |— (qh, wk, yk),
где w0 = w, wk = 8 и qh 6 F.
Теорема 2.5.3. КС-язык L ^ 2* тогда и только
тогда является определенным, когда существует опреде-
определенный МП-автомат N, такой, что L = Т (N).
Доказательство. Пусть КС-язык L является
определенным. Тогда построенный в лемме 2.5.1 МП-авто-
МП-автомат М = {{р}ч 2, Г, б, ZQ, p, 0) обладает следующим
2.5. Характеристика КС-языков в терминах МП-автоматов 103
свойством: для каждой цепочки w £ Null (M) существует
в точности одна последовательность вида
(р, w0, Zo) |— (р, wu Yi) |— • • • |— (p, и>ь, "Yft),
где и; = w0 и wfe — Yfe = 8- Пусть TV = ({p, d}, 2, IV, 6^, Z;,
p, {d}) есть МП-автомат, построенный по МП-автомату М,
как в лемме 2.5.2, и/ — гомоморфное отображение, опре-
определенное на множестве Г/v следующим образом: / (Z) =
= / (Z') = Z для каждого Z £ Г. Если
(р, w0, Z;)|ir(p1, м;4, Yi)Itt •••
.. . |тг(Р*-1, u?A_i, yk-i\ff(d, e, ya),
то YA=^e, Pi —Р для г, г<Л— 1, и (р, ш0, / (Zo)) |^-. . .
• • • |"м 0>> ^a-i, / (ya-i)) I м- (P. e, e).
Поскольку отображение / взаимно однозначно на множе-
множестве (ГN — Г) Г* U {е}, МП-автомат N является опреде-
определенным.
Пусть теперь N=(K, 2, Г, S, Zo, q0, ^—определенный
МП-автомат и I = (X U {d}, 2, Гм, бм, Zi, q0, 0) —
МП-автомат, построенный по МП-автомату М в лемме
2.5.4 (там роль автомата М выполняет автомат N, и обрат-
обратно). Пусть, кроме того, / — гомоморфное отображение,
определенное на множестве Гм следующим образом:
/ (Z) = / (Z') = Z для каждого Z £ Г. Допустим, что
(go, U70, Z;) l-^ (qu wu Yi) |ж . . . \ж (q8, w8, y8)
и
(^o, 2/o, Zo) 1-^ (rlf ylf (x4) | м- • • • i м" (r*. »*. И-О.
где w0 = y0 и zi;s = i/f = Ys = \it = e. Пусть g nh — наи-
наибольшие из натуральных чисел, таких, что д^ и гЛ принад-
принадлежат К. Согласно пунктам Ь, с и d леммы 2.5.4, qg и rh
принадлежат множеству F. Тогда
(go, w0, f(Z'o)) l-jfiqi, wu f(yi))\—uu. \w(qg, wg, f(yg)),
(go, 9o. / (Z'o)) l-r (ri» »i» / (И-О) liv" * * • hv" (гл» »л, / Ы)
и при этом wg = i/л = 8. Поскольку МП-автомат 7V
является определенным, имеем g = h, qt = ru f (yt) =
= f (\1г) (так что yt = [Xj) для i, 1 < i < h,
и U7j = уi для i, 0 <^ i < fe. Отсюда и из пункта е лем-
104 Гл. 2. Автоматы и языки
мы 2.5.4 следует, что s = t, qt — ru yt = ^ для г,
1 ^ i <C s, и w;^ = г/j для i, 0 <^ i << s. Другими словами,
для каждой цепочки w из множества Т (N) — Null (M)
существует в точности одна последовательность вида
a) (?о» w0, zo)lir(^' wi> У*)\ж ••• 1м"(?в» ^л» Та), где
w = w0 и wk = yk=&-
Определим теперь для каждого символа р из множе-
множества K[}{d} КС-грамматику Gp = (F, S, i>, [?0> Z^, p]),
где V я Р определены так же, как для МП-автомата М
в лемме 2.5.3. Пусть а б V и G = (F "J {а}, S, Р', а),
где
/>'=/> и{а^[?0, Z;, p] |p6^ U W}.
По лемме 2.5.3 Null (М) = L (G). Заметим, что, как видно
из доказательства этой леммы, существует взаимно одно-
однозначное соответствие между множествами левосторонних
выводов в грамматике G цепочки w £ Null (M) и множест-
множеством последовательностей тактов работы МП-автомата М
вида
b) (g0, U7, Z'o) \ж (qu wu 71) \W'\-M (?*-i, ^-i' Ta-i) 1"м
|m"(?a, e, e).
Согласно пункту а, существует в точности одна последо-
последовательность вида Ь, реализующая переход от конфигура-
конфигурации (g0, w, Z'o) к конфигурации (д, 8, е). Следовательно,
для каждой цепочки из множества Null (M) существует
один и только один левосторонний вывод в грамматике G,
т. е. грамматика G является определенной.
МП-автоматы имеют не только теоретическое значение
(как инструмент для доказательства трго, что те или
иные множества цепочек являются КС-языками), но и при-
прикладное — как устройства, позволяющие распознавать
КС-языки, а также производить синтаксический анализ
цепочек. Таким образом, МП-автомат используется, чтобы
определить, принадлежит ли данная цепочка некоторо-
некоторому КС-языку (например, является ли некоторое предложе-
предложение языка программирования правильно построенным 1)).
г) В литературе по программированию имеется большое число
алгоритмов распознавания цепочек. Сравнительная эффективность
многих из этих алгоритмов, рассматриваемых как МП-автоматы,
изучается в [GP].
2.5. Характеристика КС-языков в терминах МП-автоматов 105
МП-автоматы полезны также для составления программ
и для машинного перевода, где на одном из этапов тре-
требуется, чтобы предложение (цепочка) было разбито на ком-
компоненты в соответствии с грамматическим анализом. При
практической реализации МП-автомат имеет основное
функционирующее устройство и растущую вспомогатель-
вспомогательную ленту. Недетерминированность МП-автомата обеспе-
обеспечивается программой. Как только некоторый символ вход-
входной цепочки поступает в основное устройство, происходит
выбор (в соответствии с программой) следующего состоя-
состояния и символов, которые должны быть записаны в мага-
магазинной памяти (т. е. на вспомогательной ленте). Если
входная цепочка не допускается автоматом в результате
некоторой последовательности выборов, берется другая
последовательность выборов — так до тех пор, пока либо
входная цепочка будет допущена, либо будут исчерпаны
все возможные последовательности выборов.
Упражнения 2.5
1. Доказать теорему 2.2.2 с помощью теоремы 2.5.3.
2. Показать с помощью подходящих МП-автоматов, что каж-
каждый из приведенных ниже языков является контекстно-свободным.
Пользуясь леммами 2.5.3 и 2.5.4, для каждого из этих языков
построить порождающую его КС-грамматику.
a. Множество всех цепочек, в которых число вхождений сим-
символа а больше числа вхождений символа Ъ.
b. Множество всех цепочек, содержащих Кц + Ы2 вхождений
символа а и h]\ + kj2 вхождений символа Ь, где h и к — произволь-
произвольные неотрицательные целые числа и ц, i2, /i, h — фиксированные
неотрицательные целые числа. (Заметим, что b можно рассматривать
как обобщение а.)
c. Множество всех цепочек вида {ucv \ uv £ i?, | и | = | v |},
где R — фиксированное регулярное множество (над алфавитом 2),
состоящее из цепочек четной длины, ис(Е.
3. Пусть 2 = {at | 1 <! i <! и}, с £* 2 и / — отображение
множества 2* в себя, определенное следующим.образом: / (г) = аи
f (wat) = wai+u f {a*l) = a\+i, f (та^^ша^а* для всех w £ 2*,
t, i < n и к >- 1. Положим, далее, /° (г) = 8 и /J+1 (е) = / [р (г)]
(/ = 0, 1, . . .)• Показать, что множество {/•> (e)Rcfi+1 (г) | ; !> 0}
над алфавитом 2 (J {с} является КС-языком.
4. Назовем обобщенной порождающей грамматикой упорядо-
упорядоченную четверку Н = G, 2, Р, а), где V — конечное множество,
2£7, g ^ V — 2 и Р — конечное множество упорядоченных
106 Гл. 2. Автоматы и языки
пар (а, р), где а £ (V — 2)* и р £ 7*. Для ji, v £ 7* положим
ji=^v, если ji = Wiw2w3, v = wiw^Wz, (u72, ы;4) £ P и ы;3 £ 2*.
Для ji, v £ 7* положим |i^=>v, если существуют ji0 = u, u4, . . .
. . ., |1д = v, такие, что |1^=Ф|1г+1 для всех i. Доказать, что для
R
каждой обобщенной порождающей грамматики Н= G, 2, Р, а)
множество (ш ^ S* | а^ш} (так называемый правый язык) являет-
R
ся КС-языком [Ма 1].
5. Пусть М' есть МП-автомат. Показать, что существует
МП-автомат М = (К, 2, Г, б, Zo, q0), такой, что (a) Null (M) =
= Null (ЛГ') и (Ь) если (р, у) g б (q, x, Z) для некоторых q, p, x
и Z, то | у | < 2.
6. Пусть с £ 2. Доказать, что множество L = {жег/ £
£ 2*с2* \ х Ф у} является КС-языком [На 2]. (Указание. До-
Доказать, что множества Lj = {жег/ £ 2*с2* || ж | < | г/ |}, L2 =
= [хсу £ 2*с2* || х | > | у |} и L3 = {жег/ £ 2*с2* | ж = sus',
у = г^' для некоторых 5, s\ ^, f £ 2*, м, у 6 2, | s | = | ^ |,
и ^= у} являются КС-языками. Затем показать, что L = Li (J
и ь2 и ь3.)
7. Показать, что для каждого регулярного множества U мно-
множество {жг/к | ж =^= г/, ж, г/ £ С/} является КС-языком.
8. Пусть G = G, 2, Р, а) — неукорачивающая КС-грам-
матика. Для каждого вспомогательного символа £ обозначим через
Z/£ множество тех цепочек w £ 2 7*, которые удовлетворяют следую-
следующему свойству: существуют цепочки w0 = g, . . ., wn = w, такие,
что для всех t, i «< и, ы;г = ^а^, w;^+i == ^гаг и vi ~* Уг £ Р-
a. Доказать, что множество L^ регулярно.
b. Доказать, что существует приведенная праволинейная грам-
грамматика &£ = G|, 7, Р^, а^), не содержащая правил вида у ->v,
где у, v — вспомогательные символы, и порождающая язык L%.
При этом можно считать (это нужно для дальнейшего), что для
Ь, Ф у элементы множеств 7^ и 7V различны.
c. Пусть D=(\J 7:, 2, Р, а), где Р= U Р* и для каждого
вспомогательного символа g множества 7£ и Р^ получены из мно-
множеств Ft и Pt соответственно заменой символа а? на £. Показать,
что L(G) = L(D).
d. Пусть Я=(и 7;, 2, Р', а), где Р' содержит все правила
следующего вида:
A) l-^aw £P, где а£ 2.
B) у ->- аг^г/ для каждого правила у ->- vi/ £ Р, где у £ 7, v —
вспомогательный символ, не принадлежащий множеству 7, и
v -* aw (^ D, а£2.
2.5. Характеристика КС-языков в терминах МП-автоматов 107
Показать, что L (Н) = L (D) = L (G). Заметим, что каждое
правило КС-грамматики Н является левобуквенным, т. е. имеет
вид g ->- az, где а £ 2 [Gr 1,4].
e. Показать, что если КС-грамматика G является определенной,
то КС-грамматика Н может быть построена таким образом, что и она
будет определенной [Gr 1,3],
f. Используя пункт d, показать, что для каждого КС-языка
LCS*- {&} существует МП-автомат М ~ ({р, d), 2, Г, б,
Z(b Р, {d}) с двумя состояниями, такой, что б (q, е, Z) = 0 для
всех g £ {р, d}, Z £ Г, и Т (М) = L.
В упр. 9 и 10 будет рассматриваться устройство, называемое
ЛО-автоматом (линейно ограниченным автоматом) [My 2]. ЛО-ав-
томат может быть неформально описан так: он имеет конечную
ленту, на которой в. начальный момент времени записана входная
цепочка х). Начав работу на левом конце ленты в начальном состоя-
состоянии, ЛО-автомат на каждом такте недетерминированным образом
A) читает символ на ленте, B) заменяет его другим символом и C)
сдвигает ленту влево или вправо, или оставляет на месте. Цепочка
допускается ЛО-автоматом, если ЛО-автомат одновременно сходит
с правого конца ленты и переходит в некоторое заключительное
состояние 2). Формально ЛО-автомат определяется следующим обра-
образом. ЛО-автоматом называется упорядоченная пятерка В =
= (К, 2, б, g0, F), где (а) К и 2 — непересекающиеся непустые
конечные множества, (Ь) б — отображение множества К X 2 во
множество всех подмножеств множества К X 2 X {—1, 0, 1),
(с) q0 £ К и F с К — {#о}- Для произвольных цепочек и, и £ 2*
и символа с £ 2 полагаем A) исраи |— uqcbv, если (q, Ь, —1) £
£ б (р, а), B) upav \— uqbv, если (q, Ь, 0) £ б (р, а), и C) upav |—
|— ubqv, если (q, Ь, 1) £ б (р, а). Для каждой цепочки а £ 2*#2*
полагаем а |— а. Для цепочек а, Р £2*#2* полагаем а |—р,
если существуют цепочки а = а0, . . ., а^ = р, такие, что аг- Ь-
h- аг+1 для всех i, i <. к. (Такт а Ь- р интерпретируется следую-
следующим образом: ЛО-автомат из конфигураций а переходит в конфи-
конфигурацию р, так что, скажем, пункт A) означает, что ЛО-автомат
читает символ а в состоянии р, переходит в состояние #, заменяет
символ а на символ Ъ и сдвигает ленту на одну ячейку вправо.
Пункты B) и C) интерпретируются аналогично.) Положим Т (В) =
= {w £ 2* | qow \- р для некоторого р £ T,*F}.
9. Доказать, что для каждого ЛО-автомата В = (К, 2, б, #0, F)
множество Т (В) является НС-языком [La 1]. (Указание: исполь-
использовать упр. 1.1.8.)
х) Причем в каждой ячейке ленты записан некоторый символ.—
Прим. ред.
2) Таким образом, ЛО-автомат — это недетерминированная
машина Тьюринга, работающая в реальном пространстве, т. е. так,
что в процессе вычисления головка не выходит за пределы того
участка ленты, где была записана исходная цепочка.— Прим. ред,
108 Гл. 2. Автоматы и языки
10. Доказать, что для каждого НС-языка L существует ЛО-авто-
мат В, такой, что L — Т (В) [Ки]. (Итак, из упр. 9 и 10 видно, что
НС-языки могут быть охарактеризованы как множества цепочек,
допускаемых ЛО-автоматами.)
11. Доказать, что пересечение двух НС-языков является
НС-языком [Гл 4; La 1]. (Указание: использовать упр. 9 и 10.)
2.6. Детерминированные КС-языки
Мы рассмотрим теперь некоторый специальный тип
МП-автоматов, полезных, в частности, когда для некото-
некоторого КС-языка L требуется определить, A) является
ли множество 2* —- L КС-языком и B) является ли L
определенным. Говоря неформально, речь идет о таких
МП-автоматах, в которых для каждой конфигурации одно-
однозначно определяется следующая. Эти МП-автоматы пред-
представляют также практический интерес, поскольку они
обычно допускают или отвергают цепочки быстрее, чем
произвольные МП-автоматы. Языки, допускаемые такими
автоматами, легче поддаются грамматическому анализу.
Многие из алгоритмов, используемых обычно для синтак-
синтаксического анализа в языках программирования, работа-
работают успешно только в случае, когда язык допускается
МП-автоматом данного типа (детерминированным МП-авто-
МП-автоматом) 1).
Определение. МП-автомат М = (К, 2, Г, б,
Z. qo,F) называется детерминированным, если, каковы бы
ни были g £ К и Z £ Г, выполняются следующие два ус-
условия.
1. Либо для каждого а £ 2 множество б (g, a, Z)
состоит в точности из одного элемента и б (g, e, Z) = 0,
либо для каждого a f 2 б (g, а, Z) = 0 и множество
б (g, e, Z) состоит в точности из одного элемента.
2. Если б (g, a, Zo) Ф 0, а 6 2 U {е}, то б (д, а, Zo) -
— {(р, Zqy)} для некоторых р £ К и у £ Г*.
Условие 1 утверждает, что МП-автомат, находясь
в определенном состоянии g и обозревая определенный
символ Z в магазинной памяти, либо всегда читает вход-
входной символ — и при этом, прочтя определенный символ,
г) Более детально этот вопрос рассматривается в работе [Кп !]•
2.6. Детерминированные КС-языки 109
может перейти лишь в одну конфигурацию, зависящую
от этого символа,— либо вообще может перейти лишь
в одну конфигурацию и не может читать никакого вход-
входного символа. Условие 2 означает, что на ленте магазинной
памяти всегда записана некоторая непустая цепочка (так
что следующий такт всегда возможен).
Пример. Пусть М = (К, 2, Г, б, Zo, q0, F), где К = {go»£i}»
2 - {а, Ь}, Г = {а, Zo}, F = {q,}, б (g0, е, Zo) = {for,, Zoa)},
б (qOt а, а) = {(tfo, Zoa)}, б (д0, Ь, а) = {(?ь ZoaZo)}, б (qu а, Zo)=*
= б (qu Ь, Zo) = {(^, Zoaa)}, б (^, а, а) = {(д0, е)} и б (дь Ь, а) =
= {(^, аа)}. Тогда М — детерминированный МП-автомат.
Определение. КС-язык L называется детерми-
детерминированным, если существует детерминированный МП-ав-
МП-автомат М, такой, что L = Т (М).
Замечание. Рассмотрим следующее обобщение
детерминированного МП-автомата. Назовем МП-автомат
М = (К, 2, Г, б, Zo, go, P) квазидетерминированным,
если, каковы бы ни были q g К и Z £ Г, либо A) для всех
а £ 2 множество б (q, a, Z) состоит не более чем из одного
элемента и б (q, e, Z) = 0, либо B) множество б (g, e, Z)
состоит не более чем из одного элемента и для всех
а £ 2 6 (q, a, Z) =0. Множество Г (ЛТ) является детер-
детерминированным КС-языком. (Итак, квазидетерминирован-
ные МП-автоматы обладают такой же порождающей силой,
как детерминированные.) Докажем это утверждение.
Пусть n = (к и >0, s4}, 2, г и {z;}, в^, z;, 5о, л,
где 50, s^f, Zo g Г и отображение б^ определено сле-
следующим образом: для произвольных q £ К, а£И nZf Г
a) 6^ (s0, е, Zo) = б^ E0, е, Z) = {(g0, Z;Z0)},
b) если б (д, е, Z) =£ 0, то б^ (д, е, Z) - б (д, е, Z),
c) если б (д, е, Z) = 0, то б^ (д, a, Z) = б (д, а, Z)
при б(д, а, Z)^0 и б^ (д, а, Z) = {(slf ZJ)} при
б (д, а, Z) - 0,
d) б^ (q, e, Z;) = б^ (su e, Z;) = б^ (su 8, Z) =
= {(*i, Zl)}.
Тогда, как нетрудно видеть (упр. 2.6.1), МП-автомат N
является детерминированным и Т (N) = Т (М).
Открытая проблема. Дать характеристику детерминированных
КС-языков в терминах грамматик. (В связи с этой проблемой
см. [Кп 1].)
HO Гл. 2. Автоматы и языки
Детерминированный МП-автомат может все-таки иметь
несколько возможностей допустить данную цепочку,
поскольку Xi . . . xk — Xi . . . xkXk+i ... Xf, если
xt = e для i ^ к + 1. Для полной ликвидации возмож-
возможности выбора вводятся следующие обозначения и понятия.
Обозначение. Пусть М = (К, 2, Г, б, Zo, g0, F) —
детерминированный МП-автомат. Положим (g, w, а) \—
I— (Р» I/' Y)> если (!) (?» ^. «) I— (Р. Ч* Y). и B) б (р, е, Z) = 0,
если у — [iZ, Z£ Г.
Итак, (д, и;, а) |—(р, г/, у), если (д, и;, а) |-i- (p, г/, у)
и МП-автомат не может функционировать, ничего не читая
на входе, когда он находится в состоянии р и на ленте
магазинной памяти записана цепочка у.
Определение. Пусть М=(К, 2, Г, б, Zo, go> ^)~
детерминированный МП-автомат. Цепочка w d-допускается
МП-автоматом М, если (q0, w, Zo) |— (g, e, у) для некото-
некоторого q (z F- Обозначим через Тd (M) множество всех цепо-
цепочек, d-допускаемых МП-автоматом М.
Если в детерминированном МП-автомате б (g, e, Z) =
= 0 для всех q £ i£ и Z £ Г, то d-допускаемость совпа-
совпадает с допускаемостью.
В теоремах 2.6.1 и 2. 6. 2 мы покажем, что для каждого
детерминированного МП-автомата М множества Т (М),
2* — Т (М), Td (M) и 2* — Td (M) являются определен-
определенными КС-языками.
Детерминированный МП-автомат может, вообще говоря,
«зацикливаться» под действием некоторой цепочки,
т. е. может существовать цепочка w, такая, что
(g0, w, Zo) |— (д, е, у) не имеет места ни для каких g и у.
Нам будет нужно выделить такие МП-автоматы, в кото-
которых описанная ситуация не может иметь места.
Обозначения. Для каждого МП-автомата
М = (К, 2, Г, б, Zo, g0, F) положим Мс = (К, 2, Г, б,
Zo, g0, # - F).
Если М = (Z, 2, Г, б, Zo, g0, ^) — детерминирован-
детерминированный МП-автомат, то МП-автомат Мс также является детер-
детерминированным и Т4(М) П Td (Mc) = 0. При этом
2.6. Детерминированные КС-языки 111
Td (M) U Td (Mc) = 2* тогда и только тогда, когда для
каждой цепочки w £ 2* существуют g £ if и у £ Г*, такие,
что (g0, w, Z0)\—(q, e, у).
Определение. МП-автомат ЛТ называется детер-
детерминированным МП-автоматом без циклов, если М — де-
детерминированный МП-автомат и Г<* (M) |J Td (Mc) = 2*.
Детерминированные МП-автоматы без циклов понадо-
понадобятся нам для доказательства основных утверждений
этого раздела.
Доказательство центральных теорем этого раздела
будет опираться на три леммы. Первая из них представ-
представляет собой некоторый вспомогательный результат. Вторая
лемма утверждает, что каждый детерминированный
КС-язык d-допускается таким детерминированным МП-ав-
МП-автоматом N, что Td (N) = Т (N). В третьей, наиболее
сложной лемме доказано, что каждый детерминированный
КС-язык допускается таким детерминированным МП-ав-
МП-автоматом без циклов N, что Td (N) = Т (N).
Лемма 2.6.1. Для каждого детерминированного
МП-автомата М существует детерминированный МП-ав-
МП-автомат N = (KN, 2, Г, бдг, Zo, q0, FN), такой, что
Td (M) = Td (N) и q0 g FN.
Доказательство. Пусть М = (К, 2, Г, б,
Zo, *о, F), qolK, и пусть KN = K[){q0}, FN=F,
6N(q0, е, Z) - {(s0> Zo)} и б^ (?> a, Z) - б (g, a, Z),
где q £ К, ag2 и Zf Г. Ясно, что МП-автомат TV удов-
удовлетворяет требованию леммы.
Лемма 2.6.2. Для каждого детерминированного
МП-автомата М существует детерминированный МП-ав-
МП-автомат N, такой, что Td (М) = Td (N) = Т (N).
Доказательство. Пусть М = (К, 2, Г, б,
^сь <lo, F). Согласно лемме 2.6.1, мы можем считать, что
qo^F. Пусть для каждого q£K q' —абстрактный символ
ж N = (KN, 2, Г, 6N, Z0,q0,F), где KN = K[) {q'\д£К}
и отображение б^ определено следующим образом: если
8 (?, e,Z) =0, то б^ (q', e, Z) = {(q, Z)} и б^ (g> a, Z) =
= {(Р', а)}, «6 2, где б (g, a Z) = {(р, а)}; если
112 Гл. 2. Автоматы и языки
б (g, e, Z) ф 0, то б^ (?> е, Z) - б^ (?', e, Z) = {(р\ а)},
где б (q, e, Z) = {(р, а)}. Тогда МП-автомат JV является
детерминированным. Поскольку д0 € ^» то цепочка и; тог-
тогда и только тогда принадлежит множеству Т d (М), когда
существуют г ^> 1 и последовательность д1? . . ., qT эле-
элементов множества 7£, где qr £ F, хи . . ., хТ £ 2 U {е},
а также последовательность у0 = Zo, . . ., уг, такие, что
w = Xi . . . хг тя.
(g0, ^i ... яг, То) |"м" Ci» ^2 ... *г, Ti) 1м- • • • 1ж(^' е' Тг),
причем б (qr, e, Z) = 0 и уг = jiZ. А это в свою очередь
имеет место тогда и только тогда, когда
llv (^(D' xi(D+i • • • яг, Yid)) llv"
l ( . . яг ) l
gr ff и j A) < . . . < / (/с) —такие целые числа i,
1 < £ < г, что xt £ 2. А это имеет место тогда и только
тогда, когда цепочка w принадлежит множеству Тd (N).
Итак, Td (М) = Td (N). Поскольку (q0, w, Zo) |-^ (g, e, a)
для некоторых q £ F и а £ Г* имеет место тогда и только
тогда, когда (д0> и;, Zo) |^ (g, 8, а), то Г(Л0 - Td (N)
[ - 7d (M)].
Лемма. 2.6.3. Если М — детерминированный МП-
автомат, то существует детерминированный МП-ав-
МП-автомат без циклов N, такой, что Т (М) = Тd (N) = Т (N).
Доказательство, Пусть М = (К, 2, Г, б,
Zo, So, F)\ Для каждой упорядоченной четверки (р, q, Z, i),
где р, q g ^Г, Z £ Г, i g {0, 1}, введем новый абстракт-
абстрактный символ [/?, g, Z, г]. Положим Z) ={[p, g, Z, i];
U - 0, 1; б (?> е, Z) ^ 0, (?> е, Z) |^ (p, e, y) Для
некоторой цепочки y}- (Содержательно [р, q, Z, 0]
2.6. Детерминированные КС-языки 113
обозначает следующую ситуацию: (q, е, Z) |— (р, е, у)
для некоторого у £ Г* и МП-автомат не проходит через
заключительное состояние; [р, q, Z, 1] обозначает ситуа-
ситуацию, состоящую в том, что (?, е, Z) |— (p, e, y) Ддя неко-
некоторого y 6 Г* и МП-автомат либо A) проходит через за-
заключительное состояние, либо B) побывал в заключи-
заключительном состоянии в один из моментов после того, как
прочел очередной символ на входе и перед тем, как пере-
перешел в состояние q.) Пусть символы е^ и е2 не принадлежат
множеству К, N — детерминированный МП-автомат
(KN, 2, Г, 6*, Zo, g0, FN), где KN = К [j {eu e2 } [) D\
Fn = F U Ы U {[p, g, Z, 1] | [p, g, Z, 1] 6 D}; отобра-
отображение бЛг определено следующим образом (qf и Z' обозна-
обозначают произвольные элементы множества К и Г соответ-
соответственно).
a. 6^ {еи a, Z) = {(е2, Zo)} для всех а 6 2.
b. djy (е2, а, Z) = {(е2, Zo)} для всех а 6 2.
c. Если а 6 2, i -0,1, иб (?, а, Z) ^= 0, то б^ (д, а, Z) =
= б^(й, g'f Z', i], а, Z) =6(?, а, Z).
d. Пусть б (g, e, Z) =т^= 0 и существуют р и y, такие,
что (g, e, Z) |— (p, e, y).
Тогда
1. bN ([q, q', Z', 1], 8, Z) = {([p, g, Z, 11, T)}.
2. Если существуют р' £ F ж у', такие, что (q, e, Z) |—
I—(p', e, V'). то 6N(q,.e, Z) = bN ([g, g', Z', 0], e,Z) =
= {([p, g, Z, 1], Y)}.
3.. Если не существует р' <z F и у', таких, что
(q, e, Z) I-S- (p't e, Y'), то 8N (g, e, Z) = бя ([g, g', Z', 0],
e, Z) = {([p, g, Z, 0], y)}.
e. Пусть б (q, e, Z) Ф 0 и не существует пары (р, y).
такой, что (q, г, Z) \— (p, e, y)- Тогда
1. 6N ([g, g', Z', 1], e, Z) = {(elf Zo)}.
2. Если существуют p'£F я у', такие, что (q, e, Z)\—
|-*-(р', е, y'). то flff(g, e, Z) = M[g, ?'. Z', 0], 8, Z) =
= {(ei,Z0)}.
3. Если не существует р' £F ту', таких, что (</, е, Z) |-*-
|-!-(р', е, у'), то 6я(д, е, Z) = ow([g, g', Z', 0], е, Z) =
№ }
№ )}
Для завершения доказательства леммы достаточно
показать, что, какова бы ни была цепочка и;£2*,
114 Гл. 2. Автоматы и языки
I. (g0, w, Zo) |4г(р, 8, у) для некоторых p£KN и у 6 Г*,
g. w^T(M) тогда и только тогда, когда w^Td(N)i]
h. w£T(N) тогда и только тогда, когда w^Td(N).
Пусть / — отображение множества KN—{ei, e2} на
множество К, определенное следующим образом:
f (я) = Я Для Я 6^ и / ([д, д', Z, Z]) = д, i = 0, 1. Пусть
и; — произвольная цепочка из множества 2*. Возможны
два случая.
I. Предположим, что (д0, w, Z0)|-^(g, е, у). Тогда
существуют такие w0, . . ., wk-U где для каждого i
W( £ 2j [j \8| и ц? = tz^o • • • Wfr—i) Yo ==: ^o» Yi» * * *
. . . , yk = у и qu . . ., qk, что
(g0, w;0 • • • м^л-i» Yo) \w (?i» ^i • • • ^a-i» Yi) 1^" • • • \~w (?*» 8» Y0»
причем для каждого i, i<Ck, yi = \iiYi, У^Г, и имеет
место одна из следующих трех возможностей.
реализуется с помощью (дь wt, УгI-д^-(дм 8, v^), Vjgr*.
реализуется ^ помощью (qt, 8, У^) |-^(gf+1, 8, 8).
k. Wt = 8 и (дг, м;^ Y0lir(^i+b в» Y?+i) реализуется
с помощью (дг, 8, Yt) \^ (gi+1, 8, Vj+1), v*+1 ^=8. В этом
случае существуют ро = до, ..., pk£KN, такие, что
для всех i, и (р0, w, Zo) |~- (pft, 8, ya). Действительно,' если
ш^2, то, согласно пункту с, Pi+i = qi+i£K. Если д^ w^i
и Yi — те же, что в пунктах j или к, то, согласно пункту d,
Pi+i = [Яг+u Яи Yt, ji+1], jt+i = 1, если pi = [дь д^ь Yt.u 1]
или если (gj, 8, Уг) |^(д, е» y) Для некоторого дб^-
В противном случае /i+1 = 0. Итак, f имеет место. Из опре-
определения множеств F и FN следует, что в данном случае
утверждения g и h также справедливы.
II. Предположим, что не существует q и у, таких,
что (до> w, Zo) |^- (д, 8, y)« Тогда имеет место одна из двух
возможностей.
1. Не существует q и у, таких, что (д0, 8, Zo) |^- (д, 8, у).
2.6. Детерминированные КС-языки 115
т. Существуют а £2, м;\ tv\ yu у2, ?i и д2, такие,
что w=w'aw",
(?о» w, Zo) |^ (qu aw", yt) \ж (?2, и;", Y2),
и ни для каких q и у не имеет места (д2, е, 7г) 1тг(?» 8> Y)-
Рассмотрим случай 1. Согласно е2 и еЗ, 6N (q0, 8, Zo) =
= {{еп zo)}, если (q0, 8, Zo) |i (g, 8, у) для некоторого
b£F, и 6N(q0, 8, Z0) = {(e2, ^o)}» если ни для каких q£F
и у не имеет места (д0, в, Zo) |-^(?» е, т)« Следовательно,
(?о, м^, Zo) I^T1 (*ь е, Zo), если и?= 8 и (g0, e, Zo) |-~(g, 8, у)
для некоторого q£F, и (д0, ^, Zo) |^ (e2, e, Zo) в против-
противном случае. Итак, утверждения f, g и h в этом случае
выполняются.
Рассмотрим, наконец, случай т. Поскольку (q0, w', Zo) |-^-
|Ж"(?1» 8» Yi)> существует в силу доказанной части леммы
символ pi g KN, такой, что / (pi)=gi и (g0, и;', Zo) |^ (рь 8, Yi).
Согласно с, из (qu а, у{) \ж(д2, е, у2) следует (рь a, Yi) \-^
llv" (?2» е, Y2)- Поскольку (д2, е, Y2) lif (?» 8» Y) не имеет
места ни для каких диу, существуют г> 2, д2» • • •» ^г» Y'
и Z2, ...,Zr, где Zt£T для каждого i, такие, что
Y2 = Y'zr ... 22, (д«,е, Zf)|^(gi+1, e, e), 2<i'<r, и при
этом не существует диу, таких, что (дг, 8, ZT) \^*(q, 8, y)«
Согласно d и е, существуют p2=q2, . ..,рг> такие, что
для каждого г, 2<i<r, имеет место
п. 6N(pb 8, Z) = {(pl+1, 8)},
о. р*+1 = [дг+1, qu %i, 7«+i]» где 7i+1 = l, если /f = 1 или
(дь 8, Zi)|-g.(g, 8, y) Для некоторого дб^, и 7ж = 0 в про-
противном случае,
p. 6N(pr, 8, Zr) = {(e!, Zo)}, еСЛИ рг=[3г, ?г-1, 2Г_1? 1]
или (дг, 8, Zr)|-^(g, e, y) Для некоторого q£F,
и 6N(pr, e, Zr) = {(e2, Zo)} в противном случае.
Итак, f выполняется. В силу о и р справедливы также
утверждения g и h; это завершает доказательство.
Теперь легко получить основные результаты.
116 Гл. 2, Автоматы и языки
Теорема 2.6.1. Если М — детерминированный
МП-автомат, то множество 2* — Т (М) является детер-
детерминированным КС-языком.
Доказател ь^с т в о. Согласно лемме 2.6.3,
Т (М) = Т d (N) для подходящего детерминированного
МП-автомата без циклов N. Тогда 2* — Т (М) =
= 2* — Td(N) = Td (Nc) и по лемме 2.6.2 существует
детерминированный МП-автомат N', такой, что Td (Nc) =
=Td(N')= T (Nf). Следовательно, множество 2* —
— Т (М) есть детерминированный КС-язык.
Теорема 2.6.2. Если М — детерминированный
МП-автомат, то множества Тd (М) и 2* — Тd (M)
являются детерминированными КС-языками.
Доказательство. Согласно лемме 2.6.2,
Тd (М) = Т (N) для подходящего детерминированного
МП-автомата N. По теореме 2.6.1 множество 2*—Тd (M) =
— 2* — Т (N) является детерминированным КС-языком.
Последняя из основных теорем этого раздела утверж-
утверждает, что детерминированные КС-языки являются опреде-
определенными.
Теорема 2.6.3. Каждый детерминированный
КС-язык является определенным.
Доказательство. Пусть L — детерминирован-
детерминированный КС-язык, М = (К, 2, Г, б, Zo, go* F) — детермини-
детерминированный МП-автомат, такой, что g0 g F и L = Т (М),
и N — детерминированный МП-автомат, построенный в
лемме 2.6.2. Тогда L = Т {N). По построению
(g0, w, Zo) \— (q, e, у) имеет место тогда и только тогда,
когда (qOi w, Zo) |— (g, 8, у), где w 6 2*, q 6 F и у g Г*.
Итак, МП-автомат N является определенным. Согласно
теореме 2.5.3, множество L = Т (N) является определен-
определенным КС-языком.
Следствие 2.6.1. Если М — детерминированный
МП-автомат, то множества Тd (М), 2* — Т (М) и
2* — Td (M) являются определенными КС-языками.
Теоремы 2.6.1 и 2.6.3 могут быть полезны, если нужно
доказать, что A) дополнение того или иного КС-языка
2.6. Детерминированные КС-языки 117
есть КС-язык и B) тот или иной КС-язык является опре-
определенным. Пусть, например, с £ 2 mL — {wcwR \ w£%*}.
Поскольку может быть построен детерминированный МП-
автомат М, такой, что Т (М) = L (см. ниже упр. 2.6.8),
то множества' L и B (J {с})* — L являются детермини-
детерминированными КС-языками.
Ввиду важности определенных КС-языков для задач,
связанных с переработкой информации, мы предлагаем
следующие две проблемы для исследования.
Проблемы для исследования
1. Указать класс МП-автоматов (отличный от класса детерми-
детерминированных МП-автоматов), распознающих только определенные
КС-языки.
2. Указать класс МП-автоматов, распознающих только суще-
существенно неопределенные КС-языки.
Упражнения 2.6
1. Показать, что Т (N) = Т (М), где М и N — МП-автоматы,
о которых шла речь в замечании на стр. 109.
2. Доказать, что каждое регулярное множество является детер-
детерминированным КС-языком.
3. Пусть 2 = {а, Ь}. Показать, что каждое из следующих
множеств является детерминированным КС-языком:
a. {aWa* \ i, / > 1}.
b. Множество всех цепочек с одинаковым числом вхождений
символов аи Ъ.
c. L (G), где G = (У, 2, Р, о) и Р = {а -^ 8, а -»- ваоЪа).
4. Пусть М — МП-автомат, удовлетворяющий условию 1
определения детерминированного МП-автомата. Показать, что
во множестве Null (M) не существует цепочек wi и w2i таких, что
цепочка w^ является начальной подцепочкой цепочки w2.
5. Доказать, что КС-язык L (GB), где GB — КС-грамматика
из упр. 1.6.8, является детерминированным [GHa].
6. Показать, что в детерминированном МП-автомате для данных
q и а тогда и только тогда существуют такие р и р, для которых
имеет место (q, г, а)\-^(р, 8, р), когда не существует состояний
94, •••, qr> f>l» и цепочек аь ..., аг, yi» 72» таких, что
(Яг,В, О) |— (qi9 8, ViCti) И (qU 8, а4) |—- . . . |— (qr, 8, ar) |— (qit 8,
7. Построить детерминированный МП-автомат М, такой, что
Т (М)= Т (Мс) = 2*.
8. Построить детерминированные МП-автоматы М и N, такие,
что Td (М) = Т (N) = {wcwR | w e 2*}, где с"ё 2.
118 Гл. 2. Автоматы и языки
9. Пусть символы а и Ъ принадлежат множеству 2. Для каж-
каждого натурального числа i положим / (i) = а{Ъ. Пусть хи . . ., хп £
6 2 *. Построить детерминированные МП-автоматы М и N, такие, что
10. Пусть 2 = {a, 6, с, eit . . ., en}. Для каждого натураль-
натурального числа m и каждой цепочки и?, такой, что | w | J> m, положим
/m С) = w» гДе I u | = ти существует такое и, что и у = w. Пусть
(#i, . . ., хп) и (^i, . . ., уп) — непустые цепочки из множества
{а, Ь}*, удовлетворяющие следующему условию: существует нату-
натуральное число /с, такое, что для любых ilt . . ., im, где т ]> /с
и 1 <; }Ь . . ., im ^п, имеет место неравенство /т (д:^ . . . xim) Ф
Ф1т (У\х • • • У1т)- Построить [Кп 1] детерминированные МП-ав-
МП-автоматы М и N, такие, что
Td(M) = T(N)={eim ... ehcxh ... xim,
eim ••
11. Показать, что для каждого детерминированного КС-языка
L множество
min (L) = {w £ L \ у = &, если w — ху
для некоторой цепочки х £ L)
является детерминированным КС-языком [GG].
12. Пусть N — МП-автомат, построенный в лемме 2.6.3.
Показать [GG], что N допускает произвольную цепочку w за не
более чем (А+1)B|и?| + 1) тактов работы, где
h - max { | у | | dN (p, a, Z) = {(p'9 y)}
для некоторых а £ 2 \J {s}, p, p', Z, 7}
13. Доказать, что если L — детерминированный КС-язык
и Л — регулярное множество, то множество L П R является
детерминированным КС-языком. [GG].
14. ЛО-автомат В = (К, 2, б, qOi F) (определение см. перед
упр. 2.5.9) называется детерминированным, если каждое из мно-
множеств б (q, x) состоит в точности из одного элемента (так что ото-
отображение б можно рассматривать как отображение множества
К X 2 во множество К X 2 X {—1, 0, 1}). Доказать, что если
В — детерминированный ЛО-автомат, то существует детермини-
детерминированный МП-автомат В', такой, что Т (В') = 2 2* — Т (В) [Ки].
Открытая проблема. Существует ли такой НС-язык, который
не распознается ни одним детерминированным ЛО-автоматом?
Используя упр. 14, эту проблему можно связать со сле-
следующей.
2.7. Историческая справка 119
Открытая проблема. Существует ли такой НС-язык, что мно-
множество 2 2* — L не является НС-языком?
2.7, Историческая справка
Определения регулярных множеств и конечных авто-
автоматов, а также доказательство теоремы 2.1.1 впервые дал
Клини [Кл], хотя и в несколько другой формулировке.
В той же форме, что у нас, эти определения и теорема
имеются в [PC]; там же дано определение недетерминиро-
недетерминированного конечного автомата и теорема 2.1.4. Теоре-
Теорема 2.1.2 есть также в работе [My 1], а теорема 2.1.3 —
в работе [BPS]. Теорема 2.1.5 доказана Майхиллом
[My 1]. Класс регулярных множеств впервые рассмотрен
как подкласс класса КС-языков Хомским [Хо 3],
он же [Хо 1] первым начал специально рассматривать
праволинейные грамматики. Линейные грамматики были
впервые определены в работе [ХШ]. Результаты разд. 2.2
содержатся в' [ХМ]. КС-языки, изучаемые в разд. 2.3.
а также теорема 2.3.1 и более слабый вариант теоре-
теоремы 2.3.2 имеются в работе [BPS]. Теорема 2.3.2 доказы-
доказывается в [Sh 1]. Автоматы с магазинной памятью формаль-
формально были впервые определены Хомским [Ch] и Эви [Ev],
хотя понятие ленты магазинной памяти использовалось
уже с 1954 г. [BWW; NS; Ер; SB]. Теорема 2.5.1 доказана
в работах [Ch, Ev]. Определенные МП-автоматы введены
Хейнсом [На 2]; им же доказана теорема 2.5.3. Детерми-
Детерминированные МП-автоматы, хотя и в другой форме и под
другим названием, впервые изучались в [Sch 2]. В част-
частности, там были доказаны лемма 2.6.3 и теорема 2.6.3.
Теорема 2.6.1 впервые была сформулирована в работе
[Fi], однако там не было приведено доказательство; впо-
впоследствии эта теорема была доказана в работах [GG; На 21.
Предложенные здесь определения детерминированного
МП-автомата и детерминированного КС-языка, а также
все результаты, касающиеся множества Td (M), имеются
в [GG].
ГЛАВА 3
ОПЕРАЦИИ НАД КС-ЯЗЫКАМИ
Настоящая глава посвящена вопросу о том, что про-
происходит при применении к КС-языкам различных опера-
операций. Нашей главной целью будет нахождение таких ото-
отображений множеств цепочек (или пар множеств цепочек),
которые сохраняют свойство множества быть регулярным
или свойство быть контекстно-свободным языком, иначе
говоря, таких, которые преобразуют регулярные множе-
множества в регулярные множества или КС-языки в КС-языки.
В частности, операция подстановки сохраняет как свой-
свойство быть регулярным множеством, так и свойство быть
КС-языком. Операции объединения и произведения пере-
переводят пару регулярных множеств в регулярное множество
и пару КС-языков — в КС-язык. Мы рассмотрим еще
несколько операций, сохраняющих свойство множества
быть регулярным и свойство быть КС-языком. Кроме того,
будут рассмотрены некоторые операции, которые в общем
случае не преобразуют пару КС-языков в КС-язык, однако
дают КС-язык, если один из исходных языков является
КС-языком, а другой — регулярным множеством.
3.1. Языки, не являющиеся контекстно-свободными
Для построения примеров, опровергающих те или
иные предположения, нередко оказывается полезным
иметь примеры языков, не являющихся контекстно-сво-
контекстно-свободными. Ввиду того что каждая КС-грамматика порож-
порождает единственный КС-язык и множество всех КС-грам-
КС-грамматик счетно (так как имеется лишь счетное множество
систем правил КС-грамматик), множество всех КС-языков
также счетно. Поскольку множество всех подмножеств мно-
множества 2* несчетно, несчетную мощность имеет и множест-
множество языков, не являющихся контекстно-свободными. Нам,
3.1. Языки, не являющиеся контекстно-свободными
121
однако, понадобятся конкретные
примеры не контекстно-свобод-
контекстно-свободных языков. Один такой пример
был приведен в упр. 2.3.4. Ис-
Используя следующую лемму, мы
приведем и другие примеры.
Лемма 3.1.1. Для каждой
КС-грамматики G существуют
числа р и q, такие, что каждая
цепочка z £ L (G), где \ z | > р,
может быть представлена в ви-
виде z — xuwuy так, что uv Ф г,
| uwu | <1 q и для всякого ki
xu
|
wuhy
Доказательство. Без
потери общности можно считать,
что КС-грамматика G является
неукорачивающей. Пусть G =
=-(V, 1>,Р, о) иМ-max {|и?| ;
£-> w £ Р}. Для каждой цепочки
w£V*, такой, что cr=>u\ су-
существует минимальное дерево вы-
*
вода e=$w. Рассмотрим все ми-
минимальные деревья выводов, в
которых каждый путь имеет дли-
длину, не превосходящую #A^).
Число таких деревьев конечно.
Пусть р —максимальная длина
цепочки, порождаемой при выво-
выводе, производимом одним из этих
х.
J
Р и с. 3.1. Дерево вывода Т.
деревьев, и пусть q= 2 Мг.
г=0
Пусть z 6 L (G) — произ-
произвольная цепочка, длина кото-
которой превышает р, и пусть Т
есть минимальное дерево вы-
вывода z из а (см. рис. 3.1).
Пусть su . . ., sr — самый длин- Рис. 3.2. Дерево вывода Tz.
*/*(?
122 Гл. 3. Операции над КС-языками
ный путь в дереве Т (так что 54 является корнем
дерева Т). Согласно определению числа р, г > # (V).
Пусть для каждого £, i ^ r, xt есть пометка при верши-
вершине st. Поскольку г > # (F), последовательность
г — # (F), г — #(F) + 1, . . ., г состоит из # (F) + 1
последовательных положительных чисел. Таким образом,
существуют числа i и /', такие, что г—-#(F)^£</^r
ж xt — Xj. Пусть Ti и Т2 — деревья, порождаемые верши-
вершинами st и Sj соответственно, и Г3 — дерево вывода, полу-
чаемое из Т\ удалением всех вершин s^sj, являющихся
продолжениями Sj и всех дуг, ведущих в эти вершины
(см. рис. 3.2). Тг производит вывод xt =Ф u3XjVs = и3хгиг
для некоторых иг и v3 из 2*. Из минимальности Т вытекает
непустота одной из цепочек иг или i;3. T2 производит
вывод Xj = xt =ф w2 для некоторой цепочки w2 £ S*.
Поскольку Ti может быть получено из Г3 подстановкой
Т2 В ВерШИНу 5;, ТО Т\ ПРОИЗВОДИТ ВЫВОД Xt =Ф UsW2V3.
Каждый путь в Ti содержит не более # (V) + 1 вершин.
Если предположить противное, то самый длинный путь
st = s'x, . . ., s'g в дереве Tj имеет длину g > # (V) + 1.
Тогда путь 5Ь . . ., Sj, 5g, . . ., 5^ в дереве Т имеет длину,
большую г, что противоречит максимальности пути
su . . ., 5Г. Таким образом, дерево Ti имеет не более
#00
2 fl = Q вершин. Отсюда следует, что | а3^з^з I <С У-
2
о
*
Поскольку st есть вершина дерева Г, то а =Ф
*
для некоторых ии и{ £ 2*. Тогда 0
Vi для всех /с ;> 1,
что и завершает доказательство леммы.
Теорема 3.1.1. Язык {апЪпап \ п >> 1} в алфавите
2 = {а, Ъ} не является контекстно-свободным.
Доказательство. Предположим, что L =
=■ {anbnan | п ;> 1} является КС-языком. Тогда L
порождается некоторой КС-грамматикой C? = (F, 2, Р, а).
Пусть р и g —числа из леммы 3.1.1. Поскольку | apbpap \ =
= 3р>р, цепочку avbvav можно представить в виде
xuwvy, где ии Ф 8, | ии?1; | ^ q и xukwuky £ L для всех
3.1. Языки, не являющиеся контекстно-свободными 123
k ^ 1. Мы докажем, что ни одна из цепочек х, и, w, и, у
не содержит вхождений символа Ь, что противоречит
определению языка L.
Предположим, что х содержит вхождение Ъ. Тогда
х = avbt для подходящего t £ 2*. Поскольку а =
= xu2Pwu2Py = avbtu2Pwv2Vy принадлежит языку L, то
а =: avbvav и |а | = Зр. Но ир Ф е, так что | а |>
^2>Зр-{-1, чего быть не может. Предположим, что
Ь входит в и и не входит в х. Если а содержит вхождение а,
то а имеет вид и = а^Ь£ или а = £Ьа; для некоторого
У ^ 1. Тогда xu2wv2y принадлежит L и содержит либо
подцепочку bta3b, либо подцепочку Ьа^Ь, что невоз-
невозможно. Итак, и не содержит вхождений символа а. Поэто-
Поэтому и = bJ для некоторого / ^> 1 и а: = ар. Поскольку
цепочка а = xu2Pwu2Py = ар (tfJPwv2Py содержится
в языке L, то а = avbvav. Однако цепочка а? (Ь3J w;y2Pi/
не может совпадать с apbpav. По симметрии можно
доказать, что ни цепочка и, ни цепочка у не содержат
вхождений символа Ъ. Таким образом, цепочка w содер-
содержит вхождение Ъ и xuvy £ aa*. Но тогда цепочка ^а2^'^;^2!^!
г/принадлежит L и имеет вид alwa\ и при этом либо
£ > | и; |, либо j > | w |, что невозможно. Поэтому w так-
также не содержит вхождений символа Ъ.
Следует заметить, что лемма 3.1.1. не является универ-
универсальным инструментом для доказательств такого рода.
Так, например, язык {апЬпа3 \ п ;> 1, 1 <; / <; тг} не
является контекстно-свободным, однако это невозможно
установить с помощью леммы 3.1.1. Ниже (гл. 5, пример
после следствия] 5.4.3) мы установим, что этот язык
не является контекстно-свободным.
В следующей теореме мы, используя лемму 3.1.1,
получим простое описание структуры КС-языков над
алфавитом из одной буквы.
Теорема 3.1.2. Каждый КС-язык над алфавитом
из одной буквы является регулярным множеством. (Таким
образом, множество {аг \ i £ А) есть КС-язык тогда и
и только тогда, когда множество А — периодическое.)
124 Гл. 3. Операции над КС-языками
Доказательство. Пусть L ^ а* — КС-язык.
Согласно лемме 3.1.1, существуют числа р и q, такие, что
каждая цепочка z £ L, длина которой больше р, может
быть представлена в виде z = xuwuy, где uv Ф е,
| uwu | ^ q и xukwuky £ L для всех к ^ 1. Поскольку
L ^ а*, имеем z = xwyuu = xwya3 для некоторого /,
/ ^ д, причем xwy (a])k £ £ Для всех к ;> 1. Положим
и = 9 (^ — 1) • • • 2-1. Тогда z (an)* ^ L ^ а* для каж-
каждой цепочки z £ L, длина которой больше р. Для каждого
I, 1 < г < тг, пусть Аг = ap+i (an)* П L. Если Лг =^ 0,
обозначим через z$ самую короткую цепочку из А}. (Для
тех г, для которых Лг = 0, z$ не определяется.) Тогда
каждая цепочка z £ L, длина которой больше р, принадле-
принадлежит множеству U zt (an)*. Следовательно, если щ, ...
. . ., ит — цепочки из L, длины которых не превы-
превышают р, то L = {иг | 1 <; i ^ m} U U Z| (an)*. Итак,
множество L регулярно.
Пример. Пусть L = {ап2 \ п ^> 1}. Поскольку множество
{ п2 | п >- 1} не является периодическим, то язык L не является
контекстно-свободным.
Пусть а — некоторый символ и т — гомоморфизм,
определяемый равенством т (х) = а для всех ж £ 2. Если
L—КС-язык, то т (L) ^ а* — тоже КС-язык. Поскольку
г
% (w) = аМ для каждой цепочки и;, из теоремы 3.1.2
вытекает
Следствие 3.1.1. Если L есть КС-язык, то мно-
множество {| w | | w £ L} является периодическим.
Упражнения 3.1
1. Показать, что язык {anbnai | re !> 1, 1<!/<;?г} удовлетво-
удовлетворяет заключению леммы 3.1.1.
2. Показать, что ни один из следующих языков в алфавите
2 = {а, Ь, с} не является контекстно-свободным.
a. {а*Ьпсп | п > 1}.
b. {а"^ U>1, n </ <2ге}.
c. {а*Ыа1Ъ1 |«,/>1}.
S.I. Языки, не являющиеся контекстно-свободными 125
3. Какие из следующих языков являются контекстно-свобод-
контекстно-свободными?
a. {апЛ+1\п>1}.
b. {a26n2-1|n>l}.
c. {а& | k > 1} U {aih | k > 1} U { a"* | Л > 3}.
4. Пусть L — некоторый КС-язык и Init (L) = {ы; ^ e | w# £ L
для подходящего x}. Показать, что существует периодическая
последовательность букв {хг}г<со из 2, такая, что каждая цепочка
х^ . . . xt принадлежит множеству Init (L).
5. Пусть {xt}i<oo есть последовательность символов из 2.
Показать, что множество {^ . . . xt | i >• 1} является КС-языком
тогда и только тогда, когда последовательность {^}|<оо является
периодической [GHU]. (Указание: используйте предыдущее упраж-
упражнение.)
6. Пусть 2 = {а, Ь}, ^ =.аЪа*Ъ {а1Ьа^Ч \i > 1 }* и L2 =
= ab {albaMb \i > 1 }* аа*Ь.
Показать, что
a) Li и L2 — детерминированные КС-языки,
b) Li О L2= {aba2b, аЬаЧа?Ъа*Ъ, . . .},
c) 2* — (Li П L2) есть КС-язык, но L^ [\ L2 — не КС-язык.
7. Пусть G = G, 2, Р, а) есть КС-грамматика и порождае-
порождаемый ею язык L (G) бесконечен. Показать, что существует вспомо-
вспомогательный символ | и цепочки ж4, ж2, ы;, ы^, г#2 £ 2*, такие, что
a =^""«1^2» I =Ф ^1^2» ^ =Ф ^ И ^^2 =7^ 6 [SCg].
8. Пусть т — подстановка, определяемая равенствами т (а) =
= а, т (Ь) = Ь, т (с) = с, т (d) = {d, е}. Пусть, далее, X =
= {dalblc^ И, / > 1} U {eatbici \ i, j > 1}. Показать, что мно-
множество {w; £ {a, 6, с, d}* |т(«;)С1} не является КС-языком
[GRo 2]. (Ср. с упр. 2.1.2.)
9. Пусть G — ({g, a, a}, {a}, P, а) есть КС-грамматика
и Р = {б -> aaa2, a -> a2ga, g -> a4ga, g -> aa2, a -> a3}. Пред-
Представить L (б1) в виде выражения, зависящего только от а, с помощью
операций (J, * и *•
10. Пусть G — G, 2, Р, а) — некоторая КС-грамматика
и a £ 2. Доказать, что необходимым и достаточным условием для
существования цепочки w £ 2* и бесконечного регулярного мно-
множества Л с а*, таких, что wR с L F1), является существование
цепочки и £ 2*, символа g £ V — 2 и числа к !> 0, таких, что
# # *
(а) а =ф u\ah и (Ь) либо A) g =Ф amgan и g =Ф у для некоторых
т, п (т + п >- 1) и у £ а*, либо B) g =Ф gan для некоторого
w >- 1 и g =фу для некоторого у £ 2*.
11. Пусть 6r = (F, 2, Р, сг)—КС-грамматика и а £2. Доказать,
что необходимым и достаточным условием для существования цепо-
126 Гл. 3. Операции над КС-языками
чек w, и/£ 2* и бесконечного регулярного множества /?Са*, таких, что
wRw' с L (G), является существование цепочек и, и' £ 2* и g £ 7—2,
таких, что (а) а =Ф н£и' и (Ь) либо A) £ =Ф аш\ап и ^у для
некоторых m, п(т+га>-1) и у £ а*, либо B) £=ф£ап к £=фу для
некоторых гс > 1 и у £ 2*, либо C) £ =Ф ат£ и | =£ у для некоторых
т>1 и у£2*.
3.2. Пересечение и разность
Мы рассмотрим теоретико-множественные операции
пересечения и вычитания. Сначала будет показано, что
класс КС-языков не замкнут относительно этих операций.
Затем будет получено условие, достаточное для того, чтобы
языки L [\ М и L — М были контекстно-свободными
(именно L должен быть КС-языком, М — регулярным
множеством).
Примеры. 1. Пусть 2 = {а, Ь}, L — {a'bJ'aJ \ i, / !> 1;
я М — {aibia1 | г, / >- 1}. Множество аа* является КС-языком,
поскольку оно регулярно. Множество С = {&JV|/;>1} есть
КС-язык, поскольку оно порождается КС-грамматикой с пра-
правилами х-+Ъа, т-> Ьта. Таким образом, L = аа*С есть
КС-язык. По симметрии можно показать, что М есть КС-язык.
Однако язык L [\ М — {anbnan \ п >- 1} не является контекстно-
свободным в силу теоремы 3.1.1. Таким образом, пересечение двух
КС-языков не обязательно является КС-языком.
2. Пусть L и М — языки из примера 1. Пусть Li = {агЬЫк ;
£, /, &>1}. Поскольку Lt — регулярное множество, оно является
КС-языком. Множество L2 ~ ^1 — (L П ^f) тоже является КС-язы-
КС-языком (см. упражнение 3.2.1). Однако язык L^ ~ L2 = L П М
не является контекстно-свободным. Следовательно, разность
КС-языков не всегда является КС-языком.
Сейчас мы докажем важный факт, позволяющий, когда
это необходимо, путем пересечения с подходящим регуляр-
регулярным множеством отбрасывать те цепочки данного КС-язы-
КС-языка, которые не имеют интересующей нас формы — и при-
притом так, что остающиеся цепочки также образуют контек-
контекстно-свободный язык. Эта теорема будет часто использо-
использоваться в последующем изложении. Она представляет собой
один из главных аргументов, подтверждающих фундамен-
фундаментальную роль регулярных множеств в теории КС-языков.
Теорема 3.2.1 (о пересечении). Если L есть
К С-язык и М — регулярное множество, то язык L (] М
3.2. Пересечение и разность 127
является контекстно-свободным. Более того, если L —
определенный КС-язык, то определенным является и язык
L(]M.
Доказательство. Докажем первую часть тео-
теоремы. Ввиду теоремы 1.8.1 можно считать, что ни М, ни L
не содержат пустой цепочки е. Пусть G = (V, 2, Р, а)
есть неукорачивающая КС-грамматика, порождающая
язык L, и А = (К, 2, б, ро, F) — конечный автомат,
такой, что М = Г (А). Тогда Г D) = (J Г Dд), где
gGF
Aq = (Я, 2,б,р0, {?}), и L ПГИ) = U (ЬПГ(Лд)).
Следовательно, достаточно доказать первую часть теоремы
для случая, когда F состоит из единственного состоя-
состояния, скажем, ph.
Итак, пусть М = Т(А), где А—^К^ 2, б, р0, {Рл}).
Рассмотрим грамматику G — (F, 2, Р, а), где
F=2U(#xFxiQ, а=(р0, or, Ph)
и Р состоит из правил следующего вида.
а- (Р, I, <1)->{Р, vu qi)(qu v2, q2) ... (^_ь уА, gA),
если qidK для всех f, и £—>^i ... v^^P, где ^6^ для
всех t.
b. (р, у, ?)—>^» если i;g2 и б (р, у) = д.
Для каждого вывода а=ФЛ1 . .. а/ в грамматике G цепоч-
цепочки из языка L (G) и для любых q2, ..., qt£K существует,
очевидно, соответствующий вывод
c. (р0, a, ph)^>(p0, au q2) (g2, а2, g3). • -(?*, я*, Рл)
в грамматике G, и обратно, каждому такому выводу
_ *
в грамматике G соответствует некоторый вывод о=^>а1 . .. at
в грамматике G. Далее, (р, v, q)—>v£P тогда и только
тогда, когда ^£2 и б (р, v)=q. Таким образом, ai .. . at£
£L(G)()T(А) тогда и только тогда, когда (р0, а, рл) =Ф
^ ... аь т. е. L (G) = L (G) (]T(A) =L
G
Допустим теперь, что язык L является определенным.
Проследим еще раз рассуждения, примененные при дока-
доказательстве первой части теоремы. Согласно теореме 1 8.1,
128 Гл. 3. Операции над КС-языками
неукорачивающую КС-грамматику, порождающую L, можно
считать определенной. Поскольку множества L f] T (Aq)
попарно не пересекаются, мы можем в силу теоремы 1.6.2
снова предположить, что F состоит из единственного
состояния. Из способа построения грамматики G следует,
что каждое дерево вывода цепочки L{G)[\M производит
вывод, в котором сначала применяются только правила
типа а и затем только правила типа Ь. Предположим, что
#! ... at£L(G)(]M есть цепочка, имеющая два сущест-
венно различных вывода в 6г, скажем, а =$ а1 ... at
_-*B)
и о=^а1 ... at. Поскольку правила типа а применяются
— *(D
раньше правил типа Ь, вывод а =ф а4 ... at можно более
подробно выписать в виде
где ^о~Ро и Qt — Ph- Аналогично можно записать и вывод
& аи q[) ... (g;_i, au q\)^ai ... аи
где q'o=Po и qi=Ph- Поскольку (р, и, q)->v£P тогда
и только тогда, когда г; £2 и б (р, v) = q, имеем ql = qt
для всех i. Но из определенности грамматики G следует,
что существует единственный левосторонний вывод цепочки
(<7о> Яь <7i) ... (qt-i, at, qt) из а в G. Следовательно, вы-
— *A) - *B)
воды а =ф aY ... at и а =ф a4 . .. at не являются сущест-
существенно различными, что противоречит допущению. Таким
образом, КС-грамматика G является определенной.
Поскольку L[](Z*—M) = L—M и множество 2* — М
является регулярным, если множество М регулярно, имеет
место следующая теорема.
-Теорема 3.2.2 (о разности). Если L — некоторый
К С-язык и М — регулярное множество, то L — М есть
тоже К С-язык. Более того, из определенности языка L
следует определенность языка L — М.
Поскольку каждое конечное множество является регу-
регулярным, то справедливо также следующее утверждение.
3.2. Пересечение и разность 129
Следствие 3.2.1. Если М — конечное подмноже-
подмножество множества 2* и L — некоторый КС-язык, то
язык L — М является контекстно-свободным.
Пример. Пусть L — некоторый КС-язык и М — B2)*.
Поскольку М — регулярное множество, язык L [\ М является
контекстно-свободным. Таким образом, множество всех цепочек
контекстно-свободного языка, имеющих четную длину, тоже являет-
ся контекстно-свободным языком.
Упражнения 3.2
1 Пусть 2 = {а, Ь}. Показать, что язык {a^WaJ1 | i, /, /с!>1}—
— {ааЪпап | п >- 1} является контекстно-свободным.
2. Пусть L — некоторый КС-язык. Доказать, что в каждом
из перечисленных ниже случаев а, Ь, с, d множество / (L) тоже
является КС-языком; / (L) определяется как множество всех цепо-
цепочек языка L, которые
a. имеют общим началом цепочку и [GRo 2],
b. содержат данную подцепочку и [GRo 2],
. с. имеют вид ику где и — некоторая данная цепочка и к ]J> 1,
d. содержат по меньшей мере четыре вхождения данного сим-
символа а.
3. Пусть с — некоторый символ, не содержащийся в алфавите
2, и R — регулярное множество. Доказать, что язык L =
= {хсу | х, */£#, х Ф у} является контекстно-свободным [На 2].
(Указание: использовать упр. 2.5.6.)
4. Пусть L — линейный КС-язык и М — регулярное множе-
множество. Доказать, что L f) M есть линейный КС-язык.
5. Пусть М = (К, 2, Г, б, Zo, qOy F) — МП-автомат и А =
= (К, 2, 8ау Poj Fa) — конечный автомат. Пусть, кроме того,
М' = (К X КАУ 2, Г, 6М', Zo, (go» Po)y рХ FA) есть МП-автомат
и 6М, состоит из команд
V (Й. Р). *> 2) = {((</', бА (р, х)), а) | (<?', а) 6 б (?, х, Z)}
для всех троек ((q, р), ж, Z) £ (Z X #А) X B U {&}) X Г. Доказать,
что Т (M')=zT (М) О Т (А) (что представляет собой другое доказа-
доказательство первой части теоремы 3.2.1).
6. Пусть М = (К, 2, Г, б, Zo, ?o> F) — МП-автомат. Каждой
четверке (g, a> Z, g') ^IX(S UW) X Г X /^ сопоставим абстрактный
символ (#, a, Z, #'). Пусть 2 — множество всех символов (q, ay Z, §'),
У=2 U {о} U (К X &и{г})ХТ X К) и G=(V, 2, />, а), где Р содер-
содержит все правила следующих типов:
a. o—>(q0, a, Zo, ^) для всех а £ 2 (J {е} и q £ К.
130 Гл. 3. Операции над КС-языками
b. (q, a, Z, q')—>(q, a, Z, q') (qf, bk, Zk, qh) ... (q2, bit Zlf q
для всех qit ..., qk£K и blt ..., bftg2 (J {e}, если (?', Zj ... Z&)
£ б (q, a, Z), где к > 1 ж Zj^Y для всех i.
c. (g, a, Z, g') —> (g, a, Z, ^r), если (g'f e) g 6 (g, a, Z).
(i) Показать, что множество
# = {(?0> «0, ^0» 0i) (?ii «it ^Ь ?2> ••• fei-Ь «Л-it ^Л-it ?/i
является регулярным.
B) Показать, что Null (M) = t(L (G) П Д), где т есть гомомор-
физм, определяемый соотношением т ((#, a, Z, q')) — a для каждого
(g, a, Z, #') g 2 (что представляет собой другое доказательство
леммы 2.5.3).
3.3. Последовательностные преобразования
Языки программирования предназначаются для обще-
общения человека с устройством, перерабатывающим инфор-
информацию. В настоящем разделе мы рассмотрим часто встре-
встречающуюся в литературе модель простейшего из таких
преобразующих устройств — так называемый конечный
преобразователь. Затем мы изучим характер изменений,
претерпеваемых КС-языками в результате преобразований,
осуществляемых этим устройством.
Для удобства изложения мы введем некоторое вспомо-
вспомогательное устройство и получим для него один важный
результат. Это вспомогательное устройство, называемое
последователъностным преобразователем, обладает конеч-
конечным числом состояний, конечным числом входных симво-
символов и конечным числом выходных символов. Для некото-
некоторых комбинаций состояний и входных цепочек последова-
тельностный преобразователь (являющийся недетермини-
недетерминированным устройством) переходит в некоторое следующее
состояние и порождает некоторую цепочку на выходе.
Этому соответствует следующая формальная схема.
Определение. Последователъностным преобра-
преобразователем называется упорядоченная пятерка S =
= (£, 2, А, Я, s0), где
1) К — непустое конечное множество (множество со-
состояний);
2) 2 — алфавит (алфавит входных символов);
3) Д — алфавит (алфавит выходных символов);
8.3. По следовательно стНые преобразований 131
4) s0 6 К — (начальное состояние);
5)Н — конечное подмножество множества Zx2*X
X А* X К.
Тот факт, что некоторая четверка (р, и, и, q) принад-
принадлежит Н, означает следующее: если на вход последова-
последовательностного преобразователя S, находящегося в состоя-
состоянии р, подать цепочку и, то он перейдет в состояние q
и выработает выходную цепочку и. Недетерминирован-
Недетерминированность последовательностного преобразователя S выражает-
выражается в том, что для данной пары (р, и) может существовать
несколько пар (v, q), таких, что (р, и, v, q) £Н. Допу-
Допускается также преобразование пустой цепочки е в непустую
выходную цепочку.
Пример. Система (К, 2, А, Я, s0), где К = {s0, sb s2},
2 = {а, Ь}, А = {0, 1} и' Н = {E0, ab, e, s2), E2, аЪ, 0, si),
(«i, e, 1, 5t), (su Ь, 01, 52), E2, Ь, a, s4), (s2, ЬЬ, 010, s0)}, есть
последовательностный преобразователь.
Последовательностный преобразователь осуществляет
следующее отображение множества 2s во множество 2А*.
Определение. Пусть S = (К, 2, А, Н, s0) есть
последовательностный преобразователь. Пусть S (и) для
каждой цепочки и £ 2* есть множество всех цепочек у, для
которых существуют такие иь. . ., uk,£ 2*, уь. . ,,vk g A*
И 5Ь . . ., 5fe g Z, ЧТО М = М1в . . Uk, V = Vi ... yfe И (st, Ui + U
Vi + i, Sj + i) 6^ Ддя каждого £ @^ i^ к — 1). Далее, пусть
S (U) = \J S (и) для всякого f/e2*.
uGU
Определяемое таким способом отображение назовем
последователъностным преобразованием.
Таким образом, S (и) есть множество всех цепочек,
которые могут появиться на выходе последовательностного
преобразователя S, если на его вход подать цепочку и.
Пример. Пусть S — последовательностный преобразователь
из предыдущего примера. Рассмотрим множество S (ab). Поскольку
(«о» я&, е, s2) 6 Н, имеем г £ S (ab). Далее,
п раз
(«о, «Ь, 0, *i), EЬ е, 1, sO, ..., EЬ е, 1,
132 Гл. 3. Операции над КС-языками
есть последовательность четверок из Н для любого п ^ 0. Следо-
Следовательно, 01* £ S (ab). Других цепочек в S (аЪ) нет, так что
S (аЪ) = {г) U 01*.
Установим теперь следующий важный факт, связываю-
связывающий последовательностные преобразователи с КС-языками.
Теорема 3.3.1. Последователъностные преобразо-
преобразования сохраняют регулярность множеств и их свойство
быть контекстно-свободными. Точнее: если S есть после-
дователъностный преобразователь и L — регулярное мно-
множество (соответственно КС-язык), то S (L) — тоже регу-
регулярное множество (КС-язык).
Доказательство. Пусть S = (К, 2, A, H, s0).
Рассмотрим последовательностный преобразователь S' =
= (К', 2, Д\ Н\ 50), определяемый следующим обра-
образом: А; = AU{zo}, гДе zo € А* Множество Н' опреде-
определяется так:
a. (р, и, v, q) 6 Я', если | и |< 1 и (р, м, у, д) 6 Я.
b. Для каждой четверки г = (р, м, v, q) 6 Я, где
и = м4 ... Mfe(r)J Wj f 2, и для всех £ A < i ^ k (г))
и к (г) ^2 вводятся абстрактные символы *[, . . ., й(Г).
Во множество Я; будут входить все четверки (p,uly z0, ^), ...
• • •» 0&(r)-2» Wft(r)-i, z0, ^(r)_i), (^(r)-i, Uft(r), у, q)> Мно-
Множество iiT' состоит из элементов множества К и всех сим-
символов вида fj.
Пусть М есть множество всех цепочек из множества
Я;Я;*, имеющих вид
(«о, и>ь Уь »i) (su ™<l, У2, s2) . . . (sn_i, ы;п, yn, sn),
где yn Ф z0 и (^, u;f + 1) yi+i, si+1) g Я;. Пусть т — гомо-
гомоморфное отображение множества Я;*, определяемое сле-
следующими соотношениями: т ((р, ы;, г/, q)) = г/, если г/ ~£ z0,
т ((р, ы;, г/, д)) = 8, если у = z0. Для каждого LgH*
рассмотрим множество
для
3.3. Последователъностные преобразования 133
Из метода построения S' и М следует, что т (Ql(]M) =
= S (L). В силу теоремы о подстановке для завершения
доказательства достаточно теперь показать, что QL(]M
есть регулярное множество, если L регулярно, и яв-
является КС-языком, если L — КС-язык.
Рассмотрим множество М. Ясно, что Н'* — М являет-
является объединением множества {г} со всеми множествами
одного из следующих типов.
1. (р, и>, У, q) #'*, где (р, w, у, q) £Н' и р ф s0.
2. Н'* (р, w, у, q9) (qf, w', y\ q") Я;*7 где (р, w, у, q),
(q',w',y',q")eH' nq^q'.
3. Н'* (р, w, z0, q).
Поскольку каждое из множеств типов ^1, 2, 3 регулярно
и объединение регулярных множеств — также регулярное
множество, то И'* — М регулярно. Поэтому М тоже
регулярно.
Пусть, наконец, |х есть следующая подстановка: для
каждого ii£2
V.(u)={(p,E,y,q)eH'y{(p, и, y,q)eH'} {(p, 8, у, q)£H'}*.
Поскольку для каждого символа и £ 2 множество |х (и)
регулярно, то подстановка |х сохраняет свойства множеств
быть регулярными и КС-языками. Согласно теоремам 2.1.1
и 3.2.1, множество |х (L) [\ М является регулярным, если
L есть регулярное множество, и КС-языком, если L есть
КС-язык.
Рассмотрим множество QL П М; х £ QL [\ M тогда
и только тогда, когда х есть цепочка вида
(*) (so, wu yu st) . . . (sk, wk+u yk+u sh+i),
где (st, wi+i, yi+u si+i) 6 H' для каждого i, yn ф z0
и Wi . . . wh+1 6 L.
Возможны два случая.
A) Предположим, что е ig L. Тогда х имеет вид (^е)
и, следовательно, х £ \л (L) [\ М. Таким образом, в этом
случае Qh {] М = \i (L) {] М.
134 Гл. 3. Операции над КС-языками
B) Предположим, что е £ L. Тогда из того, что х имеет
вид (э|е), следует, что х £ RL, где
Таким образом, в этом случае QL f| M = i?L-
В обоих случаях множество ^L Ц М является регу-
регулярным, если L — регулярное множество, и КС-языком,
если L — КС-язык, что и завершает доказательство тео-
теоремы.
Последовательностный преобразователь представляет
собой устройство более общего типа, чем обычно требуется
для приложений. Наиболее часто используются последо-
вательностные преобразователи специального вида, а имен-
именно те, у которых множество Н удовлетворяет следующим
условиям.
1. Для любых р £ К и и £ 2 множество Н содержит
единственную четверку (р, и, v, q).
2. Для всякого р £ К четверка (р, е, е, р) принадле-
принадлежит Н.
В этом случае и и q для каждой пары (р, и) £ К X 2
определяются единственным образом — иначе говоря, vnq
являются функциями, определенными на К X 2. Обычно
эта ситуация описывается с помощью следующего опреде-
определения.
Определение Конечным преобразователем назы-
называется упорядоченная шестерка S = (К, 2, А, б, X, qi),
где
1) К есть непустое конечное множество (множество
состояний),
2) 2 — алфавит (алфавит входных символов),
3) А — алфавит (алфавит выходных символов),
4) б (функция переходов) — отображение множества
К х 2 во множество К,
5) X (функция выходов) — отображение множества
К х 2 во множество А*,
6) qi — выделенный элемент множества К (начальное
состояние).
Если X — отображение множества К X 2 во множество
А, то конечный преобразователь S называется синхрон-
синхронным.
3.3. Последователъностные преобразования . 135
Продолжим по индукции отображения X и 8 до отоб-
отображений множества f X И*, положив для каждого
состояния q £ К, каждой цепочки х £ 2* и каждого
a. 8(?,е)=дД(д,е) = е,
b. 6(q,xy)=8[8(q,x),y],X{<l,xy)=h (?>#) М%,я),у].
Нетрудно видеть, что условие Ь выполняется для
произвольных х, у £ 2*.
Заметим, что конечный преобразователь £ можно
рассматривать как последовательностный преобразова-
преобразователь (Я, 2, А, Я, ?1), где Я - {(р, е, е, р) | р £ #} U
U {(р, и, X (р, u), S (р, и)) | (р, и) 6 # X 2}.
Отображение, осуществляемое конечным преобразо-
преобразователем, может быть определено так.
Определение. Пусть S = (К, 2, А, б, X, gt)
есть конечный преобразователь. Отображение S (х) =
= X (qit x), определенное для каждого х £ 2*, назы-
называется конечным преобразованием.
Ясно, что конечное преобразование является и после-
довательностным преобразованием. Другими словами, ка-
каково бы ни было множество U ^ 2*, множество S (U)
является одним и тем же независимо от того, будем ли мы
рассматривать S как конечный преобразователь или
как частный случай последовательностного преобразова-
преобразователя. Таким образом, из теоремы 3.3.1 вытекает следую-
следующий результат.
Теорема 3.3.2 (о конечном преобразовании). Каж-
Каждое конечное преобразование сохраняет свойства множества
быть регулярным и быть контекстно-свободным языком.
Пример. Пусть S = {а, Ъ} и X = {(ab)n (Ьа)п ап \ п > 1}.
Пусть S = {К, 2, 2, б, X, pi) есть конечный преобразователь,
где К — {pi, P2, Рз}> б (pi, а) = р2» ^ (Рь Ь) = рз, б (р2, а) = /?2,
^ (Р2» Щ = /?1, б (рз» а) == Рь б (рз, &) = рз? X (pi, a) = а,
X (рь Ь) = Ь,К (р2, в) = аД (Р2> Ь) = еД (р3, а) = еД (р3, Ъ) =
= Ъ. Согласно теореме 3.1.1, множество S (X) = {anbnan | п ^ 1}
не является КС-языком. Поэтому и X не есть КС-язык. Отметим,
что этот результат нельзя получить с помощью операции подста-
подстановки.
136 Гл. 3. Операции над КС-языками
Замечание. Теорема о конечном преобразовании
является третьим основным фактом, связывающим авто-
автоматы и КС-языки (другие два — это теорема 2.5.2 и тео-
теорема о пересечении). Имеется и ряд других, менее важных
результатов, устанавливающих связи между теорией авто-
автоматов и теорией КС-языков (например, теоремы 3.5.1
и 4.3.2). Безусловно, эти теории очень тесно связаны
между собой.
Кроме чисто теоретического значения, которое имеет
теорема 3.2.2 как инструмент для преобразования одних
КС-языков и регулярных множеств в другие, она имеет
и определенное эстетическое значение. В ней утверждает-
утверждается, что конечный преобразователь (который моделирует
некоторые черты вычислительной машины) перерабатывает
КС-язык (который моделирует некоторые черты языка
программирования) также в КС-язык.
Возникает вопрос, сохраняется ли свойство языка
быть контекстно-свободным (или быть регулярным мно-
множеством) при отображении, «обратном» конечному преоб-
преобразованию. Сейчас мы увидим, что и этот вопрос решается
положительно.
Теорема 3.3.3. Пусть S = (К, 2, А, б, Я, qj
есть конечный преобразователь и S'1 — операция, кото-
которая, будучи применена к произвольному множеству X s Л*,
дает множество S (X) = {w £ 2* | S (и?) £ X}. Тогда,
если X есть КС-язык (регулярное множество), S~x (X) —
тоже КС-язык (регулярное множество).
Доказательство. Рассмотрим, последователь-
ностный преобразователь S' = (К, А, 2, Н, q^), где
Н состоит из следующих четверок:
a. (р, е, 8, р) для всех р £ К,
b. (р, К (р, х), х, б (р, х)) для всех (р, х) £ К X 2.
Ясно, что S' (X) = S~x (X) для всякого X s А*. Остается
воспользоваться теоремой 3.3.1.
Замечание. Теорема 3.3.3 не может быть рас-
распространена на последовательностные преобразователи.
Другими словами, если£—последовательностный преобра-
преобразователь и L — КС-язык, то язык {w | S (w) s L} в общем
случае не является контекстно-свободным. Пусть, напри-
3.3. Последовательностные преобразования 137
мер, S = ({gb q2}, 2, 2, Я, qt), где 2 = {а, Ь, с, d)
пН = {(qu е, c,g2), (?i, e, d,g2), (g2, a, a,q2), (g2, 6, 6,g2)}.
Пусть £, = {ca'bV | *, / > 1} U {d^bV И, / > 1}. Тог-
Тогда, согласно теореме 3.1.1, язык {w \ S (w) ^ L) =
= {anbnan \n^-l} не является контекстно-свободным.
Тема для исследования. Пусть 1^ и L2 —произвольные КС-язы-
КС-языки. Будем писать Li <; L2, если существует конечный преобразова-
преобразователь, отображающий Li на L2, но не существует конечного преоб-
преобразователя, отображающего L2 на Li. Что можно сказать об отно-
отношении <; ? Например, верно ли, что для каждого КС-языка L
существует КС-язык Z/, такой, что Z/ -< L?
Упражнения 3.3
1. Пусть S = (X, {а, Ь}, {0, 1}, Я, 52) есть конечный преоб-
преобразователь, а множества к и Я те же, что в первом примере настоя-
настоящего раздела. Найти (а) S (a), (b) S (Ь) и (с) S (bbab).
2. Доказать, не используя теорему 3.3.1, что, каковы бы ни
были конечный преобразователь S и цепочка и, множество S (и)
является регулярным.
3. Пусть 2 содержит не менее двух символов. Показать, что
не существует последовательностного преобразователя S, такого,
что S (w) = wR для каждой цепочки w £ 2* [ЕМ].
4. Показать, что существуют последовательностные преобра-
преобразователи Si = (К1у 2, Л, Ни Ро) и £2 = (К2, А, Г, Я2, %)»
такие, что, каков бы ни был последовательностный преобразова-
преобразователь S, равенство S (w) = #2 [Si (w)] не может выполняться для
всех цепочек w £ 2*. (Указание: Si и £2 можно взять, например,
такими: Si (е) = {a}, Si = 0 в остальных случаях, £2 (а) = а*Ь,
£2 = 0 в остальных случаях.)
5. Пусть £ = (Ку 2, Л, Я, qi) — последовательностный пре-
преобразователь. Назовем последовательностным преобразователем,
обратным для S, преобразователь S'1 = (К, Л, 2, Я', qi)> где
(р, ж, у, ?) 6 Нг тогда и только тогда, когда (р, г/, ж, д) £ Я.
Показать, что у £ S (х) тогда и только тогда, когда х £ S'1 (у).
6. Пусть / — операция, преобразующая е в е, каждую цепочку
xi • • • яд (я* 6 2) в цепочку #2 #4 • • • хг% • • • • Доказать, что /
является конечным преобразованием.
7. Пусть п > 1 и alt . . ., an — абстрактные символы.
Доказать, что существуют конечные преобразователи S и Г,
такие, что 5 ({аь а2}*) = {аь . . ., ап}* и Г({аь . . ., ап}*) =
= {ai, a2}*.
8. Доказать, что, каковы бы ни были конечный преобразова-
преобразователь S и символ с G 2, множество {#c£(#)R | # £ 2*} является
КС-языком. {Указание: следует рассмотреть КС-грамматику,
138 Гл. 3. Операции над КС-языками
которая для всякого состояния s имеет правила s ->- хд (s, x) X (s, x)R
и s ->- с.) Можно ли распространить это утверждение на множество
{xcS(x)R | х £ £/}, где U — некоторое регулярное множество?
9. Пусть 2 = {аи . . ., ап, а, Ь, с}. Показать, что для любых
двух систем (wu . . ., wn) и (г/ь . . ., уп) непустых цепочек в алфа-
алфавите {а, Ъ) множества
a) {ah ... aipcajq ... ah \ wi± ... wip = yh ... yjq}
b) {ah ... aipcajq ... ajx | wix ... i^p =£ ^ ... yjq}
являются КС-языками.
10. Пусть 2 = {a, Ь, с}. Построить конечный преобразова-
преобразователь, отображающий язык L\ = {an6nan | п >- 1} на язык L2 =
= {anbncan | w >- 1}. Используя теорему 2.3.2 и упр. 2.1.6, дока-
доказать, что язык L2 не является контекстно-свободным. (Этот резуль-
результат вместе с теоремой 3.3.2 дает новое доказательство теоремы 3.1.1.)
11. Показать, что конечное преобразование, вообще говоря,
не сохраняет свойства языков, состоящего в том, что как сам язык,
так и его дополнение до множества 2* являются КС-языками.
(Указание. Пусть 2 = {а, Ь, с, d, е, /} и L = {а^с^ | i Ф /*,
*, /, Л > 0} U {д>еЦк | / ^ /с; *, /, /с > 0}. Тогда L и 2* — L =
= B* - (a*b*c* U d*e*/*)) |J {a^icfe | U U k > 0; i = /} U
U {dleifk | i, /, /c !> 0; / = /с} оба являются КС-языками. Пусть S
есть конечный преобразователь с одним состоянием, отображающий
ава, ЬвЬ, ев с, d в а, е в b n f в с. Тогда S (L) = {albhk \ i Ф j
или / =^ Л; i, /, А: > 0} есть КС-язык, но 2* — 5 (L) =
= {а*Ь*с* | i > 0} U B* — a*6*c*) — не КС-язык.
12. Доказать, что если 5-конечный преобразователь и L —
линейный язык, то 5 (L) есть тоже линейный язык.
13. Пусть L — определенный КС-язык и 5 — конечный пре-
преобразователь. Доказать, что КС-язык S~x (L) — тоже определен-
определенный [GU 2, На 2].
14. Доказать, что для любых конечных преобразователей S и Т
каждое из следующих множеств является КС-языком.
a. {х\ \S(x) | = | Т(х) |}.
b. {х\\й(х)\ф\ Т(х) |}.
c. {х \8{х)ф Т{х)).
В частности, {х | S (х) Ф х) есть КС-язык. (Указание. Постройте
соответствующий МП-автомат.)
15. Показать, что для всякого регулярного множества R най-
найдется конечный преобразователь 5, такой, что {х | S (х) Ф х) = R.
16. Показать, что не существует конечных преобразователей
S и Г, таких, что {an6n | п > 1} = {ж | 5 (ж) ^fc Г (х)}.
17. Пусть М=(£, 2, Г, б, Zo, g0. Л — МП-автомат, 2ПГ=-^
и С/ с 2* — регулярное множество. Пусть, кроме того, N'=(KNj 2,N,
Tjy, дн, Zq, eQ, {e2}) естг МП-автомат, такой, что KN = K (J
3.3. Последовательностные преобразования 139
Ufa), eu е2}(е0, еи e^K), 2N = 2 U К 1} U Г (c/gSUT),
r^v —Г U {Z*} (Z* e Г) и 6jv определяется следующим образом
Ь, а и 2 обозначают произвольные элементы К, 2 и Г соответст-
соответственно): б^ (е0, /, Zo) = {(go, Z*Z0) \qo£F})J (p, Z^v) | (p, Y) g
g6(g0, e, Zo)}, 6iv(e0, «, ^o) = {(/>. ЗД|(р, Y)efi@o. «. Zo)},
б^(?, a, Z) = 6(g, a,Z), 6^ (g,/,Z) = 6(g,e, Z), 6^ (q, c, Z) = {(*lf Z)},
6;v(<7, c, Z*) = {(eii Z*)}, 6^, Z, Z) = {(elf 8)} и б^(еь 8, Z*) =
= {(e2» e)}« Рассмотрим гомоморфизм / множества B1J{/})* на мно-
множество 2*, определяемый следующими соотношениями: f(a) = a
для всех а£ 2, /(/) = е. Положим теперь H = f~i(U) с Г* Г) ЗГ (#),
Ty = {YR | w;cy g Я для некоторой цепочки м?}. Доказать, что
a) ТУ есть регулярное множество (Указание: использовать
теорему 2.3.2.),
b) W = {у\ (q0, и, Zo) \±j (q, 8, у) для некоторых u£U
И q£K} [Gr6].
18. Пусть (К, 2, Г, б, Zo, qOi F) есть МП-автомат и А =
•-= (КА, 2, бА, р0, FA) — конечный автомат. Каждой тройке сим-
символов р £ ХА, ^ G # и Z £ Г сопоставим абстрактный символ
[Pi q, Z] £ Г. Рассмотрим такое к, что для всех q £ К, х £ 21J {&},
Z £ Г и (#', г/) £ б (#, ж, Z) имеет место | г/ | <! к. Пусть G =
= G, Г, Р, [р0, ?о, Zo]), где Р = {[р, ?, Z] -> у | | у | < /с,
бА (р, ж) £ FA, (9, ж, Z) |— (г, 8, у) для некоторых х £ 2* и
г е а:} и {[Р, ?, z]->v[P', ^', z'] 1 |v |<л, бА(р, и) = Р',
(q, u, Z) |— (q\ s, vZ') для некоторого и £ 2*}. Доказать, что
L (G) = {у | (q0, и, Zo) |— (q, 8, у) для некоторых и £ Г (Л)
и ^ £ X}. (Упражнения 17 и 18 представляют собой доказа-
доказательство того, что если (К, 2, Г, б, Zo, #o» F) есть МП-автомат
и U — регулярное множество, то множество {у | (qOi u, Zo) |—
|— (?» е, у) для некоторых и£ £/и^£Х} тоже .регулярно.)
19. Пусть G — G, 2, Р, а) — произвольная порождающая
грамматика и X = {wRaR d$wd \ w g 7*, a -> P £ P}* e, где
d, e £ 7. Пусть (X, 7 |J {d, e), V [j {Zo, _e}, 6, Zo, g0. ^) есть
МП-автомат, такой, что К = {#о> 9ь 92}» ^0 £ 7 и б определяется
следующим образом (хну — произвольные элементы соответствен-
соответственно множеств 7 и 7 U {Zo }):
б (qOi a, Zo) = {(qu Zo)}., 6 (qu x, x) = {(glf e)},
5 (gi, d, I/) = {(^2» У))' б (?ь е, У) = {(q )}
6 (q2, x, У) = {fe, уж)}, б (g2, d, У) = {(
а. Доказать, что Х есть КС-язык.
b. Доказать, что Zo {w £ 7* | а^> w;} е = {у \ (q0, х, Zo) |^-
|— (г, е, у) для некоторых х £ X и г £ К).
c. Доказать, используя упр. 1.1.4, что существует КС-язык X
и МП-автомат (К, 2, Г, б, Zo, qOi F), такие, что язык
(Y I (Q01 х-> Zo) \— (г, в, у) для некоторых х £ X и г £ К) пе являет-
является контекстно-свободным,
140 Гл. 3. Операции над КС-языками
3.4. Характеристика конечного преобразования г)
Ввиду важности теоремы о конечных преобразованиях
нам кажется полезным попытаться как-то охарактеризо-
охарактеризовать те отображения, которые являются конечными пре-
преобразованиями. Этому и посвящен настоящий раздел.
Предположим, что отображение / является конечным
преобразованием. Тогда
1) / переводит начальную подцепочку в начальную
подцепочку, т. е. если и есть начальная подцепочка
цепочки р, то / (и) есть начальная подцепочка цепочки
2) / имеет ограниченное удлинение, т. е. существует
число М, такое, что | / (wa) \ — \ f (w) \ ^ М для всех
w е 2* и а е 2,
3) / (е) = в,
4) множество f~l (R) является регулярным, каково бы
ни было регулярное множество R.
Сейчас мы докажем, что имеет место и обратное: если
отображение / удовлетворяет условиям 1—4, то оно
является конечным преобразованием.
Теорема 3.4.1. Отображение f множества 2*
во множество А* является конечным преобразованием тогда
и только тогда, когда (а) / переводит начальную подцепоч-
подцепочку в начальную подцепочку, (Ь) / имеет ограниченное удли-
удлинение, (с) / (е) = 8, (d) множество f'1 (R) является регу-
регулярным, каково бы ни было регулярное множество R ^ А* :
Доказательство. Достаточно доказать, что
если / удовлетворяет условиям а — d,, то существует
конечный преобразователь S = (К, 2, A, S, X, д4), такой,
что / есть конечное преобразование, осуществляемое
преобразователем S.
Согласно Ь, существует число М такое, что
A) | / (wa) | - | / И | < М
для любых w£2* и а£2. Пусть U (a, w) =
м
= {w £ S* | / (иа) = / (и) w} для любых w £ U AJ
3=0
и а £ 2. Сначала докажем, что
B) множество U (a, w) регулярно.
г) Этот раздел при первом чтении может бьггь опущен.
3.4. Характеристика конечного преобразования 141
Для этого положим ga (X) = {и | иа £ X) для любых
а £ 2 и X ^ 2*. Нетрудно видеть, что ga (X) =
= IT ([X{] 2olR)]R, где Т — конечный преобразователь
({Ри РгЬ 2, S, 8Г, Хт, рО, такой, что бт (рь а) =
= йг {ри ъ) = Р2 A = 1» 2); ^г (Рь о) = е, А,т (рь Ь) =
= А,т (р2, Ь) = b и А,т (р2, а) = а х). Таким образом,
множество ga (X) является регулярным, если регулярно
множество X.
Пусть А* = (Дм-М)* А' для каждого t @ < t < М) и
м
F(a, w)= U [^[/
м
для любых ag2 nu;f U AJ. Из d и из того, что множе-
j= о
ства А^ и А^ являются регулярными, вытекает .f регу-
регулярность множества V (a, w). Рассмотрим произвольную
м
цепочку и из множества U (a, w). Поскольку (J Д* = Д*,
существует некоторое t, такое, что f (и) £ At и, следова-
следовательно, и g Z (Дг). Поскольку / (иа) = f(u)w£ Atw, имеем
ua^f'1 (Atw) и u£ga [f'1 (Atw)]. Таким образом, U (a, w) ^
cF (а, м;). Теперь рассмотрим произвольную цепочку
и £ F (a, w). Найдется такое £, что a g ga [Z (Дtw)]
и ^^/^(Д^). Отсюда вытекает, что иа£^г(Аги;) и, сле-
следовательно, f(ua)^Atw и f(u)£At. Тогда для некоторых
чисел /г и i
C) | / {иа) [ = /г (М + 1) + t + | w \ ,
D) | / (и) | = i (М + 1) + t.
Из Ь и а следует, что / (иа) — f (и) v для подходящей
цепочки и, | v | ^ М. Таким образом,
E) | / (иа) | = ъ (М + 1) + t + | р | .
Поскольку \v \ у | г^ | ^ М, из 3 и 5 следует, что | w \ =
= | и | . Отсюда в свою очередь w = v 2), так что / (иа) =
= / (a) w. Таким образом, и £ U (a, w). Итак, С/ (а, м;) =
= V (a, w), что и доказывает B).
Рассмотрим конечное множество всех подстановок т,
м
таких, что т (а) £ (J Ад для каждого a £ 2. Для каж-
. 3=0
х) Имеется в виду любое Ь £ 2, Ъ ф а,— Прим. перев.
2) Поскольку обе цепочки w и v являются концами цепочки
/ (иа).—Прим. ред.
142 Гл. В. Операции над КС-языками
дой такой подстановки т рассмотрим множество
г7(т) = {и6 2*|/(иа) = /(и)т(а) для всех а £ 2}.
Из B) и из того, чтоС/(т)= fl U (а, т(а)), следует, что
£2
множество U (т) является регулярным. Нетрудно видеть,
что множества U (т) попарно не пересекаются и объеди-
объединение их есть 2*. Рассмотрим для каждой подстановки т
конечный автомат АХ = (КХ, 2, 6t, pt, Fx), такой, что
Т (Ах) = U (т). Пусть Ti, . .., тг — все рассматриваемые
подстановки т. Рассмотрим систему 4 —(Z, 2, 6А, рА,
#!, ..., Яг), где рА = (pTl, ..., рТг), К = ZTl х ... Х^тг,
*a((Pi, ...» Рг), a) = FTl(pi, a), ..., бТг(рг, а)) для каж-
каждого вектора {ри ..., рг)£К и каждого а£2, и для
каждого i Hi=HnX ... ХН(Г, где Hij = Kx. — Fx., если
г^у; Htj=Fx., если i = j\ Тогда {Я^|1<г<г} есть
семейство попарно не пересекающихся подмножеств мно-
множества К, и ^6^(т0 тогда и только тогда, когда
&а(Ра, x)£Hi (упр. 3.4.1). Наконец, пусть S есть конеч-
конечный преобразователь (К, 2, А, бА, К, рА), такой, что
k(p, a) = %i(a) для . всяких р£К и а^2, если p£Ht,
и К (р, а) = е, если р£К— \]Нг.
г
Осталось показать, что К(рА, x)=f(x) для всех цепо-
цепочек х. Прежде всего ясно, что А,(рА? е)=/(е)=е. Пред-
Предположим, что К (рА, x) = f (x) имеет место для всех
цепочек длины, не превышающей s. Рассмотрим а £2
и К(рА, ха). Ясно, что
X (рА, ха) = К (рА» ^) Ь [6а (Ра» ж), а] = / И Я [бА (рА, ж), а].
Рассмотрим такое i, что ж g U (т^). Тогда бА (рА, х)£(
Значит %i (a) = Я [бА (рА, х), а] по определению X. По-
Поскольку #£E/(Tf), то
/ (ха) = f (x) %t (a) =f(x)k [бА (ра, х) , а] = К (рА, ха),
что завершает доказательство теоремы.
В связи с теоремой 3.4.1 возникает ряд вопросов.
Можно ли в формулировке этой теоремы заменить регу-
регулярные множества КС-языками? Верна ли теорема, если
/ (R) является регулярным множеством для каждого
регулярного множества Ю Верна ли теорема, если / (R)
ЗЛ. Характеристика конечного преобразования 143
является КС-языком для всякого КС-языка R? Является
ли пункт Ь несущественным? Ответы на все эти вопросы
являются отрицательными.
Пример. Пусть 2 = {а, Ь}, Л— {а} и/ есть отображение
множества 2* во множество Л*, определяемое следующим обра-
образом: / {а1) = al\ f (albw) = a2i для любых }>0им;^2*. Нетрудно
показать, что / переводит начальные подцепочки в начальные под-
подцепочки. Поскольку / (а1) = а1 и / (агЪ) = a2i, т. е. | / (агЪ) | —
— I / (ai) I — h f не имеет ограниченного удлинения и, следова-
следовательно, не является конечным преобразованием.
Перейдем к доказательству существования отображе-
отображения /, которое не является конечным преобразованием
и тем не менее переводит начальные подцепочки в началь-
начальные подцепочки, имеет ограниченное удлинение, отобра-
отображает регулярные множества на регулярные множества
и так же, как и /~х, отображает КС-языки на КС-языки,
Докажем сначала одно вспомогательное утверждение.
Лемма 3.4.1. Пусть R — некоторое регулярное
множество. Тогда существуют регулярные множества
Uи • • •» UT, Vu . . ., Fr, обладающие следующими свой-
свойствами,
a. U UtVi = R.
b. Для любых цепочек и и и, таких, что uv £ R, сущест-
существует такое число /с, что и £ Uk и и £ Vk.
Доказательство. Пусть А = (К, 2, б, ри F) —
конечный автомат, такой, что R = Т (А). Пусть ри ...
. . ., рт £ К и для каждого i
Ut^ {и е 2*| б (a, u) = pt)
и
Нетрудно видеть, что системы множеств {Ut} и {F^} удо-
удовлетворяют условию леммы.
Пример. Пусть 2 = Д= {а, Ь}. Положим / (albvw) =
= a2i+1b|w|, если | i; | = i > 0, и / (ж) = а|л| в противном случае.
Нетрудно видеть, что / отображает начальные подцепочки в началь-
начальные подцепочки и имеет ограниченное удлинение. Мы докажем,
что / отображает регулярные множества на регулярные множе-
144 Гл. 3. Операции над КС-языками
ства, но не является конечным преобразованием. В упр. 5.3.5
читателю будет предложено доказать, что и / и /-1 отображают
КС-языки на КС-языки.
Пусть g есть отображение 2* в себя, определяемое следующими
соотношениями: g (а1) = а1 и g (ajbw) = а*&|ад1+1, i > 0. Заметим,
что отображение g реализуется конечным преобразователем Т =
= (Кт, 2, 2, бг, %т, р^, где Кт = {ри р2), бг (р4, а) =ри
&т — Р2 в остальных случаях; %т (р1? а) = а и %т = Ь'в остальных
случаях.
1. f (x) — fg (х) для всякого х. В самом деле, если х = а1,
то / (al)=fg (а1); если - # — albw, где |и?К«, то f (х) = а)х1 =
= f (агЪЪм) = fg (х); если х = a^bw, где | w \ > г, то / (ж) = а^^Ь^1'1 =
= /(а*ЬЬ^) = Л(«).
2. / не является конечным преобразованием. Предположим, что
существует конечный преобразователь S = (£, 2, Л, б, К, Pi),
такой, что / (х) = Х (Pi, x) для каждой цепочки х £ 2*. Пусть
# — {Pi, ...,Р^}« Тогда существуют числа i и/ A <^< + /<!+l)
такие, что б (р1? а*) — б(р1? ai+J). Имеем теперь
откуда
Я, [6 (р1? ai+^),
Получаем далее
) = Л,(р1, а*) Л, [б (/?!, а!), a*+i-Wfrt+2] =
что невозможно.
3. / отображает регулярные множества на регулярные множе-
множества. Пусть Л — некоторое регулярное множество; поскольку g
есть конечное преобразование, множество g (R) с а*Ь* является
регулярным. Поскольку языки {alb? \ j <! i + 1} и {albJ \ j >
> i + 1} являются контекстно-свободными, то и языки
являются контекстно-свободными. Пусть т — гомоморфизм, ото-
отображающий каждый из символов а и b в а. Поскольку / (Л4) =
= т (Л4), язык / (Л1) с а* является контекстно-свободным. Тогда
вследствие теоремы 3.1.2 множество / (Л4) является регулярным.
ЗА. Характеристика конечного преобразования 145
Поскольку g (Л) = Л4 U #2 и / (Л) = fg (Л) = / (Л! U Л2) =
= / (#i) U / (^г)' нам остается доказать только регулярность
множества / (Л2).
Рассмотрим множество / (Л2). Из регулярности множества
# (Л) и леммы 3.4.1 вытекает существование регулярных множеств
U\, . . ., Ur и Vi, . . ., Vr, удовлетворяющих условиям (а)
г
U C/iVj = g (Л) и (Ь) для любых цепочек и и и, таких, что и и £ Л,
г=1
существует такое число г, что и £ Ut и у £ Vf. Пусть U'kb =
г
= Uk 0 {albi+2 \i > 0} для каждого А: и Л3= U U'kbVk. Из регу-
лярности множества Uh вытекает, что множества U'kb и U'h являют-
являются КС-языками. Ясно, что Л3 £ R2. Пусть w £ R2- Тогда w = uv,
где и = albi+2 для некоторого i и у = bh для некоторого Д > 0.
Поскольку w £ g (Л), имеет место и £ Ukn v £ Vk для некоторого /с.
Отсюда и £ С7^6 и, следовательно, wr £ U'hbVk с Л3. Таким обра-
г
зом, Л2 с Л3 и, следовательно, Л2 = U ^bVj. Пусть ц есть гомо-
г=1
морфизм, отображающий как а, так и Ъ в Ь. Тогда / (C^bVfe) =
= т (Uk) \i (bVk) для каждого fc.(l < /с < г). Язык т (C/ft) с а*
является контекстно-свободным и, следовательно, регулярным
множеством. Из регулярности множества \i (bVk) вытекает регуляр-
регулярность множеств / (UkbVk) и, наконец, множества / (Л2) =
= U f(u'hbvk).
Открытые проблемы. 1. Пусть / есть взаимнооднозначное ото-
отображение множества 2* во множество Л*, имеющее ограниченное
удлинение, отображающее начальные подцепочки в начальные под-
подцепочки и регулярные множества — на регулярные множества.
Будет ли / конечным преобразованием, если / (е) = е ?
2. Охарактеризовать те подмножества ^множества 2* X Л*,
для которых отображение /, определяемое!условием (х, f (x)) £ Х>
является конечным преобразованием. (Предполагается, что какова
бы ни была цепочка х, из того, что (х, у) £ X, (х, z) ^ X, следует
У = *•)
Упражнения 3.4
1. В условиях теоремы 3.4.1 и обозначениях, использовавшихся
в ее доказательстве, доказать, что некоторая цепочка х тогда
и только тогда принадлежит множеству U (rt), когда бА (рА, х) £Нг.
2. Показать, что отображение / из первого примера настоящего
раздела, равно как и отображение /~х, переводит регулярные мно-
множества в регулярные множества и КС-языки — в КС-языки
[ГРо 1].
146 Гл. 3. Операции над КС-языками
3. Пусть / есть следующее отображение: / (а) = Ь, / (Ь) = а,
/ (х) = х для всех х £ {а, &}* — {а, &}. Показать, что и /, и /~х
отображают регулярные множества на регулярные множества
и КС-языки — на КС-языки. Отображение / не является конечным
преобразованием, так как оно, вообще говоря, не переводит началь-
начальные подцепочки в начальные подцепочки.
4. Пусть 2 = {а} и Л = {а, Ь}. Показать, что не существует
отображения / множества 2* во множество А*, которое отображало
бы начальные подцепочки в начальные подцепочки и множество
аа* на множество а*Ь.
5. Пусть L = {а, 6}*с, где а, Ь, с — различные символы,
и Л1? #2 — множества, для которых существуют конечные пре-
преобразователи Si и £2> такие, что Si (L) = ^ и ^ (L) = Я2- Пока-
Показать, что для каждого из следующих множеств R существует конеч-
конечный преобразователь S, такой, что S (L) = R:
a. R = {ш}, где w — некоторая цепочка.
b. R = #! у л2.
c. R = RiR2.
d. Л = Я?.
Отсюда, в частности, следует, что для всякого непустого регуляр-
регулярного множества R существует конечный преобразователь S, такой,
что S (L) = R.
6. Пусть 2 = {а, Ь, с}. Показать, что ни для одного из сле-
следующих множеств R не существует конечного преобразователя S,
такого, что S (R) = {а, Ь}* с:
a. R = {а, Ь}*.
b. R = {а, Ь}* - {е}.
7. Пусть / — взаимно однозначное отображение множества 2*
во множество Л*, отображающее начальные подцепочки в началь-
начальные подцепочки, регулярные множества на регулярные множества
и сохраняющее длины цепочек. Показать, что отображение /
реализуется синхронным конечным преобразователем.
8. Найти взаимно однозначное отображение, не являющееся
конечным преобразованием и тем не менее отображающее началь-
начальные подцепочки в начальные подцепочки и регулярные множества
на регулярные множества.
3.5. Преобразователи с магазинной памятью
Всякий конечный преобразователь представляет собой
в сущности конечный автомат, снабженный выходом.
В некоторых ситуациях, возникающих в процессе обра-
обработки информации, выходом снабжается МП-автомат.
(Имеется, например, такой подход к задачам программи-
программирования, при котором, как правило, МП-автомат, рас-
распознающий некоторый КС-язык L (G), снабжается выхо-
3.S. Преобразователи с магазинной памятью 147
дом так, чтобы для каждой цепочки w £ L (G) на выходе
появлялись ее выводы в грамматике G.) Получаемое
таким образом устройство называется преобразователем
с магазинной памятью. Ниже мы увидим, что в общем слу-
случае преобразователь с магазинной памятью не отображает
КС-язык на КС-язык. Однако если L есть некото-
некоторый КС-язык, распознаваемый МП-автоматом М, и пре-
преобразователь с магазинной памятью S в некотором естест-
естественном смысле согласован с М, то множество всех выход-
выходных цепочек, входами для которых служат цепочки # £ L,
является КС-языком.
Приведем формальное определение преобразователя
с магазинной памятью.
Определение. Преобразователем с магазинной
памятью (сокращенно МП-преобразователем) называется
упорядоченная восьмерка S = (К, 2, Г, Д, |х, Zo, д<ь F), где
1) К, 2, Г, Zo, F и д0 имеют то же значение, что
в определении МП-автомата;
2) А — алфавит (алфавит выходных символов);
3) \i — отображение множества К X B |J {e}) X Г
во множество конечных подмножеств множества
К X Г* х А*.
В интерпретации (р, а, у) £ |х (g, #, Z) для любой
тройки (д, х, Z) £ К X B U {е}) X Г означает, что
МП-преобразователь в конфигурации (g, x, Z) имеет воз-
возможность перейти в состояние р, записать в магазинную
память цепочку а вместо «верхнего» символа Z и написать
цепочку у на выходе.
Приведем формальное описание способа функциони-
функционирования МП-преобразователя.
С и с f е м a J о б~о з н а^ч е н и й х). Пусть S =
= (К, 2, Г, А, |х, Zo, go* F) есть .> МП-преобразователь.
Через |-|- (или |—, когда S подразумевается) обозначим
следующее отношение на множестве К X 2* X Г* X А*.
Если (д, у, i/j) £ jx (р, х, Z) для некоторых р £ К, Z £ Г
1) Ср. с соответствующей системой ^обозначений для МП-авто-
МП-автомата.
14в Гл. 3. Операции над КС-языками
и х £ 2 U {е}, то для любых м;£Е*, а£Г* и у £ Д*
имеет место (р, ям;, ocZ, г/) |—(g, w, осу, г/г/i). По определе-
определению для любых р, w, а, у полагаем (/?, w, a, у) \—
\±- (р, и;, а, у). Далее, пусть а, |3 £ Г*, у, у' £ А* и а^ 6 2 U
U {е} для всех i (I ^ i ^ к). Тогда по определению
имеет место (р, xt . . . жЛи?, а, г/) |—^- (^, w, |3, г/'), если
существуют состояния pi = р, . . ., p&+i = q £ К и це-
цепочки ai = а, . . ., afe+i = р 6 Г* и yi = у, . . .,
= у' £ А*у такие, что
(рг, xi ... xkw, at, yi) \— (рг+1, ^+1 . . . xkw,
для всех i (l<i</c). Обычно это записывается в виде
(Pi, ^ . . . хАш, аи yt) |—(рг, ^2 ... жАи?, а2,
Пусть /S = (Z, 2, Г, Д, (я, Zo, g0» Л — некоторый МП-
преобразователь. Для каждой цепочки х £ 2* через
£ (х) обозначим множество {у £ А* | (д0, #, Zo, e) |—
|-^-(?, е, а, у) для некоторой пары (g, a)ff X Г*}.
Таким образом, отображение S (х) множества 2*
во множество 2А* — это отображение, реализуемое МП-
преобразователем S (мы будем называть S(x) МП-преоб-
МП-преобразованием).
По аналогии с теоремой о конечных преобразованиях
возникает вопрос, сохраняет ли МП-преобразование свой-
свойство языков быть контекстно-свободными. В общем случае
ответ является отрицательным.
Пример. Пусть S = (К, 2, Г, A, \i, Zo, qQi {q3}) — МП-пре-
образователь, такой, что К = {qo, qi, q^, qz), 2 = {a, Ь, с},
Г = {a, b, Zq}, A = {a, Ь, с) и \i определяется следующим обра-
образом: ii(qOi a, Zo) = {(gi, Zo, a)}, ^ (?u a» zo) = {(qi, ^оа, a)},
p. Й1. b, Zo)|= {(g8, zo, Ь)}, И- (?ь a, a) = {(qi, aa, a)},
\i (qi, b, a) = {(q2, 8, 6)}, p, (g2, Ъ, a) = {(g2, 6, 6)}, p, (g2, bf Zo)=
{( Z, 6)}-хи p. foe, c, Zo) = {fe, Zo, с)}1). Пусть L =
| i, />1}. Тогда, как нетрудно видеть, S (L) =
{| i >- 1}. Таким образом, £ (L) не является КС-языком,
в то время как L есть КС-язык.
х) Если при задании отображения \i для некоторых q £ К,
a£2 (J {е}и2£Г значение не указывается, то подразумевается,
что \i (q, a, Z) = J2T.
3.5. Преобразователи с магазинной памятью 149
Итак, язык S (L) не обязательно является контекстно-
свободным, если S — МП-преобразователь и L — КС-
язык. Имеется, однако, интересный случай, когда МП-
преобразователь сохраняет свойство языка быть кон-
контекстно-свободным. Именно это имеет место, если S полу-
получается добавлением выхода к некоторому МП-автомату,
допускающему КС-язык L. Для того чтобы сформулиро-
сформулировать этот результат, нам потребуется следующее понятие.
Определение. МП-автомат М = (К, 2, Г, б,
Zo, q0, F) и МП-преобразователь S = (К, 2, Г, А,
(я, Zo, qo, F) называются согласованными, если б (q, х, Z) =
= {(Рг а) | (р, а, у) 6 М< (д, х, Z) для некоторого г/ 6 А*}
для каждой тройки (q, x, Z) £ К X B (J {е}) X Г.
Для каждого МП-преобразователя £ существует един-
единственный согласованный с ним МП-автомат М. Для
каждого МП-автомата существует бесконечно много согла-
согласованных с ним МП-преобразователей.
Теорема 3.5.1. Если МП-автомат М и МП-пре-
МП-преобразователь S согласованы, то язык S (L), где L — Т (М),
является контекстно-свободным.
Доказательство. Пусть М = (К, 2, Г, б,
Zo, q0, F)mS = (К, 2, Г, А, ц, Zo, g0, Л- Положим 2; =
= {(х, у) 6 B U W) X А* | (р, а, у) 6 jx (?> х, Z) для
некоторых g, Z, р, а}. Ясно, что множество 2; конечно.
Пусть АГ - (К, 2, Г, бМ', Zo, q0, F) есть МП-автомат,
такой, что
( ) Z){( )|( а, }
для всякой тройки (д, (ж, у), Z)£Kx%'xT, Далее,
пусть / есть гомоморфизм, отображающий множество 2'*
во множество А*, так, что / ((#, у))=у для каждой пары
{х, */)€ 2'.
Докажем, что / [Т (М')] = S (L). уе/[Г(М/)] тогда
и только тогда, когда либо у = е и до6^ (так что e£L,
e£S (L) и eg/[J!(M/)]), либо найдутся такие /с> 1, х^ ...
{} А*, что г/ = j/t ... yh
150 Гл. 3. Операции над КС-языками
и (хи yi) ... (xk, yk) £ Т (AT). Поскольку Ьм> (q, е, Z) = 0
для всех q и Z, то (а?!, i/j) ... (жА, Уи)£Т(Мг) тогда
и только тогда, когда существуют дь ... K(
и а1? ..., ад£Г*, такие, что
*) (?о, («, I/i) •-. (**, Уа)» ^о) 1^C1, (*2> У2) • ••
... (а*, »и), »i) |^7 ... J-5J7 (gfe_i, (%, yk), aft_i) |^ (gft, e, aft).
Из того, что Af и S являются согласованными, следует
по определению отображения бдг, что (^с) имеет место
тогда и только тогда, когда
(g0, ^i ... xk, Zo, e) |-g- (g4, x2 ... xk, аи у{) |-у ...
... hg-(gfc-i, xh, aft_i, ^i ... Ул-i) |-g- (ffft, e, aft, 1/1 ... 2//t)
и (g0, ^1 ... afc, Zo) Iw ... \w {qk-u xh, aft.i) |-^ (gft, 8, aft).
Это в свою очередь возможно тогда и только тогда, когда
Xi ... xk£L и yi ... jfk = f((xu У1), ...» (xk, yk))£S (L).
Таким образом, / [T (M')] =^S (L), откуда непосредственно
следует сама теорема.
Тема для исследования. Найти какие-нибудь условия, которым
должны удовлетворять МП-преобразователь S и КС-язык L, чтобы
язык S (L) был контекстно-свободным. (Одна группа таких условий
дается в теореме 3.5.1, другая — в упр. 3.5.1.)
Открытая проблема. Найти какую-либо характеристику МП-
преобразований, иначе говоря, необходимые и достаточные условия
для того, чтобы отображение / множества 2* во множество 2Л*
было МП-преобразованием (т. е. чтобы существовал МП-преобра-
МП-преобразователь S, такой, что / (w) = S (w) для всех цепочек w).
Упражнения 3.5
1. Пусть S = (К, 2, Г, A, [I, Zo, q0, F) — МП-преобразова-
МП-преобразователь и А = (КА, 2, б, ро, FA) — некоторый конечный автомат.
Пусть, кроме того, S' = (К X КЛ, 2, Г, A, \i', Zo, (q0, p0), F X FA)
есть МП-преобразователь, такой, что
[if (fa, р), х, Z) =
=* W> бд (Р. «))» а' У) I (?'♦ а» ?/) 6 М- fa, ^» Z)}
3.6. Некоторые специальные операции \'л\
для всех ((?, р), ж, Z)£(KX КА) X B U {е}) X Г, ЛГ =
= (i£X#A, 2, Г, 6М,, Zo, (#0, р0), Fx 7*^) — МП-автомат, согла-
согласованный с S' и М = (К, 2, Г, б, Zo, qoi F) — МП-автомат,
согласованный с S. Показать, что S (Т (А)) = S (Т (М) П Т (А)) =
= S' (Т (М')) [ГРо 2]. [Таким образом, S (U) есть КС-язык, како-
каковы бы ни были МП-преобразователь S и регулярное множество U.]
2. Показать, что для всякого КС-языка LC2* найдется
МП-преобразователь S, такой, что S B*с) = L, где с^2 [Ev].
Более того, для каждого КС-языка L с 2* найдется МП-преобра-
МП-преобразователь S, такой, что S ({а, 6}*с) = L (ср. с упр. 3.4.5).
3. Показать, что суперпозиция двух МП-преобразований
не обязательно является МП-преобразованием [ГРо 2]. (Указание:
использовать предыдущее упражнение.)
4. Пусть S = (К, {а, Ъ, с}, {Ь, с, Zo}, {а, Ь, с}, ц, Zo, p0. {Pi})
есть МП-преобразователь, такой, что ^Г = {р0, р4} и jli
определяется так: \i (р0, a, Zo) = {(р<ь Zo, а)}, М- (Ро» ь» zo) =
= {(Pi, ^о, Ь)}, jx (рь Ь, Zo) = {(plf Z06, &)}, jx (рь Ь, Ь) =
= {(pi, 66, Ь)} и \i(pu с, Zo) = |i (pi, с, Ь) = {(рь е, с)}.
Далее, пусть L = (агьгс3 | t, / !> 1}. Показать, что 5 (L) =
{WJ |/<« 1>1}
3.6. Некоторые специальные операции
Подстановка, пересечение с регулярным множеством
и последовательностное преобразование — вот три основ-
основные операции, преобразующие КС-языки в КС-языки и ре-
регулярные множества в регулярные множества. С помощью
этих операций можно строить всевозможные специальные
операции, также сохраняющие свойства языков быть
контекстно-свободными или регулярными множествами.
В данном разделе мы рассмотрим ряд операций такого
рода — некоторые в основном тексте, некоторые в упраж-
упражнениях.
Многие операции над множествами цепочек полностью
определяются своими значениями на одноэлементных
подмножествах. Это свойство приводит к следующему
понятию.
Определение. Отображение / множества 2 г
2*
во множество 2 2 называется аддитивным, если
/(Х)= U f(z) Для каждого Z^S*1).
*) Если / есть отображение множества 2 х во множество
22* и'аг 6 2f, мы пишем' для простоты / (х) вместо / ({х}). Анало-
152 Гл. 3. Операции над КС-языками
Заметим, что согласно определению / @) = 0.
Примерами аддитивных операций могут служить под-
подстановка и конечное преобразование, примером неадди-
неаддитивной — вычитание. Чаще всего приходится иметь дело
именно с аддитивными операциями.
Если/ — аддитивная операция, то / (U-Xj) = U/ (Xt).
г i
Следующие аддитивные операции преобразуют КС-язы-
КС-языки в КС-языки и регулярные множества в регулярные
множества х) [GRo2].
1. Пусть и — некоторая цепочка, тогда / (х) = х,
если х = uw, и / (х) = 0 в противном случае.
Доказательство, f (L) = L [] м2*, но мно-
множество и2* регулярно.
2. Пусть и — некоторая цепочка. Тогда / (х) = w,
если х = uw, и / (х) = 0 в противном случае.
Доказательство. Пусть S — конечный пре-
преобразователь, такой, что S (и) = е и S (uw) = w для
всех w 6 2*. Тогда f (L) = S (L {] u2*).
3. Пусть и — некоторая цепочка. Тогда / (х) = 0,
если х = mw, и / (х) = я в противном случае.
Доказательство, f (L) = L — u2*.
4. Пусть и — некоторая цепочка. Тогда / (х) = х,
если и есть подцепочка х (т. е. х = yuz для некоторых
у, z 6 2*), и / (ж) = 0 в противном случае.
Доказательство. / (L) = L П 2*м2*.
5. Пусть #i, . . ., ат — различные символы и Аи ...
. . ., Ат — регулярные множества цепочек. Тогда / (х) =
= Atw, если х = atw, и / (х) = х в противном случае.
Доказательство. Пусть а[, . . ., а^ — раз-
различные символы, не принадлежащие множеству Si. Пусть
гичным образом мы будем пользоваться записью / (X) = х вместо
/ (X) = {х}, если х 6 SJ.
х) Ниже приводятся определения операций только для цепо-
цепочек.— Прим. ред.
3,6. Некоторые специальные операции 153
S — конечный преобразователь, отображающий цепочку
atw в цепочку alw, и т — такая подстановка, что т {а[) —
= At и т (а) = а для всех а £ 24. Тогда / (х) = т (S (х)).
6. / (х) — множество всех непустых начал цепочки х,
т. е. / (х) = {а =^= 8 | мр = а: для подходящей цепочки v).
(Эту функцию мы будем обозначать Init {x).)
Доказательство. Пусть с £ 24 и т есть под-
подстановка, такая, что т (х) = {х, хс} (х £ 2i). Пусть £ —
конечный преобразователь, отображающий каждую цепоч-
цепочку вида ucv, где и £ 2*, в цепочку а. Тогда / (х) ='
= S[x (х)] - {е}.
7. / (ж) — множество всех непустых концов цепочки ж,
т. е. / (х) = {а ^= е | ш = я для подходящей цепочки и}*
Доказательство, f (x) = [Init (xR)]R.
8. / (х) — множество всех непустых подцепочек цепоч-
цепочки х, т. е. / (х) = {и Ф е | х — yuz для подходящих цепо-
цепочек у и z}.
Доказательство. / (х) = g [Init (ж)], где
g (x) — функция предыдущего пункта.
9. Пусть и Ф 8 — некоторая цепочка и т — фиксиро-
фиксированная подстановка, отображающая множество 2* во мно-
множество 2*. Тогда / (х) есть цепочка, получаемая из х
в результате применения подстановки т ко всем символам,
стоящим непосредственно справа от вхождений и, для
всех вхождений и в х.
Доказательство. Пусть и = щ . . . ит и
ut £ 2i для всех i. Построим конечный преобразователь
S = (К, 2Ь Si U 2а, 8. ^. ?i) х). такой, что S (х) = / (ж)
для каждой цепочки ж £ 2*. Пусть Z есть множество
{(&!, . . ., кт) | А;4 = 0, 1 для каждого i} ид! = @, . . ., 0).
Для каждого z 6 24 положим 8 [(Ai, . . ., Ато), z] =
х) Имеется в виду, что т (а) есть цепочка для всякого а £ 24.
Однако утверждение верно и для случая, когда т (а) с 2*. В этом
случае соответствующий конечный преобразователь заменяется
последовательностным.— Прим* перев.
154 Гл. 3. Операции над КС-языками
= (ки . . ., кт), где /q = 1 тогда и только тогда, когда
z = щ, и для каждого i, i < m, /сг+1 = 1 тогда и только
тогда, когда z = i^ + i и ht = 1. Далее, положим
А, [(/ц, . . ., /гт), z] = х (z), если hm = I, а в противном
случае А, [(/ц, . . ., /гт), z] = z. Нетрудно видеть, что
для каждой цепочки х i-я компонента состояния
б (#!, х) равна 1 тогда и только тогда, когда найдется
цепочка v, такая, что х = vuY ... ut. Поэтому для всякой
цепочки х = xi . . . хп (хг 6 24) символ xt заменен
в X (qlf x) на т (xt) тогда и только тогда, когда
Xi . . . xt _! = vu для подходящей цепочки и, в против-
противном случае xt оставлен без изменения. Таким образом,
f(x) = S(x).
Пример. Пусть для функции / из 9 и = аа, т (а) = с и т (Ь) =
= d. Тогда / (ааЪаааЬ) = aadaacd.
Свойством аддитивности, как оно определено выше,
могут обладать лишь функции одного переменного. При-
Приведем аналогичное определение для функций двух пере-
переменных.
Определение. Отображение / из 2 * X 2 Л
У.*
в 2 2 называется биаддитивным, если
/(X, У)= U /(*,»)
для любых ХиУ.
Например, пусть / (х, у) = х, если х = у, и / (х, у) =
= 0в противном случае. Тогда / (X, Y), = U / (#> #) =
= х п г.
Каждое из следующих биаддитивных отображений
отображает пару регулярных множеств на регулярное
множество и пару КС-языков, один из которых является
регулярным множеством,— на КС-язык.
!•/(#» I/) = z> если х = zy, n f (х, у) = 0 в против-
противном случае [GS1]. (Эта функция иногда обозначается
через XIY и называется правым частным [ER1.)
Доказательство. Пусть с £ 24 и £ — конеч-
конечный преобразователь с одним состоянием, отображающий
а в а для всякого а £ Sj и £ в е. Пусть 5" = ((р }
3.6. Некоторые специальные операции 155
Si U {с}, Si, б, A,, pi) есть конечный преобразователь,
такой, что б (pi, а) = ри X (р1? а) = а для всех а £ Si,
б=р2и^==8В остальных случаях. Тогда / (X, Y) =
= S' [2*сГ П S-1 (X)).
2. / (х, у) = {х&1 . . . xhyh | х = Xi . . . xk, у = у! ... yk,
xt, yt £ 2*}. (Функция / (х, у) называется тасующей
[GS4].)
Доказательство. Сопоставим каждому а 6 S4
абстрактный символ а;. Пусть 2^ = {а; | а 6 2i}. Пусть
Tj и т3 — подстановки, удовлетворяющие соотношениям
т4 (а) = аИ[* и т3 (а) = а1 для каждого а £ S4. Далее,
пусть т2 — такая подстановка, что т2 {а') = 2*а; для
всех а; £ 2J и т4 — гомоморфное отображение множества
(Si П Si)* во множество 2*, такое, что т4 (а) = т4 (а;) =
= а для всех а 6 Si. Тогда
/ (X, У) = т4 К (X) П т2т3 (У)].
3. / (е, у) = у, f (х, г) = х и / (ai ... ато, Ь4 . . . Ьп)
равно #!&! . . . amfem ... fen, если т^п, и равно
aibi . . . anbnan+1 ... am, если m > тг (а4, fef 6 S4 для
всех i). (f (x, у) называется оптимальной перетасовкой
(alternate shuffle) [GS4].)
Доказательство представляется читателю (см. упр.
3.6.2).
Упражнения 3.6
1. Показать, что следующие аддитивные отображения / пере-
переводят регулярные множества в регулярные и КС-языки в КС-языки
[GRo 2].
a. Пусть и — некоторая цепочка. Тогда / (х) = 0, если х =
= yuz для подходящих у и z, n f (х) = х в противном случае.
b. / (s)'= {^i ... uk | х = viui . . . vkukvh+i для некоторых
"и • • •» vk+i 6 2?}- .
c. Пусть а £ Si — выделенный символ. Тогда / (а*) = 0
(i ^> 0) и / (а*и?1;) = м?17, если w £ 2i — {а}.
2. Показать, что оптимальная перетасовка / (X, У) отобра-
отображает пару регулярных множеств на регулярное множество и пару
КС-языков, один из которых является регулярным множеством,—
на КС-язык.
3. Пусть S = {а, Ь, с, d}, т A) = а, т B) = Ь и т C) = с.
Для произвольных трех цепочек хи х%, х3 £ {а, Ь1 с}* рассмотри^
156 Гл. 3. Операции над К С-языками
множество
L(xit хъ x3) = {xh ... xihd%{ih) ... т(|1)[Л>1, 1<*7<3
для всех /}.
a. Показать, что L (#i, x2, х3) есть КС-язык.
b. Пусть Li = L (Ь2, а3, аЪс) и L2 = L (а, Ь, с). Показать, что
LjL2 =
= {аЬ, а4, Ь2а2, Ь4а2, &ва> &8, а8Ь?, а6Ь6, . . ., а24, . . .},
где цепочка yi+i получается из цепочки yt по следующим правилам:
A) если yt = zta9 то yi+1 = ЬН{\
B) если yt = ztb, то yi+i = aszt.
c. Показать, что если язык Li/L2 является контекстно-свобод-
контекстно-свободным, то язык Л = {ап | п = 4-6* для всех i >- 0} тоже является
контекстно-свободным. Таким образом, операция правого деления
в общем случае не переводит пару КС-языков в КС-язык [GS 1].
4. Пусть / (ж, у) = z, если х = yz, и пусто в противном слу-
случае. Показать, что множество / (X, Y) является регулярным, если
X и Y регулярны, и КС-языком, если X и У — КС-языки и один
из них является регулярным множеством. (Эта функция называется
левым частным и обозначается через X/Y. Встречается и другое
название этой функции — производная, обозначение /)у (X) [Brz].)
5. Показать, что язык / (X, У), где / — тасующая функция,
не обязательно является контекстно-свободным, если таковыми
являются языки X и У [GS 4]. (Указание. Пусть X = {а1Ь1 \ i >- 1}
и У = {c2Jdi | ; > 1}.) Если / (X, У) есть КС-язык, то язык
/ (X, У) П ас (ас)* be (be)* dd* = {(асI (beI dl \ i > 1}
тоже является контекстно-свободным.
6. Показать, что язык / (X, У), где / — оптимальная пере-
перетасовка, не обязательно является контекстно-свободным, если
X и У — произвольные КС-языки [GS4]. (Указание. Использовать
языки X и У из предыдущего упражнения.)
7. а. Показать, что каково бы ни было регулярное множество
L, множество Н (L) — {и \ uv £ L для некоторого у, такого, что
| и | = | v |} тоже является регулярным.
Ь. Пусть 2 = {а, &, с, с?, е}. Показать, что язык Я (L), где
L = {a^bh^d2ezi \ i, / 5> 1}, не является контекстно-свободным.
Таким образом, операция Я преобразует регулярные множества
в регулярные множества, но не всегда преобразует КС-язык
в КС-язык.
8. Показать, что каждая из следующих двух функций / отобра-
отображает пару регулярных множеств на регулярное множество и пару
КС-языков, один из которых является регулярным множеством,—
на КС-язык. Показать также, что язык / (X, У) не обязательно
является контекстно-свободным, если таковыми являются язы-
ки у и X,
3.7. Нормальная форма КС-языка 157
a. / {х, у) = х, если | х | > | у |, / (я, у) = ху2, если | ж | <
< I 0 I и у = у!у2, где | г/i | = | х |.
b. / (х, у) = {м? | я = иг#г;, у = uv для некоторых и и у}.
3.7, Нормальная форма КС-языка *)
В настоящем разделе мы охарактеризуем КС-языки
с помощью регулярных множеств, гомоморфизмов и опе-
операции пересечения. Нам уже известно, что гомоморфный
образ пересечения КС-языка D с регулярным множеством
R является КС-языком (теоремы 1.7.1 и 3.2.1). Предла-
Предлагаемая характеристика состоит в том, что для некоторого
специального КС-языка D и некоторого специального
гомоморфизма выполняется обратное утверждение.
Нам понадобится следующий вспомогательный ре-
результат.
Лемма 3.7.1. Пусть 2 = {аь . . ., ап), 2' =
— 2 U {а[, . . ., ап} и при этом символы аь . . ., ап,
а[, . . ., а'п попарно различны.
Пусть G = ({a} U S', 2, Р, о) есть КС-грамматика
и Р = {а -> 8, а —>~ оаьоа\о^ \ 1 ^ i ^ ^г}. Если D = L (G),
то
a) xDx' <=: D для всех х £ 2,
b) Ш) с= д,
c) D s U xDx'D U {е},
d) из того, что и, ии g D, следует, что v £ D.
Доказательство. Пункт а ясен из вида правил.
Чтобы доказать Ь, рассмотрим две произвольные це-
цепочки и, и £ D. Пусть а =ф м0 =^> иг =ф . . . =ф as =ф а есть
некоторый левосторонний вывод цепочки а в грамматике
G. Наши правила таковы, что каждая цепочка uk @ <^ к <С
<^ s) оканчивается символом а, т. е. uk = ш^а для неко-
торой цепочки wk. Отсюда us = aa. Поскольку а =ф у,
* *
то а =ф aa =ф ш;.
Чтобы доказать с, рассмотрим цепочку w£D. Если
| = 0, то ш = е и тривиальным образом выполняется
соотношение w^xDx'D jj {e}. Предположим, что это соот-
При первом чтении этот раздел можно опустить.
15S Гл. 3. Операции над КС-языками
ношение имеет место для всех цепочек w£D, таких, что
|i#|</c. Пусть \w\ — /с —(— 1 и w£D. Тогда o=$oxox'o=$w
для некоторого #(=2. Согласно лемме 1.4.6, цепочку w
*
можно представить в виде w = WiXW2x'wz, так что
* *
o=$w2 и а=Фш3. Если wi = &i то w£xDx'D. Если
то, согласно индуктивному предположению, wi = yuyfv
для подходящих г/ £ 2 им, v£D. Тогда w = уиу' (vxw2x'ws).
Воспользовавшись пунктами а и Ь, получаем vxw2x'ws£D,
откуда w^xDx'D.
Чтобы доказать d, рассмотрим цепочки и, uv £ D.
Ясно, что если | uv \ ^ 1, то v g D. Пусть v £ D в случае,
если | uv | <^ к, и пусть | uv | = й: + 1. Цепочки и и v
мы, очевидно, можем считать непустыми. Согласно с,
цепочку uv можно представить в виде uv = xsx't для
некоторых я£2 и 5, ££J9. Имеет место один из следую-
следующих случаев:
1. xsx' есть начальная подцепочка цепочки и. Тогда
и = xsx't\ и t = t{v. Согласно a, xsx' £ Z). Поскольку
| xsx'ti | = | м | < | му | , по индуктивному предположе-
предположению ti £D. Поскольку | t(v | = | £ | < | ш; | , по индук-
индуктивному предположению v £ D.
2. Цепочка и является собственной начальной подце-
подцепочкой цепочки xsx'. Тогда xsx' = uv^x' и vix't = v.
Согласно с, цепочку и можно представить в виде и =
= xpx'q для некоторых р, q £ D. Тогда px'qvi = s £ D
и I s I <C I uv | . По индуктивному предположению в этом
случае x'qv^ 6 £>i что противоречит с.
Теорема 3.7.1. Пусть S — некоторый алфавит.
Тогда существует алфавит 2;, КС-язык D ^ И,'* г) и гомо-
гомоморфное отображение h множества 2'* на множество
2*, такие, что для произвольного КС-языка JL S 2*
найдется регулярное множество R с= 2;*, Зля которого
имеет место равенство L = h (D fl R)»
Доказательство. Пусть 2 = {аь . . ., ап}.
Рассмотрим алфавит 2' ='S U Wn . - ., а'п, с, с\ d, d'}
г) Именно: D есть язык Дикка.
3.7. Нормальная форма КС-языка 159
и КС-грамматику Go = ({a} U 2', 2', ^о, а), где
Ро = {а —>- в, а -> аа^аа^а | 1 <; t ^ га} U
U {а —>- осос'о, а -
Пусть D = L (Go) и /г — гомоморфизм на множестве
2'*, определяемый следующими соотношениями: /г (af) =
= а* и /г (а*) = h (с) = h (cf) = h (d) = h (df) = г для
всех i, 1 ^ i ^ n.
Рассмотрим произвольный КС-язык L е 2*. Без поте-
потери общности можно считать, во-первых, что Lg J* —
— {е}, и, во-вторых, L = L (G), где G = (F, S, Р, а) —
некоторая КС-грамматика, каждое правило которой имеет
вид !• ->■ а для некоторого а £ 2 или !• ->■ ар для некото-
некоторых а, р 6 ^ — 2. Пусть Р = {яь . . ., ят} и G' =
= (V U 2', 2', Р', а)) — КС-грамматика, причем
4 = 11->аР; а, Р£7-2}.
Пусть R = L (С). Поскольку КС-грамматика G' является
праволинейной, множество R регулярно. Мы докажем,
что L = h (D П -R)» и тем самым завершим доказательство
теоремы.
В ходе доказательства мы будем пользоваться следую-
следующим фактом (который непосредственно вытекает из того,
что КС-грамматика G' является праволинейной).
а. Если l=$w^l(l£V — 2), то цепочку w можно
G'
представить в виде w = w0 ... wk, где w0, ..., wk удовле-
удовлетворяют следующим условиям.
1. Цепочка Wj для любого /, j<ik, имеет либо вид
A) Wj = aa'd'cnd', где а£2, £—>а£Р и ц—>ар = я^,
а, р^7—2, либо вид B) wj = dcid, где я^ = т]—>оф,
а, Ре^-2.
2. Цепочка wk имеет либо вид C) wk = aa\ где а£2
и 1-*а£Р, либо вид D) Wb = aa'drcrid'$, где a £2, g—>a£P,
4]—>a$ = ni и a, pgF —2, либо E) Wk = dclda, где
яг = г]->сф, а, РУ2
160 Гл. 3. Операции над КС-языками
Докажем сначала включение h(D[\R) ^ L. Для этого
достаточно показать, что для каждой цепочки w£D
и каждого символа ££F—2
Ь. если l = yo=$yi=$ ... =$yp = w, то l=$h (w).
G' G' G' G
Пусть p=l. Тогда w~aa' для некоторого а£2
и, следовательно, £=ф/г (аа') = а. Пусть Ь имеет место
G
для всех р, р<т, т^2. Положим
£Уо91 Ут
G' G' G'
для некоторых и;£/)и!;£У — S.
Либо цепочка аа' для некоторого а £ 2, либо цепочка
d является начальной подцепочкой и;. Предположим, что
w = aa'v. Поскольку т ^ 2, имеем v Ф г. Согласно а,
цепочку г; можно представить в виде и = d'v' для подхо-
подходящей цепочки и'. Согласно пунктам and леммы 3.7.1,
и £ D. Но тогда в силу пункта с той же леммы и не может
начинаться с d'. Следовательно, w начинается с символа d.
Вновь применяя пункте леммы 3.7.1, представляем цепоч-
цепочку w в виде w — dud'v, где и, v £ D. Ясно, что цепочка и
оканчивается символом с'. (В противном случае, согласно
a, v будет начинаться с с', что противоречит лемме 3.7.1 с.)
Следовательно, согласно a, w = dcldtdfcfjdfu, где i Ф 0,
У Ф 0 и v, ^dtd'c'3 £D. Мы покажем, что
d. w = d^dtd'e^d'v, где t, v £D.
Для этого прежде всего заметим, что
e. cK-4td'c']-k 6 D для k < min {£, /}.
(Действительно, е имеет место при к = 0. Пусть
J-^-^dtd'c'l-^-" £D для некоторого /с, 0 < /с< min {£, /}.
Согласно лемме 3.7.1с, ci-ik-1)dtdfcf:i-ik-1) = crc's, где
г, s £ D. Предположим, что s Ф е. Поскольку цепочка
crc's является подцепочкой цепочки w, то цепочка 5 начи-
начинается либо с с', либо с d\ что противоречит лемме 3.7.1с.
Таким образом, s = г и г — cx~hdtd'cn~h, откуда по индук-
индуктивному предположению и по лемме 3.7.1а следует е.)
Предположим, что i <^ /. Тогда, согласно е, при к = i
dtd'c'3-1 £Z). Следовательно, dtd'c'3'1 = drd's для неко-
3.7. Нормальная форма КС-языка 161
торых r,s £D. Таким образом, dtd' = drdfsu где s^'*'1 = s.
Предположим, что ^ = е. Тогда i = j и s = е, поскольку
с' не может быть начальной подцепочкой цепочки s*
Таким образом, в этом случае t = г £Z). Допустим, что
54 г^: е. Тогда s Ф г. Поскольку с' не может быть началь-
начальной подцепочкой цепочки s и цепочка dtd'cn~l = drd's
является подцепочкой цепочки w, должно выполняться,
согласно а, равенство г = г^с' для подходящей цепочки
rj. Тогда
w = dcldtdfcfjdfu = dc'dr^'d'sc^d'v.
Согласно а, цепочка dcldrictd'', а следовательно, и цепочка
r^'d' содержат четное число вхождений символа d и чет-
четное число вхождений.символа d'. Таким образом, число
вхождений символа d в цепочку г^с' отлично от числа
вхождений в нее символа d'. Мы пришли к противоречию,
ибо TiC' = r £D. Аналогичное противоречие возникает,
если допустить, что / < i. (Действительно, c%~^dtd' g D
и, следовательно, согласно утверждению, аналогичному
лемме 3.7.1с, сг~:]dtd' = rdsd' для некоторых г, s£D.
Ясно, что г Ф е. Далее, поскольку цепочка г не может
оканчиваться на символ с и цепочка cl~Jdtd' = rdsd'
является подцепочкой цепочки w, то s = csi для некоторой
цецочки^!. Отсюда w = dcWdcsid'c'^d'v. Согласно а, цепоч-
цепочка dcsid'с'2d', а следовательно, и цепочка dcsi имеют четное
число вхождений символа d и четное число вхождений
символа d'. Как и выше, это приводит к противоречию.)
Таким образом, i = / и t £Z). Утверждение d доказано.
Из с и d следует, что существует правило Jtf = g —>а$
(a, P6F — 2), такое, что yi = dcida. Кроме того, для
каждого к, 1<&<ттг, существует цепочка z^gE'* и сим-
символ ik(zV — 2, такие, что Ук = йсЧгк1к и
I. a = z^i =Ф z2g2 =Ф ... =ф z^ig^i =Ф td'cfid'v.
G' G' G' G' G'
Правила грамматики G' таковы, что для некоторого £
имеет место равенство td'cndfu = zm_1bbf. Найдется такое
число g, l<g<m — 1 (так что /тг>3), что цепочка zg
является собственной начальной подцепочкой цепочки
td'cndf и цепочка td'cnd' является начальной подцепочкой
цепочки zg+l. Отсюда следует, что zgjri = zgz для некоторой
162 Гл. 3. Операции над ЙС-языкаМи
цепочки z£2'* и %g —>z^g+i £ jP'. Ясно, что цепочка z
содержит вхождение символа d\ Из вида правил грам-
грамматики G' ясно, что
g. ig-^bftd'c'td'tg^eP', где |*+1-р,
h. t = zgbib'1 для некоторого Ь46 2.
Таким образом,
i. zg+i^zgbftd'c'id'.
Кроме того, %g—>b{£P и ^g—^bib^P'. Из f и h следует
G' G' G'
Из f, g и i следует
G' G' G' " Gr
для некоторых vg+2, ...,^m-i- Из того, что t,v£D,
а также из j, k и индуктивного предположения для Ь
следует, что a=$h(t) и р =ф h (и). Поскольку щ =
G G
то g =Ф ар =ф /г (t) h(v) = h (tu) = h(w). Таким
G G
образом, h(D (]R) ^ L.
Докажем обратное включение L^h(D (]R). Для этого
достаточно показать, что для любых E6F—2 и х^2*
имеет место следующее утверждение.
1. Если %> = уо=$у1:=$ . >. =$ур = х, то x = h(w) для
G G G
некоторой цепочки w£D, такой, что £=фг#.
G'
Если р = 1, то £ = а для некоторого а £2. ТогДа
*
x = h(aa') и \=$аа!.
G'
Предположим, что 1 имеет место дЛя всех р,р<Ст,
где /тг>1, и рассмотрим случай, когда р — т. Ввиду
бинарной структуры правил грамматики G' найдется
правило jij — |—>аР^Р, os, p^F — 2, такое, что г/^сср.
Согласно лемме 1.4.6, существуют цепочки ии ...,ug
и vu ..., уд, такие, что g-\~k = m— 1,
m. а =Ф Mi =Ф . . . =Ф м^
G G G
и
п. р =ф г;4 =Ф . . . =Ф ^д.
G G G .
3.8. Историческая справка 163
Из m и п по индуктивному предположению вытекает
существование цепочек wl,w2^D, таких, что ug = h(w1),
* * *
vk = h (w2), а =ф Wi и р =ф н;2. Имеем теперь а =ф £v =ф taa' = wY
G' G' G' G'
для некоторых ££2'*, v£F — 2, а£2 и v—>aa'£P'.
Тогда v—>a£P и v—>aa'd'cfid'$£P'. Таким образом,
'с/1(^р. Пусть w = dcidw1dfc'id'w2. Тогда
dw^d'c'^d'^ 4 dcidwidtctidtw2 = w.
G' G' G'
Согласно пунктам а и Ь леммы 3.7.1, w£D.
Наконец, очевидные равенства h (w) = h (wiiv2) =
= ugvh = x завершают доказательство индуктивного
шага. Таким образом, L <=:h{D[\R) и, следовательно,
L = h(D{\R).
Упражнение 3.7
Используя процедуру, описанную в теореме 3.7.1, построить
КС-грамматику G' по исходной КС-грамматике G— (V, {а, Ь, с}, Р, а).
a. Р — {о -+- оо, о -+- а, а -> Ь}.
b. Р = {а -^ аР, а -^ ар, Р -^ аа, а -^ а, а -^ Ь}.
c. Р = {а ->- ар, Р ->- аа, а ->- т[х, [х ->- ат, а ->- с, а ->- а, т-> Ь}.
d. Р == {а -> ар, а -^ уб, б -^ ау, р -^ аб, а -^ а, у ->- Ь }.
3.8. Историческая справка
Лемма 3.1.1 доказана в [BPS]. Теорема 3.1.1 содер-
содержится в [Scg], весьма близкое к ней утверждение — о том,
что язык {0n10n10n | п > 1} в алфавите 2 = {0, 1}
не является контекстно-свободным,— имеется в [BPS].
Теорема 3.1.2 доказана в-[ГРа]. Первые части теорем 3.2.1
и 3.2.2 взяты из [BPS], тогда как вторые — из [GUI].
Определение последовательностного преобразователя в той
форме, в какой оно излагается в настоящей главе, введено
в [ЕМ]. Оно является обобщением понятия преобразова-
преобразователя, рассмотренного в [Ch], которое в свою очередь
представляет собой обобщение понятия конечного преоб-
преобразователя, введенного в [Gi2]. Теоремы 3.3.2 и 3.3.3
впервые доказаны в [GRo2]. Весь материал раздела 3.4
заимствован из [ГРо1]. Формальное определение МП-пре-
МП-преобразователя впервые появилось в [Ev], однако, так же
164 Гл. 3. Операции над КС-языками
как и МП-автоматы, МП-преобразователи встречались
задолго до этого в литературе по программированию. Тео-
Теорема 3.5.1 приводится в не вполне явной форме в [Ev] x).
Теорема 3.7.1 в несколько более слабой формулировке
(в которой D зависит от КС-грамматики, порождающей
язык L) доказана в [Ch]. В том виде, в котором теорема
3.7.1 приводится здесь (с Z), зависящим только от 2),
она содержится в [St].
г) По поводу определения МП-преобразователя и теоремы 3.5.1
см. также [ГРо1].— Прим. перев.
ГЛАВА 4
АЛГОРИТМИЧЕСКИЕ ПРОБЛЕМЫ
Проблема вида «распознать, имеет ли место данное
отношение между теми или иными произвольными языка-
языками (или между языком и цепочкой)», всегда является
в сущности проблемой распознавания для каждого эле-
элемента данного класса, обладает ли он (элемент) некоторым
заданным свойством. Например, в случае, когда для двух
КС-грамматик нужно распознать, порождают ли они
один и тот те язык, класс объектов состоит из пар КС-
грамматик (Gu G2) и для каждой данной пары (Gu G2)
проверяется свойство L (Gi) = L (G2). Под «распознава-
«распознаванием» мы понимаем процесс, осуществляемый некоторым
детерминированным устройством согласно заданной конеч-
конечной системе четких предписаний. Это интуитивное поня-
понятие формализуется в математической логике с помощью
различных, но эквивалентных между собой определений
алгоритма. Если для той или иной проблемы существует
разрешающий ее алгоритм («разрешающая процедура»),
говорят, что эта проблема алгоритмически разрешима,
в противном случае — что она алгоритмически неразре-
неразрешима. Мы предполагаем, что читатель знаком с только
что перечисленными понятиями. Подробное изложение
соответствующих вопросов имеется, например, в [Ма;
Map].
Основным требованием, предъявляемым к языку про-
программирования, является возможность определить по каж-
каждой данной последовательности символов, является ли
она программой, записанной на этом языке. Это необхо-
необходимо, кроме всего прочего, для того, чтобы сделать воз-
возможным автоматическое распознавание программ. На фор-
формальном уровне это означает, что проблема вхождение
любой цепочки в любой КС-язык (в некотором фиксиро-
166 Гл. 4. Алгоритмические проблемы
ванном алфавите) алгоритмически разрешима — другими
словами, существует алгоритм, позволяющий определить,
принадлежит ли произвольная заданная цепочка х произ-
произвольному заданному КС-языку L. В математической логике
множество Е называется рекурсивным {разрешимым), если
проблема принадлежности произвольного элемента мно-
множеству Е алгоритмически разрешима. В разд. 4.1 мы
покажем, что КС-языки являются рекурсивными множест-
множествами. В остальных разделах настоящей главы будет
показано, что большинство интересных алгоритмических
проблем в классе КС-языков решается отрицательно, т. е.
соответствующих алгоритмов не существует. Среди таких
вопросов можно назвать следующие: по двум произволь-
произвольным КС-грамматикам узнать, порождают ли они один
и тот же язык, пересекаются ли порождаемые ими языки,
существует ли конечный преобразователь, отображающий
язык, порождаемый первой КС-грамматикой, на язык,
порождаемый второй КС-грамматикой. Если программисту
все же необходимо получать ответы на такие вопросы, то
либо языки программирования должны принадлежать
к некоторому подходящему подклассу класса всех КС-язы-
КС-языков, для которого эти проблемы алгоритмически раз-
разрешимы, либо должны быть формализованы некоторые
дополнительные аспекты языков программирования, на-
например семантические.
В последующих главах мы будем пользоваться тем, что
доказательства всех приведенных к настоящему моменту
утверждений являются эффективными *).
4.1. Алгоритмически разрешимые проблемы
В классе КС-языков ряд алгоритмических проблем
допускает положительное решение. В частности, мы пока-
покажем, что существуют алгоритмы решения каждого из сле-
следующих вопросов: A) содержит ли данный КС-язык дан-
данную цепочку; B) содержит ли данный КС-язык хотя бы
г) Это означает следующее: во всех случаях, когда доказывает-
доказывается утверждение о существовании некоторого конструктивного
объекта (числа, грамматики, автомата и т. п.), указывается способ
фактического построения этого объекта по исходным данным.—
Прим. ред.
4.1. Алгоритмически разрешимые проблемы 167
одну цепочку; C) содержит ли данный КС-язык бесконеч-
бесконечное множество цепочек.
Для доказательства рекурсивности КС-языков нам
потребуется следующий вспомогательный результат.
Лемма 4.1.1. Пусть G = (F, 2, Р, а) есть неуко-
рачивающая КС-грамматика и п = # (V). Цепочка
w £ 2* длины к тогда и только тогда принадлежит языки
L (G), когда существует ее вывод
а == Wi =£> ... =ф м;г = ы;,
ь
такой, что г< 2 га;.
i-i
Доказательство. Пусть w£2*. Согласно опре-
определению языка L (G), если существует вывод а = wY =ф ...
,,,=Фшг = ш, где г<2 w\ то w£L(G). Допустим теперь,
i=i
что цепочка и;^2* выводима из а в С. Пусть г — наимень-
наименьшее число, для которого существует вывод g = w1=^ ...
...=Фи;г = и?. Поскольку G — неукорачивающая КС-грам-
КС-грамматика, то \wt |< 110^+11 для каждого i. Предположим,
что | wr | < к и г > 2 п*- Тогда найдутся цепочки wt
i=i
и Wj(i<C]), такие, что Wi = Wj. Отсюда следует, что
имеется вывод
а = и?! г=ф ...гфи;4=Ф i0/+1 =ф ... =ф ы;г = ы;,
что противоречит свойству минимальности рассмотрен-
рассмотренного нами вывода.
Теорема 4.1.1. Существует алгоритм, позволяю-
позволяющий узнать, принадлежит ли произвольная данная цепочка
произвольному данному КС-языку х).
Доказательство. Пусть w — произвольная це-
цепочка из 2* и L = L (G) — некоторая КС-грамматика
с тем же основным алфавитом 2. Если w = е, алгоритм,
решающий вопрос о принадлежности е языку L, легко
2) Подчеркнем, что этот алгоритм — один и тот же для всех
КС-языков.— Прим. ред.
168 Гл. 4. Алгоритмические проблемы
извлекается из леммы 1.8.1. Пусть w Ф е, т. е. k = \ w | >>
> 0. Согласно теореме 1.8.1, по G может быть (эффектив-
(эффективно) построена неукорачивающая КС-грамматика G' —
= .(V, 2, Р, а), такая, что L (Gf) = L {G) — {г}. Из лем-
леммы 4.1.1 следует, что w £ L (Gf) тогда и только тогда, когда
w порождается с помощью некоторого вывода, длина
h
которого не' превышает числа 2 п\ гДе п = Ф (^0-
i=i
Таким образом, существует алгоритм, позволяющий
узнать, принадлежит ли w языку L F?;), а следовательно
и L (G).
Пример. Пусть G (F, 2, Р, а) есть КС-грамматика и Р =
= {о -+ ао, g -^ b^oa, a -^ gb, g -^ аЬ}. Рассмотрим цепочку ЬаЬ;
длина ее равна трем. КС-грамматика G является неукорачивающей
и не содержит ни одного правила типа vj ->■ V2, где vi, V2 6 ^ — 2.
Из упр. 4.1.1 следует, что нам достаточно просмотреть все выводы,
длины которых не превышают шести. Поскольку ни один из этих
выводов не оканчивается цепочкой ЬаЬ, эта цепочка не принад-
принадлежит L (G).
Перейдем к другим алгоритмически разрешимым про-
проблемам.
Теорема 4.1.2. Существуют алгоритмы, позво-
позволяющие по произвольной КС-грамматике определить,
является ли порождаемый ею язык (а) пустым, (Ь) беско-
бесконечным.
Доказательство. Пусть G = (V, 2, Р, а) —
некоторая КС-грамматика и L = L (G).
a. Из леммы 1.4.3 следует, что (в обозначениях этой
леммы) L (G) Ф 0 тогда и только тогда, когда а £ Н\
вопрос о справедливости последнего соотношения решает-
решается полным перебором конечного множества Н.
b. Согласно лемме 3.1.1, по КС-грамматике G могут
быть эффективно найдены натуральные числа j? и q, обла-
обладающие тем свойством, что каждую цепочку z £ L, длина
которой больше р, можно представить в виде xuwvy,
где ии Ф е, | uwu | ^ q и xuhwvky £ L для всякого к ;> 1.
Таким образом, язык L бесконечен тогда и только тогда,
когда он содержит цепочку, длина которой больше р.
Пусть L (р) есть множество всех цепочек из L, длины
4.1. Алгоритмически разрешимые проблемы 169
которых не превышают р. Из леммы 4.1.1 следует, что
L (р) может быть эффективно построено по G. Согласно
следствию 3.2.1, КС-грамматика, порождающая язык
L — L (р), эффективно строится по G. Ясно, что КС-язык
L бесконечен тогда и только тогда, когда КС-язык
L — L (р) непуст; а последний вопрос в силу (а) является
алгоритмически разрешимым.
Следствие 4.1.1. Существуют алгоритмы, позво-
позволяющие для произвольных регулярных множеств Rx
и R2 узнать, имеют ли место соотношения Ri ^ R2 и
Я, = R2 *).
Доказательство. Пусть Rs = i?i — R2 и
i?4 = (i?! — R2) у (R2 __ R^. Согласно теореме 2.1.1,
множества R3 и i?4 регулярны. Очевидно, i?j ^ R2 тогда
и только тогда, когда R3 = 0, и Ri = R2 тогда и только
тогда, когда i?4 = 0- Далее следует воспользоваться
теоремой 4.1.2.
Упражнения 4.1
1. Пусть б1 — неукорачивающая КС-грамматика, не имеющая
правил вида g -> v, где v g 7 — 2. Доказать, что цепочка w g 2*
длины & принадлежит языку L F1) тогда и только тогда, когда
существует вывод а = w± =ф ... =Ф ы;г = м?, такой, что г <J! 2Л.
2. Пусть 6г = (У, 2, Р, а) есть КС-грамматика и Р =
== {I -»- agb, g -> ab, g -> d, а -»- aga, a -> bg, о -* а, о ->■ Ь}.
Какие из следующих цепочек принадлежат L (G): (а) bad; (b) ЪаЪа;
(с) Ьа2Ь.
3. Пусть G = G, 2, Р, а) — некоторая КС-грамматика.
Показать, что существует алгоритм, позволяющий по произвольной
цепочке w g 7* узнать, выводима ли эта цепочка из а в £.
4. Показать, что во всяком конечном КС-языке может быть
эффективно найдена цепочка наибольшей длины.
5. Показать, что существует алгоритм, позволяющий по про-
произвольной КС-грамматике G определить, существует ли последо-
последовательность xt, . . ., xk g 2, такая, что L (G) с #* ... х\,
и, если такая последовательность существует, найти ее.
(Указание: построить конечный преобразователь S, такой, что
х) Точнее следовало бы говорить о произвольных конечных
автоматах Аи А2 й соотношениях Т (Л4) с Т (Л2), Г (Л4) =
= Г (Л2).— Прим. ред.
170 Гл. 4. Алгоритмические проблемы
S (х) = xi . . . хп для каждой цепочки х = х™1 . . . х™п , xt+i Ф
Ф xt g 2 (m^ > 0) для каждого ц и рассмотреть язык S (L)).
6. а. Показать, что существует алгоритм, позволяющий
по произвольной приведенной КС-грамматике G = (У, 2, Р, а)
и произвольному ее вспомогательному символу £ определить, суще-
ствуют ли цепочки и, у £ 7*, такие, что иу^еи £=фи£у [BPS].
Ь. Используя а, показать, что проблема бесконечности языка
алгоритмически разрешима в классе КС-языков (т. е. дать другое
доказательство теоремы 4.1.2Ь).
7. Показать, что существует алгоритм, позволяющий по про-
произвольной КС-грамматике G и произвольной праволинейной грам-
грамматике G' определить, имеет ли место включение L (G) CL (£')•
8. Пусть а — выделенный элемент 2. Показать, что существует
алгоритм, позволяющий по произвольной КС-грамматике G опре-
определить, имеет ли место включение a*CL (G) [GHU].
9. Пусть w£ 2*. Показать, что существует алгоритм, позво-
позволяющий по произвольной КС-грамматике G определить, имеет ли
место включение w* с L (G) [GHU].
10. Показать, что в доказательстве леммы 2.6.3 МП-автомат N
эффективно строится по МП-автомату М.
И. Показать, что существует алгоритм, позволяющий по про-
произвольной КС-грамматике определить, является ли она КС-грам-
КС-грамматикой ограниченной емкости [АВ].
12. Показать, что существует алгоритм, позволяющий по про-
произвольной КС-грамматике G и произвольному символу а узнать,
найдутся ли такое бесконечное регулярное множество R с а*
и такая цепочка w £ 2*, что wR CL (G). (Указание: воспользо-
воспользоваться упр. 3.1.10.)
13. Показать, что существует алгоритм, позволяющий по про-
произвольной КС-грамматике G и произвольному символу а опреде-
определить, существует ли бесконечное регулярное множество R с а*
и цепочки w, w' £ 2*, такие, что wRw' с L (G). (Указание: вос-
воспользоваться упр. 3.1.11.)
4.2, Основные алгоритмически неразрешимые проблемы
В настоящем разделе мы докажем алгоритмическую
неразрешимость в классе КС-языков некоторых проблем
теоретико-множественного характера. В частности, мы
докажем, что не существует алгоритмов, позволяющих
по двум произвольным КС-грамматикам Gi и G2 опреде-
определить A) пусто ли пересечение L (Gt) f| L (G2), B) имеет ли
место включение L (Gj) ^ L (G2), C) совладают ли языки
L (GJ и L (G2).
4.2. Основные алгоритмически неразрешимые проблемы 171
Для этого сначала доказывается алгоритмическая
неразрешимость некоторой специальной проблемы для
цепочек в алфавите достаточно большой мощности. Затем
с помощью подходящего кодирования результат о нераз-
неразрешимости этой проблемы распространяется на случай
произвольного алфавита, содержащего не менее двух
символов. (Для алфавита, состоящего из единственного
символа, все рассматриваемые проблемы разрешимы, так
как контекстно-свободные языки над однобуквенным алфа-
алфавитом являются регулярными множествами.) Поскольку
при сведении одних алгоритмических проблем к другим
мощность алфавита часто возрастает х), двубуквенное
кодирование становится необходимым, чтобы избежать
чрезмерного возрастания мощностей алфавитов.
Все приводимые в этой главе доказательства алгорит-
алгоритмической неразрешимости прямо или косвенно опираются
на следующую теорему.
Теорема Поста о проблеме соответствий. Пусть 2 содер-
содержит по меньшей мере два символа. Тогда не существует
алгоритма, позволяющего по произвольным системам п
непустых цепочек {wu . . ., wn) и {уи . . ., уп) в алфа-
алфавите 2* узнать, существует ли {непустая) последователь-
последовательность индексов iu . . ., ik, такая, что wtl . . . wik =
= Уп - • • Vik-
Доказательство этого основного результата читатель
может найти в [Ро] 2). В формулировке проблемы соот-
соответствий Поста число п (разумеется, положительное)
является произвольным. Поэтому более точной будет
следующая формулировка. Пусть алфавит 2 содержит
1) Более подробно это означает следующее. Приводимые в на-
настоящей главе доказательства неразрешимости алгоритмических
проблем, относящихся к множествам цепочек в тех или иных
алфавитах, состоят в сведении к этим проблемам других, заве-
заведомо неразрешимых алгоритмических проблем, также относящихся
к множествам цепочек в алфавитах. При этом часто оказывается,
что естественное доказательство сводимости некоторой проблемы А
к проблеме В получается только при условии, что алфавит, к ко-
которому относится проблема В, получается из алфавита, к кото-
которому относится проблема А, добавлением нескольких новых сим-
символов.— Прим. ред.
2) Оно имеется также в [Map].— Прим. ред.
172 Гл. 4. Алгоритмические проблемы
не менее двух символов. Тогда не существует алгоритма,
позволяющего для произвольного числа п (п ^> 1) по лю-
любым двум системам {wu . . ., wn) и {уи . . ., уп) из п
непустых цепочек из множества 2* узнать, существует ли
непустая последовательность индексов iu . . ., ik, такая,
что wtl . . . wik = г/ц . . . yik.
Примеры, i. Пусть w = (Ь3, ab2) и у = (Ь2, ЪаЪ3). Тогда
.wi = b3, w2 = ab2, У1 = &2 и 1/2 = ЬаЬ3. Существует последователь-
последовательность индексов, а именно it = 1, i2 = 2» i3 = 1, такая, что
wh тгг wi3 = ^ii ^i2^i3; Действительно, ия^м?! = yiy2yi = Ь3аЬ5.
2. Пусть ш = (а, Ь2а, а?Ь) и у = (Ьа, а3, Ьа). Тогда wj == a,
^2 = b2a, w3 = а2Ь, у! = Ьа, у2 = д3 И Уз = Ьа. Не существует
последовательности ilt . . ., iki такой,что м?4 . . . ш. == у^ . . . уг .
В самом деле, из этого равенства следовало бы, что цепочки wtl
и у.х имеют непустое общее начало, но все w^ начинается с а, а все
Уг — с Ъ.
Если заданы две системы (wb . . ., wn) и {уи . . ., уп)
по п непустых цепочек из множества 2*, то вопрос
о существовании последовательности индексов iu . . ., ik,
такой, что wtl . . . wik = ytl . . . yik, называется пробле-
проблемой соответствий для данных систем цепочек. В приве-
приведенных примерах мы имеем возможность определить,
существует ли решение проблемы соответствий. Теорема
Поста утверждает, что не существует алгоритма, позво-
позволяющего в каждом данном случае узнавать, существует
ли решение проблемы соответствий. Однако отсюда вовсе
не вытекает невозможность узнавать это в частных слу-
случаях.
Введем теперь несколько специальных КС-языков,
которые будут использоваться на протяжении всей главы.
Обозначение. Пусть S = {а, Ь, с} и х =
= (хи . . ., хп), у = (г/i, . . ., уп) — системы непустых
цепочек в алфавите {а, Ь}. Примем следующие обозна-
обозначения:
L (х) = {balk . . . Ъа1чхи . . . xih \ к > 1, 1 < ij < тг};
L (у) — аналогично;
L (х, y)=L (x) cL (y)R.
Если рассматривать цепочку Ъаг как код числа i,
то в каждой цепочке из L (х) слева от символа с последо-
4.2. Основные алгоритмически неразрешимые проблемы 173
вательно располагаются коды индексов ik, ife_1? . . ., iu
а справа от символа с — цепочки х^, xi2, . . ., хг . Заме-
Заметим, что для каждой цепочки кодов ba%h . . . Ьа*1 сущест-
существует единственная цепочка хг1 . . . хг . Однако вполне
возможно, что bah . . . Ьа1* Ф ba°s . . . Ьа*1 и в то же
время xix . . . xi = x-n . . . Xjs. Например, пусть х =
= (ab2, Ь, Ь2), т. е. х^ = ab2, х2 = Ь, х3 = Ь2, ba2ba2 Ф
Ф Ьа3, но х2х2 = Ь2 = х3.
Для каждой системы # множество L (х) является
КС-языком, так как оно порождается КС-грамматикой
со следующим множеством правил: {а ->■ Ьагсхи
а ->■ ba{GXi | 1 ^ i ^ w}. Отсюда следует, что язык
L (x) cL ([/)R тоже является контекстно-свободным.
Обозначение. Пусть 2 = {а, Ь, с}. Через Ls
обозначим множество {w1cw2cw^cwf \wu w2 6 {а, Ь}*}.
Ls является КС-языком, так как оно порождается
КС-грамматикой G = (F, 2, Р, а) с множеством правил
{^^}
{£ }
Для того чтобы доказать алгоритмическую неразреши-
неразрешимость проблемы распознавания пустоты пересечения двух
произвольных КС-языков, нам понадобятся некоторые
вспомогательные утверждения.
Лемма 4.2.1. Множество L (х, у) [) Ls не содержит
ни одного бесконечного К С-языка.
Доказательство. Допустим, что множество
L(x, у) [\LS содержит некоторый бесконечный КС-язык L.
Каждая цепочка z£L(x, у) П Ls имеет вид
a. z=eice2ceRce1*, где е^ — ЬаЪ .. .bali, /с>1, 1<£7-<тг
для каждого /, и ег = х\1... xih = yi1 .. . yik.
Отсюда следует, что
b. цепочка ег определяет цепочку z в том смысле,
что если е$егсе\сеЪ, е$егсе*се* 6 L (х, у) П Ls, то е2 = е3,
т. е. ^^ ^^
Далее, поскольку L есть КС-язык, то, согласно лем-
лемме 3.1.1, существуют числа р и q, такие, что
1?4 Гл. 4. Алгоритмические проблемы
c. если z £ L и \ z \^ р, то z можно представить
в виде z = U\\iu2vu3, где | uv | ^ 1, | ии2и \]^q
и UiUmu2umU3 6 £ Для всех т ^ 1.
Поскольку L — бесконечный язык и 2 — конечный
алфавит, множество { | z \ \ z £ L} бесконечно. Поскольку
I zt | , | г/г | >- 1 для каждого i, существует цепочка
z = eiCe^ce^cef 6 £> такая, что \ z \^> p и | е2 | ^ д.
Пусть разбиение z = U\uu2vu3 удовлетворяет условию с.
Тогда
d. z = e^ce^ce^cef
Таким образом, |z|=2|
+ | м3 | , откуда
так как | e2 I ]> д. Следовательно, либо | uY \ ^ | е^ \ + 1,
либо | м3 I ^ I ^i I + 1. Согласно с, z' = UiU2u2u2u3 £ L.
Тогда найдутся цепочки е3 и е4, такие, что
е. z' = UiU2u2u2u3 = e3ce^cefce^.
Пусть | Mi | ^ | £i | + !• Ввиду d цепочка ^с является
в этом случае началом цепочки i^. Тогда из того, что
символ с не входит в цепочки е^ и е3, следует в силу е,
что е3 = ^i. Из Ь и из того, что е^ = е3, в свою очередь
следует, что z = z'. Последнее, однако, невозможно, так
как |z'|=|z|+|m|+|i;|>|z|. Пусть | и3 \ >
^ | ei I + 1- Тогда цепочка eel* является концом цепочки
и3. Отсюда тоже следует, что ei = e3 и, следовательно,
z = z'', что невозможно. Итак, множество L (х, г/) f! Ls
не содержит ни одного бесконечного КС-языка.
С помощью только что доказанной леммы мы получим
теперь следующее вспомогательное утверждение.
Лемма 4.2.2. Пусть % есть гомоморфное отображе-
отображение множества {а, Ь, с}* во множество {а, Ь}*, опреде-
определяемое равенствами т (а) = bab, т (b) = ba2b, т (с) =
— ba3b. Тогда множество % [L (х, у)] fl t (^s) не содержит
ни одного бесконечного КС-языка.
Доказательство. Пусть S = (К, 2, A, S, А,, р4)
— конечный преобразователь, описываемый табл. 4.1.
Тогда Sx (а) = 5 (ЬаЬ) - а, 5т (Ь) - 5 (Ьа2Ь) - Ь,
S% (с) - 5 (Ьа3Ь) - с и S (рь ЬаЬ) - S (plf Ьа2Ь) -
= б (ри ЬаЩ = р1в Таким образом, /St ((?) = Q для вся-
4.й. Основные алгоритмически Неразрешимые проблемы 175
Таблица 4.1
Pi
P2
Рз
P4
a
Ръ е
Рз» e
P4» e
Рь е
Рь е
Pi, «
Рь &
Pu о
кого подмножества Q с: {а, Ь, с}*. Поскольку отображе-
отображение т является взаимно однозначным, имеем т [L (х, у)] f|
р| х (Ls) = т [L (о:, г/) f| L8]. Допустим, что множество
т [L (х, у)] П т (^«) содержит некоторый бесконечный
КС-язык X. Поскольку отображение £4 является взаимно
однозначным, имеем 5т [L (х, у) (\ Ls] = 5т [L (х, у)] П
fl 5т (Ls) = L (х, у) П ^s- Поэтому множество
L (х, у) {] Ls = Sx [L (х, у) П Ls] содержит бесконечный
КС-язык 5#(Х), что противоречит лемме 4.2.1. Итак,
множество т [L (х, у)] {] х (Ls) не содержит ни одного
бесконечного КС-языка.
В следующей лемме доказывается алгоритмическая
неразрешимость проблемы распознавания пустоты пере-
пересечения двух произвольных КС-языков.
Лемма 4.2.3. Ни для одного из следующих вопросов
не существует алгоритма, который давал бы ответ на него
для всякого множества вида L (х, у): (а) является ли мно-
множество L (х, у) П Ls пустым', (Ь) является ли множество
х [L (х, у)] П т (Ls) пустым (т — гомоморфное отображе-
отображение из леммы 4.2.2).
Доказательство, а. Множество L (х, у) П Ls
состоит из всех цепочек вида ba%h . . . ba^cx^ . . .
. . . xikcyfh . . . yficabb . . . агьЬ, где к > 1, 1 < ih < п,
и xtl . . . xik = ytl . . . yih. Таким образом, L (х, у) П
fl Ls = 0 тогда и только тогда, когда для систем х и у
не существует решения проблемы соответствий. Поэтому
из алгоритмической неразрешимости последней проблемы
вытекает алгоритмическая неразрешимость первой.
176 Гл. 4. Алгоритмические проблемы
Ь. Очевидно, т [L (х, у)] {] х (Ls) = 0 тогда и только
тогда, когда L (х, у) {] Ls = 0. Остается воспользо-
воспользоваться пунктом а.
В пределах настоящей главы мы будем иметь дело
с основными алфавитами 2, содержащими не менее п
символов, где п = 1, 2, 3, 4 или 5. Мы можем считать, что
2 состоит из символов а и Ь, если п = 2, а, Ъ и с, если
п — 3, и т. д. (в противном случае соответствующие сим-
символы можно переименовать).
Докажем алгоритмическую неразрешимость проблемы
распознавания «контекстной свободности» языка, являю-
являющегося пересечением двух произвольных КС-языков в дву-
буквенном алфавите.
Теорема 4.2.1. Пусть 2 содержит по меньшей
мере два символа. Не существует алгоритма, позволяю-
позволяющего по произвольным двум КС-грамматикам 6?i и G2
с основным алфавитом 2 узнать, является ли множество
L (d) П L (G2) КС-языком.
Доказательство. Множество L — L (х, у) f|
П Ls является либо пустым, либо бесконечным. (Если
WiCiv^cwfcwf £ L (х, у) П Ls, то w^cw^c {wf)n с (wf)n £ L
для всех п ^ 1.) Поэтому множество т [L (х, у)] {] т (Ls),
где т — гомоморфное отображение из леммы 4.2.2, также
либо пусто, либо бесконечно. Ввиду леммы 4.2.2 мно-
множество т [L (х, у)] П т C^s). не может быть бесконечным
КС-языком. Следовательно, это множество является КС-
языком тогда и только тогда, когда оно пусто. Согласно
лемме 4.2.3, не существует алгоритма, позволяющего
устанавливать пустоту множества т [L (х, у)] {] т (Ls).
Поскольку языки L (х, у) и Ls являются контекстно-сво-
контекстно-свободными, а т — гомоморфизм, языки т [L (х, у)] и т (Ls)
тоже являются контекстно-свободными. Остается поло-
положить Li = % [L (х, у)] и L2 = т (Ls).
Перейдем к вопросу об определении по двум произ-
произвольным КС-грамматикам Ct и G2, совпадают ли порож-
порождаемые ими КС-языки. Сначала нам придется доказать
несколько лемм, в которых устанавливается, что некото-
некоторые множества являются КС-языками.
Лемма 4.2.4. Множество {а, Ь, с}* — L (х, у)
является К С-языком.
4.2. Основные алгоритмически неразрешимые проблемы 17?
Доказательство. Мы определим вспомогательные
КС-языки Ми .. ., М6 и докажем, что {а, 6, c}* — L (х, у) ^=
= U Мг. Пустьж = (*ь ..., хп) лу=(уи ..., */„). Положим
М4-{a, 6}*UK Ь}* с {а, Ь}* U
U [{а, &}* с]2 {а, 6}* U [{а, 6}* с]* {а, 6, с}*.
Множество {а, 6, с}* —М4 состоит из всех цепочек в ал-
алфавите {а, Ь, с} *, содержащих в точности три вхождения
символа с. Пусть
М2^{а, с}{й,М}*иКМГКс}и{а,^}^2К^ с}*.
Таким образом, М2 состоит из всех цепочек, которые
начинаются и кончаются символом а или с, и всех цепо-
цепочек, содержащих подцепочку с2. Пусть, далее,
М3 = {а, Ь}* Ъ* {а, Ь}* с {а, 6, с}* U {а, 6, с}* с {а, 6}* б2 {а, 6}* U
U {а, 6}* be {а, 6, с}* U {а, Ь, суСЪ{а, Ъ}\
Таким образом, множество М3 состоит из всех цепочек,
которые содержат вхождения подцепочки б2, предшест-
предшествующие первому вхождению символа с или следующие
за последним вхождением символа с, и все цепочки,
в которые символ Ъ входит непосредственно слева от пер-1
вого вхождения символа с или непосредственно справа
от последнего вхождения символа с. Положим
М4-{а, Ь}*ап+1{а, Ъ}*с{а, 6, c}*U
UK 6, с}* с {а, Ъ}*ап^{а, Ъ}\
Таким образом, множество М4 состоит из всех цепочек,
содержащих вхождения подцепочки ah, где fe^n + 1,
либо до первого, либо после последнего вхождения сим-
символа с.
Все множества Ми М2, М3, Mk регулярны, и, следо-
следовательно, являются КС-языками. Положим Я =
4
= {а, Ь, с}* — U Mt. Выясним структуру множества Я.
1
Множество Mi состоит из всех подцепочек, в которых
число вхождений символа с не равно трем. Множество
М2 U М3 U ^4 состоит из всех цепочек (а) начинаю-
1?8 Гл. 4. Алгоритмические проблемы
щихся или оканчивающихся символом а; (Ь) начинающих-
начинающихся или оканчивающихся символом с\ (с) содержащих под-
подцепочку с2; (d) содержащих вхождение подцепочки Ъ2
до первого или после последнего вхождения символа с;
(е) содержащих вхождение символа Ъ непосредственно
слева (справа) от первого (последнего) вхождения симво-
символа с\ (f) содержащих вхождения подцепочки ah+1, где
А^-га + 1» либо до первого, либо после последнего
вхождения символа с. Таким образом, множество Н
состоит из всех цепочек вида
bah . . . ba^cucuca^b . .. ajmb,
где u,v£[{a,b}* — {e}], k,m>i и l<ir, js<n.
4
Отсюда следует, что множество \jMt = {a, 6, с}* — Я регу-
регулярно и, следовательно, является КС-языком. Нам оста-
осталось объединить множество {а, 6, с}* — Н с некоторым
КС-языком так, чтобы получилось множество {а, 6, с}* —
— L{x,y).
Каждой непустой цепочке w£{a, b}* сопоставим мно-
множества
О(ш)=г{ифг\и£{а, &}*, |и|<|м;|}
и
/ (w) ={иф е | и£{а, 6}*, |м| = |и;|, м^ы;}.
Каждой системе п непустых цепочек в алфавите {а, Ь}
w — \pu . .., wn) сопоставим множество
M{w)=c {a, 6}* {a, b}\jb {a, b)* с [}
п
U U U фа%си U ЬагЪ{а, &}* си) [}
U U U фа1 с {а, &}* и U balb {a, b}* с {а, Ь}* и).
п
Пусть G = (F, 2, Р, а) есть КС-грамматика, порождаю-
порождающая язык М (ж), и С = (V, 2, jP', a') — КС-грамматика
с аксиомой a' g V и множеством правил jP' = jP (J
U {a' ->• а, а' ->■ Ьа1о'хг | 1 ^ i ^ тг}. Каждая цепочка
из языка L (С) содержит в точности одно вхождение
4.2. Основные алгоритмически неразрешимые проблемы 179
символа с. Более того, L (Gf) fl L (х) = 0 и множество
L (Gr) содержит множество
{bah .. . Ъа{Чю\тф х\х ...#$, w£{a, Ь}*}.
Пусть M5 = L {Gf) с {а, Ь, с}*. Тогда множество М5^Н
состоит из всех цепочек множества //, имеющих вид
(*) bak . .. ba^cucvcaH ... a?mb,
где и 6 {а, 6}* и и Ф xh . . . rcifc. Пусть Gt = (Vu 2,
Рь т) есть КС-грамматика, порождающая язык [М (y)]R,
и G2 = (Vj, 2, Р^, г') — КС-грамматика с аксиомой
%' £Vi и множеством правил Р[ = Pi (J {г' ->■ г,
%' -> yf т'а*Ь | 1 < i < ^г}. Пусть М6 = {а, 6, c}*cL (G2).
Аналогично предыдущему видим, что множество М6 f| -H"
состоит из всех цепочек множества Я, имеющих вид (♦),
но таких, что vR Ф у^ . . . у$т. Таким образом,
[{а, 6, су-Н\\}Мъ\)Мъ= U Мг = {а, 6, c}*-L(^, у).
Лемма 4.2.5. Язык {а, Ь}* — г [L (х, у)], где % —
гомоморфное отображение из леммы 4.2.2, является кон-
контекстно-свободным.
Доказательство. {а, Ь}* — г [L (х, у)] =
- ({а, Ь}* - г [{а, 6, с}*]) [) (г [{а, 6, с}*] -
— %[L (x, у)]). Поскольку множество г [{а, Ь, с}*] являет-
является регулярным, множество {а, Ь}* — г [{а, Ь, с}*] также
регулярно. Поскольку
г [{а, Ь, с}* — Ь(ж, г/)] -г [{а, Ь, с}*] — г [L (х, у)],
х [{а, Ь, с}*] — г [L (ж, г/)] является КС-языком. Следо-
Следовательно, язык {а, Ь}* — % [L (х, у)] тоже является кон-
контекстно-свободным.
Из равенства 2* — г [L (х, у)] = B* — {а, Ь}*) U
U ({а, Ь}* — т [L (ж, у)]) вытекает следующее утвер-
утверждение.
Следствие 4.2.1. Если 2 содержит не менее двух
символов, то язык 2* — г [L (х, у)] является контекстно-
свободным.
180 Рл. 4. Алгоритмические проблемы
Лемма 4.2.6. Язык {а, Ь, с}* — Ls является кон-
контекстно-свободным.
Доказательство. Мы построим контекстно-
свободные языки Ми М2 и М4, такие, что {а, Ь, с}* —
— Ls = M{ U М2 U М4. Пусть Ми как в лемме 4.2.4,
состоит из всех цепочек в алфавите {а, Ь, с}, в которых
число вхождений символа с не равно трем. Мы уже знаем,
что Mi есть КС-язык. Пусть G{ = GЬ 2, Рь а4) есть
КС-грамматика, порождающая множество {а, Ь}*, и 6?2 =
= (F2, 2, Р2, а2) — КС-грамматика с аксиомой а2 £ Vu
алфавитом V2 = Vx \] {a2} и множеством правил
Р% = Р\ U (а2 "^ ^^2а? а2 ~~^ Ьа2Ь, а2 ->• а (K
а2 ->■ а (а^K а^Ь, а2->■ Ь (а^K, а2 -> Ь (о{сK а^, а2- (^
а2 ->■ (catK Ь}. Множество М2 = L (G2) состоит в точности
из цепочек вида w^cw^cw^cw^ где wt £ {а, Ь}* A ^ i ^ 4)
и w;4 ~£ wf. Пусть G3 = (F3, 2, ^з, ^з) есть КС-грамма-
КС-грамматика с аксиомой а3 6 Vu алфавитом V3 = У\ U {°з}
и множеством правил Ps = Pi [} {о3 ->- ао3а, а3 -> Ьст3Ь,
а3 ->- са^, а3 -^са^}. Множество М3 = L F?3) состоит из
всех цепочек вида w2cw3, где w;2> w3 g {a, 6}* и^^ ^f.
Пусть М4 = {а, Ь}* сМ3с {а, Ь}^; М4 состоит в точно-
точности из цепочек над алфавитом {а, Ь}, имеющих вид
ivicw2cwscw^ где и;3 Ф wf. Поскольку {а, Ь, с}* — Ls =
= М{ U M2 U М4, то язык {а, Ь, с}* — Ls является
контекстно-свободным.
Аналогично тому, как из леммы 4.2.4 была получена
лемма 4.2.5, легко установить следующий результат.
Лемма 4.2.7. Множество {а, Ь}* — % C^s)? г^е % —
гомоморфизм из леммы 4.2.2, является К С-языком.
Следствие 4.2.2. Если 2 содержит не менее двух
символов, то множество 2* — % (Ls) является КС-языком.
Лемма 4.2.8. Пусть 2 содержит по меньшей мере
два символа и М^ (х, у) = 2* — (г [L (х, у)] {] г (Ls)),
где % — гомоморфизм из леммы 4.2.2. Тогда язык Mi (x, у)
является контекстно-свободным и не существует алго-
алгоритма, позволяющего определить, совпадает ли он со мно-
множеством 2 *.
4.2. Основные алгоритмически неразрешимые проблемы 181
Доказательство. М4 (х, i/) = 2* — (г [L (я, г/)] П
()%(LS)) = B* - г [L (х, у)]) U B* - x(L8)). Согласно
следствиям 4.2.1 и 4.2.2, множества2* — г [L (х, у)]
и 2* — г (Ls) являются КС-языками. Поэтому и язык
Mi (х, у) является контекстно-свободным. Далее,
М{ (х, у) = 2* тогда и только тогда, когда 2* —М\ (х, у) —
= %[L (х, у)] (]х (Ls) = 0. Однако г [L (ж, г/)] fl ^ (^s) =
— г [L (x, y)(]Ls] = 0 тогда и только тогда, когда
^ (#> I/) fl^s = 0- Остается воспользоваться леммой 4.2.3.
Ясно, что множество г [L (я, у)] 0 ъ (Ls) является
либо бесконечным, либо пустым. В силу леммы 4.2.2
язык г [L (х, у)] П t (^s) не может быть бесконечным
регулярным множеством. Таким образом, множество
Mi (х, у) = 2* — (т [L (х, у)] П т (Ls)) либо совпадает
со множеством 2*, либо не является регулярным. Отсюда
вытекает следующее утверждение.
Теорема 4.2.2. Язык Mi (x, у) из леммы 4.2.8
является регулярным множеством тогда и только тогда,
когда Mi (x, у) = 2*. Таким образом, проблема распо-
распознавания регулярности КС-языка над алфавитом, содер-
содержащим не менее двух символов, является алгоритмически
неразрешимой.
Теперь у нас готово все, чтобы получить два основных
результата об алгоритмических проблемах для КС-языков.
Теорема 4.2.3. Пусть 2 содержит не менее двух
символов. Не существует алгоритма, позволяющего по
произвольным К С-грамматикам Gi и G2 определить (а)
имеет ли место включение L (Gi) e L F?2); (Ь) совпадают
ли языки L (Gi) и L (G2).
Доказательство. Пусть Mi (x, у) — язык из
леммы 4.2.8. Ясно, что {a, b}* e Mi (x, у) тогда и только
тогда, когда Mi (x, у) = {а, Ь}*. Вопрос же о совпаде-
совпадении языков Mi (x, у) и {а, Ь}*, согласно лемме 4.2.8,
является алгоритмически неразрешимым. Отсюда немед-
немедленно следует (а). Чтобы доказать (Ь), достаточно заме-
заметить, что Mi (х, у) = {а, Ь}* тогда и только тогда, когда
{а, Ь}* g= Mi (x, у).
Из теоремы 4.2.3 (Ь) следует, что в принципе невоз-
невозможна эффективная механическая процедура, позволяю-
182 Гл. 4. Алгоритмические проблемы
щая по двум произвольным КС-грамматикам узнать,
порождают ли они один и тот же КС-язык. Поскольку
невозможно алгоритмическое решение этого основного
вопроса, мы должны ожидать алгоритмической неразре-
неразрешимости и других, более сложных проблем. И действи-
действительно, мы увидим, что наиболее интересные проблемы
в классе КС-языков оказываются неразрешимыми.
Тема для исследования. Найти класс КС-языков, в котором
существует алгоритм, позволяющий по произвольным КС-грам-
КС-грамматикам Gi и &2 определить A) совпадают ли языки L F^) и L (бу
и B) имеет ли место включение L F^) с L (G2). (Таковыми являют-
являются класс всех регулярных множеств [PC] и рассматриваемый в пятой
главе настоящей книги класс всех ограниченных КС-языков.)
Открытые вопросы. 1. Существует ли алгоритм, позволяющий
по двум произвольным детерминированным МП-автоматам Mi
и М% узнать, распознают ли они один и тот же КС-язык? (Из лем-
леммы 4.2.8 следует, что этот вопрос алгоритмически неразрешим, если
один из МП-автоматов детерминированный, а другой произвольный.)
2. Пусть G — произвольная КС-грамматика, о которой извест-
известно, что она порождает регулярное множество. Существует ли алго-
алгоритм, позволяющий построить по G праволинейную КС-грамматику
£', такую, что L (G1) = L (G)?
3. Существует ли алгоритм, позволяющий по произвольным
КС-грамматикам 6^ и 6?2, порождающим с-конечные языки,
узнать, имеет ли место равенство L (Gi) = L FУ?
Упражнения 4.2
1. Показать, что если последовательность индексов ц, ..., ?'&,
является решением проблемы соответствий (т. е. м??. ... wtk =
==Уп ••' yik)'> то Для всякого />1 последовательность индек-
индексов (ц, ..., ik)i тоже является решением проблемы соответствий.
(Более того, если (i[{), ..., t^i))' •••» (*1Г)> •■•» 1Цг)^ ~ решения
проблемы соответствий, то всякая последовательность индексов
из множества {(г[{\ ..., ij^), ..., (i([\ ..., i$r))}* — {£} тоже
является решением проблемы соответствий.) Таким образом, если
проблема соответствий имеет хоть одно решение, то она имеет
бесконечное множество решений.
2. Показать, что не существует алгоритма, позволяющего
по произвольным конечным преобразователям S и Т определить,
существует ли цепочка х £ 2* — {е}, такая, что S (х) = Т (х).
3. Показать, что существует алгоритм, позволяющий по всяким
двум синхронным конечным преобразователям S и Т определить,
существует ли цепочка х £ 2* — {е}, такая, что S (х) = Т (х).
4.2. Основные алгоритмически неразрешимые проблемы 183
(Указание. Пусть S = (Ks, 2, As, бя, A,s, Pi) и Г =
— (КТ, 2, Лг, бг, А,г, tfi)- Рассмотрим синхронный конечный
преобразователь
U= (KSX Кт, 2, As X Лг, бе;, ku, (Pi, ?i))>
где 6j/ ((р, ?), а) = FS (р, а), бг (?, а)) и Яу ((р, ?), а) =
= (Хв (Р. а), ^г <?, а)) Для всех (р, g) £ #s X Кт и а £ 2. Нетруд-
Нетрудно видеть, что д: £ 2* — {е}, такое, что 5 (ж) = 71 (ж), существует
тогда и только тогда, когда U (R) П {(&» &) I Ъ £ As fl Лг}* Ф
Ф0, где Л- {(а, а) | а £ 2 }* - {е}.)
4. Пусть 2 содержит только один символ. Показать, что суще-
существует алгоритм, позволяющий по произвольным системам
(н>1, . . ., wn) и (г/!, . . ., уп) цепочек из 2* определить, существует
ли последовательность индексов iit . . ., ik, такая, что
«Чг- ■ ■ % = 'Лг ■ ■ ■ Vih-
5. Пусть 2 = {а, Ъ). Для каждой из следующих пар систем
цепочек (шь . . ., wn), (г/i, . . ., уп) определить, существует ли
последовательность индексов ц, . . ., ih, такая, что wix . . . wt =
a. (a, aab, Ьа3), (аа, bb, a).
b. (а, аЬ, aab, Ьа), (аа, ba, aba, bb).
c. (bb, baa, ab, aa), (ab, ba, aa, aba).
d. (ab, aab, bb, aa), (ba, aa, baa, ab).
6. Пусть 2 = {a, b, с) и h(n) = Ъап для каждого п > 0.
Для каждой системы w = (шь . . ., wn) непустых цепочек из
{а, Ь}* положим
Доказать следующие утверждения [GS1]:
a. Н (w) есть КС-язык.
b. Если у — (iji, . . ., уп) и z = (zi, ...,%) — произвольные
системы непустых цепочек из {а, Ь}*, то Н (у)/Н (z) = {e}, если
существует решение проблемы соответствий для у и z, и
i/ (уIН (z) =■ 0 в противном случае.
c. Не существует алгоритма, позволяющего по произвольным
КС-грамматикам G\ и 6?2 определить, является ли множество
L (Gi)/L (G2) КС-языком.
7. Пусть х = (ЬаЬ; а2Ь, Ь2а, Ь). Какая из следующих цепочек
принадлежит множеству L (х) ? (a) ba3bacbab3a, (h) ba*ba3ba2ca2bab3',
(с) Ъа*Ьа2са2ЪЪ.
8. Показать, что не существует алгоритма, позволяющего
по произвольным L (х) и L (у) определить, является ли пересечение
L (x) f) L (у) пустым множеством [BPS].
9. Дать другое доказательство леммы 4.2.4, построив детер-
детерминированный МП-автомат М, такой, что Т (М) = L (ху у),
184 Гл. 4. Алгоритмические проблемы
10. Дать другое доказательство леммы 4.2.6, построив детер-
детерминированный МП-автомат М, такой, что Т (М) = Ls.
И. Пусть 2 содержит не менее двух символов и S есть такой
конечный преобразователь, что S (х) Ф S (у) для всех х Ф у
(ж, у £ 2*). Показать, что не существует алгоритма, позволяющего
по произвольной КС-грамматике G определить, имеет %ли место
равенство L (G) = S B*).
12. Пусть 2 = {а, Ь}. Доказать, что не существует алгоритма,
позволяющего по произвольной КС-грамматике узнать, существует
ли гомоморфизм /, такой, что / (L (G)) =2*.
13. Пусть 2 содержит не менее двух символов. Доказать
[BPS], что не существует алгоритма, позволяющего по произволь-
произвольной КС-грамматике G определить (а) пусто ли множество 2* —
— L (G), (Ъ) является ли КС-языком множество 2* — L.
14. Пусть 2 содержит не менее двух символов. Доказать, что
не существует алгоритма, позволяющего по произвольной КС-грам-
КС-грамматике узнать, является ли порождаемый ею КС-язык детерми-
детерминированным.
15. Пусть 2 содержит по меньшей мере три символа. Доказать,
что не существует алгоритма, позволяющего по произвольной КС-
грамматике определить, порождает ли она линейный язык [Gr'5].
(Указание. Пусть с— выделенный символ из 2. Доказать, что,
каков бы ни был КС-язык L с B — (с})*> язык LcL является
линейным тогда и только тогда, когда L — регулярное множество.
Затем воспользоваться теоремой 4.2.2.)
16. Пусть 2 содержит не менее двух символов. Показать, что
не существует алгоритма, позволяющего по произвольной КС-грам-
КС-грамматике G узнать, имеет ли место равенство Init [L (G)] — L (G).
17. Пусть 2 = {а, Ъ, с) и/ — следующая функция на {а, Ь}*:
/ (Ьп) = an+1, f (wabn) = wban для всех п > 0 и w £ {а, Ь}*.
Пусть /° (е) = f и для каждого i !> 0 fi+1 (e) = / [/* (е)], vt =
= fl (е) с [/* (е)]в. Далее, пусть Е - Init ({cv0 . . . cvk \ к > 0}).
Показать, что не существует алгоритма, позволяющего по произ-
произвольной КС-грамматике G с основным алфавитом 2 определить,
имеет ли место включение Е с L (G) [GHU]. (Указание: рассмотреть
множество L (М) — Init [(cM)*].)
18. Пусть 2 и / — те же, что в предыдущем упражнении.
Далее, пусть А\ = {wRcf (w) \ w £ {а, Ь}*}, А2 = {wcwR | w £
6 {а, &}*}, А = Init [ее (Л4с)*], В = Init [с (А2с)*].
a. Показать, что А и В являются КС-языками.
b. Будем говорить, что множество L содержит последователь-
последовательность, если существует бесконечная последовательность {^^}i:>1
символов из 2, такая, что {х^ . . . хп \ п >- 1} с L. Показать,
что не существует алгоритма, позволяющего по произвольной
КС-грамматике G с основным алфавитом 2 узнать, содержит ли
множество A f] В f] L {G) последовательность.
4.3. Проблемы, связанные с конечными преобразованиями 185
с. Пусть ть т2 и т3 — следующие отображения, определенные
на 2* : тг (е) = е, тг (хг) = zj, %t {xi . . . хп) = х\ . . . ^^
для i = 1, 2, 3; п > 1 и xt £ 2. Показать, что т4 (Л) [J т2 E) (J
(J т3 (X) содержит последовательность тогда и только тогда, когда
А (~) В [) X содержит последовательность. Отсюда следует, что
не существует алгоритма, позволяющего по произвольной КС-грам-
КС-грамматике с основным алфавитом 2 узнать, содержит ли порождаемый
ею язык последовательность [GHU].
19. Пусть 2 — алфавит, содержащий по меньшей мере два
символа. Показать, что не существует алгоритма, позволяющего
по произвольной КС-грамматике с основным алфавитом 2 узнать,
содержит ли порождаемый ею КС-язык последовательность [GHU].
20. Показать, что существует алгоритм, позволяющий по про-
произвольному детерминированному МП-автомату М и произвольному
конечному автомату К узнать, имеет ли место равенство Т (М) =
= Т (К) [GG].
4.3. Алгоритмические проблемы, связанные
с конечными преобразованиями
Теорема о конечных преобразованиях утверждает, что
каковы бы ни были КС-язык L и конечный преобразова-
преобразователь S, множество S (L) является КС-языком. Естественно
возникает вопрос, для всяких ли двух КС-языков L4 и L2
найдется конечный преобразователь S, такой, что S (L4) =
= L2. Нетрудно видеть, что ответ на этот вопрос является
отрицательным (см. упр. 3.4.4). Такое положение вещей
приводит к проблеме существования алгоритма, позво-
позволяющего по произвольным двум КС-грамматикам G± и G2
определить, найдется ли конечный преобразователь S,
такой, что S [L (d)] = L (G2).
Лемма 4.3.1. Пусть 2 содержит не менее двух
символов. Не существует алгоритма, позволяющего по
произвольной КС-грамматике G определить, существует
ли конечный преобразователь S, такой, что S B*) = L (G).
Доказательство. Рассмотрим множество
Mi (х, у) = 2* — (т [L (х, у)] Г) т (Ь8)), где т — гомо-
гомоморфное отображение из леммы 4.2.2. Согласно лемме
4.2.8, язык Mi (x, у) является контекстно-свободным.
Предположим, что L (х, у) р, Ls = 0. Тогда т [L (х, у)] П
П т (Ls) = 0 и Mi (x, у) = 2*. Поэтому если S есть
конечный преобразователь с одним состоянием, преобра-
186 Гл. 4. Алгоритмические проблемы
зующий каждый символ х^И в себя, то S B*) =
= Mi (х, у). Предположим, что L (х, у) fl Ls Ф 0. Вслед-
Вследствие леммы 4.2.1 множество L (х, у) f) Ls не является
КС-языком. Поскольку образ КС-языка при отобра-
отображении т является КС-языком и L (х, у) f\ Ls =
= т (т [L (х, у) П L8]), то язык т [L (х, у) П L8] =
= т [L (х, у)] П t l^sl не является контекстно-свободным.
Поэтому множество т [L (х, у)] П т №s], а следовательно,
и его дополнение Mi (x, у) не являются регулярными.
Поскольку S* есть регулярное множество и конечный
преобразователь преобразует всякое регулярное множе-
множество в регулярное, никакой конечный преобразователь
не может отображать 2* на М\ (х, у). Таким образом,
конечный преобразователь S, такой, что S B*) =
= Mi (x, г/), существует тогда и только тогда, когда
L (х, у) [} Ls = 0. Однако, согласно лемме 4.2.3, про-
проблема распознавания пустоты множества L (х, у) f| Ls
является алгоритмически неразрешимой.
Из леммы 4.3.1 мы получаем теперь следующий ре-
результат.
Теорема 4.3.1. Пусть 2 содержит по меньшей
мере два элемента. Не существует алгоритма, позволяю-
позволяющего по произвольным К С-грамматикам Gt и G2 опреде-
определить, найдется ли конечный преобразователь S, такой,
что S [L (Gt)] - L (G2).
Замечание. Лемма 4.3.1 и теорема 4.3.1 сохра-
сохраняют силу и для синхронных конечных преобразователей
(доказательства не меняются).
Открытые вопросы. 1. Существует ли алгоритм, позволяющий
по.двум произвольным регулярным множествам Li и Ь2г) опреде-
определить, найдется ли конечный преобразователь S, такой, что S (Li) =
= L2? (Некоторое семейство регулярных множеств, для которых
названный алгоритм существует, описано в [КТО], еще одно
в упр. 4.3.4.)
2. Пусть Gi и G2 — произвольные КС-грамматики. Существует
ли алгоритм, позволяющий в случае, когда существует конечный
преобразователь S, такой, что S [L (G^)] = L F?2), построить S
по Gi и £2?
*) Точнее, по двум конечным автоматам, допускающим множе-
множества Li и L3 — Прим. ред.
4.3. Проблемы, связанные с конечными преобразованиями 187
Пусть Li есть КС-язык над алфавитом 2 и L2 есть
КС-язык над алфавитом А. Рассмотрим вопрос о существо-
существовании конечного преобразователя, отображающего L4
в L2. Если L = 0, то искомый конечный преобразова-
преобразователь существует тогда и только тогда, когда LY — 0.
Если е £ Li, то искомый конечный преобразователь суще-
существует тогда и только тогда, когда e£L2 (тогда можно
отобразить всякую цепочку в е); в то же время существуют
алгоритмы, позволяющие по произвольной КС-грамма-
КС-грамматике G определить, принадлежит ли е языку L (G) и являет-
является ли язык L (G) пустым (теоремы 4.1.1 и 4.1.2). Предпо-
Предположим теперь, что Ь2Ф 0 и е g L4. Пусть w — некото-
некоторая цепочка из L2 и S = ({pi, р2}, 2, А, б, X, pi) — конеч-
конечный преобразователь, такой, что б (р1? х) = б (р2, ж) =
= Р2> ^ (Pi» Х) = W И X (р2, Ж) = 8 ДЛЯ ЛЮ60Г0 X £ S.
Тогда *S (L^ = {w;} ^ L2. Таким образом, в этом
случае вопрос решается тривиально. Чтобы исключить
указанное тривиальное решение, заменим этот вопрос
другим: существует ли алгоритм, позволяющий по про-
произвольным КС-грамматикам Gi (с основным алфавитом 2)
и 6г2 (с основным алфавитом А) узнать, найдется ли конеч-
конечный преобразователь S, такой, что (a) S [L (Gi)] ^ L (G2)
и (b) S [L (Gi)] является бесконечным множеством, если
множество L (Gi) бесконечно? Мы покажем, что ответ
на этот вопрос — отрицательный.
Лемма 4.3.2. Множество X сз 2* тогда и только
тогда содержит бесконечное регулярное множество, когда
X содержит множество W\W*w% для подходящих цепочек
Wi, w2, w3 6 2*, причем w2 Ф е.
Доказательство. Предположим, что X содер-
содержит подмножество WiW*w3, w2 Ф е. Тогда это подмно-
подмножество, являясь регулярным и бесконечным, удовлетво-
удовлетворяет условию леммы. Предположим, что X содержит
некоторое 'бесконечное регулярное множество R. Суще-
Существует конечный автомат .4 = (К, 2, б, s0, F), такой, что
R = Т (А). Поскольку R бесконечно, оно содержит цепоч-
цепочку х\ ... хг, такую, что xt g 2 A ^ i ^ г) и г ^ я, где
п = ф (К). Пусть st = б (st _i, хг) для всех i A <; i ^ г).
Тогда 5r g F, так как xY . . . хг £ Т (А). Поскольку длина
последовательности состояний s0, 5ь • • м ^г больше ^г,
188 . Гл. 4. Алгоритмические проблемы
найдутся i и /, такие, что i < / и st = s7-. Пусть и^ =
= #! . . . хг (или и?! = е, если i = 0), w;2 = хг + 1 . . . Xj
и w3 = #/+1 . . . #г (иди и;3 = е> если / = г). Поскольку
i < /, имеем w2 Ф е. Для каждого к >- 0
б E0, и^юз) = 6 (Sj, m?Ju;3) =
= б (Sj, ws) (так как st = Sj) =
= sr.
Поэтому WiW^Ws 6 T (А). Таким образом, WiW^Ws ^ X.
Лемма 4.3.3. Пусть S содержит по меньшей мере
четыре элемента. Тогда не существует алгоритма, позво-
позволяющего по произвольной КС-грамматике с основным алфа-
алфавитом 2 определить, содержит ли порождаемый ею язык
бесконечное регулярное множество.
Доказательство. Пусть y = (yi, . . ., уп) — система
непустых цепочек в алфавите {а, Ъ) и G(y) = (Vy, {a, b, с},
Ру, о у) есть КС-грамматика, порождающая язык L(y).
Далее, пусть в алфавите {а, Ь} для любых систем
У = {у и • • -,Уп), z = (zu ...,zn) непустых цепочек G (у, z) =
= (Vyt z, {а, Ь, с, d}, РУг z, OyfZ) есть КС-грамматика с алфа-
алфавитом Vyy z = Vy U Vz U {ау> z, d} и множеством правил РУ} z~
= Ру \J Pz [J {Оу, г -> do'yOy, z doz, оУ} z -> daydoz). Тогда
КС-грамматика G(y, z) порождает КС-язык М (у, z) =
оо
= U [dL (y)]r [dL (z)]r. Согласно лемме 4.3.2, множество
г=1
M(y,z) тогда и только тогда содержит бесконечное регу-
регулярное множество, когда оно содержит множество w^v\w^
для некоторых wu w2, w3£{a, b, c, d}*, где ю2фг. Пока-
Покажем, что
а. М (у, z) содержит множество w^w^ для некоторых
w2 ф е, Wi и w3 тогда и только тогда, когда существует
последовательность индексов iu . . ., ik, такая, что
Согласно теореме Поста о проблеме соответствий, не су-
существует алгоритма, позволяющего по произвольным у
и z определить, существует ли последовательность индек-
индексов iu . . ., ik, такая, что yti . . . yik = z^ '. . . z%w
Поэтому из а вытекает алгоритмическая неразрешимость
4.3. Проблемы, связанные с конечными преобразованиями 189
проблемы распознавания свойства множества М (у, z)
содержать бесконечное регулярное множество.
В одну сторону утверждение очевидно (именно если
решение проблемы соответствий для у и z существует,
то М (у^ z) содержит нужное подмножество). Предполо-
Предположим, что множество М (у, z) содержит подмножество
Wiiv^Ws Для подходящих w{, w2, w3 £ {a, b, с, d}*, где
w2 Ф 8. Возможны два случая.
I. Пусть цепочка w2 не содержит вхождений символа с.
Тогда ни для какого i цепочка w\ не содержит вхожде-
вхождений символа с. Кроме того, цепочки w2 и w\ не содержат
вхождений символа d, ибо если w2 содержит вхождение d,
то w\ содержит уже два вхождения d и, следовательно,
содержит вхождение с. Пусть g = max { | yt | , | zt \ | 1 ^
<С i ^ п}. Зафиксируем некоторое 4^1 и рассмотрим
цепочку Wiiv^Ws 6 М (у, z). Существуют число г (к) и цепоч-
цепочки (зависящие от к) pt £ {а, Ь, с}*, pt ф г A ^ i <^
^ Ъг (к)), такие, что
Ь. Wiiv^Ws = dp^ . . . dp2r(k), причем каждая цепочка
dpi принадлежит либо dL (у), либо dL (z).
Ясно, что найдется число i @), такое, что цепочка W\w\
является началом цепочки dpY . . . dpi(^0) и не является
началом цепочки dpY . . . dpim-.Y. Таким образом, цепочка
w3 является концом цепочки dpii0) . . . dp2r(k). Поскольку
цепочка w2 не содержит вхождений символа d, цепочка w\
является подцепочкой цепочки pi{0) . Пусть pt^ — qicq2.
Тогда qi имеет вид Ьа^ . . . Ъа^ и либо q2 =yjx . . . у$8,
либо q2 = Zjx . . . Zjs.
Допустим, что цепочка W\w\ является началом цепочки
dpi . . . dpnQyi dqYcq2, но не является началом цепочки
dpi . . . dpnty-idqi. Тогда цепочка w\ является подцепоч-
подцепочкой цепочки д2, а цепочка dpi . . . dqi — началом цепоч-
цепочки Wi.
Таким образом, в этом случае
с I w% | < | q2 К g | Wt | (поскольку g \ qi \ > | q2 |).
Допустим теперь, что цепочка W\w\ является началом
цепочки dpi . . . dq^ Тогда цепочка w\ является подце-
подцепочкой цепочки qu а цепочка ^2^Pi(o) + i • • • dp2ri<k) — кон-
концом цепочки w3. Таким образом, | q2 \ ^ | w3 |. Поскольку
каждая подцепочка цепочки дь длина KOTopoii равна
190 Гл. 4. Алгоритмические проблемы
2п -(- 2 (удвоенной длине цепочки Ъап), соответствует
по меньшей мере одному вхождению некоторого символа
в цепочку д2, имеет место неравенство
Kl Ы ,<■ ,
Из с и d следует
е. |м;||{
Таким образом, существует лишь конечное число цепо-
цепочек w% и, следовательно, W\w\w^.
П. Цепочка w2 содержит по меньшей мере одно вхож-
вхождение символа с. Пусть т = 8 (| Wi | + I W2 I + I ws I)-
Тогда
f. WiWfws ~ duid . . . dugdvi . . . dus,
где ut £ L (у), vt £ L (z) A ^ i ^ s). Поскольку каждая
цепочка ut и ut содержит в точности одно вхождение сим-
символа с, цепочка WiW^w^ содержит в точности 2s вхождений
символа с. Поскольку цепочка w2 содержит вхождения
символа с, имеем т ^ 2s. Отсюда следует, что 4A^ | +
+ | w2 | + I м>з1) -^ s. Таким образом, \wi | + 4 | w2 |<
<5 и 4 | w2 | + | w;3 I ^ ^- Из f следует, что
g. цепочка W\w\ является началом цепочки dui . . . dus,
а цепочка w\w^ — концом цепочки dvi . . . di;s.
Поскольку цепочка w\ содержит по меньшей мере три
вхождения символа с, она содержит не меньше двух вхож-
вхождений символа d. Таким образом,
h. u;J=feidA2dfe3, где hu /г26 {а, Ь, с}* и,/г3 6 {^ Ь, с, ^}*.
В силу f — h найдутся i и /, такие, что ut = г;у- = Л2.
Тогда L {y)[\L (z) Ф 0, т. е. существуют индексы, удо-
удовлетворяющие условию г/гх • • • yik = Zix . . . z\ .
Следующая лемма представляет собой распространение
предыдущей на случай двубуквенного алфавита.
Лемма 4.3.4. Пусть 2 есть алфавит, содержащий
не менее двух символов. Не существует алгоритма, позво-
позволяющего по произвольной К С-грамматике с основным алфа-
алфавитом 2 определить, содержит ли порождаемый ею язык
бесконечное регулярное множество.
4.8. Проблемы, связанные с конечными преобразованиями 191
Доказательство. Рассмотрим гомоморфное
отображение т множества {а, Ь, с, с?}* во множество {а, Ь}*,
определяемое следующими соотношениями: т (а) = bob,
% (Ъ) = ba2b, х (с) = basb, % (d) = ba*b. Поскольку язык
со
М (у, z) = U ЫЬ (y)V [dL (z)Y является контекстно-сво-
r==l
бодным, таковым будет и язык г [М (у, z)\. Пусть
S = (К, {а, 6}, {а, 6, с, d}, б, Я, pi) есть конечный преоб-
преобразователь, для которого функции S и X определяются
табл. 4.2.
Таблица 4.2
Pi
Рг
Ръ
Pk
Ръ
а
Ръ е
Рз. 8
Р4» е
Рб» е
Pi. e
Pi» В
Pi» a
Ри Ь
Ри'о
Pu d
Тогда S%(x)=x для любой цепочки х£{а, b, с, d}*
и т6т(м) = и для любой цепочки u£{bab, ba2b, basb, ba*b}*.
Для любых множеств Q^M (у, z), Л ^ г[М (у, z)] имеем,
таким образом, Sx(Q)=Q, %S (R) = R. Поскольку и г,
и 5 сохраняют регулярность, множество М (у, z) содержит
бесконечное регулярное множество тогда и только тогда,
когда таковое содержится во множестве %[М (у, z)].
Поэтому в силу леммы 4.3.3 не существует алгоритма,
позволяющего определить, содержит ли множество
%[М(у, z)\ e {a, b}* бесконечное регулярное множество.
Теперь мы можем вернуться к проблеме существования
конечного преобразователя, отображающего один наперед
заданный КС-язык в другой.
Лемма 4.3.5. Пусть 2 — алфавит, содержащий
не менее двух символов. Не существует алгоритма, позво-
позволяющего по произвольной КС-грамматике G с основным
алфавитом 2 определить, найдется ли конечный преобра-
преобразователь, отображающий язык а*Ь на бесконечное подмно-
подмножество языка L (G).
192 Гл. 4. Алгоритмические проблемы
Доказательство. Пусть G — некоторая КС-
грамматика. Предположим, что существует конечный
преобразователь S, такой, что S (a*b) gz L (G) и множе-
множество S (а*Ь) бесконечно. Поскольку а*Ь является бесконеч-
бесконечным регулярным множеством, таковым является и S (а* Ь).
Таким образом, язык L (G) содержит в этом случае беско-
бесконечное регулярное множество. Предположим теперь, что
язык L (G) содержит бесконечное регулярное множество.
Тогда, согласно лемме 4.3.2, L (G) содержит множество
w{w*w3 для подходящих цепочек Wi, w2, w3 f 2*, w2 Ф e.
Пусть S = ({pi, p2}, 2, 2, 6, k, p^ есть конечный преоб-
преобразователь, для которого функции 6 и А, определяются
следующим образом: б (pt, х) = р2 A ^ i ^ 2, х £ 2),
%(ри a) = wu l(pu b) = wlw3, I(p2,a) = w2, k(p2,b) = wz
и К = е в остальных случаях. Тогда S (а*Ь) = ю^т^.
Таким образом, конечный преобразователь S, такой, что
S (a*b) ^ L (G) и S (а*6) — бесконечное множество, суще-
существует тогда и только тогда, когда язык L (G) содержит
бесконечное регулярное множество. В силу леммы 4.3.4
последний вопрос является алгоритмически неразреши-
неразрешимым, лемма доказана.
В качестве следствия мы получаем следующий резуль-
результат.
Теорема 4.3.2. Пусть 2 содержит не менее двух
символов. Не существует алгоритма, позволяющего по двум
произвольным К С-грамматикам Gi и G2 с основным алфа-
алфавитом 2 определить, найдется ли конечный преобразова-
преобразователь, отображающий язык L (Gi) на бесконечное подмноже-
подмножество языка L (G2).
Открытый вопрос. Пусть Gi и G% — произвольные КС-грамма-
КС-грамматики. Пусть известно, что существует конечный преобразователь S,
такой, что S [L (Gi)] a L (G2) и множество S [L (Gi)] бесконеч-
бесконечно. Существует ли алгоритм, позволяющий в этом случае построить
по Gi и G2 конечный преобразователь Г, обладающий этим
свойством 4)?
Упражнения 4.3
1. а. Пусть W = S B*), где S — некоторый конечный пре-
преобразователь. Доказать следующие утверждения [El 2]: A) е £ W\
4) Уллиэн [U2] показал, что такого алгоритма не существует.—
Прим. перее.
4.3. Проблемы, связанные с конечными преобразованиями 193
B) семейство множеств {Wx | х £ ТУ}, где Wx = {у \ ху £ W},
является конечным; C) в каждом множестве W^ — {&} существует
лишь конечное число минимальных элементов (имеется в виду
минимальность в смысле следующего частичного порядка: у{ <С у2
означает, что цепочка у^ является началом цепочки у2).
Ъ. Показать, что для каждого множества цепочек W, удовлетво-
удовлетворяющего условиям A)—C) пункта а, найдется конечный преобра-
преобразователь S, такой, что W = S B*).
2. Показать, что W = S B*) для некоторого конечного пре-
преобразователя S тогда и только тогда, когда W является гомоморф-
гомоморфным образом некоторого регулярного множества У, такого, что
б £ У и Init (У) U {е} = У [Е12].
3.. Доказать, что существует алгоритм, позволяющий по произ-
произвольным конечным автоматам Ai и А2 определить, найдется ли
синхронный конечный преобразователь S, такой, что S [T (Ai)] =
= Т(А2) [GR2].
4. Пусть 2 = {а}. Показать, что для конечных автоматов Ai
и 42 не существует конечного преобразователя S, такого, что
S [T (Ai)] = Т (А2), в том и только в том случае, если выполняется
одно из следующих двух условий: (а) 8 £ Li и е £ L2\ (b) мощность
множества L2 больше мощности множества L^. Показать далее,
что существует алгоритм, позволяющий по произвольным конеч-
конечным автоматам Ai и А2 определить, найдется ли конечный преобра-
преобразователь S, такой, что S [Т (Ах)] = Т (А2)-
5. Показать, что существует алгоритм, позволяющий по про-
произвольным конечным автоматам Ai и А2 определить, найдется ли
конечный преобразователь S, такой, что S [T (Ai)] a T (А2)
и S [T (Ai)] бесконечно [GH2]. ~
6. Пусть 2 = {а, 6, с} и У С {а, Ь}*•— {&}. Пусть, далее,
U есть язык, порождаемый КС-грамматикой с множеством правил
{а -^ ас, а -> be2, а -> асе, а -> Ьас2}, и V = (£/2)* U.
a. Пусть х, у £ 2, ы;жсп £ U и w#z £ 7.
Показать, что если \ z \ — п, то х = у.
b. Показать, что если wzu wz^ £ V, | z\ \ = 2 и | г2 | = 3,
ТО м; £ (С/2)*.
c. Показать, что синхронный конечный преобразователь,
отображающий множество V во множество U (J VYcc* U, сущест-
существует тогда и только тогда, когда Y — {а, Ь}* — {&}.
Показать, что не существует алгоритма, позволяющего по про-
произвольным КС-грамматикам G\ и G2 с основным алфавитом 2 опре-
определить, найдется ли синхронный конечный преобразователь £,
такой, что S [L (Gt)] С L (G2) [GRol].
7. Пусть 2 содержит по меньшей мере два символа. Показать,
что не существует алгоритма, позволяющего по произвольным
КС-грамматикам G\ и G% определить, найдется ли синхронный
конечный преобразователь S, такой, что S [£(£i)] С L (G2) [GRo 1].
194 Гл. 4. Алгоритмические проблемы
4.4. Алгоритмические проблемы, связанные
с МП-преобразователями
Мы рассмотрим теперь алгоритмические проблемы тако-
такого же типа, как и в предыдущем разделе, но относящиеся
не к конечным преобразователям, а к МП-преобразова-
МП-преобразователям.
Лемма 4.4.1. Каковы бы ни были цепочка w -ф ъ
из множества 2* и КС-язык Y ^ Д*, найдется МП-пре-
образователъ S, такой, что S (w) = Y.
Доказательство. Пусть G = (F, А, Р, а) есть
КС-грамматика, порождающая язык Y*
1. w — Wi ... wh (wiy . . ., wh £ 2) — некоторая
цепочка. Рассмотрим МП-преобразователь
S = (К, 2, V U {Zo}, A, [I, Zo, q0, F),
где К= {g, |0<1<Л + 1}, ZogF, F = {qh+1}
задается следующим образом: (я (q0, e, Zo) =
Zoa, е)}, (я {qu e, a) =' {(qu e, а)} для всех а 6 А,
И (ff е? £) = {(?i, P^ e) IS -> Р € ^} Для всех Е 6 F - А
и |х (gh w;b Zo) = {(qt + u Zo, e)} для всех i A < i < /г).
Пусть г/ 6 F. Тогда существует левосторонний вывод
и (я
= {(qu
такой, что |^F—A, Mj£A* и y^F* для всех £. Отсюда
в свою очередь следует, что
(g0, w, Zo, е) |— (glf w, Zo а, е) |— (?1> м;, Zo^EiMf ,e) |-i
I— (?i, ^, Zoi^gi, мО |— ... \^-(qu w, Zo^^r-i, И1. . .^-0 р
|— (?i, w, ZouR, щ ... iir-i) \—(qu ^> Zo, ^ .. . иг) |JL
|—(?A+i. е, Zo, м4 ... иг).
Таким образом, y£S(w).
Пусть теперь y£S(w). Тогда существуют а0, . ..
. . ., as_i £ A U {е} и Yq = or, yu . . ., ys = е, такие, что у =
= аОв... as_i и
(g0, w, Zo, е) |— (?1> w, ZoYo, e) |— (glf w, Zoyu a0) \—
|— . .. |— (?1> w, Zoys, a0 .. . a^) [Jl
ь e, Zo, a0 • • • «s-i).
44 . Проблемы, связанные с МП-преобразователями 195
Пусть к @) <С ... < к (т) —такие индексы, что у^ц = vi\i
для некоторых Vi£V* и ^t^V — Д. Заметим, что &@)=0.
Поскольку не существует таких а£Д, рgif и y£V*, что
(?i, е> *>iEi» е)|— (р, е, у, а), имеем afe(i) = e и уад + i = ^f,
где £j —>Zi£P для всех £. Кроме того, соотношение
(р, е, y> е) |—(р, е, у', а) для некоторых а£ Л и у' имеет
место тогда и только тогда, когда у'а = у. Отсюда zmy^ =
= flft(m) + i. • .fls-i = aft(m). • -fls-i, ПОСКОЛЬКУ (р, Ш, Z0^m?m, в) |—
|—(p, u;, Z0^mz^ , ah{m)) \-±- (p, u;, Zo, ak{m) . . . ae_d). Так как
(p,w, Z0Vili,s) |— (p, w,Z0ViZ^, flft(t)) |— (p, u> Z^
^ft(t) ... ^(i + D-i), то Zji;f=afe(t) + i .-• 0ft<*+i)-+
= flft(i) . .. aft(t+i)_iii+1i;f+1 для всех i,i<.m. Отсюда
iliv* = a0...
a0 ... flfe(i)--iZ1i;f =a0 • •
=Ф a0 ... afc(m)_izmi;^ = a0 • • • ^s-i = У-
Таким образом, y£Y и S(w) = Y.
2. w — e. Рассмотрим МП-преобразователь
S = (K, 2, 7 U {Zo}, А, ц, Zo, g0, {?2}),
где Z = {q0, qu q2} и 2. ^^ д. ^о, ^о те же, что и в пунк-
пункте 1, а (я определяется следующим образом: [x(g0» e, Zo) =
= {fei, Zoa, e)}, [x fei, e, a) — {(gb e, a)} для всех а 6 A,
fi (<Zi, e, E) = {(?1> |3R, e) | E ^ p 6 P} для всех Е € F - A,
|i (gb e, Zo) = {(q2, e, e)}. Читателю предоставляется
доказать, что S (e) = Y.
Теорема 4.4.1. Существует алгоритм, позволяющий
по произвольным К С-грамматикам Gi и 6?2, таким, что
L (d) e 2* и L (G2) ^ А*, определить
a. найдется ли МП-преобразователь S, такой, что
S [L(Gt)] ^ L (ба), .
b. найдется ли МП-преобразователъ S, такой, что
S [L (G^] ^ L (G2) и S [L (Gi)] — бесконечное множество,
если L (Gi) — бесконечное множество.
Доказательство, а. Если L (Gi) = 0, то
МП-преобразователь S, такой, что S [L (Gi)] = L (G2),
196 Гл. 4. Алгоритмические проблемы
существует тогда и только тогда, когда L (G2) = 0.
Проблема же пустоты КС-языка алгоритмически разре-
разрешима (теорема 4.1.2). Пусть L (G^ Ф 0 и w £ L (Gt).
Тогда в качестве S можно взять МП-преобразователь
из леммы 4.4.1, такой, что S (w) = L (G2). Поскольку
S (wf) = 0 для всех w1 £ L (d), w' Ф w, имеем
S [L (Gt)] - L (G2).
Ь. Без потери общности можно считать, что L (Gi) Ф 0
и L F?2) Ф 0. Тогда, согласно а, существует МП-преобра-
МП-преобразователь S, такой, что S [L (Gi)] = L (G2). Согласно тео-
теореме 4.1.2, существует алгоритм, позволяющий по грам-
грамматике Gi определить, является ли порождаемый ею язык
бесконечным. Если L (G4) — конечное множество, то пре-
преобразователь S является искомым. Предположим, что
L (Gi) — бесконечное множество. Согласно теореме 4.1.2,
существует алгоритм, позволяющий по G2 определить,
является ли язык L (G2) бесконечным. Если L (G2) —
конечное множество, то не существует МП-преобразова-
МП-преобразователя S\ такого, что S' [L (Gi)] <= L (G2) и S" [L (G2)] —
бесконечное множество. Если язык L (G2) бесконечен,
то преобразователь S является искомым.
Упражнения 4.4
1. Пусть 2 = {а, Ъ). Определить, существует ли МП-преобра-
зоьатель S — (К, 2А, Г, 2, [х, Zo, q0, F), такой, что F == К и
a. 5 (е) = {a^6n | п > 0}.
b. 5 (б) = a*6* U ba*ba*.
c. 5 (е) == L, где L = {w;w;R | м? 6 2*} П 2*а32*.
2. Пусть 2 = {а, Ъ}. Построить в каждом из следующих слу-
случаев МП-преобразователь S, такой, что
a. S (е) = {anbn\n > 1};
b. S (ааЪ) = {wwR \ w £ 2*};
c. S (ЬаЬ) = L, где L есть множество тех цепочек из множе-
множества 2*, которые содержат одинаковое число вхождений симво-
символов а и Ъ.
4.5. Неразрешимость проблемы распознавания
определенности КС-грамматики
Сейчас мы рассмотрим вопрос о существовании алго-
алгоритма, позволяющего по произвольной КС-грамматике
определять, является ли она неопределенной. Аналогич-
4.5. Неразрешимость проблемы распознавания определенности 197
ный вопрос для существенной неопределенности решается
в разделе 6.3.
Теорема 4.5.1. Пусть 2 — алфавит, содержащий
по меньшей мере два символа. Не существует алгоритма,
позволяющего по произвольной КС-грамматике с основным
алфавитом 2 установить, является ли она определенной.
Доказательство. Обозначим через i цепочку
del (i > 0). Пусть / есть гомоморфное отображение мно-
множества {с, d, e}* во множество {а, Ь}*, определяемое соот-
соотношениями / (с) = ba, f (d) = ba2, f (e) = ba3.
Для любой упорядоченной системы х = (х^, . . ., хп)
непустых цепочек из множества {d, e}* положим
М (x) = {f(Ii).. .f (ik) f (с) f (xik) .. . f (xh)\k> I, l<ij<n}.
Язык M (x) e {a, b} порождается определенной КС-грам-
матикой_ Gx = (Vx, 2, Px, ox), где Px = {ox -> / (i) f (c) f (xt),
ex—>f (i) Qxf (xt) 11 < i<n}. Пусть x и у — упорядоченные
системы п непустых цепочек из множества {d, e}* и GX} y =
= (VXf у, 2, РХг у, ох, у) — КС-грамматика, причем РХ) у =
= рх U Py U {°х, у —> а*' а^, у —^ Gy}- Ясно, что грамма-
грамматика GXt у является неопределенной в том и только в том
случае, если М (х) П М (у) ф 0. Однако М (х)(]М (у) Ф 0
тогда и только тогда, когда найдется последовательность
индексов iu .. ., ih, такая, что х^ . .. xih = у^ии. у^.
Согласно теореме Поста о проблеме соответствий, не суще-
существует алгоритма, позволяющего установить существование
такой последовательности.
При решении задач, связанных с использованием конк-
конкретных языков программирования, часто бывает необхо-
необходимо знать, является ли та или иная КС-грамматика опре-
определенной. Ввиду теоремы 4.5.1 ответ на этот вопрос
не может быть получен с помощью алгоритмической про-
процедуры, пригодной для всякой КС-грамматики. Если мы
хотим рассматривать КС-языки как языки програм-
программирования и при этом выдвигаем требование о существо-
существовании эффективной процедуры для проверки определен-
198 Гл. 4, Алгоритмические проблемы
ности, то мы вынуждены ограничиваться некоторыми под-
подклассами класса всех КС-грамматик. Работа в этом направ-
направлении уже ведется (см., например, [See]).
Тема для исследования. Найти какие-либо подклассы класса
всех КС-грамматик, в которых проблема определенности алгорит-
алгоритмически разрешима. (Один такой класс описан в гл. 5.)
Упражнения 4.5
1. Показать, что существует алгоритм, позволяющий по про-
произвольной праволинейной грамматике узнать, является ли она
определенной.
2. Пусть 2 = {а, Ъ, с, d, eu e2, е3}; w = (wu . . ., wn)
и у = (уи . . ., уп) — упорядоченные системы непустых цепочек
из множества {а, &}* и G (ш, у) = ({a} (J 2, 2, Р (w, у), сг) есть
КС-грамматика, где Р (w, у) = {сг -> т^ФЪй | 1 <J i <; п) \J
U {а -> у^&аУЪ | 1 < i < п) U {а -> w^aSbe^ | 1 < i < и} Q
U {or-^orei} U {а-^^^М} U {о"->е2^з} U {о-^ с}. Пока-
Показать, что грамматика G (w, у) является неопределенной тогда
и только тогда, когда существует решение проблемы соответствий.
Таким образом, не существует алгоритма, позволяющего по про-
произвольной минимальной линейной грамматике узнать, является
ли она определенной [Gr 2]. (КС-грамматика G = (F, 2, Р, о)
называется минимальной линейной, если существует в точности
один символ с £ 2, такой, что сг -> с £ Р, и все остальные правила
имеют вид сг -> wcry, где и, v £ B — {с})* [ХШ].
3. Показать, что существует алгоритм, позволяющий по про-
произвольной неукорачивающей КС-грамматике G = (F, 2, Р, сг)
произвольным цепочкам t, и £ F* и правилу | -> ы £ Р определить,
выполняется ли следующее условие: если сг — wQ =Ф . . . =£> wr =
= xtuvy для некоторых г, ж и г/, то существует вывод ст = zq =Ф . .
. . . =ф zr_i=$>wr с тем же деревом вывода, такой, что zr_4 = xt\vy
4. Назовем КС-грамматику б1 = (F, 2, Р, сг) контекстно-
ограниченной, если она является неукорачивающей и для каждого
ее правила \ -> и существует множество А^иу такое, что (а)
АA->и) состоит из конечного числа пар (f, у), удовлетворяющих
условию предыдущего упражнения; (Ь) каждая цепочка м? £ L (G),
содержащая вхождение цепочки и, может быть представлена в виде
xtuvy для подходящей пары, цепочек (f, у) £ -4(|_^U) [F1 4].
A) Показать, что всякая контекстно-ограниченная грамматика
является определенной.
B) Показать, что не существует алгоритма, позволяющего
по произвольной КС-грамматике определить, является ли она
контекстно-ограниченной (для достаточно большого алфавита 2).
C) Распространить B) на случай, когда 2 содержит два эле-
элемента.
4.6. Историческая справка 199
4.6. Историческая справка
Первые результаты, относящиеся к алгоритмическим
проблемам в классе КС-языков, были получены в [BPS].
В частности, основные теоремы разделов 4.1 и 4.2 (кроме
теоремы Поста) содержатся в этой работе. Теорема Поста
имеется в [Ро] г). Следствие 4.1.1 есть в [PC]. Весь мате-
материал разделов 4.3 и 4.4 взят из [GRol] и [ГРо 2] 2). Нераз-
Неразрешимость проблемы определенности в классе КС-грам-
КС-грамматик (т. е. теорема 4.5.1) была независимо установлена
в [Can; F1 2; ХШ].
х) См. также [Map].— Прим. ред.
2) См. также [GRo 3].— Прим. перев.
ГЛАВА
ОГРАНИЧЕННЫЕ КС-ЯЗЫКИ
Мы займемся теперь рассмотрением одного специаль-
специального семейства КС-языков, оказавшегося полезным для
изучения существенной неопределенности и для построе-
построения контрпримеров. Эти языки, называемые ограничен-
ограниченными КС-языками, имеют в определенном смысле «простую»
структуру; теория этих языков тесно связана с некото-
некоторыми алгебраическими понятиями. Характерной особен-
особенностью ограниченных КС-языков является то, что все
известные и представляющие интерес алгоритмические
проблемы, касающиеся этих языков, являются разреши-
разрешимыми. Таким образом, это семейство языков обладает
некоторыми «хорошими» свойствами, которыми, к сожа-
сожалению, семейство всех КС-языков не обладает.
5.1. Основные понятия
В этом разделе мы введем некоторые понятия и обозна-
обозначения, необходимые для изучения ограниченных КС-язы-
КС-языков. Остальные понятия и обозначения будут вводиться
по мере необходимости.
Определение. Множество X ^ 2* называется
ограниченным, если существуют цепочки wi, . . ., wn,
такие, что X ^ w* ... w^.
Термин «ограниченное множество» возник в связи
с тем, что в представлении каждой цепочки множества X
в виде u;ji- . . . и?*? участвует ограниченное число цепочек
wu . . ., wn.
Примеры. 1. Множество {а1Ьгс1 | i, / !> 1} является ограни-
ограниченным. 2. Множество {(abI (acJi (abcKi | i >• 1} является огра-
ограниченным.
5.1. Основные понятия 201
В первом примере разд. 3.2 указаны два ограниченных
КС-языка, пересечение которых не является КС-языком.
В лемме 6.3.1 дается пример существенно неопределенного
ограниченного КС-языка. Эти и другие примеры указы-
указывают на тот факт, что для многих специфических свойств
КС-языков примеры языков, обладающих этими свойст-
свойствами, можно найти в классе ограниченных КС-языков.
В следующей лемме собраны некоторые элементарные
факты, касающиеся ограниченных множеств.
Лемма 5.1.1. а. Произведение конечного числа огра-
ограниченных множеств является ограниченным множеством.
b. Объединение конечного числа ограниченных множеств
является ограниченным множеством.
c. Пусть X — ограниченное множество и Y — какое-
либо множество подцепочек цепочек из X. Тогда множе-
множество Y является ограниченным. В частности, всякое
подмножество ограниченного множества является огра-
ограниченным множеством.
Доказательство. Для доказательства пунк-
пунктов а и Ь достаточно показать, что если множества X и У
ограниченны, то множества XY и X (J Y тоже ограничен-
ограниченны. Итак, пусть X <^ w\ . . . w* и Y ^ у*. . . у*. Тогда
множества XY и X (J Y являются подмножествами мно-
множества
Докажем пункт с. Пусть X ^ w\ ... W* и уц, • • •
••., yim(i) — подцепочки wt A<г'<г). Тогда
^ УН • • • */lm(l) • • • Уг1 • • -Угт(г)-
Доказательство окончено.
Согласно лемме 5.1.1, если множество 2* ограниченно,
то ограниченно и всякое его подмножество. Поэтому для
нахождения множества, не являющегося ограниченным,
достаточно рассмотреть множества, имеющие вид 2*.
Имеет место следующая теорема.
Теорема 5.1.1. Если 2 состоит не менее чем из
двух символов, то множество 2* не является*ограниченным*
202 Гл. 5. Ограниченные КС-языки
Доказательство. Пусть а и Ъ — элементы
множества 2. Достаточно показать, что множество {а, &}*
не является ограниченным.
Предположим, что множество {а, &}* ограниченно.
Тогда существуют непустые цепочки W\, . . ., wn, такие,
что {а, &}* ^w*...Wn. Для каждого целого положи-
положительного числа i положим ut = aba2b2 . . . агЪг. Пусть
к = 3 | и?! | + . . . + 3 \wn 1+1- Существуют / A), . . .
. . ., / (тг), такие, что uk = w{M . . . w^nK Предположим,
что существует натуральное число £, такое, что / (г) ^ 3
и цепочка wt содержит в качестве подцепочки аЪ или Ьа.
Возможны четыре случая.
a. Цепочка wt содержит в качестве подцепочки цепочку
аЪта, т ^> 1. Тогда цепочка w\ содержит подцепочку
вида аЪтаиаЪта. Поскольку w\ — подцепочка цепочки щ,
то uk содержит в качестве подцепочки цепочку abmauabma,
что невозможно.'
b. Цепочка wt содержит подцепочку вида ЪатЪ, т ^> 1.
Аналогично а можно показать, что это невозможно.
c. Цепочка wt имеет вид asb\ s, t^>l. Тогда цепоч-
цепочка wi содержит подцепочку вида а*Ъ1аиаЪха, если s ^ 2,
или вида аЪ1аЪ1а, если s = 1. Следовательно, цепочка uk
должна содержать подцепочку одного из этих двух видов,
что невозможно.
d. Цепочка wt имеет вид bsa\ s, £^>1. Этот случай
аналогичен с.
Итак, для каждого i либо / (i) ^ 2, либо wt = as
для некоторого 5^-1, либо wt = Ъ1 для некоторого
£^>1. В любом из этих трех случаев каждое w\{l)
содержит не более 2 | wt \ вхождений цепочки аЪ. Итак,
цепочка uk = и1 . . . ип содержит не более
2 |М2|| 2
1 1 1
вхождений цепочки аЪ, где иг = 1а№ для каждого i. Возни-
п
кает противоречие, так как гг& содержит к = 1 + 2 3 [ Wi \
1
вхождений цепочки аЪ. Следовательно, множество {а, Ь}*
не является ограниченным.
Пусть wu . . ., Wn — последовательность цепочек
5.1. Основные понятия 203
и X — подмножество множества w^ . . . w^. Множеству X
естественным способом сопоставляется некоторое множе-
множество тг-ок неотрицательных целых чисел, а именно множе-
множество {(ц, . . ., in) | w\i . . . wlnn £ X}. Это приводит нас
к рассмотрению множеств п-ок неотрицательных целых
чисел. Пусть X я^ w* . . . Wn- Ниже (теорема 5.4.2) мы
укажем необходимое и достаточное условие, которому
должно удовлетворять множество тг-ок чисел, сопоставлен-
сопоставленное множеству X, чтобы X было КС-языком.
Обозначение. Пусть N — множество неотрица-
неотрицательных целых чисел. Для каждого п ^ 1 полагаем
Nn = N X . . . X N (п раз).
Мы будем рассматривать множество Nn как подмноже-
подмножество векторного пространства J? тг-ок рациональных
чисел. Итак, пусть х = (хь . . ., хп) и у = (г/ь . . ., уп)
принадлежат множеству Nn, и пусть с £ N; тогда х + у =
= (*i + Уи • • •, *п + Уп), я — у = (х{ — уи . . ., хп — уп),
сх = (схь . . ., схп). Мы можем говорить также о ли-
линейной зависимости элементов множества А^п, линейной
независимости их, и так далее.
Для изучения множеств тг-ок, возникающих в связи
с КС-языками, нам понадобятся некоторые дополнитель-
дополнительные понятия и обозначения.
Определение. Пусть L ^ Nn — произвольное
множество векторов. Вектор р 6 Nn называется периодом
множества L, если для любого г £ L вектор г + р также
принадлежит множеству L.
Пусть С и Р — подмножества множества Nn и L (С;Р)
— множество всех векторов из Nn, представимых в виде
Со + Xi + . . . + хт,
гДв с0 £ С и #i, . . ., хт — некоторая (возможно, пустая)
последовательность векторов из Р. Множества С и Р
называются соответственно системой предпериодов и систе-
системой периодов множества L (С\ РI).
х) Для достижения большей ясности в это определение внесены
некоторые изменения по сравнению с оригиналом.— Прим. перев.
204 Гл. б. Ограниченные КС-языки
Итак, L (С; Р)—множество всех х из множества Nn,
т
таких, что х=со+^]кгхг, где с0 £ С, хи ...,хт£Р
и &4, ..., &
Если множество С состоит в точности из одного эле-
элемента, скажем, С—{с}, то вместо L (С; Р) мы будем писать
L(c;P).
Определение. Множество L ^ Nn называется
линейным, если L — L (С; Р), где система предпериодов С
состоит в точности из одного элемента, скажем С = {с},
а система периодов Р конечна, скажем Р = {рь . . ., рг}.
В этом случае вместо L (С; Р) мы будем писать
L (с\ ри . . ., рг).
Пример. Множество L(@, 0); @, 2), B, 0))={@, 0L-^@, 2) +
-\-к2 B, 0) | А?!, А:2 6 iV}= {BА:2? 2^) | ки k2£N} является линейным.
Заметим, что всякое линейное множество имеет более
одного представления в терминах периодов и предперио-
предпериодов. Так,
т
L(c; р^ ..., pm)=L(c; pu .. ., рт, ^pt).
i
Всякий раз, когда мы говорим, что множество L (с; Р)
линейно, мы имеем в виду, что Р конечно.
Нас будут интересовать, собственно, не сами линейные
множества, а их конечные объединения. Поэтому мы
введем следующее понятие.
Определение. Подмножество множества Nn
называется полулинейным, если оно является объедине-
объединением конечного числа линейных множеств.
Пример. Пусть сь съ рь . . ., рш, qu . . ., qr £ Nn. Тогда
множество L (q; pA . . ., рт) \J L (c2; qit . . ., qr) является полу-
полулинейным подмножеством множества Nn.
Объединение конечного числа полулинейных под-
подмножеств множества Nn также является полулинейным
множеством,
5.1. Основные понятия 205
Обозначение. Пусть х = (х15 . . ., хп) £ Nn
и г/ = (г/ь . . ., г/т) 6Nm- Тогда о: X г/ есть элемент множе-
множества Nn+m (i-я координата которого равна xt при
1 < i < п и у^п при i > тг). Если X ^ Nn и Y ^ iVm,
то 1хУ={жХг/|^б1, г/6 ^}i 0n есть элемент
множества Nn, все координаты которого равны нулю.
Например, B, 1) X C, 1, 7) = B, 1, 3, 1, 7).
В следующей лемме доказываются некоторые свой-
свойства множеств вида L (С; Р).
Лемма 5.1.2. а. Пусть С1} С2 и Р — подмножества
множества Nn. Тогда L (d [} С2; Р) = L (d; Р) [)
U L (С2; Р).
b. Пусть С, Pi и Р2 — подмножества множества Nn.
Тогда
L (L (С; PJ; Р2) - L (С; Р1 [} Р2).
c. Пусть Ci и Pi — подмножества множества Nn,
а С2 и Р2 — подмножества множества Nm. Тогда
L (С1; Л) X L (С2; Р2) = L {С, х С2; (Р, х 0т) [) @п X Р2)).
А. Пусть си c2eNn, Pu P2^Nn, du d2£Nmy
Qi, <?2sNm. Тогда
[L (Cl; P±) U L (c2; i>2)] X [L (dl5 ^) U L (d2; Q2)] =
U [^(c«;Pi)xL(dy;^)].
i=l, 2; i=l, 2
Доказательство. Пункты and очевидны. Что
касается пункта b, то
L(L(C;Pi);P2) =
S *i?>) I ^ь &i. ir. s. Pi. ?У. c) =
= L(C;Pt\jPz).
Докажем с.
L (С,; i>.) x L (C2; P2) =
x
206 ' Гл. 5. Ограниченные К С-языки
s
X {с2 + 2 Щ) | с2 £ Сг, qj £ Р2, к) е ЛГ) =
S
+ 2 Щ @™ X ft) | с, 6 <?„ с2б С2, Pi e Р» 9; € Ра, Л,, /с-£ N} =
= L(C1xC2;(P1x0m)U@"xP2)).
Из пунктов а, с и d леммы 5.1.2 непосредственно выте-
вытекает следующий результат.
Следствие 5.1.1. Пусть X и Y — полулинейные
подмножества множества Nn и Nm соответственно. Тогда
множество X X Y является полулинейным подмножеством
множества Nn+m.
Упражнения 5.1
1. Пусть X = а (Ьа)* Ъ. Указать пять наборов цепочек wu
и>2 и w3, таких, что X с w^w*w$.
2. Пусть 2 = {а, Ь} и L = {aba2b ... апЪ | п > 1}. Дока-
Доказать, что если М — произвольное ограниченное множество, то мно-
множество L П М конечно. Отсюда вытекает, что множество L не являет-
является ограниченным.
3. Пусть Е с 2* B = {а, 6}) — произвольное непустое
множество. Доказать, что множество И*Е не является ограни-
ограниченным.
4. Показать, что если множества С и Р конечны, то L (С', Р) —
полулинейное множество.
5. Показать, что если L (q; рь . . ., рт) = L (сг\ #i, . . ., qr),
ТО С\ = С2«
6. Пусть d = {@, 0), A, 2)}, С2 = {@, 1, 1), B, 3, 1)};
pl== {A, 1), D, 2)} и Р2 = {A, 3, 2)}. Представить множество
L (С^ Рх) X L (£2; Рг) как объединение конечного числа линейных
множеств.
5.2. Теорема Парика
Сейчас будет изложен результат, связывающий КС-язы-
КС-языки с полулинейными множествами и играющий основную
роль при изучении ограниченных языков. Именно пусть
2 = {at | 1 <; i <; п}. Покажем, что если L — КС-язык
5.2. Теорема Парика 207
и каждой цепочке w из L сопоставлена упорядоченная
п-ка, i-й член которой A ^ i ^ п) есть число вхождений
символа аь в цепочку w, то множество всех тг-ок, сопостав-
сопоставленных элементам множества L, является полулинейным.
Обозначение. Пусть 2 = {at | 1 <; i <; п).
Будем обозначать через ty<ai, ...,ап> (или г|), если (аи . . .
. . ., ап) подразумевается) отображение множества 2*
во множество Nn, определяемое следующим образом:
1|) B) - (#а1 B), . . ., #ап W), ГДе #а. (z) — ЧИСЛО ВХОЖ-
дений символа at в цепочку z.
Таким образом, -ф (е) = 0п и ^ (хи . . ., хт) =
тп
= 2 Ф (х0' ^ ^г 6 2* для каждого i.
1
Пример. Пусть 2 = {%, а2» аз}« Тогда я|) (а^з^^з^г^з^з) =
= B, 2, 3).
Теорема 5.2.1 (Парик). Для каждого К С-языка
М множество ty (M) является полулинейным.
Доказательство. Пусть G = (V, 2, Р, о) —
неукорачивающая КС-грамматика, порождающая множе-
множество М — {е}. В силу леммы 1.4.1 можно считать, чтб
ни одно правило грамматики G не имеет вида §—>•£.
Пусть V — произвольное подмножество множества У,
содержащее множество 2 U {а}, и пусть t = # (У).
Рассмотрим множество М' всех цепочек х из М, обладаю-
обладающих следующим свойством: в некотором дереве вывода х
из о все вспомогательные символы, являющиеся помет-
пометками при вершинах, принадлежат множеству V — 2.
Поскольку множество М — {е} является объединением
всех М' (а их конечное число), достаточно показать, что
каждое из множеств г|э (М') является полулинейным.
Для каждого символа | из V — 2 определим два мно-
множества D% и Е^ следующим образом. Цепочка w £ F*
принадлежит множеству D|, если выполняются три усло-
условия:
(a) цепочка w содержит точно одно вхождение симво-
символа \\
(b) цепочка w не содержит вспомогательных символов,
отличных от £;
208
Гл. 5. Ограниченные КС-языки
(c) существует дерево выво-
вывода w из £, содержащее только
такие вершины, пометки при ко-
которых принадлежат множеству
V и при этом ни в один путь это-
го[дерева никакой вспомогатель-
вспомогательный символ не входит более
t + 2 раз. Цепочка w принадле-
принадлежит множеству Е%, если выпол-
выполнены два условия:
(d) w е 2*.
(e) Существует дерево выво-
вывода w из £, такое, что A) все
пометки при его вершинах при-
принадлежат V; B) каждый элемент
множества V — 2 является по-
пометкой при какой-либо его вер-
вершине; C) ни в одном его пути ни
одна пометка не встречается бо-
более t -f- 2 раз.
Поскольку число деревьев,
удовлетворяющих условиям (с)
и (е), конечно, множества D^ и
Ei конечны.
Продолжим отображение г[)
до отображения множества У*
следующим образом: г|) (I) =
= @, ...,0) длявсехбб^'—2,
k
. . . zk) =
2^ 6
Рис. 5.1. Дерево
вывода Т.
l
для каждого f. Пусть £—про-
£—произвольный элемент множества
V— 2. Положим{^, . .., u%i)} =
={'Ф (^) I ^6-Os}'» пусть, кроме то-
того, {wb .. ., uh} = {-ф (ш) | м; 6 ^а}.
Далее, для каждого /, 1 < / < й,
положим
5.2. Теорема Парика
209
Каждое множество Aj является
линейным. Чтобы убедиться в
том, что множество г|) (М') по-
полулинейно, достаточно показать,
h
что г|)(АГ)- U Лг.
г=-Л
Пусть w £ М' и Т (см. рис.
5.1) — дерево вывода w из а,
такое, что множество вспомо-
вспомогательных символов, являю-
являющихся пометками при верши-
вершинах дерева Т, есть в точности
V — 2. Предположим, что ни
в одном пути дерева Т ни один
символ не встречается более
t + 2 раз. Тогда w £ Еа, так что
h
ty (и>) 6 U At. Пусть теперь не-
1
который вспомогательный сим-
символ встречается в некотором пу-
пути дерева Т более t -\-2 раз. Че-
Через Ту, где у — произвольная
вершина дерева Г, обозначим
поддерево дерева Г, порожден-
порожденное вершиной у. Существует
поддерево Т$о дерева Г, содер-
содержащее t + 3 вершины р0, ...
• • •» Р*+2 с пометкой р и такое,
что каждая вершина р t+4 являет-
является продолжением вершины pf,
при этом никакое собственное
поддерево дерева Т$о не содер-
содержит пути с большим чем t -\- 2
числом вершин, имеющих оди-
одинаковые пометки. (Это следует
из того факта, что во всяком
дереве вывода имеется лишь ко-
конечное число вершин.) Пусть
Н (Гр., T$i+1) для каждого £>1
означает множество тех вспо-
вспомогательных символов, которые
Рис. 5.2. Дерево вывода Т'.
Р и с. 5.3. Дерево вывода U-
210 Рл. 5. Ограниченные КС-языки
являются пометками при вершинах дерева Т$г и не яв-
являются таковыми для дерева T$i+1. Пусть р ^> 1 — на-
наименьшее натуральное число, такое, что
Если бы для всех р A<р<£ -j- 1) утверждение (f)
было ложно, то дерево Т содержало бы не менее £ + 1
различных вспомогательных символов, являющихся помет-
пометками при вершинах. Получили противоречие. Итак,
нужное р существует. Пусть Т' (см. рис. 5.2) — дерево,
полученное из дерева Т в результате замены поддерева
Т$р деревом Т$р+1. Согласно (f), множество вспомога-
вспомогательных символов, являющихся пометками при вершинах
дерева Т', совпадает с V — 2. Кроме того, дерево Т'
содержит меньшее число вершин, чем дерево Т. Пусть
U (см. рис. 5.3) — дерево, полученное из дерева Т$р
в результате замены поддерева Т$р+1 вершиной Cp+i.
Заметим, что дерево U совпадает с частью дерева Т$р,
удаленной при замене Т$р на Т^-р+1. Тогда U есть дерево
вывода w' из [3 для некоторой цепочки w' £ D$. (Дерево
T^i является собственным поддеревом дерева Гр0. Посколь-
Поскольку ни один иэ вспомогательных символов, которыми поме-
помечены вершины дерева Т$г, ни в одном пути дерева Т$х
не встречается более t -j- 2 раз и дерево U содержится
в дереве Т^, дерево U удовлетворяет условию (с).) Повто-
Повторим ту же процедуру для дерева Т', и т. д. В конце концов
мы получим дерево вывода w из а, где w — некоторая
цепочка, принадлежащая Ео. Пусть г|) (w) = Uj. Каждое
из деревьев, рассматриваемых вместе с корнем, удаленных
в ходе выполнения описанной процедуры, порождает
цепочку из множества (J D%. Итак, гЬ (w) £ Aj.
(Образ при отображении г[) каждой из рассматриваемых
цепочек представляет собой вектор, 1-я A ^ £<тг) коор-
координата которого есть число вхождений символа at в цепоч-
h
ку.) Следовательно, г|) (Mf) ^ \J At.
Пусть теперь v принадлежит некоторому Aj. Предпо-
Предположим, что u = Uj. Тогда v=ty(w), где w£Eo. Согласно
определению, w£M'. Для завершения доказательства доста-
6.2. Теорема Парика 211
точно показать, что если v£AjOty(M'), то для каждого
[3 £ V' — 2 и для каждого vf вектор v + Л будет принадле-
принадлежать ty(M'). (По индукции из этого следует, что каждое
г(|3)
из + 2 2 ^гу? (&i6<W) принадлежит множеству i|)(M'),
откуда ^ ^ г|) (М') и (J ^^^(М'). Поскольку v£г|)(М'),
существует дерево Т вывода из о некоторой цепочки w,
такой, что г|э (w) ■= v, удовлетворяющее следующему усло-
условию: множество вспомогательных символов, являющихся
пометками при вершинах дерева Г, совпадает с V — 2.
Согласно определению вектора yf, существует дерево Т'
вывода из [3 некоторой цепочки w', такое, что: A) вспо-
вспомогательные символы, являющиеся пометками при верши-
вершинах дерева Т\ принадлежат множеству F', B) цепочка w'
содержит единственное вхождение символа |3 и C) цепоч-
цепочка w' не содержит вхождений других вспомогательных
символов. Пусть pi — вершина дерева Т с пометкой C.
Pi существует, так как множество вспомогательных сим-
символов, являющихся пометками при вершинах дерева Г,
совпадает с V — 2. Пусть Г" —дерево вывода, получен-
полученное из дерева Т в результате замены вершины f^ на де-
дерево Т'. Тогда Т" производит цепочку w'^M и i|) (w") =
= i[) (w) -\-vf = v-\~ vf. Итак, v-\-vli £ty (M')-
Упражнения 5.2
1. Дать другое доказательство теоремы 3.1.2, опираясь на тео-
теорему 5.2.1.
2. Показать, что утверждение, обратное теореме 5.2.1, не имеет
места. Другими словами, показать, что существует язык X, не
являющийся КС-языком и такой, что множество г|) (X) полулинейно.
3. Пусть М — КС-язык, порождаемый КС-грамматикой с мно-
множеством правил {а ->- a3bac, о -> aboa, о -> b2ab). Представить
множество г[)<а b с> (ЛГ) как объединение конечного числа линей-
линейных множеств.
4. Пусть G = (V, {а, Ъ, с}, Р, а), где Р состоит из правил
о" -►- ab, о -> aob2, о -> &va, v -> cvac hv->&. Представить множе-
множество \|?<а b c> (L (G)) как объединение конечного числа линейных
множеств.
212 Гл. 5. Ограниченные КС-языки
5. Пусть G = (F, 2, Р, а) — КС-грамматика и Р =
= {яь . . ., яг}. Для всякого левостороннего вывода D: о ==>
=гф z^j =Ф ... =ф ц;^, где Oft £ £ (£)> и всякого £, 1 -^ i -^ г, обо-
обозначим через nD^ число применений правила л^ в выводе D. Пока-
Показать, что множество всех векторов вида (nD , . . ., nD ) полули-
полулинейно.
5.3. Структура ограниченных КС-языков
Займемся изучением структуры ограниченных КС-язы-
КС-языков. Прежде всего рассмотрим КС-языки, содержащиеся
во множестве w* . . . ш*, где wl, . . ., wn —■ символы.
Результаты, полученные для таких КС-языков, мы рас-
распространим затем на КС-языки, содержащиеся во множе-
множестве ш* . . . Wn, где шь . . ., wn — произвольные цепоч-
цепочки. Основной результат (теорема 5.3.1) состоит.в указании
процедуры, позволяющей получать произвольные огра-
ограниченные КС-языки из языков в некотором смысле более
«простых».
Введем некоторые новые обозначения.
Обозначение. Пусть Z, Хи . . ., Хп, Уь . . .
. . ., Yn — подмножества множества 2*. Положим
(Хп, Yn)... (Xu Yi)*Z= U Xknn ... X^ZYl1 ... Yhn\
fe.^O
Обозначение. Пусть w = (шь . . ., wn), где
ivu . . ., wn — некоторые цепочки. Определим отображе-
отображение fw множества Л^.во множество w\ . . . w* следующим
образом: /„, (iu . . ., in) = w\^. . . w1".
Пусть аь . . ., ап — символы и w, = (аь . . ., ап).
Тогда fwf^ (и) = и для всех и £ а*. .. at ж jf /„, (q) = q
для всех q g Nn.
Пример. Пусть L = L (q; pu p2) U L (c2', p3, Pi), где q =
= @, 0, 0, 1), c2 = C, 2, 0, 1), Pi - A, 2, 1, 3), p2 = @, 1, 2, 2),
p3 = B, 1, 1, 0), p4 = A, 1, 2, 2). Пусть и? = <at, a2, Лз» «4>
(все л4 различны между собой). Тогда
144. />o} и
и {4+2i+i«l+i+j4+2iai+2i I *. / > о}-
Выясним теперь структуру языков, содержащихся
в а*а*, где а4 и а2 — различные символы.
5.3. Структура ограниченных НС-языков 213
Лемма 5.3.1. Пусть 2 = {а^, а2}. Каждый КС-язык
М <= а*а% может быть представлен как объединение
конечного числа множеств г) вида
а- (#т» Ут) • • • (хи */i)**2),
где xt £ a*, i/i £ а% и z £ а*а%; обратно, всякое объединение
конечного числа множеств вида а является КС-языком
М е а\а\
Доказательство. Пусть а = (аь а2). Тогда
для каждого линейного множества L = L ((и0, v0);
(им), . . ., (ит, vm)) имеем
b. fa (L) = (a?™; a^m) . . . (aui, aji) * a^ajo.
Предположим, что множество М ^ a*a* является КС-язы-
КС-языком. Согласно теореме 5.2.1, множество г|эа (М) есть объеди-
объединение конечного числа линейных подмножеств множества
N2. Итак, М = /a/a1 (Af) = /a^a (Af) — объединение ко-
конечного числа множеств вида b и, следовательно, мно-
множеств вида а.
Предположим теперь, что М является объединением
конечного числа множеств вида а. Для доказательства
того факта, что М есть КС-язык, достаточно показать,
что всякое множество вида Н = (хт, ут) . . . (хь j/4)*z
является КС-языком, Н ^ а*а*. Но это следует из того,
что множество Н порождается КС-грамматикой с прави-
правилами вида о ->• z и о -> хгоуг, l^i-^m.
Следствие 5.3.1. Множество X е а%а% тогда
и только тогда является К С-языком, когда множество
{(т, п) | а™а% £ X} полулинейно.
Лемма 5.3.2. Пусть 2 = {а* 11 < i<^г}. £"сла мно-
множества D s я*а* ц £ е а* ... а* являются КС-языками,
то и множество U а\Еа?п ^а\ . .. а%, также является
1 n
К С-языком.
х) Пустое множество является объединением пустого множе-
множества множеств.
2) Как обычно, множество, состоящее из одного элемента, мы
будем отождествлять с самим этим элементом.
214 Гл. 5. Ограниченные КС-языки
Доказательство. Пусть е g 2 и т— подстановка,
определенная следующим образом: t(ai) = {ai, а^}, т(ад) =
= {ап, еап}. Тогда множество
т (Я-{е}) П <^* - К^ | aiale D- {е}}
является КС-языком. Пусть [i— подстановка, определенная
следующим образом: \i(ai) = ai, [x(an) = an, [i (ё) = Е. Тогда
множество А = [i [.т (/) — {&}) П a*ea* } является КС-языком.
Кроме того, если е££>, то U а\Еадп-= А {] Е, а если
1 п
eg/), то U aiZ?an=^4, что и завершает доказательство
леммы.
В лемме 5.3.3 указывается структура КС-языков
М е а* . . . а*, где все а^ различны.
Лемма 5.3.3. Пусть 2 = {a^ | I ^ i ^ тг}, ^г ^- 3.
Каждый КС-язык М ^ а* . . . а* может быть представ-
представлен как объединение конечного числа множеств вида
а. Й (Я, Я, /T)={ai1xyai|aJaieZ), x£E, y£F),
где D, E, F — КС-языки, содержащиеся соответственно
в а^пп, а* ... а*, aj ... а?[, 1 < g < тг. Обратно, всякое
объединение конечного числа множеств вида а является
К С-языком.
Доказательство. Согласно лемме 5.3.2, вся-
всякое объединение конечного числа множеств вида а являет-
является КС-языком, содержащимся в а* ... а*. Поэтому доста-
достаточно показать, что всякий КС-язык М, содержащийся
в а* . . . а*, является объединением конечного числа
множеств вида а.
Пусть М <= а* . . . а^ — непустой КС-язык. Тогда
существует приведенная КС-грамматика G = (F, 2, Р, £fe),
где V — 2 = {^, . . ., lk}, порождающая язык М.
Предположим, что символ ап не встречается ни в одной
цепочке множества М. Тогда М ^ а* . . . aj_i и множе-
множество Ш = М ({е}, М, {&}) удовлетворяет условию а.
Аналогично рассматривается случай, когда ни в одной
цепочке множества М не встречается символ ау. Итак,
мы можем считать, что во множестве М имеется как цепоч-
цепочка, содержащая аь так и цепочка, содержащая ап- Изме-
5.3. Структура ограниченных КС-языков 215
нив, если это необходимо, нумерацию символов {£ь . . .
. . ., ■£&}, мы можем считать, что существует число h ;> 1,
такое, что
*
Ь. множество {и £ 2* | Е* =Ф и} содержит цепочку, содер-
содержащую вхождения символа аь и цепочку, содержащую
вхождения символа ап, тогда и только тогда, когда
Будем говорить, что имеет место Q(u, и), если
{и/бР|и4м'}с{а1, Ei, . .., Бл-i}*,
{^eF*|i;4^}e{an, Ei, ...,E*-i}*.
Тогда
с. если £j—>u%jV(iP, где /г <£,/<&, то имеет место
* —
(Действительно, пусть и=$и' и м'£ {аь Ei» • ••» Ел-i}*-
Из b и из того, что КС-грамматика G является приведен-
ной, следует, что и'^и±а^2, где ць м2£2* и 1
Кроме того, \jV=$ а^з, где w3 6 S*. Тогда \ ^
где м4, w5 6 S*. А это противоречит тому, что М <=а* .. . а* .
Аналогично для у.) Из с следует, что
*
d. если Ei=^#, fe<i<A;, то цепочка х не может иметь
вида MiEd^EjWs» где
Пусть fe<f</c. Обозначим через G; КС-граммати-
КС-грамматику (F, S, Р^ Ел), где Л = {Б;->*е^|1</<Л}11
и{Б^->мЕг1;е^|Л</<й, A<r<u}U{Ei-»e}. Пусть
цепочка w^H = {au ..., аЛ, Ei, •••, Ел-i}* такова, что
Ef—>w£P. Обозначим через G^ КС-грамматику
(F, S, i>iU7, E0. гДе
Л«; = {Б^-^*е^|1</<й}и{Б«->И-
Покажем, что М~М', где М' — объединение конечного
числа множеств вида U a*L (Giw) cPn.
Докажем, что М <=,М''. Для этого достаточно показать,
что если Еа=^#, то возникает одна из следующих двух
G
возможностей.
216 Гл. 5. Ограниченные КС-языки
e. Если x = u%iV, где /г<£<&, то имеет место Q(u, v)
и £й=Ф;г для всех /, /г</<&.
f. Если цепочка х не содержит ни одного из символов
{Jj/г, ..., £А), то существуют и, v, z, i и ш, такие, что
* *
A) x=uzu; B) имеет место Q(u, v)\ C) £&=фш;; D) ^ =ф 2.
(В самом деле, пусть указанная альтернатива имеет
*
место и х£_ М. Тогда \k=$x. Поскольку цепочка х не может
G
удовлетворять условию е, она удовлетворяет условию f
для подходящих w, v, z, i и w. Из Q{u, и) следует, что
и£а*, у£а*. Из f3 следует, что uv£ L(Gt) f] a*aj, а из f4 —
что z£L(Giw). Итак, x^M'.)
Покажем, что если %k=$x, то имеет место либо е,
G
либо f. Пусть %к=х0=$ .. . =$xs = x для подходящих 5,
G G
#!, ..., xs-i. Если 5 = 0, то имеет место е. Предположим,
что для всех 5, 5<w — 1, имеет место либо е, либо f.
Пусть s—m. Возможны два случая.
I. x~u\iV, где /г<г</с. Согласно с, имеет место Q(u, v).
Кроме' того, xm_i = u'\gvf, где h < g < к. (В противном слу-
случае цепочка хт^ и, следовательно, цепочка хт принад-
принадлежит множеству Н, что невозможно.) Поскольку
£fc=£>w'£gi/, где h<Cg<Ск, имеем по индуктивному пред-
G
положению ^=ф^_! для всех /, /г</<А. Кроме того,
G
GJ
J
при переходе в грамматике G от хт_! к хт не может при-
применяться правило вида %d—J>t, где fe<d</c и t£H.
(В противном случае цепочка хт^ не удовлетворяла бы
условию d.) Итак, xm-i=$>xm для всех /, /г</</с. Сле-
довательно, £&=фх для всех /, /г</<А:, и имеет место е.
II. Цепочка х принадлежит множеству И. Предположим,
что xm-i= u%iVr, где /г<г<^. Тогда имеет место Q (uf, vf)
и по индуктивному предположению ^^хт-х. Кроме того,
5.3. Структура ограниченных КС-языков 21т
цепочка хт получена из цепочки #m_i в грамматике G
в результате применения правила вида ^—>z, где z£H.
* *
Тогда х— u'zv'. Поскольку £* —->&£Pi, то ^=^и'^'=ф wV.
Очевидно, что £*=>z. Предположим теперь, что цепочка
G
Giz
z
xm-i удовлетворяет условию f. Тогда существуют и, v, z, i
и ш, такие, что для цепочки хт^ имеют место f 1 — £4.
Пусть xm = uz'v. Тогда цепочка z' получается из цепочки z
в результате применения правила \j-^>t, 1</<^. Отсюда
z=$z', так что ^=^z=^z'. Итак, для и, v, z\ г и ш имеют
Giw Giw Giw
место fl —f4. Пусть xm = u'zv. Тогда и' получается из и
в результате применения правила вида £j—->£, 1</</г.
* *
Итак, %к=$ии=$и'и. Тогда для и', v, z, i и w имеют место
Gi Gi
fl — f4. Аналогично рассматривается тот случай, когда
xm = uzv'. Индуктивный шаг доказан.
Чтобы убедиться в том, что Mf ^ M, достаточно пока-
* * *
зать, что если £&=£ у и %i=$z (так что \t^z) для подходя-
Gi Giw G
щих i и и;, то возникает одна из следующих возможностей.
g. Если у — и\р, где /г</</с, то имеет место Q(и, и)
G
h. Если цепочка у не содержит вхождений символов
{lh, • • •» 5а}» то ссуществует w и у, такие, что у — ио,ж имеет
место Q(u,v) и \^-=^иъо.
G
(В самом деле, пусть указанная альтернатива имеет
место и х^М'. Тогда существуют z, i, а и C, такие, что
y = aia£6 £(£*)» z£L(Giw) и x = a"za?^. Следовательно,
^ =Ф 2 и £д=^{/. Цепочка i/ не содержит вхождений
Giw Gi
символов {^л, . . ., £д}. Итак, существуют w и у, такие,
что y — uv, имеет место Q(u,v) и \k=$uzv. Посколь-
G
ку имеет место Q(u,v), то w£#* и v£ аи- Тогда w — a",
у = а^ и \h-=^a[za\^x. Следовательно, х£М.)
Гл.
И
Gi
5.
> я
Ограниченные КС-языки
*
=Ф z, то имеет местр
..=$ys = y и
Gf
£г ^ 2.
218
Покажем, что если y
Gi
либо g, либо h. Пусть lk =
Очевидно, что если s = 0, то имеет место g. Предположим,
что для всех 5, 5</гг —1, имеет место либо g, либо h.
Пусть s=m. Возможны два случая.
III. y^u^jUy где /г</<&. Из d и определения множе-
множества Pi следует, что в выводе цепочки ут из символа £д
*
не использовалось правило £г—>е. Поэтому %k=$y и имеет
G
место Q (и, v). . 128
IV. Цепочка у не содержит вхождений символов^, ..., J-д}.
Рассмотрим цепочку ут-±. Пусть ym-i=ul-jV, где Л</<А;.
По индуктивному предположению имеет место Q (и, и)
и ^k=^ym-i- Поскольку уgH', цепочка г/т получается из
G
цепочки г/т_1 в результате применения правила £у-—>е.
Итак, у=ии. Тогда %>&=$ иЪ>р =$ uzv, так что имеет место h.
G G
Пусть цепочка ym-i не содержит вхождений символов
{5/1? • • •» 5^}- По индуктивному предположению существуют
и' и z/, такие, что i/m-i^wV, имеет место Q(u',vf)
и \k=^u'zv'. Тогда ут = ии' или ym=^u'v для подходящих
G
u и у. Если ут = ии', то цепочка гг получается из цепоч-
цепочки г/ в результате применения правила грамматики Gt,
отличного от правила \-г—>е. Итак, и'=$и, имеет место
G
Q (и, и') и £а=Ф w'zy' =ф mzz;'. Аналогично можно показать,
G G
что если ym = u'v, то имеет место Q(u',v) и \b=$u'zv.
G
Индуктивный шаг доказан. Итак, М = М'.
Для завершения доказательства леммы осталось пока-
показать, что для каждого из КС-языков L (Giw) найдутся
КС-языки Eiw <=а* . . . а% и Fiw с= а* . . . а*, 1 < # < п,
такие, что L (Giw) = EiwFiw. Пусть w=e. Тогда L(Giw)=^
= {г}. Полагаем £^ = {8}, Fiw = {z}, q=-2. Пусть w =
= Xi .. , хТУ где хх, . . ., xr ^ F? и пусть т — подстановка,
5.3. Структура ограниченных КС-языков 219
определенная следующим образом: т (xj) = {и £ 2* | Xj =ф w}
для всех ;. Предположим, что существует натуральное
число яг, такое, что т (хт) 9= а^ ... #£. Пусть р— наименьшее
из всех таких т. Полагаем EiW = {e}, если р= 1, и Eiw —
= т (#! . .. Жр-i), если р>1. Кроме того, полагаем д—2
и /^ = т (жр ... жг). Очевидно, что L (Giw) = EiwFiw,
Eiw c= a* ... а*, /^ ^ а* .. . а^. Предположим теперь, что
не существует числа /гг, удовлетворяющего условию
т (£т) с= а* . . . ап. В этом случае полагаем Eiw = х (ж4 . .. жг),
^.^ = {8} и q = n— 1. Очевидно, что L (Giw) = EiwFiw.
Цепочка itf принадлежит множеству Я, а из и =ф г; сле-
следует u=$v. Поэтому ни одно из множеств т (^7) не со-
G
держит одновременно цепочку с вхождением символа at
и цепочку с вхождением символа ап. Поскольку множе-
множество г (xj) не содержится во множестве а* . .. ап, имеем
т (ж;) <=al . . . а*_г Тогда из того, что L (Giw) = EiwFiw,
следует, что E\w <= а\ . . . а*_х. Доказательство леммы
закончено.
Следующая лемма будет несколько раз использована
в дальнейшем. В частности, мы воспользуемся ею при дока-
доказательстве основного результата, касающегося структуры
ограниченных КС-языков.
Лемма 5.3.4. Пусть wu . . ., wn — цепочки и аи ...
. . ., ап — попарно различные символы. Если множество
М д= w\ . . . Wn есть К С-язык, то и множество
являющееся подмножеством множества а* . . . а£, есть
К С-язык.
Доказательство. Пусть S — конечный пре-
преобразователь с одним состоянием, отображающий каждый
символ at в цепочку ivt. Тогда, согласно теореме 3.3.3,
множество S'1 (М) = {и \ S (и) £ М} является КС-язы-
КС-языком. Пусть Y = S'1 (М) П а* . . . а*. Тогда
Y^ial1 ...акпп\шкгг ...wknneM}.
220 Гл. 5, Ограниченные КС-языки
Поскольку множество а* . . . а£ регулярно, то, согласно
теореме о пересечении КС-языка с регулярным множе-
множеством, множество Y является КС-языком.
Докажем теперь основной результат относительно
структуры ограниченных КС-языков. Этот результат яв-
является обобщением лемм 5.3.1 и 5.3.3 на случай, когда
аь . . ., ап — не символы, как раньше, а цепочки.
Теорема 5.3.1. а. Каждый КС-язык М ^ w*w*,
где и)^ и w2 — цепочки, можно представить как объедине-
объединение конечного числа множеств вида
1. (Zm, Ут) - . - 0*1, */l)*Z,
где Xi £ w*, уг £ u>t u z 6 wtw*' Обратно, всякое объеди-
объединение конечного числа множеств вида 1 является КС-язи
ком, содержащимся в i^w*.
b. Каждый КС-язык М s w* . . . wni где n ^> 3 и
wif . . ., wn — цепочки, можно представить как объеди-
объединение конечного числа множеств вида
2. m(D,E,F)= U w[EFwjn,
где A) D — КС-язык, содержащийся во множестве а*а*,
где аь ап — различные символы, и гр — отображение,
введенное в разд. 5.2; B) множества Е ^ w* . . . w%
и F ^ Wq . . . Wn являются К С-языками, 1 <; q < п.
Обратно, всякое объединение конечного числа множеств
вида 2 является КС-языком, содержащимся во множестве
Доказательство, а. Пусть М д= м?*м;*, где
Wi и w2 — цепочки, есть КС-язык. Пусть а^ и а2 — раз-
различные символы и S — конечный преобразователь с одним
состоянием, отображающий всякий символ аг в цепочку
wг. Тогда S (X) = U S (х) и S (xtx2) = S (хг) S (х2),
где Xi, x2 £ 2*. Согласно лемме 5.3.4, множество
является КС-языком. По лемме 5.3.1 множество Y можно
представить как объединение конечного числа множеств
вида (хт, ут) . . . (хи yt)*z, где хг 6 а*, уг 6 а* и z 6 <a*.
Итак, множество М = S (Y) есть объединение конечного
5.3. Структура ограниченных КС-языков 221
числа множеств вида
S((xm, ym) ... {XU yt)*z) =
— £> \ U %т • • • xi Щ\ • • • Ут ) —
Al,...,fcm^0
km S (г/1 S (z) S (г,)*1 S (y)hm
U S (xm)km ...S (г/1 S (z) S (г,,)*1 • • • S (ym)hm =
= (S (xm), S (ym)) ...(S (*,)> S (yi))*S(z).
Таким образом, М есть объединение конечного числа
множеств вида 1.
Обратно, каждое множество вида 1 порождается КС-
грамматикой с правилами о -> хьоуь A ^ t ^ щ) и о -> z.
Таким образом, объединение конечного числа множеств
вида 1 есть КС-язык, содержащийся во множестве w^w*.
b. Пусть множество М ^ ш* . . . ш* (^г ^ 3, шь ...
. . ., wn — цепочки) является КС-языком. Пусть аи ...
. . ., ап — попарно различные символы и S — конечный
преобразователь с одним состоянием, отображающий каж-
каждый символ at в цепочку wt. Согласно лемме 5.3.4, множе-
множество
— {^ .. . ап \w1 ... wn t Щ
является КС-языком и содержится во множестве а* ... а,п-
Согласно лемме 5.3.3, Y есть объединение конечного числа
множеств вида
J(D,E',F')= U a[E'F'al
где множества D ^ а*а%,, Е' s а* ... а\ и F' ^ а\ . .. а*
являются КС-языками. Таким образом, множество S (У) =
= М является объединением конечного числа множеств вида
S(J(D,E',F'))= у
Поскольку Е' и F' — КС-языки, множества Е = S (£") ^
<= ш* . . . Wq я F = S (Fr) ^Wq...Wn также являются
КС-языками. Поэтому множество S (J (D, E', F')) =
= Ш (D, E, F) удовлетворяет условию 2. Следовательно,
М есть объединение конечного числа множеств вида 2.
>22
Рассмотрим
теперь
= U w[EFw3n вида
Е'
2.
akq
Гл.
£. Ограниченные
множество 9Л (D,
Пусть
К1..
■ w\qtE)
К С-язык и
E,F) =
Согласно лемме 5.3.4, множества Е' е а* . .. а\ и Ff ^
^ а| . . . а* являются КС-языками. По лемме 5.3.3 мно-
множество U a\E'F'a?n ^а* . . . а* есть КС-язык. Пусть
a\atfD
S — конечный преобразователь с одним состоянием, отобра-
отображающий символ at в цепочку ivt. Тогда множество
S( U a[E'F'all) = m(D,E,F)
a]ai£D
1 п
является КС-языком. Следовательно, объединение конеч-
конечного числа множеств вида 2 является КС-языком.
Следствие 5.3.2. Множество X ^ w^w* (wi и и>2—
цепочки) тогда и только тогда является КС-языком, когда
множество {(т, п) \ w™w% 6 X} полулинейно.
Упражнения 5.3
1. Упростить выражение (X, {г}) * {г}.
2. Доказать, что (Xn, Yn) . . . (Xi9 Y,) * Z = (Xn, Yn) *
*((Xn_lf Уп_!) . .. (Xlf yt)*Z) [GS 2].
3. Пусть аь а2? аз — попарно различные символы и w =
= <«i, а2, а3). Найти /^ (L).
a. L = L (q; ри ръ р3), где q = @, 1, 0), pt = A, 2, 1),
/?2 = @, 0, 2) и Рз = B, 2, 1).
b. L = L (q; pu p2) U ^ (сг; Рз, Pi, Рь), где q = @, 0, 0),
с2 = A, 2, 0), Р1 = A, 2, 1), р2 = B, 0, 1), Рз = @, 1, 1),
р4 = @, 2, 3) и р5 = @, 7, 6).
4. Пусть 2 = {а, Ь}. Пусть / (е) = 8 и для всякой непустой
цепочки w £ а*6* множество / (w) состоит из всех тех цепочек,
которые могут быть получены из цепочки w в результате переста-
перестановки символов. Например, / (ааЪ) = {aab, aba, baa). Показать,
что если X с а*6*, то / (X) тогда и только тогда является КС-язы-
КС-языком, когда таковым является X. (Указание: использовать лемму П.1
из приложения.)
5.4. Характеристики ограниченных КС-языков 223
5. Пусть 2 = {а, Ъ) и / (aibvw) = a*i+1Ww\ если | v | = i > О,
и / (ж) = а1Х1, если ж не представимо в виде х = a^bvw, где | v \ =
= i !> 0. (См. второй пример разд. 3.4.) Показать, что множество
КС-языков замкнуто относительно отображений / и f*1 [FPol].
6. Доказать, что каждый ограниченный КС-язык является
последовательностным [GS2].
5.4. Характеристики ограниченных КС-языков
В этом разделе мы проведем две характеристики огра-
ограниченных КС-языков. Одна из них аналогична характери-
характеристике регулярных множеств в терминах операций U , •
и*, другая — алгебраическая, в терминах полулинейных
множеств. Используя алгебраическую характеристику,
мы покажем для некоторых конкретных множеств, что
они не являются КС-языками.
Лемма 5.4.1. Пусть 2 = {at | 1 ^ i <; п). Каждый
К С-язык, содержащийся во множестве а* ... а*, может
быть получен из конечных множеств в результате конеч-
конечного числа применений следующих операций:
a. Объединение двух множеств.
b. Произведение двух множеств.
c. (х, z/)*Z, где х и у — цепочки.
Доказательство. Согласно теореме 3.1.2, каждый
КС-язык, содержащийся во множестве а*, является регу-
регулярным множеством, и, следовательно, для п=^1 лемма
верна. Ввиду леммы 5.3.1 доказываемое утверждение спра-
справедливо и при п=2. Предположим, что лемма доказана
для к > 2. Пусть множество . М ^ а\ . . . а\+ А является
КС-языком. По лемме 5.3.3 М можно представить как объеди-
объединение конечного числа множеств вида U а\^а\^,
1 fe+l
где множества D ^ #*#*+1, E s а* . .. a*q и F <= a*q ... а^+1
A <#<&+!) являются КС-языками. По индуктивному
предположению множества Е и F могут быть получены
из конечных множеств в результате конечного числа при-
применений операций a, b и с. Согласно лемме 5.3.1, D есть
объединение конечного числа множеств вида
(хт, Ут) ... (*i, г/i) * а^+г
224 ' Гл. 5. Ограниченные ЕС-языки
Тогда множество U a[EFal+1 можно представить как
а[а{ .£
1 fe+l
объединение конечного числа множеств вида
(хт, Ут) .. . (si, yi)*a\EFa%hw
Итак, множество М может быть получено из конечных
множеств в результате конечного числа применений опе-
операций a, b и с. Доказательство индуктивного шага закон-
закончено.
Теорема 5.4.1. Семейство ограниченных КС-языков
есть наименьшее семейство множеств, содержащее все
конечные множества и замкнутое относительно следующих
операций:
a. Объединение конечного числа множеств.
b. Произведение конечного числа множеств.
c. (х, у) * Z, где х и у — цепочки.
Доказательство. Если Ati . . ., АТ — огра-
ограниченные КС-языки, то таковыми являются и множества
г
U Аг и Ai . . . Аг. Пусть Z — ограниченный КС-язык
1
и х и у — цепочки. Тогда множество (х, у) * Z = (J xnZyn
О
является ограниченным КС-языком. Из того, что каждое
конечное множество есть ограниченный КС-язык, следует,
что всякое множество, полученное из конечных множеств
в результате конечного числа применений операций типа
a, b и с, является ограниченным КС-языком.
Пусть теперь множество А е w* . . . w* (wli . . ., wr —
цепочки) является КС-языком, а аи . . ., ат — символы.
Согласно лемме 5.3.4, множество
есть КС-язык, содержащийся во множестве а* ... а?.
По лемме 5.4.1 множество В может быть получено из
конечных множеств в результате конечного числа при-
применений операций типа а, Ь и с. Другими словами, множе-
множество В может быть получено из конечных множеств после-
последовательным выполнением операций /4, . . ., /т (каждая
из этих операций имеет тип а, b или с). Пусть S — конеч-
конечный преобразователь с одним состоянием, отображающий
5.4. Характеристики ограниченных КС-языкбв 225
символ аг в цепочку ivt. Тогда
= U S(znZyn) =
= U SXx
Итак, множество А также может быть получено из конеч-
конечных множеств последовательным выполнением операций
/i» • • •» fm- Доказательство окончено.
Попытаемся охарактеризовать КС-языки W ^ш* . . . w%
в терминах множеств {(ц, . . ., in \ w\i ... w%n £ W} =
= /п?1 (И7), и> = (m;i, . . ., ivn). Ввиду леммы 5.3.4 и тео-
теоремы Парика множество /^ (W) полулинейно, если
множество W ^ iv* . . . w% является КС-языком. Но это
условие не является достаточным (см. упр. 5.2.2).
Основную роль в нашей характеристике будет играть сле-
следующее свойство.
Определение. Множество X ^ Nn называется
расслоенным, если оно удовлетворяет следующим двум
условиям: 1. Каждый вектор из множества X имеет не
более двух непустых компонент. 2. Не существует нату-
натуральных чисел £, /, А и т и элементов х = (xi, . . ., хп)
и х' = (х[, . . ., Хп) множества X, таких, что 1 ^ i <;
<Z ] < k <С.т ^ п и XiXjXhx'm Ф 0.
Таким образом, условие 2 утверждает, что во множе-
множестве X нет двух элементов х ж х', таких, что индексы двух
непустых компонент х «переплетаются» с индексами двух
непустых компонент х'.
Примеры. 1. Множество {A, 1, 1), A, 0, 2)} не является
расслоенным, так как элемент A, 1, 1) имеет три непустые компо-
компоненты.
2. Множество {B, 0, 3, 0), A, 1, 0, 0), @, 3, 0, 2)} не
является расслоенным, так как для элементов B, 0, 3, 0)
и @, 3, 0, 2) нарушается условие 2.
3. Множество {B, 1, 0), @, 3, 3)} является расслоенным.
4. Множество {C, 0, 0, 2), @, 1, 5, 0), D, 7, 0, 0)} являет-
является расслоенным.
226 Гл. 5. Ограниченные КС-языки
В последующих рассуждениях будут иногда использо-
использоваться следующие два утверждения, непосредственно выте-
вытекающие из определения расслоенного множества.
1. Если X ^ Nn — расслоенное множество, то тако-
таковыми являются и множества X xOmg tfn+m Hf x jg
с- ]ЦП+т^
2. Пусть X ^ Nn — расслоенное множество и 1 ^
<; i± < . . . < im <; п. Пусть / — отображение из Nn в Nm,
определенное равенством / ((z4, . . ., zn)) — (z^ , . . ., Zim).
Тогда множество / (X) является расслоенным.
Для множеств, содержащихся в а* . . . а£ (аь . . .
. . ., ап — попарно различные символы), имеет место необ-
необходимое условие того, чтобы множество было КС-языком,
более сильное, чем условие, доставляемое теоремой
Парика.
Именно справедлива следующая лемма.
Лемма 5.4.2. Пусть 2 = {at \ I <^ i ^ п) и а =
= (аь . . ., ап). Если множество W s а* . . . а* является
КС-языком, то множество fa1 (W) можно представить
как объединение конечного числа линейных множеств, для
каждого из которых соответствующая система периодов
является расслоенной.
Доказательство. Докажем лемму индукцией
по п. При п = 1, 2 всякое подмножество множества Nn
является расслоенным. Пусть лемма доказана для 1, ...
. . ., п — 1. Согласно лемме 5.3.3, всякий КС-язык,
содержащийся во множестве а* ... а*, есть объединение
конечного числа множеств вида
где множества D s ^*^*, Е <= а* . . . а% A < q <; п)
и F s aq . . . а^ являются КС-языками. Поэтому доста-
достаточно доказать лемму для множеств вида Ш (D, E, F).
Пусть т' = i|)«zlf...fag> и т" = i|)<ag,...,on>- Определим
отображение [i множества а*а% во множество Nn следую-
следующим образом: [i (а\ап) = (i, 0, . . ., О, /). По индуктив-
индуктивному предположению множество т' (Е) можно предста-
представить как объединение конечного числа линейных мно-
5.4. Характеристики ограниченных КС-языков 227
жеств вида L (с'; Р'), где с' £ Nq и система периодов
Р' ^ Nq является расслоенной (и конечной); согласно
тому же индуктивному предположению, множество т" (F)
есть объединение конечного числа линейных множеств
вида L (с"\ Р"), где с" 6 Nn~q+1 и система периодов Р" ^
с= дгп-5+1 является расслоенной (и конечной). Согласно
теореме Парика, множество [i (D) полулинейно, т. е.
является объединением конечного числа множеств L (с; Р),
где с 6 Nn, множество Р конечно и при 1 <; i <С n i-я
компонента каждого элемента множества Р равна нулю.
Следовательно, множество fa1 (Ш (D, E, F)) есть объеди-
объединение конечного числа множеств вида
L = L ((с' х 0n~q) + @q^ х с")+с; (Р'xOn~q) \j (O^xP") U Р).
Так как системы Р' и Р" являются расслоенными и конеч-
конечными, то согласно утверждению 1, таковыми являются
и системы Р' X 0n~g и 0я'1 х Р". Поскольку множество
(Р' X 0n~q) U (О5 X Р") U Р конечно, множество L
линейно. Кроме того, индексы непустых компонент всех
векторов из множества Р' х 0n~q принадлежат множе-
множеству {1, ...,?}, индексы непустых компонент всех век-
векторов из множества О5 X Р" принадлежат {q, . . ., п}
и, наконец, индексы непустых компонент всех векторов
из множества Р принадлежат {1, п}. Следовательно,
множество (Рг X 0n"g) |J (О5 X Р") [} Р является расслоен-
расслоенной системой периодов; индуктивный шаг доказан.
Докажем теперь обратное утверждение.
Лемма 5.4.3. Пусть 2 = {at \ I ^ i ^ п} и а —
— (аи . . ., ап); если множество L ^ Nn есть объединение
конечного числа линейных множеств, каждое из которых
имеет расслоенную систему периодов, то множество fa (L)
является К С-языком.
Доказательство. Достаточно доказать лемму
для линейного множества L = L (с, Р), где Р — расслоен-
расслоенная система периодов. Доказательство проведем индук-
индукцией по п.
Пусть п равно 1 или 2. Тогда, согласно следствию 5.3.1,
множество fa (L (с; Р)) является КС-языком.
Предположим, что ^>2и лемма доказана для всех т,
таких, что 1 <^ т <; п. Докажем ее для L (с, Р) индук-
228 . Гл. 5. Ограниченные КС-языки
цией по числу элементов множества Р. Если Р = 0,
то L (с; Р) = {с}. Таким образом, множество fa (L (с\ Р))
конечно и, следовательно, является КС-языком. Пусть
Р ф 0. Возможны два случая.
а. Во множестве Р содержится вектор р, 1-я и п-я ком-
компоненты которого {pi и рп) отличны от нуля. Тогда все
остальные компоненты вектора р равны нулю.^Множество
Р' — Р — {р} является расслоенным и содержит меньшее
число элементов, чем Р. По индуктивному предположению
множество fa (L (с; Р')) является КС-языком. Пусть G' =
= (F', 2, Q', о') — КС-грамматика, порождающая язык
fa (L(c; Р')). Пусть G = (F, 2, <?, а), где а g V, V =
= V U ^} и
Очевидно, что множество /а (L (с; Р)) порождается КС-
грамматикой G, значит является КС-языком.
Ь. Во множестве Р нет ни одного вектора, 1-я и п-я ком-
компоненты которого были бы отличны от нуля. Если во всяком
элементе множества Р, первая компонента которого отлич-
отлична от нуля, все остальные компоненты равны нулю,
положим q = 2. (Заметим, что сюда входит и тот случай,
когда первые компоненты всех векторов из множества Р
равны нулю.) Если во множестве Р содержится вектор,
первая и/-я (/ > 1) компоненты которого отличны от нуля,
обозначим через q наибольшее из таких /. Очевидно,
в обоих случаях 1 < q < п. Из способа выбора q и того,
что Р — расслоенное множество, следует, что в каждом
векторе из множества Р равны нулю либо все компоненты
от первой до (q — 1)-й включительно, либо все компоненты
от (q + 1)-й до п-й включительно. Пусть Р' — множество
всех тех векторов множества Р, i-e компоненты которых
равны нулю для всех £, удовлетворяющих неравенству
q < i < л, и Р" = Р — Р*. Пусть с = (си . . ., сп), с' =
= (си . . ., cq, 0, . . ., 0) и с" = @, . . ., 0, cq+u . . . сп).
Тогда с = с' + с" и
L (с; Р) = {х + у | х€ L (с1; Р'); у 6 L (с"; F')}.
Определим отображение П' множества Nn на множество Nq
и отображение П" множества Nn на множество Nn~q+1 следую-
следующим образом*. П' (хи ..., хп) = (#ь ..., xq), U"{xiy ..., Хп) =
5.4. Характеристики ограниченных КС-языков 229
= {Xq, • • .,3д). ПуСТЬ /' = /<в1 ag> , Г = f<aq,. .., ап> • Тогда
£ (с'; Р') = £ (П' (с'); П' (/>')) х О71
и
L (с"; Р") = О* X L (П" (О; П" (Р")).
Итак,
/о (L (с; Р)) = [/' (£ (П' (с'); П' (Р'))I [/" (L (П* (с"); П" (/>")))]•
Поскольку Р — расслоенное множество, по утверждению 2
(перед леммой 5.4.2) таковыми являются и множества
П' (Р') и П" {Р"). По индуктивному предположению мно-
множества /' (L (П7 (с'); П' (/>'))) ^ < ... а* и Г (£ (П" (с");
П7/ (Р"))) с= (iq . . . а!Ц являются КС-языками.
С помощью только что доказанной леммы мы получаем
следующую алгебраическую характеристику ограничен-
ограниченных КС-языков.
Теорема 5.4.2. Пусть W ^ н;* . . . w%, {wu . . .
. . ., wn — цепочки) и w = (wiy . . ., wn). Тогда множе-
множество W является К С-языком тогда и только тогда, когда
множество /^ (W) можно представить как объединение
конечного числа линейных множеств, имеющих расслоен-
расслоенные системы периодов.
Доказательство. Пусть аь . . ., ап — попар-
попарно различные символы и а = (аь . . ., ап). Предположим,
что множество /^ (W) есть объединение конечного числа
линейных множеств, имеющих расслоенные системы перио-
периодов. Согласно лемме 5.4.3, множество fa [f^ (W)] является
КС-языком. Пусть S — конечный преобразователь с одним
состоянием, отображающий символ at в цепочку wt. Тогда
множество Sfa [/Ji1 (W)] является КС-языком. Поскольку
fw (Н) = Sfa (Н) для всех Н ^ Nn, имеем
и, следовательно, множество W является КС-языком.
Предположим теперь, что множество W ^ ш* .. . w%,
является КС-языком. Согласно лемме 5.3.4, множество
также есть КС-язык. По лемме 5.4.2 множество fa1 (Y) =
— /г? (W) можно представить как объединение конечного
230 Гл. 5. Ограниченные КС-языки
числа линейных множеств, имеющих расслоенные системы
периодов.
Пример. Пусть L = L (a; pu P2) U L (С2, Рз, Рь, Рб), где
Ci = @, 1, 0>, сг = B, 3, 2), Pl = @, 1, 1), р2 = B, 0, 1),
р3 = A» 2, 0), р4 = C, 0, 4) и р5 — @» 6, 3). Поскольку множе-
множества {р1? р2} и {Рз» Р4) Рб) — расслоенные, для всякой тройки
цепочек w = (wi9 w2, w3) множество
fw (Ь) = {и>Щ+*и>1+* | i, / > 0} U
является КС-языком.
При использовании теоремы 5.4.2 возникает известное
неудобство, состоящее в том, что полулинейные множества,
вообще говоря, представимы в виде конечных объединений
линейных множеств многими различными способами, при-
причем для одних представлений соответствующие системы
периодов могут оказаться расслоенными, для других —
нерасслоенными. Было бы желательно научиться опреде-
определять по произвольному представлению полулинейного
множества X в виде объединения конечного числа линей-
линейных множеств, существует ли представление этого множе-
множества в виде объединения конечного числа линейных мно-
множеств с расслоенными системами периодов. Однако соот-
соответствующая процедура до сих пор не найдена.
Открытые проблемы, 1. Указать процедуру, позволяющую
по произвольному представлению полулинейного множества опре-
определить, представило ли это множество в виде объединения конеч-
конечного числа линейных множеств с расслоенными системами периодов.
% 2. Охарактеризовать класс МП-автоматов, допускающих
в точности ограниченные КС-языки1).
Оставшуюся часть этого раздела мы посвятим изуче-
изучению линейных множеств. Результаты, которые будут
получены в этом направлении, мы используем для дока-
доказательства того, что некоторые конкретные ограниченные
множества не являются КС-языками.
Обозначение. Пусть ^ — отношение, опреде-
определенное на множестве Nn следующим образом: если и =
= (^1, . . ., Un), ^ = (uu . . ., vn), то и < v тогда и только
тогда, когда ut ^ vt для всех i, I ^ i ^ п.
Этот вопрос решен в [Щ,— Прим. перев.
5.4. Характеристики ограниченных КС-языков 231
Отношение <С является отношением частичного поряд-
порядка на множестве Nn. Мы можем, в частности, говорить
о минимальных элементах множества X ^ Nn. Два эле-
элемента (хи . . ., хп) и (у4, . . ., уп) множества Nn несрав-
несравнимы, если существуют натуральные числа i и j, такие,
что хг < ух и xj > yju
В дальнейшем будет полезно следующее утверждение,
касающееся отношения ^ на множестве Nn.
Лемма 5.4.4. Всякое подмножество множества Nn,
все элементы которого попарно несравнимы, конечно.
Доказательство. Пусть F — бесконечное мно-
множество, состоящее из попарно несравнимых элементов
множества Nn, и (£ь . . ., tn) — некоторый выделенный
элемент множества F. Поскольку всякие два элемента мно-
множества F несравнимы, то для всякого элемента (хь . . ., хп)
((#!, . . ., хп) Ф{ги . . ., £п)) множества F существуют
числа i (x) и / (х), такие, что ti{x) < xi{x) и xj{x) < tj(x).
Поэтому существуют i и /, такие, что множество
бесконечно. (В противном случае всякое множество А^ =
— {(#!, . . ., хп) £ F | ti <C xi, tj > Xj} было бы конечным.
А поскольку множеств вида А%$ имеется лишь конечное
число и F— U Аи, то и множество F было бы конечным.)
Отсюда следует, далее, что существует натуральное число й,
h такое, что множество
F1 - {(*!, . .., хп) 6 F | U < xt, Xj = Щ
бесконечно. (Пусть Bk = {(xu . . ., хп) £F\ tt <.хг, Xj = &},
О < к < tj. Поскольку существует лишь конечное число
таких Въ,, то по меньшей мере одно из них бесконечно.)
Повторив эту процедуру, мы получим последовательность
бесконечных множеств
таких, что для каждого т, 1 ^ т ^ п — 1, найдутся
т компонент £ь . . ., im, удовлетворяющих следующему
условию: Xi1 = yi1 , . . ., xim = г/гтдля всех (хи . . ., хп)
и (jjii - - ч Уп) из множества Fm. Тогда существует нату-
232 Гл. 5. Ограниченные КС-языки
ральное число к, такое, что Xj = ijj для всех /, )' Ф к,
и всех (х1, . . ., хп) и (у1, . . ., уп) из множества Fn _x.
Следовательно, никакие два элемента множества Fn _t
не являются несравнимыми между собой. Полученное
противоречие завершает доказательство.
Каково бы ни было множество X ^ TV71, любые два
его минимальных элемента несравнимы между собой.
Поэтому имеет место
Следствие 5.4.1. Всякое подмножество мноэме-
ства Nn имеет лишь конечное число минимальных эле-
элементов.
Замечание. Хотя не существует бесконечных под-
подмножеств множества Nn, n^> 2, элементы которых попар-
попарно несравнимы, тем не менее для любого натурального
числа т в Nn можно найти т попарно несравнимых эле-
элементов. Например, попарно несравнимы элементы множе-
множества {(*, /) X 0п-2 | Z + / = т - 1}.
В следующих двух леммах устанавливается связь
между системой периодов произвольного линейного мно-
множества и системами периодов некоторых других линейных
множеств.
Лемма 5.4.5. Пусть М = L (c4; Pi) [}...[} L (cr; РТ)
есть полулинейное подмножество множества Nn и
L (с:> Р) — линейное множество, такое, что пересечение
L (с\ р) П М бесконечно. Тогда существуют нату-
натуральные числа i и к, такие, что кр есть сумма положи-
положительных кратных некоторых элементов множества Рг.
Доказательство. Поскольку множество
£ (с> р) П М бесконечно, существует натуральное число £,
такое, что множество L (с\ р) {] L (ct\ Pt) бесконечно.
Пусть Pt — {О71} = {#!, . . ., qm}. Рассмотрим множество
т
X=[(s,tu ...,tm)e Nm+i | с + sp = a + 2 tjqj}.
1
Поскольку множество L (c\ p) {] L (ct; Pt) бесконечно,,
то и множество Х бесконечно. Согласно лемме 5.4.4,,
во множестве X существуют попарно различные элементы
{s, U, . . ., tm) и (s\ *;, . . ., tm), такие,, что J? < $' я tj < Ц
5.4. Характеристики ограниченных КС-языков 233
для всех /, 1 <^ 7 <^- Тогда
причем s < s' или ^ <; t] для некоторого 7. В любом
случае k — sr — s > О и кр есть сумма положительных
кратных некоторых элементов множества Pt.
Лемма 5.4.6. Пусть L — линейное подмножество
множества Nn, P — его система периодов и V — линейное
подмножество множества L, имеющее расслоенную систему
периодов. Тогда существуют конечное подмножество F
множества L и расслоенное подмножество Y множества Р,
такие, что L' ^ L (F; Y) ^ L.
Доказательство. Пусть U — L (с; X), где
X — конечная расслоенная система периодов. Пусть Y —
множество, состоящее из всех тех у £ Р, для которых суще-
существуют х £ X и положительное число к, такие, что кх~>у.
Поскольку X — расслоенное множество, таковым являет-
является и множество Y. (Покажем это. Пусть у = (г/ь . . ., уп)
и у' = (у[, . ♦ ., yfn) принадлежат множеству Y. Пусть,
кроме того, х = (#i, . . ., хп) и х' = (х[, . . ., хп) — эле-
элементы множества X, такие, что существуют к\ и к2 ^> 1,
удовлетворяющие условию: кхх ^> у и &2а:' ^ г/'. Следова-
Следовательно, д;^ ф 0 всякий раз, когда yt ф 0, и д:] ф 0 всякий
раз, когда у\ Ф 0. Если существуют i A), i B) и £ C),
такие, что] */i(i), уц2) и yiC) отличны от нуля, то хщ),
^гB) и #гC) отличны от нуля, что противоречит расслоен-
ности множества X. Если существуют i A) <; i B) <;
< i C) < i D), такие, что yi{i), yi{Bh г/-B), ^D) отличны
от нуля, то хц\), хцз), хц2) , ^iD) также отличны от нуля,
что опять-таки противоречит расслоенности множества X.)
Пусть х — произвольный элемент X, отличный от 0п.
Поскольку L (с; х) ^ L, в силу леммы 5.4.5 существует
натуральное число к, такое, что кх есть сумма положи-
положительных кратных Некоторых элементов множества Р.
Эти элементы Р принадлежат, очевидно,|и множеству У.
Пусть X - {0п} = {хи • • ., хт) и kt A < i < m) -
натуральное число, такое, что кьхг есть сумма положи-
положительных кратных некоторых элементов множества У.
234 Гл. 5. Ограниченные КС-языки
Положим
Множество F конечно. Осталось показать, что U ^
<=, L (F) Y) ^ L. Каждый элемент множества V имеет вид
т
c-\-^jSiXi. Для каждого i существуют rt и tt, 0<^<^i,
i
такие, что Si = rtki-{-ti. Поэтому векторы
т mm
с + 2 SiXt = с + 2 ttxi + 2 rikiXt
1 1 1
принадлежат множеству L (F; У). Следовательно, L' <=
д^ L (F; У). Поскольку F <= L и У ^ Р, имеем
L (F; Y) s L.
Следующая теорема вместе с теоремой 5.4.2 дает
некоторую характеристику тех линейных множеств, для
которых соответствующие ограниченные множества цепо-
цепочек являются КС-языками.
Теорема 5.4.3. Линейное множество L (с; Р) яв-
является объединением конечного числа линейных множеств,
имеющих расслоенные системы периодов, тогда и только
тогда, когда оно является объединением конечного числа
линейных множеств, таких, что системы периодов каждого
из этих множеств являются расслоенными подмножествами
множества Р.
Доказательство. Пусть L (с, Р) = Lt \j ...
... U Lm, где L1, . . ., Lm — линейные множества с рас-
расслоенными системами периодов. Согласно лемме 5.4.6,
существуют линейные подмножества F^, . . ., Fm множе-
множества L (с; Р) и расслоенные подмножества Уь . . ., Ym
т
множества Р, такие, что L (с; Р) = \JL (Ft; Yt). Посколь-
i
ку каждое из множеств L (Рг; Yt) есть объединение конеч-
конечного числа линейных множеств с одной и той же системой
периодов, равной Yt, теорема доказана.
Следствие 5.4.2. Пусть L — линейное подмноже-
подмножество множества Nn, имеющее линейно независимую систему
5.4. Характеристики ограниченных КС-языков 235
периодов Р, и а = {аи . . ., ап) — упорядоченная система
п попарно различных символов. При этих условиях множе-
множество fa (L) является КС-языком тогда и только тогда,
когда Р — расслоенное множество.
Доказательство. Если Р — расслоенное мно-
множество, то по теореме 5.4.2 множество fa (L) является
КС-языком. Докажем обратное. Пусть fa (L) — КС-язык.
Из теорем 5.4.2 и 5.4.3 следует (поскольку faxfa (L) = L),
что L = U Lt, где L4, . . ., Lr — линейные множества,
1
такие, что их системы периодов являются расслоенными
подмножествами множества Р. Пусть L = L (с; Р), где
Р = {Ри • • ., Рт}- Тогда L (с; pi + . . . + рт) с=: L.
Согласно лемме 5.4.5, существуют числа £, 1 <; i ^ г,
и /с, такие, что k (pt + . . . + рт) есть сумма положитель-
положительных кратных некоторых периодов из системы периодов
множества Lt. Таким образом, к (pi + . . . + рт) =
= tiPi + . . . + tsp's, где р) — элементы системы периодов
множества Lt и tj >> 0 для всех /. Поскольку {р[, . . ., p's,
Рь • • •» Рт) ^ Р и векторы /}ь . . ., рт линейно неза-
независимы, имеем {p'v . . ., p's} = {/?!, . . ., /?m} = Р. Итак,
P 3 Pi, откуда Р = Pi. Следовательно, Р — расслоенное
множество.
Следствие 5.4.3. Пусть L = L (с; Р) — линей-
линейное подмножество множества Nn и а = {аи . . ., ап) —
упорядоченная система п попарно различных символов.
Если fa (L) — КС-язык, то для каждого периода р суще-
существует натуральное число к >> 0, такое, что кр есть сумма
положительных кратных элементов некоторого расслоен-
расслоенного множества периодов L.
Доказательство. Согласно теореме 5.4.2, мно-
множество L (с; Р) = f^fa (L {°\ Р)) есть объединение конеч-
конечного числа линейных множеств с расслоенными системами
г
периодов. Согласно теореме 5.4.3, L (с; Р) = U L (ct; Pt) ,
i
где Рь . . ., Рг — расслоенные подмножества множе-
множества Р. Согласно лемме 5.4.5, существуют числа Z, 1 <^ i ^
<; г, и Л, такие, что кр есть сумма положительных кратных
некоторых элементов множества Pt.
236 Гл. 5. Ограниченные КС-языки
Заметим, что следствия 5.4.2 и 5.4.3 не имеют места,
если символы аь . . ., ап не являются попарно различ-
различными. Рассмотрим, например, тройку а = (fe, fe, fe), где
Ъ — некоторый символ, и множество L = L (A, 1, 1); Р)>
где Р = {A, 1, 1)}. Тогда множество /о (L) = {Ьзп| тг>1}
есть КС-язык, Р есть линейно независимое множество,
но в то же время Р не является расслоенным. Более того,
никакое положительное кратное вектора A, 1, 1) не явля-
является суммой периодов расслоенного множества периодов L.
С помощью доказанных выше теорем и лемм мы пока-
покажем теперь, что некоторые конкретные множества не
являются КС-языками.
Пример. Пусть 2 = {а, Ь, с} и W = {аа*+я/ 6i+^2i | i, / > 0}.
Полулинейным множеством, сопоставленным множеству W, будет
множество L (с; рь Рг)» гДе с = @, 0, 0), рх = C, 1, 2), р2 =
= B, 1, 0). Очевидно, pi и р2 линейно независимы. Поскольку
множество {р4, р2} не является расслоенным, множество W, соглас-
согласно следствию 5.4.2, не есть КС-язык.
Пример. Согласно теореме 3.1.1, множество {а^апа™ \ п !> 1},
где ai Ф а2, не является КС-языком. Обобщим этот результат.
1. Если М С {a\aiab \ 1 < i < /, 1 < к < /}, где аА =^ а2,
и множество М П {^a^af \п^>1} бесконечно, то М не есть
КС-язык.
Для этого достаточно доказать следующее.
2. Если L с {(£, /, А;) | 1 <! i <! /, 1 <^ Л <! /} и множество
L П Ь (A, 1, 1); A, 1, 1)) бесконечно, то fa (L), где а = <аь а2, а3),
не есть КС-язык.
В самом деле, пусть имеет место 2 и множество М
удовлетворяет условиям утверждения 1. Тогда существует
конечный преобразователь 5, отображающий afagaf в afa%a%
и такой, что множество L = /a1 (S (М)) удовлетворяет условиям
утверждения 2. Следовательно, /о (L) = & (Л^Г) и М не есть КС-язык.
Докажем утверждение 2. Предположим, что оно неверно, т. е. что
г
/о (L) — КС-язык. Тогда L = U Ьи, где L4, . . ., Lr — линейные
и=1
множества с расслоенными системами периодов. Поскольку множе-
множество L (A, 1, 1); A, 1, 1)) П £ бесконечно, то по лемме 5.4.5
некоторое положительное кратное тройки A, 1, 1) есть сумма
положительных кратных некоторых отличных от нуля периодов
Pi» • • •» Рт из системы периодов одного из множеств L4, . . ., Lr.
Пусть pi = (piU pf2» Piz) Для каждого i = 1, . . ., m. Тогда суще-
существуют натуральные числа t, tu . . ., tm, такие, что t A, 1, 1) =
т
= 2 ^/г> Итак, имеем
Л1
5.4. Характеристики Ограниченных КС-языков 237
т т т
/г=1 1 1
Поскольку- Lc: {(i, /, k) | 1 < ^ </, 1 < к </}, имеем р^ <
< P/i2 и P/i3 < Рт Для всех /г. (Пусть phi > рЛ2 для некоторого h.
Положим Ьи = L (с; Р), где с = (си с2, с3). Существует натураль-
натуральное число g > 0, такое, что g (р/^ — р/г2) > с2 — q.. Поскольку
Ь (с; ph) с Lu, имеем с + #>Л 6 Ьи. Итак, е± + gphi < с2 + ^р/гг-
Следовательно, g (р/ц — р^) <! с2 — с4. Получили противоречие.
Аналогично доказывается, что р/г3 <! р^О Строгие неравенства
здесь невозможны, так как в этом случае утверждение 3 не имело бы
места. Следовательно, р/ц = р^ = Phz Для всех h. Итак, все три
компоненты вектора р^ отличны от нуля, что противоречит расслоен-
ности множества {рь . . ., рт}.
Упр ажнения 5.4
1. Записать каждое из следующих множеств в терминах опе-
операций a, b и с из теоремы 5.4.1.
a. {aWc* И > 1, / > 1} 1) {"^с1 \t > 1, 7 > 1}.
b. {aWchdnchWai \ i, к, п > 0, 1 < / < 4}.
2. Доказать утверждение 1 (перед леммой 5.4.2).
3. Доказать утверждение 2 (перед леммой 5.4.2).
4. Пусть а = (ai, аг, аз)» гДе fti» #2» ^з — попарно различные
символы. Показать, что если L=L(@, 0, 0); A, 1, 1), A, 0, 0),
@, 2, 3)), то множество /а (L) не является КС-языком.
5. Пусть а = <ai, аг, а3, а4), где а^, а2» аз» а4 — попарно
различные символы. Показать, что если L = L (@, 0, 0, 0);
A, 0, 1, 0); @, 1, 0, 1)), то множество fa (L) не является КС-язы-
КС-языком [Хо 3].
6. Пусть L = L (q; ри р2, р3), где сА = @, 0, 0), рА =
= A, 1, 1), р2 = B, 2, 0), р3 = @, 0, 2). Показать, что L не
может быть представлено как линейное множество с расслоенной
системой периодов, но является объединением двух линейных мно-
множеств с расслоенными системами периодов.
7. Пусть а = {аи . . ., ап), где аи . . ., ап — попарно раз-
различные символы, и L с Nn — произвольное подулинейное мно-
множество. Показать, что во множестве fa (L) бесконечный КС-язык
содержится тогда и только тогда, когда L есть объединение конеч-
конечного числа линейных множеств Ь-ъ, таких, что некоторый период
одного из Li имеет в точности одну или две ненулевые компоненты
[GS3].
8. Показать, что множество {хх \ х 6 {а, Ь}*} не является
КС-языком [Хо 3].
9. Указать эффективную процедуру, позволяющую по любому
линейному множеству узнавать, может ли оно быть представлено
как линейное множество с расслоенной системой периодов.
238 Гл. 5. Ограниченные КС-языки
10. Показать, что полулинейное множество является линей-
линейным тогда и только тогда, когда оно удовлетворяет следующим
трем условиям: (a) L содержит единственный минимальный эле-
элемент с; (Ь) если д4 £ L и q2 £ L, то qx + q2 — с £ L; (с) для каждого
периода р множества L существует натуральное число к > 0, такое,
что с + кр £ Ь.
И. Пусть 2 = {я, 6, с, d}, / (е) = е и / (w), где и; =^ 8, —
множество всех цепочек, полученных из w всевозможными переста-
перестановками символов. Показать, что для произвольного КС-языка
X С a*b*c*d* множество / (X) не обязано быть КС-языком.
12. Пусть L= L (@, 0, 0,); A, 1, 1), @, 0, 1), @, 1, 1,)
A, 0, 1)) и а = <«!, а2» аз>» гДе «i» tt2» «з — попарно различные
символы. Показать, что fa (L) не есть КС-язык.
13. Пусть G = (F, {а, 6, с, d}, P, а) — минимальная линей-
линейная грамматика с правилами а -> аоа, а -> баб, а -> йаа, а ->
-> йаб, а-> do, а-> с. Показать, что множество 2* — L (£) не
является КС-языком [На 1]. (Указание. Пусть R =
= {d\bd{cbakb | i, /, Л > 1}. Показать, что B* — L (£)) П ^ =
= {dibdhbcfib | £, /, А; >- 1; *,/<!&}. Затем построить конечный
преобразователь S, такой, что S (B* — L (G)) П R) =
= {агЬЭск | £, / <! /с; i, /, А; >- 1}, и использовать упражнение 12.)
14. Пусть L = L (A, 0, 0); A, 0, 0), A, 1, 1)) U
т
U L (@, 1, 1); @, 1 ,1), A, 1, 1)). Пусть L = U Lt есть объеди-
объединение конечного числа линейных множеств с расслоенными систе-
системами периодов, скажем Lt = L (ct; pii} . . ., рггц)) A < i <! /?г).
Пусть & — натуральное число, большее всех компонент сь и g —
произведение всех р =^ 0, таких, что @, р, р) есть одно из рц.
Показать следующее.
a. Каждое ptJ имеет вид (ос, 0, 0) или @, р, р).
b. Если (хи х2, х3) 6 L, где xj >- к для всех /, 1 < / < 3,
то (хи х2, х3) принадлежит множеству Lt, имеющему периоды
(а, 0, 0) и @, Р, Р), где аР Ф 0.
с (к + g, g, g) и (к + gy к + g, к + g) принадлежат неко-
некоторому Lf.
d. Если 2 = {а, б, с}, то множество {аУЪЧ^ \ i Ф /; i, / ^ 1}
не есть КС-язык.
15. Пусть 2 = {а, Ь}. Доказать, что множество L =
= {wwR\w€I,*} не является детерминированным КС-языком.
(Указание. Использовать упр. 2.6.11 и 2.6.13 и тот факт, что
min (L) П (ab) (ab)* (bfl) (bfl)* (flb) (ab)* (ba) (ba)*
не есть КС-язык [Со; GG].)
Открытая проблема. Справедливо ли утверждение, сформули-
сформулированное в упр. 5.4.11, для алфавита, состоящего из трех символов?
(Для алфавита, состоящего из двух символов, это утверждение
не имеет места; см. упр. 5.3.4.)
5.5. Распознавание ограниченности КС-языка 239
5.5. Распознавание ограниченности КС-языка
Как мы видели раньше, многие проблемы, касающиеся
КС-языков, алгоритмически неразрешимы. Например, не
существует алгоритмов, распознающих A) является ли
произвольная КС-грамматика неопределенной; B) порож-
порождают ли две произвольные КС-грамматики один и тот же
КС-язык; C) имеют ли языки, порождаемые двумя произ-
произвольными КС-грамматиками, непустое пересечение;
D) существует ли конечный преобразователь, нетривиаль-
нетривиальным образом отображающий произвольный КС-язык L^
в произвольный КС-язык L2. В то же время мы до сих
пор не знаем ни одной алгоритмически неразрешимой про-
проблемы; касающейся ограниченных КС-языков. Каждая
из рассматривавшихся проблем этого типа либо алгоритми-
алгоритмически разрешима, либо открыта, т. е. еще не решена.
В следующих двух разделах приводятся результаты,
касающиеся алгоритмически разрешимых проблем для
ограниченных КС-языков.
Займемся прежде всего проблемой распознавания свой-
свойства произвольной КС-грамматики порождать ограничен-
ограниченный КС-язык. Мы укажем A) некоторое необходимое
и достаточное условие, которому должна удовлетворять
КС-грамматика, порождающая ограниченный КС-язык,
и B) эффективную процедуру проверки этого условия.
Для доказательства условия A) нам понадобится ряд
вспомогательных результатов (леммы 5.5.1—5.5.6). Основ-
Основную роль в нашей распознающей процедуре будет играть
следующее понятие.
Определение. Множество X называется комму-
коммутативным, если для любых двух цепочек и и и, принадле-
принадлежащих множеству X, имеет место равенство ии = ш,
т. е. если всякая пара цепочек из X перестановочна.
Пример. Какова бы ни была цепочка w, множество
{w71* | п >- 1} коммутативно. Если а, Ъ — различные символы,
то множество {а, Ь}* не коммутативно, так как аЪ Ф Ъа.
Следующая лемма характеризует коммутативные мно-
множества.
240 Гл. 5. Ограниченные КС-языки
Лемма 5.5.1. Множество X тогда и только тогда
коммутативно, когда существует цепочка w, такая, что
X с w*.
Доказательство. Если X ^ н;*, то множество
X, очевидно, коммутативно. Предположим, что множе-
множество X коммутативно. Если X = 0 или X = {е}, то
X ^ w*, где w — произвольная цепочка. Пусть множе-
множество X содержит непустую цепочку. Если X — {е}
содержит символ а из множества 2, то, очевидно, X ^ а*.
Продолжая индукцию, предположим, что утверждение
леммы имеет место, если X — {г} содержит цепочку длины,
не превышающей г. Рассмотрим случай, когда X — {е}
содержит цепочку и длины г + 1. Пусть X не является
подмножеством множества у*. Тогда существуют цепочки
х £ X — {е} и и Ф е, такие, что для некоторого р ^> 0
х = uvu и и £ i;2*.
Покажем, что всякая цепочка из множества X пере-
перестановочна с цепочкой и. Пусть у — произвольная цепоч-
цепочка из множества X. Тогда существуют q и z, z g i>2*,
такие, что г/ = i?gz. Тогда vq+1z = uy = yv = vqzv. Сле-
Следовательно, vz = zv. Точно так же, поскольку х £ X,
ум = ш;. Следовательно, vqzuvv = uqzvpu = ух = ху =
= vvuvqz = uvq+pz = uvqzvv. Отсюда г/w = у^м = ш;д2 =
= иу.
Поскольку всякая цепочка множества X перестановоч-
перестановочна с цепочкой и, множество X [} {и} коммутативно.
Предположим, что | v \ ^ | и |. Поскольку uv = vu, имеем
и £ у2*. Получили противоречие. Итак, | и \ < | и |.
По индуктивному предположению X [} {и} ^ w;*, так
что X ^ w*, где гг? — некоторая подходящая цепочка.
Приведем теперь достаточное условие перестановоч-
перестановочности цепочек и и v.
Лемма 5.5.2. Пусть и и v — произвольные цепочки.
Если для некоторых р и q (р >- 1, q >> 1) uv = vq, то
uv = ум.
Доказательство. Предположим, что | и \ ^
<^ j\ v | (аналогично рассматривается случай, когда | v \ ^
<; | и | ). Тогда существуют цепочки shs'(|s|<|m|,
I s' I < I u I) и натуральные числа i и /, такие, что v =
5.5* Распознавание ограниченности КС-языка 241
= uls = s'uK Более того, числа i и / равны (они совпадают
с наибольшим натуральным числом &, таким, что к \ и | ^
^ | v |), так что | s | = \ s' \. Если s = 0, то uv = vu.
Пусть | s | >> 0. Тогда и2 = ulsuls = u2lw для некоторой
цепочки w, так что и = st для некоторой цепочки t. Анало-
Аналогично и = t'sr для некоторой цепочки V. Итак, существуют
натуральные числа т и п, такие, что v4'1 = tum = uat'.
Очевидно, т = п и | £ | = | £' |. Следовательно, vq =
= s'uh4'1 = up = stu9'1, так что s' = 5. Аналогично
г/z = ^^ = uv = t's'u9-1, так что * = *'. Итак, i; — *ц*
и ts = и. Отсюда uv = sto1 = sm*+4 = ш.
Это достаточное условие является также и необходи-
необходимым (см. упр. 5.5.1).
Лемма 5.5.3. Множество S (w\ . . . ш*), где S —
произвольный конечный преобразователь и wu . . ., wn —
произвольные цепочки, является ограниченным.
Доказательство. Пусть сначала п = 1, и;4 £
£ 2 и 5 = (if, 2, А, б, А,, до)- Для ^ ^ 1 полагаем #£ =
= б (#j-i, ^0- Тогда gf = б (q0, w\) для всех i. Поскольку
множество состояний К конечно, существует наименьшее
натуральное число, скажем /с, такое, что для бесконечного
множества натуральных чисел i имеет место равенство
qk = qt. Пусть/? — наименьшее натуральное число, такое,
что qk = qk+p. Пусть х = X (qOj Wi) и yj = X (qk, w\)
для 0 </</?. Тогда
s К) - {^ ю, ..., s к-1)} и V й
так что множество S (w*) ограниченно.
Предположим теперь, что утверждение леммы справед-
справедливо, если п ^ kniVi £ 2 для каждого i. Пусть п = к + 1
иш^2 для каждого i. Пусть S = (Z, 2, Ат б, A,, #i) —
конечный преобразователь и К = {qly . . ., gm}. Обозна-
Обозначим через Sj A <; / ^ т) конечный преобразователь
(К, 2, А, б, A,, qj). По индуктивному предположению
множества S (wf) и Sj (w% . . . h>*+i), 1 ^ / ^ mi ограни-
т
ченны. Следовательно, множество Y= \jSj (w\ . . . w\+\)
l
также ограниченно. Тогда ограниченным является и мно-
множество S (wf) Y. Поскольку S (w* . . . w%-\-i) ^ S (wf) У,
242 Гл. 5. Ограниченные КС-языки
множество S (w* . . . wt+\) ограниченно. Итак, утвержде-
утверждение леммы справедливо для всех п, если все цепочки wt
принадлежат 2.
Предположим теперь, что шь . . ., тп — произволь-
произвольные цепочки и S = (К, 2, А, б, A,, qi) — конечный пре-
преобразователь. Пусть аь . . ., ап — абстрактные символы,
2' = {at | 1 < i < п) и S' = ({р,}, 2', 2, б', A/, Pi) -
конечный преобразователь с одним состоянием, отобра-
отображающий символ at в цепочку юг. Рассмотрим еще один
конечный преобразователь Т — ({pi} X К, 2', А, бт,
*т, (Рь ?0), где
6Г ((Ри ?), «i) = (Pi, 8s (g, u;,))
и
для всех q £ К и аг £ 2'. По доказанной части леммы
множество Т (а* . . . а*) ограниченно, но, очевидно,
Г«...а*) = 5К...1^*).
Лемма 5.5.4. Пусть и и и — цепочки, такие, что
uv Ф vu. Если множество цепочек X обладает тем свой-
свойством, что всякая цепочка из множества {и, v}* является
подцепочкой некоторой цепочпи множества X, то множе-
множество X не является ограниченным.
Доказательство. Пусть у = и^ и z = yM.
Тогда | у | = | z |. Поскольку цу Ф vu, цепочки и и v
непусты. Согласно лемме 5.5.2, у Ф z. Представим у и z
каким-либо образом в виде у = у4 . . . г/г, z = 24 . . . zT.
Поскольку у Ф z, существует наименьшее натуральное
число /с, такое, что yk Ф zk. Пусть ^ и а2 — абстрактные
символы и S = (К, 2, {аи а2}, б, A,, gi) — конечный пре-
преобразователь, определенный следующим образом: К =
= {?i, • • м ^г} Для х 6 2, б (gfj, ж) - qi + u 1 < i < r,
8 tor, я) = ?i, A, (gfe, г/0 = аи X (qk, zk) = а2, А, = е
в остальных случаях. Тогда S ({у, z}*) = {аь а2}*. Сле-
Следовательно, 5 ({м, у}*) = {аь а2}*.
Предположим, что множество {и, v}* ограниченно.
Согласно лемме 5.5.3, множество S ({и, v}*) = {аь а2}*
также является ограниченным, что невозможно в силу
теоремы 5.1.1. Итак, множество {и, и}* не является огра-
ограниченным. Поскольку всякая цепочка множества {и, и}*
5.5. Распознавание ограниченности КС-языка 243
является подцепочкой некоторой цепочки множества X,
то, согласно лемме 5.1.1, множество X также неограни-
неограниченно.
Теперь мы готовы к доказательству необходимого
и достаточного условия ограниченности языка, порож-
порождаемого КС-грамматикой. Необходимость этого условия
составляет содержание леммы 5.5.5, достаточность — лем-
леммы 5.5.6.
Обозначение. Пусть G = (F, 2, Р, о) — КС-грамма-
КС-грамматика и %(:V— 2. Полагаем
и
Лемма 5,5.5. Пусть G — приведенная К С-грамма-
С-грамматика, а множество L (G) Ф 0 ограниченно. Тогда для
всякого вспомогательного символа \ множества L% (G)
и i?£ (G) коммутативны.
Доказательство. Пусть G = (F, 2, Р, а)
и I 6 V — 2. Положим Wt = {w 6 2* | lU w}. По-
Поскольку КС-грамматика G является приведенной и L (G) Ф
Ф 0, для всякого \ £ V — 2 имеем W% Ф 0. Кроме
того, для всякого £ найдутся цепочки щ и ys, принадлежа-
принадлежащие 2* и такие, что u^W^vi ^ L (G). Поэтому множе-
множество W% ограниченно. Пусть w% — некоторый элемент W%.
Рассмотрим множество L^ (G). Предположим, что во мно-
множестве Z/£ (G) содержатся цепочки и^ и и2, такие, что
ихи2 Ф и2иу. Поскольку Ui и и2 принадлежат множеству
Ll (G), существуют цепочки vt и v2, принадлежащие
* *
множеству 2* и такие, что £ =£> u1l)vl и ^ =ф u2^v2. Поэто-
Поэтому для всякой цепочки w Ф г из множества {иь и2}*
найдется такая цепочка w' g 2*, что \ =ф w\w' =ф ww^jo',
Следовательно, {щ, и2}* — {г} s Ь^ (G). Поскольку
ё =Ф £, имеем 8 £ L^ (G). Следовательно, всякая цепочка
из {щ, и2}* является подцепочкой некоторой цепочки
из W^. Согласно лемме 5.5.4, множество W не является
ограниченным. Получили противоречие. Итак, равенство
= u2Ui справедливо для всех цепочек щ и и2, при-
244 Гл. 5. Ограниченные КС-языки
надлежащих множеству Ь% (G), т. е. L% (G) — коммутатив-
коммутативное множество. Аналогично доказывается коммутатив-
коммутативность множества R% (G).
Замечание. Утверждение леммы не имеет места,
если L (G) = 0. Пусть, например, G = (F, {a, &}, P, а),
где Р состоит из правил о -> аоа и о —> bob. Тогда множе-
множество L (G) пусто и, значит, ограниченно, но множество
Lo (G) = {а, Ь}* не коммутативно.
Докажем теперь утверждение, обратное лемме 5.5.5.
Лемма 5.5.6. Пусть G — приведенная КС-грамма-
КС-грамматика. Если для всякого вспомогательного символа £ мно-
множества L% (G) и R% (G) коммутативны, то множество
L (G) ограниченно.
Доказательство. Воспользуемся индукцией по
числу вспомогательных символов. Пусть грамматика G =
= (F, 2, Р, о) имеет единственный вспомогательный
символ о. Поскольку множество Lo (G) коммутативно,
согласно лемме 5.5.1, Lo (G) ^ и* для некоторой цепочки
м 6 2*. Аналогично Ro (G) ^ и* для некоторой цепочки
и 6 2*. Пусть wu . . ., ivt — все те цепочки из множества
2*, для которых а -> wt £P. Пусть, далее, у — произ-
произвольная цепочка из L (G) и
о = yi =$> . . . =Ф уг = У
— некоторый вывод цепочки у. Тогда
для некоторых их и vx из множества 2* и некоторой цепоч-
цепочки wt. Поскольку и^ 6 Lo (G) ^ и* и vi 6 На (G) ^ ^*7
t
имеем L (G) ^ |J u*wtv*. Итак, множество L (G) огра-
i=i
ничейно.
Предположим теперь, что лемма доказана для всех
КС-грамматик с числом вспомогательных символов, мень-
меньшим п. Пусть грамматика G содержит п (п >> 1) вспомога-
вспомогательных символов. Для каждого вспомогательного симво-
символа 5 Ф о обозначим через G% КС-грамматику (V — {а},
2, Р^, £), где Pi состоит из всех таких правил v -> iv £ Р,
левые и правые части которых не содержат вхождений
5.5. Распознавание ограниченности НС-языка 245
символа о. Мы можем считать, что G% — приведенная
КС-грамматика. (В противном случае мы можем выбросить
все избыточные вспомогательные символы и правила,
в которые эти символы входят; при этом язык, порождае-
порождаемый грамматикой, не изменится.) Всякий вывод в грамма-
грамматике G% является и выводом в грамматике G. Поэтому
Lv (G%) ^ Lv (G) и Rv (G%) ^ Rv (G) для всякого вспомога-
вспомогательного символа v £ G%. По условию множества Lv (G)
и RV(G) коммутативны. Следовательно, коммутативны
и множества Lv (G^) и Rv (G^). По индуктивному предполо-
предположению множество L (G^) ограниченно.
Пусть Z — множество всех цепочек у 6 (V — {<?})*>
таких, что о -> у 6 Р- Множество Z конечно. Для каждого
символа х 6 V — {о} полагаем Lx = {х}, если х 6 2,
и Lx — L (Gx), если х — вспомогательный символ. Для
каждой цепочки у 6 Z полагаем Ly = {е}, если у = е,
и Ly = LXl . . . LXs, если у = ^ . . . яв, xt 6 F — {а}
для всех i. Поскольку каждое из множеств Lx ограни-
ограниченно, множество Ly также ограниченно.
Рассмотрим теперь язык L (G). По условию леммы
множества Lo (G) и RG (G) коммутативны; согласно лем-
лемме 5.5.1, они ограниченны. Поэтому множество
M=[}La(G)LyRa(G)
является ограниченным. Осталось показать, что L (G) ^
3 М. Пусть w — произвольная цепочка из множества
L(G) и
о = г/i =Ф . . . =Ф ут = и>
— вывод w из о. Пусть р — наибольшее натуральное чис-
число, такое, что в цепочке ур содержится вхождение символа
а. Тогда ур = v1gv2, yp + i = и±уи2, где vu v2 и у принадле-
принадлежат множеству (V — {а})* и а ->• 7 g P. В выводе
не участвует ни одно правило, содержащее вхождения
символа а. По лемме 1.4.6 имеем w = ци/у, где у4 t=^ w
v2 =^> у и у =ф и;'. Более того, существует вывод цепочки и;'
из цепочки у, в котором не участвует ни одно правило,
* *
содержащее вхождения а. Поскольку а =ф viov2 =
246 Гл. 5. Ограниченные КС-языки
имеем и £ Lo (G) и v £ Ro (G). Если у = 8, то w' = e.
Следовательно, w £ Lo (G) LeRo (G), т. e. w; £ M. Пред-
Предположим, что у ф е, скажем 7 = ^ . . . z8l zt 6 7 — {о}.
Согласно лемме 4.1.6, существуют цепочки w'^ . . ., w'Si
такие, что wf = w[ . . . w's и для всякого t, I ^ i ^ 5,
найдется вывод цепочки w\ из символа zu в котором не
участвует ни одно правило, содержащее вхождения а.
Тогда для каждого t, I ^ i ^ 5, имеем w\^L (Gz.), так
что w' 6 i'v Отсюда w £ Lo (G) LyRo (G); следовательно,
L (G) c= M.
Объединяя леммы 5.5.5 и 5.5.6, получаем следующую
теорему.
Теорема 5.5.1. Если G — приведенная КС-грамма-
КС-грамматика и L (G) Ф 0, то язык L (G) является ограниченным
тогда и только тогда, когда для всякого вспомогательного
символа \ грамматики G множества L% (G) и R% (G) комму-
коммутативны.
Теперь нам осталось указать алгоритм, позволяющий
для произвольной КС-грамматики G и произвольного
ее вспомогательного символа £ определить, являются
ли множества L% (G) и R% (G) коммутативными. Мы сделаем
это с помощью следующих двух лемм.
Лемма 5.5.7. Пусть G — произвольная КС-грамма-
КС-грамматика и £ — произвольный ее вспомогательный символ.
Тогда множества L^ (G) и R% (G) являются КС-языками и
порождающие их КС-грамматики могут быть эффективно
построены по G.
Доказательство. Пусть £ —вспомогательный символ
грамматики G= (F, S, Р, а) и \> g V. Пусть G^ = (F, 2, Р, I)
и Gg = (VU {П. 2 U {£'}.*£.£). где Pg = PU{£->n-Тогда
L (Gg) = L (G6) U {ul'v | g 4 ибЧ и, i; 6 B U {£'})*}•
Пусть Li = L(Gg)n2*6'2*. Тогда
Поскольку множество 2*^2* регулярно, множество Lx
является КС-языком. Пусть S^ — конечный преобразо-
5.5. Распознавание ограниченности КС-языка 247
ватель ({ри р2}, 2 U (П> 2, 66, Хь Pi), где 6^ (ри f) =
= 8z (P2, %') = Р* h (Ри 2') = h (Р2, I') = е, 6^ (р4, ж) =
= Ри h (Ри х) - *, 6g (р2, ж) = p2i Хъ {р21х) = е, ^2.
Множества S A^) и E (Lf))R являются КС-языками. Но
S (L±) = {u\l^ ulv, щи е 2*} =
G
И
Итак, множества L^ (G) и R% (G) являются КС-языками.
Очевидно, что могут быть эффективно построены КС-грам-
КС-грамматики, порождающие языки L (G£), Lu L^ (G) = S (Z/4)
и Д6 (G) = (S (Lftf.
Лемма 5.5.8. Существует алгоритм, позволяющий
определить, порождает ли произвольная КС-грамматика G
коммутативное множество. Если множество L (G) комму-
коммутативно, то может быть эффективно найдена цепочка и,
такая, что L (G) ^ и*.
Доказательство. Поскольку множество L (G)
коммутативно тогда и только тогда, когда коммутативно
множество L (G) — {е}, мы можем считать КС-грамматику
G неукорачивающей. Согласно теореме 4.1.2, пустота
множества L (G) эффективно распознаваема. Очевидно,
достаточно рассмотреть случай, когда L (G) Ф 0. Пусть
цепочка w принадлежит языку L (G). (Согласно теоре-
теореме 4.1.1, мы можем это эффективно проверить.) Пусть
Щ, • • •» ws — все непустые начала цепочки w. Согласно
лемме 5.5.1, множество L (G) коммутативно в том и только
в том случае, если L (G) ^ z* для некоторой цепочки z.
Очевидно, что всякая такая цепочка z является началом
каждой цепочки из множества L (G). Итак, множество
L (G) коммутативно тогда и только тогда, когда L (G) ^ w\
для некоторого i. Осталось показать, что для каждого i
существует алгоритм, распознающий, является ли множе-
множество L (G) подмножеством множества w*.
Множество w* регулярно. Следовательно, множество
L (G) — W* является КС-языком и порождающая его
КС-грамматика может быть эффективно построена. Соглас-
248 Гл. 5. Ограниченные КС-языки
но теореме 4.1.2, существует алгоритм, определяющий,
пусто ли множество L (G) — w*. Однако множество
L (G) — w* пусто тогда и только тогда, когда L (G) e w*.
Теперь мы можем указать алгоритм, распознающий
по произвольной КС-грамматике, порождает ли она огра-
ограниченный КС-я зык.
Теорема 5.5.2. Существует алгоритм, распознаю-
распознающий по произвольной КС-грамматике G, порождает ли она
ограниченный КС-язык. Если множество L (G) ограниченно,
то могут быть эффективно найдены цепочки шь . . ., wt
из множества 2*, такие, что L (G) ^ w* . . . w*.
Доказательство. Мы можем считать КС-грам-
КС-грамматику G приведенной. Далее, мы можем эффективно про-
проверить, пусто ли множество L (G). Если L (G) = 0,
то L (G) е а* для любого а 6 2. Пусть L (G) Ф 0. Соглас-
Согласно теореме 5.5.1, множество L (G) ограниченно тогда
и только тогда, когда множества L% (G) и i?| (G) коммута-
коммутативны для любого вспомогательного символа £. По лем-
лемме 5.5.7 могут быть эффективно построены КС-грамма-
КС-грамматики, порождающие множества L^ (G) и R^ (G). Согласно
лемме 5.5.8, существует алгоритм, распознающий, комму-
коммутативны ли множества L^ (G) и R^ (G). Итак, ограничен-
ограниченность множества L (G) эффективно распознаваема.
Пусть множество L (G) Ф 0 ограниченно. Предполо-
Предположим сначала, что грамматика G имеет только один вспомо-
вспомогательный символ. Согласно леммам 5.5.7 и 5.5.8, могут
быть эффективно найдены цепочки и и, v, такие, что
LG (G) ^ и* и Ro (G) е и*. Из доказательства лем-
' т
мы 5.5.6 следует, что L (G) ^ |J u*ztv*, где zb . . ., zm —
г=1
все цепочки из 2*, являющиеся правыми частями правил
грамматики G. Отсюда легко найти искомые цепочки
м>1, . . ., wt. Предположим теперь, что для всех КС-грам-
КС-грамматик, содержащих меньше п вспомогательных символов
и порождающих ограниченные КС-языки, могут быть
эффективно найдены искомые цепочки. Пусть граммати-
грамматика G содержит п вспомогательных символов, и пусть
Z, L (Gpp) и Ly означают то же, что в лемме 5.5.6. Из дока-
5.6. Другие алгоритмические проблемы 249
зательства леммы 5.5.6 следует, что
L(G)c= [jLo(G)LyRo(G) = M.
Множество Z и КС-грамматики, порождающие множества
L (Gx) и Lv, могут быть эффективно найдены. Согласно
леммам 5.5.7 и 5.5.8, существует алгоритм нахождения
цепочек и и v из множества 2*, таких, что Lo (G) ^ и*
и Ro (G) c= v*. По индуктивному предположению искомые
цепочки могут быть найдены для всякого множества
L (Gx) и, следовательно, для всех множеств Ly; поэтому
они могут быть найдены и для множества М. Теорема
доказана.
Упражнения 5.5
1. Пусть и и v — непустые цепочки. Показать, что если
uv = vu, то ъ№ = vQ для некоторых р>1 и д>1.
2. Показать, что если S — конечный преобразователь и X —
ограниченное множество, то S (X) — также ограниченное множе-
множество. Отсюда следует, что класс ограниченных КС-языков замкнут
относительно конечных преобразований.
5.6. Другие алгоритмические проблемы
Мы рассмотрим теперь проблему распознавания экви-
эквивалентности двух КС-грамматик, порождающих ограни-
ограниченные КС-языки. Для доказательства алгоритмической
разрешимости этой проблемы нам придется сначала дока-
доказать, что разность двух полулинейных множеств есть
полулинейное множество. Для этого в свою очередь нужно
будет показать, что пересечение полулинейных множеств
есть полулинейное множество. Это мы сделаем с помощью
трех лемм, чисто алгебраических по своей природе. Первая
лемма утверждает, что класс полулинейных множеств
замкнут относительно преобразований некоторого спе-
специального вида. Две другие леммы обеспечивают возмож-
возможность эффективно находить решения систем диофантовых
уравнений, удовлетворяющих некоторым специальным
условиям. (Системы уравнений представляют для нас
интерес, так как z 6 L (с; ии . . ., ир) [\ L (d; vu . . ., vq)
250 Гл. 5. Ограниченные КС-языки
v q
2 S
тогда и только тогда, когда z = с + 2jsiui ~ __
1 1
для некоторого (su . . ., sp, tu . . ., tq) £Nv+q.)
Определение. Отображение т множества Nn
во множество Nm называется линейным, если % (х -\- у) =
= т (ж) + т (г/) для всех о:, у £ iVn.
Пример. Отображение т множества TV4 во множество N3, опре-
определенное равенством т {хи х2, х3, дт4) = (xi + дг2, 2ж2 + дт3, 0:4),
линейно.
Докажем, что классы линейных и полулинейных
множеств замкнуты относительно линейных отображений.
Лемма 5.6.1. Пусть % — линейное отображение
множества Nn во множество Nm. Если X — линейное под-
подмножество множества Nn, то т (X) — линейное подмноже-
подмножество множества Nm. Если X — полулинейное подмноже-
подмножество множества Nn, то х (X) — полулинейное подмноже-
подмножество множества Nm.
Доказательство. Очевидно, достаточно показать, что
если X — линейное множество, то множество т (X) также ли-
линейно. Но если X = L(cQ; ри ..., рГ), то т (L) = L(t(c0);
т (Pi)i • •.,т (Рг))- (В самом деле, пусть х принадлежит L(с0;
г
Pi» • • •» Рг)у т. е. х == с0 + 2 &iPi (&! > 0)- Тогда, поскольку
1
г
отображение т линейно, т (х) = т (с0) + 2 &*т (р0. Итак,
1
%(x)£L (т (с0); т (рО, ..., т (рг)). С другой стороны, если
у £ L (т (с0); т (р4), ..., т (рг)), т. е. г/ = т (с0) + 2 *П
1
г
то у = т(дг), где x %
1
Рассмотрим теперь некоторый класс решений систем
линейных уравнений с целыми коэффициентами.
5.6. Другие алгоритмические проблемы 251
Определение. Пусть щ, .. ., ир и vit ..., vq —
элементы множества Nn и w — упорядоченная система
п натуральных чисел. Элемент (tu ..., tp, t'iy . .. , t'q)
множества Np+q (Nv+q — {0p+q}), такой, что
называется (положительным) решением уравнения (Не).
Если известно, что уравнение (Не) имеет (положительное)
решение, то некоторое (положительное) решение может быть
эффективно найдено. Это может быть сделано путем пере-
перебора всех элементов множества Nv+q (Nv+q — {0p+g})
до тех пор, пока не будет найден элемент, являющийся
решением уравнения (Не).
Лемма 5.6.2. Существует алгоритм, позволяющий
по произвольным элементам щ, . . ., ир, 1>ь . . ., vq мно-
множества Nn и по произвольной упорядоченной системе
п натуральных чисел w распознать, существует ли
положительное решение уравнения (не)
Доказательство. Воспользуемся индукцией
по числу р + q. Если р + q = 1, то, очевидно, имеется
алгоритм, распознающий по произвольным w и щ (или
w и Ui), существует ли натуральное число t1 (или t[),
такое, что w = t^u^ (или wl = — ^i).
Предположим, что лемма доказана для всех р + q <
< т, где т > 1. Пусть р + q = т. Допустим сначала,
что векторы ии Vj линейно независимы. Из теории вектор-
векторных пространств известно, что линейная зависимость век-
вектора w от векторов ии Vj эффективно распознаваема. Если w
не зависит линейно от ии Vj, то уравнение (Не) не имеет
решения. В противном случае могут быть эффективно най-
найдены рациональные числа rt (I ^ i ^ р) и Sj (I ^/ ^ g),
такие, что
a. w=^
1
Поскольку ut, Vj линейно независимы, такие rt и Sj нахо-
находятся единственным образом. Итак, уравнение (Не) имеет
252 Гл. 5. Ограниченные КС-языки
положительное решение тогда и только тогда, когда чис-
числа rt и —sj неотрицательны и не все равны нулю.
Пусть теперь векторы ut, Vj линейно зависимы. Тогда
могут быть эффективно найдены множества / s {1, ...
. . ., р}, J ^ {1, ...,?} и векторы (гь . . ., гр) 6 Np,
(si, . . ., sq) 6 Nq, удовлетворяющие следующим двум
условиям:
Ь. ^riUi — ^SjVj=
с. ri >> 0 для некоторого £ £ / или / 6 «^ Ддя некоторого
Покажем, что уравнение (Не) имеет положительное реше-
решение тогда и только тогда, когда оно имеет такое поло-
положительное решение, что либо tt ^ rt для некоторого i £ /,
либо tj <^ Sj для некоторого / g /. В самом деле, пусть
(£i, . . ., itp, t[, . . ., ^) —такое положительное решение,
что tt >> rt для всех i £ / и £} > s^ для всех / £ /. Из
b и с следует
ill
и, таким образом, мы имеем еще одно положительное
решение уравнения (Не) со следующим свойством.
е. Либо tt — rt <; itf для некоторого i £ /, либо £} —
— 5j < ^' Для некоторого / g /.
Повторив несколько раз эту процедуру, мьх получим в кон-
конце концов положительное решение уравнения (Не), такое,
что либо tt <; гг для некоторого i £ /, либо t) ^ Sj для
некоторого / g /.
Но уравнение (Не) имеет положительное решение
(tu . . ., tp, t[, . . ., tq), такое, что либо tt ^ гг для
некоторого i g /, либо ^ ^ 57- для некоторого / 6 «^ тогда
и только тогда, когда либо уравнение
имеет решение для некоторых £ @), А, где £ @)
5.6. Другие алгоритмические проблемы 253
и 1<&<г$(о), либо уравнение
имеет решение для некоторых / @), к', где / @) £ /
и 1 ^ А' ^ Sy(o) • В свою очередь уравнение (£, i @), fc)
имеет решение в том и только в том случае, если либо его
решением является О33"9, либо оно имеет положительное
решение. Эффективно распознаваемо, является ли 0р+я—*
решением уравнения (t, г @), fc), и — по индуктивному
предположению — существует алгоритм, распознающий,
имеет ли уравнение (£, г @), к) положительное решение.
Итак, свойство уравнения (£, г @), к) иметь решение
эффективно распознаваемо. Аналогично для уравнения
(*'» 3 @), к'). Итак, мы можем эффективно распознать,
имеет ли уравнение (Не) положительное решение.
Лемма 5.6.3. Существует алгоритм, позволяющий
находить все минимальные г) положительные решения
уравнения (♦) для произвольных ии . . ., ир, ии ...
. . ., vq g 7Vn w произвольной упорядоченной системы w n
натуральных чисел.
Доказательство. Воспользуемся индукцией
по р + д. Если р + д = 1, утверждение леммы очевидно.
Предположим, что лемма доказана для всех р + q < w,
где /я > 1. Пусть р + g = w. Согласно лемме 5.6.2,
можно эффективно распознать, существует ли положитель-
положительное решение уравнения (sjc). Если положительного решения
не существует, лемма доказана. Предположим, что суще-
существует единственное положительное решение. Тогда мы
можем его эффективно найти, и тем самым мы можем
эффективно найти минимальное решение и = (tly . . ., tp,
tfv . . ., tq). По индуктивному предположению существует
алгоиитм для нахождения всех минимальных решений
уравнения (f, 4@), к) для каждого i @), такого, что 1 ^
< i @) ^ р и ti@) > 0, и всякого к, такого, что 0 ^ к <
Имеются в виду минимальные элементы подмножества
состоящего из положительных решений уравнения (sjc).
254 Гл. 5. Ограниченные КС-языки
<С ^(о). Точно так же существует алгоритм для нахождения
всех минимальных решений уравнения (t',j(O),k') для
каждого /@), такого, что 1</@)<ди lj<0)>0» и каж-
каждого А' такого, что 0<&'<£}@). Если (£4, . ..,^_4,
£i+i> • • •» tp, t'u • • •»Q —минимальное положительное реше-
решение уравнения (t,i,k), то вектор
называется расширенным минимальным положительным
решением уравнения (f, i, k). Аналогично определяется
расширенное минимальное положительное решение урав-
уравнения (t',j, k').
Пусть v8=(si. ..., sp, s[, ..., s'q) Ф v—минимальное
положительное решение уравнения (♦). Поскольку v8 и и
несравнимы, имеем либо (i)Si<C.Ti для некоторого Г^>0,
либо B) s'j<l'j для некоторого ^>0. Пусть имеет место
A); обозначим (р + Q — 1)-мерный вектор, получаемый
из vs удалением его £-й координаты, через v8(t, i). Посколь-
Поскольку vs и v несравнимы и st<Cti, хотя бы одна из компо-
компонент вектора v8 (t, i) больше нуля. Итак, v8 (t, i) есть
минимальное положительное решение уравнения (t, i, Si)
и vs — расширенное минимальное положительное решение
этого уравнения. Если имеет место B), то аналогично
можно показать, что v8 есть расширенное минимальное
положительное решение уравнения (t',j,8j). Следова-
Следовательно, минимальные положительные решения уравнения
(НО являются минимальными элементами конечного мно-
множества, состоящего из и и всех расширенных минимальных
положительных решений уравнений (£, i, к) и (£', j, к').
Поэтому существует алгоритм для нахождения всех мини-
минимальных положительных решений уравнения (НО.
Теперь мы можем перейти к рассмотрению вопроса
о пересечении полулинейных множеств.
Теорема 5.6.1. Если X и Y — полулинейные под-
6.6. Другие алгоритмические проблемы 255
множества множества Nny то множество X f| Y полули-
полулинейно и эффективно строится по X и Y 1).
k k
Доказательство. Так как Zof| U Zi= \J (ZQf\Zi)
l l
для произвольных множеств Zo, Z1? ..., Zu то достаточно
показать, что если X и Y — линейные множества, то
множество X (]Y полулинейно. Пусть X—L(c; uiy..., uv)y
Y = L(d; vu ..., vq). Через s=(su ..., sp) и t= (tu ...,tq)
будем обозначать элементы множеств Np и Nq соответ-
соответственно. Пусть
р q
A={sxt\c-\-2j SiUt — d -\- 2 ^iyj}
l l
1 1
Пусть t — линейное отображение множества Np+q во
множество Nv, определяемое следующим образом:
т (* X *) = S 8гщ. Тогда X(}Y={c + z\zex (A)}.
Согласно лемме 5.6.1, множество т (А), а следовательно,
и множество {с + z \ z £ х (А)} полулинейно, если полу-
полулинейно множество А.
Покажем теперь, что А полулинейно. Пусть С и Р —
множества минимальных элементов множеств А и
В— {0v+q} соответственно. Согласно следствию 5.4.1 и лем-
лемме 5.6.3, множества С и Р конечны и могут быть построены
эффективно. Таким образом, Ъ (С; Р) есть полулинейное
подмножество множества Nv+q. Осталось показать, что
А = L (С; Р).
Очевидно, L (С; Р) s А. Докажем обратное включе-
включение. Пусть s X t g А. Поскольку С — множество мини-
минимальных элементов множества А, во множестве С найдет-
найдется элемент sf X V = (s[, . . ., s'p, t[, . . ., t'q), такой, что
j'Xi'<«Xi. Пусть s" = s — $' и t" = t — t'. Тогда
s X t = (sf X t') + is" X t") принадлежит множеству
Nv+q и
*) Точнее, выражения вида L (С; Р), задающие множество
X П Y, эффективно строятся по соответствующим выражениям,
задающим X и У.— Прим. пер ев.
25б Гл. 6. Ограниченные tiC-языки
p
P P
1 1
= (d-c)+|
= 2j (£j — ^) i
1
SiUi-
tjVj-[{d-c) + j]
l
Таким образом, s"xt"£B. Итак, чтобы убедиться в том,
что A<=L(C', Р), достаточно доказать, что каждый элемент
множества В— {0v+q} представим в виде суммы элементов Р.
Предположим, что каждый элемент sxt^0v+q мно-
Р Q
жества В, такой, что 25i + S^<^> представим в виде
1 1
суммы элементов Р. (При к = 0 это тривиально.) Пусть
р
s X t Ф 0р+д — элемент множества В, такой, что 2 si +
1
Q p q
+ S tj < ^ + 1 • Мы можем считать, что 2 si + S 0 = ^ +1 •
1 1 1
Согласно определению множества Р, существует s' xt' £P,
такой, что s' xtf < 5 х ^. Если s' Xt' =-s Xt, доказательство
окончено. Пусть s' xt' Фв Xt. Тогда во множестве В
найдется элемент s" x t"^0v+q, такой, что s x t = (sf X t') +
р q
+ (s" x t"). Поскольку s' x t'^0v+q, имеем 2 s'i + S *i < u-
l l
По индуктивному предположению s" x f представим в виде
суммы элементов Р. Поэтому вектор s X t также можно
представить в виде суммы элементов Р.
Следствие 5.6.1. Если множества Mi и М2
являются КС-языками и Mi е ш*ш* (wi и w2 — цепочки),
то множество Mi fl M2 также является КС-языком.
5.6. Другие алгоритмические проблемы 257
Доказательство. Пусть М3 = М2 f| w*w%.
Поскольку множество w*w* регулярно, М3 есть КС-язык.
Кроме того, Mi ft М2 = Mi ft w*w% (] М2 = Mi (] М3.
Пусть w - {wu w2), ^ = /j1 (Mi), L3 = Z (M3). Тогда
Mi П M3 = fw (Li П L3). Согласно теореме 5.4.2, множе-
множества Li и L3 полулинейны. Отсюда по теореме 5.6.1 сле-
следует, что множество LA f| L3 является полулинейным
подмножеством множества TV2. Согласно следствию 5.3.2,
множество fw (Li (] L3) = М4 (] М3 является КС-языком.
С помощью теоремы 5.6.1 и ряда лемм, техника доказа-
доказательств которых сходна с техникой доказательств лемм
5.6.2 и 5.6.3, можно получить следующую теорему (ее дока-
доказательство приводится в приложении).
Теорема 5.6.2. Если X и Y — полулинейные под-
подмножества множества Nn, то множество X — Y также
является полулинейным подмножеством множества Nn
и эффективно строится по множествам X и У1).
Следствие 5.6.2. Если множества Mi s w*w*2
(wi и w2 — цепочки) и М2 являются К С-языками, то тако-
таковыми являются и множества М2 — М4 и Mi — М2.
Доказательство. Пусть М8 = М2 f| w*w%.
Поскольку множество w*w* регулярно, М3 есть КС-язык.
Рассмотрим множество М2 — М±. Поскольку МА ^
!= w*w*, имеем М2 — Mt = (М2 — т*т%) [} (М3 —Mi).
Множество М2 — w*w* является, очевидно, КС-языком.
Итак, достаточно показать, что М3 — М4 есть КС-язык.
Пусть w = (Wi, w2), Li = fw1 (Mi) и L3 = fa1 (M3). Тогда
M3 — Mi = fw (L3 — Li). Согласно теореме 5.4.2, множе-
множества Li и L3 полулинейны. По теореме 5.6.2 множество
L3 — Li является полулинейным подмножеством множе-
множества N2. Согласно следствию] 5.3.2, fw (L3 — Li) =
= Мз — Mi есть КС-язык.
Рассмотрим теперь множество Mi — М2. Поскольку
Mi ^ w*w%, имеем] МА — М2 = М4 -— М3. Но М3 ^
^ w*w%, поэтому Mi — М3 есть КС-язык.
г) Точнее, выражения вида L (С; Р), задающие множество
X — Y, эффективно строятся по соответствующим выражениям,
задающим X и Y.— Прим. перев.
258 Гл. 5. Ограниченные КС-языки
Теорема 5.6.3. Существуют алгоритмы, распо-
распознающие по произвольным КС-языкам Mi и М2, один
из которых является ограниченным множеством, имеет
ли место (а) М± s М2, (b) М2 s Ми (с) MY = М2 х).
Доказательство. Согласно теореме 5.5.2, мы
можем определить, какой из КС-языков Mi и М2 является
ограниченным. Изменив, если нужно, обозначения, мы
можем считать, что ограниченным является КС-язык М4.
Кроме того, по теореме 5.5.2 мы можем найти цепочки
m?i, . . ., wn, такие, что М4 g u;J . . . w%.
а. Поскольку множество w* . . . w% регулярно, мно-
множество М3 = М2 П w* • • • wn является КС-языком. Оче-
Очевидно, Му е М2 тогда и только тотда, когда Mt ^ Мъ.
Пусть аь . . ., ап — попарно различные символы. Для
i = 1, 3 полагаем
Mi ={ai11 ... СК1 ... wt?eMt}.
Согласно лемме 5.3.5, множества М[ и М'3 являются
КС-языками. Для & = 1, 3 полагаем
По теореме 5.2.1 множества Hi и Нг полулинейны. М^ ^
^ М3 тогда и только тогда, когда Hi ^ ^з- В свою оче-
очередь Hi ^ Нг тогда и только тогда, когда Hi — Н3 = 0.
По теореме 5.6.2 множество Ну — Н3 полулинейно,
и поэтому множество его периодов может быть эффективно
построено. Итак, существует алгоритм,, определяющий,
пусто ли множество Ht — Н3. Следовательно, пункт а
доказан.
Ь. Поскольку множество w* . . . w% регулярно, множе-
множество М2 — w* ... iv* является КС-языком. Поэтому суще-
существует алгоритм, определяющий, пусто ли множество
М2 — w* . . . w*. Если оно непусто, то М2 ф М^.
Пусть М2 — w* . . . и>* = 0. Тогда М2 ^ и>* . . . ш*.
г) Точнее, существуют алгоритмы, распознающие по произ-
произвольным КС-грамматикам 6г4 и G2, одна из которых порождает
ограниченный КС-язык, имеет ли место (a) L (Gi) с L (G2),
(b) L (G2) £ L (Gi), (с) L (Gi) = L ((?2).— Ярил,
5.6. Другие алгоритмические проблемы 259
Итак, М2 — ограниченный КС-язык, и, согласно пункту
а, существует алгоритм, определяющий, содержится ли
множество М2 во множестве Af4.
с. Mi = М2 тогда и только тогда, когда Mj ^ М2
и М2 ^ Мх, а соответствующие проблемы алгоритмически
разрешимы.
Следующий интересный результат мы приведем без
доказательства (оно имеется в [GUI]).
Теорем а"[5.6.4. Существует алгоритм, распознаю-
распознающий по произвольной КС-грамматике, порождающей огра-
ограниченный КС-язык, является ли она неопределенной.
Открытые проблемы. Существует ли алгоритм, распознающий
по произвольным ограниченным КС-языкам Mi и М2, имеется
ли конечный преобразователь S, такой, что
A) S (Mi) = М2,
B) S (Mi) с М2 и S (Mi) бесконечно? х)
Упражнения 5.6
1. Показать, что существует алгоритм, распознающий по про-
произвольным КС-грамматикам Gi и G2, одна из которых порождает
ограниченный язык, пусто ли множество L (Gi) f) L (G2).
2. Показать,^ что существует алгоритм, распознающий по
произвольному полулинейному множеству2), является ли оно
линейным. (Указание: использовать упр. 5.4.10.)
Упражнения 3—8 требуют знакомства с начальными понятиями
логики предикатов.
Формулами Пресбургера (с п переменными) называются
элементы множества Zn, определяемого как наименьшее множество
формул, имеющих не более п свободных переменных, пробегающих
множество TV", удовлетворяющее следующим условиям.
а. Если (tQ, tu . . ., tn, t'Q, t[, . . ., t'n) 6 N2n+2, то формула
принадлежит множеству Zn(xu . . ., xn — свободные переменные).
b. Если Pu P2 e Zu,to Pi & P2 e Zn и Pi V P2 6 Zn.
*) Точнее существует ли алгоритм, распознающий по произ-
произвольным КС-грамматикам Gi и G2, порождающим ограниченные
КС-языки Mi = L(Gi) и М2 — L (G2), имеется ли конечный преобра-
преобразователь S, такой, что A) S (Mi) = М2, B) S (Mi) с М2 и S (Mi)
бесконечно? — Прим. пер ев.
2) Точнее, по выражениям вида L (С; Р), задающим это мно-
множество.— Прим. пер ев.
260 < Гл. 6. Ограниченные НС-языки
c. Если Р 6 Zn, то п Р б Zn.
d. Если Р (д?1, . . ., хп) £ Zn и 1 <! i <; гг, то формула
принадлежит множеству Zn.
Пусть п > 0. Множество Л называется множеством Пресбур-
гера (в iVn), если
А = {(Хц . . ., Хп) | Р (Я?4, . . ., Жп) ИСТИННО}
для некоторого Р (ж1? . . ., xn) g Zn.
3. Показать, что семейство множеств Пресбургера в iVn замкну-
замкнуто относительно операций пересечения, объединения и взятия
дополнения.
4. Пусть / — функция, осуществляющая отображение множе-
множества Nn во множество N71'1 следующим образом:
Показать, что если А с Nn (n > 1) есть множество Пресбургера,
то таковым будет и множество / (А) с JV71.
5. Показать, что каждое полулинейное множество является
множеством Пресбургера.
6. Показать, что каждое множество Пресбургера является
полулинейным множеством. Таким образом, семейство множеств
Пресбургера совпадает с семейством полулинейных множеств.
;;7. Формула Пресбургера, не содержащая свободных перемен-
переменных, называется предложением Пресбургера. Показать, что суще-
существует алгоритм, распознающий по произвольному предложению
Пресбургера, истинно ли оно.
8. Показать, что существует алгоритм, распознающий по про-
произвольному линейному множеству х), является ли оно объединением
конечного числа линейных множеств с расслоенными системами
периодов. (Указание: использовать упр. 7 и теорему 5.4.3.)
5.7. Историческая справка
Понятия линейного и полулинейного множества впер-
впервые введены в [Ра 1]. Там же была доказана теоре-
теорема 5.2.1. Понятие расслоенного множества, леммы 5.4.2,
5.4.3, 5.4.5 и 5.4.6, а также теоремы 5.4.2, 5.4.3 и 5.6.4,
имеются в [GS 3]. Лемма 5.4.4 хорошо известна. Понятие
ограниченного КС-языка введено в [GS 2]; там же получены
все остальные результаты.
х) Точнее, по выражению вида L (С\ Р), задающему это мно-
множество.— Прим, пер ев.
ГЛАВА 6
СУЩЕСТВЕННАЯ НЕОПРЕДЕЛЕННОСТЬ
В большинстве приложений языков программирова-
программирования требуется, чтобы порождающая соответствующий
язык грамматика была определенной. Если оказывается,
что это условие не выполнено, то приходится искать дру-
другую грамматику, порождающую тот же язык, но уже обла-
обладающую свойством определенности. Поэтому существенно
неопределенные языки требуют специального рассмотре-
рассмотрения; им и посвящена настоящая глава. Следует заметить,
что вопросы, связанные с существенной неопределенностью
КС-языков, как правило, трудно поддаются исследова-
исследованию х), и поэтому о них известно немногое.
В настоящей главе прежде всего будет дана алгебраиче-
алгебраическая характеристика существенно неопределенных язы-
языков, являющихся подмножествами множества а* ... а*,
где а* — символы. С помощью этой характеристики будет
получено необходимое и достаточное условие существенной
неопределенности ограниченного КС-языка. Используя
это условие, мы построим некоторое семейство существен-
существенно неопределенных КС-языков, которое будет "играть
основную роль в доказательстве алгоритмической нераз-
неразрешимости проблемы распознавания существенной неоп-
неопределенности КС-языка.
6.1. Существенно неопределенные КС-языки,
содержащиеся во множестве а\ . . . at
Для КС-языков, содержащихся во множестве а* ... а£,
где аь . . ., ап — некоторые символы, в настоящем раз-
разделе приводится необходимое и достаточное условие суще-
х) Читатель получит полное представление о сложности вопроса,
прочтя до конца настоящую главу.
262 Гл. 6. Существенная неопределенность
ственной неопределенности в терминах полулинейных
множеств. Предлагаемая характеристика состоит в том,
что ассоциированное с существенно неопределенным язы-
языком полулинейное множество не может быть представлено
в виде объединения конечного числа попарно непересе-
непересекающихся линейных множеств, каждое из которых обра-
образовано с помощью линейно независимой расслоенной
системы периодов.
Докажем достаточность указанного условия.
Лемма 6.1.1. Пусть 2 = {at | 1 <; i <; п) и а =
= (пи • • м Яп>.
Если М s а* . . . пп есть КС-язык и множество /а1 (М)
является объединением конечного числа попарно непересе-
непересекающихся множеств Lt, каждое из которых имеет линейно
независимую расслоенную систему периодов, то язык М
является определенным.
Доказательство. Согласно теореме 5.4.2, каж-
каждый язык fa (Lt) является контекстно-свободным. Посколь-
Поскольку отображение fa взаимно однозначно, множество М
является объединением конечного числа попарно непере-
непересекающихся КС-языков fa (Li). Ввиду теоремы 1.6.2
осталось показать, что каждый КС-язык fa (Lt) является
определенным. Поэтому мы вправе считать, что /а1 (М)
есть линейное множество L (с; ри . . ., pt) с линейно
независимой расслоенной системой периодов. Пусть с =
= (си . . ., сп) и pi = (рп, . . ., pin), I < i < t. Мы
можем считать, что р4, . . ., ps (О <С s ^ t) — все перио-
периоды, имеющие в точности две ненулевые координаты. Пусть
PtШ) и Pikdh I @ < k @» 1 < l < s,— ненулевые коор-
координаты вектора pt. Мы будем говорить, что вектор рг
накладывается на вектор ph (i, h <C s), если / @ = 7 (Щ
и k (i) — к (h). Поскольку система периодов является
линейно1 независимой,' на каждый период pt (I <^ i ^ s)
может накладываться не более чем один отличный от него
период. Без потери общности можно считать, что суще-
существует число г, г ^ s, удовлетворяющее следующим усло-
условиям: (а) если i, h <^ г и pt накладывается на phi то i = h;
(b) для любого /г, r < fr <; s, найдется такое £, i <; г, что
Pi накладывается на ph. Мы будем говорить, что период
Рт управляет периодом Pq(m Ф q, m, q -^.r), если, во-пер-
6.1. КС-языки, содержащиеся во множестве л* ... а* 263
вых, / (га) <С / (q) и k (q) <С к (га) (причем невозможно
одновременное выполнение равенств ] (га) = / (q) mk (q) =
= А: (га)) и, во-вторых, не существует такого и, и ^ г,
что ц =£ д, и Ф т и ; (га) < / (м) < / (?) < к (д) < к (и) <
-^ к (га). Не нарушая общности, можем считать, что
Рь •• v Pg fe^r) - BC^ периоды, не управляемые ника-
никакими периодами pt (i <; г), и при этом / A) <•••</ (?)•
Таким образом, имеют место неравенства
7 A) < к A)< / B)< к B) < . . . < 7 (?) < й (?)•
Поскольку система периодов является расслоенной, ни
один период pi не может управляться двумя различ-
различными периодами pj и ph (i, 7, h ^ г). Для каждого i (i ^ г)
обозначим через / (i, 1), . . ., / (i, m (i)) номера тех
периодов (если такие существуют), которые управляются
периодом рг, причем ; (/ (h 1)) < . . . < 7 (/ (h ™> @))-
Имеют место неравенства
/ @ < 7 (/ (i, 1)) <k(f(i, 1))< . . . < / (/ (К т {I))) <
< к (/ (i, га @)) < й @-
Период pi (i^r), не управляющий ни одним периодом,
будем называть заключительным.
Пусть 6=(У,Ъ,Р,о), где F = S(J{a, £i, ...,&,
Yi» • • •» Y^} и ^ состоит из следующих правил.
Y Yi()Y()Y(D+ Yi()Y()
.. . Y^ (Если 5 = g = 0, это правило имеет вид a
2. а. lh — 5
Yi(/(. 2)M/(, )Y(/(. 2)) • • Yi(/(,()))/(, ())Y(/(f ()))
... Yft(i)-i» если Ph накладывается на pt x) (i < г) и период р
не является заключительным. (Если /(/(£, 1)) =;(£), то
символы, предшествующие £/(г, i), отсутствуют; аналогично
если k(f(i, m (i))) — /с (i), то отсутствуют символы, следую-
следующие за £/(i,m(i)).)
b. 5л—>Yi(*)+i • • • Yk(i)-i> если р^ накладывается на рьг)
(i<r) и период /?^ является заключительным. (Если
/ (i) + 1 = /с (i), это правило имеет вид £& —> е.)
c. h^(%th)h4h(?k\h)h), если г<г</г<5 и р£ наклады-
накладывается на р^.
При этом возможно ft = 1.
264 Гл. 6. Существенная неопределенность
*• Ут-*У8И)а7(Ь{г) (s<i<t), если pi8{i)>0.
5. yt—>п{\ 1<£<7г.
Доказательство леммы будет закончено, если мы пока-
покажем, что КС-грамматика G является определенной и поро-
порождает язык М.
Всякое правило вида \i -> w мы будем называть ^-пра-
^-правилом. Пусть
(Не) о = т0 =^> . . . =^> wd = w
есть произвольный вывод некоторой цепочки w £ L (G).
Нетрудно видеть, что в выводе (Не) правило 1 применяется
лишь один раз, а каждое ^-правило типа 2 (i ^ s) может
быть применено не более одного раза. (Очевидно, что
после применения правила типа 2 символ %i B выводе
появиться не может.) С другой стороны, ясно, что каждое
£гправило типа 2 (i ^ s) применяется на некотором шаге
вывода (Не), если в одной из его цепочек встречается сим-
символ |г. (§гправила типа 2 являются единственными
|гправилами, не содержащими символа ^ в правой части.)
Далее, каждый символ ^, где 1 ^ i ^ г, встречается
в выводе (Не). (Если i^iq, то ^ встречается в правой части
а-правила. Если q < i ^ r, то период pt управляется
некоторым периодом и, следовательно, символ ^ появляет-
появляется в выводе (Не) в результате применения некоторого пра-
правила типа 2а.) Если г < i ^ 5, то символ |f может появить-
появиться в выводе (Не) в том и только в том случае, если на неко-
некотором шаге применяется правило типа 2с, содержащее
символ \t в правой части. Каждому индексу 1 ^ i ^ t
поставим в соответствие число yt следующим образом:
уг = 1, если г < i ^ s и символ ^ встречается в выво-
выводе (Не); Уг = 0 в остальных случаях. Для каждого £, 1 ^
^ i ^ п, символ 7f встречается в выводе (Не) по меньшей
мере один раз. (Это объясняется тем, что символы о
и ti A <С * ^ г) встречаются в выводе (Не).) Таким образом,
для каждого t, I ^ i ^ д, в выводе (Не) применяется в точ-
точности одно 7Гправило типа 5. Сопоставим каждому индек-
индексу £, 1 ^ i ^ t, число zt следующим образом: если 1 ^ i ^
<; s, то Z| есть число шагов вывода (Не), на которых при-
применялось §гправило типа|3;"если s < i ^ t, то zt есть чис-
число шагов вывода^(Не), наТкоторых применялось у^^-пра-
ридо типа 4. Таким образом, для каждого i, I ^C i ^ t,
6.1. К С-языки, содержащиеся во множестве а* ... а* 265
zt есть некоторое натуральное число. Симвелы из алфави-
алфавита 2 могут появляться в выводе (Не) только в результате
применения правил типа 2с, 3 и 5. Те из них, которые появ-
появляются в результате применения правил типа 5, соответ-
соответствуют компонентам вектора с, остальные соответствуют
компонентам периодов.
Подводя итог всему сказанному, имеем w = fa (с +
t
+ S (Уг + zt) Pi)- Таким образом, L (G) ^ M.
Предположим теперь, что w £ M. Тогда найдутся нату-
натуральные числа хи . . ., хи такие, что /й1 (w) = с -f
t
+ 2 xiPi- Поскольку система периодов является линей-
i=i
но независимой, числа хъ определяются единственным обра-
образом. Нетрудно видеть, что может быть построен такой
вывод D w цепочки w из а, что (во введенных выше обозна-
обозначениях) A) zt = xt — 1 и yt = 1, если г < i ^ s и х% > О,
и B) zt = хг и yt = 0 в остальных случаях. Тогда #f =
= У* + 2* Для каждого i и w £ L (G). Таким образом,
М ^ L (G) и, следовательно, L (G) = М.
Далее, из единственности системы чисел хи . . ., xt
вытекает, что всякий вывод D цепочки w из а удовлетво-
удовлетворяет условиям A) и B), и, следовательно, каждое правило
применяется в нем столько же раз, сколько оно применяет-
применяется в выводе Dw. Отсюда в свою очередь следует, что выво-
выводы D и D w имеют одинаковое дерево вывода. Таким обра-
образом, КС-грамматика G является определенной.
Доказательство необходимости нашего условия исклю-
исключительно сложно. Мы переходим теперь к его изложению
(привлекаемые рассуждения в известной степени являют-
являются модификацией доказательства теоремы 5.2.1).
Лемма 6.1.2. Пусть S = {а/ | 1 ^ )' ^ п) и а =
= (аь . . ., ап). Если М ^ а* . . . а£ есть определенный
КС-язык, то множество /а1 (М) является объединением
конечного числа попарно непересекающихся линейных мно-
множеств Lt, каждое из которых имеет линейно независимую
расслоенную систему периодов.
Доказательство. Пусть G = (F, 2, Р, а) —
некоторая определенная КС-грамматика, порождающая Д/\
266 Гл. 6. Существенная неопределенность
Поскольку в случае, когда М — конечное множество,
лемма верна тривиальным образом, мы можем считать
множество М бесконечным. Можно также считать, что
КС-грамматика G — неукорачивающая. (В противном слу-
случае мы можем построить определенную неукорачивающую
КС-грамматику G', такую, что L (С) = L (G) — {е},
и доказывать лемму для языка L (G').) Далее, без потери
общности можно допустить, что G — приведенная КС-
грамматика. Итак,
a. не существует символа £ £ V — 2 и цепочки ш^У*,
таких, что возможны два вывода £ =ф w с различными
деревьями выводов.
Наконец, мы можем предполагать, что для каждого
символа £ £ V — 2 найдутся две различные цепочки
Mi, и2 6 2*, такие, что § =ф м4 и g =ф м2. (Действительно,
КС-грамматика G, согласно предположению, является
приведенной, определенной, неукорачивающей и порож-
порождает бесконечный язык. Пусть, тем не менее, G имеет вспо-
вспомогательный символ £, из которого выводима лишь одна
цепочка w в основном алфавите. Тогда КС-грамматика
G' = (F — {£}, 2, Р', а), где Р' состоит из всех правил
v ->■ %ъ (v -> 2 6 -Р, v =^= S)» получаемых из соответствую-
соответствующих правил v ->• z заменой всех вхождений символа \
в z на н;, также^является определенной, приведенной,
неукорачивающей и при этом L (Gr) = L (G).) Докажем
ряд вспомогательных утверждений.
b. Ни для какого символа £ 6 V — 2 не существует
нетривиального вывода (т. е. вывода, в котором приме-
применяются правила) £ из £.
(В противном случае, итерируя нетривиальный вывод, мы
могли бы получить два вывода £ из £ с различными
деревьями вывода, что противоречит пункту а.)
c. Ни для каких символов £, v £ V — 2 и цепо-
цепочек wu w2, w3 6 V* не может иметь места выводимость
*
v
2
Допустим противное. Поскольку КС-грамматика G
является приведенной, то найдутся цепочки г/ь г/2, г/3?
у4, г/5 6 2*, такие, что о =Ф г/^г/5 =Ф У№\Ъ»
5- Рассмотрим различные цепочки и, у
6.1. КС-языки, содержащиеся во множестве #*...#* 267
*
такие, что g =^> и и l^v. Тогда A) а =^> y^yiuy2vy3y5;
B) а =Ф УьУ&у2иуъУь- Обе цепочки цг/2г; и гл/2ц являются
подцепочками цепочек изМи, следовательно, некоторых
цепочек из множества а* ... а*. Поскольку ни одна
из цепочек ц, v не может быть пустой (G — неукорачиваю-
щая КС-грамматика), имеем uy2v 6 а* Для подходящего /',
1 ^ / ^ п *). Таким образом, uy2v = vy2u. Тогда суще-
существование выводов A) и B) противоречит допущению а.
(Пусть Tt есть дерево вывода а =ф уьУ\1у21уъуь и pt и р2
являются максимальными вершинами дерева Гь пред-
представляющими соответственно первое и второе вхождение
символа | в цепочку у^у^у^узУв- Далее, пусть деревья
выводов Г2 и ^з производят соответственно выводы и
из £ и v из £. Тогда дерево вывода Г4, получаемое из дере-
дерева 7\ подвешиванием деревьев Т2 и Т3 соответственно
к вершинам р^ и р2, не совпадает с деревом вывода Т5,
получаемым из 7\ подвешиванием Т3 к р^ и Г2 к /?2. Но оба
дерева Г4 и Т5 производят один и тот же вывод цепочки
yityiuy2vy3yb из а.)
Пусть \ g F — 2. Если 5 =Ф ^^, где uv 6 2* и uv Ф е,
мы будем называть упорядоченную пару (и, у) периодом
символа £.
d. Если (иь ^) и (w2, у2) — периоды символа £ £
6 F — 2, то найдутся такие индексы £ и /, 1 ^ £, / ^ п,
что м1? и2 6 af, i;i, у2 6 а*.
В самом деле, пусть (wb ^i) и (w2, v2) — периоды симво-
символа I. Тогда
^ u2u1u2ulwvlv2v1v2
для некоторой цепочки ш^ 2*. Тогда цепочки u2U]U2Ui
и y1y2i;1i;2 содержатся в а* . . . а^- Поэтому и{и2 6 at
и ^2^ g а* для некоторых t и /'» отсюда вытекает d.
Если вывод цепочки u^v из %, где wy Ф е, производится
деревом вывода Г, содержащим в точности два вхождения
символа \, то (м, v) называется минимальным периодом £ 2).
х) Здесь используется то, что символы л1? . . ., ап попарно
различны.— Прим. ред.
2) Нетрудно видеть, что в этом случае одно вхождение символа
5 в Г соответствует максимальной вершине, а другое — не макси-
максимальной.— Прим. пер ев,
268 Гл. в. Существенная неопределенность
е. Всякий вспомогательный символ £ имеет не более
одного минимального периода. (Следовательно, всякий
вспомогательный символ \ либо имеет единственный
минимальный период, либо вообще не имеет периодов.)
Допустим, что это неверно. Тогда, согласно d, найдутся
такие i, /, 1 <; i, / <; п, что (а?1, а]1) и (а?2, af) — мини-
минимальные периоды символа £, причем (рь ^^ =^= (р2* Яг)-
Пусть 7\ и Г2 — деревья выводов, производящие соответ-
соответственно выводы cft^a]1 из £ и af^ap из £ *). Поскольку
периоды (а?1, а^1) и (а?2, ар) являются минимальными,
то и дерево Ти и дерево Т2 содержат в точности по два
вхождения символа £. Через Т' (соответственно Т")
обозначим дерево, получающееся из Т2 (соответственно
Ti) подвешиванием дерева Г4 (соответственно Г2) к макси-
максимальной вершине, помеченной символом £ (рис. 6.1 и 6.2).
Деревья Т' и Г" производят вывод одной и той же цепочки
aPi+P2 ga?i+<22 из g и каждое из них содержит в точности
три вхождения символа £. Однако эти деревья различны
хотя бы потому, что в дереве Т' поддеревом, порожденным
некорневой и не максимальной вершиной, помеченной
символом £, является дерево Гь а в Т" — дерево Г2.
Последнее противоречит пункту а.
Если (а?, ач0) — минимальный период символа £,
то существует единственное дерево вывода Г, производящее
вывод цепочки а^а] из £. Далее, всякое правило v -> z,
применяемое в этом выводе, содержит в своей правой части
z не более одного вхождения вспомогательного символа.
Предположим противное. Тогда £ =ф и^^и^г^з Для П°Д~
ходящих цепочек м;ь ш2, ^з 6 V* и символов ^, £2 g
6 F- 2. Следовательно, существуют цепочки wk, w5,
Wq, W'j 6 F*, такие, что либо
* *
В первом случае
Во втором случае
х) Очевидно, деревья Ti и 7^ неизоморфны.— Прим. перев^
6.1. КС-языки, содержащиеся во множестве af . . . а*
269
Таким образом, либо
либо
^^е^^;^ что противоречит утверждению с.
Итак, для некоторого &>0 дерево Т производит вывод
Поскольку Т является единственным деревом, производя-
производящим этот вывод, и (а?, а]) — минимальный период для |,
t
*■■
Рис. б§1. Дерево вывода Т. Рис. 6.2. Дерево вывода Ти%
каждый символ lt отличен от g (I ^ i ^ /с). Более того,
и сами символы |ь . . ., lk попарно различны. В самом
деле, пусть s есть наименьшее число, такое, что £8 = £*
для некоторого t, t > 5. Далее, пусть £4 и ^2 являются соот-
соответственно наибольшим и наименьшим из всех чисел д,
2?0 Гл. 6. Существенная неопределенность
таких, что s <iq ^ к и £s = %q. Тогда, если (и, v) —
минимальный период символа £s, то существуют два выво-
вывода цепочки u\tv из £s с различными деревьями, что про-
противоречит утверждению а. (Один из этих выводов — тот,
в котором встречаются в точности следующие вспомога-
вспомогательные символы: lSi gs+1, . . ., 1ц', другой — тот, в кото-
котором участвуют вспомогательные символы £*2, £*2+ь • • •
. . ., £ft, £, ii, . . ., ls\ деревья, производящие эти выво-
выводы, различны, поскольку одно из них содержит вхожде-
вхождение |, а другое не содержит.) Наконец, для каждого симво-
символа £Л A <1 h ^ к) пара (а?, а]) является минимальным
периодом. Действительно, вывод
производится деревом вывода, содержащим в точности два
вхождения символа £Л. Обозначим множество {£, £ь ...
. . ., lh} через 56. Тогда
f. все вспомогательные символы, принадлежащие Sg,
имеют один и тот же минимальный период.
Пусть V — произвольное подмножество алфавита У,
содержащее 2 U {а}. Далее, пусть М' есть множество
всех тех цепочек х 6 М, для каждой из которых существует
дерево вывода, производящее вывод х из о и такое, что
множество встречающихся в нем вспомогательных симво-
символов в точности совпадает с множеством V — Б. Ясно,
что имеется лишь конечное число таких множеств М',
и М является их объединением. Поскодьку КС-грамма-
КС-грамматика G является определенной, множества М' попарно
не пересекаются. Поэтому достаточно показать, что каж-
каждое множество /а1 (М') может быть представлено в виде
объединения конечного числа попарно непересекающихся
линейных множеств, каждое из которых имеет линейно
независимую расслоенную систему периодов.
Пусть т — расширение отображения /а\ определенное
на У* следующим образом: т (£) = @, ..., 0) для всякого
ggF'-S, x{ai) = f-c^{ai), 1<*<тг, x(zi... zk) = 2 x(zt)
l
для каждой цепочки zx .. . Zk в алфавите F'. Пусть
6.1. КС-языки, содержащиеся во множестве л} ... а* 271
(/), aQg\i)), ..., (of[r), ag[r)) — все попарно различные мини-
минимальные периоды тех вспомогательных символов £, для
которых $£ <= F'. (Вообще говоря, таких периодов может
и не быть.) Для каждого i, l<i<r, обозначим через v%
i vi qi ч f
вектор ъ (cifd), ugli)) и через q — некоторый вспомогатель-
ныи символ с минимальным периодом (а/(г), я#(г))» такой,
что 5g. ^ F'. Согласно определению минимального периода,
для всякого i, 1 < i < г, должно быть yf =^= (О, .. ., 0).
Обозначим через / множество всех цепочек и; £2*, 1аких,
*
что вывод o=$w производится деревом, которое, во-первых,
содержит вхождения вспомогательных символов только
из множества F', и, во-вторых, содержит либо по одному,
либо по два вхождения каждого вспомогательного символа
из F'. Множество / конечно (и, возможно, пусто). Пусть
zu ..., zs — все цепочки z£j, такие, что ни для каких
цепочек w^J и чисел i, 1 < i < г, не имеет место равен-
равенство т (z) = х (w) + ^i- Наконец, обозначим т (z*) через ut
и рассмотрим для каждого t, l<j<5, множество At =
г
= Wi + S ^7^71 ^7 6 Л^Ь Доказательство леммы будет закон-
чено, если мы докажем следующие утверждения:
1. т(М')= U^.
г=1
2. Каждое множество Л^ имеет линейно независимую
расслоенную систему периодов.
3. Множества At попарно не пересекаются.
Для всякого символа ^f F' — 2 с минимальным
периодом (х, г/), такого, что 5g e F', и для всякого /с >- 0
обозначим через Tg дерево вывода, производящее вывод
g =ф xk^yk. (В частности, Г| есть дерево, состоящее из
единственной вершины, помеченной символом £.)
Пусть # 6 ^i Для некоторого г, 1 ^ i ^ 5. Если д; = ut,
то д; = т (zj) и z^ g M', согласно определению множества /.
Предположим, что х = у + Vj для некоторого вектора
у £Аг[\% (М') и некоторого числа /, 1 ^ у <; г. Тогда
существует дерево вывода Г, производящее такой вывод
из о цепочки w £ М', что т (w) = г/. Поскольку w; 6 -W'»
Т содержит вхождение символа £7-. Обозначим ^ерез I"
272
л.~6. Существенная неопределенность
дерево вывода, получаемое из Т
заменой некоторого вхождения
\
на дерево Т\
Тогда A) Г
производя-
Рис. 6t3# Дерево вывода Т.
есть дерево вывода,
*
щее вывод g =4> z, где z —не-
—некоторая цепочка, такая, что
т (z) = у + Vj = x\ B) множе-
множество вспомогательных символов,
входящих в Т', совпадает с
V — 2. Вследствие B) z £ М'.
Тогда я 6 т (М') иАг^т (АГ).
Пусть w £ М' и Г есть неко-
некоторое дерево вывода, произво-
дящее вывод о =ф w. Далее,
пусть к — наибольшее из всех
чисел £, таких, что некоторый
вспомогательный символ имеет
в точности t вхождений в де-
дерево Т. Если к <; 2, то н; £ /
и, следовательно, найдутся век-
вектор ut, I ^ i ^ 5, и натураль-
натуральные числа &i, . . ., Аг, такие,
г
что х (w) = ut + 2 ^j- Та-
Таким образом, в этом случае
т (w) (zAf. Рассмотрим случай
к > 2. Предположим, что для
всякой цепочкд 2f F, для ко-
которой найдется дерево вывода,
содержащее менее к вхождений
каждого вспомогательного сим-
символа из V и производящее вы-
вывод о =Ф 2, вектор т (г) принад-
принадлежит некоторому множеству
Ai, I ^ i ^ s. Поскольку, во-
первых, дерево Т содержит
к > 2 вхождений некоторого
вспомогательного символа у4 и,
во-вторых, согласно с, не суще-
6.1. КС-языки, содержащиеся во множестве aj...a*
273
ствует таких шь w2 и w3, что
*
о =ф iv1y1w2ylw3, то Т содержит
по меньшей мере два вхождения
дерева Т\^ (рис. 6.3). Для
некоторого h A), 1 <h A)< г,
символы 7i и ^(i) имеют один
и тот же минимальный пе-
период. Пусть 7\ есть дерево, по-
получаемое из Т ^заменой одного
вхождения Т\ * на дерево, со-
состоящее из одной вершины, по-
помеченной символом yi (рис. 6.4).
Дерево Ti производит вывод из
о цепочки tt 6 2*, такой, что
т (w) = т (t±) + vh(i). Посколь-
Поскольку дерево Т содержит по мень-
меньшей мере два вхождения дерева
Т\^ множества вспомогатель-
вспомогательных символов, входящих в де-
деревья Т и Гь совпадают. Одна-
Однако дерево Ti имеет уже к — 1
вхождение символа у4. Если де-
дерево Ту содержит к вхождений
некоторого вспомогательного
символа у2, то мы повторим про-
процедуру, теперь уже по отноше-
отношению к у2, и получим некоторое
дерево Г2' В результате конеч-
конечного числа подобных операций
мы получим дерево Td, которое
A) производит вывод из а неко-
некоторой цепочки z 6 2*, такой, что
d
т (w) = т (z) + 2 vhU); B) со-
i=i
держит вхождения всех вспомо-
вспомогательных символов из V и не
содержит вхождений других
вспомогательных символов; C)
содержит не более к — 1 вхож-
о У,
a
Рис. 6.4. Дерево вывода TV
274 Гл. 6. Существенная неопределенность
дений каждого вспомогательного символа. Тогда z £ЛГ,
т (z), согласно индуктивному предположению, принадле-
принадлежит некоторому множеству Aiy и тому же множеству бу-
будет принадлежать вектор т (w). Таким образом,
t (Mr) ^\jAt\ равенство 1 доказано.
l
Рассмотрим некоторое множество At, I ^ t < s. Из d
следует, что всякий период из At имеет не более двух
ненулевых компонент. Для того чтобы доказать, что систе-
система периодов является расслоенной, достаточно устано-
установить, что каждая пара периодов vt, Vj, такая, что i =^= 7
и i, / ^ г, удовлетворяет следующему условию. Не суще-
существует чисел s A), s B), s C) и s D) A < s A) < s C) <
< s B) <; s D) ^ n), таких, что компоненты вектора vt
с номерами s A) и s B) и компоненты вектора Vj с номера-
номерами s C) и s D) отличны от нуля. Пусть Т есть дерево выво-
вывода, производящее вывод о =$ zt. Далее, пусть компоненты
вектора vt с номерами s A) и s B) и компоненты вектора Uj
с номерами s C) и s D) отличны от нуля и при этом s A) <С
< 5 C) < 5 B) < 5 D). В дереве Г заменим некоторое
вхождение символа £f и некоторое вхождение символа £7-
на деревья Т\. и Г|. соответственно. Полученное дерево Т'
производит вывод из о некоторой цепочки w £ М' \ при
этом в цепочке w либо некоторое вхождение символа asB)
предшествует некоторому вхождению символа а8(зь либо
вхождение символа aSC) предшествует вхождению симво-
символа aS(i), либо вхождение символа aSD) предшествует
вхождению символа aSB). Но ни то, ни другое, ни третье
невозможно, ибо w £ a* . . . a£. Таким образом, система
периодов множества Л^ является расслоенной.
Предположим, что система периодов {vu ...,vr} мно-
множества At является линейно зависимой. Тогда найдутся
натуральные числа си ..., сг, к1у ..., кг и m A<иг<г),
г г
такие, что 2 ciyi = 2 ^i и Стфктп» Пусть, как и прежде,
г=1 г=1
Т есть дерево вывода, производящее вывод o=$Zt, и пусть
г£ЛГ есть некоторая цепочка, удовлетворяющая соотно-
г
шению т (z) = т (z/) -f- 2 сгуг (вследствие 1 такая цепочка
г=1
6.1. КС-языки, содержащиеся во Множестве л*...я* 275
всегда найдется). В дереве Т одновременно для каждого г,
1 < i < г, заменим некоторое вхождение символа J-j на дерево
Т^.. Получаемое таким образом дерево Т' производит вывод
из g некоторой цепочки zf £ М''. Поскольку т взаимно одно-
Г Г
значно на 2 и t(z') = t(zA-\-zj ^ (af\i) •> ag\i)) ~^ izt) ~\~ ^j ciVi,
1 1
то z' = z. Дерево Тг содержит на cm вхождений символа |m
больше, чем дерево Т (так как дерево Г|™ содержит ст+1
вхождений £т и в то же время, согласно f, ни одно
из деревьев Т%{ (]фт) вхождений £т не содержит). Посту-
Поступая аналогичным образом, мы можем построить дерево Т",
производящее вывод g±=$>z и содержащее на km вхождений
символа £ш больше, чем Т. Поскольку КС-грамматика G
является определенной, деревья Г' и Т" изоморфны. Послед-
Последнее, однако, противоречит предположению, что стфкт.
Таким образом, система векторов {ul,...,vr} является
линейно независимой; утверждение 2 доказано.
Предположим теперь, что утверждение 3 неверно. Из
всех векторов, содержащихся в пересечениях As(]At для
всевозможных пар s, t, s Ф t, выберем вектор \i с мини-
минимальной суммой компонент. Поскольку \i £ Aj(]Am,
для некоторых / и т найдутся натуральные числа си ...
. . ., сг и &b . . ., кГ1 такие, что
1=1 i=l
Далее, поскольку Uj £Ат и ит £Aj, то для некоторых
р и q коэффициенты ср и kq положительны. Имеем \i —
— vp £ Aj, \i — vq 6 Am. Пусть Т — дерево вывода, про-
производящее вывод из о цепочки z £ М', такой, что т (z) = \i.
Заметим, что деревья Т\р и T\q не имеют вхождений
общих вспомогательных символов. (В противном случае
было бы 5§р П S%q Ф 0, откуда, согласно f, vp = vq
и, следовательно, \i — vp £ Aj(]Am, что противоречило
бы минимальности ji.) Поскольку z -ф zpnz Ф zq, дерево Т
содержит вхождение рр дерева Г|р и вхождение рд дере-
дерева T\q, см. рис. 6.5. (Действительно, рассуждая как при
доказательстве линейной независимости системы перио-
276
Гл. б. Существенная неопределенность
дов, нетрудно доказать следующее утверждение: дерево Г,
производящее вывод из о цепочки z £ М', такой, что
г
х (z) = щ + 2 djVj и dj >> 0 для некоторого /0, 1 <Г /0 ^
^ г, содержит по меньшей мере два вхождения символа
Рис. 6.5. Дерево вывода Т.
1-j . Далее следует воспользоваться утверждением с.)
Заменим в дереве Т вхождение рр дерева T\v символом £р
и вхождение $q дерева T\q — символом |д (рис. 6.6).
Получаемое таким образом дерево Т' производит вывод
из а цепочки w, такой, что т (w) = \i — vp — vq. Посколь-
Поскольку \i — vp £ Aj и \i — vq g Am, каждый символ из S%p [} 5^
6.1. КС-языки, содержащиеся во множестве af.. .a*
277
встречается в дереве Т по меньшей мере дважды. Посколь-
КУ StqftSlp = 0> ПРИ переходе от Т к Т удаляется
в точности одно вхождение каждого символа из S%p [} S%q,
и никакие другие символы не удаляются. Следовательно,
дерево Т1 содержит вхождение каждого вспомогательного
символа из F', так что w £ М'. Тогда для подходящего h
х (w) = [i — vp — vq £ Ah. В свою очередь отсюда следует,
Рис. 6.6. Дерево вывода Тг.
что \i — vp, \i — vq 6 Ah. Но, с другой стороны, \i — vp £
£ Aj, \i — vq б Лт. Поскольку 7 =7^ иг» то либо fe =^= h
либо Уьф m. Если, например, h Ф ;, имеем ji — i;p g
^^j-fl^lh» что противоречит минимальности \i. Анало-
Аналогично в случае h Ф т. Таким образом, доказательство
утверждения 3 и тем самым всей леммы закончено.
Объединяя леммы 6.1.1 и 6.1.2, мы получаем следую-
следующий результат.
Теорема 6.1.1. Пусть 2 = {aj | 1 <; / <^ п} и а =
= (а±, . . ., ап). КС-язык М ^ а* . . . а% является суще-
существенно неопределенным тогда и только тогда, когда мно-
множество fa1 (M) не может быть представлено в виде объеди-
объединения конечной системы попарно непересекающихся линей-
278 Гл. 6. Существенная неопределенность
них множеств, каждое из которых имеет линейно незави-
независимую расслоенную систему периодов.
Открытые проблемы. 1. Найти более короткое доказательство
леммы 6.1.2.
2. Можно ли каждое полулинейное множество представить
в виде объединения конечной системы попарно непересекающихся
линейных множеств? х)
Упражнения 6.1
В каждой из следующих задач требуется определить, может ли
некоторое полулинейное множество L быть представлено в виде
объединения конечного числа попарно непересекающихся линейных
множеств, каждое из которых имеет линейно независимую расслоен-
расслоенную систему периодов. В случае если это так, требуется построить
определенную КС-грамматику, порождающую множество fa (L), где
а = (Я!, . . ., ап) и аг — попарно различные символы.
1. L = L ((О, 1, 1); A, 1, 0), B, 1, 0), @, 1, 1)).
2. L = L (@, 0, 0, 0,); A, 1, 0, 0), A, 2, 0, 0), @, 1, 1, 0),
@, 0, 2, 1)).
3. L = L (@, 1, 0, 0); A, 0, 0, 2), B, 1, 0, 0), @, 3, 2, 0)) U
U L (@, 0, 3, 0); B, 0, 0, 1), @, 1, 3, 0)).
4. L = L (ci\ pu P2, Рз) U L fe Ры Рь) где а = @, 0, 0, 0, 0),
Pi = @, 2, 2, 0, 0), р2 =' A, 0, 1, 0, 0), рз = @, 0, 0, 0, 1),
с2 = A, 0, 0, 0, 0), р4 = @, 0, 0, 0, 1) и р5 = @, 0, 0, 3, 1).
6.2. Ограниченные существенно неопределенные КС-языки
В предыдущем разделе было найдено необходимое
и достаточное условие существенной неопределенности
КС-языка, содержащегося во множестве w* . . . w%,, для
случая, когда wu . . ., wn — попарно различные символы.
Теперь мы покажем, что это условие сохраняет силу
и тогда, когда wu . . ., wn — произвольные цепочки.
С помощью этой характеристики мы докажем существен-
существенную неопределенность ряда конкретных КС-языков.
Лемма 6.2.1. Пусть w = (jvu . . ., wn), wt 62*,
1 ^ i <^ n, и M ^ w* . . . Wn есть некоторый КС-язык.
Если язык М определенный, то множество fa1 (M) может
быть представлено в виде объединения конечной системы
попарно непересекающихся линейных множеств, каждое
Этот вопрос решен положительно в'[It].— Прим. перев.
6.2. Ограниченные существенно неопределенные КС-языки 279
из которых имеет линейно независимую расслоенную систе-
систему периодов.
Доказательство. Пусть аь • . ., ап — неко-
некоторые попарно различные символы, не содержащиеся в 2,
и а = (аь . . ., ап). Поскольку отображение fa взаимно
однозначно, имеем /а1 (fa Ifw (М)]) = fw1 (М). Поэтому
ввиду теоремы 6.1 достаточно показать, что язык
fa (fw1 (M)] порождается определенной КС-грамматикой.
Пусть G = (F, 2, Р, а) — определенная КС-грамма-
КС-грамматика, порождающая М. Каждое ее правило имеет вид
I -> YtAYi . . . стут, где т > О, ck 6 2, yk 6 (V — 2)*,
I ^ к ^ т. Каждому такому правилу jtj сопоставим
систему правил
Щ = {I -^ YofAiYl • • • HmYm I (Aft = Cfe^
или [ift = cft, 1 ^ A ^ m, 1 ^i I ^ n}.
Ясно, что если щф^, то Щ[)Щ = 0. Обозначим
множество U Щ через Р' и рассмотрим КС-грамматику
Пг£Р
G' = (FU К- . ., ап), 2 U {аь . . ., ап), Р', а). Допус-
Допустим, что КС-грамматика G' является неопределенной. Тогда
в G' найдутся два различных левосторонних вывода одной
и той же цепочки w' £ L (G'). Если в этих выводах заме-
заменить каждое применение правила из системы Щ на при-
применение правила я г, то получим два левосторонних выво-
вывода в G. Оба эти левосторонних вывода порождают одну
и ту же цепочку, получаемую из w' удалением всех вхож-
вхождений символов аь . . ., ап. Поскольку КС-грамматика G
является определенной, эти два вывода совпадают.
Отсюда следует, что соответствующие выводы в G' отли-
отличаются друг от друга только тем, что на некоторых их
шагах с одинаковыми номерами применяются различные
правила из одних и тех же систем Щ. Однако и это
невозможно, ибо если на шагах с одинаковыми номерами
применяются различные правила из одной и той же си-
системы Щ, то в некотором месте цепочки, возникающей
при одном выводе, обязательно появляется вхождение
символа аи которого нет в соответствующем месте це-
цепочки, возникающей при другом выводе. Таким образом,
а. КС-грамматика G' является определенной.
280 Гл. 6. Существенная неопределенность
Множество (wiui)* . . . (wnan)* является регулярным.
Согласно теореме о пересечении, найдется определенная
КС-грамматика G" = (F", 2 U {аи . . ., ап}, Р", а),
порождающая КС-язык L (G')fl(^i^i)* • • • (и^О*- Рас-
Рассмотрим КС-грамматику G" = (F", {аи . . ., ап) Р'", о)
с множеством правил Р'" = Р" [) {I -> е | g 6 2 } *). Допу-
Допустим, что КС-грамматика Gm является неопределенной.
Пусть а = уо=Ф...^Уг = »и а = 20=Ф...^>28 = г/ —
выводы цепочки у = а*A) . . . ап(п) = /а (#), где х —
= (х A), . . ., х (п)), в КС-грамматике С". Без потери
общности можно считать, что все применения правил
из Р" в этих выводах предшествуют применениям правил
вида \ ->• е, £ 6 2. Пусть i есть наименьшее число, такое,
что цепочка yi+i получается из цепочки yt в результате
применения правила вида £->е, §62, и/ — наимень-
наименьшее число, такое, что Zj+i получается из Zj в результате
применения правила вида £ -> е, § 6 2. Тогда ^ = z/ =
= fwa (х), где ша = (мф!, . . ., wnan). Поскольку КС-
грамматика G" является определенной, имеем i = /; более
того, мы можем считать, что i/ft = zk при всех А, к <С г,
и выводы #г =ф у£ + 1 =ф . . . &ф уг и zt =ф . . . 4 ze являют-
являются левосторонними. Поскольку, во-первых, yt = zt и, во-
вторых, и в том и в другом выводе на последующих шагах
применяются только правила вида £ -> е, £ 6 2, имеем
г = s и yk = zk при всех к, к ^ г. Таким образом,
Ь. КС-грамматика G" является определенной и порож-
порождает КС-язык L (G"f) s а* ... а*.
Ввиду b нам достаточно показать, что /а t/^1 (M)] =
= L (Gw). Предположим, что fa(p)^L (G"f). Тогда
/ша (р) 6 -^ (б") и, следовательно, fwa (p) 6 L (Gf). Посколь-
Поскольку fw (p) есть цепочка, получаемая из fwa (p) в результате
удаления всех вхождений символов аи . . ., ап, имеем
/ад (р) 6 £ (&')• Поэтому из равенства М = L (Gf) f)
f|w;* ... ш* немедленно вытекает, что fw (p) 6 М. Дока-
Докажем обратное включение. Пусть fw (p) ^ M. Тогда fwa (p) 6
6 L (G') и, следовательно, fwa (p) 6 Ь (G"'). Таким образом,
/а (р) 6 £ (£'")• Итак, /а (р) g L (Gw) тогда и только тогда,
когда fw (р) е М, т. е. fa [/^ (М)] = L (б").
х) Таким образом, символы алфавита 2 являются в G1" вспомо-
вспомогательными символами.
6.2. Ограниченные существенно неопределенные ЕС-языки 281
Теперь перед нами стоит задача доказать утверждение,
обратное лемме 6.2.1 — иначе говоря, доказать, что язык
М ^ w* . . . w* порождается некоторой определенной
КС-грамматикой всякий раз, когда множество fa1 (M)
может быть представлено в виде объединения конечной
системы попарно непересекающихся линейных множеств,
каждое из которых имеет линейно независимую расслоен-
расслоенную систему периодов. Наиболее естественным способом
доказательства может показаться следующий: связать
с каждым линейным множеством определенную КС-грам-
КС-грамматику, а затем попытаться доказать, что эти определенные
КС-грамматики порождают попарно непересекающиеся
КС-языки. Первая из этих двух задач может быть решена
достаточно просто, но вторая, как видно из приводимого
ниже примера, заведомо невыполнима. Поэтому для дока-
доказательства утверждения, обратного лемме 6.2.1, нам при-
придется избрать другой путь.
Пример. Пусть Wi = a, w^ = 6, w3 = ab и w = (w^ w^ w3).
Тогда Z ((ab)*) = L, U L2 U L3 \J L4, где Li = L (@, 0, 0); J>),
L2= L (A, 1, 0); P), L3 = (@, 0, 1); P), L4 = L (A, 1, 1,); P)
и Р = {B, 2, 0), @, 0, 2)}. Множества Lt попарно не пересекаются,
и Р есть линейно независимое расслоенное множество. Однако
fw (Ц) П fw (U) Ф 0, так как @, 0, 4) g Lu A, 1, 3) 6 Lk и
(@04)) /(A 1 3)) (h)*
Для доказательства утверждения, обратного лем-
лемме 6.2.1, нам придется предварительно установить спра-
справедливость следующих утверждений.
1. Существует множество Д, такое, что (а) множество
F = fw1 {Щ П R может быть представлено в виде объеди-
объединения конечного числа попарно непересекающихся линей-
линейных множеств, каждое из которых имеет линейно незави-
независимую расслоенную систему периодов; (Ь) отображение /ш
является взаимно однозначным на множестве F; (с)
U (F) = М.
2. Если F удовлетворяет условиям 1(а) и 1(Ь), то
/„; (F) является определенным.
Для того чтобы доказать утверждение 1 (см. лем-
лемму 6.2.8), нам потребуется предварительно ввести понятие
«регулярного» подмножества множества N4 и доказать
шесть лемм о его свойствах.
282 Гл. 6. Существенная неопределенность
Определение. Пусть аи . . ., ап — попарно раз-
различные символы и а = (аь . . ., ап). Множество Н ^ Nn
называется регулярным, если регулярным является множе-
множество fa (Н).
Непосредственно из определения следует
Лемма 6.2.2. Пусть 1 ^ £i < . . . < £r ^ ^ — на-
натуральные числа и П — отображение Nn на Nr, опреде-
определяемое следующим соотношением:
U(x(l), . . ., х{п)) = (х(ц), . . ., x(ir)).
Если множества А ^ Nn, В s Nn и С ^ Nq являются
регулярными, то таковыми являются и множества А[]В,
А[\В, А — В, А X С и П {А).
Следующая лемма утверждает, что операция пересече-
пересечения с регулярным множеством сохраняет свойство множе-
множества векторов быть объединением конечной системы попар-
попарно непересекающихся линейных множеств, каждое из
которых имеет линейно независимую расслоенную систему
периодов.
Лемма 6.2.3. Пусть Н2 ^ Nn — регулярное множе-
множество. Тогда если множество Н^ ^ Nn является объедине-
объединением конечной системы попарно непересекающихся линей-
линейных множеств, каждое из которых имеет линейно незави-
независимую расслоенную систему периодов, то этим свойством
обладает и множество Hi f] H2.
Доказательство. Пусть а = (аь . . •, ап)ч гДе
аь . . ., ап — попарно различные символы. Согласно тео-
теореме 5.4.2, множество /о (Hi) является ограниченным
КС-языком. Далее, поскольку /a1 [fa (Hi)] = Hiy то по
теореме 6.1.1 КС-язык /а (Hi) является определенным.
Из регулярности множества /о (Н2) и теоремы о пересече-
пересечении следует, что множество fa(Hi)[\fa(H2) является
ограниченным определенным КС-языком. Наконец, вновь
воспользовавшись теоремой 6.1.1, заключаем, что мно-
Ж6СТВ0 ft [/„ (Я.) П/„ (Я2I = /а1 [/„ (Я01 П/а1 If а (Я,)] =
= Hi(]H2 может быть представлено в виде объединения
конечной системы попарно непересекающихся линейных
множеств, каждое из которых имеет линейно независимую
расслоенную систему периодов.
6.2. Ограниченные существенно неопределенные КС-языки 283
Лемма 6.2.4. Пусть Н <= Nn есть регулярное мно-
множество и w — (шь . . ., wn) — система п цепочек. Тогда
множество fa1 \fw (Н)] тоже является регулярным.
Доказательство. Пусть а = (аь . . ., ап), где
аь . . ., ап — некоторые попарно различные символы,
и S — конечный преобразователь с единственным состоя-
состоянием, переводящий каждый символ at в соответствующую
цепочку ivt. Поскольку fa (Н) есть регулярное множество,
а конечное преобразование сохраняет свойство множества
быть регулярным, то регулярным является и множество
Sfa (H). Отображение S'1 также сохраняет регулярность
множеств, поэтому множество S'1 [Sfa (H)] регулярно;
следовательно, множество
ft [/«, (Я)] = fa1 IS (Sfa (Н)) Оа*...аЯ
также регулярно.
Лемма 6.2.5. Пусть S есть конечный преобразова-
преобразователь и U — регулярное множество цепочек. Тогда множе-
множество а E, U) = {х 6 S (V) | х = S (у) = S (z) для под-
подходящих у, z £U, у Ф z) тоже является регулярным.
Доказательство. Пусть S = (К, 2, A, S, А,, р0)
и В = (Кв, 2, 6BiqOiFB) есть конечный автомат, такой,
что Т (В) = U. Рассмотрим следующий мультиграф Н.
Каждая пара (р, q) £ К X Кв является его вершиной.
Кроме того, для любых (р, q) £ К X Кв, г/ ^2иЦр, г/) =
= zi . . . zk, zt £ А, к %> 2, вершинами Н являются аб-
абстрактные символы {р, q)Y, . . ., (р, q)k-i- Далее, для
любых (/?, q) £ К X Кв и у £ 2, таких, что X (р, у) 6
£ A|J {е}, упорядоченная пара
dp, q), Ф (р, у), «в (q, у)))
является дугой мультиграфа Н с пометкой X (р, у), при-
причем для каждого такого у имеется своя дуга с пометкой
^ (Р, У), соединяющая те же вершины. Кроме того, для
любых (р, q) 6 К X Кв и у £ 2, таких, что А, (р, #) =
= z4 . . . zfe, Zj g А, к ^> 2, дугами в Н с пометками
zb . . ., zfe соответственно являются упорядоченные пары
((р, ?). (р, ?)?). ((р, ^)iy, (p. q)Z), ■ ■ ■
284 Гл. 6. Существенная неопределенность
Нетрудно видеть, что множеству a (S, U) принадлежат
те и только те непустые цепочки х, каждая из которых
производится по меньшей мере двумя путями, ведущими
из вершины (р0, q0) в вершины, соответствующие (воз-
(возможно, различным) парам из К X FB (кроме них, множе-
множеству а (S, U) может принадлежать пустая цепочка е).
Чтобы доказать лемму, нам достаточно установить
справедливость следующего утверждения: пусть Н есть
конечный ориентированный мультиграф с ребрами, поме-
помеченными элементами множества A U {е}, выделенной верши-
вершиной s0 и выделенным множеством вершин R; тогда множе-
множество а (Я), состоящее из всех цепочек, производимых
по меньшей мере двумя путями, ведущими из вершины s0
в (возможно, различные) вершины из R, является регуляр-
регулярным. В свою очередь, чтобы доказать это утверждение,
достаточно построить конечный автомат А — (КА, А,
«л, г0, FA), такой, что {e}[ja(H) = {г}[)Т(А).
Обозначим через W множество всех вершин графа Н
и положим КА = {(Ми М2) | М2 ^ М! е М) и г0 =
= ({so}, 0)- Определим FA как множество всех состоя-
состояний (Мь М2), удовлетворяющих одному из следующих
двух условий:
a. М^ П R содержит не менее двух элементов;
b. M2[\R ф 0.
Для любых X ^ W и у £ А обозначим через бА (X, у)
множество всех вершин q, в которые из вершин множе-
множества X ведут пути, производящие у. Для любых М2 д=
^ MY<=:W и г/бА обозначим через б2 ((Ми М2), у)
множество, являющееся объединением 8t (M2, у) и мно-
множества всех вершин q, в которые из (не обязательно раз-
различных) вершин gb q2 6 Mi ведут соответственно пути Щ
и П2, производящие г/, причем ни один из этих путей
не может быть получен из другого удалением некоторого
(в том числе пустого) начального отрезка (т. е. ни один
путь не является заключительным отрезком другого).
Положим бА ((Ми М2), у) = (Si (Ми у), б2 ((Ми Ма), у)).
Поскольку S2 ({Mi, М2), у) s Si (Mi, у), имеем
8А ((ми м2), у) е кЛ.
Если бА (г0, у) = (Ми М2) и у ф е, то, очевидно,
множество М состоит из всех вершин q, в которые из вер-
вершины sQ ведут пути, производящие у. Покажем следующее.
6.2. Ограниченные существенно неопределенные КС-языки 285
с. Если &а fro, у) = {Mi, М2) и у Ф е, то М2 состоит
из всех вершин q, в которые из вершины s0 ведут по мень-
меньшей мере два пути, производящие у.
Пусть у = ух . . : yk, и пусть yt 6 А для каждого г,
1 ^ i ^ к. В случае когда к = 1, истинность утвержде-
утверждения с усматривается непосредственно из определения М2
и г0. Предположим, что для к = т утверждение с доказа-
доказано, и рассмотрим случай к = т + 1. Пусть при этом
Sa (г0, У1. - -Ут) = (М[, М'2), так что (Мь М2) =
б ((м; м;) )
((; ) )
Рассмотрим некоторую вершину q 6 Л^2- Допустим
сначала, что q g Si (Mg, ym+i). Тогда найдутся вершина
q' g M2 и путь из g7 в g, производящий г/j + i- Согласно
индуктивному предположению, в вершину q' из 50 ведут
по меньшей мере два пути, производящие у± . . . ут.
Тогда существуют по меньшей мере два пути из 50 в д,
производящие г/i . . . ут+\. Предположим теперь, что суще-
существуют пути П1 и П2, производящие ут+\ и ведущие
соответственно из вершин q', q" £ М[ (возможно, различ-
различных) в вершину q, причем ни один из этих путей не являет-
ся^заключительным отрезком другого. Поскольку, кроме
того, существуют пути П3 и П4, производящие у± . . . ут
и ведущие из sQ соответственно в q' и q", то из sQ в q ведут
два различных пути, производящие у± . . . г/т+ь а именно
П3П! и П4П2.
Пусть q есть некоторая вершина, в которую из s0
ведут различные пути П! и П2, производящие г/i . . . ym+i-
Тогда найдутся вершины qi ид2 и пути Щ, Щ, Щ, Щ,
такие, что
d. пА = п;щ и п2 = п;щ,
e. пути Щ и П2 производят j/i . . . j/m (таким образом,
Щ и Щ производят ут+1),
f. каждый путь П| ведет из s0 в qt (и, значит, путь Щ
ведет из qt в q), i — 1, 2.
Таким образом, gb g2 g M[. Предположим сначала, что
П^ = Щ. Тогда ^1 = <12, Щ =й= Щ и» следовательно,
q 6 Л/*2- Далее, предположим, что Щ Ф П2 и ^i = #2.
Тогда, согласно индуктивному предположению, q± g M2
и, следовательно, q g М2. Наконец, допустим, что Щ =^= Щ
ж q^-ф q2. Если при этом ни один из путей Щ', Щ не
является концом другого, то q g Af 2 согласно определению.
286 Гл. в. Существенная неопределенность
Пусть один из путей есть конец*другого; для определенно-
определенности, скажем, Щ является концом Щ. Тогда найдутся
вершина q3 и путь Щ", производящий е и ведущий из q2
в q3i причем Щ'Щ = Щ. Таким образом, пути Щ и ЩЩ"
производят г/i . . . ут и ведут из вершины s0 в вершину q3.
Заметим, что Щ Ф ЩЩ'. (В противном случае ri± =
= ЩЩ = ЩГГГП'! = ЩПз = П2, что противоречит усло-
условию.) Тогда, согласно индуктивному предположению,
q3 6 М'2, следовательно, q £ M2 и утверждение с доказано.
Пусть yi . . . yk, где yt £ А, 1 ^. i ^ к, есть некото-
некоторая цепочка и 8А (r0, yi . . . yh) = (Мь М2). Для того
чтобы завершить доказательство леммы, достаточно пока-
показать, что j/i . . . j/ft 6 оь (Я) тогда и только тогда, когда
У1...ук£Т (А).
1. Предположим, что г^ . . . yk 6 а (Я). Тогда в Я
имеются два пути, производящих, г/i . . . yk и ведущих
из 50 в (не обязательно различные) вершины qx ид2, при-
принадлежащие множеству R. Таким образом, {gb q2} ^
^ Mif\R. Если множество Afifl^? содержит не менее
двух элементов, то (Мь М2) 6 ^а согласно а. Если
Mi П R содержит в точности один элемент, то q± — q2.
Тогда, согласное, q^ 6 М2. В свою очередь остюда следует,
что M2f).#=7^0 и (Мь M2)^FA согласно Ь. Итак,
и в том и в другом случае (Мь М2) 6 Fa, т. е. г/i . . . yk £
е г (л).
2. Пусть теперь ^ . . . yk 6 Г (Л). Тогда (Мь М2) 6 FA.
Если множество Mi П R содержит &ве различные вер-
вершины qt и q2, то в Н существуют два пути, произ-
производящие ух . . . yk и ведущие из s0 соответственно в qx
и q2. Если М2[\Яф 0, то существует вершина q g
6М2ПЛ, причем, согласно с, в Я имеются два пути,
производящие yt . . . yk ж ведущие из s0 в д. Таким обра-
образом, в каждом из двух случаев г/i . . . yk £ а (Я
Из 1 и 2 непосредственно вытекает, что {e}|Ja
{}
Замечание. Лемма 6.2.5 включает в себя как
частный случай упр. 2.1.4.
Следствие 6.2.1. Пусть S — конечный преобра-
преобразователь и U — регулярное множество. Тогда множество
6.2. Ограниченные существенно неопределенные КС-языки 287
является регулярным.
Доказательство предоставляется читателю (см.
упр. 6.2.1).
Прежде чем сформулировать следующую лемму, нам
потребуется ввести одно дополнительное понятие и неко-
некоторые новые обозначения.
Обозначение. Через ^' мы обозначим следую-
следующее отношение линейного порядка на множестве Nn.
Пусть р = (ри . . ., рп) и q = (qu . . ., qn) — векторы
из Nn. Тогда р <^ 'q в том и только в том случае, если либо
р = q, либо р Ф q и Pj <Cqj, где / — наименьшее из
таких чисел, что pj Ф q$.
Пусть w — {шь . . ., wn) есть некоторая упорядочен-
упорядоченная система п непустых цепочек. Тогда для каждой цепоч-
цепочки z £ ш* . . . Wn множество ful (z) конечно и содержит
единственный максимальный (в смысле ^') элемент
Определение. Пусть w = (wu . . ., wn) — упо-
упорядоченная система п непустых цепочек. Тогда вектор
р 6 Nn называется w-максималъным, если р — max {fu1 (z)}
для некоторой цепочки z £w* . . . ivn.
Пусть, например, w = (baba, Ъа, с). Тогда
ШИбс2) = {@, 5, 2), A, 3, 2), B, 1, 2)}
и max {Z^1 {{Ъа)ъ с2)} = B, 1, 2). Таким образом, век-
вектор B,1,2) является ш-максимальным.
Обозначение. Для произвольных X, Y ^ Nn
мы будем обозначать через X + Y множество {х + у \ х 6
€ X, у € Y}.
Лемма 6.2.6. Если w — {wu . . ., ivn) — упорядо-
упорядоченная система п непустых цепочек, то множество всех
w-максималъных векторов из Nn является регулярным.
Доказательство.
а. Если множества А,.В ^ Nn регулярны и при этом
A g= NJ х 0n~j и В ^ 6д X Nn-i для некоторого /, то
множество А + В также регулярно.
(Действительно, пусть At = {и 6 N1 \ и X 0п~3 ^А},
288 Гл. в. Существенная неопределенность
Вх = {v 6 Nn~j | О3 X и еВ}. Согласно лемме 6.2.2, мно-
множества 4j и J5j являются регулярными. Поэтому, соглас-
согласно той же лемме, множество А-\-В = AixBi регулярно.)
Пусть A s Nn. Обозначим через а (А) множество
Предположим, что множество А регулярно. Далее,
пусть а = (аи . . ., ап>, где аи • • ., ап — некоторые
попарно различные символы. Тогда множество fa (A)
является регулярным. Согласно следствию 6.2.1, каков
бы ни был конечный преобразователь S, множество
является регулярным. Если взять в качестве S конечный
преобразователь с единственным состоянием, переводящий
символы а4, . . ., ап соответственно в цепочки wu ...
. . ., ^, то а (i) = /i1 (Zs). Таким образом:
b. Если A s Nn — регулярное множество, то множе-
множество а (А) тоже регулярно.
Определим последовательность множеств Ru . . ., Rn
следующим образом: Rn = N71. .Если .1 <^ / ^ п — 1,
то Rj = Rj+A — Th где Tj = (N3 X О71'3) + Sj и Sj =
- @J X ЛГ-^Па^О' X ^-3+1)n^+i)- Предположим,
что множество Rj+i является регулярным. Тогда мно-
множества (О-1 х N"-'+1) П Rj+t и а ((О^1 X ЛГ1-^1) П Rj+i)
также являются регулярными. Отсюда в свою очередь
вытекает регулярность множеств Sj и Tj. Наконец,
из регулярности множества Rn следует по индукции
регулярность всех множеств i?n_i, . . ., R\. Доказатель-
Доказательство леммы будет закончено, если мы докажем, что множе-
множество /?! совпадает со множеством всех ш-максимальных
векторов из Nn.
Пусть вектор р = (рь . . ., рп) не является ш-макси-
мальным и h, I ^ h <^ п, есть наибольшее из всех чисел /,
для которых существует вектор q = (дь . . ., qn) g Л^^1,
такой, что fw (р) = fw (q), qt = pt для всех i, 1 ^ i < /,
и pj < qj. В этом случае мы будем говорить, что век-
вектор р опровергается на h. Таким образом, вектор р 6 Nn
является ^-максимальным тогда и только тогда, когда
не существует числа /г, 1 <^ h ^ тг, на котором р опровер-
опровергается. Поэтому доказательство леммы будет закончено,
если мы покажем следующее.
6.2. Ограниченные существенно неопределенные КС-языки 289
c. Для каждого i, I ^ i < n, множество Rt состоит
в точности из тех векторов р, которые не опровергаются
ни на каких h, h^> i.
Прежде всего ясно, что ни один вектор из Nn не опро-
опровергается на п. (Действительно, если wv^ ... иА =
= wQi .. . wQn и wpi . .. мА-i = wqi # # # wQn-1, то wPn = uA
1 П 1 n-l 1 71-1 ' П 71
и, следовательно, pn = qn, так как у>пфъ.)
Таким образом, с выполняется при i = п. Предполо-
Предположим, что с выполняется для всех £ = / + 1, . . ., тг и при
этом для всех Л, / < /с < тг, ГЛ = {/? 6 ^n I P опровер-
опровергается на к}. Поскольку Rj = i?j+i — Tj, то для того,
чтобы доказать, что с выполняется при i = /, достаточно
установить, что имеет место следующее равенство.
d. Tj = {p (: Nn \ p опровергается на /}.
Пусть р g Гу. Тогда найдутся векторы г = (гь . . ., rn) g
е ivj х. o--j и .« = (в1> ..., sn)esj = (oj х лг1-1') п
П,а ((О^1 X iv^-^+i) q i?i+1), такие, что р = г + 5.
Поскольку 5 6а ((О3' X iVn-?41) fl^+Oi B0 множестве
(О3 X iV11) П Rj+i найдется вектор t Ф 5, такой,
что fw(t)=fw(s). Поскольку векторы s я t принадле-
принадлежат множеству jRj'+i, ни один из них, согласно индук-
индуктивному предположению, не опровергается ни для каких
h, h > / + 1. Поскольку * = (*!, . . ., ^п) е О3' X iVn-*j+1
и 5 6 О* X Л7™, имеем tt = 5f = 0 для всех t, t < /,
и ^j ^- 5j — 0-. Если ^ = S/, то существует число А*,
А^./ + 1, являющееся наименьшим из всех чисел /г,
таких, что th=£sh. Поскольку к >- / + 1, ни 5, ни £ не
опровергаются на числах /г, к <ch ^ п. Поэтому s опро-
опровергается на к, если th ^> ski я t опровергается на к, если
sk > tji- Поскольку при к >> / обе эти ситуации невозмож-
невозможны, имеем £/ > Sj и, следовательно,
e. вектор s опровергается на /.
Заметим теперь, что г £ Nj X.0n~\ и векторы s и t
принадлежат множеству (У X Nn~\ Поэтому fw (г +, s) =
= fw(r)fw(s) и fw(r + t) =fw(r)fw(t). Поскольку
fw (s) = fw (*), имеем fw (r + s) = /w (r + *). Очевидно,
гг + ^ = ^i + 5i ПРИ * < /» H0 ri + ^ > О + sj' п°сколь-
КУ tj > sj- Таким образом, для того чтобы доказать, что
р опровергается на /, достаточно установить, что р не
опровергается ни на каком /г, h > /. Допустим, что
2§б Гл. 6. Существенная неопределенность
р опровергается на некотором /г, h >> 7. Тогда найдется
вектор q £ Nn, такой, что fw (q) = /„, (р), дг = рг для
всех .£, 1 ^. i < /г, и дЛ >.Ph- Поскольку р = г + s,
г £ NJ X 0п-] hs60j X Arn~J, имеем рг = s, для всех г,
/ +. 1 < i < w. ' Рассмотрим вектор г/ = (г/ь . . ., г/п) g
6 0J X iVa"J с компонентами yt = О для всех £, 1 ^ i ^ /,
и 2/г = 9i Для всех h 7 + 1 ^ & ^ и. Поскольку rt — pi =
— qt для всех г, 1 ^ ^ ^ / << /г, и rf = 0 для всех £,
7 + 1 ^ J ^ п, имеем q = г + У- Более того,
fw ir)fw (s) = /ы, (г + 5) =/„, (p)=fw (q) =fw(r + У) =
= fw (r) fw (у) и, следовательно, fw (s) = fw (у). Далее,
Ул = Qh> Ph = *л, У« = *i = 0 для всех t, 1 < t < 7,
и ^/i ~ Qi — Pi — si Для всех ^ 7 + 1 <C ^ < ^' ПОЭТОМУ S
опровергается на некотором к, к ^> h, что противоречит е.
Итак, р опровергается на /.
Допустим теперь, что некоторый вектор р = {р\, ...
• • ч Рп) 6 Лт опровергается , на /. Обозначим через А
множество всех векторов z = (zb . . ., zn) (iNn, таких,
что fw (z) = fw (p), z^ = рг для всех i, 1 < i < 7, и z^ >
>> Pj. Множество А, очевидно, непусто. Поскольку А <=
^ fw (fw (p)), -4 конечно. Пусть q = (g4,. . . ., gn) =
- max {г/ I у е А} и * = ft, . . ., tn) 6 O^1 X ЛГ1"^1
есть вектор с компонентами tt = 0 для всех Z, 1 ^ i «< 7,
^ = #7 — Pj и ^ =.#* для всех I, ] <C i -^.п. Пусть
г — (гь • • ч гп) 6 ^J X 0п-;? есть вектор с компонентами
Гс — ^г Для всех h 1 ^ ^ < 7\ О = Ру» Гг — 0 ДЛЯ ВСвХ
U'<t<w. Тогда g = г + * и/„, (?) - /„, (г) >< /„, (t).
Рассмотрим вектор s — ft, . . ., 5n) £ (У X Л7''1 J с ком-
компонентами st = 0 для всех £, 1 ^ i <^ 7, и si = J^i Для
всех £, j <C i <С п- Поскольку р^ = д^ для всех ^,
1 < i < 7, то р = г + 5 и /^ (р) = /„, (г) fw E). Равен-
Равенство fw(p)=fw (q), очевидно, влечет за собой равенство
fw (в) = fw @- ПОСКОЛЬКУ ^ = дг — р7- > 0 = Sj, ТО
*# 5.
Чтобы доказать, что р = г -\- s £ Tj, достаточно убе-
убедиться в том, 4to.s£Sj. Согласно построению, s £0J x Nn~^
и £ £ (У X iVa-J+1. Нам осталось показать, что векторы
s и t принадлежат множеству Rj+i, ибо в этом слу-
случае s 6 а ((О' X Nn~j+1) f\Rj+i)j и следовательно, 5 £ £,-.
Допустим, что либо 5, либо £ не принадлежит множе-
множеству Rj+i. Тогда, согласно индуктивному предположе-
в.2. Ограниченные существенно неопределенные КС-языки 291
нию, либо t, либо s опровергается на некотором /г, h ^>
^> / + 1 и, следовательно, либо s, либо t принадлежит
множеству Th. Поскольку h >- / + 1, имеем г £ Nh x 0n~h.
Согласно определению Th, если х £ Th и г/ £ Л^ X 0п~\
то х ~\- у £ Th. Поэтому либо q = г + t 6 2\, либо
р = г + 5 6 ?V Тогда, согласно индуктивному пред-
предположению, либо р, либо q опровергается на h. Но р
опровергается на / и / < /г. Поэтому g опровергается на h.
Таким образом, существует вектор х 6 N71, такой, что
fw Й = fw (Я) = fw (Р), ^г = ?i Для всех i, 1 < i < /г,
и жЛ > дЛ. Но Xj = дг = pi для всех t, 1 <; i < / < /г,
и х; = qj> Pj- Отсюда следует, что х £ А. Последнее,
однако, невозможно, поскольку q <Cf x и в то же время
q = max {у \ у £ А}. Итак, векторы s и t принадлежат
множеству Rj+i', тем самым доказательство леммы закон-
закончено.
Используя только что полученный результат, мы дока-
докажем теперь следующую лемму.
Лемма 6.2.7. Пусть w = (шь . . ., wn) — упоря-
упорядоченная система п цепочек. Тогда найдется регулярное
множество R ^ Nn, такое, что fw (R) = w\ . . . w*
и отображение fw является на R взаимно однозначным.
Д о к а зательство. Пусть ii <; . . . < iT —
индексы всех непустых цепочек системы (шь . . ., wn)>
Если г — 0, т. е. все цепочки и;4, . . ., wn пусты, то
лемма верна тривиальным образом. Предположим, что
г >> 0. Рассмотрим упорядоченную систему цепочек у =
— (Wi , . . ., wir). Согласно лемме 6.2.6, существует
регулярное множество R' ^ Nr, такое, что fy (Rr) =
= Wi± . . . ivfr = wl . . . Wn и отображение fy является на
множестве R' взаимно однозначным. Пусть R есть
множество всех векторов (ри . . ., рп) g Nn, таких-, что
Pi = 0 для всех i, отличных от iu . . ., ir, и
(pin- • м Pir) dR- Множество Д, очевидно, является регу-
регулярным. Пусть / есть отображение Nn на Nr, такое, что
/ (Р) = (Рп, • ■ -, Pir)- Тогда / (R) = R', fw = fyf и ото-
бражение / является взаимно однозначным на множестве
R. Таким образом, fw (R) = fyf (R) = fy (R') = w* . . . w*,
а отображение fw на множестве R является взаимно одно-
однозначным.
292 Рл. 6. Существенная неопределенность
Лемма 6.2.8. Пусть w = (wu . . ., wn) — упорядо-
упорядоченная система п цепочек и М — подмножество множества
iv* . . . wn, такое, что множество fu1 (M) представимо
в виде объединения конечной системы попарно непересе-
непересекающихся линейных множеств, каждое из которых имеет
линейно независимую расслоенную систему периодов. Тогда
найдется множество F e Nn, также являющееся объеди-
объединением конечной системы попарно непересекающихся линей-
линейных множеств, каждое из которых, имеет линейно незави-
независимую расслоенную систему периодов, и такое, что
fw(F) = M, причем отображение fw является на множе-
множестве F взаимно однозначным.
Доказательство. Рассмотрим множество R из
леммы 6.2.7. Согласно лемме 6.2.3, множество F =
= fw1 (M) П R является объединением конечной системы
попарно непересекающихся множеств, каждое из которых
имеет линейно независимую расслоенную систему перио-
периодов. Далее, ясно, что fw (F) = fw (fu1 (M)[)R). Нако-
Наконец, поскольку F ^ R и отображение fw взаимно одно-
однозначно на R, fw взаимно однозначно на F.
Лемма 6.2.9. Пусть w = (wx, . . ., wn) — упорядо-
упорядоченная система п цепочек в алфавите 2 и множество
F <=: Nn является объединением конечной системы попарно
непересекающихся линейных множеств, каждое из которых
имеет линейно независимую расслоенную систему периодов.
Тогда, если отображение fw является на множестве F
взаимно однозначным, то fw (F) является определенным
К С-языком.
Доказательство. Пусть а = (аь . . ., ап) —
система попарно различных символов, не принадлежащих
алфавиту 2. Согласно теореме 6.1.1, язык fa (F) порож-
порождается некоторой определенной КС-грамматикой G' =
— (V, {ai, . . ., ап), Р', о). Без потери общности можно
считать, что V [\ S = 0. Пусть Р = Р' \] {at -> wt ;
1 ^ i ^ п) и g — гомоморфизм, такой, что g (at) = wt
для каждого i, I <^ i ^ п. Тогда gfa = fw и КС-грамма-
КС-грамматика G = (F|J2, 2, Р, а) порождает язык gfa (F) =
— fw (F)' Поскольку отображение gfa — fw является
на множестве F взаимно однозначным, отображение g
6.2. Ограниченные существенно неопределенные КС-языки 293
является взаимно однозначным на множестве fa (F). Пусть
a. о = г/о => У\ ==> • • • =Ф Уг»
b. а = 20 =Ф 2i =ф . . . =ф 2S
— выводы цепочки г/г = zs £ L (G).
Поскольку Ff|S = 0, можно считать, что в этих
выводах ни одно правило вида аъ -> и;; не применяется
раньше некоторого правила из множества Р'. Поэтому
существуют такие к и т, что правила, применяемые на
шагах yt =ф yi+u 0<i<& — 1, и 2^zi+1, 0</<
^ т — 1, принадлежат множеству Р', а правила, приме-
применяемые на остальных шагах этих выводов, имеют вид
at->- wt. Тогда цепочки yk и zm принадлежат множеству
fa (F) и g (yk) = yr = zs = g (zm). Поскольку отображе-
отображение g является взаимно^ однозначным на множестве
/а (F), имеем yk = zm. Но КС-грамматика G' является
определенной, поэтому выводы а =ф yi =ф . . . =^ у и
и а =ф Zt =ф . . . =ф 2т производятся одним и тем же дере-
деревом вывода. Отсюда следует, что выводы а и b также про-
производятся одним и тем же деревом вывода, так как в выво-
выводах yk =ф . . . =ф уГ и zm =ф . . . =^> zs применяются лишь
правила типа аг-+ wt. Таким образом, КС-грамматика G
является определенной.
Из лемм 6.2.1, 6.2.8 и 6.2.9 вытекает
Теорема 6.2.1. Пусть w = {wu . . ., wn) —
упорядоченная система цепочек. КС-язык М е w\ . . . w*
является существенно неопределенным тогда и только
тогда, когда множество fa1 (M) не может быть представ-
представлено в виде объединения конечной системы попарно непере-
непересекающихся линейных множеств, каждое из которых имеет
линейно независимую расслоенную систему периодов.
Имеются существенные трудности, не позволяющие
обобщить полученное необходимое и достаточное условие
существенной неопределенности на случай произвольных
КС-языков.
Открытые проблемы. 1. Существует ли алгоритм, позволяющий
по произвольному ограниченному КС-языку определять, является
ли он существенно неопределенным (или, что то же самое, алгоритм,
определяющий по произвольному полулинейному множеству
L с JVn, является ли оно объединением конечной системы попарно
непересекающихся линейных множеств, каждое из которых имеет
линейно независимую расслоенную систему периодов)?
294 Гл. 6. Существенная неопределенность
2. Верно ли, что для всякого существенно неопределенного
КС-языка М существует ограниченное регулярное множество
w* ... w*, такое, что КС-язык М П w* . . . w* тоже является
существенно неопределенным?
3. Найти характеристику существенно неопределенных (или
определенных) ограниченных КС-языков в терминах МП-автоматов.
Упражнения 6.2
1. Доказать следствие 6.2.1.
2. Показать, что для всякого конечного преобразователя S
н всякого регулярного множества U множество
{z | 31 г, G U(S{y) = z)}1)
является регулярным [GUI].
3. Показать, что для всякого конечного преобразователя S
и всякого регулярного множества U множество
{у£ U\Vz£(U- {у}) [S (у) Ф S (z)]}
является регулярным [GUI].
4. Найти множество {р £ N3 \ р является ^-максимальным}
для случая w = (baba, ba, ca).
5. Найти множество {р £ iV4 | p является ^-максимальным}
для случая w = <62, а, Ь, Ъа).
6. При доказательстве леммы 6.2.9 было показано, что если
М — определенный КС-язык и / — гомоморфизм, взаимно одно-
однозначный на М, то КС-язык / (М) является определенным. Доказать
более общий факт: если М — определенный КС-язык и S — конеч-
конечный преобразователь, осуществляющий отображение, взаимно одно-
однозначное на множестве М, то КС-язык S (М) является определенным
[GU 2; На 2].
7. Будем для краткости называть кл-множеством всякое под-
подмножество множества N2, являющееся объединением конечной
системы попарно непересекающихся линейных множеств, каждое
из которых имеет линейно независимую систему периодов. Доказать
каждое из следующих утверждений [GU 2; На 2].
а. Пусть с0, . . ., сг £ iV2, г >- 1, и Р с N2 есть линейно неза-
независимая система векторов. Пусть, далее, Cj £ L (cf, P) тогда и толь-
г
ко тогда, когда / = i, 0 < i, j < г. Тогда L (с0; Р) — U L (ct; P)
есть кл-множество.
х) Запись 3UP (x) означает «существует единственное
такое, что Р (я)».— Прим. ред,
6.3. Нераспознаваемость существенной неопределенности 295
t
b. Пусть В = U L (ct; Р) с N2, где Р с JV2 — линейно неза-
независимая система векторов. Тогда Б есть кл-множество.
c. Пусть А, В с JV2 — линейные множества, каждое из кото-
которых имеет линейно независимую систему периодов. Тогда А [\ В
есть кл-множество.
d. Пусть А ((О, 0); Р) с JV2 и Р с TV2 — линейно независи-
независимая система векторов. Тогда iV2 — Л есть кл-множество.
e. Пусть А = L (с; Р) с JV2 и Р с JV2 — линейно независи-
независимая система векторов. Тогда iV2 — Л есть кл-множество.
f. Каждое полулинейное подмножество множества N2 является
кл-множеством. Поэтому всякий КС-язык Lc^w^w*, где w\, w<i—
некоторые цепочки над алфавитом 2, является определенным.
6.3. Алгоритмическая неразрешимость проблемы
распознавания существенной неопределенности
В этом разделе будет установлена алгоритмическая
неразрешимость проблемы распознавания существенной
неопределенности в классе всех КС-языков. Попутно
будет описано некоторое частное семейство существенно
неопределенных КС-языков.
Лемма 6.3.1. Пусть 2 = {а, Ъ). Какова бы пи
была цепочка w £ 2*, множество
Mw = {albwbalbaj \ i, j > 1} [) {albwbajbaj \i, j> 1}
является существенно неопределенным К С-языком.
Доказательство. Множество Мw является,
очевидно, КС-языком. Пусть существует такая цепочка w,
что язык М w является определенным. Рассмотрим упоря-
упорядоченную систему а = (a, bwb, а, 6, а). Согласно теоре-
теореме 6.2.1, множество /й1 (Mw) может быть представлено
в виде объединения конечного числа попарно непересе-
непересекающихся линейных множеств Lu . . ., Lk, каждое из
которых имеет расслоенную линейно независимую систе-
систему периодов.
Пусть Lj есть одно из этих линейных множеств, с —
= (си . . ., с5) — его предпериод и z = (zu . . ., z5) —
произвольный период множества Lj. Ясно, что в z могут
быть отличны от нуля лишь компоненты Zi, z3 и Zr0. Поэтому
для удобства мы будем обозначать вектор z через
fa | %г I z5). Допустим, что zx ф zz. Для любого п ;> 1
296 Гл. 6. Существенная неопределенность
вектор с -\- nz принадлежит Lj. Поэтому для любого п
либо Ci + nzt = с3 -\- nz3, либо с3 + nz3 = сь + nz5. Для
тех п, для которых выполняется первое равенство, имеет
место z3 ~ zt + (^1 — с3)/тг. Поскольку z4 Ф z3, существует
не более одного числа п, удовлетворяющего последнему
равенству. Отсюда следует, что для любого п имеет место
равенство z3 = z5 -f- (с5 — с3)/п, следовательно, с3 = с5
и z3 = z5. Таким образом,
(#) если вектор z = (zb . . ., z5) является периодом
множества Lj, 1 ^ / <^ к, то либо zt = z3, либо z3 = z5.
Пусть у = (Уи • • м 2/б) — вектор, принадлежащий
некоторой расслоенной системе периодов множества Lj.
По крайней мере одна из компонент уи у3 и у5 должна
быть равна нулю. Поэтому элементы расслоенной системы
периодов любого множества L7-, 1 ^ / ^ к, могут быть
одного из следующих четырех типов: (d\d\O), @|0[d),
(O\d\d), (d|0|0).
Пусть т — наибольшая из компонент предпериодов
множеств Lj, 1 ^ / ^ к. Пусть Pj означает (линейно неза-
независимую) систему периодов множества Lj. Обозначим
через Н множество таких индексов /, 1 ^ j ^ /с, что мно-
множество Pj содержит векторы у' = (у[, . . ., у'ь), у" —
= (г/;, . . ., yl) и у'" = (у";, . . ., г/;") с компонентами
у[ > 0, yl > 0 и у» > 0. Если q = (qu . . ., g5) 6 /a1 (Mw)
и при этом qt >> т, q3> m, q5 >> т, то найдется / g Я,
такое, что g 6 Lj. Обозначим через Hi множество таких
7 6 ^» чт0 Для некоторого d~£> 0 множество Pj содержит
вектор (d | d \ 0), и через Я2 — множество таких / 6 Я,
что для некоторого е >> 0 Р7- содержит вектор @ | ^ | ^).
Тогда H = Hi[]H2- Предположим, что найдется /,
1 ^. j ^ к, такое, что / € #i П ^2- Тогда множество Pj
содержит векторы (d \ d | 0) и @ | е | е), где d, e > 0, что
противоречит (Не). Таким образом, Hi[\H2= 0.
Обозначим через R множество всех чисел d^ 0, таких,
что для некоторого j £ Н множество Pj содержит вектор
(d | d | 0) или @ | d | d). Пусть р есть произведение всех
чисел из /?. Множество /й1 (Mw) содержит вектор х =
= (иг+р + 1|1»иг+Р + 1,1,/га+Р + 1)- Поскольку
тю- + р + 1 > т» найдется-г 6 ^^ такое, что х £ Lr; r при-
принадлежит либо 1/j, либо Я2. Предположим, что г ^ Д"^
6.3. Нераспознаваемость существенной неопределенности 297
Поскольку и = (т -\- р -\- I, 1, т -\- I, 1, m + 1) €
£ /а1 (Af „,), имеем и £ Lt для некоторого t £ Н; t при-
принадлежит либо #ь либо Н2. Если £ 6 #ь то Pt содержит
вектор у = (d | d | 0), где d >> 0. Поэтому вектор и + г/ =
= (/w + p + d + l, 1» тга + d + 1, 1, w + 1) принадле-
принадлежит множеству Lt. Поскольку и + у £ /й1 (Afw), имеем
/^ cjz /^ (Mw), чего быть не может. Допустим, что t £ Я2.
Тогда Pt содержит вектор у = @ | е | е), где е>0 и е
есть делитель р. Отсюда следует, что и + (pie) v = х £ Lt.
Поскольку Lr (]Lt = 0 и в то же время х ^ Lr ж х ^ Lu
имеем г = t. Таким образом, Н1[)Н2Ф 0, что неверно.
Итак, г g Д. Аналогичные рассуждения показывают, что
г g J¥2; это доказывает лемму.
Темы для исследования. 1. Найти какое-либо обширное семей-
семейство определенных КС-языков. (Примерами таких семейств являют-
являются семейство регулярных множеств, семейство детерминированных
КС-языков, семейство КС-языков, содержащихся во множестве
м>*м>2» гДе "'i0^ — некоторые цепочки.)
2. Найти операции над КС-языками, сохраняющие свойство
существенной неопределенности (два примера операций такого рода
имеются в упр. 6.3.4 и 6.3.5).
Открытая проблема. Существуют ли конечный преобразова-
преобразователь S и существенно неопределенный КС-язык М, такие, что
S [ S'1 {М)\ = М и КС-язык S'1 (М) является определенным?
Теперь мы в состоянии дать решение нашей основной
проблемы.
Теорема 6.3.1. Пусть 2 — алфавит, содержащий
не менее двух символов. Не существует алгоритма, позво-
позволяющего по произвольной КС-грамматике G с основным
алфавитом 2 установить, является ли порождаемый ею
язык существенно неопределенным.
Доказательство. Пусть а, 6, с — различные
символы и i — некоторое натуральное число. Будем счи-
считать, что а, Ъ (: 2. Обозначим через I цепочку аЫ и через
/ — гомоморфное отображение множества {а, Ь, с}* во
множество {а, Ь}*, определяемое соотношениями: / (с) =
= ЪаЪ, f (a) = ba2b, f (b) = ba3b. С каждой упорядочен-
упорядоченной системой х = (xi, . . ., хп) непустых цепочек в алфа-
298 Гл. в. Существенная неопределенность
вите {а, Ь} мы будем связывать множество
M(x)={fCii)...f(ik)f(c)f{xih)...
Множество М (х) <= {а, &}* является КС-языком и порож-
порождается определенной КС-грамматикой Gx = ({ох, а, &},
{а, Ь}, Рх, а*), где Рх состоит из правил ox-^f(l)f(c)f (xt)
и ах -> / (?) ах/ (я*), 1 <; i <; п. Очевидно, что для
любых упорядоченных систем х = (хь . . ., яп) и г/ =
= (*/ь • • •» Уп) непустых цепочек в алфавите {а, Ъ)
множество М (х)[\М (у) непусто тогда и только тогда,
когда найдется последовательность индексов iu . . ., ik,
такая, что х^ . . . %ik = yi1 • . • y\k- Таким образом, к проб-
проблеме непустоты множества М (х) fj M (у) сводится проблема
соответствий Поста, и, следовательно, первая из этих
проблем алгоритмически неразрешима. Доказательство
теоремы будет завершено, если мы покажем, что множество
М (х, у) = U а1ЪМ (х) Ъа1Ъа1 [} U а1ЪМ (у) bajbaj
есть КС-язык? который является существенно неопреде-
неопределенным тогда и только тогда, когда М (х) П М (у) Ф 0.
Рассмотрим КС-грамматику GXty = (VX)y, 2, Рх,у, &х,у),
где FXfy = SU{£i, £2* 1з, ^, ау, ах,у} и Рх>у =
= Рж U Py U {^х, у ->■ aJ-iabJ-2, ах, у ->• |2ЬауЬа|3а, 52->■ aS2»
52 -> a, Et -»- fcaxb, £4 -> agta, l3 -> Ь, £3 ^ «Ьа}. Грам-
Грамматика Gx,у порождает язык М (х, у). Если М (х)[\
[\М (у) = 0» то КС-грамматика Gx, y является, очевид-
очевидно, определенной. Предположим, что М (х)[\М (у) Ф 0
и М (х, у) — определенный КС-язык. Пусть w ^ М (х)[\
[\М (у). Поскольку множество a*bwba*ba* является
регулярным, множество
А = М (х, у) П a*bwba*ba* =
= {dxbwbaxba] \ i, / > 1} U {albwbajbaj \i, j> 1}
является, согласно теореме о пересечении, определенным
КС-языком. Однако по лемме 6.3.1 КС-язык А является
существенно неопределенным. Таким образом, М (х, у)
есть существенно неопределенный КС-язык в том и только
6.3. Нераспознаваемость существенной неопределенности 299
в том случае, если М (х) П М (у) Ф 0, что и завершает
доказательство теоремы1).
Тема для исследования. Найти какие-либо обширные семейства
КС-языков, для которых проблема существенной неопределенности
является алгоритмически разрешимой.
Упражнения 6.3
1. Пусть 2 = {а, Ь, с, d, e). Показать, что каждый из КС-язы-
КС-языков а, Ь, с, b является существенно неопределенным.
a. {aWc* И, / > 1} U {aWd \ i, / > 1} [ХШ].
b. {aWc* li, / > 1, KOU {а*Ъ*ск \ i, /> 1, к </} [На 2].
c. {аЧЭсЧк И, /, к > 1} U {аЩсЧз И, /, Л > 1} 2) [Ра 1].
d. \агЪгсЫ^ек | t, /, /с > 1} (J {агЫсЫкек М, /, Л > 1} [HU].
2. Показать, что множество a*&*c*d*e* — Af, где ЛГ — язык
из упр. Id, является КС-языком [HU]. (Указание: предварительно
следует доказать, что a*b*c*d*e* — М = Mi U M2 U ^з» где
Mi= {alWckdmen \ j Ф к, i-j-к ф j + m}, М2 = {а^^йтеп | к ф т,
j + т ф к + п} и М3= {a}Wckdmen \ i ф /, m ф гг}, а затем пока-
показать, что каждый из языков ЛГ1? М2, М3 является контекстно-
свободным.)
3. Доказать, что существуют существенно неопределенный
КС-язык М и гомоморфизм /, переводящий каждый символ в некото-
некоторый символ и являющийся взаимно однозначным на М, такие,
что КС-язык / (М) является определенным [GU 2]. (Указание:
использовать упр. Id и 2.)
4. Пусть S = (К, S, А, б, Л, р^ есть конечный преобразо-
преобразователь, задающий взаимно однозначное отображение 21* в А*.
Показать, что если М с S* —существенно неопределенный
КС-язык, то таковым является и S (M) [GU 2] (Указание: исполь-
использовать упр. 6.2.7.)
5. Показать, что для любого существенно неопределенного
КС-языка М и любой цепочки w языки wM и Mw также являются
существенно неопределенными [GU 2].
6. Показать, что ни одна из операций а, Ь, с, d не сохраняет
свойство КС-языка быть существенно неопределенным.
а. Объединение с регулярным множеством.
г) Заметим, что из всего содержания данной главы в доказа-
доказательстве теоремы 6.3.1 фактически используются только лем-
леммы 6.1.2, 6.2.1 и 6.3.1, не зависящие от остального материала.—
Прим. ред.
2) Язык с был первым примером существенно неопределенного
КС -я зык а»
300 Гл. 6. Существенная неопределенность
b. Пересечение с регулярным множеством.
c. Умножение на множество, состоящее из двух цепочек
[GU 2].
d. Итерация.
Открытая проблема. Найти «простое» доказательство сущест-
существенной неопределенности КС-языка {a}Wei \ i, j ^> 1} U
U {агЪ{с1 | £, / ]> 1}, не использующее аппарата, разработанного
в настоящей главе.
6.4. Историческая справка
Весь материал настоящей главы взят из [GU 1], однако
первый пример существенно неопределенного КС-языка
приведен в [Ра 1] 1).
г) Первое доказательство теоремы 6.3.1 (основанное на
несколько иной технике) опубликовано в [Гл 1]. Следует подчер-
подчеркнуть, что по существу и те методы, которыми * пользуется
автор в настоящей главе, и те, которые применены в [Гл 1], восхо-
восходят к [Ра 1]. Впоследствии Грейбах [Gr 10] опубликовала новое,
существенно более простое доказательство.— Прим. ред.
ПРИЛОЖЕНИЕ
ДОКАЗАТЕЛЬСТВО ТЕОРЕМЫ 5.6.2
Нам понадобится ряд вспомогательных результатов
алгебраического характера. Прежде всего мы покажем,
что произвольное полулинейное множество является объе-
объединением конечного числа линейных множеств, имеющих
линейно независимые системы периодов. Затем докажем,
что дополнение линейного множества, имеющего линейно
независимую систему периодов, полулинейно. Наконец,
будет доказано, что если X и Y — полулинейные множе-
множества, то X — Y является пересечением конечного числа
множеств, одно из которых есть X, а остальные являются
дополнениями подходящих линейных множеств с линейно
независимыми системами периодов.
Лемма П.1. Каждое полулинейное множество яв-
является объединением конечного числа линейных множеств,
имеющих линейно независимые системы периодов.
Доказательство. Достаточно показать, что
а. каждое линейное множество является объедине-
объединением конечного числа линейных множеств, имеющих
линейно независимые системы периодов.
Очевидно, а справедливо для линейного множества
с одноэлементной системой периодов. Предположим, что а
имеет место для всех линейных множеств, допускающих
систему периодов, содержащую I периодов, где Z<m.—1
и tfi>2. Пусть X~L(cq\ /?ь ..., рт). Предположим, что
Ри •••> Рт линейно зависимы. Тогда мы можем пере-
перенумеровать /?!, . . ., рт таким образом, что найдутся
неотрицательные целые числа tu 1<г<иг, такие, что для
k т
некоторого /с, 1</с</гг, 2 ^(Pi ~ 2 ^гРг- Для каждого /,
■1 fe-M
k<Cj<m, полагаем Cj = {co+ ipj j 0< £< tj — 1}, Pj =
= {Pu Pz, •••, Pj-u Pj+i, •••, Рт}- Тогда множество
302 Приложение
Zj= U L (с0 + ipj\ Pj) является объединением конечного
г=0
числа линейных множеств, каждое из которых допускает
систему периодов, содержащую не более т— 1 элемента.
По индуктивному предположению утверждение а спра-
справедливо для каждого из множеств L (со+ Ф/> Pj)' Осталось
показать, что Х= (J Zj.
j
Очевидно, Cj^X. Поскольку Pj состоит из периодов
множества X, имеет место L (Cj\ Pj) ^ X. Итак, U Zj s X.
Докажем обратное включение. Пусть х£Х. Тогда х =
т.
^]i для некоторого (sl5 . ..,sm)giVm. Предполо-
Предположим, что Sj^-tj для каждого /, ]'>к. Тогда
k m k m
х = с0 + S stpi + 2 SiPt + 2 UPi — 2 UPi
1 fc+1 1 k+1
h m
(поскольку 2 ttPi = 2 tiPt)- Итак,
1 ft+1
fe m
b. a: = co+2(Si + ^)Pi+ 2 (*г—1г)рг.
l fc+i
Все коэффициенты при pt в b принадлежат множеству JV,
и при этом Sj — tt<CSi для ^, k<Ci<Cm. Описанная про-
процедура повторяется до тех пор, пока для некоторого /,
/>&4-l, коэффициент при Pj не станет меньше tj. Итак,
т
мы моя^ем считать, что х = со+ 2 5гРь s^JV для каждого £
1
и для некоторого /, />>&, имеет место 0<Sj<£j. Тогда
вектор
принадлежит множеству Zj, так как co-\-SjPj£Cj и при
Итак, Х^ U Zj, так что Z=U ^.
j
j>h j>h
Лемма П.2. Пусть {^ 11<г<тг} — линейно незави-
независимое подмножество множества Nn.
а. Существует натуральное число к@), удовлетво-
удовлетворяющее следующему условию', для каждого у £ Nn суще-
Доказательство теоремы 5.6.2 303
ствует последовательность к, £А, ..., tn целых чисел
(не обязательно неотрицательных), таких, что 1<&<
( и ky = ^1
1
b. Пусть ку для каждого у £ Nn есть наименьшее нату-
натуральное число, для которого существуют (не обязательно
положительные) целые числа t^\ . .., tn\ такие, что
п
kyy = ^]tiJ)Xi. Если к—натуральное число, для которого
1
существуют целые числа tu ..., tn, такие, что ку =
п
= 2*^» то существует натуральное число р, такое,
1
что k = pky и для каждого i ti = ptp\
Доказательство. Поскольку х1, ..., хп — линейно
независимые векторы, каждый вектор y^Nn является
линейной комбинацией векторов xt с рациональными коэф-
m
фициентами: у— 2 (hlsi)Xi, где tt и s^—целые числа для
1
каждого i и Sf>0. Пусть k = Si .. . sn=^0. Тогда
п
!• ку = 2 tixti гДе к, tu ..., tn—целые числа и &ХЗ.
1
Мы можем считать, что
2. числа к', ti, . . ., tn являются взаимно простыми.
(В противном случае равенство 1 можно сократить на
наибольший общий делитель этих чисел.) Чтобы дока-
доказать а, достаточно показать, что существует лишь конеч-
конечное число чисел к, удовлетворяющих условиям 1 и 2.
Пусть числа к, tu . . ., tn удовлетворяют условиям 1
и 2. Пусть, кроме того, у — (yt, . . ., уп) и для каждого i
х% = (хц, . . ., xin). Тогда 1 становится системой
п уравнений
3.
304 Приложение
Обозначим через А определитель
Поскольку система уравнений 3 имеет решение относи-
относительно переменных tt, для каждого i имеет место равен-
равенство tt = ftAj/A, где Aj — некоторый определитель (яв-
(являющийся, очевидно, целым числом). Итак, к является
делителем каждого из чисел ttA. Пусть А* — наибольший
общий делитель чисел к и А. Тогда к = к$2. Итак, для
каждого i имеет место кгк2Аг = ttA, так что k2At = ггА1к^
Поскольку А делится на ки к2 является делителем каж-
каждого из tt. Отсюда к2 = 1, так как числа A, tu . . ., tn
взаимно просты. Итак, к = &* является делителем числа А;
но число делителей числа А конечно.
Ь. Поскольку к^-ку, существуют числа р и г, р>1,
0<г<^, такие, что к = кур-\- г. Тогда гу = ку—куру =
п п п
— ^tiXi — ^pt\y)xi==y)(ti--pt\y))xi. Из минимальности
1 1 1
числа ку и того, что г<С,ку, следует, что г = 0. Поскольку
xt линейно независимы, для каждого i имеем ^ — pt\y) = Of
так что tt = pt^K
Лемма П.З. Пусть т — линейная функция, осуще-
осуществляющая отображение множества Nn во-множество Nm.
Если Y — полулинейное подмножество множества 7Vm,
то т (У) является полулинейным подмножеством множе-
множества Nn.
Доказательство. Пусть \i — функция, осу-
осуществляющая отображение множества Nn во множе-
множество Nn X Nm и определенная равенством \i (х) = х X т (х).
Поскольку \х (х + х') = (х + х') X т (х + #') =
= (ж + х')Х(т (х);+ t (х')) = (хХх (х)) + (х' X т (хг)) =
= [1 (х) + ^ (#')» функция |х линейна. Согласно лемме
5.6.1, множество [i (Nn) является полулинейным под-
подмножеством множества Nn X Nm. Поскольку У есть
полулинейное подмножество множества N171, множество
Nn X У является полулинейным подмножеством мно-
множества Nn X Nm. По теореме 5.6.1 \i (Nn) П (Nn X У)
Доказательство теоремы 5.6.2 305
есть полулинейное подмножество множества Nn X Nm.
Пусть П — функция, осуществляющая отображение мно-
множества Nn X Nm во множество Nn и определенная равен-
равенством П (х X у) = х. Тогда П есть линейная функция и
П (ц (Nn) П (Nn X У)) - т-1 (У).
Согласно лемме 5.6.1, множество U ([i (Nn) (] (Nn X У)),
а следовательно, и множество т (У) полулинейно.
Лемма П.4. Пусть X — линейное подмножество
множества Nn, имеющее линейно независимую систему
периодов и предпериод 0п. Тогда множество Nn — X полу-
полулинейно.
Доказательство. Пусть X допускает линейно
независимую систему периодов хи . . ., Xji0). Тогда
7 @) <^ п и в системе векторов е<п\ . . ., г{п\ где для
каждого i все компоненты вектора 8|П), кроме £-й, кото-
которая равна 1, равны 0, имеется (п — j @)) векто-
векторов — назовем их xj@) + i, . . ., хп,— таких, что систе-
система Х[, . . ., хп линейно независима. По лемме П.2
существует число к @) ^ 1, удовлетворяющее следующе-
следующему условию: для каждого у £ Nn существует число к
A ^ к -^ к @)) и (не обязательно положительные) целые
п
числа tt, такие, что ку = 2 t&i- Пусть обозначения ку
и 4У) имеют тот же смысл, что в лемме П.2.Ь..
Для каждого /с, 1 .<; к ^ к @), и каждого (в том числе
пустого) подмножества / множества {1, 2, . . ., п} опре-
определим функцию tfcj, осуществляющую отображение множе-
множества Nn X Nn в себя, следующим образом:
a. Tfci (» X (^i, ..., ^)) = {ку + 2 ^^) X
для любых г/, (^, ...,^N^n- Положим, далее,
b. K = {yxy\yeNn}.
Поскольку К = [I (Nn), где \х — линейная функция, осу-
осуществляющая отображение множества Nn во множество
Nn X Nn и определенная как [*> (у) = у X у, множество
306 Приложение
К — в силу леммы 5.6.1 — полулинейно. Согласно лем-
лемме П.З, множество %&} (К) является полулинейным под-
подмножеством множества Nn X Nn. %п\ (К) состоит из всех
векторов вида у X (tu . . ., tn) £ Nn X Nn, для которых
с. А#+2**я* =
Пусть Aj — множество всех векторов вида у х (£ь .. ., tn) £
^Nny(Nny таких, что tt>0 для всех i£I. (Если 1=0Г
то A^^xN71.) Тогда
d. 4f = L(Co;e?n)f . .., eB2nft))f
где Co=(coi, . ..,Со2Л), сОу = 1 для j-=n + i, i^I, и с07- = О
в противном случае. Итак, множество Л7 линейно и, сле-
следовательно, полулинейно. Согласно теореме 5.6.1, А2(]
П tfe/ (К) — полулинейное множество. Заметим, что множе-
множество Ах П тй (Z) состоит из всех у X (tu . . ., ^) g Л*п X Лгдг
удовлетворяющих условию с и таких, что ^>0 для всех
i£L Пусть П —линейное отображение множества Nn x N71
во множество Nn, определенное следующим образом;
П (у X (^i, .. ., tn)) = У- Тогда П (Aj П тй (if)) полулинейно.
Итак:
е. Wi= 2 ^(Ai[\tki(K))—полулинейноемно-
жество.
n
И7!'состоит из всех y^Nn., таких, что куу — ^
i@)
и 4У)<0 для некоторого t. Пусть у£Х, т. е. г/ = 2
1
(fi, ...,■^(О)NЛГ;(О)- Согласно лемме П.2Ь, y^Wu Сле-
Следовательно, X^Nn — Wu так что PFi^iV71 —X. Пусть
п
^! состоит из всех y£Nn, таких, что куу = У] ^гУ)^г и
1
4У)>0 для каждого i. Очевидно, Hi = Nn — Wx. Следова-
Следовательно, Xg^Hi. Тогда Nn — X = Wt [) (Hi — X). Осталось
показать, что множество Н^ — Х полулинейно.
Пусть для каждого Z, 1<^<гг, множество Dt состоит
из всех векторов у X (tu ..., tn) g Nn x Nn, таких, что
Доказательство теоремы 5.6.2 307
ti>0. Поскольку Dt = L D+]; е?п), ..., eB2nn)), множе-
множество Dt полулинейно. Поэтому, согласно теореме 5.6.1,
для каждого подмножества / множества {1, ..., тг} —{£}
множество Dt f| Aj f| т&} (К) полулинейно. Следовательно:
i-W2= U U • UiDiOAjOA
— полулинейное множество.
п
W2 состоит из всех у £ Nn, таких, что куу = 2 4v)#j
1
и ^у) > 0 для некоторого i, i>>/@). Очевидно, И^г ^
<^Nn — X. Пусть #2 = #1 — Т^г, т. е. Я2 состоит из всех
i@)
y£Nn, таких, что куу=У^Р1 t^Xi и 4^>0 для каждого i.
Тогда Nn — X = ^!UW2U№-X). Осталось показать,
что Н2 — Х полулинейно.
Для любых Л, /, где 1<А<й;@), 1</</@), обо-
обозначим через Bkj множество, состоящее из всех
НО)
yx(tu ..., tm) б Nn x NH°\ таких, что Лу = 2 ^жг и к
1
не является делителем числа tj. Покажем, что множество
Bhj полулинейно. Пусть Ekj состоит из всех
НО)
yx(tu ..., tm)£Nn X ЛГ;@), таких, что ку = 2 ^*-
1
Согласно лемме 5.6.3, существует алгоритм для нахожде-
нахождения конечного множества Ри, состоящего из всех мини-
минимальных элементов множества Ей — {0п+;@)}. Очевидно,
Еи = L @n+J@); Pk)- Итак, множество Ek полулинейно,
причем соответствующее множество периодов строится
эффективно. Пусть Fkj — множество, состоящее из всех
у X (*!, . .., ^@)) 6 Nn X Nm, таких, что tj не делится
на к. Тогда Fhj = L{Chj; Phj), где
Ckj = {0(n+j@)) x и X 0j@)-j 11< и < к - 1}
n+3@)) r.p(n+i@)) p(n+j(O)) p(n+j@))
+ji ^e+j e+jji e+j(O)
Итак, множество F^j полулинейно. Так как Bkj =
то Bhj~ полулинейное множество.
308 Приложение
Пусть IT — линейная функция, осуществляющая ото-
отображение множества Nn x Nj{0) во множество Nn и опре-
определяемая следующим образом: IT (у х (tu ..., £j<o))) = У-
Поскольку функция П' линейна и множество Bkj полу-
полулинейно, множество П' (Bkj) также полулинейно. Мы пока-
покажем, что Н2 — Х = U W (Bkj). Этим будет
доказано, что Н2 — X — полулинейное множество. Множе-
Множество U П' (Bkj) состоит из всех у(:Н2, таких, что ку =
Ко
НО)
= 3^^» гДе 1<&<&@) и хотя бы одно из чисел
*i, ..., fj(O) не делится на к. Пусть y^Uf(Bkj). Тогда
НО)
У=^1 (tijk)xti где £*>() для каждого i и одно из чисел
1 А
tjк не является целым. Ввиду линейной независимости
векторов хг не существует целых чисел tu . . ., tn, таких,
п
чтог/=2^1^1- Итак, у^Х, т. е. у£Н2—Х. Наконец,
предположим, что у£Н2 — Х. Поскольку у£Н2, имеет
НО)
место kyy = 4%tiy)Xi, где 4У) > 0 для каждого i. Если
1
ку = 1, то у£Х. Таким образом, ку^>1. Ввиду мини-
минимальности ку числа ку, tu ..., ^@) взаимно просты, так
что ку не является делителем хотя бы для одного из чисел
tu ..., fyo), скажем для ^@). Но тогда у £W (Bkyi{0)).
Следовательно, г/6 U 1Г(ЯА</). Итак, Я2—Х= U П'(^-)-
fe.i fe.i
Лемма П. 5. Если X — линейное подмножество
множества Nn, имеющее линейно независимую систему
периодов, то Nn — X есть полулинейное подмножество
множества Nn.
Доказательство. Пусть X — L (с0; хи . . ., х/)у
/ <;/г, с0 = (с01, . . ., сОп). Для каждого &, такого,
что cOj > 0, полагаем
Сг = {(ии ...,un)\uk = 0 для к Ф h 0<щ<С c0i}
и
Доказательство теоремы 5.6.2 309
где е|п) означает то же, что в лемме П.4. Множество
L (с*; Pt) полулинейно. Таким образом,
— полулинейное множество. Оно состоит из всех у £ Nnr
для которых не имеет места с0 ^ г/, так что W(] -X = 0.
Пусть Y = {у 6 Nn | с0 < у}. Поскольку Y = Nn — W
и W[\ X = 0, имеет место Nn — X = W U ((Nn —
— W) — X) = ТУ U (У — X). Осталось показать, что мно-
множество Y — X полулинейно.
Пусть / — взаимно однозначное отображение множе-
множества Nn на множество У, определенное следующим обра-
образом: / (у) = с0 -\- у. Для любых двух подмножеств С
и Р множества Nn имеет место равенство / (L (С; Р)) =
= L (/ (С); Р). Итак, Z ^ ДР полулинейно тогда и только
тогда, когда / (Z) полулинейно. Поэтому У — X тогда
и только тогда является полулинейным множеством,
когда множество
/-1 <у-х)= г1 (У) - /-1 (X) = JV» - /-1 (X)
полулинейно. Однако /-1 (X) = L @п; хь . . ., £/), так
что в силу леммы П.4 Nn — f'1 (X) — полулинейное
множество. Итак, множество f'1 (У — X), а следователь-
следовательно, и множество У — X полулинейно.
Теперь мы можем доказать теорему 5.6.2.
т
Согласно лемме П.1, Y=^\}Lj, где для каждого /
1
Lj — линейное множество, имеющее линейно независимую
систему периодов. Согласно лемме П.5, каждое из мно-
множеств Nn — Lj полулинейно. Отсюда в силу теоремы 5.6.1
следует, что множество
полулинейно.
БИБЛИОГРАФИЯ1)
fAB] Alt man E. В., Banerji R. В., Some problems
of finite representability, Information and Control, 8 A965),
251-263.
[Al] Altman E. В., The concept of finite representability,
Systems Research Center Report SRC 56-A-64-20, . 1964,
Case Institute of Technology.
[API] A m a r V., Putzolu G., On a family of linear gram-
grammars, Information and Control, 7 A964), 283—291.
[AP2] AmarV., Putzolu G., Generalizations of regular
events, Information and Control, 8 A965), 56—63.
[Ba] Banerji R. В., Phrase structure languages, finite
machines and channel capacity, Information and Control,
6 A963), 153-162.
[BGS] Bar-Hi 11 el Y., Gaifman C, Shamir E.,
On categorial and phrase structure grammars, Bull. Res.
Council Israel, 9F A960), 155—166.
[BPS] Bar-Hill el Y., Perles M., Shamir E., On
formal properties of simple phrase structure grammars,
Z. Phonetik, Sprachwiss. Kommunikationsforsch., 14, № 2
A961), 143-172.
[Br] Brainerd В., An analog of a theorem about context-
* free languages, Information and Control, 11 A967), 561—567.
fBrz] В r z о z о w s к i J. A., Derivatives of regular expressions,
/. Assoc. Computing Machinery, 11 A964), 481—494.
[BWW] Burks A. W., Warren D. W., Wright J. В.,
An analysis of a logical machine using parenthesis-free
notation, Mathematical Tables and Other Aids to Computation,
8 A954), 53-57.
[Can] Cantor D. G., On the ambiguity problem of Backus sys-
systems, /. Assoc. Computing Machinery, 9 A962), 477—479.
x) Работы в библиографии упорядочены по кодам, а не по
фамилиям авторов. Например, [Gru 5] предшествует [Gs 1]. Звез-
Звездочкой отмечены работы, добавленные при переводе книги.—
Прим. ред.
Библиография 311
[Car] Caracciolo A., Some remarks on the syntax of sym-
symbolic programming languages, Commun. Assoc. Computing
Machinery, 6 A963), 456—460.
[Ch]" Chomsky N., Context-free grammars and pushdown
storage, M.I.T. Res. Lab. Electron. Quart. Prog. Rept.,
65, 1962.
[Co] Cole S. N., Real-time Computation by Iterative Arrays
of Finite State Machines, doctoral dissertation, The Compu-
Computation Laboratory of Harvard University, Cambridge, Mass.,
August, 1964.
[Cu] Culuk K., Axiomatic system for pHrase structure
* grammars 1, Information and control, 8 A965), 493—502.
[Ell] E 1 g о t С. С, Decision problems of finite automata
design and related arithmetics, Trans. Am. Math. Soc,
98 A961), 21-51.
[E12] E 1 g о t С. С, Review of «A remark on finite transducers»,
IRE Trans. Electron. Computers, EC-11 A962), 802.
[EM] E 1 g о t С. С, M e z e i J. E., On relations defined by
generalized finite automata, IBM J. Res. Devel., 9 A965),
47-68.
[ER] Elgot С. С, Rutledge J. D., Operations on finite
automata, Proc. AIEE Second Ann. Symp. Switching Circuit
Theory Logical Des., Detroit, Mich., 1961, 129—132.
[Ev] E v e у R. J., The theory and application of pushdown store
machines, Mathematical Linguistics and Automatic Trans-
Translation, Harvard Univ., Computation Lab. Rept. NSF-10,
May, 1963.
[Fa] Fabian V., Structural unambiguity of formal langua-
languages, Czech. Math. J., 14, № 89 A964), 394-430.
[Fi] Fischer P. C., On computability by certain classes
of restricted Turing machines, Proc. Fourth Ann. Symp.
Switching Circuit Theory Logical Des., Chicago, 1963, 23—31.
[Fll] Floyd R. W., On the non-existence of a phrase structure
grammar for ALGOL 60, Commun. Assoc. Computing Machi-
Machinery, 5 A962), 483-484.
[F12] Floyd R.W., On ambiguity in phrase structure langua-
languages, Commun. Assoc. Computing Machinery, 5 A962), 526, 534.
[F13] Floyd R. W., Syntactic analysis and operator precedence,
/. Assoc. Computing Machinery, 10 A963), 316—333.
[F14] Floyd R. W., Bounded context syntactic analysis,
Commun. Assoc. Computing Machinery, 7 A964), 62—67.
[Ga] G a i f m a n H., Dependency systems and phrase structure
systems, Information and Control, 8 A965), 304—337.
312 Библиография
[GG] Gins burg S., Greibach S. A., Deterministic
* context-free languages, Information and Control, 9 A966),
620—648.
[GH 1] Ginsburg S., Hibbard T.N., Two theorems abo-
about regular bases of sets of words, System Development
Corp. Rept. TM-738/004/00, Sept. 4, 1963.
[GH 2] Ginsburg S., Hibbard T. N., Solvability of
machine mappings of regular sets to regular sets, /. Assoc.
Computing Machinery, 11 A964), 302—312.
[GHa] Ginsburg S., Harrison M. A., Bracketed con-
* text-free languages, /. of Computer and System Sciences, 1
A967), 1-23.
[GHI] Gray J. N., Harrison M. A., Ibarra О. Н.,
* Two-way pushdown automata, Information and Control, 11
A967), 30—70.
[GHU] Ginsburg S., Hibbard T. N., Ullian J. S.,
Sequences in context-free languages, III. J. Math., 9 A965),
321-337.
[Gi 1] Ginsburg S., An introduction to mathematical machine
theory, Addison-Wesley Publishing Company, Inc., Rea-
Reading, Mass., 1962.
[Gi 2] Ginsburg S., Examples of abstract machines, IRE
Trans. Electron. Computers, EC-11 A962), 132—135.
[GL] Gross M., L e n t i n A., Basic concepts of the theory
* of formal grammars, Paris, Gauthier-Villars, 1967.
[GP] G r if f i t hs T. V., Pe trick S. R., On the relative
efficiencies of context-free grammar recognizers, Air Force
Cambridge Res. Lab. Rept., January, 1965; revised version
in Commun. Assoc. Computing Machinery, 8 A965), 289—300.
(Grl] Greibach S.A., Inverses of phrase structure generators,
Mathematical Linguistics and Automatic Translation, Har-
Harvard Univ. Computation Lab. Rept. NSF-11, June, 1963.
[Gr2] Greibach S. A., Undecidability of the ambiguity pro-
problem for minimal linear grammars, Information and Control,
6 A963), 119-125.
[Gr3] Greibach S. A., Formal parsing systems, Commun.
Assoc. Computing Machinery, 7 A964), 499—504.
[Gr 4] Greibach S. A., A new normal-form theorem for con-
context-free phrase structure grammars, /. Assoc. Computing
Machinery, 12 A965), 42—52.
[Gr 5] Greibach S. A., The unsolvability of the recognition
* of linear context-free languages, /. Assoc. Computing Machi-
Machinery, 13 A966), 582—587.
Библиография 313
[Gr6] Greibach S. A., A note on pushdown store automata
* and regular systems, Proc. Am. Math. Soc, 18 A967),
263—268.
[Gr 7] Greibach S. A., A note on code sets and context-free
languages, Mathematical Linguistics and Automatic Transla-
Translation, Harward Univ. Computation Lab. Rept. NSF15,
August, 1965, II-1-II-5.
[Gr 8] Greibach S. A., A simple proof of the standard-form
* theorem for context-free grammars, Mathematical Linguistics
and Automatic Translation, Harvard Univ. Computation
Lab. Rept. NSF 18, August, 1967, II-l—II-4.
[Gr 9] Greibach S. A., An infinite hierarchy of context-free
* languages, Mathematical Linguistics and Automatic Trans-
Translation, Harvard Univ. Computation Lab. Rept. NSF 18,
August, 1967, 1-1—1-22.
[Gr 10] Greibach S. A., A note on undecidable properties
* of formal languages, Math. Systems Theory, 2 A968), 1—6.
[Gro] Gross M., Inherent ambiguity of minimal linear gram-
grammars, Information and Control, 7 A964), 366—368.
[GRo 1] Ginsburg sT, R о s e G. F., Some recursively unsolva-
ble problems in ALGOL-like languages, /. Assoc. Computing
Machinery, 10 A963), 29—47.
[GRo 2] Ginsburg S., Rose G. F., Operations which preserve
* definability in languages, /. Assoc. Computing Machinery,
10 A963), 175-195.
[GRo 3] Ginsburg S., R о s e G. F., A note on preserva-
* tion of languages by transducers, Information and Control,
12 A968), 549-552.
[Gru 1] Gruska J., On structural unambiguity of formal langu-
languages, Czech. Math. J., 15 A965), 283—293.
[Gru 2] Gruska J., Induction in formal languages. Some
properties of reducing transformations and of isolable sets,
Czech. Math. J., 15 A965), 406—414.
[Gru 3] Gruska J., Isolable and weakly isolable sets, Czech.
* Math. J., 16 A966), 76—90.
[Gru 4] Gruska J., On a classification of context-free languages,
* Kybernetika, 3 A967), 22—29.
[Gru 5] Gruska J., On sets generated by context-free grammars,
* Kybernetika, 2 A966), 483-493.
[GS 1] Ginsburg S., Spanier E. H., Quotients of context-
free languages, /. Assoc. Computing Machinery, 10 A963),
487—492.
[GS 2] Ginsburg S., Spanier E. H., Bounded ALGOL-
like languages, Trans. Am. Math. Soc, 113 A964), 333—368.
314 Библиография
[GS 3] G i n s b u r g S., S p a n i e r E. H., Semigroups, Pres-
burger formulas, and languages, Pacif. J. Math., 16 A966),
285-296.
[GS 4] G i n s b u r g S., S p a n i e r E. H., Mappings of langua-
languages by two-tape devices, /. Assoc. Computing Machinery,
12 A965), 423-434.
[GS 5] Ginsburg S., Spanier E.H., Finite-turn pushdown
* automata, SI AM J. Control, 4 A966), 429—453.
[GS 6] Ginsburg S., Spanier E. H., Bounded regular
* sets, Proc. Am. Math. Soc, 17 A966), 1043—1049.
[GS 7] Ginsburg S., Spanier E. H., Derivations-boun-
* ded languages, /. of Computer and System Sciences, 2 A968),
228—250.
[GUI] Ginsburg S., U 1 1 i a n J. S., Ambiguity in context-
free languages, /. Assoc. Computing Machinery, 13 A966),
62-89.
[GU 2] Ginsburg S., U 1 1 i a n J. S., Preservation of un-
* ambiguity and inherent ambiguity in context-free languages,
/. Assoc. Computing Machinery, 13 A966), 364—368.
[Ha 1] Haines L. H., Note on the complement of a (minimal)
linear language, Information and Control, 7 A964), 307—314.
[Ha 2] Haines L. H-, Generation and recognition of formal
languages, doctoral dissertation, Massachusetts Institute
of Technology, Cambridge, Mass., June, 1965.
[Har] Hartmanis J., On memory requirements for context-
* free languages recognition, /. Assoc. Computing Machinery,
14 A967), 663-665.
[Hi] Hibbard T. N., A generalisation of context-free deter-
* minism, Information and Control, 11 A967), 196—238.
[HU] Hibbard T. N., U 1 1 i a n J. S., The independence of
inherent ambiguity from complementedness among context-
free languages, /. Assoc. Computing Machinery, 13 A966),
588-593.
[It] I t о R., Every semilinear set is a finite union of dis-
* joint linear sets, /. of Computer and System Sciences, 3
A969), 221-231.
[Ka] Kasami Т., A note on computing time for recognition
* of languages, generated by linear grammars, Information
and Control, 10 A967), 209—214.
]Kn 1] К n u t h D. E., On the translation of languages from left
to right, Information and Control, 8 A965), 607—639.
[Kn 2] Knuth D.E., A characterisation of parenthesis langua-
* ges, Information and Control, 11 A967), 269—289.
[КТО] Kasami Т., Torii K., Ozaki H., Translation
of finite state languages by a sequential machine, /. Inst.
Elec. Commun. Engs. Japan (в печати).
Библиография 315
[Ku] Kuroda S. Y., Glasses of languages and linear-bound
automata, Information and Control, 7 A964), 207—223.
[Lai] Landweber P.S., Three theorems on phrase structure
grammars of type 1, Information and Control, 6 A963),
131—136.
[La 2] Landweber P. S., Decision problems of phrase struc-
structure grammars, IEEE Trans. Electron. Computers, EC-13
A964), 354-362.
[LHS] Lewis P.M., Hart man is J., Stearns R. E.,
* Memory bounds for recognition of context-free and context
sensitive languages, IEEE Conference Record on Switching
Girquit Theory and Logical Design, 1965, 191—202.
[Ly] Lynch W. C, Ambiguities in Backus normal form lan-
languages, doctoral dissertation, University of Wisconsin,
Madison, Wise, January, 1963.
[Mai] Matthews G. H., A note on asymmetry in phrase struc-
structure grammars, Information and Control, 7 A964), 360—365.
[Ma 2] Matthews G.H., Two-way languages, Information and
* Control, 10 A967), 111—119.
[MW] Mezei J., Wright J. В., Algebraic automata and
* context-free sets, Information and Control, 11 A967), 3—29.
[My 1] M у h i 1 1 J., Finite automata and the representation of
events, Wright Air Development Command Tech. Rept.
57-624, 1957, 112-137.
[My 2] My hi 11 J., Linear bounded automata, Wright Air
Development Division. Tech. Note 60-165, 1960.
[NS] Newell A., Shaw J. C, Programming the logic theo-
theory machine, Proc. Western Joint Computer Conf., 1957,
230—240.
[Oe] Oettinger A. G., Automatic syntactic analysis and
the pushdown store, in Structure of language and its mathe-
mathematical aspects, Proc. Symp. Appl. Math., 12 A961), 104—
129.
[Pal] Parikh R. J., Language generating devices, M.I.T.
Res. Lab. Electron. Quart. Prog. Rept. 60, 1961, 199—212.
[Pa 2] Parikh R. J., On context-free languages, /. Assoc.
* Computing Machinery, 13 A966), 570—580.
[Pe] Petrone L., On precedence grammars, Olivetti Elect-
tron. Res. Lab. Rept., February, 1965.
[Po] Post E. L., A variant of a recursively unsolvable problem,
Bull. Am. Math. Soc, 52 A946), 264-268.
[R] R о v a n В., Bounded push down automata, Kybernetika,
* 4 A969), 261-265.
3l6 Библиография
[Ro] Rosenberg A. L., A machine realisation of the linear
* context-free languages, Information and Control, 10 A967),
175-188.
[Ros] Rosenkrantz D., Matrix equations and normal forms
* for context-free grammars, /. Assoc. Computing Machinery,
14 A967), 501-507.
[SB] Samelson K., Bauer F. L., Sequential formula
translation, Commun. Assoc. Computing Machinery, 3 A960),
76—83.
[See] Schorre D. V., A necessary and sufficient condition
for a context-free grammar to be unambiguous, System
Development Corporation Rept. SP-2153, July 28, 1965.
[Scg] Scheinberg S., Note on the Boolean properties of
context-free languages, Information and Control, 3 A960),
372-375.
[Sch 1] Schutzenberger M. P., Some remarks on Chom-
Chomsky's context-free languages, M.I.T. Res. Lab. Electron.
Quart. Prog. Rept. 63, 1961.
[Sch 2] Schutzenberger M.P., Context-free languages and
pushdown automata, Information and Conttrol, 6 A963),
246-264.
[Sch 3] Schutzenberger M. P., Classification of Chom-
Chomsky's languages, Proc. IFIP Working Conference on Formal
Language Description Languages, Baden, Austria, 1964.
[SH] Stearns R. E., Hartmanis J., Regularity pre-
preserving modifications of regular expressions, Information
and Control, 6 A963), 55—69.
[Sh 1] Shamir E., On sequential languages, Z. Phonetik,
Sprach. Kommunikationsforsch., 18 A965), 61—69.
[Sh 2] Shamir E., A remark on discovery algorithms for gram-
grammars, Information and Control, 5 A962), 246—251.
[Sh 3] Shamir E., Mathematical models of languages, Pro-
Proceedings of IFIP Congress 65, Spartan Books, Inc., Washing-
Washington, D. C, 1965, 71—75.
[Sh 4] Shamir E., A representation theorem for algebraic and
* context-free power series in noncommuting variables,
Information and Control, 11 A967), 239—254.
[St] Stanley R. J., Finite state representations of context-
free languages, M.I.T. Res. Lab. Electron. Quart. Progr.
Rept. 76, 1965, 276—279.
[Th] Thatcher J. W., Characterizing derivation trees of
* context-free grammars through a generalization of finite
automata theory, /. Computer and System Sciences, 1 A967).
Библиография 317
[Ul] Ullian J.S., Failure of a conjecture about context-free
languages, Information and Control, 9 A966), 61—65.
[U 2] Ullian J. S., Partial algorithm problems for context-
* free languages, Information and Control, 11 A967), 80—101.
[Um] U 1 1 m a n J. D., Pushdown automata with bounded back-
backtrack, System Development Corp. Rept. TM-738/022/00,
Dec. 3, 1965.
[Yo], Yaunger p. H., Recognition and parsing of context-
* free languages in time n3, Information and Control, 10 A967),
189—208.
[Yn] Yntema M. K., Inclusion relations among families of
* context-free languages, Information and Control, 10 A967),
572—597.
ПЕРЕВОДЫ И РАБОТЫ НА РУССКОМ ЯЗЫКЕ
[Бе] Белецкий М.И., Бесконтекстные и доминационные
* грамматики и связанные с ними алгоритмические пробле-
проблемы, Кибернетика, вып. 4 A967), 90—97.
[БКШ] Бар-Хиллел И., Кашер А., Шамир Е.,
* Меры синтаксической сложности, Кибернетический сбор-
сборник, нов. серия, вып. 4, «Мир», 1967, 219—227.
[ГГ] Гинзбург С, Грейбах Ш., Об инвариантности
* класса НС-языков относительно некоторых отображений,
Кибернетический сборник, нов. серия, вып. 5, «Мир»,
1968, 167—188.
[Гл1] Гладкий А.В., Алгоритмическая нераспознаваемость
* существенной неопределенности КС-языков, Алгебра
и логика, Семинар, т. 4, вып. 4 A965), 53—64.
[Гл 2] Гладкий А. В., Некоторые алгоритмические пробле-
* мы для КС-грамматик, Алгебра и логика, Семинар, т. 4,
вып. 1 A965), 3-13.
[Г л 3] Гладкий А.В., Прямое доказательство теоремы Мэть-
* юза, Алгебра и логика, Семинар, т. 4, вып. 4 A965), 65—70.
[Гл 4] Гладкий А. В., Грамматики с линейной памятью,
Алгебра и логика, Семинар, т. 2, вып. 5 A963), 43—55.
[Г л 5] Гладкий А. В., О сложности выводов в грамматиках
* непосредственно составляющих, Алгебра и логика, Семи-
Семинар, т. 3, вып. 5—6 A964), 29—44.
[Гл 6] Гладкий А. В., Алгоритмическая природа инвариант-
* ных свойств грамматик непосредственно составляющих,
Алгебра и логика, Семинар, т. 3, вып. 2 A964), 17—32.
[Гл 7] Гладкий А. В., Лекции по математической лингвисти-
* ке для студентов НГУ, Новосибирск, 1966.
[ГМ] Гладкий А. В., Мельчук И. А., Элементы
* математической лингвистики, «Наука», М., 1969.
318 Библиография
[ГРа] Гинзбург С, Райе X., Два класса языков типа
АЛГОЛ, Кибернетический сборник, нов. серия, вып. 6,
1969.
[ГРо 1] Гинзбург С, Роуз Дж., Характеристика ма-
машинных отображений, Кибернетический сборник, нов.
серия, вып. 5, 1968, 128—137.
[ГРо 2] Гинзбург С, Роуз Дж., Об инвариантности
классов языков относительно некоторых преобразований,
Кибернетический сборник, нов. серия, вып. $ 1968, 138—
166.
[Ди] Диковский А. Я., О соотношении между классом
* всех контекстно-свободных языков и классом детермини-
детерминированных контекстно-свободных языков, Алгебра и логика,
Семинар, т. 8, вып. 1, A969).
]ДМ] Диковский А. Я., М о д и н а Л. С, Минимизация
* одной функции сложности в классе МП-автоматов и кате-
категориальные грамматики сложности три, Алгебра и логика,
Семинар, т. 7, вып. 3 A968), 23—37.
[Ер] Ершов А. П., Программирующая программа для
быстродействующей электронной счетной машины, Изд-во
Академии наук СССР, М., 1958.
[Кл] К л и н и С. К., Представление событий в нервных сетях
и конечных автоматах, сб. «Автоматы», ИЛ, 1956, стр. 15—
67.
[Ку] К у р о ш А. Г., Курс высшей алгебры, Учебник для гос.
* ун-тов и пед. ин-тов, Гостехиздат, М.—Л., 1962.
[КЭР] Копи И. М., Элгот К. С, Райт Д. Б., Реализа-
Реализация событий логическими сетями, Кибернетический сбор-
сборник, вып. 3, ИЛ, 1961, 147—166.
[Ле 1] Летичевский А. А., Синтаксис и семантика фор-
* мальных языков, Кибернетика, вып. 4 A968).
[Ле 2] Летичевский А. А., Представление контекстно-
* свободных языков в автоматах с памятью типа push-down,
Кибернетика, вып. 2 A965), 80—84.
[Ма] Мальцев А. И., Алгоритмы и рекурсивные функции,
* «Наука», М., 1965.
[Map] Марков А. А., Теория алгорифмов, Изд-во Академии
* наук СССР, Л.— М., 1954.
[Мэ] М э т ь ю з Д., Разрывность и асимметрия в граммати-
грамматиках непосредственно составляющих, в сб. «Математи-
«Математическая лингвистика», «Мир», 1964, стр. 150—159.
[На] Н а у р П. (под ред.), Алгоритмический язык АЛГОЛ-60,
Пересмотренное сообщение, «Мир», 1965.
[Ор] О ре О., Теория графов, «Наука», М-, 1968,
Библиография 319
I PC] Рабин М., Скотт Д., Конечные автоматы и про-
проблемы их разрешения, Кибернетический сборник, ИЛ,
вып. 4 A962), 58—91.
[Са] Самойленко Л. Г., Об одном классе грамматик
* непосредственно составляющих, Кибернетика, вып. 2
A968), 102, 103.
[Ст 1] Стоцкий Э.Д., О некоторых ограничениях на способ
* вывода в грамматиках непосредственно составляющих,
НТИ, серия 2, вып. 7 A967), 35—38.
[Ст 2] Стоцкий Э.Д., Порождающие грамматики и управле-
* ние выводом, НТИ, серия 2, вып. 10 A968), 28—31.
[Ст 3] Стоцкий Э. Д., Понятие индекса в обобщенных
* грамматиках, НТИ, серия-2, вып. 4 A969).
[фи] Фитиалов С. Я., Об эквивалентности грамматик НС
* и грамматик зависимостей, в сб. «Проблемы структурной
лингвистики 1967», «Наука», М., 1968, стр. 71—102.
[Хе] X е р ц М. М., Энтропия языков, порождаемых автомат-
* ной или контекстно-свободной грамматиками с однознач-
однозначным выводом, НТИ, серия 2, вып. 1 A968), 29—34.
[ХМ] X омский П., Миллер Д ж., Языки с конечным
числом состояний, Кибернетический сборник, вып. 4, ИЛ,
1962, 233—255.
[Хо 1] Хомский Н., Три модели для описания языка,
Кибернетический сборник, вып. 2, ИЛ, 1961, 237—266.
[Хо2] Хомский Н., Синтаксические структуры, сб. «Новое
в лингвистике», вып. 2, «Прогресс», 412—527.
[ХоЗ] Хомский Н., О некоторых формальных свойствах
грамматик, Кибернетический сборник, вып. 5, ИЛ, 1962,
279-311.
[Хо4] Хомский Н., Заметка о грамматиках непосредствен-
непосредственно составляющих, Кибернетический сборник, вып. 5, ИЛ,
1962, 312-316.
[Хо 5] Хомский Н., Формальные свойства грамматик,
Кибернетический сборник, нов. серия, вып. 2, «Мир»,
1966, 121—230.
[ХШ] Хомский Н., Шютценберже М. П., Алгебра-
Алгебраическая теория контекстно-свободных языков, Кибернети-
Кибернетический сборник, нов. серия, вып. 3, «Мир», 1966, 195—242.
[Шр] Шрейдер Ю. А., Характеристики сложности структу-
структуры текста, НТИ, вып. 7 A966), 34—39.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Автомат (automaton) 72
— конечный (finite-state accep-
acceptor) 72
— линейно ограниченный (ЛО-
автомат) (linear bounded ac-
acceptor) 107
— недетерминированный ко-
конечный (nondeterministic fi-
finite-state acceptor) 76
— с магазинной памятью (МП-
автомат) (pushdown acceptor)
89
Аддитивная операция (additive
operation) 152
Алгоритм (algorithm) 164
Алгоритмически неразрешимый
(recursively unsolvable) 164
— разрешимый (recursively
solvable) 164
Алфавит (alphabet) 13
Бинарная стандартная форма
(binary standard form) 41
Вектор (vector) 17
— w-максимальный {w- maxi-
maximal) 287
Вершина (node) 16
— максимальная (maximal) 44
— немаксимальная (поп maxi-
maximal) 44
— пути (node in path) 16
Взаимно простые числа (relati-
(relatively prime integers) 18
Вспомогательный символ само-
самовставляющийся (self-embed-
(self-embedding variable) 83
Вывод (derivation, generation) 22
— левосторонний (leftmost) 50
— правосторонний (rightmost)
50
Вывода длина (length of deriva-
derivation) 22
Гомоморфизм (гомоморфное ото-
отображение) (homomorphism) 57
Грамматика контекстно-ограни-
контекстно-ограниченная (context-bounded gram-
grammar) 198
— контекстно-свободная (КС-
грамматика) (context-free
grammar) 34
— лев о линейная (left-linear) 79
— минимальная линейная (mi-
(minimal linear) 198
— непосредственно составляю-
составляющих (НС-грамматика) (con-
(context-sensitive grammar) 23
— обобщенная порождающая
(unrestricted rewriting) 105
— операторная (operator) 26
— порождающая (система под-
подстановок) (phrase-structure) 21
— последов ательностная (se-
(sequential) 82
— прав о линейная (right-linear)
79
— с отношением предшество-
предшествования (precedence) 26
Грамматический элемент (gram-
(grammatical element) 56
— — заключительный (termi-
(terminal) 57
Грамматического элемента струк-
структура (structure of a grammati-
grammatical element) 57
Предметный указатель
321
Граф конечный ориентирован-
ориентированный (finite directed graph) 16
— нагруженный (labeled) 16
Делитель наибольший общий
(greatest common divisor) 18
Дерево вывода (generation tree)
42
— — минимальное (minimal)
44
— конечное корневое ориенти-
ориентированное с помеченными вер-
вершинами (finite rooted directed
tree with labeled nodes) 17
— составляющих (parsing tree)
42
Дополнение (complement) 13
Допускаемый (accepted) 73, 76,
92, 107
d-допускаемый (d-accepted) 110
Дуга (графа) (directed line) 16
Зависимость (одного вспомога-
вспомогательного символа от другого)
(dependency) 36
Зеркальный образ (обращение)
(цепочки) (reflection) 35
Индекс (index) 77
Класс эквивалентности (equiva-
(equivalence class) 14
Конец (заключительный отре-
отрезок) пути (terminal sub path)
16
— цепочки (terminal subword)
14
Конкатенация (concatenation) 13
Корень (root) 17
Коэффициент (coefficient) 28
КС-грамматика линейная (li-
(linear grammar) 78
— металинейная (metalinear)
82
— неопределенная (ambiguous)
50
— неукорачивдюдпая (e-free) 6Q
КС-грамматика определенная
(unambiguous) 50
— приведенная (reduced) 38
— равномерно ограниченной
активной емкости (nontermi-
(nonterminal bounded) 78
— с самовставлением (self-em-
(self-embedding)
КС-язык детерминированный
(deterministic language) 109
— линейный (linear) 78
— металинейный (metalinear)
82
— определенный (unambiguous)
52
— существенно неопределен-
неопределенный (inherently ambiguous) 52
— с-конечный (c-finite) 88
Лемма о зависимости (dependen-
(dependency lemma) 36
Лента магазинной памяти (push-
(pushdown tape) 89
Линейно зависимый (linearly de-
dependent) 17
— независимый (independent)
17
ЛО-автомат детерминированный
(deterministic linear bounded
acceptor) 118
Магазинная память (pushdown
store) 89
Маркер магазинной памяти
(start pushdown symbol) 89
Множества непересекающиеся
(disjoint sets) 13
Множество коммутативное (com-
(commutative set) 239
— линейное (векторов) (linear)
204
— ограниченное (bounded) 200
— периодическое (ultimately
periodic) 16
— полулинейное (semilinear)
204
— Пресбургера (Presburger)
260
*- дустое (empty) 12
322
Предметный указатель
Множество расслоенное (strati-
(stratified) 225
— регулярное (regular) 73, 282
— (регулярное) второго класса
(regular set of class 2) 21, 88
— рекурсивное (recursive) 166
— частично упорядоченное
(partially ordered) 14
МП-автомат (pushdown accep-
acceptor, pda) 89
— детерминированный (deter-
(deterministic) 108
— — без циклов (loop-free) 111
— квазидетерминированный
(quasi-deterministic) 109
— обобщенный (generalized) 93
— определенный (unambigu-
(unambiguous) 102
МП-преобразователь (pushdown
transducer, pdt) 147
Наименьшая неподвижная точ-
точка (minimal fixed point) 34
Начало (начальная подцепочка)
(initial subword) 14
He более чем счетное (множе-
(множество) (denumerable) 15
Несчетное (множество) (nonde-
numerable) 15
Нормальная форма Бэкуса (Ba-
(Backus normal form) 27
НС-язык (context-sensitive lan-
language) 23
тг-компонентная стандартная
функция (га-tuple standard
function) 29
Обратный (для некоторого по-
следовательностного преобра-
преобразователя) последовательно-
стный преобразователь (in-
(inverse of a sequential transducer)
137
Обращение (цепочки) (зеркаль-
(зеркальный образ) (цепочки) (reverse)
35
Объединение (теоретико-множе-
(теоретико-множественное) (set union) 12
Ограниченное удлинение (boun-
(bounded output) 140
Операция (operation) 15
Оптимальная перетасовка (alter-
(alternate shuffle) 155
Отношение (relation) 14
— конгруэнтности (congruence
relation) 77
— эквивалентности (equiva-
(equivalence relation) 14
Отображение (mapping) 15
— биаддитивное (biadditive
function) 54
— в (function into) 15
— взаимно однозначное (one-
to-one function) 15
— линейное (linear function)
250
— на (function onto) 15
Переменная (вспомогательный
символ) (variable) 21
Пересечение (intersection) 12
— теоретико-множественное
(set intersection) 12
Период (period) 203
Поддерево, порожденное верши-
вершиной (subtree generated by a
node) 45
Подмножество (subset) 12
Подстановка (substitution) 57
Подцепочка (subword) 14
Пометка (label) 17
— при вершине (node name) 17
Порождать (язык) (generate) 23
Порядок линейный (simple or-
order) 15
— частичный (partial) 14
Последовательность периодиче-
периодическая (ultimately periodic se-
sequence) 16
Правило (production) 21
— левобуквенное (left-literal)
107
— леволинейное (left-linear) 79
— линейное (linear) 78
— подстановки (rewriting rule)
21
— праволинейное (right-linear
production) 79
Предложение Пресбургера (Pres-
burger sentence) 260
Предметный указатель
323
Предпериод (constant) 203
Преобразование конечное (gene-
(generalized sequential machine
mapping) 135
— последов ате л ьностное (se-
(sequential transducer mapping)
131
Преобразователь конечный (ge-
(generalized sequential machine,
gsm) 134
— последов ате льностный (se-
guential transducer) 130
— с магазинной памятью (МП-
преобразователь) (pushdown
transducer) 147
— синхронный конечный (com-
(complete sequential machine) 134
Проблема соответствий (corres-
(correspondence problem) 172
Продолжение вершины (exten-
(extension of a node) 44
Произведение декартово (carte-
(cartesian product) 14
Производимый (выводом, дере-
деревом) (realized) 43
Производная (derivative) 156
Прямое произведение множеств
((complex) product of sets) 13
— — цепочек (конкатенация)
((complex) product of words)
13
Пути длина (length of path) 16
Путь (path) 16
Разрешающая процедура (deci-
(decision procedure, recursive solu-
solution, algorithm) 165
Реализуемый (realized) 22, 90,
148
Решение (solution) 29
— минимальное положитель-
положительное (minimal positive) 253
— положительное (positive)
251
Свободная полугруппа (free se-
semigroup) 14
Символ вспомогательный (пе-
(переменная) (nonterminal) 21
Символ входной (input) 72, 76,
89, 130, 134
— выходной (output) 130, 134,
147
— магазинной памяти (push-
(pushdown symbol) 89
— начальный (аксиома) (axi-
(axiom) 21
— основной (буква) (letter) 21
Система подстановок (порож-
(порождающая грамматика) (rewri-
(rewriting system) 21
Согласованные (МП-автомат и
МП-преобразователь) (asso-
(associated pda and pdt) 119
Содержать последовательность
(contain a sequence) 209
Состояние (state) 72, 76, 79, 130,
134
— заключительное (final) 72,
76, 90
— начальное (start) 72, 76,
89, 131, 134
Стандартная функция (stan-
(standard function) 28
Счетное (множество) (denume-
rably infinite) 15
Такт (move) 90
Тасующая функция (shuffle) 155
Теорема о конечном преобразо-
преобразовании (gsm mapping theorem)
135
— — пересечении (intersec-
(intersection) 125
— — подстановке (substitu-
(substitution) 57
— — разности (difference) 128
— Парика (Parikh) 207
— Поста о проблеме соответ-
соответствий (Post correspondence)
161
Формальный полином (formal
polynomial) 56
Формула Пресбургера (Presbur-
ger formula) 259
Функция выходов (output func-
function) 134
— переходов (next-state) 72
324
Предметный указатель
Цепочка (word) 13
— в алфавите 2 B-word) 13
— длины k (word of length к) 13
— непустая (non-s word) 13
— полинома (word of polyno-
polynomial) 56
— производимая путем (label
of path) 17
— пустая (empty word) 13
Частное левое (left quotient) 156
— правое (right) 154
Член (функции) (term) 28
Элемент максимальный (maxi-
(maximal element) 15
— минимальный (minimal) 15
Элементы несравнимые (incom-
(incomparable elements) 15, 231
Язык бесскобочный (parenthe-
(parenthesis-free language) 56
— Дикка (Dyck) 26
— контекстно-свободный (КС-
язык) (context-free) 24
— порождаемый грамматикой
(phrase-structure) 23
— последовательностный (se-
(sequential) 82
— праволинейный (right-li-
(right-linear) 79
— с конечным числом состоя-
состояний (finite-state) 75
— типа АЛГОЛ (ALGOL-like)
29
ОГЛАВЛЕНИЕ
Предисловие редактора перевода 5
Предисловие автора 8
Предварительные сведения 12
Глава 1. контекстно-свободные языки| и языки
ТИПА АЛГОЛ 19
1.1. Языки, порождаемые грамматиками .... 19
1.2. Языки типа АЛГОЛ 27
1.3. Эквивалентность КС-языков и языков типа
АЛГОЛ 30
1.4. Вспомогательные утверждения 35
1.5. Деревья выводов 41
1.6. Неопределенность 49
1.7. Подстановка 57
1.8. Неукорачивающие КС-грамматики ..... 59
1.9. Историческая справка 70
Глава 2. автоматы и языки 71
2.1. Конечные автоматы и регулярные множества 71
2.2. Линейные правила 78
2.3. КС-языки специального вида 83
2.4. Автоматы с магазинной памятью 89
2.5. Характеристика КС-языков в терминах МП-
автоматов 94
2.6. Детерминированные КС-языки 108
2.7. Историческая справка 119
Глава 3. операции над кс-языками 120
3.1. Языки, не являющиеся контекстно-свобод-
контекстно-свободными 120
3.2. Пересечение и разность 126
3.3. Последовательностные преобразования . . . 130
3.4. Характеристика конечного преобразования 140
326 Оглавление
3.5. Преобразователи с магазинной памятью . . 146
3.6. Некоторые специальные операции 151
3.7. Нормальная форма КС-языка 157
3.8. Историческая справка 163
Глава 4. алгоритмические проблемы 165
4.1. Алгоритмически разрешимые проблемы . . . 166
4.2. Основные алгоритмически неразрешимые про-
проблемы 170
4.3. Алгоритмические проблемы, связанные с ко-
конечными преобразованиями 185
4.4. Алгоритмические проблемы, связанные
с МП-преобразователями 194
4.5. Неразрешимость проблемы распознавания
определенности КС-грамматики 196
4.6. Историческая справка 199
Глава 5. ограниченные кс-языки . 200
5.1. Основные понятия 200
5.2. Теорема Парика 206
5.3. Структура ограниченных КС-языков .... 212
5.4. Характеристики ограниченных КС-языков 223
5.5. Распознавание ограниченности КС-языка . . 239
5.6. Другие алгоритмические проблемы 249
5.7. Историческая справка 260
Глава 6. существенная неопределенность ... 261
6.1. Существенно неопределенные КС-языки, со-
содержащиеся во множестве а* ... an .... 261
6.2. Ограниченные существенно неопределенные
КС-языки 278
6.3. Алгоритмическая неразрешимость проблемы
распознавания существенной неопределенно-
неопределенности 295
6.4. Историческая справка 300
Приложение 301
Библиография.. 310
Предметный указатель 320
С. Гинзбург
МАТЕМАТИЧЕСКАЯ ТЕОРИЯ
КОНТЕКСТНО-СВОБОДНЫХ
ЯЗЫКОВ
Редактор А. Г. Крылов
Художник А, Г. Антонова
Художественный редактор JB. И. Шаповалов
Технический редактор Л. Я. Кондюкова
Корректор Я. Я. Максимова
Сдано в производство 22/IX 1969 г.
Подписано к печати 6/Ш 1970 г.
Бумага N« 1 84х 1081/32=5,13 бум. л.
усл. печ. л. 17,22.
Уч.-изд. л. 15,80. Изд. № 1/5191.
Цена 1 р. 60 к. Зак. 1170
ИЗДАТЕЛЬСТВО «МИР»
Москва, 1-й Рижский пер., 2
Московская типография № 16
Главполиграфпрома
Комитета по печати при Совете
Министров СССР.
Москва, Трехпрудный пер., 9