Текст
                    Жемчужины теории
формальных языков


Jewels of formal language theory Arto Salomaa University of Turku Turku, Finland Computer Science Press Rockville, 1981
А. Саломаа Жемчужины теории формальных языков Перевод с английского А. А. Мучника под редакцией А. Л. Семенова
ББК81.1 С 16 УДК 519.765 Саломаа А. С16 Жемчужины теории формальных языков: Пер. с англ. —М.: Мир, 1986, — 159 с, ил. Книга содержи! ряд замечательных результатов теории формальных языков. Она отличается методическими достоинствами, большим числом задач и примеров, постановкой новых проблем. Автор книги — профессор Уни* верситета г Турку (Финляндия), президент Европейской ассоциации вы* числительных наук — успешно решил поставленные им две основные задачи: дать замкнутое введение в теорию для начинающих, изложить некоторые блестящие и порой сложные результаты, интересные для специалистов. Для специалистов по вычислительным наукам, для студентов и аспи* рантов университетов как введение в предмет. ^ 1502000000—063 е ое t ББК 81.1 ' О—ОО, 4. 1 041(01)—86 ' 4 Редакция литературы по математическим наукам 1981 Computer Science Press, Inc. перевод на русский язык с дополнением. «Мир», 1986
Предисловие редактора перевода Теория формальных языков возникла на стыке математической логики, теории алгоритмов и алгебры. Математическая логика и теория алгоритмов дали математике новый объект исследования, а именно текст, обладающий и синтаксической структурой, и смыслом (семантикой). Мощным стимулом для изучения этого объекта явились приложения математики к естественным языкам, языкам программирования и вычислительной технике. Множества текстов, объединенных общим синтаксисом, — языки — изучаются (вне связи с семантикой) теорией формальных языков; при этом используются комбинаторно-алгебраические методы. Сам термин «теория формальных языков», как и его эквивалент «математическая лингвистика», не отражает того, что исследуется лишь синтаксический аспект языка и что исследование ведется алгебраическими методами, но мы не пытаемся предлагать ничего взамен. Мы уже отметили основные научные факторы, обусловившие развитие теории формальных языков, — прогресс математической логики и теории алгоритмов в тридцатых годах и появление ЭВМ в пятидесятых. Однако и здесь, как часто случается, есть пионерские работы, намного опередившие свое время и поэтому иногда забываемые. В данном случае — это исследования А. Туэ начала века. Одно из них служит отправной точкой первой главы настоящей книги, о других будет коротко сказано в послесловии к книге, которым с со* гласия автора снабдили ее переводчик и редактор перевода и в котором приводятся наиболее существенные (в основном недавно полученные) результаты, идейно и тематически связанные с содержанием книги. С именем А. Туэ в теории формальных языков по праву соседствует имя другого знаменитого скандинавского математика — президента Европейской ассоциации вычислительных наук, автора настоящей книги — Арто Саломаа. Для его научной деятельности, во многом определившей современный облик этой теории, характерен безупречный математический вкус, сказывающийся в выборе тем и методов исследования. В работах А. Саломаа, использующих аппарат и результаты из различных областей математики, не найти нагромождения
6 ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА абстрактных конструкций ради достижения излишней общности— эти работы всегда направлены на решение содержательных задач, построение глубокой теории. Математический вкус автора сказался и в выборе «жемчужин» для настоящей книги. (Мы выбрали более привычное для русского читателя слово «жемчужины», хотя английское jewels полнее отражает стремление автора к разнообразию.) Сама идея книги «жемчужин» весьма плодотворна именно для вычислительных наук, где обилие теорем не свидетельствует об их глубине и роль крупного ученого во многом состоит в выделении важнейших результатов и направлений исследования. Говоря о содержании книги, хотелось бы отметить блестящую подачу таких классических тем, как регулярные языки и их характеризации и виртуозное использование унифицирующей идеи морфизма. При изложении даже наиболее технически сложных доказательств автору удалось избежать нагромождения формул (в котором каждый переход, как говорится, «легко проверить», а все в целом оставляет у читателя ощущение неудовлетворенности). Выход книги на русском языке будет полезен в двух отношениях, которые представляются одинаково важными. Во-первых, она содержит материал, не излагавшийся до этого в монографической литературе на русском языке, — звездная высота, DOL-системы и др. Во-вторых, мы надеемся, что она будет содействовать поддержанию высокого стандарта в математических исследованиях и публикациях. И в том и в другом отношении книга окажется полезной всем, занимающимся вычислительными науками, — от студентов (автор этих строк использовал ее в семинаре для первокурсников МГУ) до профессиональных математиков и программистов. В заключение пользуюсь случаем принести свою глубокую благодарность автору, проявившему большое внимание к русскому изданию книги и способствовавшему его выходу в свет. А. Л. Семенов Москва, 1985 г.
Посвящается памяти моего отца Я. Э. Саломаа Предисловие Потребность в формальном грамматическом описании различных языков возникает во многих областях науки, и поэтому теория таких языков оказывается поистине междисциплинарным предметом исследования. Об этом свидетельствует сама история ее развития: хотя истоки данной теории относятся к чистой математике, более поздние тенденции связаны с попытками построения моделей естественных языков, программирования и даже моделей развития нитчатых организмов в биологии. Теорию формальных языков некоторые рассматривают как одну из важнейших областей современных научных исследований, другие же считают ее малозначительной; оценки оказываются различными в разные странах и в разное время. Я лично согласен с моим финским коллегой Альфредом Ахо, который в одной из своих лекций назвал теорию формальных языков «цветком информатики», лепестками которого являются такие разделы, как теория сложности, теория языков программирования и компиляции. Цель настоящей книги — кратко изложить некоторые красивые результаты теории формальных языков в форме, доступной для читателя без какой-либо предварительной подготовки. Мне хотелось решить две задачи: (i) написать введение в теорию для новичков и (И) включить в него побольше материала, отражающего современные исследования. Я надеюсь, что в соответствии с первой задачей книга может служить основой небольшого курса лекций, а в соответствии со второй представлять интерес для специалистов. В книге, несомненно, содержатся не все «жемчужины» теории, и, конечно же, некоторые из вошедших в нее результатов могут оказаться не столь красивыми, как не вошедшие. Может случиться, что кто-то не найдет здесь своей любимой «жемчужины». Однако, исходя из задачи (i) и учитывая, что настоящая работа замкнута и невелика по объему, мы не могли включить в нее материал из слишком разнородных областей. Своего рода «общим знаменателем» в книге является понятие морфизма свободного моноида. Хотя книга и не предполагает никаких предварительных знаний, от читателя все же требуется известная математиче-
8 ПРЕДИСЛОВИЕ екая культура. Руководствуясь задачей (И), мы включили в книгу некоторые довольно сложные результаты. Да и вообще, нельзя ожидать, что красивые результаты окажутся тривиальными! Читатель, уже знакомый с теорией формальных языков, заметит, что мы едва упоминаем контекстные языки из классификации Хомского, — уже давно стало ясно, что этот класс языков не интересен с точки зрения приложений. Я также считаю, что он дал мало интересных теоретических результатов, как относящихся к нему самому, так и связанных с другими понятиями теории. Остальные семейства классификации Хомского, а также семейство DOL-язы- ков рассматриваются достаточно подробно. Благодарности. Я хочу выразить свою признательность Академии наук Финляндии за созданные для меня условия, позволившие спокойно работать над настоящей книгой. Трудно перечислить всех, так или иначе способствовавших этой работе. Мне очень помогли дискуссии, в которых участвовали В. Бухер, К. Чулик II, Ю. Карумяки, М. Линна, Я. Мяенпя, X. Маурер, Г. Розенберг, К. Руохонен и Д. Вуд; я весьма обязан им за это, равно как и за сделанные ими замечания. Нелегкую работу по перепечатке рукописи самым тщательным" образом выполнила Э. Сёдерблом. В заключение я хочу поблагодарить издательство Computer Science Press и особенно Д. Лейна и Б. Ньюленд за превосходную и быструю редакционную обработку рукописи и корректур. Ар то Саломаа ноябрь, 1980
1 Повторения 1.1. СЛОВА И ЯЗЫКИ Наша первая тема — повторения слов. Это старейший предмет, изучаемый в рамках теории формальных языков и восходящий к работе Акселя Туэ начала века. Результаты Туэ неоднократно переоткрывались в различных формах. Прежде чем обсуждать непосредственно сами эти результаты, необходимо ввести некоторые понятия и термины (они потребуются нам на протяжении всего изложения). Алфавит 2— это конечное непустое множество. Буквы (символы) — элементы алфавита 2. Слово над алфавитом 2— это конечная цепочка, состоящая из нуля или более букв из 2, причем одна и та же буква может входить в слово несколько раз. Цепочка, состоящая из нулевого количества букв, называется пустым словом и обозначается Я. Таким образом А,, 0, 1, 010, 1111 суть слова над алфавитом 2 ={0, 1}. Множество всех слов (соответственно всех непустых слов) над алфавитом 2 обозначается 2* (соответственно 2+). Множество 2* бесконечно для любого 2. С алгебраической точки зрения 2* и 2+ представляют собой свободный моноид и свободную полугруппу с множеством образующих 2. Необходимо иметь в виду, что множество 2, его элементы и цепочки его элементов можно с равным успехом назвать словарем, словами и предложениями соответственно. Такой подход применяется главным образом в области формального анализа естественных языков. Мы сохраняем стандартную математическую терминологию, введенную выше. Если х и у — слова над алфавитом 2, то их катенация ху (результат приписывания) — тоже слово над 2. Катенация является ассоциативной операцией, и пустое слово служит единицей по отношению к ней: xh = hx = x для всех х. Если х — слово, а / — натуральное число, то х* обозначает слово, полученное катенацией i слов, каждое из которых есть х. По определению х° — пустое слово Я. Длина слова х, обозначаемая \х\, есть число букв в х, причем каждая буква считается столько раз, сколько раз она входит в х. Опять же по определению |Я| = 0. Функция длины обладает некоторыми формальными свойствами логарифма: для всех слов х9 у и неотрицательных целых / \xy\ = \x\ + \yl |*'| = /|*|.
10 ГЛ 1. ПОВТОРЕНИЯ Слово х называется подсловом слова у, если существуют такие слова хх и х2, что у = Х\хх2. Если при этом х\ = % (соответственно х2 = Х), то х называется началом или префиксом (соответственно концом или суффиксом) слова у. О подмножествах множества S* говорят как о {формальных) языках над 2. Таким образом, Lx = {а, 6а, aaba, Ь5} и L2 = {ар \ р — простое} являются языками над алфавитом 2={а,6}, причем первый конечен, а второй бесконечен. Конечный язык может быть, хотя бы теоретически, задан списком всех его слов. Подобная процедура для бесконечных языков невозможна — для их задания необходимо какое-то описание, отличное от списка. Финитными заданиями бесконечных языков в основном и занимается теория формальных языков. Различные классы финитно задаваемых языков будут рассмотрены ниже. Используемая нами терминология может показаться несколько необычной: ведь язык должен состоять из предложений, а не из слов, как у нас. Однако, как было указано выше, это несущественно и зависит только от выбора основной терминологии, которую в случае необходимости можно изменить. В теории языков важнейшей операцией является операция морфизма. Морфизмом называется отображение А: 2*~>А*, где 2 и А — алфавиты, удовлетворяющее условию h (xy) = A (x) А (у) для всех слов х, у. (1.1) Для языков L над 2 определим h(L) = {h(w) |до e L]. (С алгебраической точки зрения морфизм языков есть моно- идный морфизм, естественным образом продолженный на подмножества моноидов.) В силу (1.1) для задания морфизма А достаточно указать все слова Л (а), где а пробегает все элементы конечного алфавита 2. Тройка G = (2,A, до), где 2— алфавит, A: 2*->-2*—морфизм и до —слово над 2, называется DOL-системой. DOL-си- стема G определяет последовательность S(G) слов над 2: до = А0 (до), А (до) = А1 (до), А (Л (до)) = А2 (до), а также язык L(G) = {hi{w)\i^Q}. Таким образом, DOL-си- стема является очень простым средством задания языка. Языки, заданные с помощью DOL-системы, называются DOL-языками. Они рассматриваются в гл. 5; там же объясняется сокращение DOL. Бесконечная последовательность элементов алфавита S называется ы-словом или сверхсловом. Таким образом, со-слово может быть отождествлено с отображением множества неотрицательных целых чисел в 2. Очень удобным сред-
1.2. ПРОБЛЕМА ТУЭ 11 ством задания конкретных со-слов являются DOL-системы. Именно, рассмотрим DOL-систему G = (2, й, w), такую, что h{w) = wx, jcgeS*, (1.2) т. е. w — собственное начало (начало слова, не совпадающее с самим словом) слова h(w) и, кроме того, h является нести- рающим (т. е. Н(а)ФХ для всех а из 2). Тогда, согласно /г (w) = wxh (x)9 h3 (w) = wxh (x) /r (x) и вообще hi+{ (w) = ti {w) hl (x) для всех i > 0. (1.3) Равенство (1.3) показывает, что hl(w) для всех / является собственным началом слова hi+l(w). (При этом к1{х)Ф'к, так как h нестирающее.) Следовательно, со-слово а может быть определено как «предел» последовательности hl{w)y / = 0, 1,2 ... . Точнее, а представляет собой со-слово, начало которого, имеющее длину \hl(w) |, есть hl(w)y / = 0, 1,2, ... . (Понятия начала и подслова естественным образом распространяются и на со-слова. Слово х является полсловом со-сло- ва а, если а можно записать в виде х\ха\, где gci и х\ — слово и со-слово соответственно. Если х\ = X, то х называется началом б)-слова а.) О полученном таким образом со-слове а говорят, что оно порождено DOL-системой G. 1.2. ПРОБЛЕМА ТУЭ Эта проблема касается повторений гюдслов в словах н со-словах. Слово или со-слово над алфавитом S называется бесквадратным (бескубным), если оно не содержит подслов вида х2 (соответственно jc3), где х — непустое слово. Слово или со-слово называется сильно бескубным, если оно не содержит подслов вида х2ау где х — непустое слово, а а — первая буква слова jc. Очевидно, каждое бесквадратное слово или со-слово является также сильно бескубным, и каждое сильно бескубное слово или со-слово является бескубным. Проблема Туэ состоит в построении бесквадратных слов максимальной возможной длины над данным алфавитом S, и если это возможно, то и бесквадратных со-слов. Если это оказывается невозможным, то необходимо построить сильно бескубные слова возможно большей длины или сильно бес- кубные со-слова. Проблема Туэ возникает в ряде самых разнообразных ситуаций; некоторые из них упоминаются в упр. 6—9 в конце главы. Начнем с того, что проблема Туэ упрощается (в смысле, который будет уточнен ниже) при возрастании числа букв в алфавите S. Образно говоря, это обеспечивает большую «свободу маневра». В частности, если 2
12 ГЛ. 1. ПОВТОРЕНИЯ состоит только из одной буквы, то над 2 не существует бес- кубного слова, имеющего длину более 2. В случае когда Е состоит из двух букв, только очень короткие слова могут быть бесквадратными, что видно из следующей леммы. Лемма 1.1. Ни одно слово, имеющее длину более 3, над алфавитом 2 из двух букв не является бесквадратным. Следовательно, над S не существует бесквадратных со-слов. Доказательство. Пусть S состоит из букв а и Ь. Существуют только 2 бесквадратных слова длины три: aba и ЬаЬу (1.4) так как все другие слова указанной длины: a3, a2b, ba2, б3, 62а, ab2 содержат в качестве подслова либо а2, либо б2. С другой стороны, каким бы способом ни была приписана буква к любому слову из (1.4), результирующее слово в каждом случае будет содержать в качестве подслова одно из слов а2, б2, (ab)2, (6а)2 и, следовательно, не будет бесквадратным. □ Пусть а — слово (соответственно со-слово) над 2. Слово а' той же длины, что и а (соответственно со-слово а'), называется интерпретацией слова а при выполнении следующего условия: если в слове а /-я буква (отсчет ведется с начала) отличается от /-й буквы, то и в слове а' /-я буква отличается от /-й. Поэтому как ахачагЬ^Ъч, так и а\а2а\аъа\аъ являются интерпретациями слова azbaby тогда как аха^аф^а^х не является интерпретацией того же слова, поскольку в слове аъЬаЬ первая и последняя буквы различны. Каждая интерпретация слова или со-слова а может быть получена (помимо возможного переименования букв) приписыванием каждой букве а из а некоторого нижнего индекса, причем можно использовать только конечное число индексов. С интерпретациями мы еще встретимся ниже (гл. 7). Лемма 1.2. Если а (слово или со-слово) является бесквадратным, сильно бескубным или бескубным, то любая интерпретация of слова а будет также бесквадратной, сильно бескубной или бескубной соответственно. Доказательство. Это утверждение непосредственно следует из определения интерпретации. Например, если а' содержит додслово вида х2, то подслово, в соответствующем месте входящее в слово а, имеет вид у2. О Лемма 1.2 показывает, что если а — бесквадратное (бес- кубное, сильно бескубное) со-слово строго над 2 (в том смысле, что все буквы из 2 действительно входят в a), a 2i—
1.3 РЕШЕНИЕ ПРОБЛЕМЫ СИЛЬНОЙ БЕСКУБНОСТИ 13 алфавит, содержащий больше букв, чем Е, то некоторое бесквадратное (соответственно бескубное, сильно бескубное) со-слово строго над Ei может быть получено из а путем интерпретации. Возвращаясь к проблеме Туэ, заметим, что, если мы сможем построить бесквадратное (сильно бескубное) со-слово над S, мы также сможем построить произвольно длинные бесквадратные (соответственно сильно бескубные) слова над Е. (Обратная импликация не столь очевидна; однако, как мы увидим далее, она тоже верна.) Следовательно, в свете леммы 1.1 лучшие результаты, на которые можно надеяться, заключаются в решении следующих двух проблем: (i) Построить сильно бескубное со-слово над алфавитом из двух букв (проблема сильной бескубности). (и) Построить бесквадратное со-слово над алфавитом из трех букв (проблема бесквадратности). Из леммы 1.2 следует, что, решив проблемы (i) и (и), мы сможем строить сильно бескубные (соответственно бесквадратные) со-слова, а также слова произвольной длины, обладающие этим свойством, над любым алфавитом, состоящим не менее чем из двух (соответственно из трех) букв. Сейчас мы приведем решения проблем (i) и (и). Читатели, которые сами найдут решение, могут считать себя первооткрывателями (подобно Акселю Туэ) теории формальных языков. 1.3. РЕШЕНИЕ ПРОБЛЕМЫ СИЛЬНОЙ БЕСКУБНОСТИ Рассмотрим DOL-систему G = ({а, &}, А, я), где морфизм А определяется следующим образом: А(а) = а&, h(b) = ba. Тогда последовательность 5(G) начинается словами a, ab% abba, abba baab, abba baab baab abba, .... Вообще, для всех i^l (/+l)-e слово Wi+i последовательности S(G) удовлетворяет равенству o>f+i = o;X» (1.5) где через х' обозначается слово, которое получается из слова х заменой всех а и Ь и наоборот. Докажем равенство (1.5) по индукции. При /= 1 оно очевидно. Переход от i к i + 1 выглядит так: wi+2 = h (a>|+1) = h КО = h К) А К) = где последнее равенство выполняется, так как h(x ') = (h(x))' для всех х по определению А.
14 ГЛ. 1. ПОВТОРЕНИЯ Пусть теперь а есть со-слово, порожденное DOL-систе- мой G. Мы хотим доказать, что а является сильно бескубным. Заметим, что равенство (1.5) дает удобный способ написания произвольно длинного начала со-слова а. Используя группировку, представленную в (1.5) получаем сверхслово а Ь Ьа ЪааЪ ЬааЬаЪЬа ЬааЪаЬЬааЬЬаЬааЬ ... (1.6) Таким образом, (1.6) — это некоторое начало со-слова а. Пробелы использованы только для того, чтобы было ясно, где приписывается новое w\. Для доказательства основной теоремы нам понадобятся некоторые свойства со-слова а. Будет полезно записывать а также в виде а = с1с2с3 ..., (1.7) где каждое с\ — либо а, либо Ь. Лемма 1.3. Ни а3, ни б3 не входят в качестве подслова в а. Ни ababa, ни ЪаЪаЬ не входят в качестве подслова в а. Следовательно, любое подслово х со-слова а, такое, что |jt| = 5, содержит в качестве подслова либо а2, либо б2. Доказательство. Докажем первое утверждение. Если слово а3 или Ьг входит в качестве подслова в а, то оно входит в качестве подслова в некоторое wi. Но это невозможно, так как Wi = h(wi-\) и, следовательно, wi получено приписыванием слов аЬ и Ьа в некотором порядке. Докажем второе утверждение. Предположим, что ababa входит в качестве подслова в со-слово а, начиная с /-й его буквы. Тогда, используя обозначения (1.7), запишем с/с/+1с/+2С/+3с/+4 = ababa. (1.8) Выберем настолько большое /, что |ayf| ^/ +4. Тогда вхождение (1.8) целиком лежит в ш/. Еще раз используя соотношение Wi = h(wi-\)y заключаем, что в wt-\ в качестве подслова входит либо а3, либо Ь3 в зависимости от того, является ли / в (1.8) нечетным или четным. Но это невозможно в силу доказанного выше первого утверждения леммы. Таким же способом (или воспользовавшись соображениями симметрии) можно убедиться в том, что babab не входит в а. Наконец, последнее утверждение является следствием второго, так как, за исключением слов ababa и babab, любое слово длины 5 над {а, Ь) содержит в качестве подслова а2 или Ь2. □ Лемма 1.4. Предположим, что а2 или Ь2 входит в качестве подслова в а, начиная с /-й буквы; тогда у четно.
1.3. РЕШЕНИЕ ПРОБЛЕМЫ СИЛЬНОЙ БЕСКУБНОСТИ 15 Доказательство. Используя обозначения (1.7), предположим, что С/С/+1 есть а2 или б2. Вновь выбираем такое i, что |я>/|^/+1> и применяем соотношение wi = h(Wi-\). В силу этого соотношения, если / нечетно, то c/C/+i есть либо А (а), либо h(b). Так как ни й(а), ни h(b) не есть а2 или б2, лемма доказана. □ Теперь мы можем доказать основную теорему. Теорема 1.5. «-слово а является сильно бескубным. Доказательство. Вновь рассуждая от противного, предположим, что ххс, где с — первая буква х, есть подслово слова а и что никакое слово у yd, где d — первая буква у и |#|<|*|, не является полсловом слова а. (Иначе говоря, ххс — кратчайший возможный контрпример к теореме 1.5.) Если \х\= 1 или |jc| = 2, то одно из слов а3, б3, ababa, babab входит в качестве подслова в а. Так как в силу леммы 1.3 это невозможно, заключаем, что |*| = f>3. (1.9) Предположим, что рассматриваемое вхождение ххс начинается с /-й буквы а. Тогда в обозначениях (1.7) имеем С1 • • • С/+2* = **£• (1-Ю) По лемме 1.3 и (1.9) или а2, или Ь2 входит в качестве подслова в хх. Из этого следует, что или а2, или Ь2 дважды входит в качестве подслова в ххс. Действительно, а2 или Ь2 должно входить в качестве подслова или в х, или в хс. В обоих случаях оно дважды входит в ххс. Теперь из леммы 1.4 можно вывести, что |х|=^ является четным числом. Действительно, если бы / было нечетным, то хотя бы одно из вхождений а2 или Ь2 в ххс должно было бы начинаться с й-й буквы а при некотором нечетном k. Но это невозможно в силу леммы 1.4. Следовательно, t = 2u для некоторого натурального числа и. Предположим сначала, что / в (1.10) четно и, следовательно, / ^ 2. Применяя наш обычный прием, т. е. выбирая достаточно большое число i (такое, что | wt | ^ / + 2t) и используя соотношение wi = h(wi-\)y получаем, что Cj„iCj=ab или Cj_iCj = ba. (Ill) Поскольку j + t четно, отсюда следует, что Cj-i+tci+t = ab или сншс}^ = Ьа. (1.12) Согласно (1.10) Cj = cj+t. Из последнего равенства и равенств (1.11), (1.12) вытекает, что c/_i = C/_i+*. Следовательно, Сп = сп+и гДе /—1<я</ + /. (1-13)
16 ГЛ 1. ПОВТОРЕНИЯ Для O^n^t слово с/-1+2лС/+2л есть либо /i(a), либо h(b). Это следует из соотношения wi = h(wi-i) и нечетности числа /— 1- Теперь в силу (1.13) заключаем, что wt-\ содержит под- слово yydy где d — первая буква слова у и \y\ = t/2 = u. Следовательно, а содержит yyd в качестве подслова. Но это противоречит выбору х. Нам осталось рассмотреть случай, когда /в (1.10) нечетно. Мы рассуждаем, как прежде, продолжая теперь (1.10) до буквы C/+2*+i вместо c/_i. Так как числа / +1 и j + 2t нечетны, слова с/+*с/+*+1 и C/+2^/+2^4-i имеют вид либо h(а), либо /г(6), как это было в (1.11) и (1.12). Следовательно, из равенства С/+* = С/+2* вытекает равенство Cj+t+\ = Cj+2t+\. Значит, сп = сп+и где / < п < j + t + 1. Так же как и в предыдущем случае, отсюда следует, что а содержит подслово yyd, где d — первая буква слова у и \у\ = и, что снова противоречит выбору х. Мы показали, что а является сильно бескубным со-словом над алфавитом {а, &}, и тем самым завершили доказательство теоремы 1.5. П 1.4. РЕШЕНИЕ ПРОБЛЕМЫ БЕСКВАДРАТНОСТИ Теперь обратимся к проблеме построения бесквадратного со-слова над алфавитом из трех букв. Фактически мы можем вывести основное утверждение из уже доказанной теоремы 1.5. Это оказывается возможным благодаря применению одного полезного и весьма распространенного в теории формальных языков приема, состоящего в группировке нескольких букв в одну. С помощью этого приема прежде всего докажем следующую лемму. Лемма 1.6. Существует бесквадратное со-слово р над алфавитом из четырех символов. Доказательство. Рассмотрим со-слово а из теоремы 1.5. Определим новый алфавит Si следующим образом: Ъх = {[аа], [ab], [Ьа], [ЬЬ]). Используя выражение (1.7) для а, определим над алфавитом Ei со-слово $=dld2ds ..., (1.14) полагая dj = [Cj.cj+l] для всех />1. Предположим, что у2 входит в качестве подслова в р, Т. е. у = dj+\ *.. dj+t = dj+t+l ... dj+zu t^\<
Т.4. РЕШЕНИЕ ПРОБЛЕМЫ БЕСКВАДРАТНОСТИ 17 Следовательно, Это означает, что c/+i = C/+*+i = С/+2Ж и £/+« = ty+f+л для l^n^it. Значит, (c/+i ... С/+;)2с;+1 входит в качестве под- слова в а, что противоречит теореме 1.5. Следовательно, р бесквадратно. П Усилим лемму 1.6 до желаемого результата. Для этого удобно ввести новые обозначения для элементов Sb положив [аа] = 1, [ab] = 2, [6а] =3, [6ft] = 4. Теперь начало р примет вид 2432312431232432312324312432312 ... (сравните с (1.6)). По определению р перед символом 1 должен стоять символ 1 или 3. Однако если перед символом 1 стоит он же, то а3 входит в качестве подслова в а, что невозможно в силу леммы 1.3. Значит, в р перед символом 1 всегда стоит символ 3. Точно так же выводятся остальные утверждения следующей леммы. Лемма 1.7. В Р символу 1 всегда предшествует символ 3, а за символом 1 всегда следует символ 2. Символу 4 всегда предшествует символ 2, а за символом 4 всегда следует символ 3. Теперь мы можем доказать основной результат. Теорема 1.8. Существует бесквадратное ©-слово у над алфавитом из трех символов. Доказательство. Рассмотрим алфавит S2 ={1,2,3}. Определим со-слово у как результат замены в р всех вхождений символа 4 символом 1. Таким образом, начало у будет иметь вид Y = 2132312131232132312321312132312 .... Покажем, что у является бесквадратным. Предположим противное: пусть хх входит в качестве подслова в 7, причем х непусто. Отсюда следует, что р содержит подслово t/i#2, такое, что |*/i| = |#2| = |*| = t, и, кроме того, У\ и у2 совпадут, если заменить в них все вхождения символа 4 символом 1. Прежде всего заметим, что t ^ 2, так как в силу лем- доы 1.7 ни одно из слов 11, 14, 41, 44 не входит в качестве подслова в р. Пусть в обозначениях (1.14) У\ = ^/ + 1 • • • **/+£> #2 = ^/+*-И • • • ^/+2*-
18^ ГЛ. !. ПОВТОРЕНИЯ Тогда для любого п, удовлетворяющего неравенствам 1 ^ ^ п ^ /, имеем dj+n = d/+n+;, за исключением случая, когда один из символов dj+n и dj+n+t есть 1, а другой 4. Мы докажем, что этот исключительный случай в действительности невозможен. Рассмотрим сначала фиксированное значение п, удовлетворяющее неравенствам 1 ^ п < t. Если dj+n есть 1 (соответственно 4), то в силу леммы 1.7 dj+n+\ есть 2 (соответственно 3). Следовательно, по нашему допущению относительно у\ и у2, dj+n+\+t тоже есть 2 (соответственно 3). Далее, еще раз применив лемму 1.7, получим df+n = dJ+n+t, 1 < п < t. (1.15) Обратимся теперь к символам d\+t и dj+2t и в нашем доказательстве, основанном на лемме 1.7, вместо последующих символов будем рассматривать предыдущие. Если dj+t есть 1 (соответственно 4), то d}+t-\ есть 3 (соответственно 2). Следовательно, dj+2t~i также есть 3 (соответственно 2). Значит, df+t = dj+2t. Из последнего равенства и (1.15) следует, что {dj+x ... dj+t)2 входит в качестве подслова в р, а это противоречит лемме 1.6. Наше допущение о том, что хх входит в у в качестве подслова, неверно, и тем самым теорема 1.8 доказана. □ Подведем итог полному решению проблемы Туэ в следующей теореме. Теорема 1.9. Если 2 состоит не менее чем из трех символов, то над 2 существует бесквадратное со-слово. Если 2 состоит из двух символов, то над 2 существует сильно бес- кубное со-слово, но не существует бесквадратных слов, имеющих длину более 3. Мы хотим подчеркнуть, что в формулировке предыдущей теоремы выражение «существует» фактически означает, что искомое со-слово может быть эффективно построено: используя (1.5), мы можем вычислить любой символ в а, р, у. За немногими исключениями, и другие доказательства теории формальных языков дают метод построения искомых объектов. 1.5. ПЕРЕКРЫТИЕ По определению слово или со-слово называется бесквадратным, если оно не содержит подслова вида хх, где х непусто. Может случиться, что слово w содержит два «перекрывающихся» вхождения х, т. е. подслово ху = zxy где К1у1 = 1*1<1*|. (1.16)
1.5. ПЕРЕКРЫТИЕ 19 Если это не имеет места, то будем называть w словом без (или свободным от) перекрытий. Следующая характеризационная лемма помимо всего прочего показывает, что рассматривавшиеся выше бесквадратные и сильно бескубные со-слова являются также словами без перекрытий. Лемма 1.10. Слово или со-слово свободно от перекрытий тогда и только тогда, когда оно является сильно бескубным. Доказательство. Пусть w не свободно от перекрытий. Тогда в w найдется подслово ху = zx, такое, что имеет место (1.16). Пусть а — первая буква слова z. По нашему предположению, x = zx\, где первой буквой слова х\ также будет а. Следовательно, zza — подслово w и w не является сильно бескубным. Наоборот, предположим, что w не является сильно бескубным. Тогда в w найдется подслово z\Z\a, где а — первая буква 2ь Полагая z\ = az2y мы видим, что az2az2a является подсловом w. Положим теперь x = az2ay y = z2ay z — az2. Тогда xy = zx — подслово w, и, кроме того, выполнняется (1.16). Отсюда следует, что w не свободно от перекрытий. □ Туэ рассмотрел также понятие, более сильное, чем бес- квадратность. Он называет со-слово над алфавитом 2, содержащим п букв, неприводимым в том случае, когда для любого подслова вида хух (с непустым х) имеет место неравенство \у\^п — 2. Таким образом, при п = 3 это понятие совпадает с понятием бесквадратности. Неприводимое со-слово может быть построено над любым алфавитом 2. (Заметим, что при п ^ 2 каждое со-слово тривиальным образом неприводимо.) Можно усилить условие неперекрывающихся вхождений слова х в w, потребовав, чтобы длина слова у, разделяющего эти вхождения, была ограничена снизу |х|. В этом направлении можно установить следующий результат. Теорема 1.11. Если 2 содержит не менее трех букв, то существует такое со-слово w над 2, что для любого подслова хух (хфХ) со-слова w имеет место \у\ ^ (1/3) |*|. Доказательство этой теоремы дано в [De]. Искомое со-слово порождается DOL-системой ({а, 6, с},й, а), где h (a) = abc acb cab с Ьас Ьса сЪа> h (b) = bca bac abc a cba cab acb, h(c) = cab cba bca b acb abc bac. В [De] обсуждается также вопрос, почему |А(а)| нельзя сделать меньше, и показывается, что постоянная 1/3 является наилучшей из возможных в следующем смысле. Пусть 2
20 ГЛ. I. ПОВТОРЕНИЯ содержит три буквы. Тогда каждое слово над 2 длины ^39 содержит некоторое подслово хух, такое, что х ф X и \у\^ ^(1/3) \х\. 1.6. DOL-СИСТЕМЫ И ю-СЛОВА В заключение этой главы приведем еще несколько примеров бесквадратных ©-слов и одновременно сделаем некоторые общие замечания об ©-словах, порождаемых DOL-си- стемами. Заметим, что ©-слово а из теоремы 1.5 порождается также DOL-системой G{ = ({a, b), h> abba), где h{a) = ab, h{b) = ba> равно как и DOL-системой G2 — ({a, b}, hi9 а), где hx{a) = abbat hi(b) = baab. Это частный случай следующего более общего результата, доказательство которого следует непосредственно из определений. Лемма 1.12. Предположим, что б является ©-словом, порождаемым DOL-системой (2, A, w), и что t^l, /^0—-целые числа. Тогда б порождается также DOL-системой (2,А',Л'(оО). Может случиться также, что исходная DOL-система не порождает никакого ©-слова, но существуют такие натуральные числа i и /, что DOL-система (2, A', W(w)) порождает некоторое ©-слово. Подобный пример приводится в упр. 14, а в упр. 15 обсуждается вопрос о существовании таких чисел. В общем случае вопрос о том, порождают ли две DOL-си- стемы G\ и G2 (удовлетворяющие дополнительному условию для порождения ©-слов) одно и то же ©-слово, достаточно труден. Эта проблема тесно связана с проблемой последова- тельностной эквивалентности для DOL-систем, которая будет рассмотрена ниже (см. гл. 5). Если Gi и G2 последовательности© эквивалентны (т. е. S(Gi)= S(G2)), то они порождают одно и то же ©-слово. Обратное не обязательно верно, как показывает лемма 1.12. Трудно бывает сказать, порождается ли данное ©-слово, определенное некоторым эффективным способом, некоторой DOL-системой. Этот вопрос можно сформулировать как точную (алгоритмическую) проблему разрешения для каждого класса эффективных методов задания ©-слов. Например, ©-слово р из леммы 1.6 было задано сначала не с помощью DOL-системы. Однако р порождается DOL-си-
УПРАЖНЕНИЯ Ш стемой ({1,2, 3,4}, А,"2), где /г(1) = 2431, А(2) = 2432, А (3) = 3123, А (4) = 3124. Общий метод решения проблемы бесквадратности ©-слова, порожденного DOL-системой G, пока неизвестен. В [Bel] дается такой метод для случая, когда алфавит G состоит из трех букв. Мы будем говорить, что морфизм А сохраняет бесквадрат- кость, если h(x) является бесквадратным всегда, когда бесквадратно х. Очевидно, что ©-слово б, порожденное DOL-системой (2, A, w), где w бесквадратно, a А сохраняет бесквад- ратность, само является бесквадратным (если, конечно, удовлетворяются условия порождения ©-слова). Например, в [Т2] Туэ показывает, что морфизм Аь определенный равенствами А, (а) = abcaby hx (b) = acabcb, hx (с) = acbcacb, сохраняет бесквадратность. Таким образом, DOL-система ({а, Ь, с},Й1,а) порождает бесквадратное ©-слово. В то же время DOL-система (2, A, w) может порождать бесквадратное ©-слово даже в том случае, когда А не сохраняет бесквадратность. Примером служит DOL-система ({а, &, с}, Лг, я), где А2 задается равенствами А2 (а) = abCy А2 (6) = ас, А2 (с) = Ь. Можно показать, что порожденное этой системой ©-слово бесквадратно. Однако А2 не сохраняет бесквадратность, так как А2 (aba) = abcacabc. УПРАЖНЕНИЯ 1. Каково число подслов слова до длины п, не содержащего более одного вхождения каждой буквы? Как можно точнее укажите верхнюю границу для числа подслов в общем случае, когда не все буквы слова до различны. 2. Рассмотрим DOL-систему G = ({а, £}, h, а), где А(а) =6и/1(6)=а = ab. Покажите, что длины слов в последовательности S(G) образуют последовательность Фибоначчи. 3. Изменив данное в тексте определение, назовем слово или со-слово сильно бескубным, если оно не содержит подслов вида Ьх2, где Ь — последняя буква слова х. Покажите, что при этом теорема 1.9 остается в силе. (Чтобы установить этот результат, нет необходимости просматривать все доказательство теоремы 1.9.) 4. Назовем примитивным, корнем р(до) слова до из 2* кратчайшее слово и, такое, что до = ип для некоторого п ^ 1. Убедитесь в единственности слова р(до). Докажите, что идо — wu тогда и только тогда, когда р(«) = р(до). Сравните этот результат с леммой 1.10. 5. Докажите, что из равенства umvn = дор, где т, п, р^ 2, следует, что р(и) = p(v) = р(ш). (Этот результат содержится в {LyS].)
22 ГЛ. I. ПОВТОРЕНИЯ Конструкция Туэ применима во многих ситуациях, возникающих в самых разных областях математики; типичный пример — ее использование для доказательства существования непериодических рекуррентных траекторий в динамике (см. [МоН1]). Общим моментом в таких ситуациях, по-видимому, оказывается необходимость создать нечто нерегулярное из нескольких заданных элементов. Дальнейшие примеры будут приведены в упр. 6—8. 6. Среди обычных правил игры в шахматы есть правила о ничьей, утверждающие, в частности, что каждая игра должна содержать лишь конечное число ходов. Предлагались различные модификации этих правил о ничьей, и одна из них состояла в следующем. Множество пешек и фигур на доске перед ходом образует конфигурацию, причем возможно лишь конечное число различных конфигураций. (Ясно, что конфигурация содержит также информацию о том, чей сейчас ход.) Ничья объявляется в том случае, когда некоторая последовательность конфигураций повторилась два раза подряд. (При этом опускается обычное правило о том, что после некоторого числа ходов должна быть сдвинута пешка или взята фигура.) Покажите, что при таких правилах о ничьей возможна бесконечная игра. Ограничьтесь рассмотрением лишь таких конфигураций, в которых у каждого игрока остался только король. 7. Элемент z называется нулем полугруппы S, если для каждого элемента а полугруппы 5 имеет место za = az = z. Полугруппа S называется нильпотентной, если существует такое натуральное k, что Sk = {г}. Постройте порожденную тремя элементами полугруппу 5, не являющуюся нильпотентной и такую, что квадрат каждого элемента 5 равен нулю. 8. Покажите, что существуют конечно-порожденные бесконечные группы, в которых каждый элемент имеет конечный порядок, являющийся делителем некоторого фиксированного числа п (см. [Н]). (Фактически последовательность Туэ используется лишь в одной части доказательства.) !). 9. Рассмотрим идемпотентную полугруппу (т. е. такую, в которой для каждого элемента а имеет место а2 = а). Докажите, что каждая конечно- порожденная идемпотентная полугруппа является полугруппой конечного порядка (см. {Мс]). Сопоставьте этот результат с упр. 7 и 8. 10. Рассмотрите со-слово а0а{а2 ... над алфавитом {а, Ь), определенное следующим образом: ап = а (соответственно ап = Ь), если в двоичной записи числа п имеется четное (соответственно нечетное) число единиц. Докажите, что это со-слово равно со-слову из теоремы 1.5. 11. Рассмотрим «дважды бесконечные» слова . . . С_2С-\С0С\С2 • * * * Приведите пример бесквадратного дважды бесконечного слова над алфавитом {а, Ь, с] и сильно бескубного дважды бесконечного слова над алфавитом {а, Ь). 12. Порождается ли со-слово у из теоремы 1.8 какой-либо DOL-систе- мой? (Напомним, что у получено применением сохраняющего длину гомоморфизма к со-слову р, порожденному некоторой DOL-системой. Будем говорить, что со-слово, построенное таким способом, порождается CDOL- системой.) 13. Рассмотрим алфавит 2 = {0, 1, 2} и отображения fi и /а алфавита 2 в 23, заданные равенствами МО) = 012, МО =-120, Ы2) —201, U (0) = 210, U (1) = 021, U (2) - Ю2. Расширим область определения ft и f2 на 2*, полагая для всех а из 2 и w 1) Эта задача является знаменитой («большой») проблемой Бернсайда, решенной П. С. Новиковым и С. И. Адяном (см. послесловие). — Прим. перев.
УПРАЖНЕНИЯ 23 из 2* МЯ)-ЫЯ)-л. /, (aw) = /, (а) /2 (а>), /a (ао>) = Ь (л)/ i («О- Покажите, что последовательность {/{(0), * = 0, 1, 2, ...} определяет бесквадратное (о-слово. Покажите также, что это to-слово не порождается никакой CDOL-системой (см. [Ве2]). 14. (й-язык, порождаемый DOL-системой (2, A, w), состоит из всех (о-слов 6, таких, что б порождается некоторой DOL-системой (I, А*, А'(«»)), />1, />0. Рассмотрим DOL-систему G из упр. 2 Покажите, что, хотя сама G не порождает никакого со-слова, со-язык системы G состоит из двух со-слов, ни одно из которых не является бескубным. Содержат ли эти со-слова под- слова вида х\ где х — непустое слово? 15. Предположим, что проблема равенства со-слов, порождаемых двумя заданными DOL-системами, удовлетворяющими дополнительному условию о порождении со-слов, разрешима. (В действительности эта проблема остается пока открытой1).) Покажите, что при этом предположении проблема равенства со-языков, порождаемых двумя DOL-системами, также разрешима. (Здесь очень полезен результат, установленный в [Li3], в соответствии с которым проблема пустоты со-языка, порожденного DOL-системой, разрешима.) 16. DOL-система G называется локально-катенативной, если ее последовательность S(G): w0t aii, w2, ... удовлетворяет следующему условию. Существуют положительные целые числа /, ii, ..., it, такие, что равенство выполняется для всех достаточно больших п. (Например, DOL-система из упр. 2 локально-катенативна, если п /г—2 /г—1 / Докажите, что со-язык, порождаемый локально-катенативной DOL-системой, всегда непуст и что проблема равенства со-языков, порождаемых двумя локально-катенативными DOL-системами, разрешима. 1) Разрешимость этой проблемы и решение задачи 15 указываются в недавно опубликованной статье [СиН*]. (Здесь и далее звездочкой отмечены работы, включенные в составленный при переводе список дополнительной литературы.) В статье [CuS3*] доказывается, что из разрешимости этих проблем следует разрешимость обычной проблемы последова- тельностной эквивалентности для DOL систем, а также решается ряд других задач для DOL-систем (см. гл. 5 книги) и для их обобщений DTOL- систем, — Прим. перев.
Регулярность; характеризации 2.1. ПРЕДСТАВИМОСТЬ Обратимся теперь к рассмотрению некоторых весьма простых и естественных «устройств» для задания языков. Мы увидим, что кажущиеся совершенно различными классы таких устройств эквивалентны в том смысле, что задают один и тот же класс языков. Последнее утверждение составляет содержание теоремы Клини. Эта красивая теорема сейчас, как и раньше, является одним из краеугольных камней теории языков. Она характеризует простейший и широко изучавшийся класс языков, а именно класс регулярных языков. Теорема Клини также хорошо укладывается в нашу общую концепцию морфизмов, поскольку дает характеризацию для языков, получаемых простыми морфическими представлениями. Понятие представимости мы определим сначала с помощью (конечных) направленных или ориентированных графов (короче, орграфов) G. По определению орграф есть пара G=(V, £), где V — конечное множество, элементы которого называются вершинами, а Е — некоторое множество упорядоченных пар элементов из V. Элементы множества Е называются стрелками. В дальнейшем мы будем рассматривать размеченные (labeled) орграфы: каждая стрелка помечается одной или несколькими буквами из алфавита 2. Кроме того, выделяются два (не обязательно непересекающихся) подмножества V, называемые множествами начальных и заключительных вершин. Размеченный орграф с выделенными начальными и заключительными вершинами называется конечным автоматом. Ниже приводится пример конечного автомата Gi над алфавитом 2= {а, 6} с шестью вершиуами и шестью стрелками: а, Ъ
2.1. ПРЕДСТАВИМОСТЬ 25 Начальные (соответственно заключительные) вершины отмечены маленькими входящими (соответственно выходящими) стрелками. Любому конечному пути в размеченном орграфе мы приписываем одно или несколько связанных с ним слов, читая буквы вдоль этого пути. Одному пути может соответствовать несколько слов, если некоторая входящая в этот путь стрелка помечена двумя или более буквами. Обращаясь к нашему примеру, мы видим, что каждое из слов a, by aby bby aat aab, abb (2.1) соответствует некоторому пути из начальной вершины в заключительную, причем слово аЬ соответствует двум таким путям. (Мы опустили формальное определение пути и соответствующего ему слова, но читатель может при желании определить эти понятия самостоятельно.) Теперь введем наиболее важное для наших рассмотрений понятие. Язык L(G), представленный конечным автоматом G над алфавитом 2, состоит из всех слов w над 2, таких, что w соответствует некоторому пути из какой-либо начальной вершины автомата G в какую-либо заключительную его вершину. Считается, что пути, не содержащему стрелок, соответствует пустое слово X. Следовательно, X принадлежит языку L(G) тогда и только тогда, когда некоторая начальная вершина одновременно является заключительной. Таким образом, слова из (2.1) принадлежат языку L(G.i), представленному автоматом G\ из нашего примера. Легко видеть, что в действительности язык L(G\) состоит в точности из слов (2.1). Итак, в этом случае язык L(G\) конечен. Язык L(G2)y который представлен конечным автоматом G2, определяемым орграфом бесконечен, что очевидно, поскольку он содержит, например, все слово вида alb2 при i^ 1. Читатель может попытаться явно описать весь язык £(62). Хотя здесь автомат имеет только три вершины, такое описание не вполне очевидно
26 ГЛ. 2. РЕГУЛЯРНОСТЬ; ХАРАКТЕРИЗАЦИИ Язык L называется пред ставимым, если существует такой конечный автомат G, что L=L(G). Легко видеть (см. упр. 1), что все конечные языки представимы. С другой стороны, например, язык L={a'6/|f ^ 1} не представим. Интуитивные соображения состоят в том, что конечный автомат способен «считать» только до числа своих вершин и, следовательно, не может порождать язык L. Для более строгого доказательства этого факта надо рассмотреть произвольный конечный автомат G, для которого выполнялось бы условие L{G) = L. Если i превосходит число вершин в G, то любой путь из начальной вершины в заключительную, которому соответствует слово alb\ дважды проходит через некоторую вершину на участке, соответствующем подслову аК Но это означает, что существует число / < i9 такое, что слово a'fe' принадлежит L(G)> а это противоречит предположению. Теорема Клини, которая будет доказана ниже, дает исчерпывающую характеризацию представимых языков. Прежде чем перейти к этой теореме, мы обсудим некоторые эквивалентные определения представимости. Их эквивалентность приведенному выше определению будет достаточно очевидна. Для заданного алфавита 2 и положительного целого п рассмотрим отображение А алфавита 2 в множество (пХп)- матриц, элементы которых равны 0 или 1. Отображение А продолжается на 2* с помощью следующих условий: А (Я) — единичная матрица и для произвольных слов w\ и w2 выполняется равенство h(w\W2)= h(wi)h(w2). (В правой части этого равенства стоит произведение матриц.) Таким образом, А будет морфизмом, отображающим 2* в мультипликативный моноид (я X я)-матРВД' Рассмотрим теперь n-мерные вектор-строку я и вектор- столбец £ с элементами 0 и 1 и для заданного слова шбЕ' образуем произведение яА(о>)£. (2.2) Очевидно, для любого w произведение (2.2) является неотрицательным целым числом. Те слова w, для которых произведение (2.2) положительно, образуют язык над 2, называемый языком, представленным тройкой (А, я, £). Говорят, что язык L матрично представим, если для некоторого п он представим какой-либо тройкой (А, я, £). Лемма 2.1. Язык L представим тогда и только тогда, когда он матрично представим. Доказательство. Для заданного конечного автомата G над алфавитом 2 построим тройку (А, я, £) следующим образом. Пусть п — число вершин в G. Зафиксируем произвольное упорядочение вершин. Для любого t = l, ..., п /-й эле-
2.1. ПРЕДСТАВИМОСТЬ 27 мент в я (соответственно в £) равен 1 тогда и только тогда, когда i-я вершина в G является начальной (соответственно заключительной) вершиной. Если i и / — числа, не превосходящие я, а а — элемент 2, то (*',/)-й элемент матрицы h(a) равен 1 в том и только том случае, когда в G имеется помеченная буквой а стрелка, ведущая из i-й вершины в /-ю. Наоборот, с данной тройкой (Л, я, £;) подобным же образом можно сопоставить конечный автомат. Таким образом устанавливается взаимно-однозначное соответствие между конечными автоматами G и тройками (й, я, £). Мы утверждаем далее, что это соответствие сохраняет представимость языков: если L = L(G) и L\ представлен тройкой (Л,я,?), соответствующей G, то L = L\. Чтобы доказать это утверждение, покажем по индукции, что при любом k ^ О оба языка L и L\ содержат одни и те же слова длины k. Это верно для й = 0: оба языка L и L\ содержат X в том единственном случае, когда некоторая начальная вершина G является также заключительной вершиной. Пусть по предположению индукции оба языка L и L\ содержат одни и те же слова длины, меньшей k> и пусть w — слово длины k. Запишем w в виде w — Wiat где а— некоторая буква. Тогда следующие утверждения эквивалентны: (i) a/sir, (ii) {nh(w\)){h(a)l>) положительно; (iii) W\ принадлежит языку, представленному тройкой (Л,я,^), где ^ получается из h(a)t, заменой положительных элементов на 1; (iv) w\ принадлежит языку, представленному конечным автоматом G', полученным из G заменой заключительных вершин на те, которые соответствуют вектору £'; (v) w e L. В частности, эквивалентность (iii) и (iv) следует из предположения индукции (которое нужно применить к G' и тройке (й, я, £')). Эквивалентность (i) и (ii), (ii) и (iii) и (iv) h(v) следует из определений и правила умножения матриц. Следовательно, мы завершили индуктивный шаг и тем самым доказали лемму. □ Другое, очевидно эквивалентное, определение представимости получается при рассмотрении праволинейных грамматик. Для будущих целей мы введем общее понятие грамматики и различные типы грамматик. Система подстановок есть пара (S, Р), где S — алфавит, а Р — конечное множество упорядоченных пар слов над S. Элементы (w, и) множества Р называются правилами под- становки (или продукциями) и обозначаются w-+u. Для данной системы подстановок отношение выводимости =ф- на множестве Е* определяется следующим образом. Для любых
28 ГЛ. 2. РЕГУЛЯРНОСТЬ; ХАРАКТЕРИЗАЦИИ слов х и у отношение х =^ у имеет место тогда и только тогда, когда существуют такие слова х\, х%, w, u% что X = XiWX2, y = XiUX2 и w-*u является продукцией системы. Рефлексивное транзитивное замыкание отношения =>- обозначается через =ф-*. (Таким образом, х=^*у имеет место тогда и только тогда, когда существуют слова х\9 ..., хп, такие, что х = хи у = хп и Xi=*-Xi+\ имеет место для каждого /=1, ..., п—1.) Грамматикой называется четверка G = (/?, S^v, 2г, 2s), где /?=(2,Р)— система подстановок, 2# и 2Г— непересекающиеся алфавиты, такие, что 2 = 2#и2г, a 2s— подмножество 2#. Элементы из 2#, 2г и 2s называются нетерминальными, терминальными и начальными символами соответственно1). Язык, порождаемый грамматикой G, определяется следующим образом: L(G) = {w^ I>*T\S =>* w для некоторого 5е 2S}. (Здесь =^* есть отношение, определенное системой подстановок /?.) Для / = 0, 1,2, 3 G называется грамматикой типа /, если выполняется i-e из приведенных ниже ограничений, наложенных на систему продукций Р. (0) Никаких ограничений. (1) Каждая продукция в Р имеет вид w\Aw2^-W\WW2, где w\ и W2 — произвольные слова над 2, w — непустое слово над 2, а Л принадлежит 2# (с возможным исключением для продукции S-^X, Se2s, вхождение которой в Р, однако, влечет невхождение 5 в правую часть любой продукции). (2) Каждая продукция имеет вид Л->ш, где ЛеЕлг. (3) Каждая продукция имеет вид или Л->аВ, где ДВеЕлгиае2г, или А -> Я, где А <= 2#. Язык, порождаемый грамматикой типа /, называется языком типа i, i = 0, 1,2, 3. Можно показать, что определенные таким образом четыре семейства языков образуют строго убывающую иерархию, обычно называемую иерархией Хомского. Языки типа 0 называются также рекурсивно перечислимыми. Языки типа 1 (типа 2, типа 3) называются контекстными (соответственно контекстно-свободными, праволинейными). В задачи настоящей книги не входит систематическое исследование этой иерархии, и интересующийся читатель может обратиться к [Sa2]. 1) Или для краткости нетерминалами, терминалами и аксиомами соответственно. — Прим. перев.
2.2. КОНЕЧНЫЕ ДЕТЕРМИНИРОВАННЫЕ АВТОМАТЫ 29 Для класса языков, рассматриваемых в этой главе, особый интерес представляют праволинейные грамматики, как показывает следующая лемма. Лемма 2.2. Язык представим тогда и только тогда, когда он является языком типа 3. Доказательство. Лемма следует непосредственно из определений. Как и в доказательстве предыдущей леммы, надо построить взаимно-однозначное соответствие между двумя классами представляющих устройств. Кратко поясним, как строится это соответствие. Для заданного автомата Я с множеством вершин 2# и алфавитом пометок 2г построим праволинейную грамматику G следующим образом. 2# и 2г суть нетерминальный и терминальный алфавиты соответственно. Алфавит 2s состоит из всех начальных вершин. Продукция А-^-аВ принадлежит G тогда и только тогда, когда существует стрелка, помеченная буквой а и ведущая из Л в В в автомате Я. Далее, продукция А-+Х принадлежит G в том и только том случае, когда А является заключительной вершиной в Я. Других продукций в G нет. Ясно, что аналогичным образом можно построить автомат Я по грамматике G. Это построение сохраняет определяемый язык. □ 2.2. КОНЕЧНЫЕ ДЕТЕРМИНИРОВАННЫЕ АВТОМАТЫ Рассмотрим теперь еще одну характеризацию представимости. Мы покажем, что для определения всего семейства представимых языков достаточно некоторого подкласса конечных автоматов. (С автоматами этого подкласса очень удобно работать.) Конечный автомат называется конечным детерминированным автоматом, если для каждой вершины А и каждой буквы а в алфавите пометок существует в точности одна стрелка, ведущая из Л и помеченная буквой а, и, кроме того, имеется только одна начальная вершина. Заметим, что рассмотренный выше автомат G2 является конечным детерминированным автоматом. Лемма 2.3. Язык представим тогда и только тогда, когда он может быть представлен конечным детерминированным автоматом. Доказательство. Поскольку часть «тогда» утверждения леммы очевидна, покажем, что каждый представимый язык может быть представлен конечным детерминированным автоматом. Рассмотрим язык L = L(G), представленный конечным автоматом G. Наша цель состоит в построении конечного детерминированного автомата G', такого, что L = L(G').
30 ГЛ. 2. РЕГУЛЯРНОСТЬ; ХАРАКТЕРИЗАЦИИ Метод, который мы собираемся применить — переход к подмножествам, — часто оказывается весьма полезным. Определим сначала множество вершин автомата G'. Вершины автомата G' будут находиться во взаимно-однозначном соответствии с подмножествами множества вершин автомата G (включая пустое множество). Для простоты вершинами G' будем считать сами указанные выше подмножества. Начальной вершиной G' является множество, состоящее из всех начальных вершин автомата G. Вершина М автомата G' является заключительной в том и только том случае, когда она (как подмножество множества вершин G) содержит какую- либо заключительную вершину автомата G. Алфавит пометок для стрелок автомата G' совпадает с алфавитом пометок для стрелок автомата G. Для каждой вершины М автомата G' и каждой пометки а в G' имеется помеченная буквой а стрелка, ведущая из М в вершину {х\ в G имеется помеченная а стрелка, ведущая из какого-либо элемента М в х}. Из этого определения ясно, что G' — конечный детерминированный автомат. Кроме того, L(G) = L(G'), поскольку если в автомате G существует путь из начальной вершины s0 в заключительную вершину sb помеченный словом w, то в автомате G' также существует помеченный словом w путь из начальной вершины в заключительную вершину, содержащую s\t и обратно. Это следует из самого построения. Отметим, в частности, роль пустого множества 0 как вершины G/, которая оказывается тупиковой вершиной (так сказать, «мусорным ящиком»): раз войдя в нее, ее уже нельзя покинуть. □ В большинстве случаев конечный детерминированный автомат G', построенный в предыдущем доказательстве, будет излишне громоздким; тот же самый язык может быть представлен автоматом G" с меньшим числом вершин 1). Такой G" с наименьшим числом вершин является единственным (с точностью до изоморфизма) и легко строится по G'; см. упр. 2. Результаты, доказанные выше, суммируются в следующей теореме. Теорема 2.4. Для языка L эквивалентны условия: (i) L представим; (ii) L матрично представим; (iii) L представим конечным детерминированным автоматом; (iv) L является языком типа 3. 1) Это, однако, имеет место не всегда Для некоторых языков построенный автомат Q' имеет наименьшее возможное число вершин.— Прим. ред.
2.2 КОНЕЧНЫЕ ДЕТЕРМИНИРОВАННЫЕ АВТОМАТЫ 31 До сих пор мы не объясняли нашу терминологию. Почему некоторые размеченные орграфы называются автоматами? Хотя мы не намерены пускаться в систематическое обсуждение теории автоматов, все же уместно сделать следующие замечания. Пусть дан понимаемый в некотором содержательном смысле конечный детерминированный автомат. Его можно рассматривать как машину с конечным числом внутренних состояний, символически представленных вершинами. Различные метки на стрелках суть разные входные сигналы, или, короче, входы. Орграф описывает поведение машины, показывая, в какое новое состояние она переходит, получая в определенном состоянии определенный входной сигнал. Машина всегда начинает работу в начальном состоянии. Заключительные состояния можно рассматривать как допускающие: если слово w вызывает переход из начального состояния в одно из заключительных, то оно допускается машиной; в противном случае оно отвергается. Поэтому конечные детерминированные автоматы часто называются распознавателями с конечным числом состояний. Вместо орграфа для задания автомата можно использовать таблицу переходов (т. е. двухместную функцию, описывающую переходы состояний). Точно так же наши конечные автоматы можно рассматривать как недетерминированные машины: каждой конфигурации может соответствовать несколько возможных вариантов поведения (или вообще никаких вариантов). Слово w допускается в точности тогда, когда оно может вызвать последовательность переходов из некоторого начального состояния в некоторое заключительное: все возможные неудачи не принимаются во внимание, если существует хотя бы одна приводящая к успеху последовательность переходов, вызываемая словом w. Из теоремы 2.4 вытекает, что распознающие способности конечных детерминированных автоматов и конечных недетерминированных автоматов одинаковы. Представимые языки обладают весьма полезным свойством: существуют алгоритмы для решения практически всех задач, касающихся этих языков. Этим свойством не обладают контекстно-свободные языки, не говоря уже о языках двух высших классов иерархии Хомского. В следующей теореме формулируются некоторые результаты, которые легко получить уже сейчас. Теорема 2.5. Дополнение представимого языка представи- мо. Существует алгоритм, выясняющий, является ли данный представимый язык (i) пустым, (и) бесконечным. Доказательство. Рассмотрим первое утверждение. По теореме 2.4 любой представимый язык L над S может быть представлен конечным детермированным автоматом G. Оче-
32 ГЛ. 2. РЕГУЛЯРНОСТЬ; ХАРАКТЕРИЗАЦИИ видно, дополнение к L (т. е. множество слов из 2*, не принадлежащих L) может быть представлено конечным детерминированным автоматом, полученным из G заменой всех заключительных состояний на незаключительные и наоборот. Теперь рассмотрим второе утверждение. Если задан конечный автомат G, то несложно выяснить, существует ли путь из какой-либо начальной вершины в какую-либо заключительную, и, следовательно, определить пуст ли язык L(G) или нет. (Более конкретно, мы рассматриваем сначала множество 5о начальных вершин автомата G, потом множество Si, состоящее из вершин, к каждой из которых ведет некоторая стрелка из вершины, содержащейся в So, затем множество S2, состоящее из вершин, к каждой из которых ведет некоторая стрелка из вершины, содержащейся в Si и т. д. Процедура завершается, или когда мы достигаем некоторой заключительной вершины, или когда оказывается, что некоторое множество Si не содержит новых вершин, т. е. вершин, не принадлежащих никакому S/ при / < i.) Вопрос о бесконечности языка L(G) решается аналогичным образом: L{G) бесконечен тогда и только тогда, когда существует путь, ведущий из начальной вершины в заключительную и обладающий следующим дополнительным свойством: этот путь содержит цикл, т. е. подпуть (состоящий хотя бы из одной стрелки), ведущий из некоторой вершины Ь в ту же самую вершину. □ В связи с предыдущим доказательством читателю полезно обратиться к упр. 4. 2.3. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ Важную роль в теории формальных языков играют разные операции над языками. Поскольку языки являются множествами, для них естественно определены булевы операции объединения, пересечения и дополнения. Для двух языков L\ и L2 L\ U L2 и L\ П L2 обозначают теоретико-множественное объединение и пересечение соответственно. Если L\ есть язык над алфавитом 2, но не над каким-либо собственным подал- фавитом алфавита 2 (т. е. 2 является минимальным алфавитом для Li), то дополнение ~L\ языка L\ состоит из всех слов из 2*, не принадлежащих языку L\. (Если мы хотим обеспечить единственность дополнения, то надо указать алфавит, поскольку любой язык над 2 является также языком над произвольным алфавитом, содержащим 2. В доказательстве теоремы 2.5 молчаливо предполагалось, что алфавит заранее задан.)
2.3. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ 33 Катенация (или произведение) двух языков L\ и L* определяется как L{L2 = {w[W2\wi^ Li для /=1, 2}. Катенация, очевидно, является ассоциативной операцией, и, следовательно, для / ^ 1 можно использовать обычное определение степени U. Кроме того, L0 определяется как язык {Я,}. Катенативным замыканием L* языка L называется объединение всех степеней V для / ^ 0. Таким образом, слово w принадлежит языку L* тогда и только тогда, когда или w = X, ^или w является катенацией любого конечного числа слов из L. Эти три операции — объединение, катенация и катенатив- ное замыкание — называются регулярными. Для данного алфавита 2 пустой язык 0 и каждый язык {а}, где аеЕ, называются атомарными языками над 2. Язык над 2 называется регулярным, если он может быть получен из атомарных языков с помощью конечного числа применений регулярных операций. Регулярное выражение — это формула, показывающая, как определяемый ею язык получается из атомарных языков посредством регулярных операций. Более точна регулярное выражение над 2 рекурсивно определяется следующим образом: (i) 0 и каждая буква а из 2 являются регулярными выражениями над 2; (п) если а и р— регулярные выражения над 2, то таковыми являются (aUP), (оф) и а*; (Hi) все регулярные выражения над 2 получаются по (1) и (и). Каждое регулярное выражение над 2, очевидно, задает некоторый язык над 2: 0 задает пустой язык, а — язык {а}, (а UP) — объединение языков, обозначенных аир, (оф)— их катенацию, а а* — катенативное замыкание языка, обозначенного через а. Например, регулярное выражение a(bb)* задает язык {ab2i\i^0}. (Необязательные скобки в регулярных выражениях мы опускаем. Порядок следования опера- ций тот же, что и в алгебре: катенативное замыкание сильнее катенации, а катенация сильнее объединения.) Регулярные операции и языки иногда называются рацио- нальными, поскольку регулярные операции напоминают обычные рациональные операции. В теории формальных степенных рядов (см. [SalS]) это сходство выражено особенно отчетливо. Мы определили два семейства языков — представимые и регулярные языки — совершенно разными способами: первые посредством распознающего устройства, а вторые посред-
34 ГЛ. 2. РЕГУЛЯРНОСТЬ; ХАРАКТЕРИЗАЦИИ ством рекурсивного построения. Теорема Клини утверждает, что в действительности эти семейства совпадают. Сначала мы установим, что семейство регулярных языков входит в семейство представимых языков. Лемма 2.6. Семейство представимых языков замкнуто относительно регулярных операций. Следовательно, каждый регулярный язык представим. Доказательство. Второе утверждение следует из первого, поскольку представимость каждого атомарного языка очевидна. Рассмотрим первое утверждение. Предположим, что языки L\ и L2 представимы. В силу леммы 2.2 можно предполагать, что Ц = L(Gt)y где G, является грамматикой типа 3 для /=1,2. Поскольку нетерминалы всегда можно переименовать, не изменяя порождаемого языка, то в дальнейшем можно считать, что нетерминальные алфавиты грамматик G\ и G2 не пересекаются. Теперь для каждого из языков 1 U 2=== 3' ^12=== 4» 1 == 5 легко построить грамматику О/ типа 3, порождающую язык Ц (/ = 3,4,5). Действительно, для построения G3 достаточно взять объединения соответствующих компонент грамматик G\ и G2: нетерминалов, терминалов, начальных символов и систем подстановок. Терминальный (соответственно нетерминальный) -алфавит G4 является объединением терминальных (нетерминальных) алфавитов грамматик G\ и G2. Начальными символами грамматики G4 являются начальные символы грамматики G\. Множество продукций грамматики G* состоит из (i) продукций грамматики G2; (ii) продукций грамматики Gi, за исключением тех, которые имеют вид Л-^Х, и (iii) продукции А-+а для каждой продукции А-+К грамматики G\ и каждой продукции В-у а грамматики G2, где В — начальный символ. Наконец, множество продукций грамматики б5 состоит из продукций грамматики G\ и, кроме того, из (i) продукции А->а для каждой продукции А-+Х и каждой продукции £->а из Gb где В — начальный символ в G\\ (ii) продукции В'-^Х, где В' — новый начальный символ, добавляемый к алфавиту G\. (Заметим, что (и) необходимо для того, чтобы обеспечить вхождение X в порождаемый язык.) Теперь утверждение леммы 2.6 следует из леммы 2.2. □
2.4. ТЕОРЕМА КЛИНИ 35 Используя теорему 2.5 и лемму 2.6 (а также тот факт, что пересечение можно выразить через объединение и дополнение), мы приходим к следующему результату. Теорема 2.7. Семейство представимых языков замкнуто относительно булевых операций. Заметим, что наше доказательство теоремы 2.7 конструктивно: если язык L получен посредством булевых операций из представимых языков L\t • • • > ^л и заданы конечные автоматы, представляющие Lb ..., L„, то можно построить автомат, представляющий L. Ясно, что для произвольных L\ и L2 равенство Li=L2 выполняется тогда и только тогда, когда ~L{ Л L2 = LX Л ~L2=0. В силу теоремы 2.5 проблема пустоты представимого языка разрешима. Отсюда мы получаем следующий результат. Теорема 2.8. Существует алгоритм, выясняющий, представляют ли два данных конечных автомата один и тот же язык. Теорема 2.8 замечательна, потому что обычно нет алгоритмов проверки эквивалентности устройств, определяющих языки. Например, в гл. 5 будет показано, что для контекстно- свободных грамматик такого алгоритма не существует. 2.4. ТЕОРЕМА КЛИНИ Теперь докажем, что семейства регулярных и представимых языков совпадают. Теорема 2.9. Язык представим тогда и только тогда, когда он регулярен. Доказательство. В силу леммы 2.6 достаточно доказать, что каждый представимый язык регулярен. По лемме 2.3 для этого достаточно доказать, что каждый язык, представимый конечным детерминированным автоматом, регулярен. Предположим, что L = L(G), где G — конечный детерминированный автомат с п вершинами qu ..., Яп, л> 1, и начальной вершиной q\. Через L(i,j,k), где 1 ^/^Аг, 1^/^/г и 0 ^ k ^ п9 обозначим семейство помечающих слов всех таких путей в G из qi в qj, которые не проходят ни через одну вершину qty где t>k (из определения ясно, что A,eL(i,/,А)^ в точности тогда, когда / = /). Для всех i и у язык L(i, у, 0) либо пуст, либо представляет собой объединение некоторых из языков {X} и {а}, где а пробегает алфавит языка L(G). Следовательно, для любых
36 ГЛ. 2. РЕГУЛЯРНОСТЬ; ХАРАКТЕРИЗАЦИИ i и j язык L(i9 /, 0) регулярен. (Заметим, что {А,} обозначается регулярным выражением 0*.) Продолжая индукцию по А, предположим, что для фиксированного kf 0 ^ k ^ п— 1, каждый язык L(i, /, k) регулярен. Очевидно, что для любых i и / L(i,j, k+l) = = L(/, и k) U L(i, k+l, k)L(k+lt k+l, k)*L(k+l, /, ft), откуда мы заключаем, что каждый язык L(i, j,k+ 1) регулярен. Следовательно, по индукции каждый язык L(/, /, п) также регулярен. Но язык L = L(G) представляет собой объединение языков L(l,/, n)y таких, что q\ является заключительной вершиной G; поэтому язык L регулярен. □ Еще раз отметим, что все рассуждения, проведенные в доказательстве теоремы 2.9, конструктивны: если дано регулярное выражение для языка L, то можно построить конечный (или конечный детерминированный) автомат, представляющий L, и обратно. Таким образом, в силу теоремы 2.8 существует алгоритм, устанавливающий, задают ли два данных регулярных выражения один и тот же язык. Мы хотим подчеркнуть, что алгоритмы, вытекающие из приведенных выше доказательств, не являются самыми практичными. В конкретных ситуациях специфические соображения или алгоритмы, приведенные, например, в [Sal], оказываются более удобными. Отметим, наконец, что один и тот же язык может быть задан регулярными выражениями, которые выглядят совершенно по-разному. Читатель может при желании проверить, что регулярные выражения (аЬ*с)* и 0* U а{Ь [} cafe задают один и тот же язык; в свою очередь регулярные выражения (Ьа U aab)*a* и (a U ab U Ьа)щ тоже залают один язык. УПРАЖНЕНИЯ 1. Покажите, что каждый конечный язык представим. (Выведите это из определения представимости; это утверждение, конечно, непосредственно следует из теоремы Клини.) 2. Назовем весом регулярного языка L и обозначим weight (L) наименьшее число вершин в конечном детерминированном автомате, представляющем Л*. Постройте алгоритм, для нахождения weight (L), а также со-
УПРАЖНЕНИЯ 37 ответствующего минимального автомата. Покажите, что последний является единственным с точностью до изоморфизма. (Тривиальный, но практически неэффективный алгоритм состоит в систематическом переборе всех автоматов с весом, меньшим веса данного, и применении теоремы 2.8. Более эффективный алгоритм можно найти, например, в [Sal]1).) 3. Назовем представляющим числом регулярного языка L и обозначим герг (L) наименьшее возможное число заключительных вершин в конечном детерминированном автомате, представляющем L. Покажите на примерах, что герг (L) может быть произвольно большим. Исследуйте алгоритмы нахождения weight (L) и герг (L) для конечного языка L (см. [Sal]). 4. Покажите, что регулярный язык, представимый конечным детерминированным автоматом с п вершинами, бесконечен тогда и только тогда, когда он содержит такое слово wf что п ^ \w\ <2/i. Докажите также «лемму о накачке», утверждающую, что каждое достаточно длинное слово w в регулярном языке L может быть записано в виде w = tuv, где и ф X и tulv e L для всех i = О, 1,2,.... 5. Пусть L — любой язык над алфавитом {а}. Докажите, что язык L* регулярен. 6. Рассмотрите произведение (2.2), сомножители которого определены таким же'образом, как в доказательстве леммы 2.1. Покажите, что это произведение равно числу различных помеченных словом w путей из начальных вершин в заключительные. 7. Пусть L — язык над алфавитом 2. Язык L индуцирует отношение эквивалентности sL на множестве 2*, задаваемое условием: и ssLv имеет место тогда и только тогда, когда не существует слова w, такого, что только одно из слов uw и vw принадлежит L. Покажите, что язык L регулярен тогда и только тогда, когда индекс (т. е. число классов эквивалентности) отношения ss£, конечен. Покажите также, что индекс s=L равен weight (L). (Имеется весьма обширная литература, касающаяся отношения эв1. Дополнительная информация о нем содержится, в частности, в [Ei], [Sal] и [Sa2]2).) 8. Рассмотрим равенство а = р регулярных выражений аир, означающее, что аир задают один и тот же язык. Существует большое количество верных равенств, причем некоторые из них описывают простые свойства объединения и катенации, а другие выражают более тонкие соотношения между катенативным замыканием и прочими операциями. Например, верны следующие равенства, в которых а, р и у— произвольные регулярные выражения: a U (P U Y) = (a U Р) У Y> a(PY) = (<*P) Y, а U P = P U а, а(Р U у)==аР U aY, (а U P)Y = «Y U Py, 0*а = а, 0а = 0, а* = а*а110*, a* = (aU0*)*. Из приведенных выше равенств можно получить новые верные равенства посредством одновременной подстановки регулярных выражений вместо букв и следующего правила вывода: из равенства a = ap Uy следует равенство а = yP* пРи условии, что язык, заданный р, не содержит пустого слова. Покажите, что все верные равенства получаются таким способом (см. [Sal] и [Sa2], а также [MiS], где получено обобщение этого результата). 1) Вопросы эквивалентности состояний автоматов и минимизации подробно и глубоко разбираются в основополагающей статье Э. Ф. Мура[М*]. См. также [AHU], с. 165—168 и 354—366 перевода, и [ТрБ*].—Прим. перев. 2) Отношение =L было введено и изучалось Рабином и Скоттом; см. [PC*], а также [La]. — Прим. перев.
38 ГЛ. 2. РЕГУЛЯРНОСТЬ; ХАРАКТЕРИЗАЦИИ 9. Исследуйте со-языки, соответствующие конечным детерминированным автоматам. Подробнее обобщим понятие, введенное в упр. 1.14, следующим образом. Для каждого языка L соответствующий, со-язык состоит из со-слов а, таких, что L содержит бесконечно много префиксов со-слова а. Что можно сказать об со-языках, соответствующих регулярным языкам? (Более подробные сведения можно найти в [Ei]1).) 10. Покажите, что каждое из со-слов, рассмотренных в связи с проблемой Туэ (теоремы 1.5 и 1.8, лемма 16), встречается в со-языке, соответствующем некоторому регулярному языку. Покажите также, что такой со-язык обязательно содержит в качестве подслов со-слова с произвольно высокими степенями х\ (По этой причине при решении проблемы Туэ DOL- системы оказываются гораздо удобнее конечных автоматов.) 11. Исследуйте свойства замкнутости семейств регулярных, контекстно- свободных и рекурсивно перечислимых языков относительно булевых и регулярных операций (Общий обзор свойств замкнутости дается в [Sa2]2).) В частности, покажите, что пересечение двух контекстно-свободных языков не обязательно контекстно-свободно, в то время как пересечение контекстно-свободного языка с регулярным всегда является контекстно-свободным языком. (Указание. Последний факт устанавливается «конструкцией троек», которая часто оказывается очень полезной в теории языков: нетерминалами объявляются тройки (р, a, q), где а — символ данной грамматики, а р и q — вершины данного автомата. Эти тройки используются для моделирования как выводов в грамматике, так и переходов автомата. Например, продукции А -> ВС соответствует множество продукций (р, Л, Я) -* (р* Я* *7i)(<7i, С, q)t где р и q — произвольные состояния автомата. Продукции (р, a, q) -*- а добавляются в том случае, когда в автомате есть стрелка, ведущая из р в q и помеченная буквой а. Множество начальных символов состоит из нетерминалов вида (q0, S, #f), где q0 — начальная вершина, Цр — заключительная вершина, a S — начальный символ.) !) В отечественной литературе эта тема освещена в книге [ТрБ*]. — Прим. перев. 2) См. также [ЯиА*]. — Прим. перев.
3 Регулярность; интересные проблемы 3.1. ЗВЕЗДНАЯ ВЫСОТА Простейшие средства задания языков — регулярные выражения (или конечные автоматы) и DOL-системы — явились источником математически интересных и захватывающих задач. Многие, в том числе и автор этой книги, предпочитают задачи, которые можно без труда объяснить даже полному профану в соответствующей области, таким задачам, в которых основная трудность заключается в том, чтобы разобраться во введенных понятиях. Типичным примером задачи первого типа является гипотеза Ферма. По очевидным соображениям мы не станем приводить примеры задач второго типа; Регулярные выражения и DOL-системы породили много проблем, относящихся к первому из указанных выше классов. Действительно, несмотря на многочисленные попытки решения этих проблем, многие из ,них до сих пор остаются открытыми. В этой главе мы приведем решения двух задач, связанных с регулярными языками. Обе они достаточно трудны, так что читатели, самостоятельно нашедшие решение, могут себя поздравить. Обе задачи связаны с операцией звезды — кате- нативного замыкания. Операция звезды лежит в основе рассматриваемой теории, поскольку объединение и катенация позвляют порождать только конечные языки. Однако комбинация звезды с объединением и катенацией приводит к некоторым трудным вопросам. Мы начнем с введения понятия звездной высоты. По существу звездная высота регулярного выражения есть наибольшее число вложений звезды в выражении, т. е. длина самой длинной цепи вложений звезды в звезду. Звездная высота регулярного языка L представляет собой звездную высоты «наиболее экономного» регулярного выражения а для L, т. е. ни одно из регулярных выражений, задающих L, не имеет звездную высоту меньше а. Определение. Звездной высотой регулярного выражения а над алфавитом 2 (обозначается sh(a)) называется неотрицательное целое число, рекурсивно определяемое следующим образом: (i) буквы из 2 и 0 имеют звездную высоту 0;
40 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ (ii) если sh(a) = *\ a sh(P) = /, то sh((a U P)) = sh((ap)) = max(/, /); (iii) если sh(a) = /, то sh(a*) = /+1. Звездная высота регулярного языка L (обозначается sh(L)) есть наименьшее целое I, такое, что sh(a) = / для некоторого регулярного выражения а, задающего L. □ Звездная высота показывает «циклическую сложность» регулярного выражения: выражение с меньшей звездной высотой менее сложно, хотя оно может содержать большее число символов. Можно ли понизить звездную высоту каждого регулярного выражения (настолько, что она не будет превышать определенного предела), выбирая другое регулярное выражение, задающее тот же язык? Иначе говоря, не окажется ли звездная высота любого регулярного языка над 2 всегда меньше некоторой константы, возможно зависящей от числа букв в S? Это первая проблема, которую мы собираемся исследовать в этой главе. Очевидно, что во многих случаях звездную высоту данного регулярного выражения действительно можно понизить. Для каждого регулярного выражения а выражения а* и (а*)* задают один и тот же язык. Менее тривиальными примерами оказываются две пары регулярных выражений (ab*c)* и 0* U a(b U cafe, (ba U a*ab)*a* и (а [) ab U Ьа)\ упомянутых в конце гл. 2. В обоих случаях возможно понижение звездной высоты с 2 до 1. Очевидно, что дальнейшее понижение невозможно, поскольку ни один бесконечный язык не имеет звездную высоту, равную нулю. Пример класса регулярных выражений, звездная высота которых может быть уменьшена радикальным образом, дает следующая теорема. Теорема 3.1. Каждой регулярный язык над однобуквен- ным алфавитом 2=»{а} имеет звездную высоту, не большую 1. Доказательство. В силу теорем 2.9 и 2.4 можно считать, что L — L(G), где G — конечный детерминированный автомат с алфавитом пометок, равным {а}. Но при этом всегда можно считать, что автомат G имеет вид X —^Х *~'"~\J
8.1. ЗВЕЗДНАЯ ВЫСОТА 41 Это означает, что множество целых чисел {/|a'sL}, упорядоченное по возрастанию, является заключительно периодическим *). Если соответствующий период равен р, то L = Fx[]F2{ap}\ (3.1) где F\ и F2— конечные языки над {а}. Правая часть (3.1), рассматриваемая как регулярное выражение, имеет звездную высоту, равную 1. Следовательно, звездная высота L не превосходит 1. □ В основе теоремы 3.1 лежит следующая интуитивная идея: в случае однобуквенного алфавита имеет значение лишь длина слова, и, следовательно, нет необходимости во вложениях звезды. Это заключение не распространяется на случаи, когда алфавит содержит две или более буквы. Итак, мы хотим установить следующий результат. Теорема 3.2. Над любым алфавитом, содержащим хотя бы две буквы, существуют регулярные языки с любой звездной ЁЫСОТОЙ. Для доказательства теоремы 3.2 достаточно показать, что некоторый язык L/, заданный регулярным выражением оы со звездной высотой i9 нельзя задать никаким регулярным выражением со звездной высотой, меньшей L Определим регулярные выражения щ для всех значений * ^ L Сначала заметим, что нам всего лишь нужно показать, что над алфавитом {а, Ь) существуют регулярные выражения с произвольно заданной звездной высотой ^1. Это следует, во-первых, из того, что каждое регулярное выражение над {а, Ь) остается регулярным выражением над любым алфавитом, содержащим {а, &}, и, во-вторых, из того, что, скажем, {а} является регулярным языком со звездной высотой, равной нулю. Регулярные выражения а,-, /=1,2, ..., рекурсивно определяются следующим образом: aj = {ab)\ а, = (a2'~4-i&2'~ Vi)* i > 2. Так, например, <х3 = (а4 {аа (ab)* ЬЬ (аЬ)У V (аа (аЬ)* ЬЬ (аЬ)У)\ Далее, пусть Li — регулярный язык, заданный регулярным выражением а», / = 1,2, ... . Для завершения доказательства теоремы 3.2 достаточно проверить, что для каждого i звездная высота языка L, равна и Поскольку очевидно, что х) Множество натуральных чисел А называется заключительно периодическим (с периодом р), если для некоторого с х^с->(х &А -*-* х + р г А). — Прим. перев.
42 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ звездная высота а* равна i для всех i, то sh(L,)^i. Следовательно, достаточно показать, что sh(Li)^i для всех />1. (3.2) В доказательстве (3.2) будут использованы слова w(i,j) с /,/^ 1 над алфавитом {а, Ь}. Эти слова рекурсивно определяются следующим образом: до(1, j) = ab для всех /^1, w(i, 1)=*'-х(и>а-19 0р*-хт-19 пУ для всех /^2, /^ 1. Так, например, до (3, 2) = a4 (aaababbbabab)2 b* (aaababbbabab)2. Для каждого слова до над алфавитом {а, 6} обозначим через #а(до) число вхождений буквы а в слово до. Подобным же образом определяется #&(до). Так, #a(w(3, 2)) = #ь(до(3, 2)) = 28. Рассмотрим теперь фиксированное значение i ^ 1 и обозначим через Ki семейство регулярных языков L над {а, 6}, удовлетворяющих следующим трем условиям: (i) существует такое натуральное tt что для каждого слова до из L имеет место равенство #аИ = #ь(ш) + /; (и) для бесконечного множества значений / слово (до(/, /))/ входит в качестве подслова хотя бы в одно слово из L; (Ш) из всех языков, удовлетворяющих (i) и (и), L имеет минимальную звездную высоту, т. е. не существует регулярного языка Z/, удовлетворяющего условиям (i) и (И) и неравенству sh(Z/)< sh(L). Сначала сделаем несколько предварительных замечаний относительно семейств Ki. Ясно, что для каждого i язык U удовлетворяет условиям (i) (при * = 0) и (и). (По сути дела тот факт, что язык L, удовлетворяет условию (И), доказывается простой индукцией по i: для i = 1 это утверждение очевидно, а шаг индукции совершается согласно определению а* и w(itj).) Это показывает, что семейство Ki непусто при всех i^ 1. Кроме того, условие (ill) гарантирует, что все языки семейства Ki имеют одну и ту же звездную высоту di. Поскольку sh (Li) ^t и Ц удовлетворяет условиям (i) и (и), мы заключаем, что di ^ sh (Li) ^ i для всех / ^ 1, (3.3)
З.Т. ЗВЕЗДНАЯ ВЫСОТА 43 Ясно, что каждый язык, удовлетворяющий условию (и), должен быть бесконечным. Отсюда вытекает, что d\ не может быть равной нулю, и, следовательно, в силу (3.3) d{ = l. (3.4) Рассмотрим теперь произвольное фиксированное t>2 и произвольный язык L и Kt. Поскольку sh(Z,) = d/, мы заключаем, что L является конечным объединением языков, каждый из которых задан регулярным выражением вида P=YoYiY2 ••• Y2„-iYL> (3.8) где звездная высота каждого регулярного выражения у/ (/ = 0, ..., 2п) не превосходит dt—1. (Заметим, что у0 или у2п может оказаться регулярным выражением 0.) Кроме того, язык, заданный выражением р, удовлетворяет условию (i), поскольку сам язык L удовлетворяет условию (i). Можно также считать, что язык, заданный выражением р (3.5), удовлетворяет условию (ii). (Это следует из того, что L удовлетворяет условию (ii), и поэтому хотя бы один язык из задающего L объединения должен удовлетворять условию (И).) Для доказательства теоремы 3.2 предварительно докажем три леммы. Лемма 3.3. Ни один из языков, заданных регулярными выражениями уи, и = 0, ..., 2п, в (3.5), не удовлетворяет условию (ii). Доказательство. Предположим противное: пусть для некоторого и язык Z/, заданный выражением уи, удовлетворяет условию (ii). Тогда V удовлетворяет также условию (i), так как язык, заданный выражением р, удовлетворяет (i), й, согласно определению р, существуют такие слова w\ и w^ что слово w\ww2 принадлежит языку, заданному выражением р, коль скоро w принадлежит L\ Но из того, что V удовлетворяет условиям (i) и (ii) и имеет меньшую звездную высоту, чем L, следует, что L не удовлетворяет условию (iii). Это противоречие доказывает лемму 3.3. □ Лемма 3.4. Существует такое натуральное «, 0 ^ и ^ п, что язык, заданный выражением у*2и в (3.5), удовлетворяет условию (ii). Доказательство. Предположим противное. Тогда, согласно лемме 3.3, ни один из языков, заданных регулярными выражениями Yo> Ур Y* •••> Yto-i» Vl* (3.6)
44 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ не удовлетворяет условию (П). Из конечности множества этих языков следует, что существует такое целое /0, что при всех / >/о слово (w(ij))} не входит в качестве подслова ни в одно слово, принадлежащее какому-либо из языков, заданных регулярными выражениями (3.6). В силу теоремы 2.9 язык, заданный регулярным выражением р, может быть представлен конечным детерминированным автоматом G. Обозначим число вершин в G через /V Так как язык L3, заданный регулярным выражением р, удовлетворяет условию (и), существует натуральное число /2 > max (/о, А), (3.7) такое, что (w(i, /2))/з является полсловом некоторого слова в Lp. Следовательно, существуют такие слова W\ и до2, что слово w\(w(i, /2)),a w2 принадлежит L$. Согласно (3.7), /2 превосходит число вершин автомата G. Отсюда следует, что существуют такие целые числа т\ и т2, 1 ^ т\ < т2 ^ /2, что слова w\(w(t, /2))т' и W\(w(U /г))™2 переводят автомат G из начальной вершины в одну и ту же вершину. Полагая m = m2 — т\у заключаем, что слова где t — произвольное неотрицательное целое число, принадлежат Lp. Вспоминая определения /0 и Lp, заключаем, что ни одно из слов (w(i,J2)),9 где />(2п+1)/2, не является полсловом никакого слова из L^. (В противном случае слово (w(i, /2))/з было бы полсловом какого-либо слова в одном из языков, заданных регулярными выражениями (3.6).) Но это заключение противоречит тому факту, что все слова (3.8) принадлежат L3. □ Лемма 3.5. Существует целое число и, О ^ и ^ /г, такое, что язык L(2u), заданный выражением у2и в (3.5), удовлетворяет следующему условию (модификации условия (и)): для бесконечного множества значений / слово (w(i—1,/)); входит в качестве подслова хотя бы в одно из слов языка L(2u). Доказательство. Мы утверждаем, что целое число и из леммы 3.4 удовлетворяет также лемме 3.5. Снова предположим противное: существует такое натуральное /о, что для всех / > /о слово (w(i— 1, /))' не входит в качестве подслова ни в одно слово из L(2u). Согласно лемме 3.4, язык (L<2">)* удовлетворяет условию (п). Следовательно, существует такое целое число /i>/o, что слово (w(i, /,))''= G*2'~V(/-1, ix))"b2i~\w{j-\, /,))'')"
ЪЛ. ЗВЕЗДНАЯ ВЫСОТА 45 является полсловом некоторого слова из (L(2u))*. Значит, и слово w(i,j\) есть подслово некоторого слова из (L(2w))*. Поэтому существует целое число v и слова w\, ..., wv из L(2M), такие, что w(i, И) = (?*~1(*>(1-19 IitfltPl-l(w(t-L h))!l (3.9) является подсловом слова w\ ... wx. Как было показано выше (см. доказательство леммы 3.3), язык L(2w) удовлетворяет условию (i). Но язык (L(2u))* также удовлетворяет условию (i), поскольку язык Lp, заданный выражением р, удовлетворяет (i). Более того, язык Lp должен удовлетворять условию (i) при / = 0, поскольку язык (L<2">)* содержит пустое слово. Отсюда следует, что и язык L(2u) удовлетворяет условию (i) при t = 0. Следовательно, в каждом из слов wu ..., wv (ЗЛО) число вхождений а равно числу вхождений Ъ. Напомним, что (3.9) является подсловом в слове w\ ... wv. Выясним теперь, почему это возможно. Обозначим через р, 1 ^ р ^ v, такое целое число, что первое вхождение слова И*-1. Л))'1 (3.11) в (3.9) начинается внутри wp (когда мы рассматриваем некоторое фиксированное вхождение (3.9) как подслово в слове w\ ... wv), а через q такое целое число, что первое вхождение (3.11) в (3.9) оканчивается внутри wq. Тогда q>p, поскольку из равенства q = p следовало бы, что слово (3.11) входило бы в качестве подслова в wPy а это невозможно по определению /0 и выбору ]\. Значит, можно записать, что wq = xy, (3.12) где х — собственный суффикс слова (3.11). Из определения слов w(i,j) вытекает, что (1) ни один суффикс слова (3.11) не содержит больше букв а, чем букв 6, и (2) каждый префикс слова *"->(*-1, /,))'' (3.13) (включая само это слово) содержит больше букв Ь, чем букв а. Так как wq содержит одинаковое число букв а и ft, то из условий (1) и (2) следует, что у в (3.12) должно быть пустым словом X. Следовательно, слово (3.13) является префиксом слова Wq+\ ... wv. Но в силу условия (2) такой факт может иметь место только тогда, когда (3.13) является префиксом слова ovh. Так как /i > /0, это опять-таки противо-
46 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ речит выбору /о, и полученное противоречие доказывает лемму 3.5. Теперь мы в состоянии доказать (3.2), а тем самым и теорему 3.2. Согласно лемме 3.5, язык L(2w) удовлетворяет условиям (i) и (ii)/ (последнее получается из (и) заменой i на i—1). Это влечет неравенство d,_,<sh(L<2">)f (3.14) С другой стороны, мы видели, что язык, заданный одним из регулярных выражений у в (3.5), имеет звездную высоту не более di—1. Поэтому имеет место следующее неравенство: sh(L<2">)<d,-l (3.15) Так как / ^ 2 было выбрано произвольно, из (3.14) и (3.15) следует, что di>di^ + l при всех *>2. (3.16) Неравенство (3.2) непосредственно получается из (3.3), (3.4) и (3.16). □ Хотя теорема 3.2 дает решение одной из основных проблем, связанных со звездной высотой (проблемы построения языков с произвольно выбранной звездной высотой), многие другие важные проблемы, касающиеся звездной высоты, все еще остаются открытыми. Наиболее известной из них является так называемая проблема звездной высоты, состоящая в нахождении алгоритма для определения звездной высоты произвольного регулярного языка. Хотя установлен ряд результатов в духе теоремы 2.8, ни одна из многочисленных попыток решить указанную проблему до сих пор не завершилась успехом. Родственные вопросы обсуждаются в упр. 1. 3.2. СВОЙСТВО КЬНЕЧНОЙ СТЕПЕНИ Во второй части этой главы мы обсудим другую довольно трудную проблему, связанную с регулярными языками. Эта проблема оставалась открытой долгое время и была решена лишь в конце 70-х годов нашего века. Будем говорить, что регулярный язык L обладает свойством конечной степени (сокращенно СКС), если множество {U\i = 0,1,2, ...} конечно. Другое понятие, связанное с этим, определяется так: по- рядком регулярного языка L называется наименьшее целое А, удовлетворяющее условию Lk = Lk+l\ если такого k не существует, то будем говорить, что порядок L равен оо. Взаимосвязь между только что определенными понятиями устанавливается следующей простой леммой.
3.2. СВОЙСТВО КОНЕЧНОЙ СТЕПЕНИ 47 Лемма 3.6. Для непустого регулярного языка L являются эквивалентными следующие условия: (i) L обладает СКС; (и) существует такое целое й, что порядок L равен k\ (iii) существует такое целое &, что Lk = L*. Доказательство. Прежде всего заметим, что каждое из условий (i) — (iii) влечет принадлежность X языку L, так как в противном случае при всех целых I кратчайшее слово из U было бы короче кратчайшего слова из Z/+1. Поэтому каждое из условий (i) — (iii) влечет также выполнение соотношения Ll^Li+{ при всех iy откуда сразу следует эквивалентность условий (i) — (iii). В частности, отметим, что из условия (ii) вытекает, что Lk = Lk+i при всех I. □ Приведем несколько простых примеров. Ни один конечный язык L, содержащий непустое слово, не обладает СКС. Значит, такой L является языком бесконечного порядка. Это утверждение является непосредственным следствием того факта, что для любого i слово наибольшей длины из L£+1 длиннее слова наибольшей длины из LK Любой звездный язык, т. е. регулярный язык вида L*, обладает СКС. В действительности порядок такого языка равен 1. Менее тривиальными примерами являются язык L\, заданный регулярным выражением Х[] а2(а3)*, и язык L2, заданный регулярным выражением (I (J b*a) (b (J ab*ab*a)\ Оба языка — и Lb и L2— обладают СКС. Читатель при желании может проверить, что порядок языка L\ равен 3, в то время как порядок L2 равен 2. Проблема СКС состоит в нахождении алгоритма, позволяющего по заданному произвольному регулярному языку установить, обладает ли этот язык СКС. В свете теорем 2.8, 2.9 и леммы 3.6 очевидно, что эта проблема эквивалентна проблеме нахождения порядка произвольного регулярного языка L. Хотя некоторые частные случаи проблемы СКС решаются сравнительно легко (см. упр. 3—5), решение этой проблемы в общем случае оказалось весьма трудным и было завершено сравнительно недавно. Оставшаяся часть настоящей главы посвящена изложению этого решения. Прежде всего введем понятие, которое даст нам интуитивную основу для последующих рассуждений. (В этом состоит единственная цель вводимого понятия; доказательства можно провести и без него.) Для каждого конечного детерминированного автомата G итерат G* автомата G — конечный (вообще говоря, недетер- мированный) автомат — определяется следующим образом,
48 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ Множество вершин G* состоит из множества вершин G и вершины / (от слова iterate). Множества начальных и заключительных вершин G*, равно как и алфавит пометок, совпадают с соответствующими объектами в G. (В частности, / не является заключительной вершиной.) Все стрелки, имеющиеся в G, есть и в G*. Кроме того, в G* имеются стрелки, ведущие в новую вершину / и исходящие из нее. Эти дополнительные стрелки получаются следующим образом. Каждой стрелке G, ведущей из вершины q в заключительную вершину и помеченный буквой а, в автомате G* соответствует стрелка, ведущая из q в / и помеченная той же буквой а. Каждой стрелке в G, помеченной буквой а и ведущей из начальной вершины в вершину q, в G* соответствует стрелка, помеченная буквой а и ведущая из / в q\ кроме того, если q — заключительная вершина, то в G* имеется помеченная буквой а стрелка, ведущая из / в /. Например, если G — конечный детерминированный автомат х 0/1 то G* определяется графом Как и прежде, мы выделяем начальные (соответственно заключительные) вершины малыми входящими (соответственно выходящими) стрелками. Заметим, что автомат G представляет язык Li, рассмотренный выше и заданный регулярным выражением К[}а2(а3)*. Лемма 3.7. (L(G))* = L(G*)U{M- Доказательство. Это равенство непосредственно вытекает из определения G*. Рассмотрим в (L(G))* слово хюф\. Его можно записать в виде w = x{...xn, Xi^L(G), /=1, ..., п. Последовательно перебирая все i < /г, можно построить путь в 0* из начальной вершины в /, помеченный х\% ..., xi. При-
3.2. СВОЙСТВО КОНЕЧНОЙ СТЕПЕНИ 49 няв хп за пометку для пути, ведущего из / в заключительную вершину, получим, что до принадлежит L(G*). С другой стороны, если в G* существует помеченный словом до путь из начальной вершины в /, то слово до принадлежит (L(G))*. Этот факт легко устанавливается по индукции. Он показывает также (согласно определеннию G*), что каждое слово из L(G*) принадлежит (L(G))*. Заметим, что X не обязательно принадлежит L(G*), а посему его необходимо присоединить к последнему посредством операции объединения. □ Для заданного слова до в общем случае существует несколько путей в G*, которые исходят из начальной вершины и помечены словом до. Рассматривая такие пути, обратим внимание на то, сколько раз проходится выделенная вершина /. Итерационным числом слова w^L(G*) (обозначаемым IN (до)) называется наименьшее целое число А, такое, что в G* существует помеченный словом до путь, ведущий из начальной вершины в заключительную и k раз проходящий через вершину /. Например, дли рассмотренного выше автомата G оказывается, что IN(a5) = 0, IN(a4)=l, IN(a6) = 2. Можно показать, что в этом случае IN (a*) ^ 2 для всех и Очевидно, что итерационное число слова зависит от автомата G, однако вместо INg(oj) мы используем более простое обозначение IN (до), поскольку из контекста всегда будет ясно, о каком автомате идет речь. То же можно сказать и о некоторых других обозначениях, которые вводятся ниже. В дальнейшем положим L(G) = R. Таким образом, R* = L(G*)U{M- Мы предполагаем также, что R содержит непустое слово. Лемма 3.8. Пусть до — непустое слово в R* и Ш(до) = &. Тогда до принадлежит Rk+\ но не принадлежит никакому R* при i<k+ I. Доказательство. По определению G* слово до можно записать в виде w=x\ ... Xk+u гДе */е R пРи всех /, 1 ^ / ^ < k + 1. Стало быть, до е Rk+l. Предположим, что до можно записать в виде w = y{...yi, i<k+lf yf^R при всех /, 1</<*. (3.17) Так как автомат G представляет язык R, то, согласно (3.17), в G* существует путь из начальной вершины в заключительную, помеченный словом до и проходящий только i—1 раз через вершину /. Поскольку i—1 < ky последнее утверждение противоречит тому факту, что IN (до) = k. О Лемма 3.8 показывает также, что для данных R и w ^ R* число IN (до) не зависит от представляющего R автомата;
50 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ Мы уже говорили, что в силу недетерминированности автомата G* слову до может соответствовать несколько помеченных этим словом путей, выходящих из начальной вершины G*. Более того, эти пути не обязательно заканчиваются в одной и той же вершине. Исходя из этого, определим START(до) как множество всех таких вершин q-ф! в G*, что в G* существует помеченный словом до путь из начальной вершины в q. Таким образом, START (до) является множеством возможных конечных точек путей, помеченных словом до. Заметим, что мы требуем, чтобы эти пути оканчивались в «собственно автомате G» в силу условия щф1. Множество START(до) определяется для любого слова ш (а не только для слов из #*). Аналогично END (до) определяется как множество всех таких вершин цф! в G*, что в G* существует помеченный до путь из q в одну из заключительных вершин. Чтобы лучше уяснить понятие START (до), заметим, что его можно определить, не обращаясь к итерату G* (если нам заданы только G и L(G)=R). Это делается следующим образом. START (до) есть множество таких вершин q в G, что для некоторого разложения до = до1до2, где слово w\ принадлежит /?*, существует помеченный словом до2 путь из начальной вершины G в вершину q. Аналогично END (до) можно определить как множество таких вершин q в G, что либо, существует помеченный до путь из q в заключительную вершину, либо для некоторого разложения до = xyz выполняются следующие условия: (i) существует помеченный словом х путь из q в заключительную вершину; (и) у принадлежит /?*; (iii) существует помеченный словом z путь из начальной вершины в заключительную (т. е. z^R). Заметим, что START (К) состоит из всех начальных вершин, а END (Я)—из всех заключительных вершин. Непосредственным следствием леммы 3.7 и определений STARTS) и END (до) является следующий результат. Лемма 3.9. Пусть непустое слово до из /?* можно представить в виде до ■= W\W2. Тогда множество START (доО П END(<02) (3.18) непусто. Обратно, если для слова до = до1до2 множество (3.18) непусто, то слово до принадлежит R*. До сих пор рассмотренные понятия и леммы не относились непосредственно к СКС. Следующая лемма прямо связана с СКС и играет важную роль в последующем обсуждении,
3.2. СВОЙСТВО КОНЕЧНОЙ СТЕПЕНИ 51 Лемма ЗЛО. Пусть w=-xyz— непустое слово в /?*, такое, что START{x)= START(xy) и END(z) —END(ya). (3.19) Тогда если R обладает СКС, то в множестве START (x) П END (г) (3.20) существуют вершины q и q' (не исключено, что q = q')> для которых в G имеется помеченный словом у путь из q в q\ Доказательство. Прежде всего заметим, что в силу (3.19) и леммы 3.9 пересечение (3.20) непусто. Доказательство проведем от противного, предполагая, что если q и q' принадлежат (3.20), то не существует пути из q в q\ помеченного словом у. (Напомним, что путь, не содержащий стрелок, считается помеченным X.) Из (3.19) следует, что для всех i и / START (*) = START (xy1) и END (z)=* END (#'*). В силу леммы 3.9 отсюда вытекает, что для любого i слово xylz принадлежит R*. С другой стороны, согласно нашему предположению, для всех i 1й(ху*г)>1. (3.21) (Для того чтобы доказать это неравенство, рассмотрим помеченный словом х путь р из начальной вершины в вершину, лежащую ^ (3.20). Чтобы продолжить р путем, помеченным у и оканчивающимся в вершине из (3.20), необходимо пройти через /. Это относится к каждому пути, помеченному у% что и дает (3.21).) Но теперь, согласно (3.21) и лемме 3.8, для любого k можно найти слово w из /?*, не принадлежащее Rk. Это противоречит тому факту, что R обладает СКС. □ Лемма 3.10 имеет следующий интуитивный смысл. Если R обладает СКС, то мы хотим доказать, что существует число k, вычисляемое только по автомату G и такое, что Rk = R*. Для этого надо установить, что каждое слово w из R* принадлежит Rk. Записывая w в виде w = xyz, так что выполняется (3.19), мы ищем такое число i^&, что w^R1. Теперь из леммы 3.10 вытекает, что подслово у увеличивает искомый показатель i самое большее на единицу, так как помеченный у путь лежит в G и, следовательно, не проходит через /. Проведем теперь это рассуждение более подробно. Для этого нам потребуются некоторые новые понятия и обозначения. Число элементов конечного множества 5 будем обозначать через #S.
52 ГЛ. 3. РЕГУЛЯРНОСТЬ: ИНТЕРЕСНЫЕ ПРОБЛЕМЫ Определим порядок слова w из R* как о (w) = min {k | w e /?*}, Кроме того, для каждого слова шиз^* определим PAIRS(w) = {(S, S')\w = xy, START (x) = S, END(y) = S' для некоторых x и у (возможно, пустых)} WORST («;) = («, /), где / = max {# 5 + # S'1 (5, SO e= PAIRS (о>)Ь / = # {(5, SO €= PAIRS И | # S + #S' = Q, Таким образом PAIRS (w) содержит все возможные пары множеств вершин, полученных различными разложениями слова w. Первая компонента WORST(w) равна максимальному числу i, получаемому суммированием мощностей двух множеств в элементах PAIRS (ш), а вторая компонента равна числу / способов, которыми достигается этот максимум. Если w ф К то (согласно лемме 3.9) оба множества в каждом элементе PAIRS (w) непусты. Итак, i^2. Обозначая общее число вершин G через я, получаем оценки 2<*<2я. (3.22) Кроме того 1 ^ / ^ (2" ). Обозначая через Ьп наибольший биномиальный коэффи- t J, где 2 ^ i ^ п, получаем !</<&„. (3.23) Заметим, что оценку /^(2гл) можно было бы слегка улучшить, принимая во внимание тот факт, что оба множества в каждом элементе множества PAIRS (&) непусты. Однако мы стремимся получить не наилучшие, а наиболее простые оценки. Это замечание относится и к другим частям настоящего доказательства. Теперь рассмотрим пару (/,/), такую, что выполняются условия (3.22) и (3.23). На множестве таких пар вводится лексикографическое упорядочение: (ii,/i)^(i2,/г), если либо i\ < **2, либо i\ = i2 и /i ^ /2. Пусть / и / удовлетворяют (3.22) и (3.23), a R обладает СКС; введем следующие обозначения: o(i, j) = max{o(w)\w<==:R* и WORST(w)^(i, /)}, o(i) = o(i, bn). Мы предположили, что R обладает СКС, потому что в противном случае максимум может не существовать. Будем счи-
3.2. СВОЙСТВО КОНЕЧНОЙ СТЕПЕНИ 53 тать, что о(/,/)=1, если в /?* нет такого слова до, что WORST(aj)sg:(i', /). Аналогично о(/)=1, если в R* нет такого до, что WORST (до)^(/, &Л), т. е. в R* нет такого до, что первая компонента WORST (до) не превышает i. Указанные соглашения гарантируют, что o[i,j) и o(i) определены для всех i и /, удовлетворяющих (3.22) и (3.23). Непосредственно из определения следует, что при (*i,/i)^ ^(121/2) имеет место o(i\, /i)^o(fe, /2). Этим свойством монотонности обладает также и одноместный оператор о: из i\ ^12 следует, что o(ii)^o(i2). Более того, если R обладает СКС, то о (до) ^ о(2п) для всех слов до из /?*. Нам надо доказать, что существует число сп, эффективно вычисляемое по числу п вершин автомата G и такое, что о(2д)<с„ (3.24) при условии, что R обладает СКС. Это позволит нам выяснять, обладает ли данное R СКС или нет: мы строим G и проверяем, выполняется ли равенство Rcn = R*. Самым существенным инструментом в доказательстве (3.24) является следующая лемма. Лемма 3.11. Пусть R обладает СКС, и пусть для чисел *^3, /^2 выполняются условия (3.22) и (3.23). Тогда о (i, j) < о (i - 1) + о (I, } - 1) + 3. (3.25) Доказательство. Если в R* нет такого слова до, что WORST (до) = (/, /), то о (*, /) = о (/, / — 1). Следовательно, имеет место (3.25). Таким образом, для доказательства леммы нам нужно только установить, что для любого слова до с WORST (до) = (/,/) выполняется неравенство о (до) < о (i - 1) + о (*', / - 1) + 3. (3.26) (Отметим, что при этом учитывается также тот случай, когда порядок каждого слова до, для которого WORST (до) = (/,/), в действительности не превосходит o(i,j—1).) Рассмотрим произвольное, но фиксированное до, для которого WORST (до) = (/,/). Можно предположить, что w¥=%, поскольку о(к) = 0. (В действительности (3.26), конечно, выполняется при |до | ^ 5.) Запишем теперь до в виде до = xz\, где # (START (*)) + # (END (*,)) = / ц, кроме того, л:—-кратчайший префикс слова до, обладающего этим свойством. (Иначе говоря, из равенств w = x'z[ и # (START (*')) + # (END {z[)) = /
54 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ следует, что |*|^|*'|.) Введем обозначения START (x) = St END (zl) = S/ и запишем z\ в виде z\ = yzt где START (x) = START (ху) = 5, END {уг) = END (z) = S' и, кроме того, z — кратчайший суффикс слова гь обладающего этим свойством. (Иначе говоря, из равенств Z\=y'z' и START (х) = START (ху'), END (f/V) = END (2х) следует, что |г|^|г'|.) Таким образом, w=xyz. Возможно, что одно или два из слов ху у, z равны X. По лемме ЗЛО в SOS' можно найти такие вершины q и q'9 что в G имеется путь из q в q\ помеченный словом у. Продлим теперь этот путь до пути из начальной вершины в конечную следующим образом. Пусть и — такой суффикс слова х, что в G существует путь из начальной вершины в вершину q, помеченный словом и. Аналогично пусть v — такой префикс слова z, что в G существует путь из q' в заключительную вершину, помечен^ ный словом v. (Конкретнее, в качестве путей, помеченных словами и и v, мы берем подпути пути, помеченного словом w = xyz.) Таким образом, x = W\u, z = vw2 и w = W\uyvw2 для некоторых слов w\ и w2 из /?*. Существование и и v обеспечивается тем, что w принадлежит R*. Кроме того, слово uyv принадлежит R. Возможно, что одно из слов и и v или оба они пусты. Из того, что uyv g Л, и из очевидного для всех слов w'y w" неравенства о (w'w") ^ о (wf) + о (w") получаем о И < о (т) + 1+о (щ) (3.27) Если иф'к, то выбор слова х гарантирует, что o(w\)^ ^o(i—1). (Очевидно, что если разложение W\ приводит к максимальному числу i, то это i может быть достигнуто в w до вхождения в х.) Если и = Я, а ха)\ ФК то запишем w\(=x) в виде w\ = ш3аУ4, где w$^R*y а ш*ФХ принадлежит R> Отсюда ясно, что oW<o(/-l)+l. (3.28) Так как (3.28), очевидно, выполняется и для w\ = X, мы заключаем, что (3.28) имеет место во всех случаях. Если ифХ, то выбор слова z гарантирует, что o(w2)^ ^o(iy j — 1). (Действительно, все максимальные пары с общим числом элементов i, которые могут быть получены из разложений w2y могут быть получены и из разложений до, но при этом пара (5, S') не может быть получена из разложе-
3.2. СВОЙСТВО КОНЕЧНОЙ СТЕПЕНИ 55 ния w2.) Если v = kt а т2ф%, то запишем w2(=z) в виде w2 = wsWe, где we е /?*, а тьфХ принадлежит R. Это показывает, что о(ш2)<о(/, /-1)+1. (3.29) Ясно, что это неравенство выполняется и при w2 = К так что оно имеет место во всех случаях. Теперь (3.26) оказывается непосредственным следствием (3.27) — (3.29), откуда и вытекает утверждение леммы. □ Лемма 3.12. Пусть R обладает СКС, а число i ^ 3 удовлетворяет сооотношению (3.22). Тогда o(i, 1) ^ 2o(i— 1) + 3. Доказательство проводится в точности так же, как доказательство предыдущей леммы, однако в данном случае в качестве верхней границы при рассмотрении w2 фигурирует o(i—1) вместо о(iy j—1). □ Напомним, что мы стремимся получить верхнюю оценку для о{2п). Предыдущие леммы сводят получение этой оценки к нахождению оценок для меньших значений и Нам остается получить оценку для «конечной ситуации». Лемма 3.13. Если R обладает СКС, то о(2)^ 1. Доказательство. Если в R* нет таких слов ш, что первая компонента WORST(w) равна-2, то равенство о(2)=1 следует из определения о (2). Рассмотрим произвольное хюф% из /?*, такое, что первая компонента WORST(w) равна 2. В силу леммы 3.9 из этого условия следует, что для любого разложения w = W\w2 множество START(w\) = END (w2) состоит в точности из одной вершины. Следовательно, любому пути р в G*, помеченному словом ш, исходящему из начальной вершины и один или несколько раз проходящему через вершину /, соответствует путь в G, помеченный словом w, исходящий из начальной вершины и оканчивающийся в той же вершине, что и р. Это означает, что w^R и, следовательно, o(w)=l. Так как о(Л) = 0, то лемма доказана. □ В лемме 3.13 предположение о том, что R обладает СКС, было сделано только потому, что это предполагалось в определении o{i). В противном случае (т. е. при обобщении определения o(i)) доказательство леммы 3.13 не опиралось бы на это предположение. Теперь мы готовы установить основной результат. Теорема 3.14. Пусть R — регулярный язык, который может быть представлен конечным детерминированным автоматом с п вершинами. Тогда существует натуральное число сПу эффективно вычисляемое по п и такое, что R обладает СКС
56 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ тогда и только тогда, когда Rc" «=/?*. (3.30) Следовательно, проблема СКС разрешима. Более того, существует алгоритм для нахождения порядка данного регулярного языка. Доказательство. Пусть язык R обладает СКС. Последовательное применение леммы 3.11 прежде всего дает для каждого /, такого, что 3 ^ i ^ 2/г, соотношения o(l) = o(l, 6я)<о(*-1) + 3 + о(/, 6я-1)< <2(o(f-l) + 3) + o(/, &„-2)< <...<(*я-1)(о(«-1) + 3) + о(Л 1). Применяя лемму 3.12, отсюда получаем o(i)<(bn+l)(o(i-l) + 3)^4(bn+l)o(i-l). Теперь положим ал = 4(6л+1) и сп — а2пп~2. Тогда для 3 ^ / ^ 2/г выполняется неравенство o(i)^.ano(i—1). Следовательно, о (2/г) < апо (2/г - 1) < апо (2/г - 2) < ... < aln~2o (2). Отсюда по лемме 3.13 о(2/г)<сл. (3.31) Так как порядок каждого слова w из /?* не превосходит о(2п), то (3.30) непосредственно следует из (3.31). Мы показали, что если R обладает СКС, то имеет место (3.30). Очевидно, что если R не обладает СКС, то (3.30) не выполняется. Значит, проблему СКС можно решать следующим образом. Для данного R (с помощью G) сначала вычислим Сп, а затем проверим, выполняется ли (3.30). Эту проверку можно осуществить в силу теоремы 2.8. Порядок данного регулярного выражения R можно теперь найти следующим образом. Сначала указанным выше способом выясним, обладает ли R СКС. Если R не обладает СКС, то по лемме 3.6 порядок R бесконечен. В противном случае проверяем для k = 0, 1, 2 ..., верно ли, что #fe = /?fe+1. (3.32) Эта последовательность проверок обрывается, так как R обладает СКС. Порядок R равен наименьшему А, при котором выполнено (3.32). □ Мы закончим настоящую главу другой интересной харак- теризацией СКС. Эта характеризация (существование слова с особым свойством) может, в частности, проверяться спосо-
3.2. СВОЙСТВО КОНЕЧНОЙ СТЕПЕНИ 57 бом, не использующим приведенные выше результаты. Подробности можно найти в [Lil]. Теорема 3.15. Порядок непустого регулярного языка R бесконечен тогда и только тогда, когда в R* существует такое слово w, что wl ф R1 для всех i ^ 1. Доказательство. Часть «тогда» утверждения теоремы очевидна. (В самом деле, если w^R*, то и wl e R* при всех /.) Чтобы доказать часть «только тогда», предположим, что порядок R бесконечен. Тогда в R* существует такое слово xyz, что START (x) = START (ху) и END(f/z) = END(z), и, кроме того, для любых вершин q и q' из множества 5 = START (jc)fl END (z) (S#0) в конечном детерминированном автомате G, представляющем R, не существует пути из q в q'y помеченного у. Это доказывается следующим образом. Единственное следствие из СКС, используемое в доказательстве леммы 3.11 и в дальнейших рассуждениях, приводящих к оценке о(2п)^сп,— это заключение леммы 3.10. Следовательно, обращение леммы 3.10 также верно: если R не обладает СКС, то в R* существует такое слово xyz, что (3.19) выполняется, но утверждение о множестве (3.20) не выполняется. Как и в доказательстве леммы 3.10, мы заключаем теперь, что для всех i слово ху'г принадлежит R* и IN(jo/'z)>/. (3.33) Кроме того, для любого q из 5 существует путь в G* (но не в G) из q в некоторую вершину из 5, помеченный словом у. Из конечности множества S следует, что найдутся вершина q из 5, декомпозиция у = у\У2 и целое число т, такие, что в G* существует путь из q в заключительную вершину (соответственно из начальной вершины в q), помеченный у\ (соответственно j/2f/m). Следовательно, уъуту\ = (#2*/i)m+1 e /?*. Теперь введем обозначение t = 2\xyz\ и определим w как гю = (у2уту\)*. Слово w принадлежит /?*, потому что у2УтУ\ принадлежит /?*. Чтобы убедиться в том, что w удовлетворяет поставленному условию, предположим противное: для некоторого i ^ 1 слово w1 принадлежит R*. Тогда слово Xyi <«+!) Ж Z = Ху{ (у2у{у </и+0 t y2z ж хухХЮ*у& принадлежит #'+1***1. Но этот результат противоречит (3.33) и лемме 3.8, так как
58 ГЛ. 3. РЕГУЛЯРНОСТЬ; ИНТЕРЕСНЫЕ ПРОБЛЕМЫ i(m+l)t+l=2i(m+ l)-\xyz\+l> >\xyz\ + i(m+ l)-\xyz\^\xyz\ + i. Q В заключение заметим, что оценка crt, полученная в теореме 3.14, может оказаться сильно завышенной в свете того факта, что не известен ни один пример регулярного языка, имеющего порядок больше п (число вершин представляющего автомата), который при этом обладал бы СКС. УПРАЖНЕНИЯ 1. Обобщенное регулярное выражение помимо обычных операций может содержать также операции пересечения и дополнения. Этим обобщенные регулярные выражения отличаются от регулярных выражений, определенных в гл 2. Покажите, что язык L, заданный регулярным выражением (ababd)*, может быть, задан также звездно-свободным (или безытерационным) обобщенным регулярным выражением, т. е. L получается из языков 0, {а}, {Ь} конечным числом применений катенации и булевых операций. (Языки, задаваемые звездно-свободными обобщенными регулярными выражениями, совпадают с несчитающими языками; см. [МсР].) По определению регулярный язык L является несчитающим, если существует такое натуральное я, что для всех слов х, у, z слово xynz e L тогда и только тогда, когда xyn+lz e L. Например, язык {ab, ba}* является несчитающим, а язык {а2}* таковым не является'). Заметим, наконец, что понятие звездной высоты естественным образом распространяется на обобщенные регулярные выражения. Не известно, будут ли при таком обобощении существовать языки со звездной высотой, большей 1. 2. Сокращением слова w мы называем любое слово, полученное иг w удалением некоторых вхождений букв (возможно, всех или ни одного). Множество всех сокращений слов из языка L обозначим через abbr (L). Докажите, что из регулярности L следует регулярность abbr (L); при этом обратное утверждение неверно. 3. Покажите, что каждый бесконечный регулярный язык L, такой, что L е {а}* и^е!, обладает СКС. 4. Конечный детерминированный автомат называется перестановочным автоматом, если в нем не существует двух различных вершин q{ и <7г» таких, что из <7i и q2 в одну и ту же вершину q$ ведут стрелки, помеченные одной и той же буквой а. Докажите непосредственно, что язык, предста- влмый перестановочным автоматом и содержащий пустое слово, обладает СКС. Выразите верхнюю оценку для порядка языка через число вершин- автомата (см. [Lil]). 5. Язык L называется звездным языком, если L = L { для некоторого языка Lu при этом Lx называется корнем (из) языка L Корень из L называется минимальным, если он содержится в каждом корне из L. Покажите, что если непустой регулярный язык L\ является минимальным корнем, то L\ U {Я} не обладает СКС (см. [Lil]). 6. Пусть а, Р и у — такие слова, что оф'у принадлежит R* для любого i ^ 0. Покажите, что найдутся такие натуральные числа m, n и /?, что слова х = <хрт, у = Р", z = Ppy удовлетворяют (3.19). 7. Сформулируйте и докажите обращение леммы 3.10, используя при этом доказательство теоремы 3.15. !) Несчитающие языки образуют важный подкласс класса регулярных языков (см. примечание на с. Щ. — Прим. перев.
4 Коды и множества совпадения 4.1. ОСНОВНЫЕ СВОЙСТВА КОДОВ В настоящей главе перед нами стоят две задачи. Во-первых, мы хотим совершить краткий экскурс в теорию кодов. Эта теория дала ряд красивых результатов, применимых к различным разделам теории языков. Во-вторых, мы хотим обсудить некоторые недавно введенные понятия, тесно связанные с теорией кодов. Эти понятия нам потребуются в гл.5 и 6. Подчеркнем, что мы не будем обсуждать так называемые коды с исправлением ошибок, а будем иметь дело исключительно с алгебраической теорией кодов, обычно рассматриваемой как часть теории полугрупп1). На интуитивном уровне код2) можно определить как такое множество слов, что любое произведение этих слов может быть «декодировано» только одним способом. Рассмотрим, например, множество слов {а, ЪЪ> ааЬу bob). (4.1) Можно закодировать этими словами символы 0, 1, 2, 3 и «морфически» распространить это кодирование на все слова в алфавите {0, 1,2,3}. Так, кодом слова 012230 будет слово abbaabaabbaba. Гарантией однозначности декодирования служит тот факт, что каждое слово в алфавите {а, Ь} может быть представлено в виде произведения слов (4.1) не более чем одним способом. Этот факт легко установить, читая слова в алфавите {а, Ь) справа налево: каждое закодированное слово должно кончаться на одно из слов (4.1). Таким способом символы 0,1,2,3 можно получить один за другим с правого конца. Это означает, что (4.1) является кодом. С другой стороны, множество {а, аб, Ьа) не является кодом. Например, слово aba декодируется двумя разными способами: aba=(ab)a = a(ba). !) Более глубоко и детально ознакомиться с различными вопросами алфавитного кодирования и смежными проблемами теории конечных автоматов читатель может по работам [Л1*], [Л2*], [Мар2*]. — Прим. перев. 2) В отечественной литературе в этом смысле часто употребляется термин «кодовое множество». — Прим. перев.
60 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ Определение. Непустой язык С в алфавите S называется кодом, если для любых СЛОВ X » , X: % • • .» Xj « % 1 9 • • • f X/ ИЗ С, таких, что имеет место л:, = *,. П Если С является кодом, то из (4.2), очевидно, следует, что т = п и х. = xf при t = 1, ..., m. Таким образом, каждое слово в С* единственным образом декодируется как произведение слов из С. Очевидно также, что в код не может входить пустое слово и что непустое подмножество кода также является кодом. Будем считать, что алфавит S содержит не менее двух символов, так как однобуквенный алфавит тривиален с точки зрения кодирования. -Теперь установим два довольно простых характеристических свойства кодов. Лемма 4.1. Непустой язык С над алфавитом S является кодом тогда и только тогда, когда существует множество символов Si и биекция Si на С, которую можно продолжить до инъективного морфизма SJ в 2*. Доказательство. Прежде всего заметим, что множество символов Si может быть бесконечным (тем не менее понятно, что означает при этом S*). Рассмотрим часть «тогда» утверждения леммы. Предположим, что существуют Si и биекция ср: Si-^C, удовлетворяющие условию продолжения. Чтобы доказать, что С представляет собой код, рассмотрим произвольные слова *,,.--. X; >*#» -••» *# из с> удовлетворяющие (4.2). Обо- Ч lfn ч 'п _ значая ф""1 (xit} = aif (соответственно<р х(хА = ai \ получаем (p(aii...aiJ = Xil...Xim = xil...xJn = q>(ail ...a,n). (Здесь ф уже продолжено на S*.) Тот факт, что отображение ф инъективно, влечет равенство сцх ...aim = aix.>..au. Следовательно, ah = aht откуда xil=:q>(ail) = (p(aJx) = xh, и значит, С является кодом. Рассмотрим часть «только тогда». Предположим, что С есть код. Пусть Si — множество символов той же мощности, что С, а ф: Si-^C—биекция, где соответствующие элементы обозначены одинаковыми нижними индексами. Это отображение естественным образом продолжается до морфизма S* в S*. Нам еще надо доказать, что это продолжение ф инъективно.
4.1. ОСНОВНЫЕ СВОЙСТВА КОДОВ 61 Допустим противное: существуют элементы 2ь удовлетворяющие условиям Ф(а^ ...ау = ф(аЛ ...а/л), aix ... сцтФщх .. ,ain. (4.3) Без потери общности можно предположить, что т в (4.3) является наименьшим из возможных: (4.3) не выполняется ни для какого mi < т. Следовательно,aix ф a/V (При a/i = a/i мы получили бы ФК ... вО = 'К • ■' au)> ah-' а*т ^aJ2->- *l# что противоречит минимальности т.) Таким образом, мы имеем Ф (atx ... a, J = xix ...xtm = <p (ah ... a/J = */,... xu (4.4) и af ф aix. Так как ф есть биекция, то последнее неравенство влечет xix Ф xJx% а это с учетом (4.4) противоречит предположению, что С является кодом. Отсюда следует инъективность продолжения отображения ф. □ Следующий результат известен под названием критерия Шютценберже. Будем говорить, что язык L катенативно-не- зависим, если никакое слово w из L нельзя представить как произведение w = w\ ... wn, где п>2и каждое wt <= L. Лемма 4.2. Катенативно-независимый непустой язык С над 2 является кодом тогда и только тогда, когда для любого слова w в алфавите 2 из того, что оба языка C*w и wC* пересекаются с С*, следует, что w принадлежит С*. Доказательство. Сначала рассмотрим часть «тогда» утверждения леммы. Предположив, что С удовлетворяет условию леммы, мы должны показать, что С является кодом. Допустим противное: в С существуют такие слова xVf что Xi\ • ' • Xim = *Л • • • XU' Н0 Xli ^ Х1\ш (4'5) Согласно (4.5), одно из слов xix и хи является префиксом другого. Без потери общности можно считать, что */, = **, у. (4.6) Согласно (4.5) и (4.6), языки С*у и С* (соответственно уС* и С*) пересекаются, имея общий элемент xfi (соответственно xi • • • xt X (Заметим, что из (4.5) и (4.6) следует, что m ^ 2.) Поскольку С удовлетворяет условию о пересечениях, получаем, что у принадлежит С*. Однако в силу (4.6) это
62 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ заключение противоречит допущению о катенативной независимости языка. Теперь рассмотрим часть «только тогда». Предположим, что С является кодом, и докажем от противного, что выполняется условие о пересечениях. Итак, предположим, что это условие не выполнено, т. е. что в С найдутся элементы xv, а в С* — элементы yv и такое слово w & С*, что Xii • " • XimW = Xh •••Ъп11 ШУ' = У2' (4'?) Снова предполагая минимальность т, заключаем, что xix Ф xfi> (В противном случае мы получили бы равенство вида (4.7) с меньшим т.) Теперь мы получаем, что **х • • • **тШ = */!••• Х*пУ1 = Xii • • • Х1тУ2> Xii ^ *Л» с это противоречит предположению о том, что С есть код. □ Условие леммы 4.2 можно сформулировать более компактно: для каждого слова w из 2* C*w П wC* П С* Ф 0 влечет w е= С*. (4.8) Очевидно, что если все три множества С*ш, wC* и С* имеют общий элемент, то пересекаются и пары множеств C*w9 С* и wC*y С*. Обратно, если wx\=x2 и xzw=x^ где хих2,х$уХ4^С*, то £0*1*4 = *2*4 = x2x$wt откуда следует, что пересекаются все три множества. Заметим, однако, что одно лишь условие (4.8) (без допущения о катенативной независимости множества С) не гарантирует еще, что С является кодом. Леммы 4.1 и 4.2 сами по себе не дают нам эффективного метода, позволяющего определить, является ли данный язык кодом, однако такие алгоритмы (для конечных языков) существуют. В сущности результаты гл. 2 приводят к следующему алгоритму: надо проверить, пусто ли множество х\С*(]х2С* для каждой пары (х\,х2) различных элементов из С. Старейшим является алгоритм, вытекающий из следующей теоремы и в первоначальном варианте принадлежащий Сардинасу и Паттерсону [SarP]. Теорема 4.3. Пусть С— непустой язык над 2. Определим индуктивно языки Со, Ci,C2, ... над 2, полагая Cq = С, С;+1 = {шеХ+|(д*<зС)(д#еС*)#ш = х или xw = y}. Язык С является кодом тогда и только тогда, когда d f| С == 0 для каждого / ^ 1. Прежде чем перейти к доказательству теоремы, заметим, что в случае конечного языка С длина каждого слова в каж-
4Л. ОСНОВНЫЕ СВОЙСТВА КОДОВ 63 дом d не превосходит длину самого длинного слова в С. Следовательно, существует лишь конечное число различных языков С/, и мы действительно получаем алгоритм, определяющий, является ли множество С кодом (см. также упр. 1). Например, выберем в качестве С множество (4.1). В этом случае Сг = {аЬ}, 02 = {6}, C3 = {6, a6} = C4 —C8... . Поскольку для каждого / ^ 1 Ct f] С = 0, то С является кодом. С другой стороны, полагая С=*{а, ab,ba}t получаем d=:{6}, С2«=з{а}. Так как С^СФю, то С не является кодом. Доказательство. Сначала рассмотрим часть «тогда» утверждения теоремы. Покажем, что если С не является кодом, то одно из множеств С,- пересекает С. Так как С не является кодом, то в С найдутся элементы Ху,, удовлетворяющие (4.5). Ситуацию можно изобразить так: Р Рх ?2 Рт-1 Рт I 1_, 1 1 Pf Pi Рг Рз Рк-г К Идея состоит в том, что слово х{ ... х, записывается на 1 т п г> верхней прямой: отрезок РР\ содержит xiif отрезок Р\Р2 содержит xi и т. д. Аналогично слово xf ... х} записывается на нижней прямой. Поскольку xix Ф xh, точки Рх и Р{ оказываются на разных вертикалях. (На схеме принято, что xfi является собственным префиксом лс/|в) Снова предполагая минимальность т в (4.5), мы можем заключить, что ни одна из точек верхней прямой (за исключением первой и последней точек) не лежит на одной вертикали с точкой нижней прямой. Напомним, что слова из Си получаются либо стиранием префикса, принадлежащего Си в некотором слове из С, либо стиранием некоторого префикса, принадлежащего С, в слове из С/. Таким образом, на нашей схеме слово в отрезке Р[Р] принадлежит Сь слово в отрезке Р'2Р2 принадлежит С2, слово в отрезке Р{Р'3 принадлежит С3, а слово в отрезке Р^Р'^ принадлежит С4. Рассуждая далее таким же образом, мы заключаем, что либо х. принадлежит одному из множеств С/ (это имеет место в описанной выше ситуации), либо хь принадлежит некоторому множеству С* (последнее имеет место
64 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ в случае, когда Pm-i ближе к общей концевой точке, чем P'n_i)' В любом случае одно из множеств С, пересекает С. Рассмотрим теперь часть «только тогда». Предположим, что С является кодом. Прежде всего индукцией по / докажем, что C*w П С* Ф 0 для всех w e= Ch i > 0. (4.9) Действительно, для / = 0 утверждение (4.9) очевидно. (Напомним, что Со = С.) Предположим, что (4.9) выполнено для i—1, и рассмотрим а;еС/, / ^ 1. По определению Ci найдутся слова xgCh(/g С/_ь такие, что или xw = y, или yw = x. (4.10) По предположению индукции х\у = х2 для некоторых Х\ и х2 в С*. Следовательно, либо xxxw = х\у = х2у либо x\yw = = X2^ = Xia: в зависимости от того, какое из равенств (4.10) имеет место. В обоих случаях мы видим, что С*ш f| С* ф 0, а это завершает доказательство (4.9). Чтобы показать, что С не пересекается ни с одним из множеств С/, /^1, предположим противное: С[\С\Ф0 для некоторого /^ 1. Следовательно, по определению Ci найдутся такие слова х£С,/£Си|/е С/_ь что или */*=**', или х'х***у. (4.11) Рассмотрим первое равенство. В этом случае (4.9) влечет уС*()С* Ф0 и С*у(]С* Ф0у откуда, согласно лемме 4.2, следует # е С*. Однако это невозможно, поскольку ух = х' и С есть код. Следовательно, в (4.11) должно выполняться альтернативное равенство. Отсюда следует, что i ^ 2, поскольку в противном случае у принадлежало бы С, представляя собой произведение двух элементов, из С. Следовательно, существуют у\ е С/_2 и х" е С, такие, что или Уху^х", или х"у = у{. Первое равенство не выполняется, потому что в силу (4.9) и леммы 4.2 у\х'х *= х". Таким образом, должно выполняться альтернативное равенство х"у *=х"х'х = ух. Если г = 2, то выходит, что некоторый элемент С можно записать как произведение трех элементов из С. Значит, / ^ 3. Продолжая в этом духе, мы придем к тому, что / больше любого наперед заданного числа. Отсюда можно заключить, что для всех i С f) С/ = 0. □
4.1 МАКСИМАЛЬНЫЕ КОДЫ 65 4.2. МАКСИМАЛЬНЫЕ КОДЫ Код С над алфавитом 2 называется максимальным, если для любого кода С'^С над 2 имеет место С' = С. Например, код С = {аа, ab,ba,bb} является максимальным. Очевидно, для каждого слова w в алфавите {а, Ь} не из кода С множество C\j{w} не является кодом. Это заключение следует из того, что слово w2 может быть разложено в произведение элементов из C|J {w} двумя разными способами. Максимальные коды можно охарактеризовать посредством некоторых числовых величин, связанных с языками. В теории языков такое описание класса языков — редкое явление. Кодовым индикатором слова w в алфавите S из п^2 букв называется величина ci (w) = nr*w\. Пусть L — язык над 2, где 2 содержит п ^ 2 букв. (Предполагаем, что 2— минимальный алфавит языка L, т. е. L не является языком ни над каким собственным подмножеством 2.) Тогда кодовый индикатор языка L, обозначаемый через ci(L), определяется как сумма кодовых индикаторов всех слов в L. Таким образом, если язык L конечен, то ci(L) — положительное рациональное число. Если же язык L бесконечен, то ci(L) либо является положительным вещественным числом (если соответствующий ряд сходится), либо равно бесконечности. Например, если L является языком (4.1), то ci(L)«4- + 4+T + T~l- Ограничение кодового индикатора сверху соответствует двум интуитивным идеям: во-первых, код не должен содержать слишком много слов и, во-вторых, чем больше в языке коротких (а не длинных) слов, тем больше шанс, что этот язык не будет кодом. Это приводит нас к следующей теореме. Теорема 4.4. Каждый код С удовлетворяет неравенству ei(C)< 1. Доказательство. Сначала предположим, что С является конечным кодом в алфавите из п^2 букв. Следуя определению кода, легко проверить, что каждая степень С, /^ 1, также является кодом. Теперь индукцией по / докажем, что ci (С1) — (ci (С))' для всех / > 1. (4.12) Для /= 1 это очевидно. Предполагая (4.12) для фиксированного значения /, рассмотрим степень С+1. Так как Ci+X является кодом, каждое из его слов единственным образом можно представить в виде xw, где х е С, a w e О. Если С
66 ГЛ 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ состоит из слов х\, ..., xty а са — п '*«! для а=1, ..., t$ то t t ci(C/+')= Z <vci(C>) = ci(C') £ ce- a = l a=l = (ci(C))/ci(C) = (ci(C))/+1. (Здесь используются предположение индукции и равенстйо ci {w{w2) = ci (wi) ci{w2)-) Следовательно, (4.12) верно. Если длина самого длинного (соответственно самого короткого) слова в С равна К (соответственно А), то длина каждого слова в О ограничена числом Щ снизу и числом Kj сверху. Следовательно, существует не более чем (К — £)/+ 1 различных значений длины слов из CL С другой стороны, ci(L)^l для любого языка L, такого, что все слова в L имеют одинаковую длину. Эти факты приводят к оценке cl(C')<{K-k)j+l. Применяя (4.12), получаем, что (ci(C))/^(K — k)j+l для всех /. Так как К—А не зависит от /, это возможно лишь при ci(C)<l. Этот результат легко распространяется на случай бесконечного С. Очевидно, код С счетен: С={хи х2, ...}. Если ci(C)>l, то существует конечное подмножество С' = = {*i,*2> •••> xt) множества С, удовлетворяющее условию ci(C')> 1,-что противоречит первой частя доказательства, поскольку подмножество кода также является кодом. □ Непосредственным следствием теоремы 4.4 и определения кодового индикатора является приведенный ниже результат. Теорема 4.6. Код С, удовлетворяющий условию ci(C)= 1, является максимальным. Следующая теорема показывает, что для конечных кодов справедливо обращение теоремы 4.5. Теорема 4.6. Конечный код С максимален тогда и только тогда, когда ci(C)= 1. Доказательство. В силу теоремы 4.5 достаточно показать, что конечный максимальный код С удовлетворяет условию ci (С) = 1. Снова предположим, что алфавитом кода С является S с числом элементов п ^ 2, а длина самого длинного (соответственно самого короткого) слова в С равна К (соответственно к). Так как код С максимален, то слово у&С* обладает следующим свойством: для каждого *е2* существует такое слово /е2*, что ухх'&С* (ср. упр. 4). Пусть р — доста-
4.3. КОДЫ С ОГРАНИЧЕННОЙ ЗАДЕРЖКОЙ 67 точно большое натуральное число, и пусть х пробегает множество 2Р. Тогда каждое слово z(x) = yxxf (4.13) имеет длину, не меньшую |е/| + р и не большую \у\ + р + К. (Слово *' можно выбрать так, что |#'|< ^0 Следовательно, существуют такие не зависящие от р положительные числа <7i и 92, что каждое из слов (4.13) (когда х пробегает 2Р) принадлежит некоторому языку О, причем Поскольку длина интервала изменения / линейно зависит от р, а число слов вида (4.13) равно пр, то найдется такое не зависящее от р положительное число <7з> что некоторое множество С'0 содержит не менее q^nPjp слов вида (4.13). Предположим теперь, что ci(C)< 1. Применив соотношение (4.12), получим" (ci(C))<hp>(ci(C))h~*ci(Ch)> >(дгПр/р)п-<1У*+*>+«1 (Напомним, что длины слов вида (4.13) не превосходят \у\Л-РЛ-К-) Но это означает, что существует такое не зависящее от р положительное число q^ что для всех (достаточно больших) р (cl(C)™>qJp.. Последнее возможно только при ci(C)^l, и мы пришли к противоречию. Следовательно, ci(C)^ 1, а это в сочетании с теоремой 4.4 дает, что ci(C) = 1. □ 4.3. КОДЫ С ОГРАНИЧЕННОЙ ЗАДЕРЖКОЙ Среди отдельных исследованных в литературе классов кодов коды с ограниченной задержкой привлекают интерес в связи с многими проблемами теории языков, в частности с проблемой DOL-эквивалентности, которая будет рассматриваться в следующей главе. Прежде чем дать определение, рассмотрим в качестве примера код С = {a,abybb}. Пусть нам надо декодировать слово вида аЬ{, читая слово слева направо. Тогда, прежде чем начать декодирование, надо прочесть все слово целиком, так как первый декодируемый символ зависит от четности чясла символов 6. Подобная ситуация невозможна, если данный код имеет ограниченную задержку при чтении слева направо: в этом случае всегда достаточно заглянуть вперед на некоторое фиксированное число символов. Экстремальным примером могут служить коды,
68 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ подобные С\ ={aa,abfba}) где для декодирования вовсе не требуется заглядывать вперед. Так обстоит дело и для кода С, если слова декодировать справа налево! Определение. Код С имеет задержку р ^ 1 слева, если из того, что **,э • • • I Мр есть префикс */, ... х!п, (4.14) где хх суть слова из С, следует, что xix = xjx. Задержка справа определяется аналогично при помощи суффиксов. Код имеет ограниченную задержку слева (соответственно справа или в обоих направлениях), если существует такое р, что С имеет задержку р слева (соответственно справа или в обоих направлениях). Таким образом, в рассмотренных выше примерах оба кода С и С\ имеют задержку 1 справа (коды с таким свойством называются суффиксными), а С\ имеет также задержку 1 слева (коды с этим свойством называются префиксными). Код С не является кодом с ограниченной задержкой слева. Код с задержкой р имеет также задержку рх для любого рх 5* Р- Заметим также, что условие, определяющее понятие задержки, выполняется только для кодов. Поэтому мы могли бы дать следующее эквивалентное определение: «Язык С есть код с задержкой р ...». Очевидно, код С является префиксным (соответственно суффиксным) кодом тогда и только тогда, когда не существует таких непустых слов а: и у, что оба слова х я ху (соответственно х и ух) принадлежат С. Коды, одновременно являющиеся и префиксными, и суффиксными, называются бшгрефиксными кодами. В следующей простой лемме указывается одно из свойств кодов с ограниченной задержкой, которое очень часто используется в качестве их определения. Мы сформулируем эту лемму для направления слева направо, но аналогичное утверждение верно и для направления справа налево. Лемма 4.7. Код С над алфавитом S имеет задержку р слева тогда и только тогда, когда для всех х^С*, у^Ср~х xyw e С* влечет yw e С*. (4.15) Доказательство. Предположим, что С имеет задержку р слева, и рассмотрим слово xyw&C* из (4.15). Если v = А,, то (4.15) верно; в противном случае можно записать xy=*Xix...xiq, q>p, xyw=zxfl...xfn. Так как ху является префиксом слова xyw, то xit = xh. Сле-
4.3. КОДЫ С ОГРАНИЧЕННОЙ ЗАДЕРЖКОЙ 69 довательно, если удалить из хухю префикс xti, то образовавшееся слово также будет принадлежать С*. Повторяя операцию удаления префиксов, мы придем к тому, что yw ^ С*. Обратно, предположим, что (4.15) имеет место и что (4.14) выполняется для некоторых х„ из С. Тогда для некоторого */,-•• */я = **г • • • XipW. Полагая в (4.15) х — х, и у = х, ... х, , заключаем, что слово, получающееся из xf ... х, удалением префикса xti, принадлежит С*, т. е. Xh "•• Х1пвХ1хУ\' ГДе ^еС*' Так как С является кодом, то хи = xti, откуда видно, что С имеет задержку р слева. □ Введем теперь понятие композиции двух кодов. Для этого будет полезно отождествить коды и некоторые морфизмы1). Будем говорить, что морфизм A: S*->2* является кодом, если язык {/i(a)|ae2i} является кодом. (Здесь 2 —алфавит, a Si — алфавит или бесконечное множество символов.) Очевидно, что в этом смысле каждый код можно рассматривать как морфизм, причем как инъективный морфизм (ср. е леммой 4.1). Композиция двух кодов — это просто композиция соответствующих морфизмов (если она существует). Для того чтобы существовала композиция, число символов в алфавите первого кода должно равняться числу символов в алфавите второго кода. Если это имеет место, то композиция зависит еще от выбора биекции, используемой в том случае, когда коды заданы как языки, а не как морфизмы. Например, код {a, aba, baba, bb, bbba} является композицией двух кодов {а, 6а, bb} и {0,01, 11,2,21}, полученной из биекции ф(0) = а, ф(1) = 6а, ф(2) = &6. Так как при композициях инъективность сохраняется, то очевидно, что композиция двух кодов также является кодом. В дальнейшем в связи с элементарными морфизмами нам потребуется следующий результат. Лемма 4.8. Композиция двух кодов с ограниченной задержкой слева (соответственно справа) является кодом с ограниченной задержкой слева (соответственно справа). Доказательство. Пусть при i = 1, 2 код С,- имеет задержку pi слева. Докажем, что композиция С\ и С2 имеет задержку Р1 + Р2 —1- *} Связь между свойствами кодов и морфизмами DOL-систем иссле-» дуется в недавней статье [HW*]. — Прим. перев.
70 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ Предположим, что С/ определяется морфизмом Ы (i = ■■ 1, 2) и что hx(h2{au)) является префиксом слова h{(h2(bv))t (4.16) где а и Ь — буквы, а и и v — такие слова, что |w|=«(p1 + 4* Р2 — 1) — 1 • Нам надо доказать, что a = Ь. Запишем и в виде и = и2ии причем \ut\ = Pt-L i==l,2. (4.17) Представим h2(au2) и h2(u{) в следующем виде: К (аи2) = с\ • • • <ч> А2 ("О === ^+i • • • с*+*'» где сь ..., с^' суть буквы. Согласно (4.17), f ^ р\ — 1. (Очевидно, что Ai и h2 являются нестирающими морфиз- мами.) Далее обозначим первые t букв в h2(bv) через c'v ..., cv (Согласно (4.16), такие буквы должны существовать.) Достаточно показать, что о{=*с\ для /—1, ...,/. (4.18) Действительно, из (4.18) следует, что h2(au2) есть префикс слова h2(bv), и поэтому а =- 6, ибо h2 имеет задержку р2. Чтобы доказать (4.18), заметим сначала, что в силу (4.16) hi(cu ...ct+t') является префиксом слова h\h2(bv)t откуда Cl = c[, поскольку h\ имеет задержку рх и t + f—1 ^ V ^ ^ pi — 1. Рассматривая теперь слово с2 ... ctJrt> и слово, полученное из h2(bv) удалением первой буквы c\ = cv мы подобным же образом заключаем, что с2 = с2. Эту процедуру можно продолжить, и, поскольку V ;э*/?1— 1, то ct***c't. Доказательство леммы 4.8 в случае ограниченной задержки справа проводится аналогично. □ 4.4. МНОЖЕСТВА СОВПАДЕНИЯ И ИХ РЕГУЛЯРНОСТЬ Для двух заданных морфизмов g и А, отображающих 2* в 2* (где 2 и Si — алфавиты и не исключено, что 2i ==2), определим язык совпадения (множество совпадения): E(g, h) = {w<=ir\g(w) = h(w)}. Например, если g и h определены на {а, &}* равенствами g(a) = h (b) = af g(b) = h (a) = aa, то E(gyh) состоит из всех таких слов w> что число вхождений а в w равно числу вхождений b в w. Легко видеть, что в этом случае множество E(g,h) не регулярно. Для морфизмов g и й, определенных равенствами g (a) = aab, g (b) = a, h (a) = а, h (b) — baa,
4.4. МНОЖЕСТВА СОВПАДЕНИЯ И ИХ РЕГУЛЯРНОСТЬ 71 имеем E(g, й) = {а262}*. Для морфизмов g и h, определенных равенствами g(a) = aab, g(b) = aa, A(a) = a, h(b) = baa, имеем £(g,ft) = {X}. (Мы предоставляем читателю проверить эти факты.) Поскольку слово X всегда содержится в множестве совпадения, в дальнейшем мы будем называть множество совпадения пустым, если оно содержит только к. Таким образом, в последнем из приведенных выше примеров множество совпадения пусто. Множества совпадения часто оказываются полезными в теории языков, как будет показано в гл. 5 и 6. Что касается результатов о разрешимости, то здесь желательно, чтобы рассматриваемые множества совпадения были регулярны. Первый из приведенных выше примеров свидетельствует о том, что это условие не всегда выполняется. Следующая теорема указывает класс морфизмов, для которого оно имеет место. Эта теорема чрезвычайно важна для решения проблемы эквивалентности DOL-систем !). Теорема 4.9. Пусть морфизмы g и h — конечные коды с ограниченной задержкой в одном и том же направлении. Тогда язык E(g,h) регулярен. Прежде чем перейти к доказательству теоремы 4.9, введем одно вспомогательное понятие, которое представляет интерес и само по себе. Будем говорить, что пара (gf h) морфизмов обладает свойством единственного продолжения, если существует константа А, такая, что выполняется следующее условие: если слово х является префиксом какого-либо w &E(g, h) и ||*(*)|-|А(*)И>*. (4.19) то найдется в точности одна буква а, такая, что ха является префиксом некоторого слова из E(g, Л). Свойство единственного продолжения имеет место, в частности, в том случае, когда неравенство (4.19) с некоторой константой k не выполняется ни для одного префикса слов из E(gyh). В этом случае говорят, что пара (g, h) имеет ограниченный баланс (ср. также с упр. 8). Из трех рассмотренных выше примеров две последние пары (g, h) имеют ограниченный баланс, тогда как пара из первого примера не обладает даже свойством единственного продолжения. Лемма 4.10. Каждая пара (gy h) конечных кодов е ограниченной задержкой в одном и том же направлении обладает свойством единственного продолжения. 1) Интересное исследование регулярности языков совпадения содержится в статье [Ка*].-- Прим. перев.
72 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ Доказательство. Предположим, что g и h имеют ограниченную задержку слева (в случае ограниченной задержки справа доказательство будет аналогичным). Пусть р равно максимуму из двух задержек, a q равно максимуму длин |g(a)] и |ft(a)|, где а пробегает алфавиты, на которых определены g и h. (Очевидно, можно считать, что эти алфавиты совпадают.) Выберем теперь k=^pq и докажем, что это k удовлетворяет условию в определении свойства единственного продолжения. В самом деле, пусть (4.19) выполняется для префикса х некоторого слова из E(g,h). Из этого предположения следует, что g(x) = h (х) и или h (х) = g (х) и> где | и | > k. Будем считать, что имеет место первое из приведенных выше равенств. Теперь воспользуемся тем обстоятельством, что h имеет задержку р. (При рассмотрении альтернативного равенства аналогичным образом используется то, что g имеет задержку р.) Допустим, что найдутся различные буквы а\ и Яг, такие, что хах и ха% являются префиксами слов из E{g,h). В силу равенства g (x) =» h (x) и отсюда вытекает, что существуют такие слова у\ и у2, что и является префиксом как к(а\У\)у так и Н(а2у2)- Так как \и\> pq, то \у\\^ р и существует префикс у\ слова уи такой, что |^| = р— 1 и h (a^i) является префиксом слова и. Значит, ^(а^) является также префиксом слова h{a2y2). Поскольку а\фа2) последнее утверждение противоречит тому, что h имеет задержку р слева. □ Доказательство теоремы 4.9. Без потери общности предположим, что g и h имеют ограниченную задержку слева и общие входной и выходной алфавиты S и Si. В силу леммы 4.10 пара (g, К) обладает свойством единственного продолжения. Пусть k — соответствующая константа из (4.19). Теперь можно следующим образом доказать, что некоторый конечный детерминированный автомат представляет язык E(g,h). (Будет установлено только существование такого автомата. В действительности известно, что соответствующее построение нельзя провести эффективно.) Автомат А имеет «буфер» длины k. Читая входное слово, автомат помнит, какой из двух морфизмов «движется быстрее», а также «обгоняющую» (или выступающую) часть образа, ограниченную длиной буфера. Вход х немедленно отвергается, если для некоторого префикса х\ слова х ни одно из слов g(xi) и h(x\) не является префиксом другого. В случае выхода за границу буфера, т. е. когда один из морфизмов
4.4. МНОЖЕСТВА СОВПАДЕНИЯ И ИХ РЕГУЛЯРНОСТЬ 73 движется настолько быстрее, что выступающая часть его образа длиннее k, воспользуемся свойством единственного Продолжения: существует не более одной последовательности букв аи «2, ... , аи (4.20) ведущей снова к /г-ограниченному буферу, т. е. к ситуации, в которой выступающая часть образа имеет длину ^ k. Более формально, у автомата А есть вершина s, одновременно начальная и единственная заключительная, и «мусорная» вершина г, однажды попав в которую автомат никогда не покидает ее. Имеются также вершины, помеченные (wf g) и (wth), где w — непустое слово над Si длины ^ k. (Вершина (w, g) содержит информацию о том, что ведущее в нее слово х удовлетворяет условию g(x) = h(x)w.) Кроме того, в автомате А имеется последовательность из t— 1 вершин для каждой (из конечного множества) последовательности (4.20). Укажем наиболее существенные переходы для А. Если g(a) = h(a)w и \w\^k, то существует помеченная буквой а стрелка, ведущая из вершины s в (w, g). Если h(a) = wg(a), то существует помеченная буквой а стрелка, ведущая из (wy g) в s. Если wg(a) = h(a)wi и |wi|^:&, то найдется помеченная а стрелка, ведущая из (wfg) в (wug). Если h(a) не является префиксом wg(a), то существует помеченная а стрелка, ведущая из (w, g) в г. Если wg(a) = h(a)w\ и \w\\> k, то некоторая помеченная буквой а стрелка ведет из (wyg) в первую из вершин последовательности, определенной соответствующей последовательностью букв (4.20). (Заметим, что эта последовательность зависит только от пары (^i,g)> T- е- только от информации о том, какой из морфиз- мов движется быстрее и какова выступающая часть образа. Мы не можем эффективно указать верхнюю границу длины, этой последовательности; в этом и состоит причина неэффективности построения автомата А.) Для читателя теперь не составит особого труда дополнить определение автомата А и показать, что А представляет язык E(gy /i). П Следующая модификация теоремы 4.9 в дальнейших рассмотрениях не потребуется. Теорема 4.11. Предположим, что g—произвольный мор- физм, a h — конечный код с ограниченной задержкой в обоих направлениях. Тогда язык E(gyh) регулярен. Доказательство. Единственное отличие от предыдущего доказательства состоит в том, что нам надо показать, что пара (g, h) на этот раз также обладает свойством единствен-
74 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ ного продолжения. В ситуациях, когда g «движется быстрее», т. е. g(x) = h(x)u, мы воспроизводим доказательство леммы 4.10, используя ограниченность задержки морфизма А слева. Рассмотрим ситуацию, когда А движется быстрее, т. е. h(x) = g(x)ui где и — достаточно длинное слово. Пусть хау (где а — некоторая буква) является словом из E(g,h). То- гДа 8(у) = vh(y), где v — достаточно длинное слово. Отсюда следует единственность а в силу того, что А имеет ограниченную задержку «права. □ Теоремы 4.9 и 4.11 нельзя усилить так, чтобы распространить их на тот случай, когда g и А имеют ограниченную задержку в разных направлениях (ср. упр.9). 4.5. ЭЛЕМЕНТАРНЫЕ МОРФИЗМЫ Морфизм А: 2*->2[ (где 2 и 2j — алфавиты и не исключено, что 2 = 2i) называется упрощаемым, если существует алфавит 2г, в котором число букв меньше, чем в 2, и мор- физмы /: Т->Цж g:2*^2;, такие, что А равен композиции gf. В противном случае морфизм называется элементарным. Мы используем элементарные морфизмы в решении проблемы DOL-эквивалентности в гл. 5. Легко видеть, что элементарный морфизм всегда является нестирающим. Композиция двух упрощаемых морфизмов также представляет собой упрощаемый морфизм, тогда как композиция элементарных морфизмов может не быть элементарным морфизмом (см. также упр. 10). Наиболее существенным средством исследования элементарных морфизмов является следующая теорема. Теорема 4.12. Каждый элементарный морфизм является кодом с ограниченной задержкой в обоих направлениях. Доказательство. Назовем морфизм А: 2* ->-2* атомарным, если в 2 существуют разные буквы а и &, такие, что или h(a) — ab, h(c) = c для всех с Ф а, (4.21) или А (а) = ba, h(c) = c для всех с Ф а. (4.22) Если имеет место (4.21), то очевидно, что А является префиксным кодом. Если же выполняется (4.22), то А имеет задержку слева, равную двум. Аналогично рассуждая в случае задержки справа, заключаем, что атомарные морфизмы имеют ограниченную задержку в обоих направлениях. Пусть теперь морфизм А:2*->2* элементарен. Мы утверждаем, что существуют натуральное число t ^ 0, атомарны^
4.5. ЭЛЕМЕНТАРНЫЕ МОРФИЗМЫ 75 морфизмы gt: 2*->-2*, /=1, ..., tt и бипрефиксный код f: 2*->2*, такие, что h*=fgi...gt. (4.23) В силу леммы 4.8 из этого утверждения непосредственно следует теорема 4.12. Утверждение доказывается индукцией по S(A)=* = ^ae2;I A(a)|. Так как морфизм h представляет собой элементарный и, значит, нестирающий морфизм, то S(h) больше числа букв в 2 или равняется ему. Если S(h) равняется числу букв в 2, то сам h является бипрефиксным кодом, и, следовательно, (4.23) выполняется при / = 0. (Очевидно, что из элементарности А следует, что А (а) и h(b) суть различные буквы, если а и Ь различны.) Таким образом, базис индуктивного предположения очевиден. В качестве индуктивного предположения примем, что наше утверждение выполняется для всех S(h)^n. Рассмотрим произвольный элементарный морфизм А: 2*->2^ с S(A) = ■■л+1. Если А—бипрефиксный код, то доказывать нечего, поэтому (без потери общности) предположим, что А не является префиксным кодом. Из этого предположения следует, что существуют различные буквы а и Ь и слово х, такие, что h(a) = h(b)x. Рассмотрим атомарный морфизм g: 2* ->-2*, заданный равенствами g (a) = ba, g(c) = c при с Ф а, и морфизм A': 2*->2*, заданный равенствами ti (а) = х, А' (с) = А (с) при с Ф а. (Если А не является суффиксным кодом, то надо использовать атомарный морфизм вида (4.21).) Ясно, что A = A'g и S(A')^n. Кроме того, морфизм А' должен быть элементарным, поскольку в противном случае морфизм А был бы упрощаемым. Следовательно, согласно предположению индукции, для А должно иметь место разложение вида (4.23). □ Заметим, что в разложении (4.23) морфизм / в действительности также элементарен. Итак, каждый элементарный морфизм можно представить в виде fgf где / — элементарный бипрефиксный код, a g — произведение атомарных морфиз- мов. Можно показать также, что, обратно, каждая декомпозиция этого вида элементарна. Как непосредственное следствие теорем 4.9 и 4.12 мы получаем теперь следующий важный результат. Теорема 4.13. Если g и А— элементарные морфизмы, то яъык E(g, ft) регулярен.
76 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ Если вместо теоремы 4.9 применить теорему 4.11, то по теореме 4.12 получим следующий результат: если один из морфизмов g и h элементарен, то язык E(g,h) регулярен. 4.6. ПРОБЛЕМА СООТВЕТСТВИЯ ПОСТА Мы уже встречались с различными результатами о неразрешимости, когда строили эффективные процедуры (алгоритмы) для решения любой задачи какого-либо рассматриваемого типа. Типичным примером является проблема СКС, рассмотренная в гл. 3. Некоторые из наиболее сложных теорем этой книги являются именно результатами о разрешимости. Результаты о разрешимости могут быть основаны на интуитивном понятии алгоритма, в то время как для доказательства неразрешимости какой-либо проблемы понятие алгоритма должно быть формализовано. Наиболее обычной из таких формализации является машина Тьюринга, см. [AHU] или [HU]. Обычным способом установления неразрешимости некоторой проблемы Р является «сведение» Р к проблеме Pi, неразрешимость которой уже установлена, для чего надо показать, что разрешимость Р влечет разрешимость Р\. В теории языков наиболее подходящей среди таких проблем Pi оказывается проблема соответствия Поста: для морфизмов g: 2* —>2*{ и h: 2*->EJ выяснить, пусто или нет множество E(g,h). Подробное обсуждение вопроса о том, почему проблема соответствия Поста неразрешима, содержится в l[Sa2]. Здесь будет проведено лишь следующее краткое рассуждение на интуитивном уровне. Сначала покажем, как любая формализация интуитивного понятия алгоритма приводит к алгоритмически неразрешимым проблемам. Рассмотрим какую-нибудь из таких формализации. Читатель, знакомый с машинами Тьюринга, нормальными алгоритмами Маркова или любой другой формализацией, может выбрать ту, которая ему больше всего нравится. Для любого алгоритма А и любого входного слова х алгоритма А существуют две возможности: либо А останавливается на х, т. е. при применении А к х вычисление завершается, либо А не останавливается на х. В последнем случае мы скажем, что А зацикливается на х. Проблема остановки состоит в решении для произвольных пар (Д х) вопроса о том, останавливается или зацикливается А на х. Частным случаем проблемы остановки является проблема самоприменимости, определенная следующим образом. Каж-
УПРАЖНЕНИЯ 77 дому алгоритму А можно поставить в соответствие слово w(A)9 например записывая одну за другой все команды А и разделяя их маркерами. Алгоритм А называется самопри- менимым, если А останавливается на слове w(A). Проблема самоприменимости состоит в решении вопроса, является ли произвольный алгоритм самоприменимым1). Очевидно, что проблема самоприменимости является подпроблемой проблемы остановки, и, следовательно, если неразрешима первая, то неразрешима и вторая. Предположим, что существует алгоритм А0 для решения проблемы самоприменимости. Тогда Л0 останавливается на всех входах вида w(A) и дает ответ «да» или «нет» в зависимости от того, является ли алгоритм А самоприменимым. Теперь модифицируем А0у добавляя незавершающееся вычисление, начинающееся с ответа «да». Получившийся алгоритм А\ зацикливается (соответственно останавливается) на входах вида w(A), где алгоритм А самоприменим (соответственно не является таковым). Тогда мы приходим к противоречию при рассмотрении входа w(A\). Следовательно, проблема самоприменимости неразрешима, а значит, такова и проблема остановки. Каждому примеру (Л, х) проблемы остановки можно поставить в соответствие пару морфизмов (g,h), такую, что А останавливается на х тогда и только тогда, когда множество E(gyh) непусто. Для этого нужно командам А поставить в соответствие пары (g(a),h(a)) таким образом, чтобы g моделировал вычисление А «быстрее», чем ft, и чтобы ft «догонял» g только в конце вычисления. (Аналогичное соответствие устанавливается в доказательстве теоремы 6.9.) Надо только быть уверенным в том, что пара (g, ft) не дает «паразитных решений», т. е. что E(gth) непусто только в том случае, когда А останавливается на х. Установленное таким образом соответствие показывает неразрешимость проблемы соответствия Поста. Неразрешимость проблемы соответствия Поста означает отсутствие алгоритма, дающего ответ для произвольной пары (g, ft). Конечно, существуют отдельные пары (g, ft), для которых легко установить, что E(g,h) пусто. С другой стороны, проблема соответствия Поста остается неразрешимой, даже если g и А являются кодами; см. [Le]. УПРАЖНЕНИЯ 1. Покажите, что если С* = C*+i (как определено в теореме 4.3), то С/ = С/+/ для всех / 5* 0. 1) Точнее говоря, эта проблема состоит в построении алгоритма, распознающего самоприменимость произвольных алгоритмов. — Прим. ред.
78 ГЛ. 4. КОДЫ И МНОЖЕСТВА СОВПАДЕНИЯ 2. Покажите, что если CgS* является максимальным кодом и w ш е 2*, то С* Г) 2*до2* ^ 0. (В терминах теории полугрупп это означает, что С* пересекает все двусторонние идеалы 2*.) 3. Покажите, что обращение упр: 2 неверно. (С8={о2+'ш,Ь| шб е {а, Ь}*} является префиксным кодом, удовлетворяющим указанному условию, но не максимальным.) 4. Покажите (используя упр. 2), что если Cs2* — конечный максимальный код, то существует слово у е С*, такое, что для любого слова хе2* существует слово /е2* со свойством ухх' е С*. 5. Предположим, что С имеет ограниченную задержку слева. Покажите, что существует такое натуральное /, что С* имеет ограниченную задержку слева, равную двум. 6. Является ли код С = {a, aba baba, bb, bbba) кодом с ограниченной задержкой слева (соответственно справа)? (Заметим, что С является композицией префиксного и суффиксного кодов.) 7. Для заданных т, п ^ 1 постройте морфизмы g и h, удовлетворяющие условию E(g, h) — {ambn}*. (Ср. с [CuK].) 8. Обозначим через Ek(g, h), k ^ О, подмножество множества E(gt h)t состоящее из всех таких слов w, что условие (4.19) не выполняется ни для одного префикса х слова w. Покажите, что язык Ek(g, h) регулярен при любых g, h и k. Покажите также, что язык E(g. h) регулярен тогда и только тогда, когда E(g, h) = Ek(g, h) для некоторого L (Заметим также, что Ek(g, h) ^Ek+i(g, h) для всех k и что E(gy h) равно объединению множеств Ek(g, h).) 9. Рассмотрим морфизмы g,h: {а, Ь% с, d, e, f}*->{\, 2, 3, 4, 5}", заданные таблицей a b с d e f 1234 2323 4 24 §2 5~ 1 23 4 42 3232 4325 Покажите, что Е {g, h) = {{abcb2 ... cb2" de2nc ... e2cef | n > 0} U {c})* Выведите отсюда, что множество совпадения префиксного и суффиксного кодов не обязательно регулярно. (В действительности этот конкретный язык E(gy h) даже не является контекстно-свободным.) См. [KaS]. 10. Рассмотрим морфизм Л, заданный равенствами h(a)=*de, h(b) = dfe, h(c)=*dffe, h (d) = a, h (e) =*bc h (/) =* ba. Докажите, что морфизм h элементарен, в то время как h2 упрощаем. Каков наименьший алфавит 2, для которого вы можете указать два таких элементарных морфизма g.h: 2*->2*, что их произведение упрощаемо? 11. Пусть 2 = {а,, ... ап} и h: 2* ->2t —- элементарный морфизм. Покажите, что h имеет задержку, равную \h(ax ... aft)| — n+ 1, как слева, так и справа. Покажите также, что эта оценка, как и оценка Pi + P2— 1, полученная в доказательстве леммы 4.8, является наилучшей возможной в общем случае.
УПРАЖНЕНИЯ 79 12. Морфизм h: 2* -> 2j называется периодическим, если для некоторого слова w h(2) s {ад}*. Покажите, что проблема пустоты E(g, h) разрешима, если хотя бы один из морфизмов g и h является периодическим. (См. [KaS]. Кроме нескольких тривиальных случаев и ситуации, описанной в упр. 13, это единственный известный случай, когда проблема соответствия Поста разрешима.) 13. Исследуйте разрешимость проблемы соответствия Поста в случае, когда алфавиты области определения морфизмов g и h состоят только из двух букв (см. fCuK]). Недавно было показано (см. [EhR5*]), что проблема соответствия Поста в этом случае разрешима 1). Согласно предыдущему упражнению, этот результат непосредственно вытекал бы из разрешимости проблемы соответствия Поста для элементарных морфизмов, но последний вопрос остается пока открытым. 1) Этот результат независимо получил В. А. Павленко (см. [П*]).-^ Прим. перев.
5 Разрешимость и неразрешимость 6.1. OL-СИСТЕМЫ В этой главе речь идет о вопросах разрешимости. Различие между «разрешимым» и «неразрешимым» иллюстрируется в специфических рамках теории формальных языков: показывается, что некоторая проблема разрешима для некоторого класса языков, но становится неразрешимой, если этот класс несколько расширить. В нашем изложении «проблемы» состоят из бесконечного числа примеров, и в каждом случае ответом является либо «да», либо «нет». Проблема называется разрешимой, если существует алгоритм, дающий ответ для любого примера (частного случая) проблемы. В противоположной ситуации проблема называется неразрешимой. Как было указано выше, для установления результатов о неразрешимости необходима формализация понятия алгоритма. Мы не даем такой формализации, и наши доказательства неразрешимости состоят в сведении к проблеме соответствия Поста в смысле, указанном в конце гл. 4. Типичными проблемами разрешимости, которые рассматривает теория формальных языков, являются следующие, пусть М — некоторый класс устройств для задания языков. (Так, М может состоять, например, из всех грамматик, или всех автоматов некоторого типа, или всех DOL-систем.) Под проблемой языковой эквивалентности для М мы понимаем проблему выяснения для любых двух устройств гп\ и тг, задают ли они один и тот же язык. Проблема включения для М состоит в том, чтобы для произвольных гп\ и rri2 из М определить, включается ли язык, задаваемый /щ, в язык, задаваемый Ш2- Очевидно, что решение проблемы включения дает решение проблемы эквивалентности. Под^ проблемой пустоты (соответственно конечности) для М мы понимаем проблему определения для произвольного устройства m в М, является ли язык, задаваемый т, пустым (соответственно конечным). Проблема принадлежности для М состоит в выяснении для произвольного m из М и произвольного слова wf принадлежит ли w языку, задаваемому га. Так, например, теорема 2.8 дает решение проблемы эквивалентности для конечных автоматов (т. е. в этой теореме М является классом конечных автоматов),
5.1. OL-СИСТЕМЫ 81 Очевидно, что если некоторая проблема разрешима (соответственно неразрешима) для класса Му то она является таковой же для любого подмножества (надмножества) класса М. Для установления разрешимости (неразрешимости) обычно стараются сделать М как можно большим (соответственно меньшим) с тем, чтобы определить, где именно про* ходит граница между разрешимостью и неразрешимостью. В дальнейшем мы увидим, что детерминированный и недетерминированный варианты одного и того же класса устройств могут приводить к разрешимой и неразрешимой проблемам языковой эквивалентности соответственно. Понятия DOL-системы и DOL-языка уже были введены в гл. 1. DOL-системы образуют класс упомянутых выше детерминированных устройств. Теперь мы определим их недетерминированные аналоги, так называемые OL-системы и OL-языки. Отображение а алфавита 2 в множество конечных подмножеств 2* называется конечной подстановкой (определенной на 2). Область определения а расширяется следующим образом: а(Я) = {Я}, o(wu w2) = a(w\)a(w2) для всех w\ и w2 в 2*. (Правая часть равенства представляет собой катенацию языков.) Кроме того, для языка L над 2 положим a(L) = {w|wea (ад) для некоторого ад e L}. В дальнейшем мы будем использовать итерацию конечных подстановок. Таким образом, о\ *^1, означает i последовательных применений а. По определению o°(L) — L. Тройки G = (2,a, ад), где 2 —алфавит, а —определенная на 2 конечная подстановка, а ад — слово над 2, называются VL-системами. Говорят, что язык L(G)= U a'(a>) (5.1) порождается OL-системой G. Языки вида (5.1) называются OL-языками. Например, OL-системы G1==({a}, <у{, а2), где ol{a) = {ai a2}, Q2 = ({a, b}, a2, aft), где о2(а) = {{abf}, a2(b) = {X}9 Gs = {{a, &}, <т3, а), где o3(a) = o3(b) = {aa9 ab9 ba, bb}, порождают соответственно языки L(Gl) = {an\n>2}9 L(G2) = {(abfl\n^0}, £(G8) = {a} U {w^ {a, b}*\ (3n>l)\ w\ = 2%
82 ГЛ. 5. РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ Конечную подстановку в OL-системе можно рассматривать как конечное множество правил подстановки или продукций. Часто выбирают соответствующее обозначение. Так, приведенные выше примеры можно переписать следующим образом: G\ = {{a}t {a->a, а->а2}, а2), 02 = ({а, Ь}, {а->(аЬ)\ b->X}9 ab), Gs = ({a, b}> {a->aa, a->ab, a-^ba, a->bb, b-^aa, b-+ab, b-^>ba, b-^bb}, a). Заметим, что G2 на самом деле является DOL-системой, поскольку а2 можно рассматривать как морфизм. Это всегда имеет место, если для любой буквы а множество о (а) состоит .из одного слова. Если конечную подстановку а в OL-системе G рассматривать как конечное множество продукций, то каждое слово х в языке L(G) получается из аксиомы w с помощью вывода где каждое слово получается из предыдущего заменой каждой буквы в соответствии с некоторой продукцией. В случае DOL-системы этот процесс замены оказывается детерминированным; аксиома однозначно определяет последовательность, если дана длина последовательности. Буква D в названии DOL как раз и означает «детерминированная». DOL- и OL-системы являются частными видами L-систем (обозначение L связано с фамилией Линденмайера, который впервые ввел такие системы в 1968 г. как модели в биологии развивающихся организмов; см. [L]). Существенным свойством L-систем в отличие от систем подстановок или порождающих грамматик, определенных в гл. 2, является параллельность процессов вывода: на каждом шаге процесса заменяется каждая буква. Наконец, буква О в DOL и OL означает, что замещение символов осуществляется контекстно-свободным образом: соседние буквы не влияют на то, чем замещается данная буква. (Первоначально применительно к биологии буква О означала, что связь между отдельными клетками является нульсторонней, т. е. попросту отсутствует.) Легко проверить, что приведенные выше языки L(G\) и L(G$) не являются DOL-языками, т. е. процесс их порождения существенно недетерминирован. Проблема языковой эквивалентности для DOL-систем (соответственно OL-систем) состоит в определении для любых двух DOL-систем (соответственно OL-систем) G и G', имеет ли место L(G) — L{G'). Последовательность слов S(G), определяемая DOL-системой G, была рассмотрена в гл. 1. Про*
6.2. ПРОБЛЕМЫ ЭКВИВАЛЕНТНОСТИ ДЛЯ DOL-СИСТЕМ 83 блема последовательностной эквивалентности для DOL-си- стем состоит в выяснении для любых двух DOL-систем G и G\ имеет ли место S(G)= S{G'). (OL-системы не всегда порождают единственную последовательность слов, и поэтому проблема эквивалентности в указанном выше смысле для OL-систем не определена; см., однако, упр. 13.) Мы увидим, что проблемы языковой и последовательностной эквивалентности для DOL-систем разрешимы, в то время как проблема языковой эквивалентности для OL-систем неразрешима. Помимо того что эти результаты демонстрируют типичную границу между разрешимостью и неразрешимостью, они очень интересны в историческом плане. Вопрос о разрешимости проблем эквивалентности для DOL-систем довольно долгое время оставался открытым, и его решение вызвало появление новых методов и понятий, таких, как элементарный морфизм и множество совпадения, определенные в предыдущей главе. Исследование проблемы языковой эквивалентности для OL-систем привело к появлению новых идей в теории контекстно-свободных языков. 5.2. ПРОБЛЕМЫ ЭКВИВАЛЕНТНОСТИ ДЛЯ DOL-СИСТЕМ Проблемы языковой и последовательностной эквивалентности для DOL-систем несколько различны, хотя и тесно связаны между собой. Различие состоит в том, что две DOL-системы могут порождать один и тот же язык в разном порядке; типичным примером служат две системы: ({а, &}, {а->Ь2, Ь->а), Ь) и ({а, &}, {а->&, Ь->а2}, а). Тесная связь этих двух проблем убедительно иллюстрируется тем фактом, что еще за несколько лет до того, как была установлена разрешимость этих проблем,, было доказано, что разрешимость одной из них влечет разрешимость другой. Сначала докажем разрешимость проблемы последовательностной эквивалентности для DOL-систем. Фактически большая часть необходимого для этой цели аппарата содержится в гл. 4. Приведем сначала несколько примеров, выявляющих возникающие здесь трудности. Рассмотрим две DOL-системы Gt = ({a, b}, {a->aba, 6->А,}, aba), G2 = ({a, b}, {a-^a, b->ba2b), aba). Легко видеть, что L (Gx) = L (G2) = {(abafn | n > 0}
84 ГЛ. 5. РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ и что S(Gi) = S(G2) состоит из всех слов в L(G\) в порядке возрастания длины. Следовательно, G\ и G2 языково и по- следовательностно эквивалентны. Специфические соображения, подобные проведенным в предыдущем примере рассуждениям, не распространяются на общий случай. Что касается последовательностной эквивалентности, можно по одному порождать слова из двух последовательностей S{G\) и S(G2), каждый раз проверяя, совпадают ли 1-е слова в двух последовательностях для i = = 1,2, ... . Эта процедура составляет «полуалгоритм» для неэквивалентности: если G\ и G2 последовательностно ^эквивалентны, то процедура завершается правильным ответом. Но если G\ и G2 в действительности последовательностно эквивалентны, то процедура не заканчивается никогда. Чтобы превратить эту процедуру в алгоритм, надо уметь вычислять число C(Gi, G2), такое, что если первые C(Gi, G2) элементов в S(G\) и S(G2) совпадают, то S(Gi) = S(G2). Оказалось, однако, что эта задача очень трудна, хотя, с другой стороны, не исключено, что в качестве C(Gi, G2) достаточно взять удвоенный объем алфавита G\ и G2; во всяком случае, не известен ни один пример, противоречащий этому предположению. Действительно, следующий пример (который можно распространить на большие алфавиты, см. упр. 1) является «худшим» из известных примеров двух DOL-систем G\ и G2, таких, что 5(Gi)=^=5(G2), но наибольшее (возможное при данном объеме алфавита) число первых слов в этих двух последовательностях совпадает. Рассмотрим две DOL-системы G\ и G2 с аксиомой ab. Продукциями для G\ (соответственно для G2) являются a->abby b->aabba (соответственно a-^abbaabb, b->a). Читатель может проверить, что в последовательностях S(G\) и 5(G2) первые три слова совпадают, но дальнейшие слова различаются. После этих примеров перейдем к общему решению проблемы последовательностной эквивалентности для DOL-систем. Будем говорить, что два морфизма g и h (определенные на 2*) равны на языке L^S*, если g(w) = h(w) выполняется для всех w из L. Очевидно, что g и h равны на L тогда и только тогда, когда L^E(g4h), где Е — множество совпадения, определенное в гл. 4. Прежде всего докажем две леммы. Лемма 5.1. Существует алгоритм, позволяющий выяснить, равны ли два морфизма на данном регулярном языке R1). 1) Относительно этой леммы см. замечание переводчика в конце главы. — Прим. ред.
5.2 ПРОБЛЕМЫ ЭКВИВАЛЕНТНОСТИ ДЛЯ DOL-СИСТЕМ 85 Доказательство. Пусть А— конечный детерминированный автомат, представляющий R ^ S*. Рассмотрим пути в Л из начальной вершины в одну из заключительных вершин. Пусть какой-либо из них содержит цикл, т. е. пусть для непустого слова w и некоторых слов W\ и w2 все слова w\wnw2y п ^ О, принадлежат R. Тогда мы утверждаем, что либо \g(w)\-\h(w)l = 0, (5.2) либо g и ft не равны на R. Действительно, если (5.2) не выполнено, то для достаточно больших п | g (w{wnw2) | — | A (w{wnw2) | Ф 0. (5.3) Но поскольку все слова w\wnw2 принадлежат /?, из (5.3) следует, что g и А не равны на R. Рассмотрим теперь подмножества Ek(g,h) языка E(gyh)9 определенные в упр. 4.8. Пусть t — число вершин в Л, и пусть и = тах{||г(а)|-|А(а)||}, где а пробегает S. (Здесь рядом с фигурными скобками стоит символ абсолютной величины.) Выберем из множеств Ek(g,h) такое, что k ^ u{t—1)/2. Мы можем выяснить, имеет ли место включение R^Ek(g9 A). (5.4) (Указанная возможность следует из того, что оба этих языка регулярны; см. упр. 4.8, а также теоремы 2.7 и 2.8.) Если (5.4) выполняется, то ясно, что g и А равны на R. Обратно, если g и А равны на /?, то (5.2) выполняется для всех слов wt таких, что соответствующие им пути из начальной вершины в заключительную содержат петлю. Из этого факта следует, что (5.4) выполняется. В самом деле, мы предположили, что R<=:E(gth), и нам известно, что, согласно (5.2), абсолютная величина разности \g(x) | — \h(x) |, где х — префикс некоторого слова из /?, не может превышать выбранного нами числа k. Это доказывает правильность (5.4). П Лемма 5.2. Проблема выяснения, содержится *ли данный DOL-язык L в данном регулярном языке /?, разрешима. Доказательство. Пусть L = L{G), где G=(2,A,w) есть DOL-система, и пусть R может быть представлен конечным детерминированным автоматом А. Без потери общности можно предположить, что S является также алфавитом пометок (т. е. входным алфавитом) автомата А, Построим теперь последовательность автоматов Л (А), А (А2), А (А3), ... следующим образом. Для каждого Л (А1*) множество вершин, начальная и заключительные вершины, а также алфавит пометок совпадают с соответствующими
ГЛ. 5. РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ объектами в автомате Л. (Из этого факта следует, что все автоматы в нашей последовательности не могут быть различными; в дальнейшем эта информация окажется весьма полезной.) В Л (Л') существует помеченная буквой а стрелка из вершины s в вершину s' тогда и только тогда, когда в А существует помеченный словом А1'(а) путь из s в s'. Очевидно, что это условие определяет автомат Л (А*). Кроме того, R = = А' (Ri)y где Rt — язык, представляемый автоматом Л (А*). Поскольку не все автоматы в нашей последовательности различны, найдутся такие числа i и /, I < /, что Л(А') = = Л(А/). Этот факт влечет равенство A(hi+k) = A(hl+k) для всех &. Следовательно, каждый автомат из нашей-исходной последовательности автоматов является элементом последовательности А (А), А (А2), ... , А (Ау). (5.5) (Автоматы из (5.5) не обязательно все различны.) Пусть теперь R\ — пересечение языков, представляемых автоматами (5.5) и автоматом Л, т. е. /?!=— П Ш(к% где Л(А°) = Л. Очевидно, что можно эффективно построить автомат Ль представляющий язык R\. (Это следует из теоремы 2.7 и того факта, что / можно вычислить эффективно.) Мы утверждаем, что L^R тогда и только тогда, когда w&L(A\). (Очевидно, последнее условие разрешимо.) Действительно, L^R тогда и только тогда, когда hl(w)^ L(A) для каждого / ^ 0. Последнее условие выполняется тогда и только тогда, когда для каждого / ^ 0 имеем w ^ L(A(hi))t а это в свою очередь эквивалентно включению w ^ L(A\). О Теперь мы готовы установить первый основной результат, в конечном итоге ведущий к разрешимости проблемы последовательностной эквивалентности для DOL-систем. Теорема 5.3. Проблема равенства двух данных элементарных морфизмов на данном DOL-языке разрешима. Доказательство. Чтобы решить вопрос о равенстве двух элементарных морфизмов g\ и g2 на языке L(G), где G = = (2,A, w)—некоторая DOL-система, мы поступаем следующим образом. В силу теоремы 4.13 язык E(gug2) регулярен. Пусть Ro,RuR2, ... — эффективное перечисление всех регулярных языков над 2. (Очевидно, такое перечисление возможно. Например, можно рассмотреть сначала конечные де-
5.2. ПРОБЛЕМЫ ЭКВИВАЛЕНТНОСТИ ДЛЯ DObCHCTEM 87 терминированные автоматы с одной вершиной, затем с двумя вершинами и т. д.) Рассмотрим теперь два полуалгоритма, один для равенства, а другой для неравенства. Последний очевиден: берем последовательность w = h°(w)9 hl(w), h2{w\ ... и проверяем, имеет ли место равенство ЫА>» = &(*>)). Если морфизмы gi и g2 не равны на L(G), то этот полуалгоритм завершается правильным ответом. (/+1)~й шаг полу алгоритма для равенства состоит в проверке с использованием леммы 5.1, равны ли g\ и #2 на Ri и в случае положительного ответа в последующей проверке, содержится ли L(G) в Ri. Последнюю проверку можно осуществить с помощью леммы 5.2, и из положительного ответа следует равенство g\ и g2 на L(G). (В случае отрицательного ответа на какой-либо из этих вопросов мы переходим к (* + 2)-му шагу.) Если морфизмы gi и g2 равны на L(G), то этот полуалгоритм завершается правильным от* ветом. Алгоритм для теоремы 5.3 заключается в параллельном применении этих двух полуалгоритмов (т. е. в чередовании их шагов). D Вместо абстрактной последовательности /?*, i = 0, 1,2, ..., в предыдущем доказательстве можно рассмотреть конкретную последовательность регулярных языков Ei(g\,g2), определенную в упр. 4.8. Тогда (/+1)-й шаг в нашем полном алгоритме состоит в проверке равенства gi(hi(w))=g2(hi(w)) и в случае положительного ответа в проверке включения L(G)^Ei(gug2). Конечно, мы получили бы очень простой алгоритм, основываясь лишь на лемме 5.2, если бы могли эффективно построить регулярный язык E(gug2). (Напомним, что построение автомата А в доказательстве теоремы 4.9 не было эффективным.) Проблему последовательностной эквивалентности для DOL-систем можно свести к теореме 5.3. Основная идея этого сведения заключается в декомпозиции морфизма произвольной DOL-системы таким образом, чтобы достаточно было проверить равенство элементарных морфизмов на DOL-язы- ке. В этом плане оказывается полезной следующая лемма. Лемма 5.4. Пусть Ai и h2 — морфизмы из 2* в 2*. Тогда существуют последовательность i\, ..., im элементов из множества {1, 2} и морфизмы /, ри Ръ такие, что hihix "-him = pjf, j = 1, 2, (5.6)
88 ГЛ. б. РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ причем морфизмы р} элементарны. Кроме того, последовательность /ь ..., im и морфизмы f\, pu P2 можно построить эффективно. Доказательство. Если морфизмы h\ и А2 элементарны, то выберем р/ = А/, /=1,2. В качестве / возьмем тождественный морфизм, а в качестве последовательности элементов из {1,2} — пустую последовательность. Предположим теперь, что хотя бы один из морфизмов h\ и Лг не элементарен Рассмотрим составленное из h\ и А2 произведение, допускающее максимальное упрощение К •••Ч*=^- (6.7) Более подробно, мы предполагаем, что (5.7) выполняется для }:Г->Г{ и g:S;->2T, где подалфавит 2< имеет меньшую мощность, чем 2, и если то мощность алфавита 22 не меньше мощности 2ь Теперь положим pj = hjgy /=1,2. Тогда (5.7) влечет (5.6). Кроме того, минимальность 2i гарантирует элементарность р\ и р2. Действительно, если h\g допускает упрощение hjg = g'g", то получаем где произведение в правой части можно упростить с помощью алфавита меньшей мощности, чем у 2ь Это построение эффективно, потому что при данной произвольной последовательности i\t ..., im можно проверить, выполняется ли (5.6) для некоторого элементарного мор- физма р/. (Вопрос об элементарности данного морфизма легко разрешается, см. упр. 2.) Таким образом, мы просто систематически перебираем все последовательности до тех пор, пока не найдем подходящую. Первая часть доказательства гарантирует, что в конце концов мы получим требуемый результат. □ Теперь у нас есть все необходимое для установления основного результата. Теорема 6.5. Проблема последовательностной эквивалентности для DOL-систем разрешима. Доказательство. Без потери общности предположим, что даны две DOL-системы вида Gi = (Z,hitw), /=1,2,
5.2. ПРОБЛЕМЫ ЭКВИВАЛЕНТНОСТИ ДЛЯ DOL-СИСТЕМ 89 т. е. системы с совпадающими начальными словами и алфавитами. Обозначим слова в последовательностях S(Gt)t i = = 1,2, следующим образом: w = w(>9 w[, wl2, .... Пусть теперь /ь ..., im,pi,P2,f удовлетворяют лемме 5.4 для h\ и Аг. Введем обозначения г, = АЛ /..A, = />,/, i=l, 2, i m и рассмотрим DOL-системы Gi/ = (2, ft, а^>), 1</<2, 0</<m. (Заметим, что 2 может содержать буквы, не входящие фактически в S(Gij). Однако морфизмы gt определены на всем 2.) Очевидно, если S(Gi) = S(G2), то для всех /, 0^/^т, имеет место 5(01/)==5(G2/). (5.8) Справедливо также обращение этой импликации, что можно показать при помощи следующего рассуждения от противного. Предположим, что выполняется (5.8), но существует натуральное число п, такое, что а/пп Ф и/п2), и возьмем наименьшее из таких натуральных чисел. Очевидно, что п не может быть меньше т или равно ему, так как в этом случае первые элементы последовательностей S(G\n) и S(G2n) были бы различны, что противоречит (5.8). Таким образом, п^ ^т+1. Выбрав теперь такое натуральное t, что О < П\ = п — t (т + 1) < /п, мы видим, что (* + 1)-е слова в последовательностях S(Glrti) и S(G2n\ различны, что также является противоречием. Таким образом, для завершения доказательства нам нужно только установить разрешимость равенств (5.8). С этой целью рассмотрим фиксированное / и положим Н^Оц^р, gP <>), i-l, 2. Рассмотрим также морфизмы рьрг, /, введенные ранее в этом доказательстве. Можно предположить, что ^l) = wf\ и, следовательно, / (Цп) = / (wf]), поскольку в противном случае S(Hi)^S(H2), и вопрос решен. Рассмотрим теперь DOL-системы */~(2,. fPL> fW>)). '-1. 2, где 2/— тот подалфавит алфавита 2, с помощью которого упрощается морфизм gt. (В данном случае мы должны взять
GO ГЛ. 5. РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ подалфавит, поскольку морфизм fpt не обязательно определен на всем 2.) По теореме 2.3 можно выяснить, равны ли морфизмы р\ и р2 на L(K\). Но из определений непосредственно следует, что р\ и рч равны на L(Ki) тогда и только тогда, когда S(Hl) = S(H2). О Доказательство разрешимости проблемы языковой эквивалентности для DOL-систем не содержит никаких существенно новых идей в плане теории языков и поэтому опускается. Существенным в этом доказательстве является сопоставление заданной DOL-системе G = (Е,й, w) систем вида G(p, q) = (2pq, А", А*(о0), где «период» р достаточно велик, чтобы гарантировать однозначный порядок слов, так что становится применимой теорема 5.5. В процессе работы алгоритм пытается уменьшить период ценой увеличения «первоначального беспорядка» q. Что касается деталей доказательства следующей теоремы, мы отсылаем читателя к упр. 5. Теорема 5.6. Проблема языковой эквивалентности для DOL-систем разрешима. 5.3. РЕЗУЛЬТАТЫ О НЕРАЗРЕШИМОСТИ Используем теперь сведение к проблеме соответствия Поста, чтобы доказать, что теорему 5.6 нельзя распространить на OL-системы. В то же время мы докажем неразрешимость проблемы языковой эквивалентности для контекстно-свободных грамматик (см. гл. 2). Оба результата вытекают из приведенной ниже леммы 5.7. Сентенциальной формой (sentential form) грамматики мы будем называть любое слово а, такое, что S =^*а для некоторого начального символа S. Таким образом, сентенциальные формы могут включать как терминалы, так и нетерминалы, в то время как язык L(G)> порождаемый грамматикой G, состоит только из слов в терминальном алфавите. Лемма 5.7. Проблема, состоящая в выяснении того, порождают ли две данные контекстно-свободные грамматики одно и то же множество сентенциальных форм, неразрешима. Доказательство. Будем рассуждать от противного, предполагая, что существует алгоритм, выясняющий, совпадают ли множества сентенциальных форм, порождаемые двумя контекстно-свободными грамматиками. Тогда этот алгоритм можно применить следующим образом для решения проблемы соответствия Поста, что и обнаружит ложность сделанного предположения.
5.3. РЕЗУЛЬТАТЫ О НЕРАЗРЕШИМОСТИ 91 Возьмем произвольный пример g: Т-+Г{, h: S'-*s; проблемы соответствия Поста, где мы положили Х = {а19 ... , ат}> S1 = {61, ... , Ьп). Рассмотрим три языка L, Lg и Lh над алфавитом S(J2iU U{#}. По определению L = 2*#2|. Язык Lg является подмножеством языка L, состоящим из всех слов L, за исключением слов вида w#g (ml {w))9 тф\, (5.9) где mi(x) обозначает зеркальный образ (mirror image) слова х, т. е. ху записанное в обратном порядке. (Если х есть X или состоит только из одной буквы, то mi (*) = *.) Язык Lh определен подобным же образом с заменой в (5.9) морфиз- ма g на А. Очевидно, L = Lg{]Lh тогда и только тогда, когда E(g, Л)=0. (5.10) (Напомним, что E(gth) считается пустым, если состоит лишь из пустого слова.) Опираясь на сделанное нами вначале предположение, построим теперь алгоритм, выясняющий, имеет ли место равенство L = Lg[}Lh. В силу (5.10) этот алгоритм применим также к проблеме соответствия Поста. Определим следующим образом две контекстно-свободные грамматики G\ и G2. Единственным начальным символом для обеих грамматик будет So, а нетерминальным (терминальным) алфавитом будет {S0, Su S2, S3, S4, А, В} (соответственно 2U2iU{#}). Ниже перечислены продукции грамматики G\. В этом списке предполагается, что а пробегает 2, а Ь пробегает 2ь S0—> A, S0—>B> Sq-^-S^ S0—>•=#=, A->aAg(a)9 B-+aBh{a), A->S3b, B~>S3b, A^aSxx, B~>aSxy, где х (соответственно у) пробегает все слова над 2ь имеющих длину меньше |g(a)| (соответственно |Л(а)|), включая пустое слово; A-+aS2x, B-^aS^y где х ^соответственно у) пробегает множество всех слов над Slt имеющих длину \g(a) | (соответственно \h(a) |, но отлич-
92 ГЛ. 5 РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ ныхот£(а) (соответственно А (а)); Si^>aSi, $!->#, о2 —► о,Ь2, 02—* 03, Оз-+офу 03—>#> SA->aS4t S4->S46. Продукции G2 получаются из продукций G\ заменой двух продукций Si-^# и S3-*# на продукцию S4->-#. Этим определение G\ и G2 завершается. Теперь можно непосредственно проверить, что G\ и G2 порождают одни и те же сентенциальные формы, за возможным исключением слов, состоящих только из терминальных букв — терминалов. Поэтому, поскольку мы можем решить вопрос о совпадении множеств сентенциальных форм, порождаемых G\ и G2, мы можем также решить вопрос, верно ли, 4toL(Gi) = L(G2). Очевидно, что L(G2) = L. В действительности L выводится по правилам G2 с использованием только нетерминалов So и S4. В силу (5.10) и того факта, что мы можем разрешать проблему равенства L(Gi) = L(G2), для завершения леммы 5.7 достаточно показать, что L(G{) = Lg[]Lh. (5.11) Чтобы установить это равенство, покажем, что имеет место включение в обоих направлениях. Пусть слово w принадлежит L(Gi). Надо показать, что w e Lg\j Lh. Это верно, если т = Ф. Поэтому предположим, что тфф. Так как S4 нельзя устранить, заключаем, что первая продукция, применявшаяся в выводе w, есть 50-^ Л или So-^5. В силу симметричности ситуации достаточно рассмотреть первый случай и показать, что w принадлежит Lg. Последовательность различных нетерминалов, появляющихся в выводе w из Л, должна быть одной из следующих: (Л, S3), (A, S{), (Л, S2, S3). (5.12) В каждом из этих случаев легко проверить, что w e Ls. (Часть слова, идущая за центральным маркером #, в первом случае оказывается «слишком длинной», а во втором — «слишком короткой». Третий случай указывает на ошибку в сопоставлении а и g(a).) Предположим, наоборот, что w e L8 \J Lhi скажем w e Lg. Если a/E#Sj, то в грамматике G\ слово w порождается с помощью продукций So->#, S0->A9 A-+S3b, S3-^S3b, S3->#.
S.3. РЕЗУЛЬТАТЫ О НЕРАЗРЕШИМОСТИ 93 Таким образом, можно предположить, что w = atl ... cnk#w', k > 1, w' <= 2J, та/Ф g {a,ik ... aixy Пусть и — наибольшее натуральное число в отрезке 0 ^ и ^ <; k, такое, что w' = wxg(ai ... аЛ. Предположим сначала, что и = О, т. е. w' нельзя представить в виде w' = w{g (ati) Если | w'\ < |g («/,)!» то слово а; порождается продукциями. Если | а/ 1^|^(а^)|» то положим w' = w"x, где |д:| = |^(а^) и х Ф g (а^). Слово w может порождаться также продукциями Oq—> Л9 А.—> CLi.&2%* ^2—**^*^2> ^2—^^З» S3-*S3fe, 53->#. Теперь предположим, что и = k. В этом случае о/ имеет вид w'' = w\g(aik ... ai,). Кроме того, w\ Ф Я, так как в противном случае слово w не принадлежало бы языку Lg. Теперь w может порождаться продукциями SQ-+A, A-+aAg(a), Л->53&, 53->536, S8-*#. Предположим, наконец, что 1 ^ и < &. Тогда существует такое слово о>ь что ш' = a>ig (а*и ... а^), но не существует такого слова до2, что ^, = w2g(aiu+l...aiiy (5.13) Если |^i|<|g(#* )\y то о; порождается продукциями S0-*Л, Л-*аЛг(а), Л-^a^S^b S1->a51, Si->#. В противном случае я>1 можно записать в виде w\ = w^x, где |x| = |g(aj )| и хФд(а1 \ (Напомним, что w' нельзя представить в виде (5.13).) Теперь слово w порождается продукциями S0->A, A->aAg{a), A->aiu+lS2x, 52->aS2, S2->S3, S3-+S3b, S3->#. Итак, мы показали, что во всех случаях слово w принадлежит L(Gi). D
94 ГЛ. 5. РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ Приведенное доказательство показывает, что в общем случае мы не в состоянии решить проблему равенства множеств сентенциальных форм, порождаемых грамматиками G\ и G2 (поскольку не существует соответствующего алгоритма). Грамматики G\ и G2 можно преобразовать в OL-систе- мы, добавляя к ним продукции с->с для каждого терминального символа с. Следовательно, проблема языковой эквивалентности для OL-систем неразрешима. (В действительности она остается неразрешимой даже для частного класса OL-систем, а именно для систем, имеющих вид G\ и G2. Такие OL-системы, например, не используют Х-продукций.) Но приведенное выше доказательство показывает также неразрешимость проблемы L(Gi) = L(G2), когда G\ и G2 рассматриваются как контекстно-свободные грамматики. Следовательно, проблема языковой эквивалентности для контекстно-свободных грамматик неразрешима. Из наших рассуждений в действительности следует, что эта проблема остается неразрешимой даже для линейных грамматик, когда ни в одной продукции правая часть не содержит более одного нетерминала. Таким образом, королларием х) леммы 5.7 является следующий результат. Теорема 5.8. Проблема языковой эквивалентности для OL-систем неразрешима. Проблема языковой эквивалентности для контекстно-свободных грамматик также неразрешима. УПРАЖНЕНИЯ 1. В тексте был приведен пример таких DOL-систем Gi и G2 с алфавитом из двух букв, что первые три слова в последовательностях S(G{) я •$(бг) совпадают, а четвертые слова уже различны. Обобщите этот пример на системы с алфавитами из 2/г букв. В этом случае в последовательностях должны совпадать первые 3/г слов. 2. Постройте алгоритм, позволяющий выяснять, является ли морфизм g: 2* -> 2j элементарным. (Прямой метод или непосредственный алгоритм решения этой проблемы состоит в систематической проверке всех алфавитов мощности, меньшей мощности 2 с перебором для каждого алфавита всех возможных декомпозиций. Попробуйте построить алгоритм, более эффективный, чем описанный выше.) 3. Вычислите верхнюю границу для числа т в лемме 5.4. 4. Докажите существование числа C(GU G2), вычислимого по данным DOL-системам Gi и G2 и такого, что Gi и G2 последовательностно эквивалентны тогда и только тогда, когда в S(Gi) и S(G2) совпадают первые C(Gu G2) слов. (При желании за деталями можно обратиться к работе [EhR3]. Отметим, что наше доказательство теоремы 5.5, использующее два 1) Под королларием теоремы здесь подразумевается утверждение, вытекающее не только из формулировки этой теоремы, но и из ее доказательства (этим королларий отличается от следствия). — Йрим. перёв.
УПРАЖНЕНИЯ 95 работающих параллельно полуалгоритма, непосредственно не дает никакого такого числа С(СЬ Ог).) 5. Проведите подробное доказательство теоремы 5.6, опираясь на теорему 5.5. (Сведение языковой эквивалентности к последовательностной эквивалентности и обратное сведение были впервые описаны в [Nie]. Более простое доказательство проведено в [RS].) 6. Предположим, что известен алгоритм, позволяющий устанавливать, порождают ли две данные DOL-системы, удовлетворяющие некоему дополнительному условию для порождения со-слов, одно и то же со-слово (см. упр. 1.15). Покажите, как можно применить этот алгоритм к решению проблемы последовательностной эквивалентности для DOL-систем1). 7. В общем случае разрешимость проблемы включения языков влечет разрешимость проблемы языковой эквивалентности, но не обратно. Покажите, что для DOL-систем разрешима и проблема включения языков (см. [Ru2]). 8. Соображения, приведенные в доказательстве леммы 5.7, могут быть использованы для установления некоторых других результатов о неразрешимости. Действуя в этом направлении, докажите неразрешимость следующих проблем, (i) Регулярен ли данный OL-язык? (ii) Регулярен ли данный контекстно-свободный язык? (Hi) Равен ли данный контекстно- свободный язык данному регулярному языку? (iv) Пусто ли дополнение К данному контекстно-свободному языку? (v) Пусто ли пересечение двух данных контекстно-свободных языков? (vi) Конечно ли пересечение двух данных контекстно-свободных языков? (vii) Регулярно ли пересечение двух данных контекстно-свободных языков? [См. [G1]. — Перев.] (viii) Проблемы (v) — (vii), поставленные для OL-языков. 9. Покажите, что разрешима каждая из следующих проблем, (i) Равен ли данный контекстно-свободный язык данному DOL-языку? (ii) Является ли данный DOL-язык контекстно-свободным? (Hi) Является ли данный контекстно-свободный язык DOL-языком? (В связи с проблемами (i) —(iii) см. [Sa4] и [Li2].) (iv) Равен ли данный OL-язык данному DOL- языку? (См. [Rul].) Разрешимость проблемы (iv) означает значительное усиление теоремы 5.6. Проблемы разрешения, в которых сравниваются два класса языков, такие, как (i) и (iv), из этого упражнения и (iii) из упр. 8, часто исследуются для уточнения границы между разрешимым и неразрешимым. Проблемы (ii) и (iii) из этого упражнения и проблемы (i) и (И) из упр. 8 являются примерами проблем разрешения другого типа: рассматриваются два класса языков, и надо решить, принадлежит ли язык одного класса другому классу. 10. Покажите, что проблема конечности OL-языков разрешима. (Проблемы пустоты и конечности разрешимы и для контекстно-свободных языков. См. [Sa2], где также дан обзор разрешимых и неразрешимых проблем применительно к иерархии Хомского [см. также [G1]. — Перев.].) 11. Докажите, что проблема равенства двух заданных (произвольных) морфизмов g и h на данном контекстно-свободном языке L разрешима (см. [CuS] 2)). Докажите, что в этой постановке проблема равенства образов g(L) = h(L) для произвольных g, h и L неразрешима. 12. Пока остается открытым вопрос о разрешимости следующего обобщения проблемы последовательностной эквивалентности для DOL-систем. Даны два набора морфизмов (gu ..., gn) и (hu ..., /i„), где каждый мор- физм отображает 2* в 2*, и слово w, принадлежащее 2*. Надо выяснить, выполняется ли равенство gti ...gtk(w) = hti ...hih(w) 1) См. примечание на с. 23, а также статью [MaY*]. — Прим. перев. 2) См. также послесловие. — Прим. перев.
96 ГЛ. 5. РАЗРЕШИМОСТЬ И НЕРАЗРЕШИМОСТЬ одновременно для всех последовательностей iu ..., ik чисел из множества {1, ..., «}. Докажите, что эта проблема разрешима тогда и только тогда, когда она разрешима в частном случае п = 2. 13. Исследуйте вопрос о разрешимости следующей проблемы. (В то время, когда писались эти строки, он еще оставался открытым.) Рассмотрим OL-систему G = (2, a, w) Каждая конечная последовательность слов до0> о>ь ■ •. > ^л> я X). где Wo = w и ДО/+1 принадлежит o(wi) для 0^/^л—1, называется историей развития, соответствующей G. Обозначим через DH(G) множество всех историй развития, соответствующих G. Построить алгоритм, выясняющий, верно ли, что DH(G,) = DH(G2) для заданных OL-систем G\ и <?2. Замечание переводчика. Интересное обобщение леммы 5.1 на регулярные (о-языки получено в статье [СиР*]. Проблема равенства преобразований вида h^lh2 (здесь hi и h2 — морфизмы) на регулярных языках также разрешима, тогда как аналогичная проблема для преобразований вида hJ%iX неразрешима; см. [КаК*].
6 Представления посредством морфизмов 6.1. ЛОКАЛЬНЫЕ И РЕГУЛЯРНЫЕ ЯЗЫКИ В математике очень часто встречается понятие базиса или множества образующих. Идея состоит в том, что какой- либо класс объектов можно характеризовать таким образом: выбрать из этого класса «базисные» или «атомарные» объекты и доказать, что каждый объект данного класса получается из базисных применением некоторых (фиксированных) операций, причем эти операции не выводят за пределы исходного класса. Иначе говоря, исходный класс равен замыканию базиса относительно данных операций. Теория языков изобилует такими результатами характе- ризации. В этой главе будут рассматриваться характериза- ции, в которых операциями являются морфизмы и инверсные морфизмы. Особенно интересен случай, когда важный класс языков, как, например, класс из иерархии Хомского, порождается из единственного языка применением в точности одной морфической операции. Сначала мы приведем некоторые результаты для семейства регулярных языков. Начнем с нескольких определений. Рассмотрим морфизм A: 2*->2j. Отображение g языка 2* в множество подмножеств 2*, такое, что g (w) = {w'\h (wf) = w), (6.1) называется обращением или инверсией h и обозначается g = h~K Вообще отображения вида (6.1) называются инверсными морфизмами. Для языка L над алфавитом 2i положим g(L) = h-{(L) = {w\h(w)<=L}. Пусть 2 — некоторый алфавит, А и В — подмножества 2, а С — подмножество 22. Тогда по теореме 2.7 язык £ = (Л2*Г)2*В)\2*С2* (6.2) регулярен. Языки вида (6.2) с некоторыми 2, Л, В, С называются локальными. Название «локальный» связано с тем, что если язык L имеет вид (6.2), то для того, чтобы выяснить, принадлежит ли произвольное слово w данному языку, достаточно локально просмотреть это слово. Действительно, предположим, что слово w записано на ленте, разделенной на клетки, по одной букве в клетке, и что имеется линейка с отверстием величиной
98 ГЛ. 6. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ в две ленточные клетки. Тогда, передвигая линейку, можно решить вопрос о принадлежности слова w языку L, не зная ничего,, кроме Л, В, С и 2. В самом деле, размер отверстия позволяет определить, где начинается и кончается слово до, и тем самым проверить, стоят ли в начале и конце допустимые буквы. Можно также проверить, нет ли в слове w запрещенных подслов длины 2 (т. е. слов из С). Локальные языки также называются «2-проверяемыми», что отражает интервал локального считывания, т. е. размер отверстия. Аналогичное определение можно дать для ^-проверяемых языков: и в этом случае имеется в виду отверстие, через которое можно обозревать k соседних клеток1). Локальные языки тесно связаны с конечными детерминированными автоматами, как видно из доказательства следующего простого результата. Теорема 6.1. Каждый регулярный язык R, не содержащий пустого слова Я, можно представить в виде R = h{L\ (6.3) где язык L локален, a h является побуквенным (т. е. отображающим каждую букву в букву) морфизмом. Каждый регулярный язык /?о, содержащий Я, можно представить в виде Ro = h(L U (М)> гДе А и L удовлетворяют указанным условиям. Доказательство. Очевидно, что второе утверждение является следствием первого. (Заметим, что локальный язык никогда не содержит К.) Чтобы доказать первое утверждение, рассмотрим конечный детерминированный автомат G, представляющий язык R s 2|. Пусть S — алфавит, буквами которого являются помеченные стрелки автомата G. Таким образом, элементами 2 являются тройки (s, ats'), такие, что в G есть стрелка, помеченная буквой а и ведущая из 5 в s'. Рассмотрим теперь язык (6.2), где А (соответственно В) состоит из тех троек (5,0,5'), в которых 5 является начальной, а 57 — заключительной вершиной, и C = {(s, a, s')(sx, a{, s[)\s' Ф s{). Пусть-ft: 2*->2j — побуквенный морфизм, заданный равенством h((s, a, 5'))= а. Теперь из нашего определения непосредственно следует, что (6.3) выполняется. □ Простота предыдущего рассуждения связана с соответствующей характеризацией регулярных языков. Читатель мог бы обдумать доказательство, не использующее конечные 1) fc-проверяемые языки образуют довольно узкий подкласс класса 01 всех регулярных языков. Интересная содержательная классификация # приводится в обзоре [Вг*]. — Прим. перев.
6.2. МОРФИЧЕСКИЙ ГЕНЕРАТОР ДЛЯ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ 99 автоматы, предполагая, что язык R задан регулярным выражением! Основные результаты этой главы сводятся к тому, что каждый контекстно-свободный (соответственно рекурсивно перечислимый) язык L может быть представлен в виде L = h~L (£о), где Lo — фиксированный контекстно-свободный (рекурсивно перечислимый) язык, a hi — морфизм, зависящий от L. (Если L содержит пустое слово, то это утверждение нужно слегка видоизменить.) Сходный результат имеет место для контекстных языков. Мы покажем теперь, что никакое аналогичное утверждение не может иметь места для четвертого семейства языков в иерархии Хомского, а именно для семейства регулярных языков. В действительности установленный нами результат будет несколько сильнее. Морфи- ческая характеризация для регулярных языков, использующая множества совпадения, будет дана в упр. 12. Теорема 6.2. Не существует регулярного языка /?0, такого, что каждый регулярный язык R (не содержащий пустого слова) может быть представлен в виде R = h\ (Л21 {Roj), где h\ и h2 — морфизмы. Доказательство. Мы будем рассуждать от противного, предположив, что такой язык R0 существует. Пусть R0 представим конечным детерминированным автоматом с п вершинами. Тогда и каждый язык видаАг" (Ro) представим конечным детерминированным автоматом с п вершинами. (Вспомним построение автомата A(h) в доказательстве леммы 5.2.) Но язык, представимый конечным детерминированным автоматом с п вершинами, имеет звездную высоту ^ п. (Это видно, например, из рассмотрения языков L(i,j,k) в доказательстве теоремы 2.9.) Следовательно, все языки вида Ых (Ro) имеют звездную высоту ^ п. Очевидно, что морфический образ языка звездной высоты т сам имеет звездную высоту ^ т. (Заметим, что если язык задается регулярным выражением а, то его морфический образ задается регулярным выражением, полученным из а заменой каждой буквы ее морфическим образом.) Из этого в конечном итоге следует, что каждый язык вида h\ (Л2"1 (Ro)) имеет звездную высоту ^ п, что противоречит теореме 3.2.' П 6.2. МОРФИЧЕСКИЙ ГЕНЕРАТОР ДЛЯ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ В этом разделе мы в явном виде построим такой контекстно-свободный язык Lo, что каждый контекстно-свободный язык L представим в виде /r-l(L0), где h — некоторый мор-
100 ГЛ. б. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ физм. Говоря неформально, все возможные выводы всех контекстно-свободных грамматик в закодированном виде представлены в L0; морфизм используется для того, чтобы выбрать конечные результаты соответствующих выводов. Сначала вводится некоторая «нормальная форма» результатов для контекстно-свободных грамматик: мы покажем, что каждый контекстно-свободный язык может быть порожден грамматикой, продукции которой имеют специфическую форму. Нормальные формы, которые будут фигурировать в леммах 6.3 и 6.4, обычно называются нормальной формой Хом- ского и нормальной формой Грейбах соответственно. Для этих лемм будут даны только короткие описательные доказательства; читатель при желании может восполнить недостающие детали. Кроме того, более подробные доказательства приводятся в ряде работ, например в [Sa2] ]). Язык, не содержащий Я, мы для краткости будем называть Х-свобод- ным языком. Рассматривая грамматики для обозначения нетерминалов (соответственно терминалов), мы применяем заглавные (соответственно строчные) начальные буквы латинского алфавита, которые могут быть снабжены индексами или штрихами. Лемма 6.3. Каждый ^-свободный контекстно-свободный язык порождается грамматикой с продукциями только двух видов: А-+ВС и^о. Доказательство. Проведем серию преобразований данной грамматики, каждое из которых оставляет без изменений язык, порождаемый грамматикой, так что в конечном итоге мы придем к грамматике нужного вида. Очевидно, мы можем предположить, что данная грамматика имеет только один начальный символ S. Начнем с устранения продукций вида А-*%. Для этого прежде всего определим множество U, состоящее из всех нетерминалов В, таких, что В=>*Х. Новое множество продукций состоит из всех продукций вида А->аи a\¥=Xt таких, что в исходном множестве существовала продукция А ->- а, и <xi или совпадает с а, или получается из него удалением нескольких вхождений элементов из U. По существу тем же способом можно избавиться от продукций вида А-+В. Сначала определим для каждого нетерминала А множество £/л, состоящее из всех терминалов и нетерминалов ху таких, что А=^*х. (Напомним, что продукции вида Л->Х уже устранены. Следовательно, в выводе А=>*х используются только сохраняющие длину продукции.) Теперь новое множество продукций состоит, во-первых, из 1) См. также [G1]. — Прим. перев.
6.2. МОРФИЧЕСКИИ ГЕНЕРАТОР ДЛЯ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ 101 всех продукций S-+at где а — терминал из множества Us, и, во-вторых, из всех продукций В-► у\ ... уп> где п^2 и каждая буква у такова, что в исходном множестве продукций имелась продукция А-+х\ ... хп, обладающая следующими свойствами: Ле=£/В, yt es {xt} [) UXi, i=l, ..., п. (Очевидно, что А всегда принадлежит Da- Терм {**} добавлен для того, чтобы учесть терминалы *,.) Заменим теперь в этих продукциях каждую терминальную букву а новым нетерминалом Аа и добавим к множеству продукций Ла->а для всех а. После этих преобразований наша грамматика содержит продукции лишь двух видов: А-*а (только в них будут входить терминалы) и А^ВХВ2 ... Вп, /г>2. (6.4) Для каждой продукции (6.4), где п > 2, введем новые нетерминалы Си ..., Сп-2 и заменим (6.4) продукциями A—>B[Ci, С\—> В2С2> .-•» Сл_з ~~> ^л-2^л-2» ^'п-2~> Вп-\Вп* П Лемма 6.4. Каждый Я-свободный контекстно-свободный язык L порождается грамматикой с продукциями только трех видов: А-+аВСу А-+аВ, А^а. Доказательство. Начнем с грамматики для L, которая имеет вид, указанный в лемме 6.3. Для представления множества продукций удобно использовать матричные обозначения. Предположим, что А\у ..., Ап — нетерминалы нашей грамматики, причем А\ — единственный начальный символ. Если At-+ah /= 1, ..., m, суть все продукции для А-, то мы выразим этот факт в виде Д, "►(*!+ ... + ат. Полагая V = {A\, ..., Ап)> мы можем теперь представить все множество продукций в матричной форме V->T+VM, (6.5) где (i) T есть я-мерный вектор-строка, элементами которого являются суммы терминальных букв, и (ii) M есть (пУ^п)- матрица, элементами которой являются суммы нетерминальных букв. В (i) и (ii) могут входить «пустые суммы» 0. Например, если продукции нашей грамматики суть Ai -> АХА2 + АХАХ + а + Ъ, А2-> А2АХ + АХАХ + Ъ%
102 ГЛ. 6. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ то матричным представлением будет (А{ + А2 А{\ Наоборот, по данному матричному представлению для V (не обязательно имеющему вид (6.5)) мы.можем написать продукции грамматики в обычной форме. Модифицируем теперь (6.5) таким образом, чтобы результирующее матричное представление приводило исключительно к продукциям видов, указанных в лемме 6.4. С этой целью введем п2 новых нетерминалов Вцу 1 =^л,/ ^ п, и квадратную матрицу Y = (Bij). Рассмотрим грамматику V->T + TY, Y->M + MY. (6.6) Здесь А\ еще остается начальным символом. Продукции во втором множестве определяются естественным образом: правая часть продукции для Вц образует (*',/)-й элемент матрицы М + MY. Нетрудно видеть, что и грамматика (6.6) порождает наш язык L. По существу это происходит потому, что при использовании получающихся из VM продукций нетерминалы из V должны в конце концов заменяться терминалами. Эту идею выражает слагаемое TY в (6.6). С другой стороны, из У можно вывести любую степень Му и поэтому переход к терминалам можно отложить настолько, насколько нужно. Более формально, предположим, что слово w из языка L имеет длину t. С помощью итераций можно переписать (6.5) в виде V->T + TM + VM2, ..., V-+T + TM+ ... + ТМ'~1 + УМ*. Так как слово w порождается (6.5) и \w\ = t, мы заключаем, что w порождается грамматикой V-+T + TM+ ... + ТМ'~1. (6.7) (Продукции, получаемые из V-* VM*, можно использовать только в выводе слов длины больше t.) Аналогично, итерируя У в (6.6), получаем Y->M + M2+ ... +М*-1 + М*У; (6.8) мы видим, что каждое слово, порождаемое (6.7), в частности слово w, порождается (6.6). Обратно, (6.8) можно применить для доказательства того, что слово w длины t, порождаемое (6.6), принадлежит языку L. Пусть У(*> (соответственно M{i)), i"=l, ..., /г, обозначает 1-ю строку У (соответственно М). Запишем сначала (6.6) в
6.2. МОРФИЧЕСКИЙ ГЕНЕРАТОР ДЛЯ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ ЮЗ виде V -> Т + ГУ, У«> -> М«> + М«>У, I = 1, ..., п. (6.9) Поскольку элементами М являются суммы нетерминалов, можно записать, что M(i)==VT(i)t i=lj ...f Я| где Т& есть (п Хя) -матрица, все элементы которой суть либо Xf либо 0. Это приводит (6.9) к виду V^T + TY, Y^->VT^ + VT^Y, /=1, ..., п. (6.10) Наконец, применив 1/-*jT + 7T к другим вхождениям V в (6.10), получим грамматику V -> Г + 7% У(0 -* П™ + TYT{i) + ТУ^У + TYFW, i = 1, ..., п, очевидно, содержащую продукции только требуемого вида. П Определим теперь наиболее важные способы записи выводов, соответствующих контекстно-свободной грамматике. Рассмотрим алфавит S = S,US„ S1 = {a|aeS1}, 21П21 = 0. Отображение Дика р множества 2* в себя определяется равенствами р(Я) = Я, р (wa) = p (w) а для всех доеЕ*, aGSb ( р(ш)а, если р(до)^=2*а, р (wa) = s , ч К wu если р(до) = до1а. Предположим, что Si состоит из k^l букв аи . ♦., а*. Язб(/с Ди/са Dk определяется так: о^ = {ш|рИ = М- Таким образом, Dk состоит из всех слов над 2, которые можно свести к А,, применяя равенства ам — к, /= 1, ..., k. Если мы будем рассматривать at (соответственно щ) как левую (соответственно правую) скобку некоторого типа, то Dk будет состоять из всех последовательностей правильно расставленных скобок. Например, полагая <*\ — (> а2 = 1 5i=). й2=]> мы видим, что [()[]]( ) принадлежит D2, тогда как ([)] и ( ) [ ] ] не принадлежат D2.
104 ГЛ. б. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОЁ Очевидно, что Dk порождается контекстно-свободной грамматикой, заданной продукциями 5~>55, 5->Я, S->aiSah /=1, ..., k. (6.11) В дальнейшем мы будем иметь дело с языком Дика Ог, так как любые символы удобно кодировать двумя буквами. Весьма употребительным оказывается следующий язык: D = axa£xD2 (6.12) (так сказать, D2 «с инициалами»). Язык D порождается слегка видоизмененной грамматикой (6.11): надо лишь добавить новый нетерминал Si (который будет единственным начальным символом) и продукцию Si-^a^aiS. Предположим, что в (6.11) k = 2. Инверсия сН конечной подстановки а действует на язык L так: 0-\^) = {т\а{т)[\Ьф 0}. Заметим, что в общем случае o(w) состоит из нескольких слов. Для того чтобы слово w принадлежало o~l(L), не обязательно, чтобы все эти слова принадлежали языку L; достаточно, чтобы одно из них принадлежало L. Заметим также, что алфавиты области определения и множества значений конечных подстановок, рассмотренных в гл. 5, были равны, а здесь они могут различаться. Мы теперь можем получить первый основной результат о представлении. В утверждении приведенной ниже теоремы D означает язык (6.12). Не существенно, что мы ограничиваемся рассмотрением Я-свободных языков: языки, содержащие Я, порождаются аналогичным образом из D[}{X}. Теорема 6.5. Для каждого Х-свободного контекстно-свободного языка L существует такая конечная подстановка а, что L = o~x(D). (6.13) Доказательство. Рассмотрим любой язык L, порождаемый грамматикой G, множество Р продукций которой задано так же, как в лемме 6.4. Пусть {Аи ..., Ап} и SL суть нетерминальный и терминальный алфавиты грамматики G, причем А\ — единственный начальный символ. Напомним, что D — язык над алфавитом Интуитивно Ai кодируется как axalfiv *=1, ..., п. Слово а{а12ах используется для кодирования «инверсии» Д- и означает, что данное вхождение символа А опущено.
6.2. МОРФИЧЕСКИЙ ГЕНЕРАТОР ДЛЯ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ Ю5 Формально определим конечную подстановку а: 2^-^S* так: o{b) = ^alat2a{\Ai->b принадлежит P}U U {alai2alala!2ai | At -> ЬА} принадлежит Р} (J \J{alat2a{aia^alaia2,al\Ai-^bAJAJi принадлежит Р}, (6.14) где Ъ — любая буква из 2/., a i, /, k пробегают множество {1, ..., п}. Нам еще нужно показать, что выполняется (6.13). Это проще всего сделать, установив несколько более сильное утверждение. Обозначим через L*, /=1, ..., /г, язык, порождаемый продукциями Р из начального символа At. Таким образом, мы будем рассматривать грамматики, полученные из G изменением начального символа; заметим, что L\ = L. Мы установим следующее утверждение. Утверждение. Пусть 1 ^ i ^ п и w — любое слово над 2/.. Тогда w e Ц тогда и только тогда, когда g(w) содержит какое-либо слово из аха{2ар2У (6.15) т. е. тогда и только тогда, когда w e а"-1 {а{а12а,р2). Прежде всего заметим, что (6.13) следует из нашего утверждения, если положить i=l. Доказательство утверждения ведется индукцией по длине t слова w. Можно предполагать, что t^l: пустое слово не принадлежит ни одному из рассматриваемых языков (см. также упр. 5). В качестве базиса индукции рассмотрим случай /=1. В этом случае w принадлежит Li тогда и только тогда, когда продукция Ai-*-w принадлежит Р, а это имеет место тогда и только тогда, когда й1а%р1 e a (ад). (6.16) Поскольку й1а^1 является единственным оловом из правой части (6.14), принадлежащим также языку (6.15), мы заключаем, что (6.16) выполняется тогда и только тогда, когда o(w) содержит слово из (6.15). Значит, слово w принадлежит Li тогда и только тогда, когда a(w) содержит слово из языка (6.15). В качестве гипотезы индукции примем, что наше утверждение выполняется для всех слов, имеющих длину меньше t(^2). Рассмотрим произвольное слово w, такое, что \w\ = t. Очевидно, что (i) w^ Li тогда и только тогда, когда или (И) продукция Ai-+bAj принадлежит Р и w можно записать g виде w = 6t^i, где w\^Lj, или (и)' продукция Л/-*-М/Л*
106 ГЛ. 6. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ принадлежит Р и w можно записать в виде w = bw2ws, где W2^ L/, аш3£ Lk. По определению а и по гипотезе индукции (и) выполняется в том и только том случае, когда (iii) a(b) содержит слово а{а12а{а{а12а19 а а^) содержит слово alal2aixv где w = = bw\ и х\ <= D2. Аналогично (ii)/ выполняется в том и только том случае, когда (iii)/ a(b) содержит слово (г(до2) содержит слово ар2ахх2 и ff(w3) содержит слово аха\аххъ, где ш = &ау2оу3, а х2 и хг принадлежат D2. Для завершения шага индукции мы теперь покажем, что (iv) a(w) содержит слово из (6.15) тогда и только тогда, когда выполняется (iii) или (Hi)'. Это доказывает, что условия (i) и (iv) эквивалентны, а это как раз то, что нам нужно. Из определения £>2 непосредственно следует, что выполнение каждого из условий (iii) и (Hi)' влечет выполнение условия (iv). Обратно, пусть выполнено (iv), т. е. o(w) содержит слово */= a^^jt, xgD2. (6.17) Пусть w = bw\t где Ь — некоторая буква. Значит, У = У\Уь У1<^о(Ь), y2e=o(wi). (6.18) Напомним, что \w\^2> а следовательно, хю\ф%. Значит, хф%. Равенство у = а{а^а{ не может иметь места, потому что в этом случае слово х = у2 принадлежало бы D% и в то же время начиналось с «надчеркнутой» буквы (так как это слово принадлежит a(w\)), а эти два условия не могут выполняться одновременно. Значит, в силу (6.14) либо У\ = ^2й1а1а2а1» (6.19) либо у{ a= uyu^fifi^afi^/iy (6.20) Достаточно показать, что из (6.19) (соответственно из (6.20)) следует (iii) (соответственно (Hi)')- Предположим, что имеет место (6.19). Мы утверждаем, что y2 — axa\p,xxv (6.21) Согласно (6.17) — (6.19), это доказывает справедливость (iii). Действительно, если не выполняется (6.21), то У2 = ахЩаху'2У рф и и х = afllflfifi^a^
в.2. морфический Генератор для контекстно-свободных языков Ю7 Очевидно, это приводит к р(х)ФХ для отображения Дика р независимо от у2. Последнее противоречит (6.17), что и доказывает равенство (6.21). Пусть теперь выполняется (6.20). В этом случае мы утверждаем, что у2 = а^2ахх Дха\а^хъ (6.22) для некоторых х2 и х% из D2y где ар2ахх2 е а (ш2), a^ufa e a (wz), wx = w2wv (6.23) Очевидно, что (6.20), (6.22) и (6.23) доказывают истинность утверждения (ш)'. Соотношения (6.22) и (6.23) являются следствиями следующих фактов. Слово у2 должно начинаться с а{а\а{; это устанавливается точно так же, как в (6.21). Слово у2 получается катенацией слов вида а]а\ах и а{а§а19 р=1, ..., п. Согласно (6.20), слово у2 должно содержать (после a{af2a{} подслово а{а2а{9 поскольку в противном случае равенство p(jt) = A, не выполняется. Таким образом, мы получаем (6.22) и, снова рассматривая р, устанавливаем, что х2у xsgD2> Так как х2 и х3 принадлежат D2 и, следовательно (если они непусты), должны оканчиваться «надчеркнутыми» буквами, мы получим разложение w\ = w2w^ удовлетворяющее (6.23). □ Опираясь на теорему 6.5, теперь легко построить морфи- ческий генератор контекстно-свободных языков, упомянутый в начале этого раздела. Мы лишь так изменим определение (6.14), чтобы а оказалась морфизмом. Для этого достаточно образовать катенацию (т. е. последовательное приписывание) слов в правой части, предварительно разделив их граничными маркерами. В качестве граничного маркера используем символ +f чтобы напомнить, что мы имеем дело с «суммой» слов. Язык-генератор D надо модифицировать таким образом, чтобы обеспечить место для «мусора», возникающего от продукций, не используемых на каждом шаге. Изложим теперь некоторые подробности более формально. Как и ранее, 2 является алфавитом {аи a2,ai,a2}. Язык Lo над алфавитом S1 = SU{+} задается следующим образом: LQ = {xl + yl + zlx2 + y2 + z2 ... xt + yt + zt\t^l, уху2 ... ytt==Dy уьф'к, **€=(+ 2+)\ zt <= (2+ +)\ где 1 </</}. Легко показать, что язык L0 контекстно-свободен; см. упр. 6.
108 ГЛ. б. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ Для данного Я-свободного контекстно-свободного языка L, как и в доказательстве теоремы 6.5, мы определим морфизм h: S'-z; следующим образом. Рассмотрим произвольную букву Ь из S/.. Пусть К, ..., <U есть множество слов, находящихся в правой части (6.14). Положим h(b) = + a{ + a2+ ... + <*„+. , (6.24) Соотношение между а и А устанавливается следующей леммой. Лемма 6.6. Для каждого слова w над 2/. слово h(w) принадлежит L0 тогда и только тогда, когда o(w) содержит слово из D. Доказательство. Слова из L0 имеют вид ••■+ 01 +••-++•-•+ ft +•••++-.. .••++•..+&+■•-. У\У2 -.ftsfl, (6.25) причем в этих словах нет вхождений подслова -|—К кроме t—1 выделенных здесь вхождений. Поскольку все щ из (6.24) суть непустые слова над 2, то подслово ++ не входит ни в одно h(b). Ясно, что лемма справедлива для ш==Л. Рассмотрим w = bi ... bt, t^\. Сначала предположим, что h(w)^L0 и запишем h(w) в виде (6.25). Тогда в силу (6.24) подслова -\—f- встречаются точно на границе между к{Ы) и /i(6,+1), /==1, ..., ^—1. По (6.24) t/i^o(bi)y /=1, ..., ty а это показывает, что слово у\ ... yt из D принадлежит также o(w). Обратно, если o(bi) содержит слово #,, /=1, ..., t, такое, что ji ... у^еД в силу (6.24) мы заключаем, что h(w) можно записать в виде (6.25), а это значит, что h(w) принадлежит L0. Заметим, что мы учитываем тот факт, что у% может быть первым или последним «слагаемым» в (6.24), поскольку в определении L0 мы допускаем возможность равенств Xi = К и Zi = Я. D Мы хотим подчеркнуть, что выражение (6.25) для слова h(w) из L0 ни в коем случае не обязано быть единственным: такое выражение может иметь место для разных yt. Указанное обстоятельство отражает тот факт, что слово w может иметь в грамматике G несколько выводов. Этот момент подробнее исследуется в упр. 8. Теорема 6.5 и лемма 6.6 показывают, что L = h~l(L0).
6.1 ПОРОЖДЕНИЕ МОРФИЗМАМИ РЕКУРСИВНО ПЕРЕЧИСЛИМЫХ ЯЗЫКОВ Ю9 Таким образом, мы установили фундаментальный результат, из которого следует, что L0 является «морфическим генератором» для контекстно-свободных языков. Предположение о А,-свободности, как и в случае теоремы 6.5, не существенно: язык LoUM подобным же образом оказывается генератором для контекстно-свободных языков, содержащих X. (Очевидно, никакой язык не может порождать оба этих класса языков,) Теорема 6.7. Для каждого ^-свободного контекстно-свободного языка L существует такой морфизм ft, что L = /Tl(A)). 6.3. ПОРОЖДЕНИЕ МОРФИЗМАМИ РЕКУРСИВНО ПЕРЕЧИСЛИМЫХ ЯЗЫКОВ Справедливость результата, аналогичного теореме 6.7, для семейства рекурсивно перечислимых языков следует из самого определения этого семейства. Действительно, каждый язык, слова которого могут быть перечислены посредством некоторой эффективной процедуры («эффективной» в интуитивном смысле), порождается также грамматикой типа 0. Это утверждение (обычно называемое тезисом Чёрча1)) будет использовано в приведенном ниже доказательстве, хотя последнее можно было бы провести и без него, см. упр. 10. Дальнейшее обсуждение тезиса Чёрча читатель может найти в [Sa2]. Теорема 6.8. Существует язык L0 типа 0 со следующим свойством: для каждого ^-свободносо языка L типа 0 существует такой морфизм А, что L = A-1 (L0). Доказательство. Без потери общности можно считать, что языки типа 0 порождаются грамматиками, нетерминальные (соответственно терминальные) алфавиты которых являются собственными начальными отрезками бесконечного множества {Si9 52, S3, ...} (соответственно {Ьх Ъъ Ьг, ...}) (6.26) с единственным начальным символом Si. Пусть G\, G2, ...— перечисление всех таких грамматик в порядке возрастания общего числа вхождений всех букв в продукции. Каждой грамматике G* мы сопоставим слово вида *Pi#p2#'--#Pk#, (6.27) !) Точнее было бы назвать его тезисом Поста Подробнее о соотношении между вычислимостью и рекурсивной перечислимостью см. [УС*].— Прим. ред.
ПО ГЛ. 6. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ где pi, /?2, ..., pk суть продукции G*. Таким образом, слова вида (6.27) содержат два специальных символа # и ->• и, кроме того, символы из (6.26). Все эти буквы кодируются теперь словами над алфавитом {аи а2}. (Например, можно представить все буквы в виде a{aiflv Значения /=1,2 зарезервируем для специальных символов, а остальные нечетные и четные значения *" будем использовать для кодирования нетерминалов и терминалов соответственно.) Применяя такое кодирование к (6.27), получаем слово s(G,)e= {аь а2}+, соответствующее грамматике G*. Для /^1 определим теперь морфизм he ^-^{aj, a2}*, где 2f — терминальный алфавит G». Пусть бе 2* — произвольная буква, а е(Ь) — ее код (построенный, как указано выше) в алфавите {ab а2}. Положим hi(b) = s{Qt)e(b) и L0=U Ь(ЦОй))\{Ц. Язык Lo эффективно перечислим, например, посредством процедуры, я-й шаг которой состоит в перечислении всех непустых слов, порождаемых грамматиками Gi, ..., Gn с выводами длины ^ п. Согласно тезису Чёрча, L0 есть язык типа 0. С другой стороны, если L = L(Gi) и X ф L, то L = hJx (Lo). Этот результат получается сразу, поскольку «ярлык» s(Gi) наличествует только в тех словах из L0, которые содержатся в L(Gi). □ Заметим, что при XeL язык hj{ (Lo) равен языку L\{X}. Заранее нельзя сказать, какой из языков L(G{) не содержит К. На самом деле, проблема принадлежности К данному языку L(Gi) неразрешима. Как мы уже отмечали, теорема 6.8 обусловлена универсальной природой грамматик типа 0. Обсудим теперь некоторые более конкретные морфические представления языков типа 0. Оказывается, что множества совпадения очень полезны для таких представлений. Мы хотим представить произвольный рекурсивно перечислимый язык как морфический образ множества совпадения. Этот результат давал бы представление всех рекурсивно перечислимых языков исключительно с помощью морфизмов! Само по себе это требование в какой-то мере слишком сильное по следующей причине. Каждый язык совпадения является «звездным языком», т. е. имеет вид L = L{t а, стало
НШ = {1 6.3. ПОРОЖДЕНИЕ МОРФИЗМАМИ РЕКУРСИВНО ПЕРЕЧИСЛИМЫХ ЯЗЫКОВ Щ быть, звездными являются и языки h(L). Однако если мы предусмотрим надлежащий механизм для отбора подмножества из языка совпадения, то такое морфическое представление действительно окажется возможным. Очень простой способ, подходящий для этой цели, состоит в пересечении языка совпадения с регулярным языком. Этот способ широко используется в различных разделах теории языков. Другой возможный способ преодоления указанной трудности приведен в упр. 11. Если 2 и Si — алфавиты, S sSi, то морфизм Я2: 2[->2* задается равенствами для aeS, для аеЕД 2. Таким образом, Hz стирает все, кроме букв из 2. Теорема 6.9. Для каждого рекурсивно перечислимого языка L £ 2J, существуют два морфизма Ai и А2 и регулярный язык R, такие, что L = HzT(E(hu h2){]R). (6.28) Доказательство. Рассмотрим произвольный рекурсивно перечислимый язык L, порожденный грамматикой G типа О, где Ел и 2г — нетерминальный и терминальный алфавиты, SgEjv — начальный символ, а множество продукций Р состоит из Pi' a*->P*> /=1, ..., /г. (Таким образом, мы каждой продукции приписываем ее имя Ы По существу за конструкцией h\,h2 и R стоит следующая идея. Каждое слово в L является последним словом в некотором выводе D в рамках G. На слове D', похожем на D, морфизмы h\ и А2 удовлетворяют равенству Однако fti «пробегает быстрее», чем h2, префиксы D\ и А2 «догоняет» h\ только в самом конце. Морфизм #s стирает все, кроме конечного результата. Наконец, R гарантирует, что рассматриваются только слова соответствующего вида. Изложим теперь подробности более формально. Мы используем «штрихованные варианты» алфавитов так же, как и ранее: 2' есть алфавит {a'|a^2}, а хю'— слово, полученное из w приписыванием штриха каждой букве. Рассмотрим алфавиты 2,=^ U SpUC*}, S8 = SlU/>U2yU{B. F),
112 ГЛ. 6. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ Морфизмы Ар h2: S^S* задаются таблицей \В # р^Р^:^-»^) А<=2„ а'^1т а^^т F h2\ X ф аь А а а Ф Далее, регулярный язык R задается регулярным выражением B(V*{PV;#yrTF, где ^-S^U^. Мы должны еще показать, что выполняется (6.28). Сначала приведем пример. Рассмотрим грамматику с продукциями р{: S-^ACCC, р2: CC^CD, рг: АС-+а, р4: DC-+ACC, ръ\ АС^К р6: С-*6. Слово аЬ принадлежит языку, порожденному этой грамматикой, что видно из вывода 5 => АССС =► AC DC =► aDC =* aACC =>aC=>ab. (6.29) Теперь поставим этому выводу в соответствие слово w = Врг # Ар2С #p3DC# а'р4 # а^С # a'p6 # aW и заметим, что H{a,b)(w) = ab и что о;^/?. Далее, Ai(a/) = = Л2(г0), где обе части равны слову, полученному из (6.29) заменой =>• на # и добавлением # в конце. Возвращаясь к доказательству, мы сначала покажем, что произвольное слово х^ L содержится также в правой части (6.28). Для этого нам нужно лишь доказать по индукции следующее утверждение: каждый раз, когда 5=>at=^a2=^ ... =^aA (6.30) является выводом в G, существует слово ше В(у\РУ\ф)+9 такое, что A1H = S#a1#a2#...#a^#, A2(a;) = 5#a1#a2# ...#aft-1#. Очевидно, что этого достаточно, так как если a* e * является терминальным словом, то «ueF (== Е (hu h2) [) R и Я2? (ш:/7) = *. Для А = 1 можно выбрать w = J3/?i =#=, где /?i — имя продукции S-+a\. В качестве гипотезы индукции примем, что утверждение истинно для А. Значит, для произвольного вывода (6.30) существует слово ш, удовлетворяющее требуемым условиям. Удлиним (6.30) дополнительным звеном ак=>ан+и где a* = MP2> a*+i = PiPP2
6.3. ПОРОЖДЕНИЕ МОРФИЗМАМИ РЕКУРСИВНО ПЕРЕЧИСЛИМЫХ ЯЗЫКОВ 113 и продукция р: а-^Р принадлежит Р. Пусть слово pi (соответственно Рг) получается из Pi (соответственно из р2) приписыванием всем терминалам штрихов (при этом нетерминалы остаются без изменений). Тогда слово w$[p$'2jf= удовлетворяет требуемым условиям для более длинного вывода. Это завершает шаг индукции. Обратно, рассмотрим произвольное слово х = Нът (w), где w е Е (Аь А2) П R- Поскольку слово до е R, его можно записать в виде w = Bw{ ... wkxF, где wi e V\PV\ #, 1 < i < k. Заметим, в частности, что слово х должно стоять перед F, потому что х = Нът (w), а все буквы, не принадлежащие 2 г, стираются морфизмом #zr Теперь используем равенство h\(w) = h2(w). Если w есть префикс w, то одно из слов h\(w) и h2{w) должно быть префиксом другого. Ситуация легко исследуется просмотром всех вхождений #. Буква В вносит одно вхождение # в fti-образ, но не вносит ни одного в А2-образ. Каждое из слов Wi вносит одно вхождение # в конце h\- и /^-образов. Следовательно, h\ «движется быстрее», т. е. h2{w) является префиксом h\ (w). В частности, имеем h{ {Bw{ ... wk) = S# <# а£># ... # а#># для некоторых слов w\l), и, следовательно, h2(Bw{ ... wk) = S#w\»#w2»#... #^!#. Так как А2 «догоняет» h\ при отображении xF% должно иметь место w$ = x. Слово wi9 /=1, ..., А, дает «вклад» х^^ф в Лробраз и «вклад» хаА^Ф в А2-образ. (Здесь мы полагаем w^ — S.) Поскольку wt e V\PV\ #, отсюда следует, что t^Vl, = р!«Р2, Ш<1>=Р1РР2, где а-^-р — продукция в Р. Но это означает, что мы имеем вывод S =^ wp => w{2X) =>• ... => та%\ где wl£] = x, и, следовательно, xeL. П Теорему 6.9 можно применить также для характериза- ции языков типа 0 при помощи весьма простого генератора. Такой генератор, называемый языком перетасовки двойни- KQe, мы сейчас определим.
114 ГЛ. 6. ПРЕДСТАВЛЕНИЯ ПОСРЕДСТВОМ МОРФИЗМОВ Рассмотрим алфавит 2 одновременно с его «надчеркну- тым» вариантом 2. (Как и в случае со штрихами, 2 = = {a|aeS}. При этом w обозначает слово, полученное из w надчеркиванием всех букв.) Язык перетасовки двойников Ls определяется равенством ^ = {^е(Еи2Г|Я7Й = Я^И} и, таким образом, состоит из слов, каждое из которых пред* ставляет собой произвольную перетасовку некоторого слова #е2* и его «надчеркнутого» двойника х. Если морфизм A: (2U2)*->2* определен как ( Я для aES, h{a) = \ A _ __ ^ Ь для a = ft£S, то очевидно, что Ls = E(hy //s). Теорема 6.10. Для каждого рекурсивно перечислимого языка L s 2J. существуют язык перетасовки двойников Ls и регулярный язык Ru такие, что Z, = tf2r(L2n#i). (6.31) Доказательство. Рассмотрим представление (6.28), данное в теореме 6.9. Можно считать, что 22 и Si, т. е. алфавиты области определения и множества значений морфизмов h\ и Л2, не пересекаются. (Чтобы достичь этого, мы просто переименуем буквы Si, что не окажет никакого влияния на (6.28).) Положим теперь 2 = 22112ь Пусть g — морфизм, удовлетворяющий равенству g (Ь) = bhx (b) h2 (b) для каждого b ^ S2, и пусть язык /?i получается из языка g(R) введением в его слова букв из 22 в произвольном порядке. Таким образом, /?i состоит из слов вида xxb{x2b2 ... xkbkxk+u где ххх2 ... xk+l *=g(R); , здесь bt — буквы из S2, а х\ — слова (возможно, пустые). Очевидно, язык R\ регулярен. Равенство (6.31) является теперь прямым следствием (6.28) и равенства Я2г (Lz П Ri) = Я2г (Е (hu h2) П R), которое непосредственно следует из определений. □ В теореме 6.10 алфавит 2 зависит от языка I. Эта зави-
УПРАЖНЕНИЯ П5 симость не существенна. Более сильные варианты этой теоремы приводятся в упр. 3 и 14. Результаты, приведенные в этой главе, показывают, что язык двойной перетасовки и язык Дика играют похожие роли в теориях языков типа 0 и контекстно-свободных языков соответственно. В заключение мы без доказательства приведем следующую довольно своеобразную теорему о представлении (доказательство в общих чертах намечено в упр. 15). Символами р и D соответственно обозначаются определенные выше отображение Дика и язык Дика «с инициалами» (см. (6.12)). Что касается р, то мы рассматриваем надмножество исходного алфавита SiU^i- Дополнительные символы в этом надмножестве не затрагиваются отображением р. Теорема 6.11. Для каждого рекурсивно перечислимого языка L ^Ег существует морфизм А, такой, что УПРАЖНЕНИЯ 1. Докажите, что каждый регулярный язык R можно выразить в виде # = h(L), где L — локальный язык, а морфизм h отображает каждую букву либо в букву, либо в пустое слово. (При этом не делается никаких предположений о принадлежности или непринадлежности пустого слова языку R.) 2. Теоремы 6.7 и 6.8 выявляют порождающую способность инверсных морфизмов. В этом отношении морфизмы значительно слабее: интуитивно ясно, что, когда рассматриваются морфизмы, невозможно никакое «сокрытие». Докажите, что не существует такого языка L0 типа 0, что каждый язык типа 0 может быть представлен в виде h(L0). Докажите аналогичное утверждение для контекстно-свободных языков. Эти результаты остаются верными даже в том случае, когда вместо морфизмов берутся конечные подстановки. 3. Порождающая способность морфизмов значительно возрастает, если добавить операцию пересечения с регулярными языками. Теорема 6.10 показывает, что каждый рекурсивно перечислимый язык является морфиче- ским образом пересечения языка перетасовки двойников с регулярным языком. Докажите аналогичный результат для контекстно-свободных языков: каждый контекстно-свободный язык является морфическим образом пересечения языка Дика с регулярным языком. (Этот результат известен как теорема Хомского — Шютценберже.) В этих результатах недостаточно рассматривать какой-либо один язык перетасовки двойников или один язык Дика. Докажите, однако, что для всех контекстно-свободных языков (соответственно языков типа 0) над одним и тем же алфавитом 2г достаточно взять один фиксированный язык Дика (соответственно язык перетасовки двойников) 1). 4. Обобщите леммы 6.3 и 6.4 в виде следующей теоремы о «супернормальной форме». Пусть (т, л, р) — произвольная тройка неотрицательных целых чисел. Тогда каждый контекстно-свободный язык порождается грамматикой, в которой имеются продукции только следующих двух видов: ) См. замечание переводчика в конце главы —Прим. ред.
lie ГЛ. б. ПРЕДСТАВЛЕНИЙ ПОСРЕДСТВОМ МОРФЙЗМОВ (i) A -*• до, где до — терминальное слово; (ii) А ->■ wmBwnCWp, где wmi wn% wp суть терминальные слова длиной гц, п н р соответственно. (По существу лемма 6.3 дает этот результат для тройки (0, 0, 0), а лемма 6.4 — для тройки (1, 0, 0).) См. [MSW1]. Можно ли усилить условие (i) таким образом, чтобы \w\ всегда принадлежало множеству длин рассматриваемого языка? (Множество длин языка состоит из всех длин слов в этом языке.) 5. Проведите доказательство теоремы 6.5 по индукции, выбрав в качестве базиса индукции t = 0. (При этом шаг индукции будет несколько сложнее, чем при базисе t = 1.) 6. Докажите, что язык L0, определенный перед леммой 6.6, является контекстно-свободным. (Указание. Сначала опишите порождение языка D, как это было сделано выше, но рассматривая терминалы в качестве специальных нетерминалов. Напишите продукции для этих специальных нетерминалов, допуская их преобразование в терминалы либо сразу, либо после передвижения соответствующего слова налево и/или направо.) 7. Рассмотрим контекстно-свободный язык, порождаемый следующей грамматикой G: S->a, S -> bS, S-> cS2. (Этот язык L известен под названием языка Лукасевича 1).) Дайте представление языка L, соответствующее теоремам 6.5 и 6.7. Исследуйте, в частности, как выводы, соответствующие грамматике G, отражаются в. морфизме h (см. [SalS]). 8. Исследуйте связь между числом различных выражений (6.25) для h(w) и «неоднозначностью» слова до в G, т. е. числом различных выводов слова до, соответствующих G. 9. (Для читателя, знакомого с алгеброй.) Рассмотрим отображение Дика р. Определим в 2* конгруэнтность Ер следующим образом: wEpW{ тогда и только тогда, когда р (w) = p (w\). Получающийся фактормоноид 2*/EQ известен под названием инволютив- ного. Если разрешены двусторонние сокращения, т. е. если выполняются равенства diai = X и am = X, то аналогично мы получим свободную группу с множеством образующих 2Ь равно как и соответствующий язык Bk> состоящий из всех слов, приводимых к X двусторонними сокращениями. Докажите теоремы о представлении, аналогичные теоремам 6.5 и 6.7, отправляясь от $ъ вместо £>2- (Эти результаты можно рассматривать как дающие представление языков при помощи свободных групп, а не при помощи инволютивных моноидов.) 10. Не используя тезис Чёрча, докажите, что язык L0 в доказательстве теоремы 6.8 является языком типа 0. (Построение грамматики типа 0 в явном виде представляет собой весьма трудоемкую задачу. Вместо этого убедитесь в том, что это может быть сделано. Заметьте, в частности, что можно провести выводы между двумя граничными маркерами и посылать «курьеров» от одного маркера к другому. Этим способом можно разбить вывод на шаги таким образом, что новый шаг никогда не начинается до того, как будет выполнено некоторое условие, которое означает окончание предыдущего шага.) 11. Обозначим через e(h\9 h2) подмножество E(hly /i2), „состоящее из всех непустых слов w, таких, что никакой собственный префикс слова w (т. е. не равный ни до, ни X) не принадлежит E(h\, h2). Докажите, что 1) Если вместо S-* а включить несколько продукций S-*~pu ., ,.., S->pm, заменить Ъ на N, а с на С, то язык L(G) будет состоять из всех пропозициональных формул в бесскобочной (польской) записи сигнатуры (N, С) от переменных рь ..., рт. — Прим. перев.
УПРАЖНЕНИЯ И? каждый рекурсивно перечислимый язык над 2г можно представить в виде #Ег(«(Ль **)) (CM- [CuD- 12. Рассмотрите определенные в упр. 4.8 множества Ek(hu h2). Докажите, что язык L регулярен тогда и только тогда, когда существуют такие морфизмы g, hu h2y что L = g(e(hu h2))4 и, кроме того, е (Ль Л2) S £fc (Ль h2) для некоторого /? (см. [Си]). 13. Будем говорить, чго язык L является языком совпадения, если для некоторых морфизмов hx и h2 он может быть представлен в виде L=E(hu A2) Покажите, что семейство языков совпадения является наименьшим семейством языков, содержащим L2, где 2 = {а, &}, и замкнутым относительно инверсных морфизмов (см. [EnR]). 14. Усильте теорему 6.10 до следующего утверждения: для каждого рекурсивно перечислимого языка L над 2г существуют морфизм g и регулярный язык R, такие, что ^ffXT(g-l(L{atb))()R). 15. Докажите теорему 6.11. (Указания. Сначала докажите, что каждый Л-свободный язык типа 0 порождается грамматикой с продукциями видов А -*■ ВС, АВ -> С, А ->• а. Рассмотрите такую грамматику. Введите для каждого нетерминала А два новых символа ул и i/д. Замените каждую продукцию АВ -> С продукцией А -»- Q/s. Добавьте все продукции А-+уа. Примените теорему 6.7.) Замечание переводчика. Много результатов, относящихся к представлению классов языков с ограниченной сложностью разрешения, содержится в ряде работ (см., например, рефераты в РЖ «Математика», 1983, 2В1037 и 12В1214). В книге [ЯиА*] устанавливаются аналоги теоремы Хомского— Шютценберже (см упр. 3) для многих классов языков, а именно для полных АСЯ (см. упр. 1 к гл. 7). Новейшие данные приводятся в статье Хиросэ, Окавы и йнеды (Hirose S.. Okawa S., Yoneda M. — Theoret. Com- put Sci., 1985, v. 35, p 261—269), где доказывается аналог теоремы Хом- ского — Шютценберже для рекурсивно перечислимых языков: каждый такой язык является морфическим образом пересечения языка Дика с минимальным линейным языком, т. е. с языком, порождаемым линейной грамматикой с одним нетерминалом. С классами сложности (распознавания) языков читатель может ознакомиться по [СВиА*], [ПМЛ*1 и [АУ*].
7 Семейства языков 7.1. РЕГУЛЯРНЫЕ ЯЗЫКИ КАК ГРАММАТИЧЕСКОЕ СЕМЕЙСТВО В предыдущих разделах нам встречались некоторые семейства языков, однако в центре внимания оказывались конкретные семейства, и никакой общей теории семейств языков мы не развивали. Такая теория может основываться на свойствах замкнутости: в ней исследуются семейства языков, замкнутые относительно нескольких заданных операций. Ряд дополнительных фактов и касающиеся этого подхода ссылки даны в упр. 1 и 2. Следуя основной идее настоящей книги, мы рассмотрим теперь теорию семейств языков, основанную на морфизмах. Этот подход означает приблизительна следующее. Исходя из фиксированной грамматики G, так сказать «главной грамматики», мы рассматриваем инверсные морфи- ческие образы G (в уточняемом ниже смысле). Их можно рассматривать как грамматики, «подобные» G. Каждый инверсный морфический образ G порождает некоторый язык. Теперь с произвольной главной грамматикой G можно связывать некоторое семейство языков, а именно языков, порожденных инверсными морфическими образами G. В этой главе мы займемся такими семействами языков, известными под названием грамматических семейств. Мы ограничимся рассмотрением контекстно-свободных главных грамматик. Среди определенных таким образом грамматических семейств мы встретим наших старых знакомых, например семейства регулярных и контекстно-свободных языков. Поскольку параллельные подстановки носят существенно иной характер, мы не найдем среди них ни DOL-, ни OL-языков. Можно построить аналогичный механизм для задания L-семейств (см. [RS] или [W]). Давая естественную модель подобия грамматик, теория главных грамматик и грамматических семейств является также естественным способом изучения всех возможных нормальных форм грамматик, порождающих конкретные семейства языков. Ниже будут приведены примеры этого процесса. Мы укажем также способ построения «многих» грамматических семейств, фактически даже плотных иерархий таких семейств. Наконец, мы покажем, каким образом один частный случай этой теории связан с задачей о раскраске графа.
7.1. РЕГУЛЯРНЫЕ ЯЗЫКИ КАК ГРАММАТИЧЕСКОЕ СЕМЕЙСТВО Ц9 Начнем с некоторых формальных деталей. Рассмотрим грамматику G с множеством продукций Р, нетерминальным и терминальным алфавитами 2# и 2Г и множеством начальных символов 2s ^ 2лг. Пусть Л: TN^rN9 h: TT^V*T есть побуквенный морфизм, и пусть каждая буква из Vn() Vt является некоторым Л-образом. Таким образом, мощность Vn (соответственно Vt) не превосходит мощности 2# (соответственно 2г) и можно записать h(lT)*=VN и h(ZT) = VT. Множество h(P) естественным образом определяется как Л(Р) = {А(а)^А(р)|(а-^р)б=Р}. Теперь заметим, что G\ =(Vh, VT,h{P)yh(2s)) также является грамматикой. Назовем G\ морфическим образом G и обозначим Gi = A(G). (7.1) Требование, чтобы h был побуквенным морфизмом, существенно, потому что в противном случае мы не могли бы получить собственные алфавиты для новой грамматики G\. Грамматика G = (2at, 2Г, Р, 2S) является подграмматикой грамматики G,==(2^, 2^, Р', 2^), если S^gj^ 25<=25'э Src2^ и Р^Р'. Грамматика G называется инверсным морфическим образом грамматики С(, если (7.1) выполняется для некоторого побуквенного морфизма h и подграмматики Q\ грамматики G\. Тот факт, что G является инверсным морфическим образом G\ при (побуквенном) морфизме Л, записывается так: G^h'l(G[). (7,2) Читатель может удивиться, почему соотношения (7.1) и (7.2) не симметричны. «Суперграмматика» G\ грамматики G\ введена в (7.2) для того, чтобы обеспечить большую свободу выбора: одна грамматика является инверсным морфическим образом другой грамматики, если первую можно морфически отобразить на подграмматику второй. Это весьма существенно: мы хотим, чтобы можно было использовать только подмножество множества всех продукций. Дальнейшая информация содержится в упр. 3. Семейство языков, порожденное грамматикой G, определяется следующим образом: ^(G) = {L(G1)IGle/i~1(G) для некоторого h).
120 ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОВ Семейство 3? языков называется грамматическим, если 3? = = J?(G) для некоторой G. Если к тому же G— контекстно- свободная грамматика, то 2?(G) называется контекстно-свободным грамматическим семейством. Все грамматические семейства и грамматики, обсуждаемые в этой главе, являются контекстно-свободными, даже если это не указывается в явном виде. Во избежание ненужных частных случаев в этой главе мы рассмотрим только Х-свободные языки. Говоря об отдельных семействах языков, таких, как семейства регулярных или контекстно-свободных языков, мы будем подразумевать совокупности ^-свободных языков в этих семействах. В качестве примера рассмотрим грамматику, заданную продукциями S->SS, S->a. (7.3) Из леммы 6.3 непосредственно следует, что грамматическое семейство, порожденное этой грамматикой, представляет собой семейство всех контекстно-свободных языков. Аналогично из леммы 2.2 следует, что грамматика S-+aS, S-^a (7.4) порождает семейство всех регулярных языков. Две грамматики G\ и G^ называются эквивалентными по семействам, если 2?(Gi) = ^(G2)1)- (Напомним, что G\ и G2 называются эквивалентными, если L(Gi) = L(G2).) Очевидно, что две грамматики могут быть эквивалентными по семействам, не будучи эквивалентными, и обратно. Например, грамматики (7.3) и (7.4) эквивалентны (обе порождают язык а+), но не эквивалентны по семействам. С другой стороны, переименование терминального алфавита грамматики G (например, приписывание штрихов всем терминалам) оставляет семейство 2?(G) без изменений и в то же время изменяет язык L(G) (за исключением тривиального случая, когда L(G) не содержит непустых слов). Грамматика называется регулярно-полной (соответственно регулярно-достаточной), если порождаемое ею семейство равно семейству регулярных языков (соответственно содержит это семейство). Так, обе грамматики (7.3) и (7.4) являются регулярно-достаточными, а (7.4), кроме того, является регулярно-полной. Грамматика называется контекстно-свободно-полной или, короче, полной, если порождаемое ей семейство равно семейству контекстно-свободных языков. (Напомним, что мы рассматриваем только контекстно-свободные ') Таким образом, проблема эквивалентности грамматик G\ и G2 по семействам является проблемой равенства грамматических семейств. — Прим. перевt
f.l. РЕГУЛЯРНЫЕ ЯЗЫКИ КАК ГРАММАТИЧЕСКОЕ СЕМЕЙСТВО Щ грамматики. Так как морфизмы и инверсные морфизмы сохраняют свойство бесконтекстности, то наибольшим семейством, порождаемым некоторой грамматикой, является семейство контекстно-свободных языков. Таким образом, нет смысла говорить о контекстно-свободной достаточности!) Грамматика (7.3) является полной. Понятия полноты и достаточности можно определить и для других семейств языков. Заметим, что каждая полная грамматика дает некоторую «нормальную форму» для контекстно-свободных грамматик. Так, (7.3) дает нормальную форму Хомского из леммы 6.3. Следовательно, характериза- ция полноты одновременно является характеризацией всех возможных нормальных форм для контекстно-свободных грамматик. То же самое в равной степени справедливо для других семейств: характеризация регулярной полноты одновременно является характеризацией всех возможных нормальных форм грамматик для регулярных языков. Такая характеризация приводится ниже. В литературе инверсные морфические образы грамматик часто называют интерпретациями. Кроме того, если рассматриваются семейства языков, а не сами языки, то грамматики часто называют схемами грамматик (реже грамматическими формами, grammar forms). Инверсный морфизм можно заменить прямой операцией конечной подстановки; это делается следующим образом. Рассмотрим грамматику G=(2#, 2г, P, 2s) и конечную подстановку а, определенную на алфавите StfUSr и такую, что о{а) является конечным (возможно, пустым) множеством букв для каждой буквы а и а ф Ь всегда влечет о(а)()о(Ь) = 0. Положим Пусть 2$ — подмножество из a(2s), а Р'— подмножество из а(Р) (где последнее определяется естественным образом). Тогда грамматика G' = (2'N,1,'T,P', rs) называется интерпретацией грамматики G. Очевидно, что данное понятие интерпретации совпадает с приведенным выше, т. е. с понятием инверсного морфического образа. Множество всех ийтерпретаций G обозначим через Jl(G). Следующие три леммы непосредственно вытекают из определений, и поэтому мы опускаем их доказательства. Лемма 7.1. Существует алгоритм, выясняющий для двух данных грамматик G и G\, будет ли G\ интерпретацией грамматики G. Если G\ — интерпретация G, а G2 — интерпретация Gi, то грамматика G2 также является интерпретацией G.
№ ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОб Следовательно, если G\ — интерпретация G, то семейство языков, порождаемое грамматикой G\> содержится в семействе, порождаемом грамматикой G. Лемма 7.2. Для каждого языка L из 3?{G) существует такой побуквенный морфизм А, что h(L)^ L(G). Следовательно, множество длин каждого языка из S'(G) содержится в множестве длин языка L(G). Лемма 7.3. Язык L(G) конечен тогда и только тогда, когда конечен каждый язык в 2?{G). Если L(G) = {w{> ..., wn} конечен, то грамматика G эквивалентна по семействам грамматике, задаваемой продукциями S->wi, ..., S->wn. Выведем теперь характеризации регулярной полноты и регулярной достаточности. Прежде всего нам потребуются два определения. Пусть а — буква в терминальном алфавите грамматики G (контекстно-свободной, как было оговорено выше), а-ограни- чение Ga грамматики G получается из G удалением всех терминалов, не равных а, и всех продукций, содержащих какие-либо из них. Грамматика G называется грамматикой с самовставлением, если в ней имеется вывод S =Ф-* w\Aw2 =>* WiWzAw4w2 =>* wxW2,wbw4w2, (7.5, где SeSs, Wi суть терминальные слова и гюг-фХ, хю±ф%. Лемма 7.4. Семейство языков грамматики G содержит нерегулярный язык тогда и только тогда, когда G является грамматикой с самовставлением. Доказательство. Предположим, что G является грамматикой с самовставлением, и рассмотрим вывод (7.5). Отобрав входящие в этот вывод продукции и взяв «штрихованные» двойники букв, представленных в wa> мы получим интерпретацию G\ грамматики G, такую, что L (G{) = {wxu%wb {w\)n w2\n^ 0}. Очевидно, язык L(G\) нерегулярен, и, следовательно, семейство 2?(Q) содержит нерегулярный язык. Наоборот, пусть G не является грамматикой с самовставлением. Если в некоторой интерпретации G\ грамматики G имеется вывод (7.5), то рассмотрим побуквенный морфизм, фигурирующий в определении Gu и таким образом получим вывод вида (7.5), также соответствующий G. Поскольку это
7.1. РЕГУЛЯРНЫЕ ЯЗЫКИ КАК ГРАММАТИЧЕСКОЕ СЕМЕЙСТВО 123 невозможно, мы заключаем, что ни одна интерпретация G не является грамматикой с самовставлением. Так как каждая грамматика без самовставления порождает регулярный язык (это легко проверить), то 2{G) состоит только из регулярных языков. □ Лемма 7.5. Грамматика G регулярно-достаточна тогда и только тогда, когда для некоторой терминальной буквы а язык а+ содержится в L(G). Последнее условие выполняется тогда и только тогда, когда существует такое ограничение Ga грамматики G, что имеет место L{Ga)= a+. Доказательство. Второе утверждение очевидно. Из леммы 7.2 непосредственно следует также, что если в G нет такого терминального символа а, то в семействе 2?(G) нет языков вида 6+, где Ь — буква, и, следовательно, G не является регулярно-достаточной. Пусть у G есть такое а-ограничение Ga, что L(Ga) = a+. Рассмотрим произвольный регулярный язык R ^ 2+ и докажем, что R принадлежит j?(Ga). Следовательно, R принадлежит также 3?(G), откуда вытекает регулярная достаточность грамматики G. Для построения интерпретации G\ грамматики Ga, порождающей данный язык R, мы применим стандартную конструкцию с тройками (см. упр. 2.11). Нетерминалами G\ будут тройки (#, A, q')t где А — нетерминал из Ga, a q и q' — вершины конечного детерминированного автомата, представляющего /?. Такая тройка представляет собой интерпретацию Д т. е. принадлежит множеству о (А). Начальными символами G\ являются тройки (qo,S, qF), где qo (соответственно q?) — начальная (соответственно заключительная) вершина автомата, а 5 — начальный символ Ga. Множество терминалов G\ равно 2, т. е. каждая буква из 2 принадлежит о(а). Пусть Ра — множество продукций грамматики Ga. Множество продукций G\ является подмножеством о(Ра), которое сохраняет как выводы грамматики Ga, так и переходы автомата. Например, если А-*ВаСС является продукцией Ga, то множество продукций грамматики G\ содержит все продукции (Яи A, q2)-+{qu Я> q3)b(q4, С, q5)(q5, С, q2), где qi — вершины автомата, а Ь — буква из 2, вызывающая переход из qs в q*. Если A-+ab является продукцией грамматики Gfl, то множество продукций G\ содержит все продукции (qu Л, q2)-^ab, где qi — такие вершины автомата, что слово аЬ вызывает переход из q\ в q2.
124 ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОВ Теперь читатель без труда сможет формально определить множество продукций грамматики G\ и показать, что L(Gi) = R. □ Следующая теорема является непосредственным следствием лемм 7.4 и 7.5. Единственный необходимый дополнительный факт — разрешимость свойства грамматики быть грамматикой с самовставлением — устанавливается достаточно просто; детали оставляются читателю. Теорема 7.6. Грамматика G является регулярно-полной тогда и только тогда, когда она не является грамматикой с самовставлением и имеет а-ограничение Ga, такое, что L(Ga)= a+. Свойство регулярной полноты грамматики G разрешимо. Теорема 7.6 показывает также, что семейство SB регулярных языков обладает следующим свойством. Если грамматика G порождает семейство SB\ то некоторое ее а-ограничение Ga также порождает 3?. Таким образом, в грамматике G «существенной» является только одна терминальная буква; см. также упр. 7. 7.2. ПЛОТНАЯ ИЕРАРХИЯ ГРАММАТИЧЕСКИХ СЕМЕЙСТВ Среди грамматических семейств представляют значительный интерес лишь некоторые широко исследуемые семейства., такие, как семейства регулярных, линейных и контекстно- свободных языков. Однако в целом существует «очень много» грамматических семейств в силу замечательной порождающей способности морфизмов. Чтобы формально доказать это утверждение, начнем с некоторых определений. Пусть SB и SB'— такие грамматические семейства, что SB^SB'. Пара (SB, SB') называется плотной, если для любых грамматических семейств SB\ и j?2, таких, что существует такое грамматическое семейство SB*, что SB\ £ ^3^2. (Было бы ошибкой считать семейства между SB ъ SB' линейно-упорядоченными; в общем случае среди них будет много несравнимых семейств.) Грамматическое семейство SBi называется последователем грамматического семейства SB\ (a SB\ называется предшественником SBъ), если SB\ £i?2 и не существует грамматического семейства 3?г со свойством SB\ £ SBb £ 2V Рассмотрим в качестве примера грамматику G и натуральное число k^ly не принадлежащее множеству длин языка L{G), (Определение множества длин дано в упр. 6.4.)
7.2. ПЛОТНАЯ ИЕРАРХИЯ ГРАММАТИЧЕСКИХ СЕМЕЙСТВ 125 Пусть Ь\, ..., Ьк — новые различные терминальные символы, a G\ — грамматика, получающаяся из G добавлением продукции S->b{ ...bk. (Как обычно, S обозначает начальный символ.) Тогда легко проверить, что 3?(G\) является последователем 3?{G). Самое существенное здесь то, что все символы Ь различны и отличаются от терминальных символов грамматики G. Предполагается также, что символ S не входит в правые части продукций. Например, если G определяется продукциями S->A, A->a2At А->а\ то, повторяя указанное выше построение, мы получим бесконечную последовательность грамматических семейств, в ад- торой каждое семейство, начиная со второго, является последователем предыдущего семейства (в смысле данного выше определения), а первым является i?(G). Следовательно, если множество длин языка L(G') содержит в собственном смысле множество длин языка L(G)t то пара (2?(G), 2?{G')) не может быть плотной. С другой стороны, известно много плотных пар семейств, для которых множества длин, соответствующих порождающим их грамматикам, совпадают. Мы хотим показать, что семейства регулярных и контекстно-свободных языков образуют плотную пару. В доказательстве теоремы важную роль играет приведенная ниже лемма. Прежде чем мы ее сформулируем, введем еще одно вспомогательное понятие. Язык L называется когерентным, если его нельзя представить в виде L = L\ U L2t где L\ и /,2 — языки над непересекающимися алфавитами и как Lu так и L2 содержит хотя бы одно непустое слово. Таким образом, язык {abt be, dc} когерентен, тогда как язык {a, be} не когерентен. Лемма 7.7. Пусть &\ и 3?ъ — такие грамматические семейства, что 2?\ £ j?2, и, кроме того, существует бесконечный когерентный язык L, принадлежащий 3?2\£?\. Тогда существует грамматическое семейство j?3, такое, что £\£^з£^2. (7.6) Доказательство. Обозначим через Li (i= 1,2, ...) подмножество языка L, состоящее из всех слов длины Ф и Мы хотим показать, что для некоторого р Lp е£ 3?\ и Lp Ф L. Поскольку язык L бесконечен, Ь{фЬ для бесконечного множества значений /. Предположим, что все такие Li принадлежат семейству 9?\ и что грамматика G\ порождает
126 ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОВ семейство j?b a Я, является порождающей язык U интерпретацией грамматики G\. Для каждого i существует побук- венный морфизм А/, отображающий Я, на подграмматику G\. Так как терминальный алфавит каждой грамматики Я/ содержится в алфавите языка L, то существуют два различных числа i и /, таких, что ограничения Л* и А/ на терминалы идентичны. (Это, очевидно, вытекает из того, что для любых алфавитов S и А существует лишь конечное число побуквен- ных морфизмов Л: S*->A*.) Рассмотрим теперь языки L,- и L/. Без потери общности можно предположить, что нетерминальные алфавиты грамматик Hi и Я/ не пересекаются. Естественным образом определив объединение морфизмов и объединение грамматик, мы видим, что объединение А морфизмов А/ и h\ удовлетворяет соотношению Я, U Я, е A'1 (GO. (Для этого заключения необходимо, чтобы А/ и А/ отображали терминалы одинаковым образом.) Но это означает, что язык Li\jLj = L принадлежит &\% а это противоречит нашей гипотезе. Следовательно, существует число /?, такое, что Lp &= 9?\ и ЬрфЬ. Очевидно, что любое переименование нетерминальных и терминальных символов грамматики оставляет неизменным порождаемое ею семейство. В дальнейшем будем считать, что G\ и Нр (грамматика для Lp) не содержат общих букв (в случае необходимости мы переименуем алфавиты грамматики Gi). Рассмотрим объединение Gs грамматик G\ и Нр (таким образом, каждый элемент в G3 является объединением соответствующих элементов в G\ и Нр) и положим 2?ъ = & {G%). Мы утверждаем, что выполняется (7.6). По определению G3 семейство j?3 содержит 3?х. Это включение является собственным, поскольку Lp ^ &\% но, очевидно, Lp e 3?ъ- Так как L <= 2^, то и!ре j?2- (Это утверждение следует из результата, приведенного в упр. 6, но его можно проверить и непосредственно, модифицируя порождающую L грамматику таким образом, что все слова длины ^ р получаются непосредственно из начального символа; см. также второе утверждение леммы 7.3.) Следовательно, можно предположить, что Нр является интерпретацией грамматики G2, порождающей семейство 3?ъ Согласно последнему утверждению леммы 7.1, семейство S\HP) является частью i?2- Заметим теперь, что каждый язык из j?3 имеет вид K1UK2, где KieS'i, К2<^3?(НР) и, кроме того, алфавиты языков К\ и Кг не пересекаются. Из того что оба семейства
7.2. ПЛОТНАЯ ИЕРАРХИЯ ГРАММАТИЧЕСКИХ СЕМЕЙСТВ 127 3?(НР) и 2?\ содержатся в j?2» следует, что и &ъ содержится в i?2. (Здесь непересечение алфавитов является весьма существенным; в противном случае сделанное заключение не обязательно справедливо.) Теперь используем тот факт, что язык L когерентен. Из него следует, что язык L, принадлежащий j?3, должен содержаться в одной из частей 2?3> т. е. либо в j?i, либо в S'(Hp). Первый вариант исключается по предположению, а второй в силу того (см. лемму 7.2), что ни один язык в 2?(НР) не содержит слов длины р. Так как Lp Ф L, то язык L содержит хотя бы одно слово длины р. Следовательно, язык L принадлежит разности j?2\i?3, что завершает проверку (7.6). □ Теорема 7.8. Грамматические семейства регулярных и контекстно-свободных языков образуют плотную пару. Доказательство. Рассмотрим два произвольных грамматических семейства &\ и &ч, 2?\ £ «Й^, лежащие между семействами регулярных и контекстно-свободных языков. Стало быть, в разности 3^2\S>\ содержится некоторый язык L. Так как 2\ содержит все регулярные, а значит, и все конечные языки, то язык L бесконечен. Чтобы стало возможным применение леммы 7.7, надо еще показать, что язык L когерентен. Конечно, это не обязательно имеет место для произвольного языка L из разности 2?2\3?\- Однако мы покажем, что каждый L содержит бесконечное когерентное подмножество L', принадлежащее разности SV\i?i- Итак, пусть язык L не когерентен: L = Li)J^2, где L\ и L2 — языки над непересекающимися алфавитами (и каждый из языков L\ и /,2 содержит хотя бы одно непустое слово). Оба языка L\ и L2 принадлежат 3?2, потому что L лежит в j?2. (Это опять-таки следует либо из упр. 6, либо доказывается непосредственно, исходя из грамматики для L.) Если оба языка L\ и L2 принадлежат j?b то язык L также должен принадлежать j?i, а это невозможно. Значит, один из языков, скажем L\, не принадлежит S\. Из этого следует бесконечность L\ (так как 2£\ содержит все конечные языки). Таким образом, мы нашли бесконечный язык L\, принадлежащий разности 2?2\3?i- Кроме того, язык L\ оказывается над меньшим алфавитом, чем L. Если язык L\ не когерентен, то повторяется та же процедура. После конечного числа шагов мы найдем бесконечный когерентный язык Z/, принадлежащий разности &2\2?\- Далее применяется лемма 7.7. □ Эффективность проведенного построения обсуждается в упр. 8.
128 ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОВ 7.3. РАСКРАСКИ И СЕМЕЙСТВА ГРАФОВ Применим теперь идеи, изложенные в этой главе, к теории графов. Этот подход, появившийся совсем недавно, представляется особенно интересным по двум причинам. Во-первых, он приводит к классификации графов, основанной на понятии, естественным образом обобщающем понятие раскраски графа. Во-вторых, вопросы, связанные с этой классификацией, можно отождествить с вопросами, касающимися теории грамматических форм. Таким образом, мы обнаруживаем интересную связь между теорией языков и теорией графов. Помимо орграфов, введенных в гл. 2, мы будем рассматривать и неориентированные графы, которые для краткости будем называть просто графами. По определению графом является пара (VyE), где V — конечное множество, элементы, которого называются вершинами, а Е — множество неупорядоченных пар элементов V. Элементы Е называются линиями или ребрами (в отличие от стрелок в случае орграфов). В дальнейшем предполагается, что графы и орграфы не содержат петель, т. е. ребер или стрелок, ведущих из вершины в нее же. Предполагается также, что каждый граф или орграф содержит хотя бы две вершины, связанные линией или соответственно стрелкой. Сначала рассмотрим непомеченные графы и орграфы и начнем с основных определений. Граф G' называется интерпретацией графа G, если существует отображение ф множества вершин G' в множество вершин G, такое, что для каждого ребра в G', соединяющего вершины х и у, существует ребро в G, соединяющее вершины cp(x) и ф(#). Орграф G' называется интерпретацией орграфа G, если существует отображение <р множества вершин G' в множество вершин G, такое, что для каждой стрелки из х в у в орграфе G' существует стрелка из у(х) иф({/) в орграфе G Каждый граф (соответственно орграф) G определяет семейство JC(G) графов (соответственно орграфов), состоящее из всех интерпретаций G. (Заметим, что мы применяем обозначение М для семейства устройств, «машин» или «моделей»; такое же обозначение было введено для грамматик. Когда мы говорим о языках, порождаемых устройствами, то применяем обозначения 3?.) Мы будем говорить также, что граф G' является G-pac- крашиваемым (или раскрашиваемым в соответствии с G), если G' принадлежит семейству JC{G). Семейство графов называется цветосемейством, если оно равно J[{G) для некоторого графа G. Введенная выше терминология мотивируется следующими соображениями. Для п ^ 2 обозначим через Кп полный граф
?.3. РАСКРАСКИ И СЕМЕЙСТВА ГРАФО& Ц$ Ш '!' ' '■' ■■ ■ - ■ ■' « ■ ■ с п вершинами, т. е. граф, в котором две любые различные вершины соединены ребром. Очевидно, что граф О п-раскра- шиваем в обычном для теории графов смысле тогда и только тогда, когда G принадлежит Л(Кп). Таким образом, знаменитая теорема о четырех красках утверждает, что каждый плоский граф принадлежит М{К\)\ С другой стороны, в обычной теории раскрашивания графов рассматриваются только семейства J[(Kn)- Данное выше определение является намного более общим, поскольку рассматриваются раскрашивания, соответствующие произвольному графу. Например, рассмотрим циклический граф Сп с п вершинами, т. е. граф, ребра которого образуют замкнутый цикл. Следующая иллюстрация показывает, как граф С7 раскрашивается в соответствии с С5. Таким образом, С7 принадлежит М(СЪ). Интуитивно, раскраска, соответствующая Сб, означает такое использование цветов 1—5, что сохраняется соседство в Съ'. если вершина окрашена в цвет 1, то соседние с ней вершины могут быть окрашены в цвета 2 или 5, но не в 3 или 4 и т. д. Легко видеть также, что обратная раскраска невозможна: С$ не принадлежит JT(C7). Теперь обсудим значение введенных выше понятий теории графов с точки зрения теории языков. Отождествим конечный язык F с грамматикой G, заданной продукциями S->w9 w&F, и будем также говорить об интерпретации языка F, равно как о семействе языков 3?{F)y порожденных F. Очевидно, рзык L принадлежит 2?{F) тогда и только тогда, когда L является подмножеством oj,F)j для некоторой конечной
13D ГЛ 1. СЕМЕЙСТВА ЯЗЫКОВ подстановки а, такой, что о (а) является конечным множеством букв для каждой буквы а и а Ф Ъ всегда влечет a(a)f\o(b) = 0. Отождествление языка F и грамматики G проведено в соответствии с леммой 7.3, которая показывает, что семейство языков, определяемое грамматикой, порождающей конечный язык, полностью определяется этим языком. Приведенным вариантом G\- графа (орграфа) G называется граф (орграф), полученный из G удалением всех изолированных вершин, т. е. вершин, не связанных никаким ребром (стрелкой). Ясно, что J((G\) = J((G). (Напомним наше соглашение о том, что все графы и орграфы содержат хотя бы одно ребро или стрелку, и поэтому, удаляя изолированные вершины, мы никогда не удалим все вершины.) Конечный язык называется графоподобным, если он содержит только слова длины 2 и не содержит никаких слов вида а2. С каждым графоподобным языком можно естественным образом ассоциировать некоторый орграф: каждая буква обозначает вершину, а слова языка — стрелки. Например, является орграфом, соответствующим языку {abt be, ca}. Слово ab показывает, что существует стрелка, ведущая из а в Ь. Обратно, приведенный вариант произвольного орграфа определяет графоподобный язык, единственный с точностью до переименования букв. Таким образом, между графоподоб- ными языками и приведенными орграфами существует взаимно-однозначное соответствие *). Указанная выше связь между графами и языками в явном виде выражается следующей леммой (доказательство леммы опускается, ибо она сразу следует из определений). Лемма 7.9. Если F и F— графоподобные языки, a G и G' — соответствующие им орграфы, то F' является интерпретацией F тогда и только тогда, когда G' является интерпретацией G. 1) Это соответствие можно продолжить, сопоставив произвольным конечным языкам размеченные ориентированные гиперграфы. — Прим. перев.
7.3. РАСКРАСКИ И СЕМЕЙСТВА ГРАФОВ 131 Лемма 7.9 выражает коммутативность диаграммы F **G т т Fr >Gr Таким образом, для произвольной интерпретации F' (графо- подобного) языка F ассоциированный с F' орграф является одновременно интерпретацией орграфа G, ассоциированного с F. Этот результат показывает также, что все вопросы относительно иерархий семейств орграфов можно свести к вопросам относительно семейств, порожденных графоподобными языками, и обратно. Что касается графов, то их взаимосвязь с теорией языков аналогична. Единственное отличие состоит в том, что в данном случае мы вынуждены ограничиться рассмотрением; «коммутативных языков», т. е. таких языков, в которых порядок букв несуществен. Например, не имеет значения, какое из слов аЬ и Ьа принадлежит языку: и то и другое означает, что в ассоциированном графе вершины а и Ь соединены ребром. Понятие интерпретации можно определить и для коммутативных языков. Например, коммутативный язык {ахаъ а2а3, а3а4, а4а5, а5а6, aQa7i a7ax} является интерпретацией коммутативного языка {а{а2у а2аъ а3аА, aAas, аъа{} Э соответствии с тем, что циклический граф С7 является интерпретацией Сб. Вообще, для графов и коммутативных языков справедливо утверждение, соответствующее лемме 7.9. Лемма 7.9 и ее аналог для графов показывают, что результаты леммы 7.1 можно применять к графам и орграфам. В частности, если G'— интерпретация G (где и G, и G' являются или графами, или орграфами), то Ж(G')czЖ(G). Вернемся теперь к обсуждению цветосемейств. Вспомним определения Сп и Кп, а также приведенный выше пример с Съ и Ст. В соответствии с этими определениями легко установить следующую дважды бесконечную иерархию: ... Ж (С<>)£Ж (С7)£Ж (СЬ)£Ж (Сг) = = Ж(К3)£Ж(К*)£Ж(Кь) .... (7.7) Очевидно, что для всех п имеет место равенство с/#(С2л) = = Ж(К2)- (Оно соответствует тому обстоятельству, что граф
132 ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОВ является 2-раскрашиваемым в том и только том случае, когда он не содержит циклов нечетной длины.) Таким образом, существенно, что графы в (7.7), являющиеся циклами, имеют нечетную длину. Иерархия (7.7) является линейной иерархией цветосе- мейств (в общем случае цветосемейства не упорядочены линейно). В действительности можно доказать следующий (сильнейший из возможных) результат о несравнимости. Рассмотрим произвольный граф G. Если все циклы в G имеют четную длину, то M(G) = ^(/Сг). Это выводится, например, с помощью критерия 2-раскрашиваемости. Действительно, так как мы предположили, что все рассматриваемые графы имеют хотя бы одно ребро, то Ж(Къ) содержится в каждом цветосемействе. Итак, пусть в G имеется цикл нечетной длины 2/г+ 1. Поскольку для некоторого т граф G является т-раскрашивае* мым, получаем включения Ж (C2n+1) s Ж (G) s Ж (Кт). (7.8) Значит, каждый граф G либо удовлетворяет (7.8), либо jf(G)== jjT(/C2). В частности, каждое семейство Ж(д) может быть несравнимо только с конечным числом семейств Ж(С{) и конечным числом семейств Ж(К(). Оба этих числа могут быть произвольно большими, как показывает следующая теорема (ее доказательство опускается, так как необходимый для него теоретический аппарат выходит за рамки этой книги *)). Теорема 7.10. Для любых натуральных чисел т^З и п ^ 2 существует граф G, обладающий следующими свойствами: (i) G является интерпретацией графа Кт, но не графа Л/п-Ь (п) С2л-1 не является интерпретацией графа G. Следовательно, каждое из цветосемейств Ж(С2п-\)> •••» Ж(Сз) = Ж(Кг)> ..., Ж{Кт-\) несравнимо с Ж{в). По аналогии с грамматическими семействами мы назовем цветосемейство JF(G2) последователем цветосемейства jT(Gi), если JT(Gi) £*#(G2) и не существует цветосемейства Jff(G3), такого, что .jr(Gl)£.jr(Ga)5.ir(G2). 1) Необходимые для доказательства сведения читатель может почерпнуть, например, из книг [О*], гл. 14, и [X*], гл, 12, — Прим. перев.
7.3. РАСКРАСКИ И СЕМЕЙСТВА ГРАФОВ 133 Напомним, что мы исходили из того, что в каждом графе имеется хотя бы одно ребро. Если отказаться от этого предположения, то, исследуя граф К\ с одной вершиной и без ребер, можно непосредственно убедиться в том, что ^(/Сг), является последователем Л(К\)> Этот тривиальный пример является единственным возможным примером последователя, т. е. цветосемейства образуют плотное частично упорядоченное множество. Последнее обстоятельство используется в упр. 9 и 13; примеры последователей среди семейств орграфов приводятся в упр. 10. Наконец, мы хотим показать, как подобные идеи можно применить в более общей ситуации. Например, можно рассмотреть размеченные графы, и в частности конечные (недетерминированные) автоматы, введенные в гл. 2. Предположим далее, что в каждом автомате имеются ровно одна начальная вершина q\ и ровно одна заключительная вершина q2i ЦхФЦчЪ что ни одна стрелка не ведет в q\ и не выходит из q2. Предоставляем читателю проверить, что автоматом такого типа может быть представлен каждый Х-свобод- ный регулярный язык. Пусть автоматы G' и G относятся к описанному выше типу. Мы назовем автомат G' интерпретацией автомата G, если существует такое отображение ф множества вершин G' в множество вершин G и такое отображение if множества символов, помечающих стрелки G', в множество символов, помечающих стрелки G, что для каждой помеченной символом а стрелки из х в у в графе G' найдется помеченная символом 'ф(а) стрелка из <р(х) в ф(#) в графе G и, кроме того, и никакие другие вершины графа G' не отображаются посредством ф в q\ или q2. Это определение расширяет определение, данное выше: оно требует также, чтобы сохранились пометки стрелок, равно как и начальная, и заключительная вершины. С другой стороны, каждому такому автомату G можно сопоставить конечный язык Т7, состоящий из слов вида qaq'. (Слово qaq' показывает, что в автомате G некоторая помеченная символом а стрелка ведет из вершины q в q'. Предполагается, что в G нет изолированных вершин.) Пусть F и F — два таких конечных языка; мы скажем, что F' является интерпретацией F, если (i) F' является подмножеством a(F), где а — конечная подстановка, определенная, как и выше, и (ii) o(qi)= {qi}, o(q2)= {^2} и вершины qu q2 больше нигде не встречаются в области определения а.
134 ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОВ Нетрудно проверить коммутативность следующей диаграммы: G *»Р G1 —^Fr Эту диаграмму, как и предыдущую, можно записать, начиная с F. Обозначим через 3?{G) семейство языков, представи- мых интерпретациями графа G. Следует подчеркнуть, что семейства 3?(F) не находятся больше во взаимно-однозначном соответствии с семействами &(G). Может иметь место 3?(Gi) = 2,(G2), хотя соответствующие семейства £P(Fi) и 2?(F2) несравнимы. УПРАЖНЕНИЯ 1. Семейство & языков называется полным, абстрактным семейством языков (АСЯ) *), если оно замкнуто относительно каждой из следующих операций: объединение, * (итерация), морфизм, инверсный морфизм и пересечение с регулярными языками. Докажите, что каждое полное АСЯ замкнуто также относительно катенации и конечной подстановки. 2. Докажите, что семейства регулярных, контекстно-свободных и рекурсивно перечислимых языков являются полными АСЯ. (Наше соглашение — ограничить рассмотрение только Х-свободными языками — здесь не применимо.) Докажите, что, с другой стороны, семейства DOL- и OL- языков являются «антиАСЯ», т. е. не замкнуты относительно ни одной АСЯ-операции. (Исчерпывающее изложение теории АСЯ читатель может найти в [G2]2).) 3. Объясните, почему в формуле (7.2) фигурирует Gb а не Gi. (Например, рассмотрите грамматику Ни заданную продукцией S-*ab, грамматику Я2, заданную продукциями S -> ab, S -> cd, и грамматику Я3, заданную продукциями S-+ ab, S -*- Ьа. Какие следствия имела бы замена G{ на G{ в формуле (7.2)? Осталась бы верной лемма 7.3?) 4. Сформулируйте и докажите соответствующий теореме 7.6 результат для семейства всех регулярных языков (вместо рассмотренных в тексте Я-свободных). 5. Рассмотрим семейство линейных языков, т. е. языков, порождаемых линейными грамматиками. Докажите результаты о линейной доста- • точности и линейной полноте, соответствующие лемме 7.5 и теореме 7.6. Эта теория значительно сложнее аналогичной теории для регулярных языков. При желании читатель может найти информацию в [MSW2]. 1) В отечественной литературе такие семейства иногда называют полными многообразиями (см. также замечание 3° на с. 137). — Прим. перев. 2) На русском языке имеется изложение теории АСЯ в ряде статей в сборнике [ЯиА*]. — Прим. перев.
УПРАЖНЕНИЯ 135 6. Обобщая рассуждения, использованные в доказательстве леммы 7.5, покажите, что каждое грамматическое семейство замкнуто относительно пересечения с регулярными языками. Иначе говоря, если L — язык из этого семейства, a R — регулярный язык, то L f| R принадлежит семейству. Покажите также, что семейство языков, порожденное грамматикой только с одним терминальным символом, замкнуто относительно объединения. Зачем необходимо предположение об единственном терминале? / 7. Грамматическое семейство 3? называется унарно-полным, если для любой грамматики G, удовлетворяющей условию SB{G) = SB, существует а-ограничение Ga, удовлетворяющее условию $B(Ga) = SB. Исследуйте понятие унарной полноты. (Теорема 7,6 показывает, что семейство регулярных языков унарно-полно. То же самое справедливо для линейных языков, см. упр. 5. Можно показать также) что семейство контекстно-свободных языков унарно-полно.) 8. Покажите, что конструкция в доказательстве теоремы 7.8 эффективна в следующем смысле. Предположим, известно, что SB\ £ S£2, и дан язык L, принадлежащий разности SB2 \ SB\. Тогда можно эффективно по- ртроить грамматическое семейство i?3> удовлетворяющее условию SB\ S* §£ SB$ 5 SB2. (Проблема равенства грамматических семейств, т. е. проблема выяснения, верно ли, что 3?(GX) = SB(G2) в случае двух произвольно выбранных контекстно-свободных грамматик G\ и G2, остается открытой1).) 9. Покажите, что между любыми двумя семействами в иерархии (7.7) найдется некоторое цветосемейство. (Рассмотрите нечетное число «склеенных» вместе циклов.) 10. Покажите, что семейство орграфов, ассоциированное с языком L = {ab, be), является последователем .семейства орграфов, ассоциированного с языком {ab}. (Понятие последователя определяется здесь точно так же, как для цветосемейств.) Покажите, что семейство орграфов, ассоциированное с L3 = {ab, be, cd), не является, однако, последователем семейства орграфов, ассоциированного с L2. Покажите, что семейство орграфов, ассоциированное с языком {ab, bcu b{Ci, b\C, cd), является предшественником семейства, ассоциированного с L3. (См. в [MSW4] обсуждение соответствующих иерархий. Не известен ни один пример последователя, если орграфы более сложны, например содержат циклы.) И. Заметим, что каждый граф (соответственно орграф) является интерпретацией графа (соответственно, орграфа), содержащего петлю. Это основная причина того, почему такие графы и орграфы были исключены из рассмотрения. Покажите, что семейство орграфов, ассоциированное с языком {а2}, не имеет предшественника. 12. Сопоставьте каждой контекстно-свободной грамматике некоторый конечный язык. Рассмотрите интерпретации такого языка наряду с интерпретациями исходной грамматики. Постройте коммутативную диаграмму, а также исследуйте ее отношение к семейству языков, порождаемых всеми интерпретациями исходной грамматики. 13. Покажите, что цветосемейства образуют плотное частично упорядоченное множество, т. е. что между двумя любыми цветосемейства ми, одно из которых строго содержится в другом, существует строго промежуточное цветосемейство. Указания. Сначала рассмотрите произвольный циклический граф вида C2m+i- Покажите, что существуют произвольно большие связные графы Я, такие, что (i) H является интерпретацией графа С2т+и но не обратно и (ii) если отождествить две любые несмежные вершины в И, то C2m+i окажется интерпретацией полученного графа. Заключите отсюда, что не существует- графа, для которого граф С2т+\ был бы последователем. Распространите это заключение на произвольный связный граф G, в который C2m+i входит как наименьший нечетный цикл, 1) Относительно этого упражнения см. замечание 1° переводчика в конце главы. — Прим. ред.
136 ГЛ. 7. СЕМЕЙСТВА ЯЗЫКОВ посредством «замещения» одного вхождения этого цикла графом И. После этого заключение легко распространить и на случай несвязных графов. (Это упражнение основано на частном сообщении Э. Велцля.) Замечания переводчика 1°. Алгоритмы для проблемы включения, а следовательно, и проблемы равенства грамматических семейств (г. с.) изложены в работе [GGoSp*]. Сначала выделяются три тривиальные г. с.э ^0=а={0}, где 0 —пустой язык, /,^={0, {Л}}, LfIn«{L|L конечен}. В более ранней работе [CrGSp*] были предложены алгоритмы для решения проблем, порождает ли произвольно выбранная контекстно-свободная грамматика (КСГ) G г. с Z,0, L^, L{in и Lcf — семейство всех контекстно- свободных языков (в последнем случае Саломаа называет КСГ G полной). Г. с. SB называется собственным, если оно нетривиально и является собственной частью семейства Lcf. Полным полуАСЯ называется семейство языков, содержащее непустой язык и замкнутое относительно морфизма, инверсного морфизма, пересечения с регулярными множествами" и объединения. Для любого множества языков SB через ф(^) и &~(2?) обозначаются соответственно наименьшее полное полуАСЯ и наименьшее полное АСЯ, содержащее SB. Полное полуАСЯ SB называется главным, если существует язык L, такой, что SB = Ф({£}). В работе [CrG] доказан важный результат о том, что каждое нетривиальное г. с. является полным главным полуАСЯ. Алгоритм для решения проблемы включения г. с. в [GGoSp*] основан на методе разложения г. с. Определяются сумма г. с. и их произведение i?05"«{U I,Lj|n>l, (V/<«) (l,€=5\ L'^SB')}. Выражение вида (&иО --• О &in{)® ..-®(&ml® ... ® &тпт) называется многочленом г. с. (sum-of-products). Если удаление из многочлена любого SBu приводит к многочлену, обозначающему строго меньшее р. с, то многочлен называется минимальным. Г. с. SB называется простым (аддитивно простым), если для любых г. с. SB\ и SB2 из ^ s i?i О i?$ (соответственно 2? ^SB\® SB2) следует ^с^, или SB£ SB%. Доказывается, что г. с. аддитивно просто тогда и только тогда, когда оно является конечным произведением нескольких простых г. с. Основным результатом является замечательная теорема простого разложения: каждое г. с. единственным образом (с точностью до переименования) представимо в виде минимального многочлена от простых г. с, причем этот многочлен можно эффективно найти по заданию исходного г. с. порождающей его грамматической формой. С помощью этой теоремы проблема включения г. с. сводится к частному случаю, когда первое г. с. просто, а второе является произведением простых. Для дальнейшего решения вводится еще одна операция &* над г. с. Грамматика G = (V, 2, Я, а) называется сплит-линейной (split linear), если правая часть каждой продукции в G принадлежит множеству A(V-l)VCU(V-2)Bt где Л, В, С .образуют разбиение 2. Для г. с. 9?и &ь &г через (Г(SBи &ъ $Въ) обозначается семейство языков вида t(L), где L « 1(G) для некото» рой сплнт-линейной грамматики С-(К.ЛисиАЛа).
ЗАМЕЧАНИЯ ПЕРЕВОДЧИКА 137 а т — такая подстановка на (AVCUB)*, что х(х) принадлежит S£\% &%% 9?ь если х принадлежит Л, С или В соответственно. Собственное г. с. является простым тогда и только тогда, когда оно имеет одну из альтернативных форм Ф"ф) или Ti!&, % $• ). Семейство регулярных языков 01 играет роль единицы относительно ©: (V г с. &)$©Ф = #©# « #. Оказывается, что любое г. с. строится из &. с помощью операций 8Г, ЗГ, © и Ф, причем его представление находится эффективно. Существует единственное каноническое представление, уточняющее представление в виде минимального многочлена. Два нетривиальных г. с. равны тогда н только тогда, когда совпадают их канонические представления. Включение г. с. также выводится из их канонических представлений. Каноническое представление дает большую информацию о структуре г. с, и, вероятно, с его помощью можно получить решение многих проблем, связанных с г. с. Было бы интересно распространить введенные понятия на произвольные полные полуАСЯ. 2°. Различные модификации схем грамматик, позволившие получить содержательные результаты, относящиеся к семействам языков, отличных от КС, а также к субрегулярным семействам, рассматриваются в работах [W], [MPSW*1 и [OSW*]. 3°. Естественно определяемые классы сложности языков обычно являются АСЯ, хотя и не полными (см. [АиЯ*] и замечание в конце гл. 6). Таким образом, контекстные языки образуют (просто) АСЯ и распознаются недетерминированными машинами Тьюринга с линейной памятью. Среди классов временной сложности аналогичную роль играет абстракт* Ное семейство языков квазиреального времени (см. [Веа*]).
Исторические и библиографические замечания Основная цель этих замечаний — указать различные общие направления, в которых развивается теория формальных языков, равно как дать советы по конкретным связанным с текстом вопросам, которые могут заинтересовать читателя. Мы не пытались во всех случаях указывать, какому конкретному автору (авторам) принадлежит каждый отдельный результат, — иногда это оказывалось затруднительным. Материал первой главы восходит к [Т1] и [Т2], хотя у нас изложение существенно иное; к тому же мы использовали некоторые идеи из [МоН2] и заимствовали лемму 1.10 из [EhR4]. По проблематике второй главы имеется масса литературы, Материал по конечным автоматам и регулярным выражениям читатель может найти в монографиях [Sal] и [МсР]1). Каждая из работ [Наг], [HU], [Май], [Sa2] содержит довольно полное изложение теории формальных языков и описание иерархии Хомского2). В [AU] эта теория рассматривается с точки зрения теории компиляции. Теория контекстно-свободных языков излагается в монографиях [Gi] и [ВеЗ]; из основных первоисточников этой теории укажем [ChS], [GR] и [Niv]. Большая и важная область — теория сложности формальных языков — совсем не обсуждается; мы отсылаем читателя к [AHU], [HU] и [Во]. В статье [Ю] впервые сформулирована и доказана теорема Клини, а в [Ch] впервые рассматривались порождающие грамматики. Доказательство теоремы 3.2 приводится в [DeS]; наше изложение следует в основном [Sal]. Два совершенно различных решения проблемы СКС (FPP) имеются в работах [ManS] и [Has]; наше изложение основывается на идеях последней из них. Постановка проблемы СКС принадлежит Я. Бжозовски. Значительная часть первоначальных результатов относительно кодов была получена Шютценберже; [La]—одна из последних работ, по большей части теоретическая. Дополни- !) На русском языке см. монографии [ТрБ*] или [Ми*]. — Прим. пе« рев. 2) Относительно прочей литературы по этим вопросам, в частности литературы на русском языке, см. послесловие. — Прим. перев.
ИСТОРИЧЕСКИЕ И БИБЛИОГРАФИЧЕСКИЕ ЗАМЕЧАНИЯ 139 тельные сведения о максимальных коДах можно почерпнуть из [Mapl] и [Мар2*]. Множества совпадения и элементарные морфизмы были введены в [EhRl] и [EhR2]. Проблема соответствия Поста была впервые поставлена в [Р]; она подробно обсуждается в [Наг], [Май] и [Sa2]. Решение проблемы эквивалентности для DOL-последова- тельностей впервые было дано в [CuF]; мы привели здесь гораздо более простое решение из [EhR2] и [RS]. Доказг- тельство леммы 5.7 проводится по [Sa3] • дальнейшие ссылки по этому вопросу можно найти в [RS]. Основными источниками по локальным и ^-проверяемым языкам являются [Niv] и особенно [МсР] {). Теорема 6.2 взята из [СиМ]. Исходный вариант леммы 6.4 заимствован из [Grl]. Теорема 6.5 изложена по [Sh]; приведенный вариант теоремы 6.7 представлен в [Gr2]. Дальнейшее обсуждение вопросов представления с использованием множеств совпадения читатель найдет в [ВоВ], [Си], [СиМ], [EnR], [RS] и [Sa5]. Теорема 6.11 впервые встречается в [St]. Первой работой, посвященной грамматическим формам, была [CrG]; однако в ней дано несколько иное определение интерпретации терминалов, при котором нельзя использовать морфизмы. Материал трех параграфов гл. 7 заимствован из [MSW2], [MSW3] и [MSW4] соответственно2). Приведенный ниже список литературы содержит только те работы, на которые даются ссылки, и ни в коем случае не претендует на роль библиографии по теории формальных языков или перечня лучших работ в этой области. Многие из перечисленных в нем книг содержат обширную библиографию. 1) Понятие локального языка и теорема 6.1 по существу содержатся в статье [Мед *]; см. также примечание на с. 98. — Прим. перев. 2) См. также [MSW5*]. — Прим. перев.
Литература [AHU] Aho A., Hopcroft J., Ullman J. The design and analysis of computer algorithms. — Reading: Addison-Wesley, 1974. [Имеется перевод. /Geo А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — М.: Мир, 1979.] [AU] Aho A., Ullman J. The theory of parsing, translation and compiling. I—II. —Englewood Cliffs: Prentice-Hall, 1972—1974. [Имеется перевод: Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. В 2-х томах. — М.: Мир, 1978.] [Bel] Berstel J. Sur les mots sans carre definis par un morphisme. — In: Springer Lecture Notes in Computer Science, vol. 71, 1979, p. 16—25. [Be2] Berstel J. Mots sans carre et morphismes iteres. — Universite Paris 7, Institute de Programmation, 1978, p. 78—42. [Be3] Berstel J Transductions and context-free languages. — Stuttgart: B. G. Teubner, 1979. [Bo] Book R. Formal language theory and theoretical computer science. — Springer Lecture Notes in Computer Science, vol. 33, 1975, p. 1—15. [BoB] Book R„ Brandenburg F.-J. Representing complexity classes by equality sets. — Springer Lecture Notes in Computer Science, vol. 71, 1979, p. 49—57. [Ch] Chomsky N. Three models for the description of language.— IRE Trans. Informat. Theory, 1956, v. IT-2, p. 113—124. [Имеется перевод: Хомский Н. Три модели описания языка. — В кн.: Кибернетический сборник. Вып. 2. — М.: ИЛ, 1961, с. 237—266.] [ChS] Chomsky N., Schutzenberger M. P. The algebraic theory of context-free languages.— In: Computer programming and formal systems. Ed. by P. Braffort and D. Hirschberg. — Amsterdam: North Holland, 1963, p. 118—161. [Имеется перевод: Хомский Н., Шют- ценберже М. П. Алгебраическая теория контекстно-свободных языков. — В кн.: Кибернетический сборник. Новая серия. Вып. 3. —М.: Мир, 1966, с. 195—242.] [CrG] Cremers A., Ginsburg S. Context free grammar forms. — J. Corn- put. System ScL, 1975, v. 11, p. 86—116. [Cu] Culik K. II. A purely homomorphic characterization of recursively enumerable sets.— J. Associat. Comput. Machinery, 1979, v. 26, p. 345—350. [CuF] Culik K. II, Fris I. The decidability of the equivalence problem for DOL-systems. — Information and Control, 1977, v. 35, p. 20— 39. [CuK] Culik K. II, Karhumaki J. On the equality sets for homomorphisms on free monoids with two generators. — R. A. I. R. 0. Informat. theor., 1980, v. 14, p. 349—369. [CuM] Culik K. II, Maurer H. On simple representations of language families.—R. A. I. R. O. Informat. theor., 1979, t. 13, p. 241—250. [CuSl] Culik K. II, Salomaa A On the decidability of homomorphism equivalence for languages. — J. Comput. System Sci., 1978, v. 17, p. 163—175. [De] Dejean F. Sui un theoreme de Thue, — J. Combinatorial Theory (A), 1972, v. 13, p. 90—99.
ЛИТЕРАТУРА 141 [DeS] Dejean F., Schutzenberger M. P. On a question of Eggan.— Information and Control, 1966, v. 9, p. 23—25. [EhRl] Ehrenfeucht A., Rozenberg G. Simplifications of homomorphisms.— Information and Control, 1978, v. 38, p. 298—309. [EhR2] Ehrenfeucht A., Rozenberg G Elementary homomorphisms and a solution of the DOL sequence equivalence problem.—Theoret. Corn- put. Sci., 1978, v. 7, p. 169—183. [EhR3] Ehrenfeucht A., Rozenberg G. On a bound for the DOL sequence equivalence problem.—Theor. Comput. Sci., 1980, v. 12, p. 339—342. [EhR4] Ehrenfeucht A., Rozenberg G. On the subword complexity of square-free DOL languages. — Theoret. Comput. Sci., 1981, v. 16, no. 1, p. 25—32. [Ei] Eilenberg S. Automata, languages and machines. Vol. A.— New York: Academic Press, 1974. [EnR] Engelfriet J., Rozenberg G. Fixed point languages, equality languages and representation of recursively enumerable languages. — J. Associat. Comput. Machinery, 1980, v. 27, p. 499—518. [Gl] Ginsburg S. The mathematical theory of context-free languages.— New York: McGraw-Hill, 1966. [Имеется перевод: Гинзбург С. Математическая теория контекстно-свободных языков. — М.: Мир, 1970.] [G2] Ginsburg S. Algebraic and automata-theoretic properties of formal languages.—Amsterdam: North Holland, 1975. [GR] Ginsburg S., Rice H. Two families of languages related to ALGOL — J. Associat. Comput. Machinery, 1962, v. 9, p. 350—371. [Имеется перевод: Гинзбург С, Райе X. Два класса языков типа АЛГОЛ. — В кн.: Кибернетический сборник. Новая серия. Вып. 6. —М.: Мир, 1969, с. 184—214.] [Grl] Greibach S. A new normal form theorem for context-free phrase structure grammars.— J. Associat. Comput. Machinery, 1965, v. 12, p. 42—52. [Gr2] Greibach S. The hardest context-free language. —S. I. A. M. J. Comput., 1973, v. 2, p. 304—310. [H] Hall M., Jr. Generators and relations in groups — the Burnside problem.— In: Lectures on modern mathematics. Ed by T. L. Saa- ty. Vol. II. — New York: Wiley and Sons, 1964, p. 42—92. [Наг] Harrison M. Introduction to formal language theory. — Reading Addison-Wesley, 1978 [Has] Hashiguchi K. A decision procedure for the order of regular events. — Theoret Comput. Sci., 1979, v. 8, p. 69—72. [HU] Hopcroft J., Ullman J. Introduction to automata theory. Languages and computation. — Reading: Addison-Wesley, 1979. [KaS] Karhumaki J., Simon I. A note on elementary homomorphisms and the regularity of equality sets. —E. А. Т. С S. Bulletin, 1979, v. 9, p. 16—24. [Kl] Kleene S. С Representation of events in nerve nets and finite automata. — In: Automata studies. — Princeton: Princeton Univ. Press, 1956. [Имеется перевод: Клини С. К. Представление событий в нервных сетях и конечные автоматы. — В кн.: Автоматы.— М.: ИЛ, 1956, с. 15—67.] [La] Lallement G. Semigroups and combinatorial applications. — New York: Wiley and Sons, 1979. [Имеется перевод: Лаллеман Ж. Полугруппы и комбинаторные приложения. — М.: Мир, 1985.] [Le] Lecerf Y Recursive insolubilite de Tequation generate de diago- nalisation de deux monomorphismes de monoides libres <px =s = Ф*. — С R. Acad. Sci. Paris, 1963. t. 257, p. 2940—2943. [L] Lindenmayer A. Mathematical models for cellular interaction in development. I—II. —J. Theoret. Biology, 1968, v. Д8, p. 280—
142 ЛИТЕРАТУРА [Lit} Linna M. Finite powei property of regular languages. — In: Automata Languages and programming. Ed. by M. Nivat.— Amsterdam: North Holland, 1973, p. 87—98. [Li2] Linna M. The DOL-ness for context-free languages is decidable. — Information Processing Letters, 1976, v. 5, p. 149—151. [Li3] Linna M. The decidability of the DOL prefix problem. — Internat. J. Comput. Math., 1977, v. 6, p. 127—142. [LyS] Lyndon R., Schtitzenberger M. P. The equation aM = bNcp in a free group. —Michigan Math. J., 1962, v. 9, p. 289—298. [ManS] Mandel A., Simon I. On finite semigroups of matrices — Theoret. Comput. Sci., 1978, v. 5, p. 101—111. [Mapl] Марков А. А. Условия полноты для неравномерных кодов.— В кн.: Проблемы кибернетики. Вып. 9. — М.: Физматгиз, 1963, с. 327—331. [Май] Maurer H. Theoretische Grundlagen der Programmiersprachen. — Mannheim: Bibliographisches Institut, 1969. [MSW1] Maurer H., Salomaa A., Wood D. On generators and generative capacity of EOL forms.—Acta Informatica, 1980, v. 13, p. 87—107. [MSW2] Maurer H., Salomaa A., Wood D. Context-free grammar forms with strict interpretations. — J. Comput. System Sci., 1980, v. 21, p. 110—135. [MSW31 Maurer H., Salomaa A., Wood D. Dense hierarchies of grammatical families. —J. Ass. Comput. Machin., 1982, v. 29, p. 118—126. [MSW4] Maurer H., Salomaa A., Wood D. Colorings and interpretations: a connection between graphs and grammar forms. — Discr. Appl. Math., 1981, v. 3, p. 119—135. [Mc] McLean D. Idempotent semigroups — Amer. Math. Monthly, 1954, v. 61, p. 110—113. [McP] McNaughton R., Papert S. Counter-free automata. — Cambridge: M. I. T. Press, 1971. [MiS] Morisaki M., Sakai K. A complete axiom system for rational sets with multiplicity. — Theoret. Comput. Sci., 1980, v. 11, p. 79—92. [MoHl] Morse M.. Hedlund G. Symbolic dynamics. — Amer. J. Math., 1938, v. 60, p. 815—866. [MoH2] Morse M., Hedlund G. Unending chess, symbolic dynamics, and a problem in semigroups. — Duke Math. J., 1944, v. 11, p. 1—7. [Nie] Nielsen M On the decidability of some equivalence problems for DOL systems. — Information and Control, 1974, v. 25, p. 166— 193. [Niv] Nivat M. Transductions des langages de Chomsky. — Ann. Inst. Fourier, Grenoble, 1968, t. 18, p. 339—456. [P] Post E. A variant of a recursively unsolvable problem. — Bull. Americ. Math. Soc, 1946, v. 52, p. 264—268. [RS] Rozenberg G., Salomaa A. The mathematical theory of L systems.— New York: Academic Press, 1980. [Rul] Ruohonen K. The decidability of the FOL-DOL equivalence problem. — Information Processing Letters, 1979, v. 8, p. 257—260. [Ru2] Ruohonen K. The inclusion problem for DOL languages. — Elek- tronische Informationsverarbeitung und Kybernetik, 1980, Bd 15, S. 535—548. fSall Salomaa A. Theory of automata. — Oxford- Pergamon Press, 1969. Sa2] Salomaa A. Formal languages — New York Academic Press, 1973. [Sa3] Salomaa A. On sentential forms of context-free grammars. — Acta Informatica, 1973, v 2, p 40—49. [Sa4] Salomaa A. Comparative decision problems between sequential and parallel rewriting. — In: Proc. Symp. Uniformly Structured Automata and Logic, Tokyo, 1975, p. 62—66. [Sa5] Salomaa A. Equality sets for homomorphisms of free monoids. — Acta Cybernetka, 1978, v. 4, p. 127—139.
ЛИТЕРАТУРА Hfr [SalSJ Salomaa A., Soittola M. Automata-theoretic aspects of formal power series. — Berlin* Springer, 1978 [SarP] Sardinas A., Patterson G. A necessary and sufficient condition for the unique decomposition of coded messages. — IRE Intern. Conv. Record, 1953, v. 8, p. 104—108. [Имеется перевод: Сардинас А., Паттерсон Дж. Необходимое и достаточное условие однозначного разложения закодированных сообщений. — В кн.: Кибернетический сборник. Вып. 3. —М.: ИЛ, 1961, с. 93—102.] [Sh] Shamir E. A representation theorem for algebraic and context- free power series in noncommuting variables. — Information and Control, 1967, v. 11, p. 239—254. [St] Stanat D. A homomorphism theorem for weighted context-free grammars.— J. Comput. System ScL, 1972, v. 6, p. 217—232. [Tl] Thue A. Ober unendliche Zeichenreihen.— Videnskapsselskapets Skrifter. I. Mat.-naturv. Klasse, Kristiania, 1906. [T2] Thue A Ober die gegenseitige Lage gleicher Teile gewisser Zeichenreihen.— Videnskapsselskapets Skrifter. I. Mat.-naturv. Klasse, Kristiania, 1912. [W] Wood D. Grammar and L forms: an introduction. — Berlin: Springer, 1980. Дополнительная литература [АУ*] Ахо А., Ульман Дж. Теория языков. — В кн.: Кибернетический сборник. Новая серия. Вып. 6. — М.: Мир, 1969, с. 145—183. [Л1*] Левенштейн В. И. О некоторых свойствах кодирования и самонастраивающихся автоматах для декодирования сообщений. — В кн.: Проблемы кибернетики Вып. П. — М.: Наука, 1964, с. 63—121. [^12*] Левенштейн В. И. Элементы теории кодирования. — В кн.: Дискретная математика и математические вопросы кибернетики. Том I. — М.: Наука, 1974, разд. 5, гл. I и II. [М*] Мур Э. Ф. Умозрительные эксперименты с последовательностны-. ми машинами. — В кн.: Автоматы: Пер. с англ. — М.: ИЛ, 1956, с. 179—210. [Мар2*] Марков А. А. Введение в теорию кодирования. — М.: Наука, 1982. [Мед*] Медведев Ю. Т. О классе событий, допускающих представление в конечных автоматах. — В кн.: Автоматы: Пер. с англ. — М.: ИЛ, 1956, с. 385—401. [Ми*] Минский М. Вычисления и автоматы: Пер. с англ. — М.: Мир, 1971. [О*] Оре О. Теория графов: Пер. с англ. —-М.: Наука, 1968; 2-е изд., Л 980. [П*] Павленко В. А. Комбинаторная проблема Поста для двух пар слов. — Препринт 82 16, — Киев: Ин-т математики АН УССР, 1982; см. также VII Всесоюзн. конф. по математической логике.. Тезисы докладов. — Новосибирск: Ин-т математики СО АН СССР, 1984; с. 134. [ПМЛ*] Проблемы математической логики. Сборник переводов. — М.: Мир, 1970. [PC*] Рабин М., Скотт Д. Конечные автоматы и задачи их разрешения. — В кн.: Кибернетический сборник. Вып. 4. — М.: ИЛ, 1962, с. 58—91. [СВиА*] Сложность вычислений и автоматов. Сборник переводов. — М.: Мир, 1974.
14* ЛИТЕРАТУРА [ТрБ*] Трахтенброт Б. А., Бардзинь JI. М. Конечные автоматы (поведение и синтез). — М.: Наука, 1970. [УС*1 Успенский В. А., Семенов А. Л. Теория алгоритмов: ее основные открытия и приложения. — В кн.: Алгоритмы в современной математике и ее приложениях. — Новосибирск: ВЦ СО АН СССР, 1982, часть 1, с. 99—342. ГХ*] Харари Ф. Теория графов: Пер. с англ. — М.: Мир, 1973. ГЯиА*1 Языки и автоматы. Сборник переводов. — М.: Мир, 1975. [Bea*J Book R. V. et al. Time- and tape-bounded Turing acceptors and AFL's.— J. Comput. System Sci., 1970, v. 4, p. 606—625. [Br*] Brzozowski J. A. Developments in the theory of regular languages.—In: Information Processing 80.— North-Holland, IFIP, 1980, p. 29—40. [CrGSp*] Cremers A., Ginsburg S., Spanier E. H. The structure of context- free grammatical families.— J. Comput. System Sci., 1977, v. 15, p. 262—279. [CuH*] Culik К. П, Harju T. The ©-sequence equivalence problem for DOL systems is decidable. — J. Associat. Comput. Machinery, 1984, v. 31, p. 282—298. [CuP*] Culik K. II, Pachl J. K. Equivalence problems for mapping on infinite spring. — Information and Control, 1981. v. 49, p. 52—63. [CuS2*] Culik K. II, Salomaa A. Test sets and checking words for homo- morphism equivalence. — J. Comput. System Sci., 1980, v. 20, p. 379—395. [CuS3*] Culik K. II, Salomaa A. On infinite words obtained by iterating morphisms. — Theoret. Compu . Sci., 1982, v. 19, p. 17—28. [EhR5*] Ehrenfeucht A., Rozenberg G. On the (generalized) Post correspondence problem with lists of length 2. — Theoret. Comput. Sci., 1982, v. 21, no. 2. [GGoSp*] Ginsburg S., Goldstin J., Spanier E. H. On the equality of grammatical famines. — J. Comput. System Sci., 1983, v. 26, no. 2, p. 171—196. [HW*] Head Т., Wilkinson J. Code properties and homomorphisms of DOL systems. — Theoret. Comput. Sci., 1985, v. 35. p. 295—312. [Ka*] Karhumaki J. On the regularity of equality languages. — Ann. Univ. Turkuensis, Ser. A. I., 1984, v. 186, p. 47—58. [KaK*] Karhumaki J., Kleijn H. On the equivalence of compositions of morphisms and inverse morphisms on regular languages. — In: Springer Lecture Notes in Computer Science, vol. 176, 1984. p. 355—363. [MaY*] Maon Y., Yehudai A. On test sets for morphisms equivalence checking. — Theoret. Comput. Sci., 1984, v. 33, p. 239—260. [MPSW*] Maurer H., Pentonnen M., Salomaa A., Wood D. On non context- free grammar forms.— Math. Syst. Theory, 1979, v. 12, p. 297— 324. [MSW5*] Maurer H., Salomaa A., Wood D. Completeness of context-free grammar forns. —J. Comput System ScL, 1981, v. 23, no. L p. 1—10. [OSW*] Ottmann Th., Salomaa A., Wood D. Subregular grammar forms,— Information Processing Letters, 1981, v. 12, p. 184—187,
Послесловие А А МУЧНИК, А Л. СЕМЕНОВ Пытаться в послесловии к книге А. Саломаа дополнить ее какими-то новыми «драгоценными камнями» или тем более дать обзор всей области, значило бы вступить в противоречие с самим замыслом книги. Задача настоящего послесловия в другом: обратить внимание читателя на некоторые новые грани собранных автором «драгоценных камней» (мы продолжаем его метафору). Иначе говоря, мы попытались дополнить книгу комментариями, имея в виду познакомить читателя с результатами, непосредственно относящимися к содержанию книги, но в ней не упомянутыми (прежде всего потому, что они были получены уже после ее написания). Названия рассматриваемых тем выделены курсивом. Начнем мы, однако, с работ А. Туэ (отметим, что в 1977 г. в Норвегии вышло его собрание сочинений [Th77]). Задача Туэ о бесповторных словах и ее обобщения. Книга Саломаа начинается с рассмотрения задачи Туэ о построении слов и сверхслов, не содержащих х2 и хъ. Эта задача допускает замечательное обобщение. Заметим, что х2 само есть слово, а именно слово в алфавите переменных. Возьмем вместо х2 какое-либо другое слово <р в алфавите переменных и поставим ту же самую задачу — построить сверхслово в заданном алфавите, не содержащее ни одного значения слова ф (под значением понимается образ <р при действии не- стирающего морфизма). Конечно, в такой постановке задача оказывается разрешимой не при любом слове ср. (Тривиальный пример — слово ф = х, менее тривиальный — слово xyxzxyx, значение которого содержится в каждом сверхслове над любым алфавитом.) Слово, значение которого содержит любое сверхслово в заданном алфавите, называется блокирующим (или неизбежным). В работе [ВЕМ] доказывается, что для каждого алфавита переменных X существует сверхслово, не содержащее значений ни одного не блокирующего слова в алфавите X (и, конечно, содержащее значения всех блокирующих). Как отмечает Саломаа, результат Туэ нашел применение в различных областях математики, в частности в теории динамических систем. Еще одним применением является его использование в решении знаменитой проблемы Вернсайда^
146 ПОСЛЕСЛОВИЕ остававшейся открытой более 50 лет (см. упр. 8 гл. 1). Проблема Бернсайда для показателя п состоит в существовании бесконечной группы с конечным числом образующих, для каждого элемента х которой выполнено хп = 1. Начиная изучать эту проблему, П С. Новиков естественно пришел к вопросу о существовании сколь угодно длинных слов, не содержащих вхождений хп. Ответ на этот вопрос П. С. Новиков нашел в статье С. Е. Аршона, заново открывшего в работе [Арш] результат Туэ. Работу по решению проблемы Бернсайда П. С. Новиков завершил совместно со своим учеником С. И. Адяном. Они построили при любом нечетном, я ^4381 нужный пример группы. Впоследствии С. И. Адян В книге [Ад75] переработал и уточнил доказательство и понизил оценку для нечетного п до 665. Конечно, в доказательстве Новикова — Адяна, являющемся на сегодняшний день наиболее сложным результатом в комбинаторике слов, пример Аршона— лишь небольшая деталь, но деталь необходимая и принципиальная. Решение проблемы Бернсайда нашло многочисленные применения в задачах теории групп, а также в новом разделе вычислительных наук, возникшем на стыке математической логики, теории алгоритмов и теоретического программирования — динамической логике (см. [StT]). Тесно связанными с теорией формальных языков оказываются и не- которые аналоги проблемы Бернсайда с дополнительными условиями (см. [Lu]). Здесь возникает много интересных открытых проблем в связи с «леммами о накачке» (см. упр. 4 к гл. 2). Посмотрим еще раз на последовательность (1.6), решающую проблему построения бескубного слова и получающуюся итерацией морфизма h: а Ь ab abba abbabaab В ней каждый член получается применением h к предыдущему. Можно, однако, посмотреть на нее иначе. Будем' строить не последовательность слов, а последовательность пар слов д^0): a ab abba abbabaab ..., х{1]: b ba baab baababba .... Тогда очередное слово xflx в верхнем ряду получается как хфх$\ а слово х{Цх в нижнем ряду — как х{Рх{?\ Иначе говоря, возникает рекуррентное соотношение, аналогичное тем, которые (для чисел, а не для слов) рассматривает теория линейных рекуррентных последовательностей. Обобщая эту конструкцию, можно естественно определить рекуррентную последовательность наборов слов и рекуррентно задаваемые сверхсловз.
ПОСЛЕСЛОВИЕ 147 Наряду с DOL-сверхсловами естественно^ рассматривать HDOL-сверхслова. HDOL-сверхслово — это образ DOL-сверх- слова под действием произвольного нестирающего гомоморфизма. Можно показать, что класс HDOL-сверхслов совпадает с классом гомоморфных образов рекуррентно задаваемых сверхслов. Построение рекуррентно задаваемых сверхслов можно обобщить. Это приводит к понятию бесконечного произведения слов, нашедшему применение в различных задачах символической динамики, эргодической теории и др. Получаемые при этом сверхслова обладают определенными структурными свойствами, в частности свойством почти периодичности (см, [Я]). Понятие бесконечного произведения допускает дальнейшее обобщение — обобщенное бесконечное произведение, которое находит применение при изучении вопросов разрешимости для логических теорий (см. [Се83]). Исчисления Туэ. В другой группе своих работ Туэ рассматривал исчисления, которые теперь называются его именем. Для нас сейчас исчисления Туэ (в которых каждое правило может применяться в любую сторону) — прежде всего способ задания полугрупп (в частности, групп). Туэ же рассматривал свои исчисления безотносительно к алгебре; они имели для него скорее логико-лингвистическое содержание. Работа [ТЫ4] замечательна по меньшей мере в следующих отношениях. Во-первых, в ней абсолютно ясно сформулирована (не менее ясно, чем десятая проблема в историческом докладе Гильберта) алгоритмическая массовая проблема — проблема выводимости слова в данной грамматике. Во-вторых, в ней получено решение этой проблемы в некоторых случаях; использованные методы представляют собой примеры того, что сейчас называется комбинаторикой слов. В-третьих, помимо общей алгоритмической проблемы (получившей отрицательное решение в известных работах Маркова и Поста), он сформулировал интересный частный случай — когда используется одно правило, причем с пустой левой частью. В этом частном случае, как показал Адян [Адбб] проблема имеет положительное решение. Замечательно, что Туэ предвосхитил не только грамматики над словами но и грамматики над деревьями (см. [ТЫО]). Еще для одного важного вида грамматик — грамматик над целочисленными векторами (систем сложения векторов) — лишь недавно в работе [Kos] было получено решение (причем положительное) про* блемы выводимости в грамматике. Из важных направлений, относящихся к системам Туэ и возникших в последние годы, отметим изучение систем со свойством Чёрча — Россера. Пусть задана система продукций— некоторое множество объектов и некоторый класс пре-
148 ПОСЛЕСЛОВИЕ образований над ними, называемых элементарными упрощениями (и соответственно понимаемых). Рефлексивное транзитивное замыкание множества элементарных упрощений задает на объектах отношение упрощения; рефлексивное транзитивное симметричное замыкание — отношение эквивалентности. Основным в определении свойства Чёрча — Россера является следующее: для любых двух эквивалентных объектов х,у существует объект г, получаемый упрощением и из х, и из */. Это свойство использовалось при изучении самых различных систем продукций. В частности, само его название связано с известной теоремой Чёрча — Россера, относящейся к комбинаторной логике. Другим классическим примером системы с таким свойством является свободная группа, где элементарные упрощения — это вычеркивания стоящих рядом взаимно-обратных образующих. С полной ясностью, однако, роль этого свойства была осознана только в рамках теории формальных языков в начале семидесятых годов различными группами исследователей (см. [Во], [Niv], [Як]). Свойство Чёрча — Россера обычно обеспечивает довольно редкое для классических алгоритмических проблем алгебры и практически весьма ценное качество строящихся на его основе алгоритмов: эти алгоритмы обычно оказываются очень эффективными (с линейным или квадратичным временем работы). Тем более удивительным оказывается, для сколь широкого класса алгебраических систем удается задать их системой продукций, обладающих свойством Чёрча — Россера. В частности, таким образом можно задать произвольные конечно-определенные уноиды, что дает возможность доказать разрешимость монадической теории любого такого уноида (см. [RyS]); о других классах см. [Ot]. Конечные автоматы и регулярные множества. Наиболее важным событием на начальном этапе развития теории формальных языков было открытие класса конечных автоматов и нахождение различных характеризаций для класса задаваемых ими множеств. Почти одновременно Хомским были предложены классы формальных грамматик (один из этих классов, образованный грамматиками типа 3, дает вариант характеризаций регулярных множеств). Регулярные множества и конечные автоматы сохранили свое значение и до сих пор. Книга Саломаа ярко это иллюстрирует. Изучая конечные автоматы с точки зрения общей теории алгоритмов и исчислений, сразу можно заметить, что их возможности очень ограниченны. В то же время именно эта ограниченность делает возможным применение комбинаторно-алгебраических методов и приводит к алгоритмической разрешимости самых разных задач, связанных с конечными автоматами. Однако это не главная причина, обеспечиваю-
ПОСЛЕСЛОВИЕ 149 щая им прочное место в современной вычислительной науке. Конечные автоматы являются моделями всевозможных естественных и искусственных устройств, входят как элементарные составные части в целый ряд формальных уточнений понятия вычислимой функции, в определение магазинных и счетчиковых автоматов, итеративных сетей (автоматов Неймана), схем программ и автоматов. Конечные автоматы и их обобщения сыграли большую роль в установлении разрешимости ряда логических теорий (см., например, [Се83] или [ТрБ*]). Замечательной особенностью класса регулярных языков является замкнутость относительно большого числа естественных операций: булевых операций, регулярных операций (теорема Клини), прямых и обратных морфизмов, конечно- автоматных отображений. В силу этого класс регулярных языков входит как часть в любое абстрактное семейство языков (АСЯ). Таким большим числом «хороших» свойств в математике обладают, пожалуй, лишь рациональные функции над полями. Степенные ряды. Описанная аналогия не случайна. Регулярные грамматики, записанные в виде линейных уравнений от некоммутативных переменных, приводят к «изображению» порождаемых ими регулярных языков в виде рациональных степенных рядов от некоммутативных переменных (алфавитных букв), куда каждое слово языка входит с той кратностью (вариант — вероятностью), с какой оно порождается грамматикой, а коммутативные образы этих рядов являются обычными степенными рядами. В связи с указанной аналогией операции Клини часто называют рациональными. (Заметим, что итерация А* может быть записана как (1 —Л)*"1.) В свою очередь контекстно-свободные грамматики могут быть сопоставлены с алгебраическими системами уравнений, решение которых ищется в виде набора формальных степенных рядов от некоммутирующих переменных. Коэффициенты рядов указывают на число различных выводов одного слова в грамматике. Если подставлять в ряды вместо переменных действительные числа, будем получать обыкновенные алгебраические функции. Пользуясь алгоритмом разрешения для элементарной теории поля действительных чисел, можно решать алгоритмическую проблему равенства получающихся функций. Отсюда вытекает, например, разрешимость проблемы равенства для языков, один из хоторых порождается однозначной грамматикой, а другой регулярен, и других алгоритмических проблем (см. [Се73], [SaSo], [My]). Уравнения в словах. Уравнения в словах можно считать источником современной теории формальных языков и комбинаторики слов. Пример нетривиального и важного урав-
150 ПОСЛЕСЛОВИЕ нения (одновременно с описанием множества его решений) приводится в упр. 5 гл. 1. Уравнения в словах впервые интенсивно изучались А. А. Марковым в начале пятидесятых годов, в частности в связи с десятой проблемой Гильберта. Марков предлагал подставлять в уравнения в словах вместо коэффициентов (символов основного алфавита) матрицы с числовыми элементами, а вместо переменных матрицы с переменными элементами. При этом система уравнений в словах преобразуется в систему алгебраических уравнений, в известном смысле (который мы уточним ниже) эквивалентную системе уравнений в словах. Проблема распознавания разрешимости систем уравнений в словах получила положительное решение в работе Г. С. Ма- канина [Мак]. В виде утверждения о системах уравнений в словах, как заметил Карумяки (см. [Каг]), можно сформулировать известную гипотезу Эренфойхта, относящуюся к морфизмам и так называемым тестовым множествам. Эта формулировка звучит так: любая система уравнений от конечного числа неизвестных над заданной конечно-порожденной свободной полугруппой эквивалентна своей конечной подсистеме. Мы сейчас изложим очень простое доказательство гипотезы Эренфойхта, принадлежащее В. С. Губе. Как мы видим, эта гипотеза представляет собой принцип компактности. Известно, что этот принцип имеет место и для алгебраических уравнений от конечного числа переменных (например, над полем действительных чисел). Для алгебраических уравнений он является следствием известной теоремы Гильберта о нетеровости кольца многочленов от нескольких переменных (см. [Л]). Другой известный алгебраический факт (используемый в упомянутом подходе Маркова) — это существование точного представления свободной полугруппы матрицами (например, (2X 2)-матрицами над полем действительных чисел). Заменив в системе уравнений над полугруппой константы (символы алфавита) их образами при представлении, а переменные— матрицами с переменными коэффициентами, мы получим систему матричных уравнений. От каждого матричного уравнения, перемножив матрицы в левой и правой частях, перейдем к (четырем) алгебраическим уравнениям. В результате система уравнений над полугруппой заменится системой алгебраических уравнений со следующим свойством. Если взять произвольный набор слов, то он будет решением системы уравнений в словах тогда и только тогда, когда матричные элементы, даваемые указанным представлением по этим словам, образуют решение построенной системы алгебраических уравнений. Заменим теперь систему алгебраических уравнений на эквивалентную ей
ПОСЛЕСЛОВИЕ 151 конечную подсистему. Элементы этой подсистемы возникли из конечного числа исходных уравнений в словах. Это и доказывает принцип компактности для них. Однако выбор тестового множества в общем случае не может быть эффективным, хотя для семейства контекстно-свободных языков и ряда других семейств это делается эффективно (см. [СиР*], [Каг] с библиографией и [MY*]). Из гипотезы Эренфойхта вытекает разрешимость алгоритмической проблемы последовательной эквивалентности для DOL-систем и даже для HDOL-систем. (HDOL-система состоит из DOL-системы и морфизма, применяемого к слову или сверхслову после окончания работы DOL-системы; см. [Каг].) Как видно хотя бы из приведенных выше результатов, А. Саломаа действительно удалось указать «точки роста» теории формальных языков, в которых математическая глубина и ясность результатов, характерная для теорем классической математики, соседствуют с актуальностью для вычислительных наук. В заключение несколько советов читателям, которые захотят подробнее познакомиться с теорией формальных языков и родственными проблемами математической логики, теории алгоритмов и теории полугрупп по легко доступной литературе на русском языке. Мы рекомендуем им обратиться к обзору [АУ*], сборникам [СВиА*] и [ПМЛ*], монографиям Гинзбурга [G1], Лаллемана [La] и [Г]. Ориентироваться в море статей по теории формальных языков за 1969—1974 гг. могут помочь обзоры [ГД] и [МС]. Просматривая РЖ «Математика», раздел Г (до 1984 г. раздел В), отдел «Математическая лингвистика», можно быть в курсе последних достижений в этой области. Литература [Адбб] Адян С. И. Определяющие соотношения и алгоритмические проблемы для групп и полугрупп. — М.: Наука, 1966. [Ад75] Адян С. И. Проблема Бернсайда и тождества в группах. — М: Наука, 1975. [Арш] Аршон С. Е. Доказательство существования я-значных бесконечных асимметричных последовательностей. — Матем. сборник, 1937, т. 2(44), №4, с. 769—779. Г] Гладкий А. В. Формальные грамматики и языки. — М.: Наука, 1973. ГД] Гладкий А. В., Диковский А. Я. Теория формальных грамматик.— Итоги науки, сер. Теория вероятностей, 1972, т. 10, с. 107—142. [Л] Ленг С. Алгебра. — М.: Мир, 1968. [Мак] Маканин Г. С. Проблема разрешимости уравнений в свободной полугруппе. — Матем. сборник, 1977, т. 103(145), № 2(6), с. 147—236. [МС] Маслов А. Н., Стоцкий Э. Д. О некоторых классах формальных грамматик. — Итоги науки, сер. Теория вероятностей, 1975, т. 12. с. 155—187.
162 ПОСЛЕСЛОВИЕ [My] Мучник Ан. А. Применение метода Семенова к анализу структуры контекстно-свободных языков. — В кн.: Семиотические аспекты формализации интеллектуальной деятельности, — М.: ВИНИТИ, 1985, с. 212—214. [Се73] Семенов А. Л. Алгоритмические проблемы для степенных рядов и контекстно-свободных грамматик. — ДАН СССР, 1973, т. 212, № 1, с. 50—52. [Се83] Семенов А. Л. Логические теории одноместных функций на натуральном ряде. —Изв. АН СССР, 1983, т. 47, с. 623—658. [Я] Якобе К. Машинно-порожденные 0-1-последовательности: Пер. с нем.— В кн.: Машины Тьюринга и рекурсивные функции. — М.: Мир, 1972, с. 216—247. [Як] Якубович А. М. Разрешимость некоторых алгоритмических проблем в полугруппах с однозначным сокращением. — В кн.: IV Всесоюзная конференция по математической логике. Тезисы докладов. — Кишинев: Штиница, 1976, с. 161 [BEM] Bean D. R., Ehrenfeucht A., McNulty G. F. Avoidable patterns in strings of symbols. — Pacific J. Math., 1979, v. 85, No. 2, p. 261—294. [Bo] Book R. Confluent and other types of Thue systems. — J. Associat. Comput. Machinery, 1982, v. 29, p. 171—182. [Karl Karhumaki J. The Ehrenfeucht conjecture: A compactness claim for finitely generated free monoids. — Theoret. Comput. Sci., 1984, v. 29, p. 285—308. [Kos] Kosaraju S. R. Decidability of reachability in vector addition systems.—14th Symp. ACM on Theory of Computing, 1982, p. 267—281. [Lu] de Luca A. A note on the Burnside problem for semigroups. — Semigroup Forum, 1985, v. 31, No. 2. [Niv] Nivat M. Congruences parfaites et quasi-parfaites. — Seminaire Dub- reuil, 1971—72, t. 7. [Ot] Otto F. Finite complete rewriting systems for the Jantzen monoid and the Greendlinger group. — Theoret. Comput. Sci., 1984, v. 32, p. 249— 260. [Ry§] RySlinkova J. Decidability of monadic theories for finitely presented unoids. —R. A. I. R. O. Inform, theor., 1985. v. 19, No. 8. [SaSo] Salomaa A., Soittola M. Automata-theoretic aspects of formal power series. — Berlin: Springer, 1978. [StT] Stolboushkin A. P., Taitslin M. A. Deterministic dynamic logic Is strictly weaker than dynamic logic. — Information and Control, 1983, v. 57, No. 1, p. 48—55. [ThlO] Thue A. Die Losung eines Spezialfalles eines generallen logischen Problems. — Videnskapsselskapet Skrifter. 1. Mat. naturv. Klasse, Kris- tiania, 1910, No. 8. [Thl4] Thue A. Probleme uber Veranderungen von Zeichenreihen nach gege- benen Regeln. —Videnskapsselskapet Skrifter. 1. Mat. naturv. Klasse, Kristiania, 1914, No. 10. [Th77] Thue A. Selected mathematical papers. — Oslo: Universitetsforlaget, 1977.
Именной указатель Адян С. И. 22, 146, 147, 151 Аршон С. Е. 146, 151 Ахо (Aho A.) 140, 143 Бардзинь Я. М. 144 Бжозовски (Brzozowski J. A.) 138, 144 Бухер (Bucher W.) 8 Вуд (Wood D.) 8, 142—144 Гинзбург (Ginsburg S.) 140, 141, 144, 151 Гладкий А. В. 151 Губа В. С. 150 Диковский А. Я. 151 Ёнеда (Yoneda M.) 117 Карумяки (Karhumaki J.) 8, 140, 144, 150, 152 Клини (Kleene S. С.) 141 Лаллеман (Lallement G.J 141, 151 Левенштейн В. И. 143 Ленг (Lang S.) 151 Линденмайер (Lindenmayer A.) 82, 142 Линна (Linna M.) 8, 141, 142 Маканйн Г. С. 150, 151 Марков А. А. 142, 143, 147, 150 Маслов А. Н. 151 Маурер (Maurer H.) 8, 140, 142, 144 Медведев Ю. Т. 143 Минский (Minsky M.J 143 Мур (Moore E. F.) 37, 143 Мучник Ан. А. 152 Мяенпя (Maenpaa* J.) 8 Новиков П. С. 22, 146 Okawa (Okawa S.) 117 Ope (Ore О.) 143 Павленко В. А. 79, 143 Паттерсон (Patterson G.) 143 Пост (Post E.) 142, 147 Рабин (Rabin M. О.) 37, 143 Райе (Rice H.) 141 Розенберг (Rozenberg G.J 8, 141, 142, 144 Руохонен (Ruohonen К.) 8, 142 Саломаа (Salomaa A.J 5, 140, 142-145, 148, 151, 162 Сардинас (Sardinas A.) 143 Семенов А. Л. 144, 152 Скотт (Scott D.) 37, 143 Стоцкий Э. Д. 151 Трахтенброт Б. А. 144 Туэ (Thue A.) 5, 13, 143, 145, 147, 152 Ульман (Ullman J.) 140, 141, 143 Успенский В. А. 144 Харари (Нагагу F.) 144 Хиросэ (Hirose S.) 117 Хомский (Chomsky M.) 140, 148 Хопкрофт (Hopcroft J.) 140, 141 Чулик (Culik К. И) 8, 140, 141, 144 Шютценберже (Schutzenberger М. Р.) 138, 140, 142 Якобе (Jacobs К.) 152 Якубович А. М. 152
154 ИМЕННОЙ УКАЗАТЕЛЬ Bean D. R. 152 Berstel J. 140 Book R. 140, 144, 152 Eranderburg F.-J. 140 Cremers A. 140, 144 bejean F. 140, 141 fchrenfeucht A. 141, 144, 152 Eilenberg S. 141 Engelfriet J. 141 Fris I. 140 Goldstin J. 144 Greibach S. 141 «all M., Jr. 141 Harji T. 144 Harrison M. 144 Hashiguchi K. 141 Head T. 144 Hediund G. 142 Kleijn H. 144 Kosaraju S. R. Lecerf Y. 141 de Luca A. 152 tyrido'n E. 142 152 Mandel A. 142 Maon Y. 144 McLean D. 142 McNaughton R. 142 McNulty G. F. 152 Morisaki M. 142 Morse M. 142 Nielsen M. 142 Nivat M. 142, 152 Ottmann Th. 144 Otto F. 152 Pachl J. K. 144 Papert S. 142 Pentonnen M. 144 Ryslinkova J. 152 Sakai K. 142 Soittola M. 143, 152 Shamir E. 143 Stanat D. 143 Spanier E. H. 144 Stolboushkin A. P. 152 Taitslin M. A. 152 Wilkinson J. 144 Yehudai A. 144
Предметный указатель Автомат детерминированный 29 — конечный 24, 148 — недетерминированный 31 — перестановочный 58 — самоприменимый 76 Автомата входы 31 — итерат 47, 48 — состояние 31 Аксиомы 28 Алфавит 9 АСЯ 134, 149 Бернсайда проблема 22, 145, 146 Бесквадратное слово 11 Бескубное слово 11 — сильно слово 11 Буквы (символы) 9 Вершины графа (орграфа) 24, 128 — заключительные 24 — начальные 24 Вес регулярного языка 36 Входные сигналы 31 Выводимости отношение 27 Грамматика 28 — «главная» 118 — контекстно-свободно-полная 120 — линейная 94 — полная 120 — регулярно-достаточная 120 — регулярно-полная 120 — с самовставлением 122 — сплит-линейная 136 — типа (0, 1, 2, 3) 28 Грамматики а-ограничение 122 — образ морфический 119 инверсный 119 Грамматики эквивалентные по семействам 120 Грамматическое семейство 118, 120 аддитивно простое 136 простое 136 ■ собственное 136 Грамматических семейств пара плотная 124 Граф 24, 128 — неориентированный 128 — ориентированный см. Орграф — раскрашиваемый 128 Графа приведенный вариант 130 Грейбах нормальная форма 100 Дика отображение 103 — язык 103 «с инициалами» 104, 115 DOL-система 10 — локально-катенативная 23 DOL-эквивалентности проблема 81 DOL-язык 10 Дополнение языка 32 Единственного продолжения свойство 71 Заключительно периодическое множество 41 Звездная высота 39 регулярного выражения 39 языка 40 Зеркальный образ слова 91 Инверсия морфизма 97 Интерпретация грамматики 121 — графа 128 — орграфа 128 — слова 12 История развития 96 Итерат 47, 48 Итерационное число слова 49 Катенативное замыкание языка 33 Катенация 9 — слов 9 — языков 9 Клини теорема 24, 35, 138, 149
156 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Код 60 — бипрефиксный 68 — максимальный 65 — префиксный 68 *— с ограниченной задержкой 68 — суффиксный 68 Кодов композиция 69 Кодовый индикатор 65 Комбинаторика слов 147 Компиляции теория 138 Конечная подстановка 81 Конечной подстановки инверсия 81 — степени свойство (СКС) 46 Корень слова примитивный 21 — языка 58 минимальный 58 «Лемма о накачке» 37, 146 Логика динамическая 146 Линии (графа) 128 Лукасевича язык 116 L-система 82 Маркова нормальный алгоритм 76 Многочлен 136 — минимальный 136 Множество ЕШ(ш) 50 — PAIRS (ay) 52 — START (w) 50 — WORST (ш) 52 Морфизм 10 — атомарный 74 — инверсный 97 — нестирающий 11 — периодический 79 — сохраняющий бесквадратность 21 — ^прощаемый 74 — элементарный 74 Неразрешимая проблема 80 Нетерминал 28 Нормальная форма Грейбах 100 Хамского 100 Обращение морфизма 97 Ограниченный баланс 71 OL-система 81 OL-язык 81 Орграф 24 — размеченный 24 Отношение выводимости 27 — эквивалентности, индуцируемое языком 37 Подграмматика 119 Подслово 10 Подстановки правило 27 Подстановок система 27 ПолуАСЯ 134 — полное 136 главное 136 Полугруппа идемпотентная 22 — нильпотентная 22 Полугруппы нуль 22 Порядок регулярного языка 46 — слова 52 Последователь 124, 133 Поста проблема соответствия 76 — тезис 109 Представление языка конечным автоматом 25 Представляющее число регулярного языка 37 Предшественник 124 Префикс 10 Приписывание 9 Проблема включения 80 — конечности 80 — остановки 76 — принадлежности 80 — пустоты 80 — самоприменимости 76, 77 — СКС 47 — эквивалентности последователь- ностной 83 языковой 80, 82 Продукция 27 Произведение языков 33 Разрешимая проблема 80 Разрешимости проблемы 80 Рациональная операция 33 Рациональный язык 33 Регулярная операция 33 Регулярное выражение 33 звездно-свободное 58 обобщенное 58 Регулярные множества 148 Сверхслово (ш-слово) 10, 146, 147 Свойство единственного продолжения 71 — конечной степени (СКС) 46 Семейство языков 118 грамматическое 118, 120 полное абстрактное 134 Сентенциальная форма грамматики 90 Символы 9 — начальные 28
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 157 — нетерминальные 28 — терминальные 28 Слова длина 9 — конец 10 — начало 10 — образ зеркальный 91 — сокращение 58 Слово 9 — без перекрытий 18, 19 — бесквадратное 11 — бескубное 11 сильно 11 — блокирующее 145 — пустое 9 — свободное от перекрытий 18, 19 Сложности формальных языков теория 138 Совпадения множество 70 пустое 71 — язык 70 Стрелки 24, 128 Схемы грамматик (грамматические формы) 121 Тезис Поста 109 — Черна 109 Теорема о супернормальной форме 115 — простого разложения 136 Терминал 28 Туэ исчисление 147 — проблема (задача) 11, 145 Тьюринга машина 76 Уравнение в словах 149 Фактормоноид инволютивный 116 Хомского иерархия 28, 138 — нормальная форма 100 Хомского-Шютценберже теорема 115 Цветосемейств иерархия 131 Цветосемейство 128 Черна — Россера свойство 147, 148 теорема 148 — тезис 109 Шютценберже критерий 61 Элементарный морфизм 74 Эренфойхта гипотеза 150, 151 Язык 10 — атомарный 33 — графоподобный 130 — DOL 10 — звездный 58 — катенативно-независимый 61 — когерентный 125 — коммутативный 131 — контекстно-свободный 28 — контекстный 28 — локальный 96 — Лукасевина 116 -?- несчитающий 58 — OL 81 —• перетасовки двойников 113 — порождаемый грамматикой 28 — праволинейный 28 — представимый конечным автоматом 26 матрично 26 — регулярный 33 — рекурсивно перечислимый 28 — совпадения 70, 117 — типа (0, 1, 2, 3) 28 со-слово 10. См. также Сверхслово
Оглавление Предисловие редактора перевода 5 Предисловие 7 1. Повторения 1.1. Слова и языки 9 1.2. Проблема Туэ 11 1.3. Решение проблемы сильной бескубности 13 1.4. Решение проблемы бесквадратности 16 1.5. Перекрытие 18 1.6. DOL-системы и со-слова 20 Упражнения 21 2. Регулярность; характеризации 2.1. Представимость 24 2.2. Конечные детерминированные автоматы 29 2.3. Регулярные выражения 32 2.4. Теорема Клини 35 Упражнения 36 3. Регулярность; интересные проблемы 3.1. Звездная высота 39 3.2. Свойство конечной степени 46 Упражнения 58 4. Коды и множества совпадения 4.1. Основные свойства кодов 59 4.2. Максимальные коды 65 4.3. Коды с ограниченной задержкой 67 4.4. Множества совпадения и их регулярность 70 4.5. Элементарные морфизмы 74 4.6. Проблема соответствия Поста 76 Упражнения 77 5. Разрешимость и неразрешимость 5.1. OL-системы 80 5.2. Проблемы эквивалентности для DOL-систем 83 5.3. Результаты о неразрешимости 90 Упражнения 94
ОГЛАВЛЕНИЕ т 6. Представления посредством морфизмов 6.1. Локальные и регулярные языки .97 6.2. Морфический генератор для контекстно-свободных языков . . 99 6.3. Порождение морфизмами рекурсивно перечислимых языков . . 109 Упражнения 115 7. Семейства языков 7.1. Регулярные языки как грамматическое семейство . . . .118 7.2 Плотная иерархия грамматических семейств 124 7.3. Раскраски и семейства графов 128 Упражнения 134 Исторические и библиографические замечания . 138 Литература 140 Дополнительная литература 143 Послесловие. А. А. Мучник, А. Л. Семенов 145 Именной указатель 153 Предметный указатель . , , ♦ 155
Арто Саломаа ЖЕМЧУЖИНЫ ТЕОРИИ ФОРМАЛЬНЫХ ЯЗЫКОВ Ст. научи, ред. Г. М. Ильичева Мл. научи, ред. Л. А. Королева Художник Г. М. Чеховский Художественный редактор В. И. Шаповалов Технический редактор Е. С. Потапенкова Корректор В. С. Соколов ИБ № 1/4063 Сдано в набор 19.03.85. Подписано к печати 15.11.85. Формат 60X907i* Бумага типографская № 2. Печать высокая. Гарнитура литературная. Объем 5,00 бум. л. Усл. печ. л* 10,00. Уел кр.-отт. 10,25. Уч.-нзд. л. 9,60 Над. № 1/3949. Тираж 12 000 экз. Зак. 576. Цена 70 коп. ИЗДАТЕЛЬСТВО «Мир» 129820» ГСП, Москва, И-ПО, 1-й Рижский пер., 2 Ленинградская типография № 2 головное предприятие ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгении Соколовой Союзполиграф« брома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли. 198052, г. Ленин* град» Л-52, Измайловский проспект, 29.
А.Саломаа Жемчужины теории формальных языков Издательство «Мир
Арто Саломаа — ученый с мировым именем, крупнейший специалист по теории формальных грамматик и языков, а также по теории сложности, теории языков программирования и компиляции. Он — презилент Европейском ассоциации вычислительных наук, член Финской академии наук, профессор Университета в Турку, автор нескольких монографий и сотен статей. 70 коп. ■ Цель настоящей книги — кратко изложить некоторые красивые результаты теории формальных языков в форме, доступной для читателя без какой-либо (предварительной подготовки. Мне хотелось решить две задачи: (i) написать введение в теорию для новичков и (ii) включить в него побольше материала, отражающего современные исследования. Я надеюсь, что в соответствии с первой задачей книга может служить основой небольшого курса лекций, а в соответствии со второй представлять интерес для специалистов. Из предисловия автора