Книга
Книга
ОТ РЕДАКТОРА ПЕРЕВОДА
Наряду с широко известной теперь и достаточно полно исследованной задачей построения машин или программ, обучающихся расйознаванию образов, в последние годы все большее значение придается задаче структурного описания изображений. Когда говорят о распознавании образов, то имеют в виду, что каждому объекту, например изображению, поставлена в соответствие точка в некотором пространстве. Класс похожих объектов, образов, представляется тогда компактным множеством таких точек, $ задача состоит в построении детерминистского или вероятностного решающего правила, относящего вновь появляющиеся точки к тому или иному образу.
Иначе обстоит дело в ситуации, когда цель заключается В построении сжатого описания одного изображения или класса изображений — образа. Подобного рода задачи возникают во многих случаях, когда сведения об изображениях должны быть компактно закодированы и переданы по нагруженным каналам связи для воспроизведения основных структурных характеристик Изображения, а не его деталей. Задача описания изображений, хотя и отличается от задачи распознавания образов, тесно с ней связана. Действительно, если можно заменить каждый объект его описанием, то элементы этого описания могут быть использованы как признаки объекта, а само описание — как фундамент построения пространства, в котором удобно решать задачи распознавания. С другой стороны, при построении описания изображения возникает задача: анализируя фрагменты изображения, выработать словарь тех терминов, в которых удобно строить описание. Эта задача может быть решена при помощи методов распознавания образов.
Несмотря на то что задачи распознавания образов и задачи их описания столь тесно связаны по своей природе, по знаниям и навыкам, которыми необходимо владеть, по аппарату, который требуется для экспериментальных исследований, и во многих Других отношениях, они тем не менее существенно отличаются Друг от друга. Распознавание образов — это прежде всего экстраполяция. Фундаментом для ее решения служат обычные методы экстраполяции функций, и именно поэтому данная задача легко вошла в обычный арсенал прикладной и вычислительной математики.
Совершенно иначе обстоит дело с близкой к распознаванию образов задачей описания изображений. Ее основным аппаратом служит аппарат математической лингвистики, т. е. теория формальных грамматик — область математики, значительно менее привычная широкому кругу специалистов по прикладной и вычислительной математике. В то же время использование аппарата математической лингвистики для описания структуры изображений возможно только после того, как произведена сегментация изображения на основные части, выработаны «слова» для описания типичных фрагментов и выработаны методы их поиска. Вся эта предварительная работа требует своей техники и овладения специальными рабочими приемами и методами. Лишь после того, как она выполнена, возникают собственно лингвистические задачи. Эти задачи в свою очередь делятся на задачи синтеза грамматик и грамматических описаний, а также задачи автоматического грамматического разбора описаний для идентификации изображения. Так возникла самостоятельная область исследований, которая требует не только знания основ собственно математической лингвистики, но и владения рядом приемов, которые разработаны специально для лингвистической обработки изображений. В этой связи упомянем прежде всего грамматики на графах — область математической лингвистики, которая возникла именно в задачах описания изображений, а также стохастические грамматики, которые, хотя и могут быть рассмотрены с общелингвистических позиций, в значительной мере были порождены задачами обработки изображений.
Предлагаемая вниманию читателей книга известного американского ученого К С. Фу — одна из первых в мировой литературе монографий, специально посвященных этому кругу вопросов. Несмотря на то что некоторая сухость и сжатость изложения требуют от читателя-новичка в этой области известного напряжения, книга, безусловно, полезна для всех, кто интересуется этой новой и по своему увлекательной областью. Проблемы предварительной обработки изображений в книге лишь кратко перечислены. Им посвящена гл. 1. В следующих трех главах излагаются применительно к задачам описания образов основы математической лингвистики и приемы ее использования. В остальных главах рассмотрены очень слабо освещенные в отечественной литературе вопросы стохастического подхода к проблемам структурного описания и распознавания образов, а также вопросы построения алгоритмов восстановления грамматик.
Книга, безусловно, окажется полезной для широкого сейчас круга математиков-прикладников и инженеров.
М. А. Айзерман
ПРЕДИСЛОВИЕ
В течение последних 15 лет значительно возрос интерес к проблемам распознавания образов. В связи с этим возникла необходимость совершенствования методов и средств разработки распознающих систем. Развитию этой области исследований способствовали многие другие дисциплины, такие, как статистика, психология, лингвистика, вычислительная математика, биология, таксономия, теория релейных систем, теория передачи информации, теория управления, исследование операций. К настоящему времени предложено немало подходов к распознаванию и опубликовано много соответствующих книг. Большинство этих книг посвящено так называемому подходу с позиций теории решений, или дискриминантному подходу. Совсем недавно, возможно, под влиянием проблем распознавания изображений и анализа сцен появился синтаксический, или структурный, подход. Уже некоторые первые результаты применения этого подхода оказались весьма многообещающими. Эта книга посвящена применению синтаксического подхода к проблемам распознавания. Она задумана как справочник для инженеров, разрабатывающих распознающие системы, и программистов, а также как учебное пособие по распознаванию образов. Материал изложен достаточно сжато. Кроме того, в книгу включены необходимые сведения о формальных языках и синтаксическом анализе.
Выдвигая на передний план структурное описание образов, синтаксический подход призван провести аналогию между структурой образов и синтаксисом языка. Такая аналогия привлекательна прежде всего благодаря возможности использовать аппарат математической лингвистики, поскольку лингвистические методы по своей природе являются синтаксическими. Однако синтаксический подход, без сомнения, содержит и нелингвистические методы, хотя эта монография в основном носит лингвистический характер. Подход с позиций теории решений и синтаксический подход отличаются друг от друга тем, что для описания или моделирования образов в первом пользуются вероятностными распределениями реализаций образа, а во втором — синтаксическими правилами, или грамматиками. Эффективность каждого из них зависит от конкретной задачи. Часто возникает необходимость в одновременном применении того и другого подхода. В действительности иногда довольно трудно четко разграничить синтаксические и несинтаксические системы распознавания.
Содержание книги можно разбить на три части. Первая часть посвящена применению к распознаванию образов формальных языков и их обобщений на многомерный случай, вторая — синтаксическому распознаванию при помощи стохастических языков, а третья — процедурам восстановления грамматики, которые трактуются как обучение синтаксическому распознаванию. В первой главе дано введение в синтаксический подход к распознаванию образов и кратко описаны некоторые методы предварительной обработки и сегментации. Введение в формальные языки и описание соотношений между языками и автоматами (акцепторами языка) дано в гл. 2. В третьей главе изложены различные методы описания образов, основанные на применении как цепочечных языков, так и обобщений этих языков на многомерный случай. В гл. 4 описан синтаксический анализ и его применение в процедурах распознавания образов. Пятая глава представляет собой обзор полученных результатов по стохастическим языкам и стохастическому синтаксическому анализу. В гл. 6 приведены примеры применения стохастических языков к синтаксическому распознаванию образов. В гл. 7 дан обзор методов восстановления грамматик и описаны некоторые первые применения этих методов к синтаксическому распознаванию образов. В приложениях А — И даны примеры синтаксического подхода.
Благодарности
С большим удовольствием автор выражает благодарность ряду лиц, оказавших ему поддержку: докторам М. Е. Ван-Валькен- бургу, Л. А. Заде, Е. С. Каху, Дж. К. Хэнкоку, К. Л. Коатсу мл., а также г-ну Е. Шуцману. Некоторые материалы монографии вошли в курс, читавшийся автором в Университете Пардью, в Калифорнийском университете в Беркли и в Стэнфордском университете. Автор в большом долгу у своих коллег и у студентов этих университетов, которые в ходе многих дискуссий, проводившихся не только в рабочее время и в часы занятий, но и в часы досуга, оказали помощь в подготовке рукописи. Обсуждение синтаксического распознавания образов с А. Розенфельдом, Р. X. Андерсоном и Т. Павлидисом было всегда полезным и плодотворным. Автор благодарит Национальный научный фонд и Управление вооруженных сил по научным исследованиям за весьма существенную материальную поддержку работы по распознаванию образов. Основная часть рукописи была завершена во время годичного научного отпуска (1972) в Стэнфордском университете и в Кэлифорнийском университете в Беркли по субсидии Обще- ствэ пэмяти Джонэ Сэймонэ Гуггенхеймэ. Автор многим обязэн этому Обществу. Нэконец, эвтор благодэрит мисс К. Мейпс и мисс Т. Браун за быструю и аккуратную перепечатку рукописи.
К. С. Фу
Глава 1
Введение
Синтаксический (структурный) подход к распознаванию образов
Большинство различных математических методов решения задач распознавания образов распадается на две группы, одну из которых можно трактовать с позиций теории решений (дискриминантный подход), а другую — в рамках синтаксического (или структурного) подхода. В первом подходе объекты т) характеризуются наборами чисел — результатов некоторого множества измерений, характеризующих объекты, называемые признаками. Распознавание образов (отнесение каждого объекта к некоторому классу) обычно проводят при помощи разбиения пространства признаков на области [1]. Развитие исследований по распознаванию образов за последнее десятилетие было большей частью связано с дискриминантным подходом и его применениями [1 —11].
В этой книге изучаются задачи распознавания образов, в которых важна информация, описывающая структуру каждого объекта, а от процедуры распознавания требуется, чтобы она давала возможность не только отнести объект к определенному классу (классифицировать его), но и описать те стороны объекта, которые исключают его отнесение к другому классу. Типичным примером таких задач служит распознавание изображений или, говоря шире, анализ сцен. Рассматриваемые в этом классе задач объекты обычно сложны, и число требуемых признаков часто велико. Это делает привлекательной идею описания сложного объекта в виде иерархической структуры более простых подобразов.
Пример 1.1. Изображения на рис. 1.1 можно описать иерархическими структурами, показанными на рис. 1.2.
Когда объекты сложны и число возможных описаний великот неудобно считать, что каждое описание определяет класс. Так обстоит дело, например, в задачах идентификации портретов, отпечатков пальцев, при распознавании слитной речи или китай-
*) В оригинале «patterns» Это слово в тексте книги используется в двояком смысле С одной стороны, это объект распознавания, а с другой — это некоторый «идеальный» представитель класса объектов — образ, который в ряде случаев может быть описан некоторой абстрактной структурой. В дальнейшем слово pattern переводится в зависимости от контекста словами «объект» И «образ».— Прим перев.
ских иероглифов. В таких случаях распознавание может быть лроведено лишь с использованием описания каждого объекта, а не просто с помощью классификации.
Для того чтобы представлять иерархическую (древовидную) структурную информацию, содержащуюся в каждом образе,
Рис. 1.1. Изображения для примера 1.1: (а) — сцена А; (б) — изображение F.Рис. 1.1. Изображения для примера 1.1: (а) — сцена А; (б) — изображение F.
Рис. 1.1. Изображения для примера 1.1: (а) — сцена А; (б) — изображение F.
Рис. 1.1. Изображения для примера 1.1: (а) — сцена А; (б) — изображение F.
Сцена АСцена А(Подобразы)(Подобразы)Предметы] Предметы! Пол М Стена N (Подобразы)Предметы] Предметы! Пол М Стена N (Подобразы)(6)(6)Рис. 1.2. Иерархическое структурное описание сцены А (а) и изображения F (б).Рис. 1.2. Иерархическое структурное описание сцены А (а) и изображения F (б).
Сцена А
Сцена А
(Подобразы)
(Подобразы)
Предметы] Предметы! Пол М Стена N (Подобразы)
Предметы] Предметы! Пол М Стена N (Подобразы)
(6)
(6)
Рис. 1.2. Иерархическое структурное описание сцены А (а) и изображения F (б).
Рис. 1.2. Иерархическое структурное описание сцены А (а) и изображения F (б).
т. е. описывать образ при помощи более простых подобразов, а каждый подобраз снова описывать еще более простыми подобразами и т. д., был предложен синтаксический, или структурный, подход [И —16]. Этот подход основан на аналогии между структурой образов (иерархической или древовидной) и синтаксисом языков. В рамках синтаксического подхода считается, что образы строятся из соединенных различными способами подобразов, так же как фразы и предложения строятся путем соединения слов, а слова составляются из букв. Очевидно, что такой подход полезен только в том случае, когда распознавать выбранные простейшие подобразы, называемые непроизводными элементами, легче, чем сами образы. «Язык», который обеспечивает структурное описание образов в терминах множества непроизводных элементов и операций композиции этих элементов, иногда называют «языком описания образов». Правила композиции непроизводных элементов обычно задают при помощи так называемой грамматики языка описания образов. Процесс распознавания осуществляется
Лицевая Треуголь- Лицевая Лицевая Лицевая (Подобразы) часть] "ник Т частью частьЧ часть!
после идентификации в объекте непроизводных элементов и составления описания объекта. Распознавание состоит в синтаксическом анализе, или грамматическом разборе, «предложения», описывающего данный объект. Эта процедура устанавливает, является ли это предложение синтаксически (или грамматически) правильным по отношению к заданной грамматике. Параллельно синтаксический анализ дает некоторое структурное описание предложения (обычно в виде древовидной структуры).
Синтаксический подход к распознаванию образов дает возможность описывать большое множество сложных объектов путем использования небольшого множества непроизводных элементов и грамматических правил. Как будет видно в дальнейшем изложении, одним из наиболее привлекательных аспектов этой возможности является использование рекурсивной природы грамматик.
а а а
d'vb
^ I- I-с с С
Рис. 1.3. Прямоугольник и его непроизводные элементы.
Грамматическое правило (правило подстановки) может быть применено любое число раз, так что оказывается возможным очень компактно выразить некоторые основные структурные характеристики бесконечного множества предложений. Практическая полезность такого подхода зависит, конечно, от способности распознавать непроизводные элементы образов и их взаимные отношения, выраженные операциями композиции.
Различные отношения, определенные между подобразами, или операции композиции, обычно могут быть выражены логическими и (или) математическими операциями. Если, например, в качестве единственного отношения (операции композиции) для описания образов выбрать «конкатенацию»1), то при непроизводных элементах, показанных на рис. 1.3, а, прямоугольник, изображенный на рис. 1.3, б, будет представлен цепочкой aaabbcccdd. Точнее, если использовать знак плюс для обозначения операции «конкатенация начала одного элемента к концу другого», то прямоугольник на рис. 1.3, б будет представлен предложением а + а + -Va-\-b-Vb-Vc-Vc-Vc-\-d-Vd. Древовидная структура этого предложения показана на рис. 1.4, а. На рис. 1.4, б показан
х) Конкатенацией элементов а и Ъ называется составленная из них Цепочка ab. —Прим, перев.
Прямоугольник
(о)
а
а
Рис. 1.4. (я) — структурное описание прямоугольника, изображенного на рис. 1.3, б; (б) — изображение цифры 9 и его структурное описание.
аналогичный, но более сложный пример — с использованием непроизводных элементов, приведенных на рис. 1.3, а.
Другим представлением структурной информации образа служит «граф отношений». В качестве цримера на рис. 1.5 показан граф отношений изображения F на рис. 1.1, б. Поскольку между помеченными графами и матрицами существует взаимно однозначное соответствие, граф отношений может также быть выражен
через «матрицу отношений». Путем использования графа отношений для описания образа можно расширить класс допустимых отношений, включив в него любое отношение, которое удобно определяется из образа. Заметим, во-первых, что конкатенация — единственная естественная операция для одномерных языков и, во-вторых, что граф, вообще говоря, содержит циклы, тогда как дерево их не содержит. Поэтому при помощи графа можно выражать более богатые описания, чем с помощью древовидных структур. Однако использование древовидных структур позволяет непосредственно приспособить методы теории формальных языков к задаче компактного представления и анализа образов, имеющих существенное структурное содержание. Синтаксический подход иногда называют лингвистическим из-за того, что в нем используются методы теории формальных языков. Тем не менее, по-видимому, лучше считать, что методы теории формальных языков являются аппаратом синтаксического подхода, а не его существом. Поэтому разработку эффективных структурных описаний и анализа образов не следует ограничивать развитием математической лингвистики.
1.2. Система синтаксического распознавания образов
Систему синтаксического распознавания образов можно считать состоящей из трех основных частей, а именно из блока цредобработки, блока описания или представления объекта и бло-
Рис. 1.6, Блок-схема системы синтаксического распознавания образов.
ка'синтаксического анализа т). Блок-схема такой системы изображена на рис. 1.6. Блок предобработки осуществляет, во-первых, функции кодирования и аппроксимации и, во-вторых, функции
*) Разделение на три блока — это скорее вопрос удобства, чем необходимости. Обычно термин «синтаксическое распознавание образов» имеет Отношение в основном к представлению (или описанию) объектов и к синтаксическому анализу.
фильтрации, восстановления и улучшения объекта. Исходный объект сначала кодируется или аппроксимируется так, чтобы это было удобно для дальнейшей обработки. Черно-белое изображение, например, можно кодировать при помощи решетки (или матрицы), состоящей из нулей и единиц, а кривую можно аппроксимировать отсчетами в дискретные моменты времени или конечным набором коэффициентов разложения этой кривой в ряд Фурье. Чтобы сделать обработку в последующих блоках системы более эффективной, в этом блоке часто применяют какой-нибудь способ «сжатия данных». Затем используют методы фильтрации, восстановления и (или) улучшения для ликвидации шума, восстановления искажений и (или) улучшения качества закодированных (или аппроксимированных) объектов. Обычно предполагают, что на выходе предпроцессора имеются объекты относительно «хорошего качества». Каждый подвергнутый предобработке объект затем представляют в виде структуры языкового типа (например, цепочки). Этот процесс представления объекта состоит, во-первых, из сегментации и, во-вторых, из выделения непроизводных элементов (признаков). Чтобы представить объект через его подобразы, нужно этот объект сегментировать и в то же время идентифицировать (или выделить) в нем непроизводные элементы. Другими словами, каждый подвергнутый предобработке объект разделяется на части и непроизводные элементы на основе заранее заданных синтаксических операций (или операций композиции). Каждая выделенная часть в свою очередь идентифицируется относительно заданного множества непроизводных элементов. На этой стадии каждый объект получает свое представление через множество непроизводных элементов и определенные синтаксические операции г). Например, если задана операция конкатенации, то каждый объект представляется цепочкой примыкающих непроизводных элементов. Решение о том, является ли представление объекта синтаксически правильным (т. е. принадлежит ли он к классу образов, описываемых данным синтаксисом или данной грамматикой), принимается «блоком синтаксического анализа» или «блоком грамматического разбора». По ходу синтаксического анализа или грамматического разбора этот блок обычно может давать полное синтаксическое описание объекта в терминах грамматических единиц или дерева грамматического разбора, если представление объекта синтаксически правильно. В противном ‘ случае объект либо исключают из рассмотрения, либо анализируют на основе других заданных грамматик, которые, быть может, описывают другие возможные классы рассматриваемых образов.
х) Более сложные системы должны обладать способностью обнаруживать синтаксические отношения внутри объекта.
Умозрительно простейшей формой распознавания является, по-видимому, «сравнение с эталоном». Цепочка непроизводных элементов, представляющая исходный объект, сравнивается с цепочками непроизводных элементов, представляющих каждый эталонный образ. Из этих образов выбирается тот, который наиболее «согласован» или «близок» к исходному объекту в соответствии с некоторым заданным критерием. При этом иерархическая структурная информация игнорируется. С другой стороны, при полном грамматическом разборе цепочки, представляющей исходный объект, исследуется полное структурное описание. Между этими крайностями существует ряд промежуточных подходов. Например, могут быть сконструированы последовательности тестов для проверки наличия определенных подобразов либо определенных комбинаций подобразов (или непроизводных элементов). Результаты тестов (полученные, например, с помощью просмотра таблицы, дерева решений или логических операций) используются для классификации. Каждый тест может быть схемой сравнения с эталоном или грамматическим разбором поддерева, представляющего подобраз. Выбор подхода зависит от задачи. Если для распознавания требуется полное описание объекта, то необходим грамматический разбор. В противном случае можно обойтись без полного грамматического разбора и для увеличения эффективности использовать более простые подходы.
Для того чтобы получить грамматику, описывающую структурную информацию класса образов, необходимо устройство вывода грамматики, позволяющее восстановить ее по заданному множеству объектов в виде, подобном языковому ^ Функции этого устройства аналогичны процессу «обучения» в дискриминантных системах распознавания образов [1—11, 17—20]. В результате обучения на примерах объектов рассматриваемого класса формируется структурное описание этого класса. Затем полученное в виде грамматики описание используется для описания образов и синтаксического анализа (см. рис. 1.6). По-видимому, для нахождения наилучшего множества непроизводных элементов и соответствующего структурного описания класса рассматриваемых образов необходимо обучение более общего вида.
В следующих главах после краткого введения в формальные языки (гл. 2) подробно обсуждены задачи структурного описания образов (гл. 3), синтаксический анализ (гл. 4) и восстановление грамматики (гл. 7). Общей для дискриминантного и синтаксического подходов задаче предобработки, которая часто рассматривается как самостоятельная, посвящается лишь небольшой обзор в разд. 1.3. Различные методы сегментации кратко изложе ны в разд. 1.4.
х) В настоящее время это выполняется в основном исследователем.
Методы предобработки А)
Кодирование и аппроксимация
Для обработки на цифровых вычислительных машинах (ЦВМ) объекты сначала переводят в цифровую форму (задают функциями времени или положения в пространстве), а затем представляют в более компактном виде (сжатие данных) с использованием схем кодирования или аппроксимации. Рассмотрим в качестве объекта одномерную (например, кривая) или двумерную (например, изображение) функцию. Ниже приведены теоремы, из которых следует, что данная функция может быть точно восстановлена по ее значениям на конечном множестве отсчетных точек.
Теорема 1.1. Пусть преобразование Фурье функции / (£) равно нулю вне интервала —W ^ со ^ W. Тогда / (£) может быть точно восстановлена по ее значениям, взятым на расстоянии, не большем, чем (1/2) W, друг от друга.
Теорема 1.2. Пусть преобразование Фурье функции / (ж, у) равно нулю вне ограниченной области В частотной плоскости. Пусть далее (а, 6) и (с, d) — такие точки, что для любых двух пар целых чисел (т, п) и (р, q) множества, получаемые путем сдвига В на величины (т (а + с)), (п (6 + ф) и (р (а + с)), (д (6 + ОД соответственно не имеют общих точек. Пусть также (s, t) и (и, и) таковы, что as + bt = си 4* dv = 2л, аи + bv = cs + dt = 0. Тогда функция f (х, у) может быть точно восстановлена по ее значениям в отсчетных точках Qis + ku, ht + ku), где h и k — целые числа.
На практике обычно преобразование Фурье функции вне интервала (—W, W) или вне области В только близко к нулю. Поэтому в результате восстановления функции по отсчетам будет получена лишь ее аппроксимация. В других методах дискретизации анализируемую функцию интерполируют между отсчетными точками, используя простые типы функций (например, постоянную, линейную или полиномы более высоких порядков).
Другим видом аппроксимации является квантование ). В этом случае действительное значение функции аппроксимируется с использованием конечного множества значений, называемых уровнями квантования. Как и в дискретизации, проще всего использовать равномерно расположенные уровни квантования.
Однако иногда неравномерно расположенные уровни предпочтительнее. Предположим, например, что на изображении уровни яркости в определенном диапазоне встречаются чаще, чем в других диапазонах. В этом случае может оказаться удобным использовать уровни квантования, расположенные в этом диапазоне плотнее, чем в других. В результате увеличится средняя точность квантования без увеличения числа используемых уровней. Точки отсчета или уровни квантования не обязательно должны быть заданы заранее. Их выбор может зависеть от природы аппроксимируемых объектов. В этом случае, конечно, потребуется более сложная схема дискретизации или квантования.
После дискретизации и квантования объекта уровень квантования в каждой точке отсчета кодируют. Пусть т — число возможных уровней квантования. Тогда для представления любого заданного уровня необходимо по крайней мере log2 т битов информации. Если вероятность появления каждого из возможных уровней известна заранее, то можно построить более эффективный код, снизив среднее число битов на один уровень. Основная идея построения таких кодов состоит в том, чтобы использовать короткие коды для наиболее часто встречающихся уровней квантования. Однако этот этап обработки относится к области теории информации и кодирования и поэтому выходит за рамки книги.
Фильтрация, восстановление и улучшение
Для того чтобы «отфильтровать» объект с целью обнаружения в нем заданной конфигурации (сравнение с эталоном) или «восстановить» первоначальный объект, который был испорчен в результате аппроксимации или выполнения других операций подобного рода, а также для повышения качества посредством «сглаживания» или, наоборот, «повышения контраста» можно использовать операции, инвариантные к времени и к изменению положения (т. е. инвариантные к сдвигу). Такие операции могут быть реализованы не только на современных вычислительных машина^, но и на специализированных электронно-оптических устройствах. Пусть ^ — множество функций, каждая из которых задает объект, а Т — операция переноса (сдвига) во времени или в пространстве, определенная на JF. Операция ф называется инвариантной по отношению к изменению момента времени (или к изменению положения в пространстве), если она коммутирует с любой операцией Т во времени (или в пространстве). Иными словами,
ф (Г (/)) = Т (ф (/)) (1.1)
для всех / ^ jF. Такие операции обладают тем свойством, что их действие на значение функции в любой данный момент времени
или в любой точке пространства не зависит от этого момента и от положения этой точки. К этой категории относятся операции сдвига, точечные операции (ср (/) в точке зависит только от значения функции / в этой точке) и локальные операции ) (ср (/) в точке зависит только от значений функции / в некотором интервале или окрестности этой точки). Типичными примерами линейных операций, инвариантных по отношению к изменению момента времени или положения, служат одномерное или двумерное преобразование Фурье, преобразование Адамара, функция рассеивания, передаточная функция. Вторичное применение преобразования Адамара к изображению, уже подвергшемуся этому же преобразованию, дает исходное изображение, а в результате вторичного применения преобразования Фурье будет получено повернутое исходное изображение.
В двумерном непрерывном случае результат операции ср (/) можно представить в виде свертки двух функций / и ^
Ф (/(ж, !/))= j ^ g.f(x—u, y — v)f(u, v)dudv = f*g<f. (1.2)
Функция £ф называется импульсной функцией рассеивания операции ф. Ее можно интерпретировать как результат применения операции ф к так называемой одноточечной функции /, отличной от нуля только в одной точке. При этом преобразованная функция будет иметь ненулевое значение не в одной точке, а в целой области (ненулевое значение рассеивается или размазывается по некоторой области). Заметим, что в одномерном случае импульсная функция рассеивания соответствует импульсной реакции. Вместо одноточечной функции, отличной от нуля в одной точке, было предложено рассматривать функцию, равную единице в точках прямой линии и нулю во всех остальных точках. Результат применения операции ф к такой функции называется функцией рассеивания линии. Можно рассмотреть функцию, которая равна единице по одну сторону от прямой линии и нулю — по другую. Результат применения операции ф к такой функции называется функцией рассеивания края. Интерпретацию импульсной реакции ф можно распространить и на случай синусоидальной функции, если в формуле (1.2) положить / (и, и) = а + b cos 2лаш. Результат применения операции ф к такой функции называется передаточной функцией ф.
Часто необходимо определить, насколько точно два объекта согласуются друг с другом (насколько они похожи), или обнаружить сходство одного объекта с частью другого. Подсчет взаим-
ной корреляции между двумя функциями / и g служит одним из простых методов установления идентичности двух объектов с точностью до переноса и умножения на константу. Этот метод может быть очень полезным в тех задачах распознавания образов или их непроизводных элементов, в которых легко задать прототипы или эталоны этих образов. При этом задача распознавания сводится к подсчету взаимной корреляции исходного объекта с каждым из эталонов. Аналогично задачу нахождения объекта / в объекте g можно решить вычислением отношения двух коэффициентов взаимной корреляции. Предположим, что в объекте g содержится «зашумленный» объект /, и нужно найти объект / посредством подсчета взаимной корреляции эталона /* с объектом g. Легко показать, что если шум аддитивен и независим от /, то лучшим эталоном /* для обнаружения / является сам этот объект /. Это и есть в точности «согласованный фильтр».
Другой способ сравнения объекта с эталоном состоит в подсчете не свертки, а произведения фурье-преобразований объектов и в дальнейшем вычислении обратного фурье-преобразования полученного произведения. В этом случае операция сравнения определена не на оси времени или в пространстве, а в области частот или пространственных частот. Одно из важных применений такой фильтрации лежит в задаче восстановления объекта. Допустим, что имеющийся объект искажен в результате процесса передачи или аппроксимации. Если искаженный объект можно представить в виде свертки f * gn где / — исходный объект, a g — некоторая функция, то для восстановления необходимо вычислить обратное преобразование Фурье функции FGIG, где FG — фурье- преобразование свертки / * g.
Для подавления присутствующего в объекте шума часто применяют операцию сглаживания. Сглаживание можно осуществить простой заменой значения функции в каждой точке средним значением, взятым по некоторой окрестности этой точки. Эту операцию легко реализовать в виде свертки объекта с функцией, которая принимает значение МВ внутри окрестности и 0 снаружи. Величина В — это длина (в случае одного измерения) или площадь (в случае двух измерений) окрестности. Размер окрестности может быть постоянным или изменяться от точки к точке. Сглаживание Можно осуществить и при помощи усреднения множества независимых экземпляров объекта. Кроме линейных операций типа: свертки, для усреднения используют и нелинейные операции. Простейшие операции такого рода состоят в комбинации усреднения с пороговой операцией. Другой способ сглаживания объекта состоит в применении высокочастотных или полосовых фильтров.
Можно не только сгладить, или размыть, объект, но и, наоборот, «обострить», или подчеркнуть, его. Это осуществляют посред-
^твом клиппирования, фильтрации или дифференцирования. В то время как для сглаживания требуется интегрирование (или усреднение), для обострения естественно в том или ином виде применить дифференцирование. При дифференцировании изображений пользуются вычислением градиента и лапласиана. Если необходимо подчеркнуть изображение независимо от направления, то нужно вычислить производную в каждой точке в направлении градиента (т. е. в направлении самого резкого изменения уровня яркости). По крайней мере приближенно эту операцию можно реализовать в виде свертки заданного изображения с подходящими эталонами или применив согласованный градиентный фильтр. Подчеркивание линий или краев одного заданного направления можно осуществить дифференцированием изображения в направлении, ортогональном к заданному, что также реализуется посредством свертки. При этом качество линий и краев, идущих в других направлениях, изменяется.
Лапласиан представляет собой полезную комбинацию производных, которая пропорциональна разности между уровнем яркости точки и средним уровнем яркости в кольце с центром в этой точке. Приближенное вычисление лапласиана сводится к свертке функции изображения с эталонной функцией, имеющей положительный пик, окруженный кольцом отрицательных значений. Эти положительные и отрицательные значения должны быть выбраны так, чтобы интеграл по области эталона был равен нулю.
Сегментация1)
Сегментация изображения
и выделение непроизводных элементов
Универсального метода сегментации изображения на фрагменты не существует. В зависимости от характера требуемого описания могут быть полезны разные типы фрагментов изображения. Основным методом отграничения какого-либо фрагмента является применение к данному изображению пороговой операции. Фрагменты можно определить при помощи простого сравнения яркости самого изображения с порогом. Фрагментом может быть совокупность точек, яркость которых больше или, наоборот, меньше порога или лежит между двумя пороговыми значениями. Например, в задаче распознавания знаков или рисунков, состоящих из линий, сами эти знаки или рисунки представлены совокупностью -«черных», а бумага или фон — совокупностью белых точек, так что при помощи простой пороговой операции можно отделить чер-
х) Более подробное обсуждение методов сегментации содержится в работах [21, 29, 30].
ную фигуру от белого фона. Пороговую операцию можно комбинировать с другими операциями предварительной обработки, например с сглаживанием, подчеркиванием и с согласованной фильтрацией.
Существенная трудность, возникающая при пользовании пороговой операцией, состоит в выборе значения порога. Иногда можно найти удачный порог в результате исследования распределения яркостей точек изображения. Например, если известна приблизительная площадь желаемого фрагмента, то можно выбрать нижний (или верхний) порог так, чтобы площадь фрагмента, в точках которого яркость превосходит порог, была меньше (или больше) предсказанной доли площади всего изображения (метод процентилей). В других случаях, когда, например, требуемый фрагмент содержит точки другого интервала яркости, чем остальные точки изображения, распределение яркости обычно имеет пик, соответствующий яркости фрагмента. Тогда для выделения фрагмента нужно выбрать пороги, соответствующие локальным минимумам распределения, расположенным по обе стороны от этого пика (метод моды). Другой метод определения порога состоит в последовательной проверке точек на их принадлежность к фрагменту. Этот метод позволяет варьировать значение порога в зависимости от характера уже проверенных точек. Разумеется, результат такой процедуры зависит от того, какая последовательность будет выбрана.
Другой подход к задаче выделения фрагментов состоит в «прослеживании границ (или контуров)». При обработке изображений знаков и вообще рисунков применение метода отслеживания границ позволяет не только выделять фрагменты, но и получать информацию о форме изображений. Простой способ отслеживания границ на двухградационном изображении состоит в систематическом просмотре до тех пор, пока не встретится пара точек или клеток растра разной яркости. Предположим, что в процессе движения вдоль границы между белыми (скажем, слева) и черными (справа) клетками достигается «распутье» следующего типа:
Тогда в зависимости от значений яркостей х и у «следующая» граничная точка выбирается в соответствии с правилом
Xу
Следующая граничная точка
0 или 10
01
11
Повернуть вправо
Следовать прямо Повернуть влево
где 0 — белое, al — черное. Эта процедура позволяет отслеживать связные области черных клеток в направлении часовой стрелки. Ее можно обобщить на случай полутоновых изображений, если задать критерий существования границы. Таким критерием может быть, например, наличие соседних клеток, разница яркостей которых превышает некоторый порог. Отслеживать границы можно даже тогда, когда в них есть разрывы, например на изображениях отпечатков пальцев и на изображениях треков частиц в пузырьковых или искровых камерах. Для этого нужно при обнаружении конца границы следовать в прежнем направлении на расстояние, соответствующее максимально допустимому разрыву. Процедуру можно изменить таким образом, чтобы траектория отслеживания проходила по самим краевым клеткам, а не по «стыкам» этих клеток с соседними клетками с нулевым значением. Пусть Sp — односвязный фрагмент (оцифрованного) изображения и Sp — дополнение Sp, т. е. множество всех клеток изображения, не принадлежащих Sp. Пусть В — множество краевых клеток фрагмента Sp, a xQ = (Zo, /0) — исходная клетка множества В. Так как (f0, /0) — краевая клетка фрагмента Sp, по крайней^мере одна из четырех соседних по вертикали и горизонтали с (г0, /0) клеток, т. е. одна из клеток (f0 + 1, у0), (i0 — 1, у0), Оо, io + 1), (ioi io — 1)» Должна принадлежать дополнению Sp. Обозначим эту клетку через z/J (если таких клеток больше одной, то выберем из них любую). Перенумеруем все восемь клеток, соседних по вертикали, по горизонтали и по диагонали с (i0, у0), начиная с у^, в направлении против часовой стрелки так, чтобы множество Sp оставалось слева. Получим последовательность у о, у^, . . ., у80. Если ни одна из клеток у30, у50, у^ не принадлежит Sp, то клетка х0 является единственным элементом множества Sp. Допустим, что это не так и у^1 — первая клетка в последовательности, принадлежащая множеству Sp. Тогда следующий элемент хх множества В определяется по правилу
если у№р,если y^Sp.
/-1,У+1
у +1
1* й У + 1
i- 1, j
г + 1, j
/+ 1,7-1
Для нахождения следующей краевой клетки нужно взять соседнюю с хА клетку, которая принадлежит множеству Sp (у^к или У^"1), обозначить ее через у\ и повторить описанную процедуру.
К выделенному фрагменту можно применять новые операции, предназначенные для выделения новых фрагментов, обладающих специфическими свойствами. Например, на выделенном при помощи пороговой операции фрагменте (который может состоять из областей, линий или контуров) можно отследить границы или края и получить изображения этих границ или краев, т. е. новые фрагменты, обладающие свойством «связности». Соответствующей маркировкой можно выделить («поименовать») каждый фрагмент, или присвоить ему свой «код» Например, это можно сделать, присваивая каждой компоненте фрагмента положительное число так, чтобы клетки одной связной компоненты получили одно и то же число, а клетки разных компонент — разные числа.
Рис 1 7. Расстояние от клетки (i, 7) (а) — ромб, г = 2, (б) — квадрат, г = 2;
(в) — восьмиугольник, г = 2.
Другая операция, также основанная на связности, состоит в «сжатии». или «утоньшении», фрагмента. В том случае, когда фрагмент состоит из большого числа небольших связных компонент, желательно упростить изображение, сжав каждую компоненту до одной клетки. Для замены компонент фрагмента одиночными клетками можно просто промаркировать их, а затем из каждой компоненты удалять символы до тех пор, пока не будет получено одиночного вхождения каждого символа. Иногда нужно сжать до толщины линии фрагмент, вытянутый в каком-либо направлении. Утоньшение фрагмента можно сделать итеративным применением операции сжатия. При этом на каждом шаге из фрагмента будет удален очередной слой краевых клеток. В этом случае могут понадобиться дополнительные ограничения на операцию сжатия. Иначе во фрагменте могут возникнуть нарушения связности.
Для выделения разного рода фрагментов изображения часто бывает необходимо ввести расстояние на клеточном растре. Пусть d — функция расстояния, определенная для любой пары клеток растра, т. е. функция положительная, симметричная и удовлетворяющая неравенству треугольника. Как показано на рис. 1.7, множества точек (Z, ап), находящихся на расстоянии от заданной
точки (г, ]Y не меньшем порога г, имеют разную форму в зависимости от вида функции расстояния. Множество точек, на котором расстояние до множества Sp достигает локального максимума, образует одну из разновидностей «остова» множества Sp. Нахождение остовов — это один из подходов к решению задачи утонь- шения. Остов также используют для получения информации о форме фрагментов. Функции расстояния присутствуют и в других операциях, таких, как «изоляция», «расширение» (утолщение), «удлинение» фрагмента, в операции подсчета суммы яркостей клеток на расстоянии г от клетки (г, /) и во многих других.
На изображении можно выделять фрагменты по заданной форме или по заданному направлению. Фрагменты рисунка выделяют при помощи маркировки точек символами, обозначающими приблизительное направление кривой, проходящей через точку. Для сегментации кривой или границы или края выделяют «точки расчленения». В качестве таких точек используют позиционные экстремумы (верхние, нижние, самые правые или самые левые точки кривой), точки перегиба кривой или точки, в Которых кривизна достигает локального максимума или резко изменяется. Фрагмент изображения может быть определен как совокупность точек, замаскированных заданным фрагментом и расположенных в заданном направлении («тень»). Фрагментом может быть даже совокупность точек, таких, что проведенный через точку луч заданного направления пересекает заданный фрагмент определенное число раз. В рисунках для получения признаков формы выделяют «штрихи», «изгибы» и другие фрагменты аналогичного типа. Фрагменты, заданные формой, можно находить при помощи сравнения с двумерным эталоном, заданным в виде изображения или математическими функциями, описывающими признаки формы этого эталона. Для нахождения прямых линий можно пользоваться также и преобразованием «точка в прямую» или «точка в кривую» г). Аналогично при помощи подходящих преобразований координат можно находить и другие простые формы, например дуги окружностей.
Для дальнейшего описания выделенного из изображения фрагмента вычисляют его параметры. Эти параметры могут быть выражены числами (функции) или логическими высказываниями (предикаты). Роль этих параметров можно считать скорее «семантической», чем синтаксической. Для анализа изображений часто могут быть очень полезными геометрические, или топологические, параметры. Пользуясь методом маркировки, легко подсчитать число связных компонент изображения (т. е. «связность»). Пусть
Э Имеются в виду локальные операции, состоящие в оценке критерия наличия в окрестности точки отрезка прямой линии или отрезка кривой.— Прим, перев.
S - связный фрагмент. Порядком связности фрагмента S называется число компонент в дополнении 8. Это число на единицу превышает число «дырок» в 5. Фрагмент 5 называется односвязным, если его порядок связности равен единице. Если каждая связная компонента фрагмента 5 является односвязной, то порядок связности этого фрагмента можно найти, подсчитав Эйлерово число Е, или «род». Эйлерово число Es фрагмента 8 равно разности между числом компонент С и числом дырок Н в фрагменте 8. Эйлерово число дискретного изображения 8 подсчитывается по формуле
Es = С - Н = Ns - Zs + Ts, (1.4)
где Ng — число клеток в S, Zs — число пар соседних по горизон* тали (или по вертикали) клеток, a Ts — число квадратов размером 2x2, составленных из соседних по вертикали и горизонтали клеток. Формула (1.4) является «двойственной» к известной формуле Эйлера для многогранников
Е = Ny - Ne + Nt, (1.5)
где N^^ Ne, Nt — число вершин, ребер и граней соответственно. Для описания изображений часто вычисляют и другие геометрические параметры: длину и кривизну линии; площадь, периметр, высоту, ширину и протяженность фрагмента х); число позиционных экстремумов, точек перегиба и вогнутостей («петель»); число максимумов кривизны («углов») и т. д. Как известно, фрагмент можно полностью задать его границей. Один из способов задания границы состоит в записи ее уравнения или совокупности уравнений. Границу фрагмента можно описать также и ее «натуральным уравнением», т. е. функциональной зависимостью кривизны от длины отрезка кривой. Среди других функциональных свойств фрагмента вычисляют также распределения наклона или кривизны но границе и распределение расстояний между точками фрагмента.
1*4.2. Сегментация речевого потока
В качестве примера решения задачи о сегментации рассмотрим сегментацию записи речи («речевого потока»). Речевой поток создается почти непрерывной сменой состояния голосового аппарата при переходе от произношения одного звука к произношению Другого. Условная запись этих звуков речи обычно состоит из Цепочки лингвистических элементов, называемых фонемами. Для
) Площадь фрагмента в точности равна числу клеток растра, занимаемых этим фрагментом, а периметр можно считать приблизительно пропорциональным площади края фрагмента. Высоту и ширину фрагмента можно вычислить, змерив расстояние между ограничивающими фрагмент нижней и верхней оризонтальными линиями и расстояние между левой и правой вертикальными ниями соответственно. Протяженность фрагмента — это его «диаметр».
такого представления речевого потока необходимо акустический континуум звуков речи разбить на дискретные сегменты, которые можно было бы связать с конкретными фонемами. Люди способны выполнять такую сегментацию, хотя в зависимости от культурного уровня одну и ту же речь они сегментируют по-разному. Машинную сегментацию речевого потока можно проводить во временной и частотной областях или в области время — частота (спектрограф) [31—36]. Существующие методы машинной сегментации в основном рассчитаны на каждую конкретную задачу. В этом разделе описан метод сегментации речи во временной области, предложенный Редди [33, 34].
Сначала звуковая волна разбивается на последовательность «минимальных сегментов». Длительность каждого сегмента выбирается настолько малой, чтобы на его протяжении не было существенных изменений. Обычно длительность минимального сегмента составляет 10 мс и каждый сегмент содержит 100 точек, отделенных интервалом 100 мкс. Каждый сегмент представлен вектором X — \хХ1 хг1 . . ., хп] амплитуд звуковой волны в этих точках (п — 100). Интенсивность минимального сегмента вычисляется по формуле
max | хх |.(1.6)
Обозначим через У (п — 1)-мерный вектор, компоненты которого равны
( 1,если ед+1<0,
[ 0,в противном случае.
Минимальный сегмент характеризуется также «числом пересечений с нулем» Z, которое подсчитывается по формуле
(1-8)
Расположенные друг за другом минимальные сегменты с похожими характеристиками группируются в сегменты большего размера. Известно, что интенсивность всех гласных, фрикативных, плавных, носовых звуков и предшествующих паузе остановок на большей части интервала звучания фонемы почти постоянна. Вариации наблюдаются лишь на границах фонемы. Число пересечений с нулем изменяется больше, чем интенсивность. Таким образом, группировку акустически схожих минимальных сегментов можно осуществлять в основном по интенсивности, а число пересечений с нулем использовать для разрешения возможных неоднозначностей. Два соседних сегмента интенсивности 7\ и /2 считаются акустически схожими, если существует допустимый интервал Т. такой, что Ix Т, /2 € Т, где Т — отрезок II — t.
I 4- tV t = max {1, Я/8}, a Rj — диапазон изменения Г, который при кодировании отсчетов 6 битами составляет RT — [0,32]. Сегмент длительностью не более 30 мс, составленный из акустически схожих минимальных сегментов, называется постоянным. Любой сегмент, не являющийся постоянным, называется переходным. В результате наблюдения группы минимальных сегментов длительностью не более 200 мс вычисляется распределение акустически схожих сегментов по допустимым интервалам каждого возможного уровня интенсивности. Наиболее вероятным интервалом, в котором может быть найден постоянный сегмент, считается интервал, содержащий наибольшее число минимальных сегментов. При помощи критерия акустического сходства делается попытка сгруппировать как можно больше сегментов в найденном допустимом интервале. Если эта попытка удается, то найденная группировка считается постоянным сегментом. При неудаче выбирается следующий, наиболее вероятный интервал. Процесс продолжается до тех пор, пока не будет найден постоянный сегмент или не обнаружится, что такого сегмента найти совсем нельзя. На рис. 1 8 приведен типичный результат эксперимента, проведенного Редди.
После сегментации каждый найденный сегмент связывают с фонемой или с переходом от одной фонемы к другой. Это осуществляют классификацией множества сегментов, не являющихся переходными. Поскольку фонемы считают основными непроизводными лингвистическими элементами устной речи, классификацию осуществляют при помощи в основном несинтаксических методов (дискриминантных, эвристических и др.). При этом выделяемыми признаками фонем обычно служат временные и (или) частотные параметры, например длительность, интенсивность, число пересечений с нулем, высота звука, частоты и амплитуды формант и их видоизменения. Если же удается найти синтаксические правила (грамматику) для описания этих речевых образов, то возможно применение и синтаксического подхода (см. приложение Е).
Замечания о синтаксическом и дискриминантном подходах
Хотя на практике получен ряд успешных результатов в приложениях синтаксических методов к распознаванию знаков, анализу хромосом, идентификации изображений треков частиц в пузырьковой камере и к распознаванию двумерных математических выражений [37—41], четкое разделение синтаксического и дискриминантного подходов кажется удобным лишь с теоретической точки зрения. В практических приложениях их различие не столь явно. Многие методы предобработки полезны в обоих подходах. По-видимому, это связано с тем, что выбор конкретного метода предобработки зависит скорее от типа объектов (изображение или
Число пересечений с нулем 6 Юме сегменте
ЗТ, „64 46 12 12 14 12 1219
5Я»^»у^»^ 17 27 30 31 Высокочастотные сегменты регулярностьНачало
Окончательные сегменты
4*4*^****^**
Конец Начало
Конец
Начала
Конец Начало
20
31
23
31
18
10
16
10
12 7
2119121917
28252425 24
171520182018181815
242222232425212115
Постоянный Переходный Постоянный Визуальное распознавание
/4/
Постоянный
IAI
ПерехоОный
Постоянный
IN]
*
Число пересечений с нулем 6 Юме сегменте
2„ -465457813 16 18 13 14 10
^аптеисаоио^ 8 g 17 18 1д 19 м ц 9 Высокочастотные сегменты
регулярность„u „
НачалоКонец НачалоКонец
Окончательные сегменты _ п _ П a - Постоянный ПерехоОный Постоянный ПерехоОный Визуальное распознавание
511'
65
1517177168
323357
начало Коней
141418108
81012127
Начало Конец
44444
22222
Начала
Постоянный ПерехоОный Постоянный Переходный достоянный
IZN/ * [ЕН, А п°Уза
Число пересечений с нулем В ЮмеУробем) интенсивности^ ^пысокочастотньЛегменть!
РДяркасть ^
Окончательные сегменты Переходный Постоянный
Визуальное распознавание /81
сегменте
1412121613
2323201611
Конец
Переходный
1340000
710000
Начало
Постоянный
0000000000311 6000
0000000000161000
Конец Начало Конец
Переходный Постоянный
Рис, 1.8. Сегментация устной речи. Фраза «John^has a book»,
(Из работы Редди
[34].)
пивая насколько объект зашумлен, есть ли в нем искажения), чем от применяемого подхода. Задачи отбора и выделения признаков в дискриминантном подходе и непроизводных элементов в синтаксическом по своей природе схожи [29, 30]. Различие состоит в том, что непроизводные элементы представляют подобразы в то время как признаками может быть любое множество числовых измерений объекта. На этом уровне нет различий между двумя подходами, поскольку всегда имеется в виду, что непроизводные элементы не должны содержать существенной для распознавания синтаксической информации1). Например, используемый в распознавании двумерных математических выражений подход в основном синтаксический, а непроизводными элементами служат знаки и математические символы [40, 41]. Вполне возможно применение дискриминантных методов в распознавании непро- изводных элементов и синтаксических методов в распознавании математических выражений. Похожая ситуация может возникнуть и в распознавании речевого потока. Отношения между произнесенным предложением и его фразами и словами (подобразы предложения), а также между произнесенным словом и его фонемами, слогами или звуками можно рассматривать как преимущественно синтаксические [42—44] 2). Однако распознавание непро- М^водных элементов (в данном случае, например, фонем, слогов или звуков), по-видимому, лучше всего производить дискриминантными методами [45—47].
Из предыдущего обсуждения видно, что в практических задачах распознавания образов синтаксический и дискриминантный подходы часто дополняют друг друга. Если явная структурная информация об объектах не важна, а задача состоит скорее только в классификации, чем в описании и классификации, то и нет нужды в синтаксических методах. С другой стороны, в тех случаях, когда объекты очень богаты структурной информацией и задача распознавания требует классификации и описания, по-видимому, необходим синтаксический подход. Как правило, многие конкретные задачи распознавания занимают промежуточное положение между этими двумя крайностями. Другими словами, структурная информация об образах часто важна и должна быть использована, но простые и абстрактные непроизводные элементы не всегда легко выделить, особенно при наличии шума и искажений. Поскольку в общем случае непроизводные элементы в той или иной степени определяются локальными свойствами образов (которые наиболее чувствительны к искажениям и шуму) и содержат мало синтаксической информации, для их распознавания лучше применять № ^ Чтобы проследить это, достаточно рассмотреть некоторые методы “ 2\е??я непРоизводных элементов, описанные в разд. 1.4.
Ll ) Конечно, все это справедливо, если можно успешно решить задачу ^^ентации.
дискриминантные методы. После того как непроизводные элементы выделены, следует синтаксическое распознавание полныл образов. При подходящей комбинации обоих подходов можно получить эффективную практическую систему распознавания. На нижнем (в смысле иерархической структуры образов) уровне этой системы для распознавания непроизводных элементов используется дискриминантный метод. Основываясь на этом принципе, непроизводными элементами для данной задачи распознавания можно считать такие подобразы, которые легко распознаются этими методами. Затем при помощи этих подобразов описывается более высокого уровня структурная информация об объектах В этом случае (двухуровневая схема) непроизводные элементы в той мере, в которой они могут быть распознаны, необязательно должны быть слишком простыми и абстрактными. В итоге синтаксическое описание может оказаться совсем простым, а задача распознавания может быть эффективно решена синтаксическим методом.
При наличии шума и искажений два или несколько разных образов могут реализоваться в виде весьма похожих объектов х). В рамках синтаксического подхода это означает, что один образ имеет два или несколько разных структурных описания. В лингвистической теории такая ситуация называется неоднозначностью. Эту неоднозначность структурных описаний нельзя разрешить обычными процедурами синтаксического анализа. Необходимое различение можно было бы провести, применив дискриминантные методы, в которых учитывается статистическая информация об искажениях и шуме. Эта мысль приводит к необходимости расширить область формальных языков за счет включения в нее стохастических языков для синтаксического распознавания образов [48] ). Стохастические грамматики передают как структурную, так и статистическую информацию об образах. Классификация и описание объектов выполняются процедурой стохастического синтаксического анализа. Как правило, статистическая информация ускоряет синтаксический анализ.
Обзору стохастических грамматик и языков посвящена гл. 5, а в гл. 6 описано применение этих языков к синтаксическому распознаванию образов.
СПИСОК ЛИТЕРАТУРЫ
Fu К. S., Sequential Methods in Pattern Recognition and Machine Learnings Academic Press, New York, 1968.
Sebestyen G. S., Decision Processes in Pattern Recognition, Macmillan, New York, 1962. (Русский перевод: Себестиан Г. С., Процессы принятия решений при распознавании образов, «Техника», 1965.)
^ Конечно, различение таких объектов частично зависит от эффективности методов предобработки.
Nilsson N. J , Learning Machines-Foundations of Trainable Pattern-Classifying Systems, McGraw-Hill, New York, 1965. (Русский перевод Нильсон H , Обучающиеся машины, «Мир», 1967 )
Mendel J. М and Fu К S , eds , Adaptive Learning and Pattern Recognition Systems Theory and Applications, Academic Press, New York, 1970.
Meisel W , Computer-Oriented Approaches to Pattern Recognition, Academic Press, New York, 1972
Fukunaga K., Introduction to Statistical Pattern Recognition, Academic Press, New York, 1972
Patrick E A., Fundamentals of Pattern Recognition, Prentice-Hall Englewood Cliffs, New Jersey, 1972
Andrews H C , Introduction to Mathematical Techniques in Pattern Recognition, Wiley, New York, 1972
Duda R. О and Hart P. E., Pattern Classification and Scene Analysis, Wiley, New York, 1973. (Русский перевод Дуда P., Харт П., Распознавание образов и анализ сцен, «Мир», 1976 )
Chen С. Н , Statistical Pattern Recognition, Hayden, Washington, D C , 1973.
Sklansky J., ed , Pattern Recognition: Introduction and Foundations, Dowden, Hutchinson and Ross, Inc , Stroudsburg, Pennsylvania, 1973
Fu K. S and Swain P H , On syntactic pattern recognition, In Software Engineering (J T. Tou, ed ), Vol. 2, Academic Press, New York, 1971.
Miller W. F and Shaw A C , Linguistic methods in picture processing — A survey, Proc. AFIPS Fall Joint Comput. Conf , San Francisco, 1968, pp 279—290.
Narasimhan R , A Linguistic Approach to Pattern Recognition, Rep 121, Digital Comput Lab , Univ of Illinois, Urbana, 1962 (Русский перевода Нарасимхан P , Лингвистический подход к распознаванию образов, сб. «Автоматический анализ сложных изображений», «Мир», 1969 )
Pattern Recognition, 3 (1971); 4 (1972). Special issues on syntactic pattern recognition.
Завалишин H. В., Мучник И Б., Лингвистический (структурный) подход к проблеме распознавания образов, Автоматика и телемеханика, К° 8, 86—118 (1969).
Цыпкин Я 3 , Основы теории обучающихся систем, «Наука», 1970
Айзерман М А., Браверман Э. М , Розоноэр Л. И., Метод потенциальных функций в теории обучения машин, «Наука», 1970
Fu К. S , ed , Pattern Recognition and Machine Learning, Plenum, New York, 1971.
Аркадьев А Г., Браверман Э M , Обучение машины классификации объектов, «Наука», 1971.
Rosenfeld A., Picture Processing by Computer, Academic Press, New York, 1969 (Русский перевод Розенфельд А., Распознавание и обработка изображений с помощью вычислительных машин, «Мир», 1972.)
Hawkins J К , Image processing A review and projection. In Automatic Interpretation and Classification of Images (A Grasselli, ed.), Academic Press, New York, 1969
Andrews H C , Computer Techniques in Image Processing, Academic Press, New York, 1970
Pattern Recognition, 2 (1970). Special issue on image enhancement.
Huang T S , Schreiber W F and Tretiak O. J , Image processing, Pioc. IEEE,^, 1586—1609 (1971). (Русский перевод. Хуанг, Шрейбер, Третьяк, Обработка изображений, ТИИЭР, 59, № 10, 59—89 (1971).)
Preston К , Jr., Coherent Optical Computers, McGraw-Hill, New York, 1972. (Русский перевод. Престон К., Когерентные оптические вычислительные машины, «Мир», 1974 )
IEEE Trans. Computers, С-21 (1972). Special issue on two-dimensional digital signal processing.
IEEE Proc., 60 (1972). Special issue on digital picture processing. (Русский перевод: Обработка изображений при помощи цифровых вычислительных машин, ТИИЭР, спец, выпуск, 60, № 7 (1972).)
IEEE Trans. Computers, С-20 (1971). Special issue on feature extraction and selection in pattern recognition.
Pattern Recognition, 3 (1971). Special issue on feature extraction.
Sakai T. and Doshita S., The automatic speech recognition system for conversational sound, IEEE Trans. Electron. Comput. EC-12, 835—846 (1963).
Sholtz P. N. and Bakis R., Spoken digit recognition using vowel-consonant segmentation, J. Acoust. Soc. Amer., 34, 1—5 (1962).
Reddy D. R., Segmentation of speech sounds, J. Acoust. Soc. Amer. 40, 307-312 (1966).
Reddy D. R., An Approach to Computer Speech Recognition by Direct Analysis of the Speech Wave, Tech. Rep. No. CS 49, Comput. Sci. Dept., Stanford Univ., Stanford, California, September 1, 1966.
Nelson A. L., Hersher M. B., Martin T. B., Zadell H. J., Falter J. W., Acoustic recognition by analogue feature-abstraction techniques. In Models for the Perception of Speech and Visual Form (W. Wathen-Dunn, ed.), pp. 428—440, MIT Press, Cambridge, Massachusetts, 1967.
Tappert С. C., A preliminary investigation of adaptive control of the interaction between segmentation and continuous speech, IEEE Trans. Syst. Man, and, Cybernet., SMC-2, 66—72 (1972).
Genchi ]H., Mori К. I. Watanabe S. and Katsuragi S., Recognition of handwritten numerical characters for automatic letter sorting, Proc. IEEE, 56, 1292—1301 (1968.) (Русский перевод: Генчи, Мори, Ватанабе, Кат- сураги, Распознавание рукописных цифр при автоматической сортировке писем, ТИИЭР, 56, № 8 (1968).)
Ledley R. S., Rotolo L. S., Golab T. J., Jacobsen J. D., Ginsburg M. D. and Wilson J. B., FID AC: Film input to digital automatic computer and associated syntax-directed pattern-recognition programming system. In Optical and Electro-Optical Information Processing (J. T. Tippet, D. Bec- kowitz, L. Clapp, Koester C., and Vanderburgh A., Jr., eds.), MIT Press, Cambridge, Massachusetts, 1965.
Shaw A. C., The Formal Description and Parsing of Pictures, Ph. D. Thesis, Rep. SLAC-84, UC-32, Stanford Univ., Stanford, California, April 1968.
Anderson R. H., Syntax-Directed Recognition of Hand-Printed Two-Dimensional Mathematics, Ph. D. Thesis, Harvard Univ., Cambridge, Massachusetts, January 1968.
Chang S. K., A method for the structural analysis of two-dimensional mathematical expressions, Information Sci., 2, 253—272 (1970).
Lea W. A., An approach to syntactic recognition without phonemics, Proc. Conf. Speech Commun. Process, Newton, Massachusetts, April 24—26, 1972, Conf. Record.
Li К. P., Hughes G. W., and Snow T. B., Segment classification in continuous speech, IEEE Trans. Audio Electroacoust., AU-21, 50—57 (1973).
De Mori R., A descriptive technique for automatic speech recognition, IEEE Trans. Audio Electroacoust., AU-21, 89—100 (1973).
Pols L. C. W., Real-time recognition of spoken words, IEEE Trans. Сотри ters, C-20, 972—978 (1971).
Bobrow D. G. and Klatt D. H., A limited speech recognition system, Proc. AFIPS Fall Joint Comput. Conf., San Francisco, 1968, 33, pp. 305—318
Von Keller T. G., An on-line recognition system for spoken digits, J. Acoust. Soc. Amer., 49, Pt. 2, 1288-1296 (1971).
Fu K. S., Syntactic pattern recognition and stochastic languages. In Fron-
tiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Kanai L. and Chandrasekaran В ,On linguistic, statistical and mixed models for pattern recognition In Frontiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Clayden D. O., Clowes M. B. and Parks J. R , Letter recognition and segmentation of running text, Information and, Control, 9, 246—264 (1966).
Sakai T., Nagao M and Fuhibayashi S., Line extraction and pattern detection in a photograph, Pattern Recognition, 1, 233—248 (1969).
Herskovits A. and Binford T О , On Boundary Detection, AI Memo. No. 183, Project MAC, MIT, Cambridge, Massachusetts, July 1970
Hoffman R. L and McCullough J. W , Segmentation methods for recognition of machine printed characters, IBM J. Res. Develop., 15, 153—165 (1971).
Kelly M. D., Edge detection in pictures by computer using planning In Machine Intelligence 6 (B Meltzer and D Michie, eds ), pp. 397—409, Edinburgh Univ. Press, Edinburgh, 1971
Rosenfeld A. and Thurston M , Edge and curve detection for visual scene
* analysis, IEEE Trans, Computers, C-20, 562—569 (1971)
Stefanelli R and Rosenfeld A , Some parallel thinning algorithms for digital pictures, J Assoc Comput Mach , 18, 255—264 (1971)
Flanagan J. L , Speech Analysis, Synthesis and Perception, Academic Press, New York, 1965 (Русский перевод Фланаган Дж Л , Анализ, синтез и восприятие речи, «Связь», 1968 )
Aizerman М А , Remarks on two problems concerned with pattern recognition. In Methodologies of Pattern Recognition (S Watanabe, ed ), Academic Press, New York, 1969
Uhr L. ed , Pattern Recognition Theory, Experiment, Computer Simulations, and Dynamic Models of Form Perception and Discovery, Wiley, New York, 1966
Kanai L N , ed., Pattern Recognition, Thompson Book Co , Washington, D. C , 1968
Kolers P A and Eden M , eds , Recognizing Patterns Studies in Living and Automatic Systems, MIT Press, Cambridge, Massachusetts, 1968 (Русский перевод Колере П , Иден М (ред ), Распознавание образов.
Исследование живых и автоматических распознающих систем, «Мир», 1970 )
Kovalevsky V А , Character Readers and Pattern Recognition, Spartan Books, Washington, D. C , 1968
Noda К et al , ASPET/70, Tech. Rep. Electrotech Lab., Ministry of Int. Trade, Tokyo, Japan, 1970.
64 Pattern Recognition, 2 (1970), Special issue on character recognition
Ledley R. S., Practical problems in the use of computers in medical diagnosis, Proc. IEEE, 57, 1900-1918 (1969)
Fu К S , Landgrebe D A. and Phillips T L., Information processing of remotely sensed agricultural data, Proc. IEEE, 57, 639—653 (1969).
Турбович И T , Гитис В. Г , Маслов В К , Опознание образов, «Наука», 1971.
Загоруйко Н Г., Методы распознавания и их применения, «Советское радио», 1972
Cheng G С., Ledley R S., Pollock D. К and Rosenfeld A., Pictorial Pattern Recognition, Thompson Book Co , Washington, D. C., 1968
Rosenfeld A., Picture processing by computer, Comput. Surveys, 1, 3, 146— 176 (1969)
Браверман Э M. (ред.), Автоматический анализ сложных изображений, «Мир», 1969
Rosenfeld А , Picture automata and grammars: An annotated bibliography, Proc. Symp Comput. Image Process. Recognition, Univ, of Missouri, Columbia, August 24—26, 1972.
Бонгард М. М., Проблема узнавания, «Наука», 1967.
IEEE Proc. (1972). Special issue on digital pattern recognition — L. Harmon, guest ed. (Русский перевод: Хармон Л. (ред.), Распознавание образов при помощи цифровых вычислительных машин, ТИИЭР, спец, выпуск, 60, № 10, 1972.)
Мясников Л. Л., Мясникова Е. Н., Автоматическое распознавание звуковых образов, «Энергия», 1970.
Цемель Г. И., Опознавание речевых сигналов, «Наука», 1971.
Загоруйко Н. Г., Заславская Т. И., Распознавание образов в социальных исследованиях, «Наука», Новосибирск, 1968.
Grenander U., Foundation of pattern analysis, Quart. Appl. Math., 27, 1-55 (1969).
Grenander U., A unified approach to pattern analysis, Adv. Comput., 10 (1970).
Barrow H. G. and Popplestone R. J., Relational descriptions in picture processing. In Machine Intelligence 6 (B. Meltzer and D. Michie, eds.), pp. 377—396, Edinburgh Univ. Press, Edinburgh, 1971.
O’Handley D. A., The reality of robots, Symp. Automat. Contr., Milwaukee, Wisconsin, March 10, 1973.
Lipkin B. S. and Rosenfeld A., eds., Picture Processing and Psychopictorics, Academic Press, New York, 1970.
Fischler M. A. and Elschlager R. A., The representation and matching of pictorial structures, IEEE Trans. Computers, C-22, 67—92 (1973).
Menninga L. D., A syntax-directed approach to pattern recognition and description, Proc. AFIPS Fall Joint Comput. Conf., 38, 145—151 (1971).
Pavlidis T. and Fang G. S., A segmentation technique for waveform classification, IEEE Trans. Computers, C-21, 901—904 (1972).
Sakai T., Nagao M. and Matsushima H. Extraction of invariant picture substructures by computer, Comput. Graphics and, Image Process., 1, 81—96 (1972).
Wong E. and Steppe J. A., Invariant recognition of geometric shapes. In Methodologies of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1969.
Wathen-Dunn W., ed., Models for the Perception of Speech and Visual Forms, MIT Press, Cambridge, Massachusetts, 1967.
Zahn С. T., A formal description for two-dimensional patterns, Proc. Int. Joint Conf. Artificial Intelligence, 1st, Washington, D. C., May 1969.
Sayre К. M., Recognition: A study in the Philosophy of Artificial Intelligence, Univ, of Notre Dame Press, Notre Dame, Indiana, 1965.
Becker P. W., Recognition of Patterns, Polyteknisk Forlag, Copenhagen, 1973.
Ullman J. R., Pattern Recognition Techniques, Butterworth, London, 1973.
Banerji R. B., A Language for pattern recognition, Pattern Recognition, 1, 63—74 (1968).
Uhr L., Pattern Recognition, Learning and Thought: Computer Programmed Models of High Mental Processes, Prentice-Hall, Englewood Cliffs, New Jersey, 1973.
Глава 2
Введение в теорию формальных языков
Введение
Целью математического исследования структуры языка было первоначально стремление понять основные свойства естествен- пых языков [1]. Оказалось, что в качестве метода описания языка можно использовать порождающую грамматику с достаточно мощным множеством правил вывода. Эта концепция была формализована и развита Хомским [2—4], Бар-Хиллелом и их сотруд- аиками [5, 6]. В конце 60-х годов было обнаружено, что алголоподобные языки в нормальной форме Бекуса совпадают с бесконтекстными г) языками, порождаемыми формальными грамматиками определенного вида. Это позволило изучать языки программирования не только с эвристической, но и с теоретической точки зрения. С тех пор ученые, занимающиеся естественными языками Ои языками программирования, ведут обширные исследования В этой области. Были введены различные виды грамматик, изучены ||х свойства и предложен класс распознающих автоматов для рас- ?мотрения взаимодействия между распознающими устройствами I языками, порождаемыми некоторыми видами грамматик. Единое изложение важнейших результатов как теории формальных языков, так и их связи с автоматами содержится в работах Ахо К Улмана [7] и Хопкрофта и Улмана [8] ). В этой главе делается краткий обзор теории формальных языков и их свойств, а также обсуждается связь между формальными языками и автоматами.
Языки и порождающие грамматики
Понятие порождающей грамматики возникло в связи с грамма- гическим анализом простых английских предложений ). Прежде чем давать строгое определение языка, проведем грамматический разбор предложения «The girl walks gracefully» ). Здесь «the
*) Или контекстно-свободными.— Прим, перев.
girl»— это группа подлежащего, a «walks gracefully»-— группа сказуемого, состоящая из сказуемого «walks» и обстоятельства «gracefully» 1). С другой стороны, это предложение можно составить при помощи такой последовательности шагов:
Шаг 1. (предложение).
Шаг 2. (группа подлежащего) (группа сказуемого).
Шаг 3. (определение) (подлежащее) (группа сказуемого).
Шаг 4. The (подлежащее) (группа сказуемого).
Шаг 5. The girl (группа сказуемого).
Шаг 6. The girl (сказуемое) (обстоятельство).
Шаг 7. The girl walks (обстоятельство).
Шаг 8. The girl walks gracefully.
Эти шаги в свою очередь описываются следующими правилами вывода:
(предложение) ->- (группа подлежащего ) (группа сказуемого ), (группа подлежащего)-^ (определение) (подлежащее), (группа сказуемого)-^ (сказуемое) (обстоятельство), (определение) ->- the, (подлежащее) ->- girl, (сказуемое) ->- walks,
(обстоятельство) gracefully,
где символа означает «может быть заменено на». Теперь, обобщив приведенную выше схему, можно строго определить порождающую грамматику.
Определение 2.1. Порождающая грамматика G есть четверка G = (KN, Ft, Рп S), где (1) KN и Кт — основной и вспомогательный словари (или множества переменных) грамматики G соответственно. В примере, приведенном выше:
KN = {(предложение), (группа подлежащего),
(группа сказуемого), (определение), (подлежащее), (сказуемое), (обстоятельство)},
и
Кт : {The, girl, walks, gracefully}.
Объединение KN и Кт составляет полный словарь V грамматики G, KN П Кт = 0. (2) Символом Р обозначено конечное множество правил вывода или правил подстановки, обозначаемых как а-*- р, где аир —цепочки символов из К, причем а содержит по крайней мере один символ из KN. (3) Символ S' £ KN — началь-
Английские термины «noun phrase», «werb phrase » и т. д. заменены на принятые в этих случаях русские — «группа подлежащего», «группа сказуемого» и т. д., тем более, что артикль «the» можно считать определением (хотя это и не принято), но никак не прилагательным — «adjective». — Прим, перев.
ный символ. В предыдущем примере он соответствует символу (предложение).
Часто используются следующие обозначения:
2* — множество всех конечных цепочек символов из конечного множества 2, включая X — цепочку длины 0, 2+ — 2* — {X}.
Если х — цепочка, то хп — цепочка, состоящая из п раз написанной цепочки х.
| х | _ длина или число символов в цепочке х.
ц ^ у — цепочка ц непосредственно порождает цепоч- G
ку у, или цепочка у непосредственно выводится из ц, если ц = = (ОхаОз, у — (ОхрОз, и а р — элемент Р.
ц => у — цепочка ц порождает у или цепочка у выводится G
из ц, если существует такая последовательность цепочек ^, U . . ., £„, что 1 = ^,7=^ и ^=^ ^+1- Последователь- ность ^, . . ., ^п называется выводом у из ц. Очевидно, что => есть рефлексивное и транзитивное замыкание отношения =>.
Язык, порождаемый грамматикой G, есть
*
L (G) = ^х \ х ^. Ут, — такая цепочка, что 5 => ж}. (2.1) G
Если G — порождающая грамматика, то L (G) называется формальным языком. Цепочка основных и вспомогательных симво- *
лов у называется выводимой, если S => у. Обычно, когда ясно, G
какая грамматика G имеется в виду, букву G под знаком => или *
=> опускают.
В естественных языках часто возникает проблема неоднозначности. Одно предложение может иметь несколько совершенно различных значений в зависимости от различных способов его грамматического разбора. Например, в предложении «They аге rocking chairs» г) слово «rocking» можно рассматривать как часть группы сказуемого «аге rocking» либо как часть группы подлежащего, определяющую подлежащее «chairs». Точно так же считается, что порождающая грамматика неоднозначна, если существует цепочка х £ L (G), которая может иметь более одного вывода 2). Ясно, что в языках описания образов следует избегать неоднозначности, поэтому интересной задачей в этой области является поиск семейства однозначных грамматик.
Хомский разделил порождающие грамматики по форме правил подстановки на четыре типа. Самый широкий класс — грамматики
типа 0 (неограниченные) — характеризуется отсутствием каких- либо ограничений на вид правил подстановки: любые цепочки могут стоять как слева, так и справа от стрелки. Однако для использования этот класс слишком широк: даже вопрос о том, порождается ли некоторая цепочка данной грамматикой типа О, вообще говоря, неразрешим. Языками типа 0 называют языки, порождаемые грамматиками типа 0.
Грамматики типа 1{грамматики непосредственно составляющих)
Правила подстановки грамматик типа 1 имеют следующий вид: £М ^2£1Р ?2»
где А С Ую ^ Р 6 V* и р X.
Это правило читается как «А можно заменить на р в контексте £ь £2». Это также означает, что
| М^2 1^ I Ш2 h ИЛИ I А |^ | р |.
Языки, порождаемые грамматиками непосредственно составляющих, называются языками типа 1 или языками непосредственно составляющих. В качестве примера такого языка можно привести совокупность цепочек вида
{0n ln0n | n = 1, 2, . . .}.
Грамматики типа 2 {бесконтекстные грамматики)
Правила подстановки таких грамматик имеют вид
где А С yN и р С V+. Заметим, что такие правила подстановки позволяют заменять вспомогательный символ А на цепочку р независимо от контекста, в котором встречается А. Языки, порождаемые грамматиками типа 2, называются языками типа 2 или бесконтекстными языками.
Пример 2.1. Рассмотрим грамматику G = (yN, Ут, Р, S), где yN-{5, А, В^ Ут = {а, 6} и Р;
S-^aB,(5)Л-^ а,
S-^bA,(6)B-^bS,
A-^aS,(7)В-^аВВ,
A-^bAA,(8)B^b.
Грамматика G бесконтекстна, поскольку левая часть каждого правила подстановки состоит из единственного вспомогательного символа, а правая часть есть непустая цепочка основных и вспомог а-
тельных символов. Язык L (G) есть множество всех слов из Ут, состоящих из равного числа символов а и Ъ. Типичные выводы предложений в G таковы:
(8)
S =>аВ=> ab,
(6)(2)(5)
5 => аВ=^ abS => abb А => abba,
(5)
S^bA^ba, (2)(4)(5)(5)
5 => M => bbAA => bbaA => bbaa.
Число в скобках обозначает номер применяемого правила подстановки.
Другим методом описания вывода в бесконтекстной грамма- гике является использование деревьев вывода. Дерево вывода для бесконтекстной грамматики G = (KN, Ут, Р, S) может быть построено следующим образом:
It Каждая вершина дерева имеет в качестве метки символ из алфавита V.
Корень дерева, т. е. вершина, в которую не входит ни одна дуга, имеет метку S.
Если вершина с меткой А имеет хотя бы одну подчиненную вершину, то Л £ УN.
Если вершины п17 п^, . . ., пк прямо подчинены вершине п (с меткой Л) и помечены (слева направо) Л1? Л2, . . ., Ак соот- Шетственно, то правило А -> АгА2 . . . Ак должно принадлежать множеству Р.
*
Например, вывод S =^ abba в грамматике из примера 2.1 может быть описан следующим деревом вывода:
Аналогично дерево вывода фразы «The girl walks gracefully» имеет вид
(Предложение)
(Группа подлежащего)(Группа подлежащего)(Группа сказуемого)(Группа сказуемого)
(Группа подлежащего)
(Группа подлежащего)
(Группа сказуемого)
(Группа сказуемого)
(определение) (подлежащее)(определение) (подлежащее)(сказуемое) (обстоятельстдо)(сказуемое) (обстоятельстдо)
(определение) (подлежащее)
(определение) (подлежащее)
(сказуемое) (обстоятельстдо)
(сказуемое) (обстоятельстдо)
thethegirlgirlwalks gracefullywalks gracefully
the
the
girl
girl
walks gracefully
walks gracefully
Грамматики типа 3 (автоматные х) или регулярные)
Правила подстановки грамматик типа 3 имеют вид
Л -> аВ или Л -> Ь,
где А.В^У^иа.Ь^ Ут- Заметим, что Л, В, а, b — одиночные символы V. Языками типа 3, или автоматными (регулярными), называются языки, порождаемые автоматными грамматиками. Например, язык {0wln| т, п = 1, 2, . . .} автоматный, в то время как язык {0п1п | п = 1, 2, . . .} — нет.
Пример 2.2. Рассмотрим грамматику G = (VNl VT, Р, S), где PN = {5, Л}, Ут —{а, 6} и Р:
S -> аА,
А —>- аА,
А-^Ь.
Безусловно, эта грамматика автоматная. Типичное предложение языка L (G) порождается выводом
5 => а А => ааА => аааА => аааЪ.
Вообще, L (G) = {anb | п = 1, 2, . . .}.
Из определений четырех типов грамматик ясно, что каждая автоматная грамматика является бесконтекстной, бесконтекстная грамматика — грамматикой непосредственно составляющих, а грамматика непосредственно составляющих принадлежит типу 0.
Автоматные языки и конечные автоматы
В разд. 2.2 были введены определения типов языков с точки зрения ограничений на порождение (на грамматики). Другим способом является определение языка в терминах множества цепочек, допускаемых некоторым распознающим устройством (точка зрения распознавания). В этом разделе вводится понятие о простейшем распознающем устройстве, называемом конечным автоматом. Конечные автоматы могут допускать все языки, порождаемые автоматными грамматиками, и только их. В следующих разделах будут введены распознающие устройства для языков типов 0, 1, 2.
Определение 2.2. Конечным (детерминированным) автоматом называется пятерка А = (5, Q, 6, ^0, F), где 2 — конечное множество входных символов (алфавит), Q — конечное множество
х) Буквальный перевод термина «finite state grammar» — «грамматики с конечным числом состояний» в русской литературе употребляется реже, и обычно заменяется термином «автоматная грамматика».— Прим, перев.
состояний, 6 — функция, определяющая следующее состояние, т. е. отображение Q х 2 в Q, q0 £ Q — начальное состояние и F ^ Q — множество заключительных состояний.
Удачное изображение конечного автомата дано на рис. 2.L Конечное управляющее устройство, находящееся в некотором
Конечное управляющее устройство
^i„ Входная головка
а [а
b
а
а
Ъ
Ь
ь
Входная лента
Рис. 2.1. Конечный автомат.
состоянии из множества Q, последовательно слева направо читает символы на входной ленте. Вначале управляющее устройство находится в состоянии q0 и читает самый левый символ цепочки из 5*, которая записана на входной ленте. Функция
6 (q, а) = q'; q, q' £ Q; а € 2,
интерпретируется следующим образом: автомат А в состоянии q читает входной символ а, переходит в состояние q' и сдвигает
Рис. 2.2. Графическое представление перехода 6 (д, а) = д'.
входную головку на одну клетку вправо. Удобно представлять отображение 6 при помощи диаграммы состояний. Диаграмма состояний, соответствующая 6 (д, а) = д', показана на рис. 2.2. Отображение 6 можно распространить с одного входного символа на цепочку, если определить
6 (g, X) = д, 6 (д, ха) = 6 (6 (д, х), а),х Е 2*, а С 2.
Таким образом, 6 (д, х) = д' понимается так: находясь в состоянии д, автомат просматривает цепочку х на входной ленте и переходит в состояние д', а входная головка сдвигается вправо с той части входной ленты, которая содержит х. Говорят, что цепочка, или предложение, х допускается автоматом А, если
6 (д0, х) = р для некоторого р £ F.
Множество цепочек, допускаемых Л, определяется как
Т (Л) = {я | 6 (д0, *) € Л-(2.2)
11Рис. 2.3. Диаграмма состояний автомата из примера 2.3.Рис. 2.3. Диаграмма состояний автомата из примера 2.3.Пример 2.3. Пусть задан конечный автомат Л = (2, Q, 6, g0, F), где 2 = {0, 1}, Q = {g0, qv q2l q^ и F = {g0}. Диаграмма состояний автомата Л показана на рис. 2.3. Типичное предложение, допускаемое Л,-— это 101101, поскольку 6 (д0, 101101) = q0 £ F. Вообще Т (Л)- это множество всех цепочек множества {0, 1}*, содержащих четное число как нулей, так и единиц.
1
1
Рис. 2.3. Диаграмма состояний автомата из примера 2.3.
Рис. 2.3. Диаграмма состояний автомата из примера 2.3.
Определение 2.3. Недетерминированный конечный автомат есть пятерка Л = (2, Q, 6, g0, F^ где 2 — конечное множество входных символов (алфавит), Q — конечное множество состояний, 6 — отображение Q X 2 в множество подмножеств множества Q. д0—
начальное состояние и F — множество заключительных состояний. Единственная разница между детерминированным и недетерминированным вариантами автомата состоит в том, что 6 (д, а) обозначает множество состояний (возможно пустое), а не обязательно единственное состояние. Отображение 6 (д, а) = = {^1» ^2’ • •> Qi} интерпретируется так, что автомат в состоянии д, читая символ а на входной ленте, выбирает в качестве следующего любое из состояний qv . . ., q^ и сдвигает свою входную головку на одну клетку вправо. Как и в случае детерминированного автомата, отображение 6 можно распространить с одного входного символа на цепочку, определив
6(9, X) = q, 6^x0^ = и б (Qi, а),q^q, х)"
я£2*, а£2.
Далее мы можем определить i
6 ({?!, q^ . • qiV ^ = U 6 toi, хУ г=1
Цепочка х допускается автоматом Л, если найдется состояние р^ такое, что
р € 6 <qOi я) и р е F.
Множество цепочек, допускаемых автоматом Л, определяется как Т (Л) = {я I р е 6 (д0, ж) и р е 7^}.(2.3)
Пример 2.4. Рассмотрим недетерминированный конечный автомат Л = (2, Q, 6, д0, РУ где 2 = {0, 1}, Q = ^о* Чг» Чи Чз, &}
и f = {^2? ^}- Его диаграмма состояний показана на рис. 2.4. Типичным предложением, допускаемым автоматом Л, является цепочка 01011, поскольку 6 (д0, 01011) = q^F. Вообще Т (Л) есть множество всех цепочек, содержащих последовательно два
нуля или две единицы.
Связь между детерминированными и недетерминированными конечными автоматами и связь между автоматными языками и множествами цепочек, допускаемых конечными автоматами, может быть выражена при помощи следующих теорем.
Теорема 2.1. Если L— множество цепочек, допускаемых недетерминированным конечным автома- шмА = (2, Q, 6, qOl F), то существует детерминированный конечный автомат
Рис. 2.4. Диаграмма состояний автомата из примера 2.4Рис. 2.4. Диаграмма состояний автомата из примера 2.4Л' = (S', Q', 6', qQ, F'^ который допускает L. Состояниями автомата А' являются все подмножества множества Q, т. е. Q* = 2$, и 2' = 2, F' есть множество всех состояний из Q', содержащих достояния из F. Состояние автомата А' будет обозначаться через |?1, ?2, • •€ Q\ где qv q2, . . qt £ Q; q, = [%];
Рис. 2.4. Диаграмма состояний автомата из примера 2.4
Рис. 2.4. Диаграмма состояний автомата из примера 2.4
o' ([^, . . ., gj, a) = [p17 . . ., pjA тогда и только тогда, когда
6«9п . . ., q,}, а) = и 6 (qh, а) = {^, . .р,}.
6=1
Так как детерминированные и недетерминированные конечные автоматы допускают одни и те же множества цепочек, мы не будем различать их, когда в этом нет необходимости, а будем просто называть и те и другие конечными автоматами.
Теорема 2.2. Пусть G = (y^, Ут, Л 8^ — автоматная грамматика. Тогда существует конечный автомат А = (S, Q, 6, qOl F), Итакой, что Т(А) = Е(Су где
2-Ут;
9-rNu{n;
qo = S;
, 4) если множество Р содержит правило подстановки 8 -^Х^ F^^S, Ту в противном случае F—{S}\
состояние Т принадлежит 6 (В, а), если правило В-^а содержится в множестве Р, B^V^ и a^V^
множество 6 (В, а) содержит все символы, C^V^, такие , что правило В -^аС принадлежит Pub (Т, а) = 0 для всех а £ Vt.
Теорема 2.3. Пусть А — ^ Q, b, qQ, F) — конечный автомат. Тогда существует автоматная грамматика G=^(V^, VT, Р, S), такая, что L(G) = T (Л), где
Pn-C;
7Т- 2;
S = q»,
В->аС — правило Р, если Ь^В, а^^С, В, C^Q, а£^;
В-^ а — правило Р, если Ь^В, а) = С и C^F.
Пример 2.5. Рассмотрим автоматную грамматику G = = (VN, Рт, Р, S), где PN-{5, В), V^^a, b} и Р:
S-^aB,
В-^аВ,
B-^bS,
В-> а.
Может быть построен недетерминированный конечный автомат A"l^, Q, 6, q0, F), такой, что Т (Л) = В (С), где 2 = Ут = {а, Ь}, Q~V^\3T^V^ qo = S, jF^T} и 6 задано следующим образом:
6(5, а)-{5}, 6(5, 6)^0;6 (В, а^ф, Т},6(5, а)-{5}, 6(5, 6)^0;6 (В, а^ф, Т},посколькупосколькуправилоправилоS-^ аВ лежит в Р;S-^ аВ лежит в Р;поскольку в Р;поскольку в Р;правилаправилаВ-^аВ и тВ-^а лежатВ-^аВ и тВ-^а лежат
6(5, а)-{5}, 6(5, 6)^0;
6 (В, а^ф, Т},
6(5, а)-{5}, 6(5, 6)^0;
6 (В, а^ф, Т},
поскольку
поскольку
правило
правило
S-^ аВ лежит в Р;
S-^ аВ лежит в Р;
поскольку в Р;
поскольку в Р;
правила
правила
В-^аВ и тВ-^а лежат
В-^аВ и тВ-^а лежат
&(В, b) = {S},&(В, b) = {S},поскольку правило B-^bS лежит в Р;
&(В, b) = {S},
&(В, b) = {S},
Ь(Т, а) = Ь(Т, Ь)=0.
По теореме 2.1 мы можем [построить детерминированный конечный автомат Л'— (S', Q', 6', qQ, Ff) эквивалентный авто-
мату Л, такой, что
2' = S = {a, 6};
Q'^0, [Sb [S], [Л, [S, BV vs. n, [ВТ], [S, в, л}; q^VS]; Г-{[Л, [S7 T], [В, T], [S, В, Л};
6' ([Sb a^[B],6'([S]7 b) — 0,
6'([Sb a^[B, T],8'([B], b) = [S],
6'([S, T], d) = [B, T],6' ([В, T], b) = [S],
6'(07 a)=6'(0, b)=0.
В множестве 6' существуют и другие правила перехода. Однако автомат А' не будет находиться ни в каких состояниях, кроме 0, [S], [5], VB, Т]. Поэтому остальные состояния можно исключить из множеств Q' и Fr.
2.4. Бесконтекстные языки и магазинные автоматы
В этом разделе мы опишем две нормальные формы и некоторые важные свойства бесконтекстных грамматик. Магазинный автомат определяется как устройство для распознавания бесконтекстных языков.
Теорема 2.4. (Нормальная форма Хомского.) Любой бесконтекстный язык может быть порожден грамматикой G = = (Vn, Гт 7 Pi 8), у которой все правила подстановки имеют вид А -> ВС или А -> а, где А, В, С ^VN и а^ Кт.
Теорема 2.5. (Нормальная форма Грейбах.) Любой бесконтекстный язык может быть порожден грамматикой G (FN, VT, Р. 8), у которой каждое правило подстановки имеет вид А -> аа, где Л ^ FN, ci £ FT, а ^ F^.
Теорема 2.6. («uvwxy-теорема».) Пусть L — некоторый бесконтекстный язык. Тогда существуют константы р и q, зависящие только от L и такие, что если z — цепочка из L и | z | > р, то z можно представить в виде
z = uvwxy, где | vwx | ^ q, и и х не пусты одновременно и для любого целого г ^ 0, uiAwx'y лежит в L.
Говорят, что G — грамматика с саМовставлением, если в ней найдется вспомогательный символ А, обладающий свойством *
А => a^a2, где a1T а2 £ 7+. В этом случае А называют само- G
вставляющимся вспомогательным символом. Замечено, что именно свойство самовставления позволяет порождать предложения вида uv^wx^y и отличать собственно бесконтекстные языки от автомат-
ных. Если данная грамматика G есть грамматика без самовставле- ния, то L (G) — автоматный язык. Отсюда следует, что бесконтекстный язык не является автоматным тогда и только тогда, когда все задающие его грамматики являются грамматиками с самовставлением.
Устройство магазинного автомата близко к устройству конечного автомата, но он снабжен дополнительной магазинной памятью. Магазинная память определяется свойством «первым введено — последним выведено». Это означает, что символы можно вводить (записывать) или выводить (считывать) только на вершину и с вершины магазина памяти. Стопка подносов на пружине в кафетерии
Входная лентаВходная лентаКонечноеуправляющееустройствоКонечноеуправляющееустройствоМагазинная памятьМагазинная память
Входная лента
Входная лента
Конечноеуправляющееустройство
Конечноеуправляющееустройство
Магазинная память
Магазинная память
Рис. 2.5. Магазинный автомат.
служит хорошим примером хранилища магазинного типа. Пружина под подносами такова, что выше прилавка оказывается только один поднос. Если его снимают, давящий на пружину груз уменьшается и следующий снизу поднос поднимается над прилавком. Если же поставить наверх поднос, то все подносы сдвигаются вниз и над прилавком оказывается последний только что поставленный поднос. Нам удобно считать, что объем магазина произвольно велик, так что мы можем добавлять столько подносов, сколько понадобится. Магазинный автомат изображен на рис. 2.5.
Определение 2.4. Формально магазинный недетерминированный автомат определяется как семерка М = (5, Q, Г, 6, g0, Zo, F^ где
5 — конечное множество входных символов;
Q — конечное множество состояний;
Г — конечное множество магазинных символов;
^о € Q“ начальное состояние;
Z0£r—начальный символ, первым появляющийся в магазине памяти;
F^Q — множество заключительных состояний;
6— отображение Q х (2UW) X Г в множество конечных подмножеств Q х Г*.
Отображение
6 (9. «Z) = {(9lt yt), (92, у2), . . ., (9m, Vm)},
9i, 92,9m6<?. «6 2, Z^T, Ti.---.Ym6r*(2.4)
интерпретируется следующим образом: магазинный автомат, находясь в состоянии q, считывает входной символ а и верхний символ: магазина Z, переходит в состояние q^ заменяя в магазине памяти символ Z на символ yz-, 1 ^ i ^ тп, и продвигает входную головку на один символ. После того как Z заменено на уг, крайний левый символ у; окажется на верху магазина, а крайний правый — ниже всех остальных символов у^. Запись
6 (9, X, Z) = {(9i, Ti), (9г, Тг). • • •. (9m. Trn)} (2.5) означает, что магазинный автомат в состоянии q при верхнем символе в магазине Z независимо от считываемого входного символа перейдет в состояние qt и заменит Z на у^, 1 ^ г ^ т. В этом случае входная головка не перемещается. Такая операция используется для изменения содержания магазина и обычно называется Х-движением.
Для описания «ситуации» магазинного автомата мы используем упорядоченную пару (q, у), q £ Q и у £ Г*. Если (q', Р) £ £ 6 (g, a, Z), q, q' £ Q, для a С (2 J {X}), Y> Р € Г* и Z £ Г, то выражение
«: (9. 2?) I— (9', Рт)
означает, что по правилам перехода данного автомата М входной символ а может вызвать переход М из ситуации (g, Zy) в ситуацию (q^ Ру). Если для символов av а^ . . ., аП1 аг Е (2 U {X}), 1 ^ i ^ п, состояний qln . . ., gn+1 и цепочек уп у2, . . . • • •’ Yn+v Yj € Г*, 1 ^ / ^ n + 1, справедливо, что
«г- kqt. yD i— Мп^ yh), 1^KW, то мы пишем
ata2 .. . an: (^, y^ 1-1- (q^, yn+1).
Символ M под знаком H или |— опускается, если ясно, какой автомат имеется в виду.
Допускаемые магазинными автоматами языки определяются Двумя способами. Для магазинного автомата М язык Т ^М^ Допускаемый при помощи заключительного состояния, опреде-
ляется как
Т (М) = ^х | х\ (g0, Zo) |-^~ (^, v) для некоторых у £ Г и q £ F}. (2.6) С другой стороны, язык N (ТкГ), допускаемый М при пустом магазине, определяется как
N (М) = {х \х*. (^0, Zo) |— (^, X) для некоторого q^.QY (2.7)
Если язык допускается автоматом при пустом магазине, то множество заключительных состояний автомата М не используется. В этом случае обычно принимается F — 0. Связь между языками, допускаемыми при помощи заключительного состояния, и языками, допускаемыми при пустом магазине, выражается следующей теоремой.
Теорема 2.7. Для некоторого магазинного автомата Мг язык L есть N (М^ тогда и только тогда, когда L есть Т {М2) для некоторого магазинного автомата М^.
Пример 2.6. Следующий магазинный автомат допускает язык ^хСхг | х^ {0, 1}*} при пустом магазине:
Q, Г, 6, q., Zo, 0),
где 2-{0, 1, С}, Q-^ q^ Г = {/?, В, G}, q0 = qt1 Z.-R и]
6(91, 0, 7?) = {(91, BR^Y 6(91, о, В> = ^ bb^y Ш. о, G) = {(?1, BG^Y 6(Яь С, R) = {(q2, /?)}, 6(91, С, B) = {(q2, В)}, Цдь С, G) = {(q2, G)Y6(91, 0, 7?) = {(91, BR^Y 6(91, о, В> = ^ bb^y Ш. о, G) = {(?1, BG^Y 6(Яь С, R) = {(q2, /?)}, 6(91, С, B) = {(q2, В)}, Цдь С, G) = {(q2, G)Y8(q2, 0, B^q2l X)}, 6(92, 1, GH^ ^}, 6(?2, X, 7?) = {(92, X)}, 6(91, 1,Д)=Ш, GR^Y 8^ 1, 5) ={(9, GB^Y8^ 1, G) = «qb GG)Y8(q2, 0, B^q2l X)}, 6(92, 1, GH^ ^}, 6(?2, X, 7?) = {(92, X)}, 6(91, 1,Д)=Ш, GR^Y 8^ 1, 5) ={(9, GB^Y8^ 1, G) = «qb GG)Y
6(91, 0, 7?) = {(91, BR^Y 6(91, о, В> = ^ bb^y Ш. о, G) = {(?1, BG^Y 6(Яь С, R) = {(q2, /?)}, 6(91, С, B) = {(q2, В)}, Цдь С, G) = {(q2, G)Y
6(91, 0, 7?) = {(91, BR^Y 6(91, о, В> = ^ bb^y Ш. о, G) = {(?1, BG^Y 6(Яь С, R) = {(q2, /?)}, 6(91, С, B) = {(q2, В)}, Цдь С, G) = {(q2, G)Y
8(q2, 0, B^q2l X)}, 6(92, 1, GH^ ^}, 6(?2, X, 7?) = {(92, X)}, 6(91, 1,Д)=Ш, GR^Y 8^ 1, 5) ={(9, GB^Y
8^ 1, G) = «qb GG)Y
8(q2, 0, B^q2l X)}, 6(92, 1, GH^ ^}, 6(?2, X, 7?) = {(92, X)}, 6(91, 1,Д)=Ш, GR^Y 8^ 1, 5) ={(9, GB^Y
8^ 1, G) = «qb GG)Y
Пусть x = 001, тогда xCxT = 001C100. Последовательность переходов для входной цепочки 001С100 такова:
(91, R) |— (Ч1, BR) I— (qb ВВП) |— (?1, GBBR)
I— (q2, GBBR) |— (q2, BBR) \—(q2, BR^
I— (92, 7?) I— (92, ^)-
Две следующие теоремы показывают, что класс языков, допускаемых магазинными автоматами при пустом магазине, есть в точности класс бесконтекстных языков.
Теорема 2.8. Пусть L (В) — бесконтекстный язык, порождаемый грамматикой G = (FN, FT, Р, 5) в нормальной форме Грей- бах. Тогда существует недетерминированный магазинный автомат М, такой, что N (М) = L {G); М = (S7 Q, Г, 6, q0, Z0,F\ где
2 = 7т;
Q = Ш;
r = VN;
qu = qc,
Z0 = S;
F-0;
(Qv y) € 6 (qv a, 4) всегда, когда A -> ay лежит в P.
Теорема 2.9. Пусть N (M^ — язык, допускаемый магазинным автоматом М — (5, <2, Г, 6, q0, 0). Тогда существует такая бесконтекстная грамматика G = (VN, Кт, Р, 5), что L (G) = = N (М), где
7т = 2;
Vn — множестео троек вида [#, А, р^ q, p^Q и 4^Г, к которому добавлен новый символ 8;
S -+[q0, Z0, q\ принадлежит Р при любом q^Qi
Vb A, pA->-aYqv #1» qA \q^ B2, g3] ... Vim, Bm, gm+1] лежит в P для любых q, q^ . . . •> qm-H^Q (P=Qm*i)» любого «е(2 и W) и любых A, В^, ...,Вт^Г, таких, что (qi, B^B^ . . . Bm) £ 6 {q, a, Ay {Если m = 0, mo qx = p, (pX) £ ^6{q, a, A) и Yq» A, p]-^a лежит в P.)
Пример 2.7. Дана бесконтекстная грамматика G= (V^, VT, P, S), у которой KN = {S, A, B}, VT={a, b) и P:
S-
*ЬА,
S-
*аВ,
4-
*а,
В-
А-
■>aS,
В-
^bS,
А-
>ЪАА,
в-
*аВВ.
Можно построить недетерминированный магазинный автомат М = {^, QV, 6, q., Z., 0), где S^7T = {a, Ц, Q = ^V Г=УК = = {S, А, В}, qQ — q^ Z0 = S, а 6 задано так:
(^в а, 8) = ^^, В)}, поскольку S-^aB лежит в Р; 6(^4, b, S) = {(#!, 4)}, поскольку 8-^-ЬА лежит в Р;
6(#1? а, 4) ={(^4, 8), (qiX)}^ поскольку А -> aS и А -^а лежит в Р;
4—086
6 (^, Ъ, ^) = {to ЛЯ)},поскольку А-^ЬАА лежит в Р;
6 (q^ aB) = {(qi4 ВВ)},поскольку В -> аВВ лежит в Р;
6 to, bB^ = \^qXl 8), (q4 , X)}, поскольку B-^bS и В->& лежит в Р^
По теореме 2.8 N^M^ = L (G).
Для конечных автоматов детерминированные и недетермини- - рованные модели эквивалентны по отношению к классу допускаемых языков. Это не верно, однако, для магазинных автоматов. Например, язык L = ^ххТ | х^ {0, 1}*} допускается магазинным автоматом
М = (2, Q, Г, 6, ^0, Zo, 0), где 2 = {0, 1}, Q — Vqv ^2}, Г={Л, В. С}, ^0 = ^ь ^0 = Л и 6: 6 to, О, А)-^ BA)Y6 to, 1, C^V^ CCV ^ X)},
8 to, 1,А^-Ц^СА)},6 to,0,5)-{to,А)},
6 to, О,В)^^,55), (q2l X)},6(g2,1,Q-{to,А)},
8 to, О,С) - {to,BC^Y6 to,КA) = {to,M},
6 to, 1,5)^ {to,CB)Y6 to,^A) ^{to,X)}.
Тем не менее ни один детерминированный магазинный автомат не допускает язык L.
Языки, допускаемые детерминированными магазинными автоматами, называются детерминированными бесконтекстными языками. В гл. 4 мы определим подкласс LR (&) класса бесконтекстных грамматик, элементы которого порождают детерминированные бесконтекстные языки.
Определение 2.5. Если все правила подстановки данной грамматики имеют вид А ->■ иВи или А -> и. А. В £ VN, а и1 и ^ У?, и и и не равны X одновременно, то грамматика называется линейной. Кроме того, если v — X, то грамматика называется праволинейной, а если и = X — леволинейной.
Язык, который может быть порожден линейной грамматикой, называется линейным. Не все бесконтекстные языки являются линейными. В линейной грамматике цепочка в процессе вывода содержит не более одного вспомогательного символа. Праволинейные и леволинейные грамматики порождают все автоматные языки и только их.
Машины Тьюринга и линейно ограниченные автоматы
В этом разделе описаны третий и четвертый типы распознающих устройств и допускаемые ими языки. Это машины Тьюринга и линейно ограниченные автоматы. Машина Тьюринга состоит из конечного управляющего устройства, входной ленты и голов-
ки, которая может считывать и записывать символы на входной ленте. Считается, что лента бесконечна справа. Перед началом работы п крайних левых клеток ленты содержат символы входной цепочки ^п — конечное число). Оставшееся бесконечное число клеток ленты заполнено специальным символом В — символом «пустое место», который не является входным (рис. 2.6). Разница
Рис. 2.6. Машина Тьюринга.
между машиной Тьюринга и конечным автоматом состоит в том, что машина Тьюринга может изменять содержимое клеток входной ленты при помощи своей читающей-пишущей головки.
Определение 2.6. Машиной Тьюринга называется шестерка Т = (2, Q, Г, 6, g0, FY где Q — конечное множество состояний, Г — конечное множество ленточных символов, один из которых — пустой символ В. Подмножество 5 cz Г, не содержащее В, составляет множество входных символов; 6 — отображение Q X Г в Q X (Г - {В}) X {I/, В} (оно может быть не определено для некоторых аргументов); q0 £ Q — начальное состояние; F с Q — множество заключительных состояний.
Ситуация машины Тьюринга задается тройкой (д, а, г), где q £ Q1 а £ (Г — {В})* — непустая часть ленты, а г — расстояние ленточной (читающей-пишущей) головки Т от левого конца а. Пусть (д, 4^2 . . . АП1 i), 1 ^ i ^ п + 1,— ситуация машины Т. Если 6 (g, At) — (р, х, В), 1 г п, то движение 7, под которым мы понимаем элементарное действие машины 7, может быть записано как
(g, AtA2 ... Ап, I) |— (р, AtA2 .. . Ai_tXAt+1 ... АП1 i-^ 1).
Это означает, что машина Т пишет символ X на f-й клетке ленты и сдвигается на одну клетку вправо. Если же 6 (q, At) = (р1 X. L)t 2 г п, то
(^, А1А2 . . . АП1 i) I— (р, AtA2 ... А^ХА^ ... АП) i — 1).
В этом случае машина Т записывает в f-ю клетку символ X и сдвигает головку на одну клетку влево, но не левее левого конца ленты. Если г = п + 1, головка считывает пустой символ В. Если
4*
6 ^ В) = ^р. X. Ry то
to» Л^г . .. АП1 п + 1) 1— (р, AiA2 ... АпX, п 4- 2).
Если же, наоборот, 6(7, £) = (/), X, Ly то
to» AtA2 ... Ап, п + 1) 1— (р, А^2 ... Ат X, п).
В случае, когда две ситуации машины Т связаны между собой некоторым конечным числом элементарных действий, мы будем использовать обозначение I— .
т
Язык, допускаемый машиной Т^ определяется как множество {ж | ж С 2* и too» ^ 1) •— to» а» О Для некоторых q ^ F, а $ Г* и Z). Считается, что машина Т, допускающая язык L, останавливается на каждом допустимом входе (т. е., допустив цепочку, машина прекращает работу). С другой стороны, возможно, что машина Т не остановится, если входная цепочка не принадлежит языку L.
Пример 2.8. Следующая машина Тьюринга допускает язык {ОпГЦп> 1}:
Т=Ц^ Q. Г, 6, q„ Fy
где 2 = {0, 1}, Q = {?0, q^...,q5Y Г = {0, 1, В, X, У}, F=^ и 6:
6(9о, 0) = (?1, X, R),
8(?i, 0) = (дь 0, В),6(gt,У) = (9i,У,R),6(дъ1) = (9г,У,L),
6(92, У) = (92, У, Ь),6(92,Х) = (д3,X,В),6(92,0) = (94,0, L),
6 (9з, У) = (9з, Y.R),6 (9з,В) = (qb,Y,В),
6(94, 0) = (94, 0, L),6 (94,X) = (90,X,В).
Последовательность действий для входной цепочки « = 0011 такова:
(90, ООН, 1) Н (9i, Х011, 2) Н (9^ Х011,3)н (92, Х0У1,2) И (94, Х0У1, 1)
Н(90, Х0У1,2)H(9i, ХХУ1.3)
н (91, ХХУ1, 4) н (92, ХХУУ, 3) Ь (92, ХХУУ, 2) Н (9з, ХХУУ, 3) Н (9з, ХХУУ, 4) Н (9з, ХХУУ, 5) Ь (95, ХХУУУ, 6), q^F.
Недетерминированная машина Тьюринга — это такая машина, у которой 6 — отображение Q X Г в множество подмножеств
множества Q X (Г - № X {Л, 7?}. Можно показать, что если язык L допускается недетерминированной машиной Тьюринга Tv то L допускается и некоторой детерминированной машиной Тьюринга Т^.
Теорема 2.10. Если язык L "порождается грамматикой типа 0, то L допускается некоторой машиной Тьюринга.
Теорема 2.11. Если язык L допускается некоторой машиной Тьюринга, то L порождается грамматикой типа 0.
Определение 2.7. Линейно ограниченным автоматом М называется шестерка М = (5, Q, Г, 6, g0, F), где
Q — конечное множество состояний;
Г — конечное множество ленточных символов;
2сГ — множество входных символов;
6 — отображение Q X Г в множество подмножеств (?хГх{Д Ry
Qu^Q — начальное состояние;
F ^Q— множество заключительных состояний.
Множество 2 содержит два специальных символа, обозначаемых обычно 0 и $, которые отмечают соответственно левый и правый концы цепочки. Их функция — не дать головке уйти с той части цепочки, на которой задан вход.
По определению 2.7 линейно ограниченный автомат есть в сущности недетерминированная машина Тьюринга, которая никогда не сдвигается с той части ленты, на которой задан вход. Ситуация М и связь между двумя ситуациями 1~ определяются так же, как и для машины Тьюринга. Язык, допускаемый линейно ограниченным автоматом М, есть множество
Ус \х £ (2 — {0,$})* и (go0^$> 1) 1— (9) сц г) для некоторых q^F,
а£ Г* и ty
Если для любого q £ Q и А £ Г отображение 6 (q, А) содержит не более одного элемента, то линейно ограниченный автомат называют детерминированным. В настоящее время не известно, является ли класс языков, допускаемых детерминированными линейно ограниченными автоматами, собственным подклассом класса языков, допускаемых недетерминированными линейно ограниченными автоматами. Разумеется, справедливо, что любой язык, допускаемый недетерминированным линейно ограниченным автоматом, допускается и некоторой детерминированной машиной Тьюринга.
Теорема 2.12. Если L — язык, непосредственно составляющих, то L допускается недетерминированным линейно ограниченным автоматом.
Теорема 2.13. Если язык L допускается линейно ограниченным автоматом, то L — язык непосредственно составляющих.
Грамматика непосредственно составляющих G = (KN, Ут, Р, 5) задана в нормальной форме Куроды, если каждое ее правило подстановки имеет одну из следующих форм:
А->ВВ', АВ-^А'В, А-га.
А^АВ', А^-А',
где А, А', В, В' £ KN и л £ Ут. По любой заданной грамматике непосредственно составляющих Gx можно построить эквивалентную ей грамматику непосредственно составляющих G^ в нормальной форме Куроды L (G^ = L (G^.
Модификации грамматик
Известно, что бесконтекстные грамматики не являются достаточно мощным средством для описания естественных языков или языков программирования. С другой стороны, языки непо- ередственно составляющих (но не бесконтекстные) требуют весьма еложного грамматического анализа. Компромисс достигается путем введения различных обобщений бесконтекстных грамматик. Такими обобщениями являются программные и индексные грамматики.
Программные грамматики )
Программные грамматики отличаются тем, что после применения правила подстановки к некоторой промежуточной цепочке выбор следующего правила подстановки ограничен. Каждое правило подстановки состоит из метки, ядра и двух связанных с ядром списков перехода. Если правило можно применить к некоторой цепочке, полученной в процессе вывода, то после его применения следующее правило выбирается из первого списка (списка переходов при успехе). Если же правило нельзя применить к цепочке, то следующее правило выбирается из второго списка (списка переходов при неудаче).
Определение 2.8. Программной грамматикой Gp называется пятерка (PN, Ут, J, Р, S), где FN, Ут и Р — конечные множества вспомогательных символов, основных символов и правил вывода соответственно; 5 — начальный символ, S £ yN; J — множество
меток правил подстановки. Правило вывода из Р имеет вид (г) а->р 8^Щ F^WY
Правило подстановки а -> р называется ядром. Здесь а £ 7*7N7* и Р £ V*; г — метка (обычно номер правила); U — список переходов при успехе, a W — список-переходов при неудаче, U, W ^
Программная грамматика действует следующим образом. Сначала применяется правило с меткой (1). Если делается попытка применить правило (г), чтобы заменить подцепочку а, и выведенная перед этим цепочка содержит а, то применяется правило (г)а->р и следующее правило выбирается из правил, метки которых содержатся в списке переходов при успехе U. Если выведенная цепочка не содержит а, то правило (г) не используется (т. е. цепочка не изменяется), а следующее правило выбирается из тех, метки которых содержатся в списке переходов при неудаче W. В случае, когда ядра всех правил вывода имеют бесконтекстную форму (т. е. А -> Р), грамматика называется бесконтекстной программой. Аналогично, когда ядра правил Жмеют регулярный вид или вид правила непосредственно составляющих, грамматика называется регулярной программной или программной грамматикой непосредственно составляющих. Показано, что язык, порождаемый бесконтекстной программной грамматикой, может быть языком непосредственно составляющих. Более того, показано, что класс языков, порождаемых бесконтекстными программными грамматиками, включает все бесконтекстные языки.
Пример 2.9. Построим бесконтекстную программную грамматику G, которая порождает следующий язык непосредственно составляющих:
{0пГ0п I п = 1, 2, . . .}.
Пусть G = ({5, А, В, С}. {О, 1}, {1, 2, . . ., 8}, Р. S) и Р состоит из следующих правил вывода:
Метка
Ядро
Список переходов при успехе
Список переходов при неудаче
1
SАВС
S({2,5})
F«0^
2'
А-^ОА
S({3})
F(\0^
3
B-^YB
S({4})
F({0})
4
С-^ОС
S({2,5})
F ({0})
5
А-+0
S ({6})
F ({0})
6
В->1
S({7})
F ({0})
7
с-^о
S ({8})
F ({0})
8
S^0^
F^0^
Видно, что, используя правила 1 и 5—8, мы получаем следующий вывод:
S => АВС => ОВС 01С => 010.
С другой стороны, если, начиная с правила 1, переход от правила 2 до правила 4 использовать п раз, то можно получить цепочку 0n-1v41n-1S0n*'1C. После этого, применяя правила 5—8, мы получим 0nln0n.
Индексные грамматики т)
Это обобщение получается при введении в грамматику нового конечного множества — множества индексов. Грубо говоря, за вспомогательным символом в цепочке могут следовать произвольные списки индексов. Если вспомогательный символ со следующими за ним индексами заменяется одним или несколькими вспомогательными символами, индексы будут следовать за всеми вновь порожденными вспомогательными символами. Если вспомогательный символ заменяется основным, индексы пропадают.
Определение 2.9, Индексной грамматикой называется пятерка (FN, Ft, F. Р, 5), где FN, Ft, F и Р — конечные множества вспомогательных символов, основных символов, индексов и правил подстановки соответственно; S £ FN — начальный символ. Каждый индекс из F — это конечное множество специальных (индексных) правил подстановки вида А -> а, где Л £ FN и а £ £ У*. Правила подстановки из Р имеют вид А -> Х^Х^ . . . . . . Хтфт, где Xv Х2, . . ., Хт принадлежат FN или Ft, а ф1? ф2, . . ., -фт лежат в F*. Если Хг £ FT, то фг- = X.
Определим отношение => на цепочках множества (FNP* U ^т)* следующим образом:
Если аЛбр —- цепочка, в которой а и (3 С (FNP* U Ут)*, А £ FN, 6 £ Е*, а А ->- Х^Х^, • • • Х^ф™ — правило подстановки из Р, в котором Х^ £ F, а фг- £ F* для всех f, то считаем, что
аЛОр => аХ1ф1Х2ф2 . . . Хтфтр.
Здесь фг = X, если Хг С Ут, и фг = фД если Хг С FN.
Если аЛ/0р — цепочка, в которой а и р £ (FNP* J FT)*t А g Fn, / £ F и б £ F*, а А -^ Хх . . . Хт — индексное правило из /, то
аЛ/Ор => аХ1ф1Х2ф2 . . . Хтфтр,
где фг- совпадает с X, если Хг £ FT, и ф; = 6, если Xt £ FN.
Показано, что класс индексных языков содержит все бесконтекстные языки как собственный подкласс и является собственным подклассом класса языков непосредственно составляющих.
х) См. Ахо [И].
Более того, индексные грамматики достаточно мощны, чтобы обеспечить целый ряд не бесконтекстных свойств в алгоритмических языках.
Пример 2.10. Построим индексную грамматику G, которая порождает язык непосредственно составляющих {0nln0n | п = = 1, 2, . . .}.
Пусть G = ({5, Т, Л, S}, {0, 1}, {/, g), Р, 8), где Р состоит из следующих правил:
S->Tgl
T^Tf.
Т-^АВА, где
/ = {Л->0Л, В-МВ^
g-VA^O. В->1).
Применяя один раз правило 1 и п—1 раз правило 2 и..
наконец, 3, получим
S^Tg^Tjg^ . => T^g =^ Af^gB^gAf^g.
После этого, используя индексы 4 и 5, получаем Ar^gBf^gAr^g^OAf-^giBr^gOAr^g . .. => 0™ AgV^BgQM Ag => 0nln0n.
СПИСОК ЛИТЕРАТУРЫ
Chomsky N., Three models for the description of language. IEEE Trans Information Theory IT-2, 113—124 (1956). (Русский перевод* Хомский H . Три модели для описания языка, «Кибернетический сборник», вып. 2, 1961.)
Chomsky N., On certain formal properties of grammars, Information and Control^ 2, 137—167 (1959). (Русский перевод: Формальные свойства грамматик, «Кибернетический сборник», новая серия, № 2, 1966.)
Chomsky N., A note on phrase-structure grammars, Information and Controls 2, 393-395 (1959)
Chomsky N. and Miller G. A , Finite state languages, Information and Controls 1, 91 — 112 (1958) (Русский перевод* Хомский H , Миллер Д , Языки с конечным числом состояний, «Кибернетический сборник», вып. 2, 1961 )
Bar-Hillel У , Gaifman С , and Shamir Е., On categorial and phrasestructure grammars, Bull. Res. Counc Isr., Sect. 9F, 1 — 16 (1960).
Bar-Hillel Y , Perles M., and Shamir E , On formal properties of simple phrase-structure grammars, Z. Phonetik, Sprachwiss Kommunikat s 14, 143—172 (1961).
Aho A. V. and Ullman J. D., The theory of languages, J. Math. Syst. Theorys 2, 97—125 (1968).
Hopcroft J. E and Ullman J. D , Formal Languages and Their Relation! to Automata, Addison-Wesley, Reading, Massachusetts, 1969.
Kuroda S. Y., Classes of languages and linear-bounded Automata, Information and Control, 7, 207—223 (1964).
Rosenkrantz D. J., Programmed grammars; A new device for generating formal languages, IEEE Annu. Symp. Switching and Automata Theory, Sth, Austin, Texas, 1967, Conf. Record. (Русский перевод: Розенкранц Д., Программные грамматики и классы формальных языков, «Сборник переводов по вопросам информационной теории и практики», № 16, М., ВИНИТИ, 1970.)
Aho А. V., Indexed grammars: An extension of context free grammars. IEEE Annu. Symp. Switching and Automata Theory, Sth, Austin, Texas, 1967, Conf. Record. (Русский перевод: Ахо А., Индексные грамматики — расширение контекстно-свободных грамматик, сб. «Языки и автоматы», ч<Мир», М., 1975.)
Booth Т. L., Sequential Machines and Automata Theory, Wiley, New York, 1967.
Greibach S. A., A new normal form theorem for context-free phrase structure grammars, J. Assoc. Comput. Mach., 12, 42—52 (1965).
Chomsky N., Context-free grammars and pushdown storage. Quart. Progr. Dept. No. 65 Res. Lab. Elect., MIT, Cambridge, Massachusetts, 1962.
Rabin M. 0. and Scott D., Finite automata and their decision problems, IBM J. Ros. Develop., 3, 114—125 (1959). (Русский перевод: Рабин M. О., Скотт Д., Конечные автоматы и задачи их разрешения, «Кибернетический сборник», вып. 4, 1962.)
Nelson R. J., Introduction to Automata, Wiley, New York, 1968.
,17. Minsky M. L., Computation: Finite and Infinite Machines, Prentice-Hall, Englewood Cliffs, New Jersey, 1967.
Harrison M. A., On the relation between grammars and automata, Advances in Information Syst. Sci., 4, 39—92 (1972).
Ginsburg S., The Mathematical Theory of Context-Free Languages, McGraw- Hill, New York, 1966. (Русский перевод: Гинзбург С., Математическая теория контекстно-свободных языков, «Мир», М, 1970.)
Kasai Т., An hierarchy between context-free and context-sensitive languages, J. Comp. System Sci., 4, 492—508 (1970).
21.Гладкий А. Б., Формальные грамматики и языки, «Наука», М., 1973.
22*.Гусев А. А., Смирнова И. М., Языки, грамматики и абстрактные автоматные модели, Автоматика и телемеханика № 4, 72—94, № 5, 73—94 (1968).
Глава 3
Языки описания образов
Выбор непроизводных элементов
В разд. 1.1 было указано, что первый этап построения синтаксической модели образов состоит в определении множества непроизводных элементов, при помощи которых можно эти образы описать. Это определение существенно зависит от природы образов, от специфики рассматриваемой области применения и от характера доступных технологических средств. Общего решения проблемы выбора непроизводных элементов пока не найдено. Обычно при этом выборе стараются выполнить следующие требования:
Непроизводные элементы должны служить основными элементами образов и обеспечивать адекватное и сжатое описание 'исходных данных в терминах заданных структурных отношений (например, отношения конкатенации).
Поскольку структурная информация в непроизводных элементах не важна и они считаются простыми и компактными образами, их выделение и распознавание должны легко осуществляться существующими несинтаксическими методами.
Для речевых образов и для отношения конкатенации «хорошим» множеством непроизводных элементов считают совокупность фонем ). Для описания рукописного текста в качестве непроизводных элементов было предложено использовать штрихи. Однако вообще для изображений не найдено «универсальных элементов», аналогичных штрихам в рукописном тексте и фонемам в речи. В ряде случаев для обеспечения адекватного описания образов требуют, чтобы непроизводные элементы содержали информацию, важную для данного конкретного приложения. Например, если в задаче распознавания важны размер, или форма, или положение, то в непроизводных элементах должна быть информация о размере (форме или положении), чтобы классы объектов были различимы при любом методе анализа описаний. Это требование часто приводит к необходимости использования семантической информации при описании непроизводных элементов. Этому вопросу посвящен разд. 3.4. Разные постановки зада
а1 У У d*а1 У У d*0°90°180°270°0°90°180°270°6'6'
а1 У У d*
а1 У У d*
0°
90°
180°
270°
0°
90°
180°
270°
6'
6'
чи, даже при одних и тех же исходных данных, обусловливают выбор разных непроизводных элементов. Для иллюстрации сказанного воспользуемся следующим примером.
Пример 3.1. Пусть необходимо отличать прямоугольники (разного размера) от непрямоугольников. Тогда выбирают следующие непроизводные элементы:
горизонтальный отрезок; вертикальный отрезок; горизонтальный отрезок; вертикальный отрезок.
Множество всех прямоугольников (разного размера) можно представить одним предложением или цепочкой a’b'c'd'
Если задача состоит в различении прямоугольников разного размера, то это описание не годится. В этом случае в качестве непроизводных элементов нужно выбрать отрезки единичной длины:
а
НН единичная длина
Тогда множество прямоугольников разного размера можно описать при помощи языка
L = ^anbW | п, т = 1, 2, . . .}.(3.1)
Требование 2 часто вступает в противоречие с требованием 1, поскольку выбранные в соответствии с 1 непроизводные элементы не всегда легко распознать при помощи существующих методов. С другой стороны, в соответствии с требованием 2 можно выбирать довольно сложные непроизводные элементы, лишь бы они были доступны распознаванию. Чем сложнее непроизводные элементы, тем проще могут быть структурные описания, т. е. они могут укладываться в рамки простых грамматик. В реализации распознающей системы достижение компромисса между указанными требованиями может стать весьма важной задачей. В качестве примера отметим задачу распознавания двумерных матема-
тических выражений, в которой непроизводными элементами служат знаки и математические символы (приложение В). Если же знаки рассматривать как подобразы и описывать их более простыми непроизводными элементами (например, штрихами или отрезками линий), то структурные описания математических выражений будут гораздо сложнее.
Сверху - внизуСверху - внизуокружаетокружаетДругим примером служит распознавание китайских иероглифов (приложение Г) [1—3]. Из исследования структуры этих знаков можно вывести небольшое число простых операций сегментации следующего вида:
Сверху - внизу
Сверху - внизу
окружает
окружает
сегментациисегментации
сегментации
сегментации
Структурное с ба_сле8а отношение ри
Каждая операция порождает конкретное структурное отношение между двумя соседними подобразами или непроизводными элементами. Применяя эти операции рекурсивно, т. е. снова сегментируя каждый полученный фрагмент при помощи одной из этих трех операций, можно выделить в китайском иероглифе подобразы и непроизводные элементы. Если непроизводные элементы можно выделить и распознать существующими методами, то и сам иероглиф может иметь синтаксическое описание в заданных структурных отношениях. Если в качестве непроизводных элементов взять обычные штрихи, то структурные описания, скорее всего, будут гораздо более сложными.
В одной из ранних работ [4], посвященной разбиению изображений на непроизводные элементы, описан довольно привлекательный эвристический метод определения этих элементов в процессе наблюдения обучающей совокупности объектов. Сначала изображение подвергается сканированию, организованному при помощи специальной программы. В результате получают описания тех сегментов (фрагментов) изображения, которые наиболее просто выделить данной процедурой сканирования, но эти фрагменты еще не образуют настоящего разбиения. В процессе сканирования осуществляется также ряд операций предобработки: ликвидация шума, заполнение разрывов, отслеживание контура. Полученные фрагменты анализируются и, когда это возможно, соединяются в настоящие части изображения. Сегменты прямолинейных отрезков описываются длиной и наклоном, а сегменты криволинейных отрезков — длиной и кривизной. Структурные отношения между различными сегментами (непроизводными эле- ментами)ж записываются в таблицу связей, или соединений. Прог-
рамма-ассемблер вырабатывает «утверждение», в котором дается полное описание изображения. Это описание не зависит от ориентации и размера изображения. Длина различных его частей выражена в относительных единицах. В сущности это описание является кодовым представлением изображения. Его можно рассматривать как одномерную цепочку символов определенного алфавита. В этом кодовом представлении даны длина, наклон и кривизна каждого непроизводного элемента, а также указания об их концах и соединениях друг с другом. В работе нет явных попыток формализации синтаксиса образов.
Описанная в работе [4] процедура распознавания состоит в сравнении или согласовании утверждения или кодовой цепочки, описывающей исходное изображение, с утверждениями, описывающими уже известные образы. Эти утверждения вместе с названиями этих образов хранятся в памяти машины. Для сокращения времени поиска имеющиеся в памяти утверждения сгруппированы по некоторому общему признаку. Например, одну группу составляют все утверждения об изображениях, имеющих четыре концевые точки. В этом случае утверждение об изображении с четырьмя концевыми точками на самой ранней стадии распознавания будет сравниваться с утверждениями именно этой группы. Критерием успешного сравнения служит определенная мера согласованности исходного утверждения с утверждением, описывающим идентифицированный образ. Для найденного образа мера согласованности должна быть существенно больше, чем для всех остальных. Программа состоит из последовательности тестов от сравнения по небольшому числу важных признаков до детального сопоставления утверждений. Для каждого следующего шага отбираются те утверждения, которые имеют на данном шаге достаточно высокую меру согласованности с рассматриваемым утверждением. Несмотря на эвристический характер, эта схема считалась довольно успешной, поскольку она позволяла преодолеть такие трудности, как вариации размера изображения, его ориентации и т. д. Однако ее реализация требовала неоправданно больших затрат времени и большого словаря для запоминания значимых структур образов.
Иден и Хелл разработали формальную модель абстрактного описания английской скорописи [5]. Непроизводными элементами в этой модели служат четыре различных сегмента линий, описываемые тройкой
^i = Кжл> Уп)^ Q^j^ Uj^i ®j’L (3-2)
где (^-, уД — приблизительное положение концевых точек сегмента, а 6; обозначает направление поворота от первой концевой точки ко второй. Величина 07 положительна, если поворот осуществляется по часовой стрелке, и отрицательна в противном случае.
«черта»«черта»«крючок»«крючок»Этим четырем непроизводным элементам соответствуют тройки а, =[(1,0), (0, 0), +]
«черта»
«черта»
«крючок»
«крючок»
«дуга»«дуга»<у2 = [(1, 1), (0, 0), +J
«дуга»
«дуга»
а3 = [(0, 0), (0, 1), +]
о4 = [(1, е), (0, 0), +], 0<е<1, «петля» Щ
Эти непроизводные элементы могут быть преобразованы изменением знака 6 или отражением относительно вертикальной или горизонтальной оси. В результате всех этих преобразований получается 28 штрихов (в силу симметрии дуга порождает лишь 4 штриха). В общеупотребительной английской скорописи из этого» числа используется всего 9 штрихов.
Слово полностью определено последовательностью штрихов,, составляющих буквы. Конечные последовательности штрихов отображаются в множество непрерывных функций. Это отображение* определено правилами конкатенации и правилами прочерчивания линии текста в определенном порядке. Слово представлено образом этого отображения. Необходимо всего лишь два правила конкатенации. Первое правило задает положение штрихов внутри буквы. Конкатенация двух последовательных штрихов осуществляется при помощи отождествления абсциссы последней концевой точки первого штриха с абсциссой первой концевой точки второго штриха. По второму правилу левая концевая точка штриха, находящегося за окончанием буквы, должна быть расположена правее правой концевой точки последнего штриха, находящегося до окончания буквы. На рис. 3.1 показаны простые штрихи скорописного слова «globe», а на рис. 3.2 — их конкатенация. Для однозначного задания всех последовательностей английских букв этих Двух правил конкатенации недостаточно. Однако письму, даже аккуратному, вообще присущи неоднозначности.
В' работе [5] нет описания формального синтаксиса рукописного текста. Интересные экспериментальные результаты по распознаванию скорописи получены Эрнестом [6] и Мермельстайном и Иденом [7], которые использовали словарь и эвристические Критерии распознавания. Кроме того, исследовалась и динамика (в пространстве и времени) траектории конца пера во время его Движения по бумаге [8]. Предполагают, что этим движением управ-
ляет пара ортогонально прикладываемых сил, как если бы одна пара мышц осуществляла вертикальное, а другая пара — горизонтальное перемещение.
Рис. 3.2. Представление слова «globe» последовательностью штрихов.Рис. 3.2. Представление слова «globe» последовательностью штрихов.Рис. 3.1. Штрихи рукописного слова «globe».
Рис. 3.2. Представление слова «globe» последовательностью штрихов.
Рис. 3.2. Представление слова «globe» последовательностью штрихов.
Более общие методы выделения непроизводных элементов можно разделить на две группы. В одной из них делается упор на границы, а в другой — на области изображения. Описанию этих групп методов посвящены следующие разделы.
Выделение непроизводных элементов на границах и остовах
Множество непроизводных элементов, которые обычно используют для описания границ и остовов, получают по схеме цепного кодирования, предложенной Фрименом [9, 10]. На двумерное изображение накладывают прямоугольную сетку и узлы сетки, которые наиболее близки к точкам изображения, соединяют отрезками прямых. Каждому такому отрезку в соответствии с его наклоном присваивают восьмеричное число. Таким образом, изображение представляется цепью (последовательностью) или цепями восьмеричных чисел. На рис. 3.3 показано множество начальных элементов и кодовая цепочка, описывающая кривую. Эта дескриптивная схема обладает рядом полезных свойств. Например, поворот изображения на угол, кратный 45°, сводится к прибавлению восьмеричного числа (сложение по модулю 8) к каждому числу цепочки. Конечно, при этом изображение’может исказиться. Только поворот на угол, кратный 90°, никогда не приводит к искажениям изображения. Легко выполнимы и некоторые другие простые манипуляции с изображением, такие, как растяжение, измерение
длины кривой, определение самопересечений. Изменяя зернистость сетки, накладываемой на изображение, можно получить
Рис. 3.3. Цепной код Фримена, а — непроизводные элементы; б — кодовая цепочка кривой 7600212212.
любое желаемое разрешение. Этот метод не ограничен изображениями с односвязными замкнутыми границами. Его можно применять для описания произвольных двумерных фигур, составленных из прямых и кривых линий и отрезков.
Значительная работа с использованием цепного кода была проделана Ноуком и Уили [11] и Федером [12]. Ноук и У или пытались продемонстрировать, что лингвистический подход может быть применен для описания структурных отношений внутри образов (в данном случае нарисованных вручную печатных знаков). Для иллюстрации описанной ими процедуры рассмотрим следующий пример. После выделения остова изображения, скажем буквы А, в качестве первоначального описания формируется цепной код. На рис. 3.4 показано это описание буквы А. Каждый сегмент линии представлен закодированной цепочкой дуг, направлением этой цепочки, а также начальной и конечной вершинами. Далее для устранения нерегулярностей в сегментах (сглаживания) применяется «трансформационная грамматика» [13, 14]. Правила этой грамматики приведены на рис. 3.5а и 3.56. После замены кодовых цепочек дуг дуговыми символами каждое изображение может быть представлено конечным планарным ориентированным и связным графом. Структуру каждого такого графа можно полностью описать вершинами и дугами. Список соединений между вершинами и символы соответствующих дуг составляют предложение на языке образов. Описание буквы А после применения трансформационной грамматики приведено в следующей таблице:
5—086
Цепочка
ДУГ
Дуговой символ
Относительное направление
Начальная вершина
Конечная вершина
ОНО
0
А
В
222222
2
В
С
0076765544
6
С
в
7707
7
D
с
Трансформацион
LIN
0
А
в
ная грамматика
LIN
2
В
с
^s
CURL
6
С
в
>
LIN
7
D
с
Поскольку число дуговых символов и число вершин конечны, язык Lc описания знака является' регулярным языком. Однако
ппе&авление Относительное Начнааляь' Конечная
прцмочки дуг «оправлениевершина
ОНООА8’
2222222.ВС
00767655446С6
77077ВС
Рис. 3.4. Начальное описание буквы А.
Ноук и Уили применили следующий бесконтекстный язык L*e.
L’^^{S, Н, Г, R}, Ут = {^ • • • Jm, А, В, С, D, Е, F, G} и Р:‘
S-^H,
S-^SH,
H-+TRT,
Т-^А, Т-^В, Т-^С. T-^D, Т-^Е, T-+F, T-^G.
R —>Zb R—^^ •.. R —>Zi52,
где H — предложение, T — вершина, a R — пара дуговой символ — относительное направление. Поскольку дуговых символов 19, а относительных направлений 8, число пар составляет 19 X 8 = 152. Очевидно, что Lccz Lc.
Распознавание осуществляется согласованием описания знака на языке Lc со словарем прототипов. Алгоритм этого сопоставления состоит из четырех этапов:
Этап 1. Получить стандартное описание «неизвестного» исходного изображения. ~
Правило преобразования Графическая интерпретация
aba - ааа
аса - ааа
ada - ааа
аеа - ааа
а а
а а а
О- *0—*о-*о
ааао—*о—*ю—*-о
ааа
baa — ааа
ааа
саа — ааа
aab — ааа
ааа
о—*о—*ю -■►О
аас — аац
а а
ааао—►с-*о—*о
Рис. 3.5а. Правила трансформационной грамматики LB (язык дуг), где ® £ {О, 1, 2, 3, 4, 5, 6, 7}, b = а + 1 (по модулю 8), с = а — 1 (по модулю 8), « = а + 2 (по модулю 8), а обозначает первый или последний символ а в це
почке.
Рис. 3.56» Дуговые символы (стрелки указывают относительное направление).
Этап 2. Отбор по признакам. Сделать предварительный отбор прототипов по числу вершин и дуговых символов.
Этап 3. Согласование структур без относительных направлений. Всеми возможными способами переобозначить вершины прототипа и, не обращая внимания на относительные направления, получить точное согласование между описанием прототипа и «неизвестным» описанием.
Этап 4. Полное согласование структур. Описание прототипа, полученное после выполнения этапа 3, сопоставить с «неизвестным» описанием, учитывая относительные направления. Если согласование найдено, то распознавание завершено. В противном случае вернуться к этапу 3 и проверить результат нового переобозначения вершин прототипа.
Хотя в распознавании знаков и был достигнут некоторый успех, этот метод обладает рядом недостатков, а именно:
Грамматики L^ порождающей все значимые образы и только их , найти не удалось.
Необходимо ограничить допустимую длину предложений.
Невозможно использовать контекст.
Синтаксический анализ (алгоритм согласования) неэффективен и медленно действует.
Рассматривались только связные изображения.
Тем не менее идея локального сглаживания кодовых цепочек и их перемаркировка как новых непроизводных элементов описания образов была подхвачена рядом других авторов [15, 16]. Трансформационная грамматика Ls преобразует исходные восьмеричные непроизводные элементы в множество новых непроизводных элементов (дуговых символов). Это делает описание образов более эффективным, так как в данном случае уменьшает длину предложений.
В работе Федера [12] рассмотрены только такие изображения, которые можно закодировать цепочкой непроизводных элементов. В ней обсуждаются некоторые моменты разработки языков образов, включая использование уравнений от двух переменных (для прямых, окружностей, дуг и т. д.), свойств образов (самопересечения, выпуклость и т. д.) и различных мер сходства кривых. Исследован вопрос о вычислительной мощности (сложности автомата), необходимой для обнаружения элементов этих языков. Однако этот вопрос осложняется тем, что, во-первых, эти языки, как правило, являются языками непосредственно составляющих, а не бесконтекстными, во-вторых, цепной код дает лишь кусочнолинейную аппроксимацию исходного изображения и, в-третьих, кодирование кривой неоднозначно, поскольку оно зависит от расположения и ориентации этой кривой относительно кодовой сетки.
Другие применения цепного кода включают описание контурных карт [17], «согласование формы» [18] и идентификацию треков частиц высокой энергии на фотографиях пузырьковой камеры 119]. Контурные линии поддаются цепному кодированию. Задачи анализа контурных карт состоят в нахождении местности, на которой можно возвести плотину, водоразделов, местности, видимой с вершины известной горы, в определении оптимального маршрута автомагистрали в горах. В задаче согласования формы требуется сопоставить два двумерных объекта с неправильными контурами по их внешней границе или ее части. В некоторых задачах подобного рода заранее известны масштаб и ориентация, и требуется определить только параметр переноса. К этой категории относится сопоставление аэрофотоснимков и контурных карт. В других задачах ориентация или масштаб, или оба этих параметра неизвестны и их требуется определить. В качестве примера задач, в которых необходимо найти относительную ориентацию, можно прилети создание программ, осуществляющих реставрацию глиня-
ных сосудов по черепкам или складывание картинок из кусочков [20].
Непроизводные элементы из границы, остова или контура используют и в других системах синтаксического распознавания образов: при распознавании нарисованных вручную печатных знаков [21—23], классификации фотографий треков частиц в пузырьковой или искровой камерах [24—26], анализе хромосом [27, 28], идентификации отпечатков пальцев [29—32], распознавании портретов [33, 34] и анализе сцен [35—37]»
Непроизводные элементы из областей
В работе Павлидиса [38] предложено использовать множество непроизводных элементов для кодирования геометрических образов. Эти элементы строятся из областей. Основными непроизводными элементами служат полуплоскости пространства образов ) (поля наблюдения). Можно показать, что любая фигура аппроксимируется произвольным многоугольником, который в свою очередь можно представить как объединение конечного числа выпуклых многоугольников. Каждый выпуклый многоугольник можно представить в виде пересечения конечного числа полуплоскостей. Если подходящим образом задать последовательность выпуклых многоугольников, составляющих произвольный многоугольник, то можно однозначно определить минимальное множество в некотором смысле максимальных многоугольников, так называемых первичных подмножеств, объединение которых даст исходную фигуру. По аналогии с лингвистикой фигура — это «предложение», составляющие ее выпуклые многоугольники —«слова», а полуплоскости —«буквы». Процесс вывода такого представления описан ниже.
Пусть А — ограниченный многоугольник, a sx, s^ . . ., sn — его стороны. Введем следующее определение.
Определение 3.1. Точка х плоскости называется положительной по отношению к одной из сторон, если она лежит по ту же сторону от продолжения этой стороны, по которую лежит многоугольник в окрестности самой стороны.
Пример 3.2. Для изображенного на рис. 3.6 многоугольника А точка х положительна по отношению к сторонам s5 и s6 и отрицательна по отношению к s7, а точка у положительна по отношению к сторонам s4 и s7 и отрицательна по отношению к s5. Если продолжить все стороны многоугольника Л, то вся фигура будет пересечена некоторыми из этих продолжений и будет разбита на выпуклые многоугольники Л1? Л2, . . ., Л9.
Очевидно, что совокупность положительных по отношению к стороне точек образует полуплоскость, граница которой проходит по продолжению этой стороны. Пусть Кг — полуплоскость, соответствующая стороне s^ a Q — пересечение всех полуплоско стей 7^, К^ . . ., hn. Если А — выпуклый многоугольник, то Л = = Q. Если А не является выпуклым, то множество точек Q может
быть пустым или отличным от множества точек А. Пусть Qi — пересечение всех полуплоскостей, за исключением ht^ . . ., hlk1 где I = {/17 . . ., ik}— множество индексов. Определим последовательность множеств Qz
Q = Л ht, Qj= n ht, Qjh= n hi, ... . (3.3) i=l i=l i=l
i^j W, i^h
Поскольку Q cl Q^ci Qjk cz . . ., эта последовательность возрастающая. Последним элементом последовательности для множества 7 = {1, . . ., п} служит вся плоскость. Если такая последовательность имеет максимальный элемент в том смысле, что никакой из последующих элементов не является подмножеством многоугольника Л, то он называется первичным подмножеством А Первый непустой элемент последовательности Q^ который является подмножеством многоугольника Л, называется ядром А. Можно показать, что объединение всех первичных подмножеств в точности образует многоугольник А.
Первичные подмножества данного многоугольника могут быть найдены в результате поиска максимальных элементов во всевозможных последовательностях ^, Q^ Qjkl . . .. Поскольку эта процедура формально правильна, совокупность первичных подмножеств многоугольника А единственна. Для иллюстрации этой процедуры рассмотрим многоугольник на рис. 3.7. Пересечение всех полуплоскостей Q образует треугольник СРВ. Легко видеть,
что этот треугольник является также пересечением полуплоскостей h2> Л3 и А6, следовательно, только множества Q^ ^3, Q6 отличны от Q. Множество ^2 образует трапецию PDEH, множество ^3 — трапецию TUBS, а множество Q^ — треугольник MCL. К каж-
Рис. 3.7. Многоугольник.Рис. 3.7. Многоугольник.дому из этих множеств применяется одна и та же процедура. Множества ^23 (прямоугольник TEHS) и (>24 не входят в многоугольник, поэтому в дальнейшем их рассматривать не нужно. Множество ^2б, т. е. трапеция DEKM, образованное полуплоскостями А3, Л4, /^7, А8, входит в многоугольник. Если удалять по одной из этих полуплоскостей, то получающиеся
Рис. 3.7. Многоугольник.
Рис. 3.7. Многоугольник.
в результате множества уже не
RjkRiklRjkRiklРис. 3.8. Диаграмма первичных множеств многоугольника на рис. 3.7.Рис. 3.8. Диаграмма первичных множеств многоугольника на рис. 3.7.являются подмножествами многоугольника. Следовательно, У26 — первичное подмножество. Как показано на рис. 3.8,
RjkRikl
RjkRikl
Рис. 3.8. Диаграмма первичных множеств многоугольника на рис. 3.7.
Рис. 3.8. Диаграмма первичных множеств многоугольника на рис. 3.7.
ход процедуры можно представить в виде дерева. Первое число у каждой вершины — это номер пропущенной полуплоскости (в добавление к предыдущим), а второе число (в скобках) минимальное множество полуплоскостей, образующих данное пересечение. В этом примере первичными множествами, кроме @26, служат только множества @2? (трапеция DFGP) и ^^ (трапеция ABLN).
Если исходная фигура аппроксимирована не произвольным многоугольником, а многоугольником, стороны которого параллельны заданным заранее направлениям ф1? ф2, • • м Фь, то этот многоугольник можно представлять не конечным множеством выпуклых фигур, а совокупностью полуплоскостей из конечного алфавита. Любая полуплоскость, соответствующая стороне многоугольника, есть результат параллельного переноса одной из полуплоскостей Hi, заданных выбранными направлениями. Эти полуплоскости играют роль непроизводных элементов. Если обозначить через G группу параллельных переносов, то каждое первичное множество можно представить как
2k ..
R3 = П ДНЬА € G.(3.4)
i=l
Число пересекающихся множеств в этой формуле равно 2/с, поскольку каждое направление определяет две полуплоскости. Полуплоскость будет включена в выражение (3.4), даже если она не участвует в образовании множества Rj. При этом преобразование должно быть выбрано так, чтобы после переноса эта плоскость вышла за рамки изображения. Исходный многоугольник А можно представить в виде
II2k
А = и Rj= и n 8\Ht.(3.5)
j=l j=l i=l
Если ввести меру сходства 8 (А, В) двух выпуклых многоугольников А и В, то для любого заданного числа 6 можно найти такую конечную последовательность В выпуклых многоугольников, что Для любого многоугольника А найдутся элемент последовательности В и элемент группы G, такие, что 8 (Л, gB) < 6. Элементы последовательности В называются основными компонентами. Можно показать, что
А = U giBhuv(3.6)
1=1
Подходящая мера близости должна быть выбрана исходя из интуитивных представлений о близости и из требования инвариантности по отношению к подобным преобразованиям, т. е. к таким преобразованиям, которые не изменяют формы фигуры. Если G — группа подобных преобразований, то на множестве фигур можно ввести следующее отношение эквивалентности: А ~ В, если существует элемент g £ G, такой, что А = gB. Это отношение порождает разбиение множества фигур на непере- ^екающиеся классы. Если d — метрика, определенная на множестве фигур, то «расстояние» (не обязательно метрику) на множестве классов эквивалентности можно определить в виде
О (Ml, [5]) - Min d (gA, tBY(3.7)
g.
Для ограниченных выпуклых многоугольников хорошие результаты дает применение расстояния, порождаемого метрикой Хаусдорфа [39]. Пусть G — группа изоморфизмов, например параллельных переносов. Тогда выражение (3.7) можно упростить:
Я ([Л], [S]) = Minfo(X, g5)==Min/>(g.4, 5), (3.8) gEG g^G
где h —- расстояние Хаусдорфа. Легко показать, что в данном случае величина Н в действительности является метрикой.
Выпуклый многоугольник, стороны которого параллельны заданным направлениям, можно определить как последовательность чисел — длин соответствующих сторон. Например, в системе
Рис. 3.9. Выпуклые многоугольники.
из четырех направлений 0°, 45°, 90°, 135° многоугольник А на рис. 3.9 может быть представлен последовательностью lv Ц, Ц^ ^, ^5» ^6» ^7» ^8» если в качестве начальной выбрать самую левую точку стороны, параллельной направлению 0°. Аналогично треугольник В будет представлен последовательностью 0, а, 0, а, 00, а, 0, а многоугольник С — последовательностью а, Ь, с, 0, d, О, е, 0. Для таких выпуклых многоугольников можно ввести другую меру близости:
8
, (3.9) 1=1
которая инвариантна по отношению к переносу и является метрикой. Если требуется инвариантность к изменению масштаба, то эту меру можно немного изменить:
D'{A, В) = Min [2 (Zf-mZf)2]1/2. (3.10) 771 1»—1
Если выпуклый многоугольник имеет сторону, не параллельную ни одному из заданных направлений, эту сторону можно аппроксимировать разными направлениями. Например, если сторона проходит под углом 23° к горизонтали, ее можно аппроксимировать стороной под углом 0° либо стороной под углом 45°.
После того как множество основных компонент и конечное множество преобразований определены, фигуру можно представить бинарной матрицей В, столбцы которой соответствуют основным
компонентам В11 . . ., BNl а строки — элементам группы G. Элемент матрицы равен единице, если в разложении (3.6) присутствует соответствующая комбинация gt и Вкиъ и нулю в противном случае. Тогда распознавание можно свести к нахождению определенных основных компонент и их взаимных отношений. Если матрицу представить в виде двоичного вектора, вытянув ее столбцы или строки в одну строку, то можно применять многие дискриминантные методы классификации.
Этот подход дает формализм описания синтаксиса многоугольников фигур более общего вида, которые можно достаточно хорошо аппроксимировать многоугольниками. Процедура анализа, или распознавания, требует определения подходящих мер близости многоугольников. Рассмотренные меры близости чувствительны к наличию шумов в исходных объектах и, кроме того, их трудно реализовать на ЦВМ. В работе Розенфельда и Стронга [40] предложена более общая процедура выбора непроизводных элементом из областей
Другой способ представления многоугольников состоит в использовании первичных графов [41, 42]. Вершины первичного графа многоугольника А соответствуют его ядрам и первичным подмножествам, а дуги связывают каждое ядро со всеми содержащими это ядро первичными подмножествами. В качестве примера на рис. 3.10,а показаны первичные подмножества (заштрихованные участки — ядра), аппроксимирующие фигуры многоугольников, а на рис. 3.10,6 — соответствующие графы. Такое представление фигуры не всегда однозначно. Однако оно дает Нужную для описания информацию, в частности топологическую. Кроме того, как будет показано далее, образы, представленные графами, можно формально описывать в рамках грамматик графов.
В связи с задачей анализа сцен [36, 43] обсуждали другой подход к анализу геометрических образов при помощи выделения областей. Минский и Пейперт [44] рассматривали непосредственное выделение областей на полутоновом изображении, минуя процедуры нахождения краев и аппроксимации их прямыми. Области строились как объединение квадратов, углы которых имеют одинаковую или почти одинаковую яркость. Метод Гузмана [45] основан на предположении, что в результате предобработки изображение представлено списком вершин, линий и областей. При помощи эвристических правил анализа типов пересечений линий я стыков областей этот список преобразуется в набор двух- или трехмерных поверхностей. Были исследованы и некоторые схемы распознавания, основанные на сопоставлении редуцированных описаний объектов со словарем прототипов. Брайс и Феннема [46] Изучили процедуру разбиения изображения на элементарные области одинаковой яркости. Они использовали два эвристических Правила объединения этих областей таким образом, чтобы в резуль-
Первичные множествап^мвппили ядрасим о алПервичные множествап^мвппили ядрасим о алABLMаАПЕРbCDHIсOFGNdABQP1CDER2OTKN3SFGJ4ABLMаАПЕРbCDHIсOFGNdABQP1CDER2OTKN3SFGJ4
Первичные множествап^мвпп
или ядрасим о ал
Первичные множествап^мвпп
или ядрасим о ал
ABLMа
АПЕРb
CDHIс
OFGNd
ABQP1
CDER2
OTKN3
SFGJ4
ABLMа
АПЕРb
CDHIс
OFGNd
ABQP1
CDER2
OTKN3
SFGJ4
я • п г
9 J
f
Ж.. h_/
(Cl)
Рис. 3.10. (а) — многоугольные фигуры; (б) — соответствующие первичные графы.
тате получались области, более соответствующие естественным линиям сцены, а не линиям, обусловленным квантованием и шумом. После аппроксимации границ областей прямыми линиями программа анализа сцены интерпретировала изображение. Эта интерпретация осуществлялась при помощи некоторых простых тестов над участками объектов, которые порождались процедурой, подобной процедуре Гузмана.
3.2. Грамматика образа. Введение
Допустим, что рассматриваемая задача выделения непроизводных элементов может быть удовлетворительно решена. Следующий шаг состоит в построении грамматики (или грамматик), порождающей язык (или языки) для описания исследуемых образов. В лучшем случае было бы хорошо иметь систему восстановления грамматики, которая способна строить грамматику по мно-
жеству цепочек, описывающих эти образы. К сожалению, такой системы, за исключением некоторых очень специальных случаев, построить пока не удалось (см. гл. 7). В большинстве случаев до сих пор при построении грамматики проектировщик основывается на доступных априорных знаниях и своем опыте. Известно, что увеличение дескриптивной мощности языка сопровождается ростом сложности системы анализа (распознающего устройства или акцептора). Конечные автоматы способны распознавать или допускать регулярные языки, но дескриптивная мощность этих языков слабее, чем мощность бесконтекстных языков и языков непосредственно составляющих. С другой стороны, для того чтобы допускать языки, порождаемые бесконтекстными грамматиками или грамматиками непосредственно составляющих, необходимы неконечные и недетерминированные устройства. За исключением класса детерминированных языков ), для анализа бесконтекстных языков обычно требуются недетерминированные процедуры грамматического разбора. Компромисс между дескриптивной мощностью и эффективностью анализа в конкретной задаче полностью определяется проектировщиком. Например, если анализ должен быть эффективным, то для описания образов можно использовать язык с предшествованием. С другой стороны, для эффективного описания образов можно выбрать бесконтекстную программную грамматику, порождающую язык непосредственно составляющих. На практике это теоретическое затруднение может быть и не столь серьезным, если при построении грамматики соблюдаются некоторые предосторожности. Это особенно справедливо, когда нужные языки в действительности регулярны или могут быть аппроксимированы регулярными, хотя грамматики этих языков имеют вид грамматик непосредственно составляющих. Для иллюстрации некоторых моментов предыдущего обсуждения, в частности возрастающей общности правил подстановки в более общих классах грамматик, рассмотрим следующие простые примеры.
Пример 3.3. Пусть необходимо построить грамматику, порождающую регулярный язык L = {an, Ьп, сп, | 1 ^ п ^ 3}. Например, это может быть язык, описывающий все равносторонние треугольники, длина стороны которых равна одной, двум или трем единицам. Для того чтобы эта грамматика была совместимой со специализированной процедурой анализа сверху вниз, она должна порождать основные символы слева направо и по одному на каждое применение какого-либо правила подстановки. Вспомогательные символы не могут порождаться слева от основных. Других ограничений на порождение вспомогательных символов нет.
В этом примере возможны грамматики:
1) Регулярная грамматика 6?! = (Ук, Ут» Л 5), где
Ук={5\ ^l? ^2» ^10, ^20» В301 B2i1 B^i, S32, С 1ч С^ч С3^ Ут~ {#» Ь^ с^
и Р:
S -
>аАь
>ЪС1ч
Вз2"
>ЪСзч
S -
>* йВ^
^20”
** ЬВ21,
С, -
>с,
А-
>аА^
^21 -
+ ьс2,
^2 -
> cCi,
Л-
*■ ОВ^
B^Q-
^ ЬВз1,
>- сС2.
^2-
^530,
Вы—
>■ bB32l
2) Бесконтекстная грамматика (в нормальной форме Грейбах) С2 = (Ук» Ут, Р, SY где
УК — {^, ^h ^21 Bi^ В2ч
Вз, С},
Ft = {«, Ъ, с}
и Р:
S-
а А10Ai —э
** <2242^,
В2-
*ьвь
А1-
>6,а2-.
- (1B3C ч
В1-
At-
>■ аВ2С,Вз —>
-ьв21
с-
>с.
3) Бесконтекстная программная грамматика G3 = фк, Ут» J» Р, S), где
Ук = {^ В, С}, Ут{л, Ьч с},J-{1, 2, 3, 4, 5}
и Р:
Метка
Ядро
Список переходов при успехе
Список переходов при неудаче
1
S-*aB
{2,3}
{0}
2
В^- аВВ
{2,3}
{0}
3
В-*С
{4}
{5}
4
С^ЬС
{3}
{0}
5
С-^с
{5}
{0}
Даже для столь простого примера бесконтекстная грамматика гораздо компактнее регулярной. Грамматика непосредственна составляющих, порождающая рассматриваемый язык, не очень сильно отличается от бесконтекстной, поэтому она не приведена. Однако бесконтекстная программная грамматика еще более компактна, чем бесконтекстная.
Пример 3.4. Язык L = {anbncnc?n | п ^ 1} можно интерпретировать как язык описания квадратов со стороной длины п = 1, 2, . . . • *
с
а
Известно, что это язык непосредственно составляющих. Его можно порождать следующими двумя способами:
Грамматика непосредственно составляющих Сч = (Ук, Ут» Р, 5), где
rN = {S, л, в, с.
D, E, F, G},
Ft =
{a, b, c, d^
и Р:
8-
*■ аАВ,
DB-
^FB,
dFB-
^dFd,
А-
aAC,
Ed-
^Gd,
dFd-
-*Fdd,
А-
^D,
cG-
>Gc,
cF-
-^Fc,
Dc-
^cD,
dG-
^Gd,
bF-
-^bbc,
Dd-
^dD,
aG —
* abcD,
aF
-*ab,
DC-
>EC,
bG-
bbcD,
bB-
bed.
EC-^-Ed,
Бесконтекстная программная грамматика G2 — (Ум? Ут, Р» S, J), где
Ук-{^, А. В, С. D^ Ут = {а, Ь, с, d^ J-{1, 2, 3, 4, 5, 6, 7} и Р:
Список
Список
Метка
Ядро
переходов при успехе
переходов при неудаче
1
8-
»-aAB
{2,3}
{0}
2
A-
> aAC
{2,3}
{0}
3
A-
)-D
{4}
{0}
4
C-
{5}
{6}
5
D-
*bDc
{4}
{0}
6
B-
*d
' {7}
{0}
7
D-
*• be
{0}
{0}
Заметим, что если п конечно, то язык L = ^b^d^ | п = = 1, 2, . . ., N^ можно также породить регулярной или бесконтекстной грамматиками.
Грамматика наиболее подходит для описания в том случае, когда рассматриваемый образ построен из небольшого числа непроизводных элементов при помощи рекурсивного применения небольшого числа правил подстановки. К тому же выбор непроизводных элементов и построение грамматики, по-видимому, следует рассматривать скорее одновременно, чем на двух разных стадиях. Нет сомнения в том, что если для описания данного множества образов выбрать другие непроизводные элементы, то будет построена и другая грамматика. Иногда при построении удобной грамматики возникает необходимость в некотором компромиссе. Для иллюстрации можно опять воспользоваться примером 3.1. Из этого примера следует, что грамматика, порождающая язык L = ^anbmcndm | n, т = 1, 2, . . .}, гораздо сложнее грамматики, порождающей цепочку а'Ь^ с\ Д'.
Хотя структура многих классов образов с интуитивной точки зрения зависит от контекста, тем не менее языками непосредственно составляющих (не бесконтекстными) ввиду их сложности пользовались редко. Бесконтекстные языки применяли для описания языков латинского алфавита (приложения Б и Г), изображений хромосом (приложение А), изображений, полученных в искровой камере (приложение Б), химических структурных формул (приложение Ж) и речевого потока, возникающего при произношении вслух названий цифр (приложение Е).
Кроме учета соотношения между дескриптивной мощностью языка и эффективностью анализа и поиска иногда необходимого компромисса между выбором непроизводных элементов и построенной грамматикой, проектировщик должен понимать необходимость в контроле над лишними цепочками, которые может порождать грамматика. В практике число пригодных для описания образа цепочек всегда ограничено. Однако в большинстве случаев построе- енная грамматика порождает большое или даже бесконечное множество цепочек ).
Обычно надеются на то, что липшие цепочки подобны цепочкам, описывающим образы. К сожалению, это не всегда справедливо, поскольку во многих случаях грамматики строят из эвристических соображений. Эта трудность может стать весьма серьезной, если в лишних цепочках содержатся некоторые цепочки образов из других классов. В этом случае для исключения таких цепочек необходима коррекция языка, порождаемого полученной грамматикой.
Недавно для описания образов было предложено использовать трансформационные грамматики [47, 48]. По-видимому, это связано с эффективностью таких грамматик при описании структур естественного языка. Трансформационные грамматики дают возможность выделить в механизме порождения образов простую базовую грамматику (глубинную структуру), порождающую некоторое определенное множество образов, и множество преобразований, приспособленное к данной конкретной задаче. Исходное множество образов может быть описано этой базовой грамматикой в совокупности с преобразованиями.
Из предыдущего обсуждения можно заключить, что при отсутствии эффективных процедур восстановления грамматики для решения задачи ее построения необходима система взаимодействия человека и машины. Поиск базовой грамматики и связанных с построением языка различных компромиссов ложится на долю проектировщика. Результаты любой коррекции построенной грамматики могут быть быстро проверены и продемонстрированы при помощи вычислительной машины. Как будет показано в гл. 7, к системам взаимодействия человека и машины часто прибегают и при разработке процедур восстановления грамматики. Это делают для повышения эффективности этих процедур и для облегчения их реализации на вычислительной машине.
3.3. Грамматики образов более высокой размерности
Общее обсуждение
При описании образов цепочками используется лишь одно отношение — конкатенация. Это означает, что каждый подобраз или непроизводный элемент можно сочленять с остальными только один раз справа и один раз слева. Для описания двухмерных или трехмерных образов это одномерное отношение недостаточно эффективно. Естественно применить более общий формализм, включающий другие полезные отношения [49—55]. Пусть R — множество n-арных отношений (п ^ 1). Тот факт, что подобразы, или непроизводные элементы Хг, . . ., Хп удовлетворяют отношению г £ R, обозначают через г (Хг, . . ., Хк\ Например, запись ТРЕУГОЛЬНИК (а, Ь, с) означает, что три отрезка линии а, Ь, с удовлетворяют тернарному отношению ТРЕУГОЛЬНИК, а запись НАД (X, У) означает, что элемент X находится над элементом У. Рассмотрим несколько примеров, иллюстрирующих применение этого формализма к описанию образов.
Пример 3.5. Математическое выражение
а-^-Ъ
с
может быть описано предложением
НАД (НАД (СЛЕВА (а, СЛЕВА (+, 6)), -), с), где запись СЛЕВА (X, У) означает, что элемент X находится слева от элемента У.
Пример 3.6. Следующая грамматика порождает предложения, описывающие изображения домиков [55, а].
гдегдеG = (Fn, Ут, Р, S),
где
где
Ум = {(домик), (профиль), (фасад), (крыша), (фронтон), (стена), (дымоход), (окна), (дверь)},
ит = { о, q, в. ш. д. □,
S = (домик),
Р; (дверь) -> В
(окна)-^ щ , (окна)->-> ((окна), Щ )
(дымоход)->• □ , (дымоход)-^- q
(стена) ->(стена) ->, (стена)-> Q ((дверь), [—] )
(стена) ->
(стена) ->
(стена) Q ((окна), ГП )
(фронтон)Л , (фронтон)-> | ((дымоход), д )
(крыша) -> X \ , (крыша) -> J ((дымоход), У~Ч )
(фасад)-> J ((фронтон), (стена))
(профиль)-^- f ((крыша), (стена))
(домик) -> (фасад), (домик) -> ((домик), '(профиль)).
Здесь приняты следующие обозначения
(ХУ) X-справа от У,
ОО(ХУ) X — внутри Y,(ХУ) X — внутри Y,
О
О
(ХУ) X — внутри Y,
(ХУ) X — внутри Y,
^ (ХУ) X —внутри У и внизу,
| (ХУ) X— лежит сверху У,
-> (ХУ) X—-прилегает к У справа.
ДомикДомикНиже приведены описания трех изображений:
Домик
Домик
Описание
н1/н1/
н
1/
н
1/
b4t(i(D^),0(=,O)M(A,Q(H,Q)))
Простое обобщение грамматик, порождающих цепочки, состоит В замене цепочек матрицами [56, 57]. Непроизводными элементами служат элементы матриц, а в качестве отношения между ними — 'двумерная конкатенация. Каждое правило подстановки состоит Йе в замене части цепочки на другую часть, а в замене одной подматрицы на другую. Недавно изучено соотношение между грамматиками матриц и матричными автоматами, т. е. автоматами с двумерной лентой [58]. Типичным примером служит грамматика [47, 56], приведенная в следующем примере.
Пример 3.7. Грамматика, порождающая все равнобедренные Прямоугольные треугольники:
V
(2)
н
н
(3)
Н
W
Н
L
(4)
н
а
н
Л
Н
a
Н
I
(5)
аг
I
г
I
аг
аг
1
аг
I
1
аг
(6)
(7)
(8)
(9)
(10)
1 г
аг
L
в
аг
L
I
L
аг
н
I
V
в
н
L
V
в
I
аг
В
в
г
L
в
R
Здесь а = Л или а = 7 (внутренняя точка); |3 = 77 (точка гипо тенузы) или р = РИ; у — все остальные точки, включая пробел
Начальный символ S =
Ниже дан типичный вывод треугольника.
(3)(3)VVWнLнVWнLнVIVнLнILVвIVнLнILVв(4)(4)WнLнIVWнLнIV(б)(б)WнLнILVWнLнILV
(3)
(3)
V
V
W
н
L
н
V
W
н
L
н
V
IV
н
L
н
I
L
V
в
IV
н
L
н
I
L
V
в
(4)
(4)
W
н
L
н
I
V
W
н
L
н
I
V
(б)
(б)
W
н
L
н
I
L
V
W
н
L
н
I
L
V
a t 'Ьa t 'Ь
a t 'Ь
a t 'Ь
Специальные грамматики
Шоу [65] ввел в каждом непроизводном элементе две точки прймыкания —«головную» (hd) и «хвостовую» (tl). Для определения отношений конкатенации он использовал следующие четыре бинарных операции: + , X, —, * (приложение Б):
hd(a+b) = hd(b)Шз+Ь) = tL(a)
hd(a х Ь) = hd(b)tl(а * b) = tL(Ь)
hd(a - b) = hd(a)tl(a - b) = tl(a)
hd(a * b) = hd(a)
Ша * b) = tl(a)
В языках цепочек используется только операция +. Кроме того, определена унарная операция ~ инвертирования головной и хвостовой точек, т. е.
_hd(~ а) = U (а)
~ а ^^Ш~я) = hd(a}
~ а
Для описания несвязных образов, состоящих из изолированных подобразов, введен непроизводный элемент «пробел» или «безразлично». Каждое изображение представлено «помеченным дуговым графом» х), в котором непроизводным элементам соответствуют* дуги. Для порождения так называемого языка PDL (сокращение словосочетания «язык описания изображений») используется бесконтекстная грамматика цепочек (приложение Б).
Если введены отношения, отличные от простой конкатенации, то описание более удобно представить в виде графа отношений (см. разд. 1.1), вершины которого соответствуют подобразам или непроизводным элементам, а дуги — бинарным отношениям ). При наличии n-арных отношений описание в виде графа можно получить, сведя все отношения к бинарным. Унарное отношение г (X) мо^кно заменить бинарным г' (X, X), где X обозначает «нулевой» непроизводный элемент. Отношения г (Хп . . ., Хи), п > 2, можно преобразовать в композицию бинарных
гг (Х1? г. (Х2, . . ., гп_г (Хп_1? Хп^
или в конъюнкцию
ri (^ш ^12) Л г2 (^21? ^22) Л • • • Л ^ (xkls xk2)
или в комбинацию этих двух видов. Например, тернарное отношение ТРЕУГОЛЬНИК (а, 6, с) имеет следующие два эквивалентных преобразования:
CAT (а, 6) Д CAT (6, с) Д CAT (с, а) или А (6, CAT (а, с)),
где CAT (X, У) означает, что hd (X) соединено с 11 (У), т. е. CAT (X, У) = X + У, а А (X, У) означает, что линия X вместе со связанным с ней объектом У, который является конкатенацией двух отрезков, образует треугольник. В общем случае замена n-арного отношения композицией бинарных требует вве-» дения в описание дополнительных уровней.
г) В оригинале «branch oriented graph». В дальнейшем встречается термин «node oriented graph», переводимый как «вершинный граф». В первом случае вершины графа обозначают связи между объектами., соответствующими дугам, а во втором случае связи между объектами — вершинами — обозначаются дугами.— Прим, перев.
Основываясь на идеях работы Нарасимхана [21], Федер разработал формализованную «плекс-грамматику» г) (приложение Ж). Основные символы этой грамматики соответствуют непроизводным элементам или подобразам с произвольным числом точек примыкания, в которых их можно соединить с другими подобразами или непроизводными элементами. Непроизводные элементы плекс-грамматики называются «конфигурациями с N точками примыкания» (NAPE—А-attaching point entity). Правила подстановки плекс-грамматики написаны в бесконтекстной форме. Каждое из них имеет явно заданные списки помеченных точек конкатенации, — так называемые списки соединений, в которых описаны все соединения непроизводных элементов или подобразов. Порождаемые плекс-грамматикой предложения не являются ориентированными графами. Однако их можно преобразовать в таковые, если, как предложили Пфальц и Розенфельд [59], ввести непро- изводныё элементы, соответствующие помеченным вершинам и точкам конкатенации, или преобразовать непроизводные элементы в вершины, а точки конкатенации — в помеченные дуги. На рис. 3.11 показаны примеры таких преобразований [60].
Пфальц и Розенфельд обобщили понятие грамматик цепочек на грамматики для помеченных графов, называемых «вебами» (приложение 3). В правилах подстановки явно использованы помеченные вершинные графы. Каждое правило описывает подстановку графа а в другой граф р и содержит правило «погружения», которое указывает, каким образом соединить граф а с окружающим его остаточным графом после подстановки. Формальные аспекты веб-грамматик были подвергнуты довольно интенсивному анализу в работе [59]. Соотношения между PDL, плекс- и веб-грам- гматиками рассмотрели Шоу [60] и Розенфельд [61].
Включив вспомогательные символы, отличные от просто дуг и вершин, Павлидис [62, 63] обобщил грамматики цепочек на графовые грамматики. Он определил вспомогательную структуру zn-ro порядка как конфигурацию, связанную с остальным графом т вершинами. В частности, структура второго порядка называется дуговой, а структура первого порядка — вершинной. Бесконтекстная грамматика графов Gs определена четверкой Gg ^ {^N) VTl Р1 S}, где FN — множество вспомогательных структур тн-го порядка, т. е. вершины, дуги, треугольники, многоугольники не более чем с т вершинами; Ет — множество основных символов, состоящее из дуги вершин; Р — конечное множество правил подстановки вида А -> а, где А — вспомогательная
-1) В оригинале «plex grammar». Далее в этом разделе описана веб-грамматика (web grammar). Слова «plexus» и «web» имеют близкие значения — сплетение, переплетение, паутина. Для различения этих грамматик при Переводе использованы транскрибированные английские термины.— Прим. Repee.
Рис. 3.11. Преобразование плекс-структуры в графы.
структура, а а — граф, который может содержать как вспомогательные, так и основные структуры (структура а связана с остальным графом через то же число вершин, что и структура Л); символ S обозначает множество начальных графов.
Обозначим выражением А * В тот факт, что графы А и В соединены через пару вершин (рис. 3.12, а), а выражением N (Л + В + С) — факт, что графы Л, В. С соединены общей вершиной 7V (рис. 3.12, б) 1). В этих обозначениях правило подстановки А -> В * С, где Л, В и С — дуговые структуры, следует интерпретировать как замену дуговой структуры А двумя дуговыми структурами В и С, связанными с остальным графом через
Рис. 3.12. Примеры операций: А* В {а^ N (Л + В + С) (б) и ANB (в).
те же вершины, что и структура А. Никаких других соединений между структурами В и С быть не должно. Аналогично, правило подстановки N -> М (Л + В) следует интерпретировать как замену вершинной структуры N вершинной структурой М и двумя другими структурами Л и 5, соединенными с остальным графом через ту же вершину, что и структура N. При отсутствии неоднозначностей можно пользоваться простыми конкатенациями, например ANB^ которая обозначает вспомогательный подграф, состоящий из дуговой структуры А с вершинами X, У, связанной вершиной Y с дуговой структурой В с вершинами У, Z, связанной в свою очередь со структурой N вершиной У (рис. 3.12, в\ Этот подграф связан с остальным графом вершинами X и Z. Для иллюстрации применения графовых грамматик к описанию образов рассмотрим следующие примеры.
Пример 3.8. Грамматика, описывающая последовательно- параллельные двухполюсники (TTSPN)
Gg = (Гю Гт, Р. SY где
FN = {S, 5},7т={А,?}8 = <пВп^
х) Выражения А * В и N (А + В -j- С) служат сокращениями. Их Необязательно включать в алфавит.
И Р:
В-+ВпВ,
В-+В*В,
В-^Ъ.
В качестве типичного примера вывода можно рассмотреть вывод
q пВп => пВпВп -^ пВпВпВп~ оо о- ■ -о—— оо— оо— - оq пВп => пВпВп -^ пВпВпВп~ оо о- ■ -о—— оо— оо— - о(2) пВп(В*В)пВп (1) лВл((ВлВ)*В)пВп(2) пВп(В*В)пВп (1) лВл((ВлВ)*В)пВплВл((ВпВпВ)*В)пВп nBn((BnBnBV(Bnfi))nBnлВл((ВпВпВ)*В)пВп nBn((BnBnBV(Bnfi))nBnпВп((ВлВпВ)*(ВпВпВ))пВлпВп((ВлВпВ)*(ВпВпВ))пВлn b пn b п
q пВп => пВпВп -^ пВпВпВп
~ оо о- ■ -о—— оо— оо— - о
q пВп => пВпВп -^ пВпВпВп
~ оо о- ■ -о—— оо— оо— - о
(2) пВп(В*В)пВп (1) лВл((ВлВ)*В)пВп
(2) пВп(В*В)пВп (1) лВл((ВлВ)*В)пВп
лВл((ВпВпВ)*В)пВп nBn((BnBnBV(Bnfi))nBn
лВл((ВпВпВ)*В)пВп nBn((BnBnBV(Bnfi))nBn
пВп((ВлВпВ)*(ВпВпВ))пВл
пВп((ВлВпВ)*(ВпВпВ))пВл
n b п
n b п
Пример 3.9. Графовая грамматика, описывающая связные деревья:
Gg = (FN, Ут, Р, SY где
yN = W, УТ = {АЛ},8 = ^
и Р:
N-^NbN,
N-^n.
Типичным примером вывода служит следующий вывод:
NbNbNbNbNbN => . . .
Пример 3.10. Множество всех выпуклых многоугольников порождается графовой грамматикой G„ = (FN, Гт, Р^ S), где FN = {5, EV 7T = {e} и P:
Для порождения всех многоугольников нужно заменить правило (2) следующим правилом:
Обобщение одномерной конкатенации на многомерную сводится к замене цепочек деревьями^ Грамматики деревьев и соответствующие им распознающие устройства — автоматы на деревьях недавно исследованы рядом авторов [75, 76]. Естественно, 9Т0 если образ может быть удобно описан древовидной структурой, то его можно просто построить при помощи грамматики Деревьев> На рис. 3.13 показаны примеры образов (рис. 13, а)
и соответствующие им древовидные представления (рис. 3.13, б). Более подробное обсуждение грамматик деревьев, соответствующих
ааS аS а№№
а
а
S а
S а
№
№
Рис. 3.13. Изображения (а) и их древовидные представления (б).
им автоматов и их применения к синтаксическому распознаванию образов содержится в приложении 3.
Использование семантической информации
Для описания выделенного непроизводного элемента требуется некоторое множество признаков. Непроизводные элементы с разными свойствами могут быть описаны величинами признаков. Это множество признаков можно рассматривать как семантическую информацию о непроизводных элементах. Каждый признак можно выразить набором чисел или логических предикатов [49, 54]. Например, координаты головной и хвостовой точек можно использовать для задания точного положения отрезка прямой, а пределами изменения радиуса можно определить непроизводный элемент типа «дужка». Для описания каждого знака (непроизводный
элемент) при распознавании двухмерных математических выражений Андерсон предложил использовать шесть пространственных координат х) [64]. Следуя формальной схеме Шоу [65], начальное описание Т (ж) образа х мож^о определить выражением
Т ^ = (Zs (я), Tv (х)^ (3.11) где Ts (х) — задание непроизводных элементов образа х и их взаимных отношений, a Tv (ж) — значения признаков для каждого элемента. Структурная информация об образе х задана синтаксическим или иерархическим описанием *
Н^-<НДх\ HN^Y (3.12) где Hs (х) — синтаксическая компонента, состоящая из множества необходимых для порождения Ts (х) правил подстановки, а Н^х) — выполнимость интерпретационного правила, соответствующего каждому правилу подстановки грамматики G, которое используется при грамматическом разборе выражения Ts (а). Таким образом, полное описание образа х определено выражением
№, Я(х)) = ((Г8(х), Г¥(х)), (Я8(х), Hv(x))). (3.13)
Класс образов может быть описан ассоциированной семантической информацией и грамматикой G, такой, что для любого образа х из этого класса Ts (х) ^ L (G). «Смысл» образа выражен как начальным, так и синтаксическим описаниями. Один и тот же класс начальных описаний может быть порожден разными грамматиками, но синтаксические описания для разных грамматик могут отличаться друг от друга. Начальные и синтаксические описания вообще могут быть различными для одного и того же класса образов, поскольку предполагается, что описание изображения зависит от его интерпретации.
Вообще семантическую информацию о подобразе (вспомогательный символ грамматик) оценивают либо по семантической информации составляющих его непроизводных элементов, либо на основе множества функций или правил. В первом случае оценка производится в соответствии с синтаксическими отношениями или операторами и семантическими правилами, ассоциированными о каждым правилом подстановки в грамматике. Во втором случае указанное множество функции может быть и не связанным с правилами подстановки ).
х) Аналогичные подходы предложили Чан [66], Нейк [67], а также Саймон я Чекруин [68, 69]. Подобные грамматики иногда называют «грамматиками о координатами» [70].
Пример 3.11. Смысл бинарных операций конкатенации языка PDL может быть представлен семантическими функциями. Ниже выражение CAT означает «накладывается на».
7v(A)-(Si(tl(a), hd(a))S2(tl(b), hd(6))). (3.14)
т .Правило
8'подстановки
Семантическая функция
Si4~S2А —> S1 Ч~ S 2
tl (A) = tl (5i) hd (A)--=hd(52) и hd (5i) CAT tl (52)
Si х S2A—*-SixS2
tl (A) = tl (5i) hd (A) = hd (52) и tl (5,) CAT tl (52)
Si — S2A —>Si — S2
tl (A) = tl (5i) hd(A)=hd (52) и hd (5i) CAT hd (52)
Si*S2A —> Si*S2
tl (A) = tl (5i)
hd (A) = hd (52) и (tl(5i)CATtl(52)) A(hd(5,)CAThd(52))
Пример 3.12. Для изображения буквы А, показанного на рис. Б.З приложения Б,
^(^^(^(((б + ^.^ + с));
Hs (А) представлено деревом грамматического разбора, описывающим изображение А;
Яу(А)-((5, (tl, hd)s), (А, (11, hd)A),
(TRLANGLE (11,. Ьй)тша№ье),
(ANGLE, (tl, hd^NGLE)),
где (tl, hd)N — хвостовая и головная точки структуры, соответствующей вспомогательному символу N, TRIANGLE — треугольник, ANGLE — угол. Для изображения «домика» (HOUSE) на рис. Б.З приложения Б
Ts (HOUSE) = ((е + (а + (~ е^) * «Ь + с^а)У
естественный язык», «Мир», 1976.— Прим, перев.) разработал систему,_понимающую язык, в которой взаимодействие синтаксиса и семантики играет существенную роль. В работе [71] продемонстрирована возможность применения системы, понимающей язык, к анализу сцен.
Я8 (А) представлено деревом (грамматического разбора), описывающим «домик» на рис. Б.З;
Яу (HOUSE) = ((S(tl, hd)s), (HOUSE, (tl, hd)HousE), (TRIANGLE, (tl, hd)TRiANGLE), (ANGLE, (tl, hd)ANGLE))
Недавно Кнут [72] формализовал семантику бесконтекстных языков. Его подход состоит в том, чтобы определить «смысл» цепочки через признаки каждого вспомогательного символа, возникающего при грамматическом разборе этой цепочки в соответствии ,с данными грамматическими правилами. Признаки каждого вспомогательного символа соответствуют смыслу фразы, которая из него получается. Все признаки разделены на две группы: «унаследованные» и «синтезированные». Унаследованные признаки касаются тех аспектов смысла, которые определяются контекстом фразы, в то время как синтезированные связаны с самой фразой. Унаследованные и синтезированные признаки находятся в довольно существенном взаимодействии. Важная идея состоит в том, что смысл всей цепочки построен при помощи локальных правил, соотносящих признаки каждого правила подстановки, появляющегося по ходу грамматического разбора этой цепочки. Для каждого правила подстановки бесконтекстной грамматики заданы «семантические правила». Они определяют, во-первых, все синтезированные признаки вспомогательного символа в левой части правила подстановки и, во-вторых, все унаследованные признаки вспомогательных символов в правой части. Начальный вспомогательный символ (корень дерева грамматического разбора) не имеет унаследованных признаков.
Принципиально для определения смысла цепочки в бесконтекстном языке достаточно одних синтезированных признаков. Однако включение унаследованных признаков часто приводит к существенным упрощениям в оценке признаков. Естественно при неоднозначной грамматике в результате применения семантических правил к разным деревьям вывода некоторой цепочки, можно получить несколько разных смыслов.
Семантические правила добавляются к бесконтекстной грамматике следующим образом. Каждому символу X £ (UN J UT) приписано конечное множество А (X) признаков. Оно разделено на два, непересекающихся множества синтезированных Ао (X) и унаследованных А т (X). Требуется, чтобы Аг (5) = 0 и Ао (Х) = = 0 при X £ FT. Каждый признак а £ А (X) имеет множество возможных значений D^ из которого при появлении символа X в дереве грамматического разбора может быть выбрано одно значение. Пусть множество Р состоит из т правил подстановки, и пусть
k-е правило имеет вид
^feO XMl Xk2l ..., ^hnk1 (3.15) где Xk0 С FN, nk > 0 и Xhj £ (Fn J FT), 1 ^ / < nk. Семантическими правилами называются функции fkjai1 определенные для всех 1 ^ к ^ т, 0 ^ / ^ пкп причем а £ Ло (XhJ-) при / = О и а ^. Ах \Хк^ при / > 0. Каждая такая функция — это отображение прямого произведения Da^ X /)а2 X . . . X Dat в множе-. ство Da для некоторого t = t (к, ], а) ^ 0, где каждое аг- = = аг (к, ], а), 1 < i^ ^— это признак некоторого символа Хк1. для 0 ^ Ц ^ пк. Другими словами, каждое семантическое правило переводит определенные признаки символов Хкй1 . . ., Хкп^ в величину некоторого признака символа Xkj.
(3.16)(3.16)Приписывание «смысла» цепочкам бесконтекстного языка при помощи семантических правил осуществляется следующим образом. Для любой основной цепочки х нужно обычным способом построить дерево ее вывода из начального символа S. Корнем этого дерева является символ 5, а вершина, соответствующая применению й-го правила подстановки, помечена либо основным, либо вспомогательным символом Хк0. Пусть X — символ какой- либо вершины этого дерева, а а £ Л (X) — признак этого символа. Если а С Ло (X), то X = Хк0 для некоторого/:, а если a £ Аг (X), то X = Xkj для некоторых / и к, 1 ^ j^ пк. По определению, признак а имеет величину и для данной вершины, если в соответствующем семантическом правиле
(3.16)
(3.16)
fhja* Оа* X • • • X Оа^ —** D
все признаки имеют величины vv . . .*vf для соответствующих вершин, помеченных символами Хк1 п . . ., Хк1 , и у = = tkja fan • • •» vt\ Этот процесс оценки признаков нужно проводить по всему дереву до тех пор, пока он не закончится естественным образом. Полученные на этой стадии оценки признаков для корня дерева и являются «смыслом», соответствующим данному выводу.
Пример 3.13. Смысл двоичной записи числа можно оценить следующими двумя способами. Пусть задана грамматика G = = (FN, Ft, Р, 5), где FN = {5, В, L^
FT = {0, 1, •} и Р:
S -> L.L В,В 0,S -> L.L В,В 0,S L-L, L -^ LB.В 1.S L-L, L -^ LB.В 1.
S -> L.
L В,
В 0,
S -> L.
L В,
В 0,
S L-L, L -^ LB.
В 1.
S L-L, L -^ LB.
В 1.
Цепочка 1101.01 имеет дерево вывода
Способ 1: оценка смысла при помощи синтезированных и унаследованных признаков. Символы грамматики имеют признаки
Л(В) = М> A^ = ^, AQ(L) = {v, Z}, A(L)={s},Л(^) = М, Аф§) = 0, AQ(a)=Ai(a) = 0 для а^У^.
Множествами величин признаков служат D^ = {рациональные числа}, Ds == Di = {целые числа}.
Каждый символ В имеет «величину» и (В) — рациональное число.
Каждый символ В имеет «позицию» зф)— целое число.
Каждый символ L имеет «величину» и (L) — рациональное число.
Каждый символ L имеет «протяженность» /(£) —целое число.
Каждый символ L имеет «позицию» s(L) — целое число.
Каждый символ 5 имеет «величину» рф)—рациональное число.
ПравилоподстановкиПравилоподстановкиВ-^0 B^i L->BLi —>- L^BВ-^0 B^i L->BLi —>- L^BСемантическоеправило
Правилоподстановки
Правилоподстановки
В-^0 B^i L->B
Li —>- L^B
В-^0 B^i L->B
Li —>- L^B
иф) =0
и (В) = 2» (5)
иф) = иф), s(B)=s(L), l(L)^l, v (L0 = и ф^ + v ф), s (В) = s (L{), s(L2)-s(Li) + t l(Li)-HL2)4-l,
7-086
S^L
S Li • L2
v (S) -иЩ, s(L) = O, иФ) =v(Li) + v(L2l s^-O, s^L^-HUY
Таким образом, цепочка 1101.01 имеет следующее дерево вывода, в котором представлена семантическая информация:
5 (и =13,25)
L (и = 13, L = 4,s = 0)
£^=12, Z = 3,s=1) 5(/=1,s=0)
L(k = 12, £ = 2,s = 2) £(v = 0,g=1) 4
L (и = 8, 2 = 1,s =3j 5(и=4,б= 2) 0
5(v = 8,s = 3)
Способ 2: оценка смысла при помощи синтезированных признаков.
Каждый символ В имеет «величину» и (5) — целое число.
Каждый символ L имеет «протяженность совокупности двоичных разрядов» I (L) — целое число.
Каждый символ L имеет «величину совокупности двоичных разрядов» и (L) — целое число.
Каждый символ S имеет «величину» v (S) — рациональное число.
Правилоподстановки
Семантическоеправило
В-^0
В-+1 L-^B
Li —>■ L2B S-^L SLi*L2
y(S)=0, y(S) = l, иф)^иф), Z(^) = l, v (Li) - 2- (^) + v ф^ I (L0 - Z (L2) + 1, v(S) = v(L), v(S)=v(Li) + v(L2)/2^^.
Таким образом, цепочка 1101.01 имеет следующее дерево вывода, в котором представлена семантическая информация:
Uv=13,Z=4)
£(v = 6,Z = 3) 5(у=1)
£tv=3,Z = 2) S(v=O) 1
<S(v = 13,25)
£(y = 1,Z = 2)
L (^0,1=1)
S(v=O)
6(v=1)
1
ООZ.(V=1,Z=1) 5(v=1) О
О
О
S6^=D1
1
Пример 3.14 x). Этот пример предназначен для демонстрации применения формальной семантики Кнута к описаниям изображений на языке PDL. Обозначим через С (X) наличие у фрагмента, соответствующего символу Х1 связности. Признаками символа X в данном случае являются tl (X), hd (X) и С (X). Обозначим через X «нулевой» непроизводный элемент. Оценка семантической информации в знаках Е и N английского алфавита может быть осуществлена в соответствии со следующей систематической процедурой (грамматика, порождающая эти знаки, описана в приложении Б).
1. Знак Е
Правило подстановки
Ei-+(v2 + h2)
Семантическое правило tl(El)^tl (v2) hd (£l)=hd(A2)
C (El) = hd (v2) CAT tl (h2)
E2^(Elxhl)
tl (£2)=tl (El) . hd (E2) =hd (£1)
E3-+(v2 + E2)
С (E2) = C (El) Д (tl (£1) CAT tl (hl)) tl (E3) = tl (v2)
hd (E3) = hd (E2)
E-*(E3xh2)
С (E3) = (hd (v2) CAT tl (E2)) К С (E2) tl (E) = tl (E3)
hd (E) = hd (h2)
C(E)=C (ЕЗ) К (tl (E3) CAT tl (h2))
Дерево вывода знака Е вместе с семантической информацией имеет Вид
г) Этот пример разработал К. Ташибана (Калифорнийский университет в Беркли).
tl(£) = tl(p2), hd(£) = hd(A2) C(£) = ((hd(p2) CAT tl(^2)) л
((hd(p2) CAT tl(A2)) л (tl(p2) CAT hd(/?l))))A (tl(p2) CAT tl(A2))
tl(£3) = tl(r2), hd(£3) = hd(Al) C(£3) = (hd(v2) CAT tl(r2)) a C(£2) tl(£2) = tl(r2), hd(£2) = hd(£l) C(£2) = С(£1)л(0(г2) CAT tl(Al)) tl(£l) = tl(r2), hd(£l) = hd(h2) C(£l) = hd(r2) CAT tl(A2)
tl(£l) = tl(^2), hd(£l) = hd(A2) C(£l) = hd(r2) CAT tl(A2)
и2
v2‘
h2
Al
Л2
2. Знак NПравилоподстановкиN1 -► (уЗ X X)^2->(уЗ + ^3)N -+(A2 + A1)2. Знак NПравилоподстановкиN1 -► (уЗ X X)^2->(уЗ + ^3)N -+(A2 + A1)
2. Знак N
Правилоподстановки
N1 -► (уЗ X X)
^2->(уЗ + ^3)
N -+(A2 + A1)
2. Знак N
Правилоподстановки
N1 -► (уЗ X X)
^2->(уЗ + ^3)
N -+(A2 + A1)
tl hd
Сел; антическоеправило
tl (ATI) =tl (уЗ)
hd(Al)=hd (X) = tl (X)
C(Al)=tl (уЗ)САТ tl (X)
tl (A2) = tl (уЗ)
hd (A2) = hd (g3)
C(A2)=hd (уЗ) CAT tl (g3)
tl (A)=tl (A2)
hd(A) = hd (Al)
С (A) =C (A2) A(hd (A2) CAT tl (Al)) Д C(A1).
Дерево вывода
знака А вместе с семантической информацией
лмеет вид
NNмг +^’мг +^’/|\ /|\уз * gi уЗ х х/|\ /|\уз * gi уЗ х х
N
N
мг +^’
мг +^’
/|\ /|\
уз * gi уЗ х х
/|\ /|\
уз * gi уЗ х х
tl(jV) = tl(y3), hd^) = hdU) CW = (hd(v3) CAT tl(y3)) л
(hd(y3) CAT tl(u3)) л (tl(v3) CAT tlG)) tl(Al) = tl(r3), hd(M) = hd(A) C(A1) = tl(v3) CAT tl(A) tl(A2) = tl(y3), hd(A2) = hdfa3) C(N2) = hd(r3) CAT tl(y3)
СПИСОК ЛИТЕРАТУРЫ.
Stallings W., Recognition of printed Chinese characters by automatic pattern analysis, Comp. Graphics and Image Process., 1, 47—65 (1972).
Sakai T., Nagas M. and Terai H., A description of Chinese characters using subpatterns, Information Processing in Japan, 10, 10—14 (1970).
Chang S. K., An interactive system for Chinese characters generation and text editing, Proc. Int. Conf. Cybernet, and Soc. Washington, D. C., October 9—12, 1972, pp. 206—214.
Grimsdale R. L., Summer F. H., Tunis C. J. and Kilburn T., A system for the automatic recognition of patterns, Proc. IEEE, 106, Pt. B, 210—221 (1959). Reprinted in Pattern Recognition (L. Uhr, ed.), pp. 317—318, Wiley, New York, 1966.
Eden M. and Halle M., The characterization of cursive writing, Proc. Symp. Inform. Theory, 4th, London (C. Cherry, ed.), pp. 287—299. Butterworth, London, 1961.
Earnest L. D., Machine recognition of cursive writing, Inform. Process. Proc. IFIP (Int. Fed. Inform. Process) Congr. 1962, pp. 462—466. North- Holland Publ. Amsterdam, 1963.
Mermelstein P. and Eden M., Experiments on computer recognition of connected handwritten words, Information and Control, 1, 255—270 (1964). (Русский перевод: Мермельстайн И., Иден М., Эксперименты по машинному распознаванию слитных рукописных слов, сб. «Автоматический анализ сложных изображений», «Мир», М., 1969.)
Eden М. and Mermelstein Р., Models for the dynamics of handwriting generation, Proc. Annu, Conf. Eng. Med. and Biol., 16th, Baltimore, Maryland, 1963, pp. 12—13.
Freeman H., On the encoding of arbitrary geometric configurations, IEEE Trans. Electron. Comput., EC-10, 260—268 (1961).
Freeman H., On the digital-computer classification of geometric line patterns, Proc. Nat. Electron. Conf., 18, 312—324 (1962).
Knoke P. J. and Wiley R. G., A linguistic approach to mechanical pattern recognition, Proc. IEEE Comput. Conf. September 1967, pp. 142—144.
Feder J., Languages of encoded line patterns, Information and Control, 13, 230-244 (1968).
Chomsky N., A transformational approach to syntax. In The Structure of Language (J. A. Fodor and J. J. Katz, eds.). Prentice-Hall, Englewood Cliffs, New Jersey, 1964.
Bach E., An Introduction to Transformation Grammars, Holt, New York, 1964.
Gallus G. and Nurath P., Improved computer chromosome analysis incorporating preprocessing and boundary analysis, Phys. Med. Biol., 15, 435— 445 (1970).
Lee H. C. and Fu K. S., Stochastic Linguistics for Picture Recognition, Tech. Rep. TR-EE 72—17, School of Elec. Eng., Purdue Univ., Lafayette, Indiana, 1972.
Freeman H. and Morse S. P., On searching a contour map for a given terrain elevation profile, J. Franklin Inst., 284, 1—25 (1967).
Feder J. and Freeman H., Digital curve matching using a contour correlation algorithm, IEEE Int. Conv. Rec., Pt. 3, 69—85 (1966).
Zahn С. T., Two-Dimensional Pattern Description and Recognition via Curvature Points, SLAG Rep. No. 72, Stanford Linear Accelerator Center Stanford, California, 1966.
Freeman H. and Garder J., Pictorial jig-saw puzzles: The computer solution of a problem in pattern recognition, IEEE Trans. Electron. Comput., EC-13, 118—127 (1964).
Narasimhan R., Syntax-directed interpretation of classes of pictures.
Сотт. АСМ, 9, 166—173 (1966). (Русский перевод: Нарасимхан Р., Синтаксическая интерпретация классов изображений, сб. «Автоматический анализ сложных изображений», «Мир», М., 1969.)
Spinrad R. J., Machine recognition of hand printing, Information and, Control, 8, 124—142 (1965).
O’Callaghan J. F., Problems in on-line character recognition, In Picture . Language Machines (S. Kaneff, ed.), Academic Press, New York, 1970.
Nir M., Recognition of General Line Patterns with Application to BubbleChamber Photographs and Handprinted Characters, Ph. D. Thesis, Moore School of Elec. Eng. Univ, of Pennsylvania, Philadelphia, Pennsylvania, 1967.
Shaw A. C., The Formal Description and Parsing of Pictures, SLAG. Rep. No. 84, Stanford Linear Accelerator Center, Stanford, California, 1968.
Narasimhan R., Labeling schemata and syntactic description of pictures, Information and, Control, 7, 151—179 (1964). (Русский перевод: Метод маркировки и синтаксическое описание изображений, сб. «Автоматический анализ сложных изображений», «Мир», 1969.)
Butler J. W., Butler М. К. and Stroud A., Automatic classification of Chromosomes, Proc. Conf. Data Acquisition and Process. Biol. Med., New York, 1963.
Ledley R. S. et al., FIDAC: Film input to digital automatic computer and associated syntax-directed pattern-recognition programming system. In Optical and Electro-Optical Information Processing (J. T. Tippet, D. Bec- kowitz, L. Clapp, C. Koester, and A. Vanderburgh, Jr., eds.), pp. 591 — 613 MIT Press, Cambridge, Massachusetts, 1965.
Hankley W. J. and Tou J. T., Automatic fingerprint interpretation and classification via contextual analysis and topological Coding. In Pictorial Pattern Recognition (G. C. Cheng, R. S. Ledley, D. K. Pollock, and A. Rosenfeld, eds.), Thompson Book Co., Washington, D. C., 1968.
Grasselli A., On the automatic classification of fingerprints. In Methodologies of Pattern Recognition (S. Watanabe, ed.), Academic Press, 1969, New York.
Levi G. and Sirovich F., Structural description of fingerprint images, Information Sci. 4, 327—356 (19 72).
Moayer B. and Fu K. S., A Syntactic Approach to Fingerprint Pattern Recognition, Tech. Rep. TR-EE 73—18, School of Elec. Eng., Purdue Univ., West Lafayette, Indiana, 1973.
Nagao M., Picture recognition and data structure. In Graphic Languages (F. Nake and A. Rosenfeld, eds.), North-Holland Publ. Amsterdam, 1972.
Kelley M. D., Visual Identification of People by Computer, Ph. D. Thesis, Dept, of Comput. Sci., Stanford Univ., Stanford, California, 1970.
Roberts L. G., Machine perception of three-dimensional solids. In Optical and Electro-Optical Information Processing, (J. T. Tippet, D. Beckowitz, L. Clapp, C. Koester, and A. Vanderburgh, Jr., eds.), pp. 159—197, MIT Press, Cambridge, Massachusetts, 4965. (Русский перевод: Робертс Л., Автоматическое восприятие трехмерных объектов, сб. «Интегральные роботы», «Мир», 1973.)
Duda R. О. and Hart Р. Е., Experiments in scene analysis, Proc. Nat. Symp. Ind. Robots, 1st, Chicago, April 1970.
Feldman J. A. et al., The Stanford hand-eye project, Proc. Int. Joint Conf. Artificial Intelligence, 1st, Washington, D. C., May 1969. (Русский перевод: Фельдман Дж., Фельдман Г., Фальк Дж., Грейп Г., Пирлмен Дж., Собел И., Тененбаум Дж., Стэнфордский проект «глаз — рука», сб. «Интегральные роботы», «Мир», 1973.)
Pavlidis Т., Analysis of set patterns, Pattern Recognition, 1, 165—178 (1968).
Kelley J. L., General Topology, Van Nostrand-Reinhold, Princeton, New Jersey, 1955.
Rosenfeld A. and Strong J. P., A grammar for maps. In Software Engineering (J. T. Ton, ed.), Vol. 2 Academic Press, New York, 1971.
Pavlidis, T., Representation of figures by labeled graphs, Pattern Recognition. 4, 5-17 (1972).
Pavlidis T., Structural pattern recognition; Primitives and juxtaposition. In Frontiers of Pattern^Recognition (S. Watanabe, ed.), Academic Press, New York, 1972. t^
Duda R. 0. and Hart P. E., Pattern Classification and Scene Analysis, Artificial Intelligence Group, Stanford Res. Inst., Menlo Park, California, 1970.
Minsky M. L. and Papert S., Proj. MAC Progr. Rep. IV, MIT Press, Cambridge, Massachusetts, 1967.
Guzman A., Decomposition of scenes into bodies, Proc. AFIPS Fall Joint Comput. Conf.. San Francisco. 1968, 33, Pt. 1, pp. 291—304: (Русский перевод: Разбиение визуальной сцены на трехмерные тела, сб. «Интегральные роботы», «Мир», 1973).
Brice С. R. and Fennema С. L., Scene analysis using regions, Artificial Intelligence 1, 205—226 (1970). (Русский перевод: Брайс К. Р., Феннема j К. Л., «Анализ сцены при помощи выделения областей», сб. «Интегральные роботы», вып. 2, 1975.)
Clowes М. С., Transformational grammars and the organization of pictures. In Automatic Interpretation and Classification of Images (A. Grasselli, ed.), Academic Press, New York, 1969.
Kanai L. and Chandrasekaran B., On linguistic, statistical and mixed models for pattern recognition. In Frontiers of Pattern Recognition (S. Wa- . tanabe, ed.), Academic Press, New York, 1972.
Narasimhan R., On the description, generation, and recognition of classes of pictures, In Automatic Interpretation and Classification of Images (A. Grasselli, ed.), Academic Press, New York, 1969.
Narasimhan R., Picture languages. In Picture Language Machines (S. Ka- neff, ed.), Academic Press, New York, 1970.
Evans T. G., A formalism for the description of complex objects and its implementation, Proc. Int. Congr. Cybernet. 5th, Namur, Belgium, September 1967.
Minsky M. L., Steps toward artificial intelligence, Proc. IRE 49, 8—30 (1961). (Русский перевод: Минский M., На пути к созданию искусственного разума, сб. «Вычислительные машины и мышление», «Мир», 1967.)
Clowes М. В., Pictorial relationships — A syntactic approach. In Machine Intelligence 4, (B. Meltzer and D. Michie, eds.), Amer. Elsevier, New York, 1969.'
Evans T. G., Descriptive pattern analysis techniques. In Automatic Interpretation and Classification of Images (A. Grasselli, ed.), Academic Press, New York, 1969.
Barrow H. G. and Popplestone J. R., Relational descriptions in picture processing. In Machine Intelligence 6 (B. Meltzer and D. Michie, eds.), PP 377—396, Edinburgh Univ. Press, Edinburgh, 1971.
55a.Ledley R. S., Programming and Utilizing Digital Computers, McGraw- Hill, New York, 1962. (Русский перевод: Ледли P. С., Программирование * и использование цифровых вычислительных машин, «Мир», 1966.)
Kirsch R. A., Computer interpretation of English text and patterns, IEEE Trans Electron. Comput.. EC-13, 363—376 (1974).
Dacey M. F., The syntax of a triangle and some other figures, Pattern / Recognition, 2, 11—31 (1970).
Milgram D. M. and Rosenfeld A., Array automata and array grammars, IFlP^Congr. 71, Booklet TA-2,, North-Holland Publ. Amsterdam, 1971.
Pfaltz J. L. and Rosenfeld A., Web grammars, Proc. Int. Joint Conf. Artificial Intelligence, 1st, May 1969, Washington, D. C., pp. 609—619.
Shaw A. C., Picture graphs, grammars, and parsing. In Frontiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Rosenfeld A., Picture automata and grammars: An annotated bibliography, Proc. Symp. Comput. Image Process. Recognition, Univ, of Missouri, Columbia, August 24—26, 1972, Vol. 2.
Pavlidis T., Linear and context-free graph grammars, J. Assoc. Comput. Mach., 19, 11—22 (1972).
Pavlidis T., Graph theoretic analysis of pictures. In Graphic Languages (F. Nake and A. Rosenfeld, eds.), North-Holland Publ., Amsterdam, 1972.
Anderson R. H., Syntax-Directed Recognition of Hand-Printed Two-Dimensional Mathematics, Ph. D. Thesis, Harvard Univ., Cambridge, Massachusetts, 1968.
Shaw A. C., The formal picture description scheme as a basis for picture processing systems, Information and, Control 14, 9—52 (1969).
Chang S. K., Picture processing grammar and its applications, Information Sci., 3, 121—148 (1971).
Nake F., A proposed language for the definition of arbitrary two-dimensional signs, In Pattern Recognition in Biological and Technical Systems (0. J. Grusser and R. Klinke, eds.), Springer-Verlag, Berlin and New York, 1971.
Simon J. C. and Checroun A., Pattern linguistic analysis invariant for plane transformations, Proc. Int. Joint Conf. Artificial Intelligence, 2nd, London, September 1971, pp. 308—317.
Simon J. C., Checroun A. and Roche C., A method of comparing two patterns independent of possible transformations and small distortions, Pattern Recognition, 4, 73—82 (1972).
Milgram D. L. and Rosenfeld A., A note on «Grammars with Coordinates». In Graphic Languages (F. Nake and A. Rosenfeld, eds.), North-Holland Publ., Amsterdam, 1972.
Minsky M. L. and Papert S., Research at the Laboratory in Vision, Language, and Other Problems of Intelligence, AI Memo. No. 252^ Proj. MAC. MIT. Press, Cambridge, Massachusetts, 1972.
Knuth D. E. Semantics of context-free languages, J. Math. Syst. Theory, 2, 127-146 (1968).
Fu K. S. and Swain P. H., On syntactic pattern recognition. In Software Engineering (J. T. Tou, ed.), Academic Press, New York, 1971.
Ginsburg S. and Partee B., A mathematical model of transformation grammars, Information and, Control, 15, 297—234 (1969).
Brainerd W. S,, Tree generating regular systems, Information and Control, 14, 217-231 (1969).
Donar J. E., Tree acceptors and some of their applications, J. Comput. System Sci., 4, 406—451 (1970).
Katz J. J. and Fodor J. A., The structure of a semantic theory, Language, 39, 170—210 (1963).
Летичевский А. А., Синтаксис и семантика формальных языков, Кибернетика (Киев), 4, 1—9 (1968).
Kaneff S., Picture Language Machines, Academic Press, New York, 1970.
Mylopoulos J., On the application of formal language and automata theory to pattern recognition, Pattern Recognition, 4, 37—52 (1972).
Kreeding K. J. and Amoss J. O., A pattern description language PADEL, Pattern Recognition, 4, 19—36 (1972).
Clowes M. B., Scene analysis and picture grammars. In Graphic Languages (F. Nake and A. Rosenfeld, eds.), North-Holland Publ., Amsterdam, 1972.
Pavlidis T., Computer recognition of figures through decomposition, Information and Control, 12, 526—537 (1968).
Muchnik LB., Simulation of process of forming the language for description and analysis of the forms of images, Pattern Recognition, 101 — 140 (1972).
Rosenfeld A., Isotonic grammars, parallel grammars, and picture grammars. In Machine Intelligence 6 (B. Meltzer and D. Michie, eds.), pp. 281—294r Edinburgh Univ. Press, Edinburgh, 1971.
Londe D. F. and Simmons R. F., NAMER: A pattern recognition system for generating sentences about relations between line drawings, Proc. ACM Nat. Conf., 20th, 1965, pp. 162—175.
Inselbey A. and Kline R., SAP: A Model for the Syntactic Analysis of Pictures, Tech. Rep. No. 9, Comput. Syst. Lab., Washington Univ., June 1968.
Vigna P. D. and Luccio F., Some aspects of the recognition of convex polyhedra from two plane projections, Information Sci., 2, 159—178 (1970).
Huffman D. A., Impossible objects as nonsense sentences. In Machine Intelligence 6 (B. Meltzer and D. Michie, eds.), pp. 113—125, Edinburgh Univ. Press, Edinburgh, 1971.
Narasimhan R. and Reddy V. S. N., A syntax-aided recognition scheme for hand-printed English letters, Pattern Recognition, 3, 344—362 (1971).
Preparata F. P. and Ray S. R., An approach to artificial nonsymbolic cognition, Information Set., 4, 65—86 (1972).
Глава 4
Синтаксический анализ-
как распознающая процедура
Введение
После того как построена грамматика, порождающая язык для описания рассматриваемого образа, необходимо построить устройство, распознающее объекты, представленные цепочками, порождаемыми этой грамматикой. Прямой подход к решению этой задачи состоит в создании отдельной грамматики для каждого класса объектов г). Распознающий автомат для данной грамматики будет выделять только те объекты, которые принадлежат соответствующему этой грамматике классу. Например, для т классов объектов о^, со2, . . ., сот мы можем построить т соответствующих грамматик Gv G2l . . ., Gmi таких, что цепочки, порожденные грамматикой Gtl будут представлять объекты из класса со^. Тогда для произвольного объекта, описываемого цепочкой х^ проблема распознавания сводится к вопросу: верно ли, что
х £ L (G^ для i = 1, . . ., ml
Процесс, приводящий к ответу на этот вопрос для одной заданной грамматики, обычно называют «синтаксическим анализом» или «грамматическим разбором» [1—8]. Этот процесс, кроме ответа на вопрос —«да» или «нет», может также давать дерево вывода, т. е. информацию о структуре соответствующего объекта. Блок- схема распознающего алгоритма приведена на рис. 4.1. Будем считать, что если объекты представляются цепочками единственным способом, то среди ответов на вопросы: верно ли, что «х £ £ L (G^ i = 1, . . ., ml» — будет только один ответ «да», а все остальные — «нет». При ответе х £ L (Gj) считается, что х принадлежит классу (Оу. Если же все ответы отрицательны, то считается, что х не принадлежит ни одному из т классов.
Простой способ распознавания состоит в сопоставлении входной цепочки х с прототипом или эталоном каждого класса. Эталонная цепочка задается в терминах непроизводных элементов [9—11]. Сопоставление непроизводных элементов может осуществляться параллельно или последовательно. Цепочка х относится к тому классу, из которого взята эталонная цепочка, наилучшим образом согласующаяся с х. В этом случае требуется либо точное совпадение х с эталоном, либо выполнение подходящего критерия согласо-
х) В следующих главах будет показано, что не всегда приходится строить отдельную грамматику для каждого класса объектов.
вания. Конечно, не менее важен и выбор эталонных цепочек. Этот подход, хотя он и представляется менее гибким, прост и может быть реализован быстродействующей программой. Однако в действительности иерархическая структурная синтаксическая информация при таком подходе используется недостаточно и этот подход полезен только тогда, когда можно определить соответствующие эталонные цепочки и имеющий смысл критерий согласования х).
Если грамматика Gt регулярна, можно построить детерминированный конечный автомат для распознавания цепочек, порожденных Gt (см. гл. 2). Если Gt — бесконтекстная или программная
Рис. 4.1. Блок-схема алгоритма синтаксического распознавания образов, грамматика, то обычно требуется недетерминированный автомат. Процесс, или алгоритм, распознавания называется «синтаксическим анализом»; в нем, вообще говоря, используется некоторая недетерминированная процедура. Обычно на выходе распознающего устройства возникает не только ответ на вопрос, порождена ли цепочка данной грамматикой, но и дерево вывода этой цепочки, которое в свою очередь дает точное структурное описание объекта и его частей.
В этой главе коротко описываются некоторые основные методы синтаксического анализа. Применение этих методов для синтаксического распознавания образов демонстрируется в следующих главах.
Если дано предложение х и грамматика G, например бесконтекстная или бесконтекстная программная, и требуется найти вывод х,
1) Очевидным расширением такого подхода, позволяющим использовать синтаксическую информацию, является сопоставление графа, например графа отношений, описывающего объект, с различными прототипами или эталонными графами или сопоставление дерева вывода (дерева грамматического разбора) цепочки х с эталонными деревьями грамматического разбора (см., например, приложение Е) [12—19]. Для некоторых задач можно также выработать группу тестов, позволяющих определить, обладает ли объект определенными свойствами и (пли ) каково их действительное значение. На основании результатов этих тестов объект может быть отнесен к одному из заданных классов.
S Т,S Т,т т*1.т т*1.S-^S + T, Т -> I.Деревом вывода предложения х a* b 4 с * a ~t b будетS-^S + T, Т -> I.Деревом вывода предложения х a* b 4 с * a ~t b будет
S Т,
S Т,
т т*1.
т т*1.
S-^S + T, Т -> I.
Деревом вывода предложения х a* b 4 с * a ~t b будет
S-^S + T, Т -> I.
Деревом вывода предложения х a* b 4 с * a ~t b будет
т. е. построить соответствующее дерево вывода, то возникает задача «грамматического разбора», «распознавания» или «синтаксического анализа» предложения х. Иначе задачу грамматического разбора можно поставить следующим образом: для заданного предложения х и грамматики G построить треугольник
и попытаться заполнить его внутреннюю часть деревом вывода х, правильным для грамматики G. Если попытка успешна, то х £ £ L (G), в противном случае х $ L (G). Например, рассмотрим грамматику G = (EN, FT, Р, 5), где FN = {5, Z}, FT = = {/, +, *}, / Е Vai ^ с) и ^:
в * ьв * ь
в * ь
в * ь
В принципе не важно, как мы пытаемся заполнить треугольник. Мы можем делать это, начиная с вершины (корня) дерева (разбор сверху вниз)
или снизу к вершине (разбор снизу вверх)
Оба способа называются разборами слева направо, так как там, где это возможно, символы в предложении обрабатываются слева направо. Какой бы подход не использовался, отдельные шаги состоят из попыток найти правило подстановки, подходящее для рассматриваемого участка предложения. Например, в предыдущей диаграмме используется правило подстановки
Т-^Т *1.
Такой шаг вывода подходит в данной локальной ситуации, и он также окажется верным в полном грамматическом разборе этого предложения. Если же в этой ситуации использовать правило вывода
5 + Г, как показано на следующей диаграмме:
то в дальнейшем мы обнаружим, что построить непротиворечивое Дерево вывода невозможно, и нам придется вернуться назад, чтобы на этой ступени разбора попробовать применить другое правило (возврат). Тот факт, что приходится делать пробные попытки, которые позднее оказываются ошибочными, делает грамматический разбор, вообще говоря, неэффективной процедурой.
Рассмотрим проблему выбора локального шага независимо от того порядка, в котором мы пытаемся заполнять треугольник. Правило подстановки выбирается только в том случае, если оно удовлетворяет некоторым априорным тестам. Например, выбиваются только такие правила подстановки, которые подходят для данного участка предложения. Априорные тесты могут быть И более сложными. Правило подстановки может отбрасываться из-за того, что его применение приводит к большему количеству основных символов, чем содержится в цепочке, или из-за того, что оно приводит к появлению основного символа, которого в цепочке нет. Если бы в рассматриваемой грамматике было правило подстановки
S -> S * Т, '
То было бы бесполезно применять его для предложений, не содержащих символа *. Возможен и другой априорный тест, отбрасы-
вающий правило подстановки в зависимости от первого символа в выводимых из этого правила предложениях. Если нужный символ не выводится при помощи этого правила как первый основной символ предложения, то правило следует отбросить; на любом шаге применяется одно из прошедших априорные тесты правил подстановки, после чего делается следующий шаг; если позднее обнаружится, что полученная структура не может быть достроена до правильного грамматического разбора данного предложения, то следует вернуться, выбрать другое правило подстановки и начать все сначала. Если необходимо найти все возможные грамматические разборы предложения, то следует испытать все априорно пригодные правила подстановки. Если известно, что язык однозначен, или если достаточно одного грамматического разбора, то процесс заканчивается, как только найден хотя бы один подходящий грамматический разбор предложения.
Быстрота грамматического разбора зависит от того, насколько удается избежать ошибочных проб, которые и приводят к лишним затратам времени. Если порядок выбора шагов и априорные тесты таковы, что на каждом шаге применимо только одно правило подстановки, метод грамматического разбора не может быть существенно улучшен (при условии, что проверка априорных тестов не слишком длинна). Предположим, однако, что на каждом шаге есть несколько возможностей. В этом случае общее число возможных грамматических разборов растет экспоненциально. Поэтому выбор априорных тестов и порядок действий чрезвычайно важны. Это можно показать на примере грамматики G = (Ук, Ут, Р, 5). где yN = {5}, Ут - {а} и Р:
S aSa,
S а.
Первый шаг для предложения х = ааааа, если оно разбирается сверху вниз, таков:
второй шаг:второй шаг:
второй шаг:
второй шаг:
третий шаг:
Мы полагаемся на следующий априорный тест: если количество нерассмотренных символов предложения равно единице, мы используем правило
S -> а,
в остальных случаях пользуемся правилом 5 -> aSa. Таким образом, есть только один путь грамматического разбора.
В этой главе кратко описываются алгоритмы грамматического разбора для бесконтекстных и бесконтекстных программных языков. Несколько недавно предложенных алгоритмов грамматического разбора для грамматик непосредственно составляющих [20, 21] еще не применялись в синтаксическом распознавании образов. Поэтому алгоритмы грамматического разбора для грамматик непосредственно составляющих в эту главу не включены.
Грамматический разбор сверху вниз
Разбор сверху вниз начинается с символа 5, обозначающего 4все предложение, и состоит из последовательности пробных подстановок правил, которые порождают подходящие для этой фразы вспомогательные символы. Чистый грамматический разбор сверху вниз — полностью целенаправленный процесс. Главцой целью является вывод из S данного предложения х. Делается предположение, что анализируемая цепочка действительно есть предложение в языке данной грамматики G. Поэтому первый шаг — выяснить, можно ли свести цепочку к правой части некоторого правила подстановки
8-^Х^ . . . Хп.
Это выясняется следующим образом. Применение данного правила подстановки в случае, когда Хг — основной символ, возможно, если цепочка начинается с этого символа. Если же Хг — вспомогательный символ, ставится подзадача: определить, можно ли какое-либо начало цепочки свести к ХТ. Если это оказывается возможным, таким же образом проверяется Х^ затем X3 и т. д. Если Для некоторого Х^ не удается найти подходящего места в выводе Депочки, то надо попробовать применить другое правило по дета-
новки:
5х;х; х'т.
Точно так же решаются подзадачи для всех А £ 7N, проверяется применимость правила подстановки А ->- ХгХ2 . . . X t и ставится и решается новая подзадача. Если подзадачу не удается решить, то на предыдущем уровне нужно попытаться применить другое правило.
При анализе слева направо и сверху вниз иногда вызывает затруднение повторение слева вспомогательного символа: правила подстановки вида Аг ->- Ага могут приводить к бесконечным петлям при анализе [22]. Это происходит, когда сведение части цепочки к символу Аг ставится как подзадача и первым шагом в ее решении оказывается решение той же задачи: сведение части цепочки к Av Проблема повторения слева иногда решается путем какого-либо преобразования грамматики или изменения порядка разбора [23]. Большую роль здесь также может играть порядок, в котором проверяются различные правые части правил подстановки для одной и той же левой части. Если только одна правая часть содержит повторение слева, она должна проверяться в последнюю очередь. Однако такая последовательность может вступать в противоречие с другими условиями на порядок проверки, например с условием, что кратчайшая правая часть проверяется последней.
Пример 4.1. Рассмотрим грамматику Gx = (FN, Ут, Pi S^ где yN - {5, Г, /}, Ут = {а, 6, с. h g} и Рг;
S -^Т,I а.
S TfS,I ^ь.
Т -> IgT,I с.
Т ~> Ц
Пусть х — afbgc — разбираемое (или анализируемое) предложение. Ниже приведена последовательность шагов анализа. Для каждого шага показаны полученное дерево грамматического разбора и оставшаяся часть предложения. Анализ начинаем с замены символа S на одну из соответствующих правых частей, в данном случае правильной заменой будет TfS. При следующих шагах, если первый символ основной, то он сравнивается с первым сим волом предложения и, когда они одинаковы, этот символ вычеркивается как из предложения, так и из полученной при разборе цепочки. Если же первый символ вспомогательный, то он заменяется на соответствующую ему цепочку. Поскольку мы выбираем верные правила, полученные основные символы совпадают с символами в предложении, но, вообще говоря, они могут не совпа-
и тогда разбор не удастся закончить
afbgc
IfSIfSafbgc
IfS
IfS
afbgc
,bgcfS
afbgc
bgcS
S—T
bgc
T
T-*IgT
afbgc
afbgc
bgcbgc
bgc
bgc
IgT
дс
дг
Т
С
I-* с
г
a f b д с
a f b д с
f b д сf b д сI -*а, I -*Ь, I -> с,I -*а, I -*Ь, I -> с,
f b д с
f b д с
I -*а, I -*Ь, I -> с,
I -*а, I -*Ь, I -> с,
I
I
а
Итак, х £ L (№,), и дерево вывода х показано на последней диаграмме.
Пример 4.,2. Рассмотрим грамматику G2 = (Pn» Рт, ^г» ^’ где PN = {S’, Т, I}, Рт = {a, b, с, f, g} и Р2:
8 Т,
S -* SfT,т -> TgL
Т I.
Заметим, что правила подстановки S ->■ SfT и Т ->- Tgl могут вызывать бесконечные петли и процесс разбора может никогда не закончиться (повторение слева). Существует априорный тест, ликвидирующий опасность такого образования петель при разборе. Каждый вспомогательный символ порождает последовательность, содержащую по крайней мере один основной символ. Отсюда, если число вспомогательных символов, полученных в грамматическом разборе, больше, чем число основных, оставшихся в предложении, грамматический разбор неправилен. На практике такой тест применим только для коротких предложений.
Можно разработать полезный априорный тест, в котором используется крайний левый символ предложения (модифицированный разбор сверху вниз). Предположим, что крайний неразобранный символ предложения есть b и что мы собираемся заменить крайний левый вспомогательный символ А по некоторому правилу подстановки. Нам нужно выбирать те правила, при помощи которых выводятся предложения, начинающиеся с Ь. Если по грамматике предварительно построена матрица соответствий основных и вспомогательных символов, показывающая, из каких вспомогательных символов могут выводиться предложения, начинающиеся с данного основного, то эту матрицу можно использовать для отбрасывания не подходящих на данном шаге правил. Построить такую матрицу легко. Предположим, что мы начинаем с матрицы, показывающей, с каких основных символов начинаются правые части правил подстановки, левая часть которых есть данный вспомогательный символ. Например, рассмотрим грамматику G = (KN, V^ Р, S), где VN = {Т7, 5}, Ут = \сц b, с, d} и Р:
S-^Tb,T-^Td,
S а,Т —> с.
Следующая матрица:
ST abeds ~о i i oooТ 0 1 0 0 1 о
показывает, что правые части правил для S начинаются с Т или а и что правила для Т начинаются с Т или с. В выбранную строку внесем все единицы из строк, соответствующих вспомогательным символам, отмеченным в этой строке единицей. Будем повторять эту процедуру для всех строк до тех пор, пока матрица не перестанет изменяться. Полученная матрица показывает, с каких основных символов могут начинаться предложе- 8*
ния, выводимые из данного вспомогательного символа:
ST abed,s "о i i о ГоТ 0 1 0 0 10
Такой же результат можно получить иначе, взяв грамматику без повторений слева и многократно применяя к вспомогательным символам правой части другие правила до тех пор, пока эта правая часть не будет начинаться с основного символа (нормальная форма Грейбах). Например, для грамматики GT из примера 4.1 нормальная форма Грейбах такова:
S^IgTfS 1^{а,Ъ.с}.
S -^ IgT,Т -> I,
S IfS,Т IgTe"
Эта процедура позволяет получить правила подстановки, правая часть которых начинается с основного символа. В этом случае априорному тесту будут удовлетворять правила, связывающие вспомогательные символы в начале полученной части дерева грамматического разбора с основным символом в начале оставшейся части предложения. Такой метод анализа называют анализом с предшествованием [24]. Так как вид грамматики в нормальной форме несколько отличается от исходного, могут понадобиться дополнительные операции, восстанавливающие дерево грамматического разбора для первоначального вида грамматики.
Шоу [25] использовал грамматический разбор сверху вниз для анализа ряда изображений искровой камеры, полученных в физических экспериментах с частицами больших энергий. Фактически алгоритм Шоу является n-мерной аналогией классического алгоритма грамматического разбора сверху вниз. Причины выбора чистого грамматического разбора сверху вниз таковы:
Языковая часть анализа очень проста и состоит преимущественно из пошагового синтаксического разбора.
Синтаксис языка непосредственно задает алгоритм грамматического разбора.
Потери времени, вызванные неудачными подстановками, незначительны по сравнению с временем первичного распознавания непроизводных элементов. Как только непроизводный элемент изображения выявлен, он запоминается, так что при неудачном выборе правила подстановки этот непроизводный элемент може! быть использован позднее без затраты времени на его повторное распознавание.
Такой анализ выгоден для распознавания непроизводных элементов. Непроизводные элементы изображения могут выделяться независимо друг от друга, и при распознавании часто нет
необходимости в такой точности, как при методе, требующем поиска всех непроизводных элементов на каждом шаге анализа? Те же преимущества распространяются на глобальные методы, дающие список всех непроизводных элементов изображения. Ранее найденные непроизводные элементы и отношение соседства указывают, где искать следующие элементы (приложение Б).
4#3. Грамматический разбор снизу вверх
В отличие от метода разбора сверху вниз, где символ предложения 8 развертывается в заданное предложение при помощи последовательности правил подстановки, при разборе снизу вверх применяют инверсии правил подстановки с тем, чтобы свернуть предложение до начального символа грамматики. Другими словами, в цепочке отыскиваются подцепочки, совпадающие с правыми частями правил подстановки, затем они заменяются на соответствующие левые части. При чистом анализе снизу вверх обычно не ставят промежуточную задачу сведения большой подцепочки к заданному символу, кроме, разумеется, главной задачи сведения всего предложения к символу 8. В следующем примере показана последовательность подстановок при грамматическом разборе снизу вверх и слева направо.
Пример 4.3. Рассмотрим грамматику 6^ из примера 4.1. Пусть х = afbgc. Последовательность шагов анализа снизу вверх приведена на следующей ниже диаграмме.
Общие принципы грамматического разбора слева направо и сверху вниз реализуются в следующей процедуре. Пусть даны выводимая цепочка $ и ее дерево вывода. Определим «фразу» з как ряд висячих вершин некоторого поддерева этого дерева вывода. Самая левая фраза, не содержащая никаких фраз, кроме самой
'afbgc'afbgcIfbgcIfbgcafbgc
'afbgc
'afbgc
Ifbgc
Ifbgc
1 afbgc
Tfbgc
afbgc
Tflgc
I I
a f b g c
I — c
Tflgl
T^I
III I z । | a f b g c
TflgT
T-IgT
TFT
T I
I I
f b g c
S-* T
TfSTfSS IS ISSS-TfSS-TfSI । I a f b g cI । I a f b g c
TfS
TfS
S I
S I
S
S
S-TfS
S-TfS
I । I a f b g c
I । I a f b g c
себя, называется отделимой от s по отношению к данному дереву вывода. Например, в дереве вывода предложения afbgc в примере 4.3 есть пять фраз: a, bs с. bgcs afbgc. Четыре из них, а именно фразы а, Ъ, с и bgc, не содержат других фраз. Отделимой является самая левая фраза а. Начиная с цепочки х = sOl для i = 1, 2, . . ., п проделаем следующие операции до тех пор, пока не получим sn = 8.
Найдем отделимую фразу для st.
Заменим в st эту фразу на метку соответствующего ей поддерева; полученная фраза есть
Сократим дерево вывода, выбросив из него вершины, соответствующие символам только что найденной отделимой фразы. Последовательность S = sn => sn^ => . . . =>sT=> s0 есть вывод цепочки Sq == х.
Пусть, например, дана цепочка s0 = afbgc и ее дерево вывода цз примера 4.3. Отделимая фраза а заменяется на I и соответствующая вершина вырезается из дерева, что дает ^ = Ifbgc и новое дерево вывода
ssдавая s2 = l]bgc и новое дерево вывода/ /\т / гI I f b д сАналогичноs 3 = Tflgc1 АI I1s4 = ТЧд!1 АI Iдавая s2 = l]bgc и новое дерево вывода/ /\т / гI I f b д сАналогичноs 3 = Tflgc1 АI I1s4 = ТЧд!1 АI IДля цепочки ^ и ее дерева вывода, показанного выше, отделилЩй фразой будет Z; Z заменяется на Т и удаляется из дерева вывода,Для цепочки ^ и ее дерева вывода, показанного выше, отделилЩй фразой будет Z; Z заменяется на Т и удаляется из дерева вывода,
s
s
давая s2 = l]bgc и новое дерево вывода
/ /\
т / г
I I f b д с
Аналогично
s 3 = Tflgc
1 А
I I
1
s4 = ТЧд!
1 А
I I
давая s2 = l]bgc и новое дерево вывода
/ /\
т / г
I I f b д с
Аналогично
s 3 = Tflgc
1 А
I I
1
s4 = ТЧд!
1 А
I I
Для цепочки ^ и ее дерева вывода, показанного выше, отделилЩй фразой будет Z; Z заменяется на Т и удаляется из дерева вывода,
Для цепочки ^ и ее дерева вывода, показанного выше, отделилЩй фразой будет Z; Z заменяется на Т и удаляется из дерева вывода,
Чистый анализ снизу вверх не очень эффективен, так как в нем возможно много неудачных проб или ошибок. Однако к нему применим мощный априорный тест. Рассмотрим пример 4.3 на стадии Ijbgc. Здесь имеет смысл использовать только те правила подстановки, у которых правая часть начинается с I. Каждое такое правило подстановки частично определяет промежуточный вспомогательный символ. Не имеет смысла использовать такое правило подстановки, из вспомогательного символа которого не выводится начало предложения. В данном случае применимы два правила подстановки:
Т 7, T^IgT. Поскольку Т начинается с S, нужно попробовать оба правила. Второе из них не подходит, остается цепочка Tjbgc. К ней снова применимы два правила:
S-^T,
S ^ TfS,
и их надо попробовать применить. Первое не годится. Теперь мы знаем, что грамматический разбор таков:
a f / j
и поэтому оставшаяся часть предложения должна выводиться из S. К началу bgc стоит применять только такие правила подстановки, у которых левая часть есть вспомогательный символ, выводимый из S.
Можно построить матрицу, подобную описанной для грамматического разбора сверху вниз. Эта матрица покажет, с каких вспомогательных символов могут начинаться цепочки, выводимые из данного вспомогательного символа. Легко видеть, что при грамматическом разборе снизу вверх не существует проблемы повторений слева х). В общем случае используются два различных метода для обхода тупиков, возникающих при грамматическом разборе. Первый метод — возвращение к тому моменту, с которого можно начать другой вариант грамматического разбора. Этот метод требует восстановления цепочки в прежней форме или уничтожения некоторых связей, появившихся на дереве вывода. Второй метод заключается в параллельном выполнении^всех возможных грамматических разборов предложения. Некоторые из этих разборов отбрасываются, поскольку их не удается закончить (дальнейшая редукция невозможна). На практике, однако, многие алгоритмы анализа усовершенствованы настолько, что при определенных ограничениях на вид грамматики ни возращения, ни параллельное выполнение разборов не нужны.
Нарасимхан, Ледли и другие использовали метод анализа снизу вверх для изображений треков частиц в пузырьковой камере и изображений хромосом [26—28]. Грамматики, которые они ^использовали для описания изображений треков частиц в пузырьковой камере, букв английского алфавита и хромосом, подробно описаны в приложениях А и Г.
Сравнение различных методов грамматического разбора трудно по следующим двум причинам. Во-первых, эффективность разбора зависит от вида грамматики: для одних грамматик предложения быстрее разбираются методом сверху вниз, а для других — методом снизу вверх. Во-вторых, если оказалось, что какой-либо метод грамматического разбора не эффективен для некоторой грамматики, то обычно можно построить измененный ее вариант, Для которого этот метод эффективен. Большинство алгоритмов, дающих все грамматические разборы, основано на грамматическом разборе сверху вниз. Однако большинство алгоритмов узкого* назначения для грамматик специального вида основано на методе снизу вверх. Существующие алгоритмы грамматического разбора, работающие по методу сверху вниз, применимы к более широкому классу грамматик, но менее эффективны. Гриффитс и Петрик [29} сравнивали алгоритмы по эффективности соответствующих машин
г) Читатель может испробовать метод грамматического разбора снизу вверх на примере 4.2.
Тьюринга. Они нашли оценки для количества шагов, необходимых машине Тьюринга для грамматического разбора разными способами предложений, порожденных различными грамматиками, и показали также, что для любой грамматики существует эквивалентная ей, такая, что для нее разбор предложения методов сверху вниз проводится ненамного медленнее, чем разбор снизу вверх для исходной грамматики.
LK (&)-грамматики j
При грамматическом разборе слева направо и снизу вверх обычно на каждом шаге есть несколько подцепочек, которые можно заменить вспомогательными символами. Поэтому часто приходится перебирать большое количество вариантов. Для некоторых классов грамматик процесс перебора осуществим при помощи простой и детерминированной процедуры.
Один из таких классов называется классом LR (/с) -грамматик. Запись LR (К) означает, что при грамматическом разборе слева направо и снизу вверх достаточен просмотр цепочки вперед на к символов. Неформально мы относим бесконтекстную грамматику G = (FN, Ft, Р, 8) к LR (/с)-грамматикам, если для любой выводимой цепочки s верно следующее: s единственным способом записывается в виде Руб, так что существует единственный правый вывод 8* => рЛ6=> Руб, причем А заменено на у на последнем шаге вывода, и если, кроме того, Л и у определяются однозначно при просмотре цепочки s слева направо не больше, чем на к символов после у. Если часть этих к символов расположена правее конца цепочки, мы считаем, что цепочка s выводима из 8 $\ а не из 8, где $ ^ FN.
Формально грамматика G относится к классу LR (/с), если для каждой цепочки ар^^ (где а, р ^ F*, и ^, х2 £ Ft и | хг | = = /с), такой, что 8 $ =>- аР^Жд, выполняется следующее усло- rt вие х).
Если на предпоследнем шаге вывода выведена цепочка аАхххг так, что -*
5$ft =^ аАх^ => ар#^»rtrt
и есть некоторая другая цепочка ap#^, такая, что
* => ^Вх ара;^, rt rt
Знак =Ф обозначает правый вывод, т. е. вывод, при котором правило rt применяется к самому правому вспомогательному символу в цепочке.
то 7 = а, Л = В и ж = ^^g. Другими словами, в правом выводе двух цепочек, у которых совпадают к символов правее места последней подстановки, в цепочках, выведенных на предпоследнем шаге этого вывода, должны также совпадать к символов правее места последней подстановки.
Пример 4.4. Рассмотрим грамматику G = (yN, Ут? Р? S'), где Vn-{S}, Ут -{^ 6} и Р:
S -> aSb,
S Sb, S b.
L(G) = {anbm[m>n}.
Можно показать, что грамматика G не принадлежит классу LR(1). Более того, она не принадлежит классу LR (к^ для любого к. Например, пусть а-=^, у — ааа, A B S, ^ — aSb, xt — b, x^bb^, x = bbbb$ и x3 = bbb§. Тогда
*
5$ => аЛ^2 => a$XtX3 = aaaSbbbb$. rtrt
Но также верно, что
*
5$ => ^Bx =>- a^XtX3 = aaaSbbbb^.rt rt
Грамматика G не принадлежит классу LR (1), поскольку у ^ а. Перечислим некоторые важные свойства LR (А)-грамматик.
Каждая LR (&)-грамматика однозначна.
Язык, порождаемый LR (Л)-грамматикой, допускается детерминированным магазинным автоматом. Такой язык называется детерминированным бесконтекстным языком [30].
Каждый язык, допускаемый некоторым детерминированным магазинным автоматом, порождается LR (1)-грамматикой. Таким образом, язык принадлежит классу LR (1) тогда и только тогда, когда он принадлежит классу LR (к) для некоторого к.
Если язык Lx допускается некоторым детерминированным магазинным автоматом, то существует такая LR (О)-грамматика G, что L (G) = Ьг$.
Кнут [31] построил два алгоритма для определения того, является ли бесконтекстная грамматика G LR (/с)-грамматикой для заданного к. Второй из них строит алгоритм грамматического разбора для LR (/с)-грамматики в виде детерминированного магазинного автомата. Существует класс грамматик, подобных LR (ку грамматикам, для которых возможен детерминированный грамматический разбор сверху вниз при просмотре цепочки слева направо; они называются LL (ку (для самого левого вывода) или ГО №)-грамматиками [32, 33]. Рассматривались также различные
124 Гл. 4. Синтаксический анализ как распознающая процедура подклассы класса детерминированных языков, среди них языки с предшествованием [34], языки с ограниченным контекстом [35] и простые детерминированные языки [36].
Эффективный грамматический разбор сверху вниз
Эффективный алгоритм грамматического разбора для бесконтекстных языков недавно разработан Эрли [37]. Алгоритм Эрли тесно связан с алгоритмом Кнута для LR (/с)-грамматик; однако в этом алгоритме не требуется, чтобы грамматика была задана в каком-либо специальном виде. В сущности алгоритм Эрли является алгоритмом грамматического разбора сверху вниз, в котором одновременно выполняются все возможные варианты разбора, причем так, что одинаковые части разных вариантов можно объединить. Это свойство алгоритма уменьшает количество пробных подстановок и позволяет избежать повторений слева. Неформальное описание алгоритма таково. Во входной цепочке х — Хг . . . Хп слева направо просматривается к следующих друг за другом символов при некотором заданном к. Для каждого символа Хг строится множество состояний Qt, позволяющее судить о процессе разбора в этом месте цепочки. Каждое состояние из множества Qt задается четверкой, состоящей из (1) такого правила подстановки, что из начала его правой части выводится просмотренная к этому моменту часть цепочки; (2) точки в правой части этого правила, показывающей, из скольких символов правой части состоит это начало; (3) указателя места на входной цепочке, начиная с которого алгоритм пытается использовать это правило подстановки, и (4) цепочки из к символов — возможного синтаксического продолжения просмотренной цепочки для применяемого правила. Эта четверка записывается в виде правила подстановки с точкой в правой части, за которым следуют цепочка длины к и целое число.
Действие алгоритма демонстрируется на грамматике G — — (^n? Кт, Р. S), порождающей простые арифметические выражения. Здесь
уN = {5, Т, EV Ут - {^+, *} и Р:
S-^T,Т-^Т^Е,
S-^S-VT.Е -> а,
Т -> Е.
Пусть разбираемая цепочка х = а + а * а. Сначала алгоритм просматривает символ а и строит конечное множество ^, состоящее из следующих состояний (цепочки из к символов — четвертый
элемент четверки — не приводятся):
Е -> а.О8 Т.О
Т-^Е.ОS-^S.A-TО
Т-^Т.*РО
Каждое состояние представляет возможный грамматический разбор начала предложения при условии, что просмотрен только один символ а. Для всех состояний указатель 0, поскольку из правых частей всех представленных правил подстановки должно выводиться начало цепочки. Для каждого символа в цепочке будет построено такое множество состояний. Чтобы не затруднять разбор, мы поместим k + 1 символов $ на правый конец цепочки кФ 5 (^N и Гт)).
В начале работы алгоритм строит Qo, это единственное состояние
05 $$ь О,
здесь 0 — новый вспомогательный символ. На множестве состояний Qt алгоритм, вообще говоря, работает следующим образом. Он обрабатывает состояния по порядку, выполняя для каждого из них в зависимости от вида состояния одну из трех операций. Эти операции могут добавлять состояния в Qt и строить состояния для нового множества (^+v Опишем эти три операции на приведенном выше примере. В грамматике G при к = 1 Qo состоит из единственного состояния
0 ^.8 $$ О
I. Операция предсказания применяется к состоянию тогда, когда в правой части соответствующего правила справа от точки стоит вспомогательный символ. Эта операция добавляет одно новое состояние в Qt для каждого правила, левая часть которого совпадает с этим вспомогательным символом. Для этих новых состояний в начале правой части правила подстановки ставится точка, поскольку ни один из символов предложения еще не был просмотрен. Указателем служит число Z, поскольку состояние вносится в множество Qi. Таким образом, эта операция добавляет в Qi все правила подстановки, которые могли бы породить цепочки, начинающиеся с Хг+1.
В нашем примере алгоритм добавляет в множество Q0 следующие состояния:
S->.SA-T $ О
S -> .Т$ О
Цепочка из к символов есть $, поскольку в исходном состоянии символ $ расположен после 8. Дальше обрабатываются эти два
состояния и к ним также применяется операция предсказания. Примененная к (2), она дает
(4)(5)(4)(5)8.S + T8.S + T8 .Т8 .Т+ о+0 .+ о+0 .
(4)
(5)
(4)
(5)
8.S + T
8.S + T
8 .Т
8 .Т
+ о
+0 .
+ о
+0 .
Здесь возможным продолжением цепочки служит символ +у поскольку + стоит после S в (2). Применение операции к (3) позволяет получить
(6)(7)(6)(7)Г .Т*Е $ ОГ .Т*Е $ ОТ -г .ЕТ -г .Е$ О$ О
(6)
(7)
(6)
(7)
Г .Т*Е $ О
Г .Т*Е $ О
Т -г .Е
Т -г .Е
$ О
$ О
с возможным продолжением $, поскольку Т — последний символ в правой части правила подстановки из (3) и для него возможным продолжением служит $. Операция предсказания, примененная к (4), дает опять (4) и (5), а если применить эту операцию к (5), то получим
Т ->- .Т*Е+ О
Т -> .Е+ 0 .
В Qo попадут также следующие состояния:
Т ->- Л*Е *О
Т -> .Е * ОЕ -> .а$О
Е -> .а+О
Е —> .а*0 .
Операция предсказания не применима к последним трем строкам, Вместо нее применим операцию сканирования, которая используется как раз в тех случаях, когда справа от точки стоит основной символ.
Операция сканирования сравнивает основной символ справа от точки с Xf+i и, если они совпадают, вносит это состояние в ^;+1г причем точка в правиле сдвигается на один символ вправо, что указывает на то, что символ просмотрен.
Если Хг = а, то множество & состоит из состояний
Е-^а.$О
Е->а.+О
Е а.♦О
Эти состояния получены при помощи операции сканирования- Если после полной обработки Qi множество (2i+i остается пустым.
то во входной цепочке есть ошибка х), в противном случае алгоритм приступает к обработке множества (7,+р
Операция завершения применима к состоянию, у которого точка стоит в конце правой части правила подстановки. В нашем примере она применима к любому состоянию из (8). Эта операция сравнивает возможное продолжение цепочки с цепочкой Xf+1Xi+2 . . . X^+k. Если они совпадают, рассматривается множество состояний с индексом, равным указателю (в нашем примере это множество состояний Q^, все состояния из Q0 с символом Е справа от точки добавляются в множество ^ ), а точка в них сдвигается на один символ вправо. Если Х2 = +, то операция завершения, примененная к (8), дает
Т->Е.$О
"т Е.+О
Т -> Е.*0.
Применение той же операции ко второму состоянию из (9) дает
8-^Т.$0
8-^ Т.+0
Т -> Т. *Е$0
Т -> Т. *Е +0
Т —> Т. * Е*0 .
Применение той же операции ко второму состоянию из (10) дает
(И)0^8.^$0,
-> 8. + 7 $ о
-> 5.+7 + 0 .
После этого операция сканирования добавляет в ^2 Два состояния:
s^S-V-T$0
8 -> 5+ .Т+ 0 .
Если на некотором шаге алгоритм строит множество Qt-w состоя* щее из единственного состояния
0 -> 5$. $ 0 , то это означает, что алгоритм просмотрел и допустил как 5, так и $ и допустил цепочку в качестве предложения, порожденного грамматикой G.
х) В этом случае цепочка не принадлежит языку L (G).— Прим, перев.
Для эффективного выполнения алгоритма рекомендуется выбирать 6 = 1. По сравнению с большинством других ограниченных алгоритмов (с квадратичной или кубической оценкой времени работы) этот алгоритм можно применять к более широкому классу бесконтекстных грамматик. Ниже приведена пошаговая запись работы алгоритма над цепочкой при 6 = 1.
Со: 0
.5$
$0Т -
.711*7;
*0
(Xj = a) 8 -у
.S + T
$0Т -
-у .Е
$0
8 ->
.S + T
+ 0 т -
-у .Е
+0
5 ->
.1
$0Т -
■у .Е
* о
8 ->
.1
+0Е -
-у .а
$0
Т ->
.Т*Е
$0 Е -
-у .а
+ о
Т -у
.Т * Е
+0Е -
-у .а
*0
Ci: Е-
а.
$08
-у Т.
+0
(Х2= +) Е -
-у а.
4-0Т
-у Т.*Е
$0
Е -
а.
*0 т
-у Т.*Е
+0
Т -
у Е.
$07
-у Т.*Е
*0
Т -
у Е.
+00
-у 8 .$
$0
Т -
у Е.
*08
-> 8. +7
$0
8 -
* Т.
$05
-^ 8. + 7
+0
&: 8
5 +
.Т $0
7 -у .Е
$2
(Х3 = а) 8
-> 5 +
.7+0
Т -у .Е
+ 2
Т
-> .Т *
Е $2
7 -у .Е
*2
Е -у .а
$2
Т
.т*
Е +2
Е -у .а
+ 2
Т
.т *
Е *2
Е -у .а
*2
Сз: Еу
► а.
$28 -
у S + T.
$0
(Х4 = *) Е^
- а.
+28 -
у S + T.
+ о
Е ->
- а.
*2Т -
у Т.*Е
$2
Т -У
• Е.
$2Т -
у Т.*Е
+2
Т-у
■ Е.
+2Т -
у Т.*Е
♦2
Т->
■ Е.
*2
&: Ту
- Т* .Е
$2
Е —у .а
$4
(Хъ = а) Ту
► Т* .Е
'+2
Е -у .а
+ 4
Т
- Т* .Е
*2
Е -у .а
* 4
Q5:
Е -
->• а.
$4
8 -
- 8-VI.
+ 0
№ = $)
Е -
а.
+ 4
Т -
И.»Е
$2
Е -
■>■ а.
* 4
т -
* Т. *Е
+2
Т -
> Т*Е.
$2
т -
Т. * Е
* 2
Т -
> Т*Е.
+2
0 -
v 8 Л
$0
Т -
* Т*Е.
*2
8 -
>- S. + T
$0
S -
* S + T.
$0
8 -
> S.+T
+ 0
Qe- 0
5$.
$ 0
Грамматики с операторным предшествованием
Грамматика называется операторной, если в ней нет правил вида
А -^аВС^
где а, р V* и А, В, С С TN. Это означает, что ни одна выводимая цепочка не содержит двух рядом стоящих вспомогательных символов т). Пусть даны операторная грамматика и выводимая в ней цепочка s. Определим «простую фразу» цепочки s как фразу, не содержащую ни одной фразы, кроме самой себя, и содержащую хоть один основной символ. Аналогично, а есть простая фраза хотя бы одной выводимой цепочки s тогда и только тогда, когда а содержит как минимум один основной символ и существует либо правило подстановки вида А ->а, либо правило подстановки *
А -> а', где а' =>а, ив этом выводе применяются правила подстановки только такого вида: At -^Aj. Ниже описывается алгоритм грамматического разбора, который на каждом шаге уменьшает не отделимую, а крайнюю левую простую фразу. Однако мы все же назовем его лево-правым алгоритмом грамматического разбора снизу вверх, поскольку в основном он работает слева направо.
Определим три отношения между основными символами tx и Ц в операторной грамматике.
tA = Z2, если в грамматике есть правило подстановки А ->- -^ау2[3 или А -^а^В^р, где а, р £ Г* и А, B(VN.
^ • > ^2, если в грамматике есть правило подстановки **
A -^aBt^ и возможен вывод В у^ или В ^t^C для некоторого у Г* и С £ rN.
ty О t^ если в грамматике есть правило подстановки A -^а^Вр и возможен вывод В £2у или В CV2y — для неко-
Это не слишком сильное ограничение. Многие обычные грамматики являются» операторными или легко могут быть представлены в операторной форме.
9-086
торого у и С. Если для любой упорядоченной пары основных символов выполняется не более чем одно отношение, то грамматика называется «грамматикой с операторным предшествованием» 1). Отношения •>, =, <• могут быть записаны в виде матрицы, называемой матрицей отношения предшествования. Ясно, что это единственное отношение между парой основных символов может быть полезно при грамматическом разборе в языках с отношением предшествования. Например, предположим, что ^ и Ц— соседние основные символы в некоторой выводимой цепочке или частично разобранном предложении, т. е. что они разделены только вспомогательными символами и ни один основной символ не стоит между ними. В этом случае они принадлежат одной и той же простой фразе тогда и только тогда, когда ^=^2- Если же ^«>^2, то ^ принадлежит простой фразе, которой не принадлежит £2, и вспомогательные символы между tv и ^2 также принадлежат этой фразе. Аналогично, если ^О f2> то ^i и ^2 принадлежат разным простым фразам. Отсюда легко определить фразовую структуру предложения. Например, предположим, то t^at есть подцепочка выводимой цепочки s = ат^0а^а2 и что основные символы в а расположены в порядке tv t^ . . ., tn. Если между tOl tv . . ., tni t есть следующие отношения:
то а — простая фраза. Далее, а можно свести к некоторому А так, чтобы получить выводимую цепочку a1^0Aia2.•
Пример 4.5. Рассмотрим грамматику G = (FN, 7Т, Р, S), где VN = {r, Р, 8), Ут = {Л Л 5(>)Ь '€{«> Ь, С, d) и Р;
S SfT,Т Р,
8 -> Т,Р (8),
Г TgP,Р->1.
Матрица отношения предшествования для этой грамматики такова:
/ 9 ( ) I
Проведем грамматический разбор предложенияafbg (cfd),
В терминах LR (/с)-грамматик грамматики с отношением предшествования есть LR (О)-грамматики.
при котором вместо неизвестных вспомогательных символов будем использовать символ N, и покажем, как образуется дерево фраз х)
а / b g ( с / с )а / b g ( с / с )N fbg(с/d)N fNg(чcfd)<t < < > < >N fNg(NfdN fNg(NfN)N f Ng ( N )N f N g NN / NN fbg(с/d)N fNg(чcfd)<t < < > < >N fNg(NfdN fNg(NfN)N f Ng ( N )N f N g NN / Nafbgt.cfd') afbgkcfd') afbg^cfd) afbg^cfd^ afbgVcfd^afbgt.cfd') afbgkcfd') afbg^cfd) afbg^cfd^ afbgVcfd^afbg(cfd)afbg(cfd)a f b g ( c / d )a f b g ( c / d )a f b g ( c f d )a f b g ( c f d )
а / b g ( с / с )
а / b g ( с / с )
N fbg(с/d)
N fNg(чcfd)
<t < < > < >
N fNg(Nfd
N fNg(NfN)
N f Ng ( N )
N f N g N
N / N
N fbg(с/d)
N fNg(чcfd)
<t < < > < >
N fNg(Nfd
N fNg(NfN)
N f Ng ( N )
N f N g N
N / N
afbgt.cfd') afbgkcfd') afbg^cfd) afbg^cfd^ afbgVcfd^
afbgt.cfd') afbgkcfd') afbg^cfd) afbg^cfd^ afbgVcfd^
afbg(cfd)
afbg(cfd)
a f b g ( c / d )
a f b g ( c / d )
a f b g ( c f d )
a f b g ( c f d )
NNa f b g ( c f d )
N
N
На самом деле грамматический разбор этого предложения таков:
Рис. 4.2. Грамматический разбор с использованием операторного предшествования. Знаком ’ _L’ отмечены концы предложения, т. е. анализируемое предложение записано в виде ± я ±. Последовательность Х0Хг . . . Хг — содержимое магазина памяти в некоторый момент грамматического разбора предложения ± я ±.
Чтобы его получить, необходимо добавить результат действия таких правил подстановки, как
S-^-T, и найти вспомогательные символы, которыми отмечены узлы дерева. На рис. 4.2 показана блок-схема алгоритма грамматического разбора, использующего операторное отношение предшествования.
Отношение предшествования между основными символами обычно может быть задано при помощи двух весовых коэффициен-
тов, приписываемых каждому основному символу. Следовательно, размерность пространства, необходимого для выражения отношения предшествования, может быть уменьшена до двух, если найдутся две целочисленные «функции предшествования» / (0 и g (0, такие, что из ^ <• ^ следует / (^) < g (Z2), из ^ = ^ следует /(^) = g(t2) и из ^ •> £2 следует / (^) •> g <t^. Например, для языка, определенного в примере 4.5, функции предшествования таковы:
t
fw
gw
/
3
2
g
5
4
(
2
6
)
6
1
I
5
6
Флойд [34] приводит алгоритм, который по данной грамматике определяет, является ли она грамматикой с операторным предшествованием, строит матрицу отношения предшествования и находит функции предшествования / (t) и g (^), если они существуют. Довольно трудно построить хорошую схему поиска ошибок при использовании функций предшествования, поскольку ошибку или неправильную попытку разбора можно определить только в том случае, когда не вся простая фраза оказывается разобранной неверно. При использовании полной матрицы отношения предшествования ошибки определяются при условии, что не существует связи между верхним символом в магазине памяти и входным символом. Поэтому функции предшествования следует использовать только после полной синтаксической проверки цепочки.
Грамматики с предшествованием и грамматики с расширенным предшествованием
Вирт и Вебер [38] изменили понятие предшествования, введенное Флойдом. Согласно [38], не требуется, чтобы грамматика была операторной и отношения <•,=,•> могут устанавливаться между всеми парами символов:
Хг = Х2, если есть правило подстановки А -^аХ1Х2р.
А\ • >• Х2, если есть правило подстановки А -+аВХ2$ (или А ->аВС^ и вывод В => уХг (и С => Х26) для некоторых у, 6.
О Х21 если есть правило подстановки А -^аХгВ^ *
и вывод В Х2у для некоторого у.
Если по крайней мере одно из отношений верно для любой пары символов Хг и Х2 и если в грамматике нет двух правил подстановки
с одинаковой правой частью, то грамматика называется грамматикой с предшествованием, а язык — языком с предшествованием. В любом языке с предшествованием всякое предложение имеет единственное синтаксическое дерево. При грамматическом анализе, до тех пор пока между текущим символом предложения и верхним символом в магазине памяти установлено отношение О либо =, текущий символ t заносится в магазин памяти. Как только Xi •'>tn начинается считывание хранящихся в магазине символов до тех пор, пока не получится последовательности:
Xj-1<. Х}= . . .= Х^.^Х^
Следовательно, отделимая фраза предложения есть X, . . . Xtl и ее надо заменить левой частью единственного существующего правила подстановки A -^Xj . . . Xt. Основное различие между этим методом и методом, обсуждавшимся в предыдущем разделе, в том, что отношение предшествования здесь устанавливается между любыми двумя символами, а не только между основными, и поэтому к вспомогательному символу сводится не простая, а отделимая фраза. Алгоритмы для определения матрицы предшествований и функций предшествования, сходных с функциями Флойда, приведены Виртом и Вебером в [38]. Однако обычно необходимо преобразовать грамматику для того, чтобы избежать одновременного существования противоречащих друг другу отношений между парой символов. Фишер [39], Лернер и Лим [40] показали, что любую бесконтекстную грамматику GT можно преобразовать в грамматику с отношением предшествования Вирта — Вебера G2 так, что L (Gy = L (G2).Следующий пример иллюстрирует процесс грамматического разбора с использованием отношения предшествования Вирта — Вебера.
Пример 4.6. Рассмотрим грамматику из примера 4.5. Оказалось, что в ней f = Т, поскольку 5 -> SfT, и / <• Т поскольку S ->SfT и TgP. Возникает противоречие из-за одновременного существованиягдвух отношений (== 5 и О S'). Грамматику можно изменить, добавив дополнительные вспомогательные символы
S-^U,S-^U,U-^UjT, и-^т, ТU-^UjT, и-^т, ТV VgP, V^P. P-^S), P-*LV VgP, V^P. P-^S), P-*L
S-^U,
S-^U,
U-^UjT, и-^т, Т
U-^UjT, и-^т, Т
V VgP, V^P. P-^S), P-*L
V VgP, V^P. P-^S), P-*L
и получить таким образом грамматику с полным предшествованием. Ниже приведена последовательность шагов грамматического разбора
у f Ъ д ( Р f b д ( V f b д к Т J b д ( U f Ъ д ( U / Р 9 ( U f V д к U f V д к U f V д к U f V д (у f Ъ д ( Р f b д ( V f b д к Т J b д ( U f Ъ д ( U / Р 9 ( U f V д к U f V д к U f V д к U f V д (с f d ) с j d У с j d ) с jd У с f d ) С j d ) c f d ) P f d ) V f d ) T f d )с f d ) с j d У с j d ) с jd У с f d ) С j d ) c f d ) P f d ) V f d ) T f d )UfVgкU/d)
у f Ъ д ( Р f b д ( V f b д к Т J b д ( U f Ъ д ( U / Р 9 ( U f V д к U f V д к U f V д к U f V д (
у f Ъ д ( Р f b д ( V f b д к Т J b д ( U f Ъ д ( U / Р 9 ( U f V д к U f V д к U f V д к U f V д (
с f d ) с j d У с j d ) с jd У с f d ) С j d ) c f d ) P f d ) V f d ) T f d )
с f d ) с j d У с j d ) с jd У с f d ) С j d ) c f d ) P f d ) V f d ) T f d )
UjVgкVJPУ
UjVg(U/VУ
L/VgкСITУ
UfVg(U)
VfVg(S)
vfVgP
u f V
V f T и ’
Мак-Киман [41] расширил концепцию Вирта и Вебера, во-первых, разделив матрицу отношения предшествования на две матрицы, одну для поиска конца отделимой фразы, а другую для поиска начала, и, во-вторых, заставив автомат просматривать больший кусок цепочки, так что в отношении предшествования возникает меньше противоречий. Автомат, построенный таким образом, может работать с более широким классом грамматик («грамматики с раширенным предшествованием»).
Андерсон и Ли использовали метод анализа Вирта — Вебера для распознавания соответственно двумерных рукописных математических выражений и изображений хромосом [42, 43]. Чанг расширил отношение предшествования на двумерный случай, рассмотрев одновременно отношение предшествования и отношение доминирования. Двумерный анализ с использованием отношения предшествования применялся для распознавания двумерных математических выражений и формата печатного материала [44].
Синтаксический анализ
бесконтекстных программных языков
В этом разделе предлагается метод анализа цепочек символов, позволяющий установить, принадлежат ли они языку, порождаемому данной бесконтекстной программной грамматикой [45]. Для анализа используется алгоритм грамматического разбора сверху вниз, состоящий из генерирующего алгоритма и алгоритма возврата, которые, работая совместно, могут построить дерево
вывода цепочки в данной бесконтекстной программной грамматике. В процессе анализа обнаруживается и фиксируется каждый вывод цепочки. Основная идея алгоритма похожа на идею, предложенную Шартром и Флорентином [46] для анализа бесконтекстных языков. На бесконтекстную программную грамматику накладывается единственное ограничение: она не должна содержать правил, допускающих циклическое повторение вспомогательных символов, не увеличивающее длину цепочки (например, А ^ В, В-А>С, С-^А, если дальше снова применяется г^. На практике это весьма слабое ограничение, но оно гарантирует окончание грамматического разбора. Из этого ограничения следует, что любой путь сверху вниз по дереву вывода дает постепенно увеличивающуюся выводимую цепочку г). Поскольку любой предположительный разбор предложения обрывается, как только длина выведенной цепочки станет больше длины анализируемого предложения, и поскольку существует не более конечного числа возможных грамматических разборов цепочки, процесс разбора должен обязательно закончиться.
Для выполнения алгоритма возврата грамматика видоизменяется таким образом, что бесконтекстный программный язык как бы погружается в скобочный [47]. Бесконтекстный скобочный язык обладает тем свойством, что каждая его цепочка содержит в себе полную информацию о способе своего порождения. В бесконтекстных программных языках каждая цепочка скобочного языка содержит еще и информацию о последовательности применения правил подстановки в ее выводе. При таком возврате через какой- нибудь шаг, на котором было успешное применение правила подстановки, расположение скобок указывает, какая часть выводимой цепочки была выведена при помощи этого правила и, следовательно, должна быть редуцирована к некоторому единственному вспомогательному символу.
Пример 4.7. Рассмотрим бесконтекстную программную грамматику Gp = (PN, Ут, У, Р, Л), где yN = {Л, В, С}, Ут = = {а, Ъ, с}, J = {1, 2, 3, 4, 5} и
Метка
Ядро
SkU)
F (W)
1
А
->- аВС
8 ({2,4})
2
В
-►■ аВВ
8({3})
Fk№)
3
С
,сс
8 ({2,4})
F{{0})
4
В
-^Ь
8 ({4})
5
С-
->- с
8 ({5})
FU0»
L <Gp^ = {anbncn | п> 1}.
г) По определению, ни одно правило подстановки бесконтекстной программной грамматики не может породить пустую цепочку.
На рис. 4.3 приведена схема анализа цепочки abc в этой бесконтекстной программной грамматике. Используемые на рис. 4.3 обозначения можно объяснить следующим образом:
Для любого вспомогательного символа N £ Ик запись Ni (?) Nt указывает на то, что цепочка у была выведена из символа который был заменен у на Z-м шаге вывода.
so(1) =1so(1) =1N1(aN2<<b')N2C')N1N1(aN2<<b')N2C')N1f4(O = 5f4(O = 5/^ (2) не определено/^ (2) не определено
so(1) =1
so(1) =1
N1(aN2<<b')N2C')N1
N1(aN2<<b')N2C')N1
f4(O = 5
f4(O = 5
/^ (2) не определено
/^ (2) не определено
N^aN^bW^)^
S5(1) =5S5(1) =5$5(2) не определено$5(2) не определено
S5(1) =5
S5(1) =5
$5(2) не определено
$5(2) не определено
N^aNz{b)NzN4(cW4Wt
f5U) =0'
Сообщение об успешном завершениианализа и возврат
Рис. 4.3. Анализ цепочки abc для грамматики из примера 4.7.
Стрелка вниз указывает следующий шаг вывода, стрелка вверх — шаг возврата.
Метки дуг имеют вид ^- (у) = rkl где £ означает 5 (успех) или F (неудача); I указывает, что применялось t-е правило; у указывает на выбор у-го правила из списка £, для следующего шага это правило совпадает с rk. По определению, первая (верхняя) метка есть So (1) = 1; ^ (у) -0 указывает на окончание пути в дереве всех возможных выводов. Разбор успешен, если выведенная цепочка совпадает с разбираемым предложением. Анализ предложения будет полным, если ^ (у) не определено или пусто
Вводанализируемой -цепочки хИндекс I *- 1текущая цепочкаS = 51IВводанализируемой -цепочки хИндекс I *- 1текущая цепочкаS = 51IПоиск текущей цепочки для sLПоиск текущей цепочки для sLЗамена Sc, выбор нового правила из списка переходов при успехеЗамена Sc, выбор нового правила из списка переходов при успехеДаДаАнализ завершенАнализ завершенвыбор новогоправилаиз спискапереходов^ принеудачевыбор новогоправилаиз спискапереходов^ принеудаче4 ЗоззратХ4 ЗоззратХПроверка совместимости текущей цепочкиПроверка совместимости текущей цепочкиНетНетРис. 4.4. Алгоритм грамматического разбора для бесконтекстных программных грамматик.Рис. 4.4. Алгоритм грамматического разбора для бесконтекстных программных грамматик.
Вводанализируемой -цепочки х
Индекс I *- 1текущая цепочка
S = 51
I
Вводанализируемой -цепочки х
Индекс I *- 1текущая цепочка
S = 51
I
Поиск текущей цепочки для sL
Поиск текущей цепочки для sL
Замена Sc, выбор нового правила из списка переходов при успехе
Замена Sc, выбор нового правила из списка переходов при успехе
Да
Да
Анализ завершен
Анализ завершен
выбор новогоправилаиз спискапереходов^ принеудаче
выбор новогоправилаиз спискапереходов^ принеудаче
4 ЗоззратХ
4 ЗоззратХ
Проверка совместимости текущей цепочки
Проверка совместимости текущей цепочки
Нет
Нет
Рис. 4.4. Алгоритм грамматического разбора для бесконтекстных программных грамматик.
Рис. 4.4. Алгоритм грамматического разбора для бесконтекстных программных грамматик.
для г = 1 и некоторого /. Разбор должен продолжаться и после того, как сделан успешный анализ предложения, поскольку, вообще говоря, заранее неизвестно, однозначна ли грамматика, и желательно произвести все возможные грамматические разборы предложения. Блок-схема алгоритма приведена на рис. 4.4.
Свейн и Фу [48] применили анализ такого рода для распознавания «зашумленных квадратов» т), которые описываются языком, порождаемым стохастической бесконтекстной программной грамматикой.
х) Имеются в виду рисунки квадратов, искаженные шумом.— Прим, перев.
СПИСОК ЛИТЕРАТУРЫ
Floyd R. W., The syntax of programming languages — A survey, IEEE Trans. Electron. Compute EC-13, 346—353 (1964).
Feldman J. and Gries D., Translator writing systems, Comm. ACM, 11, 77-113 (1968).
Foster J. M., Automatic Syntactic Analysis, Amer. Elsevier, New York, 1970. (Русский перевод: Фостер Дж., Автоматический синтаксический анализ, «Мир», 1975.)
Hopgood F. R. A., Compiling Techniques, Amer. Elsevier, New York, 1969.
Hays D. G., ed., Readings in Automatic Language Processing, Amer. Elsevier, New York, 1966.
Cheatham T. E. and Sattley K., Syntax directed compiling, Proc. AFI PS S Joint Comput. Conf., 1964, 25, pp. 31—57.
Rosen S., ed., Programming Systems and Languages, McGraw-Hill, New York, 1967.
Banerji R. B., Some studies in syntax-directed parsing. In Computation in Linguistics (P. L. Garvin and B. Spolsky, eds.), Indiana Univ. Press, Bloomington, 1966.
Grimsdale R. L., Summer F. H., Tunis C. J. and Kilburn T., A system for the automatic recognition of patterns, Proc. IEEE, 108B, 210—221 (1959).
Knoke P. J. and Wiley R. G., A linguistic approach to mechanical pattern recognition, IEEE Comput. Cong., September 1967, pp. 142—144, Conf. Rec.
Pavlidis T., Analysis of set pattern, Pattern Recognition 1 (1968).
Pavlidis T., Representation of figures by labeled graphs, Pattern Recognition 4, 5-16 (1972).
Pavlidis T.. Structural pattern recognition: Primitives and juxtaposition relations. In Frontiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Mylopoulos J., A graph pattern matching operation, Proc. Annu. Conf. Inform. Sci. and Syst, 6th Princeton, 1972, pp. 330—336.
Sussenguth E. H., A graph-theoretic algorithm for matching chemical structures, J. Chern. Doc., 5, 36—43 (1965).
Winston P. H., Learning Structural Descriptions From Examples, Rep. MAC-TR-76, Project, MIT, Cambridge, Massachusetts, 1970.
Guzman A., Analysis of curved line drawings using context and global information, Machine Intelligence 6 (B. Meltzer and D. Michie, eds.), pp 325—376, Edinburgh Univ. Press, Edinburgh, 1971 (Русский перевод: Гузман А., Анализ рисунков с криволинейными очертаниями при использовании контекста и глобальной информации. В сб. «Интегральные роботы», вып. 2. «Мир», 1975.)
Duda R. О. and Hart Р. Е., Experiments in scene analysis, Proc. Nat. Symp. Ind Robots, 1st, Chicago, Illinois, April 2—3, 1970.
Barrow H. G., Ambler A. P. and Burstall R. M., Some techniques for recognizing structures in pictures. In Frontiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Kuno S., A context recognition procedure, Math. Linguistics and Automatic Translation Rep. NSF-18, Computation Lab., Harvard Univ., Cambridge, Massachusetts 1967
Woods W. A., Context-sensitive parsing, Comm. ACM, 13, 437—445 (1970).
Kurki-Suonio R., On top-to-bottom recognition and left recursion, Comm. ACM, 9, 527 (1966).
Greibach S., Formal parsing systems, Comm. ACM, 7, 499 (1964).
Kuno S., The predictive analyzer and a path elimination technique, Comm. ACM, 8, 453 (1965).
Shaw А. С., Parsing of graph-representable pictures, J. ACM, 17, 453—481 (1970).
Narasimhan R., Syntax-directed interpretation of classes of pictures. Comm. ACM, 9, 166 — 173 (1966). (Русский перевод: Нарасимхан P., Синтаксическая интерпретация классов изображений, сб. «Автоматический анализ сложных изображении», «Мир». 1969.)
Ledley R. S. et al., FIDAC: Film input to digital automatic computer and associated syntax-directed pattern recognition programming system. In Optical and Electro-Optical Information Processing System (J. Tippet et al., eds.), MIT Press, Cambridge, Massachusetts, 1965.
Ledley R. S., Programming and Utilizing Digital Computers, Ch. 8. McGraw- Hill, New York, 1962. (Русский перевод: Ледли P. С., Программирование и использование цифровых вычислительных машин, «Мир», 1966).
Griffiths Т. V. and Petrick S. R., On the relative efficiencies of context- free grammar recognizers, Comm. ACM, 8, 289—299 (1965).
Ginsburg S. and Greibach S. A., Deterministic context-free languages. Information and Control, 9. 620—648 (1966).
Knuth D. E. On the translation of languages from left to right, Information and Control, 8, 607—639 (1965).
Lewis P. M., and Stearns R. E., Syntax directed-transduction, Journal Assoc. Comput. Mach., 15, 464—488 (1968).
Rosenkrantz D. J. and Stearns R. E., Properties of deterministic top-down grammars, Information and Control, 17, 226—256 (1970).
Floyd R. W., Syntactic analysis and operator precedence, J. Assoc. Compute Mach., 10, 316—333 (1963).
Floyd R. W., Bounded context syntactic analysis, Comm. ACM, 7, 62—67 (1964).
Korenjak A. J. and Hopcroft J. E., Simple deterministic languages IEEE Annu. Symp. Switching and Automata Theory, 7th, 1966, Berkeley, California, pp. 36—46.
Earley J., An efficient context-free parsing algorithm, Comm. ACM, 13, 94—102 (1970).
Wirth N. and Weber H., EULER-A generalization of ALGOL, and its formal definition, Comm. ACM, 9, Pt. I, II, 13—2 5, 89—99 (1966).
Fischer M., Some properties of precedence languages, Proc. ACM Symp. Theory Comput. 1st, 1969, pp. 181—190.
Learner A. and Lim A. L., Note on transformating context-free grammars to Wirth Weber precedence form, Comput. J., 13, 142—144 (1970).
McKeeman W. M., An Approach to Computer Language Design, Tech. Rep. CS 48, Comput. Sci. Dept., Stanford Univ., Stanford, California, August 1966.
Anderson R. H., Syntax-Directed Recognition of Hand-printed Two-Dimensional Mathematics, Ph. D. Thesis, Harvard Univ., Cambridge, Massachusetts, 1968.
Lee H. C. and Fu K. S., A stochastic syntax analysis procedure and its application to pattern classification, IEEE Trans. Computers, C-21, 660— 666 (1972).
Chang S. K., A method for the structural analysis of two-dimensional mathematical expressions, Information Sci., 2, 253—272 (1970).
Swain P. H. and Fu K. S., Nonparametric and Linguistic Approaches to Pattern Recognition, Tech. Rep. TR-EE 70—20, School of Elec. Eng., Purdue Univ., Lafayette, Indiana, 1970.
Chartres B. A. and Florentin J. J., A universal syntax-directed top-down analyzer, J. Assoc. Comput. Mach., 15, 447—464 (1968).
Chomsky N. and Schutzenberger M. P., The algebraic theory of context-free languages, In Computer Programming and Formal Systems (P. Braffort and D. Hirschberg, eds.), North-Holland Puhi., Amsterdam, 1963). (Pyc-
ский перевод: Хомский Н., Шутценберже М. П., Алгебраическая теория контекстно-свободных языков, Кибернетический сборник, вып. 3, «Мир», 1966.)
Swain Р. Н. and Fu К. S., Stochastic programmed grammars for syntactic pattern recognition, Pattern recognition 4, 83—100 (1972).
Kuno S. and Oettinger A. G., Multiple-path syntactic analyzer, Inform. Process, Proc. IFIP (Int. Fed. Inform. Proc.) Congr. 1962, pp. 306—311. North-Holland Puhi., Amsterdam, 1962.
Griffiths T. V., Turing machine recognizers for general rewriting systems, IEEE Symp., Switching Circuit Theory and Logic Design, Princeton, New Jersey, 1964, pp. 47—56, 3onf. Rec.
Aho A. V. and Ullman J. D., The Theory of Parsing, Translation, and Compiling, Vol. I, Parsing, Prentice-Hall, Englewood Cliffs, New Jersey, 1972.
Feder J. and Freeman H., Digital curve matching using a contour correlation algorithm, IEEE Int. Сопи. Rec., Pt. 3 (1966).
Salton G. and Sussenguth E. H., Some flexible information retrieval systems using structure matching procedures, Proc. AFI PS Spring Joint Comput. Conf. 1964, pp. 587—597, Spartan Books, Inc., Baltimore, Maryland, 1964.
Inselberg A. D., SAP: A Model for the Syntactic Analysis of Pictures, Tech. Rep. Sever Inst, of Technol., Washington Univ., St. Louis, Missouri, 1968.
Williams T. G., On-Line Parsing of Hand-Printed Mathematical Expressions: Final Report for Phase II, Rep. NASA CR-1455, Syst. Develop. Corp., Santa Monica, California, 1969.
Rosenfeld A. and Snively J. W. Jr., Bounds on the complexity of grammars. In Frontiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Huffman D. A. Impossible objects as nonsense sentences, Machine Intelligence 6 (B. Meltzer and D. Michie, eds.), Edinburgh Univ. Press, Edinburgh, 1971.
Глава 5
Стохастические языки
и стохастический синтаксический анализ
Основные формулировки
В предудущих главах формальные языки применялись для описания, а алгоритмы синтаксического анализа — для распознавания образов. При некоторых практических приложениях, например при передаче, хранении или исправлении информации, а также при измерении или обработке физических данных в исследуемом процессе распознавания есть доля неопределенности. Обычно до того, как появляется возможность извлечь непроизводные элементы, необходима большая предварительная обработка материала. Языки, используемые для описания зашумленных и искаженных образов, часто оказываются неопределенными в том смысле, что одна и та же цепочка может быть порождена более чем одной из грамматик, используемых для описания отдельных классов объектов. С точки зрения теории распознавания образов это случай частичного пересечения классов; объекты, принадлежащие разным классам, могут иметь одинаковые описания или одинаковые значения параметров (при разных вероятностях появления). Для более правдоподобного моделирования таких ситуаций было предложено использовать стохастические формальные языки [1—8]. Для каждой цепочки х из языка L вероятность р (ж) определяется так, что 2 Р М ~ 1 и 0 < р (х) ^ 1. Значит, функция р (х) х £ L
есть плотность вероятности, заданная на L1 и ее можно использовать для оценки неопределенности и случайности в L. Кроме того, эвристически построенная грамматика может порождать «нежелательные» цепочки, т. е. цепочки, которые не представляют никаких объектов в заданном классе. В этом случае для эффективного использования грамматики нежелательным цепочкам можно приписать очень малые вероятности.
Есть два естественных способа расширения понятия формального языка до стохастического языка. Они состоят в рандомизации выбора правила подстановки в грамматике либо выбора следующего состояния в распознающем автомате. В этой главе сообщаются основные результаты, полученные в области стохастических грамматик и стохастического синтаксического анализа.
Определение 5Л. Стохастической порождающей грамматикой (или просто стохастической грамматикой) называется четверка
Gs = (FN, Гт, PSi S), где Ft и Fn — конечные множества основных и вспомогательных символов; S С rN — начальный символ *); Ps — конечное множество стохастических правил подстановки, каждое из которых имеет вид
ptj
^1> ^iji1=1....^,(5.1}
где
^г 6 (Fn и FT)* 7n (Vn и Гт)*, ^j 6 (rN и Гт)*,
a Pij — вероятность, связанная с применением этого правила подстановки и удовлетворяющая условиям )
0<Ри^1 и 2 Ри = 1-(5.2)
Ptj
Предположим, что правило а^ —Р^ принадлежит Ps. Тогда цепочка 5 = ТЛЪ может быть заменена на ц = Т1Р^72 с вероятностью р15. Будем записывать такой вывод как
и будем говорить, что цепочка Е прямо порождает ц с вероятностью pij. Если существует последовательность цепочек с^, . . . . . ., соп+1, такая, что
pi
£ = 0)!, T]=(0n+1, (dt =>(0И1,^=1, . ...П.
то будем говорить, что цепочка £ порождает ц с вероятностью п
Р = Прь и будем обозначать этот вывод как
г=1
Р
Вероятность этого вывода равна произведению вероятностей стохастических правил подстановки, используемых в выводе.
р
Ясно, что => есть рефлексивное и транзитивное замыкание отно- *
р
шения =^.
При более общем определении вместо единственного начального» символа может, использоваться вероятностное распределение начальных символов.
Стохастический язык, порождаемый грамматикой Gs, есть
MGsWi, P^Ix^Vt, S Ах,
k
j=l, .k и p(^)=2 Pjb (5-3)
где & — число различных выводов т) цепочки х из S, a pj — вероятность /-го вывода х.
Поскольку у стохастических грамматик вид правил подстановки такой же, как и у обычных порождающих грамматик, за исключением введенного распределения вероятностей, семейство языков, порождаемых стохастическими грамматиками, совпадает с семейством языков, порождаемых обычными грамматиками.
В общем случае стохастический язык L (G^ определяется парой (Л, р^ где L — формальный язык, а р — определенное на L распределение вероятностей. Язык L стохастического языка L (Gs) = (Л, р) называется характеристическим языком L (G^.
Определение 5.2. Для любой стохастической грамматики Gs соответствующая характеристическая грамматика, обозначаемая GSl получается исключением вероятностей применения из стохастических правил подстановки, принадлежащих Gs. Если Ps = = (Р, D), где D — вероятностная мера на множестве правил подстановки Р, то очевидно, что Gs = (FN, FT, Р, S) — нестохастическая грамматика.
Используя определение характеристической грамматики, мы будем называть стохастическую грамматику Gs стохастической грамматикой типа 0 (без ограничений на правила вывода), или типа 1 (непосредственно составляющих), или типа 2 (бесконтекстной), или типа 3 (автоматной) тогда и только тогда, когда Gs является соответственно грамматикой типа 0, 1, 2 или 3. Язык, порождаемый грамматикой Gs и обозначаемый L (G^ есть в точности характеристический язык языка L (G^. В общем случае стохастическая грамматика Gs эквивалентна некоторой стохастической грамматике G's тогда и только тогда, когда L (Gs) = L (G^.
Теорема 5.1. I. Если Ls — стохастический автоматный язык, то он одновременно и стохастический бесконтекстный язык.
Если Ls — Х-свободный стохастический бесконтекстный язык ^, то Ls есть стохастический язык непосредственно составляющих.
х) Имеются в виду выводы, которые нельзя преобразовать друг в друга, меняя последовательность применения правил подстановки.— Прим, пер ев.
^ Стохастический язык, характеристический язык которого не содержит пустой цепочки X, называется Х-свободным стохастическим языком.
Если Ls — стохастический язык непосредственно составляющих, то Ls есть стохастический язык типа 0.
Теорема 5.2. (Нормальная форма Хомского). Любая стохастическая бесконтекстная грамматика эквивалентна некоторой стохастической бесконтекстной грамматике Gs, в которой все правила подстановки имеют вид А Д> ВС или А^-> а, где А, В и С — вспомогательные символы, а а — основной символ.
Теорема 5.3. (Нормальная форма Грейбах). Любая стохастическая бесконтекстная грамматика эквивалентна некоторой стохастической бесконтекстной грамматике Gs, у которой все правила подстановки имеют вид А^ ау, где А — вспомогательный символ, а — основной символ, а у — цепочка вспомогательных символов.
Пример 5.1. Рассмотрим автоматную^ грамматику Gs = (VN, Ут, Ps,S), где rN = {A, . . ., Лй}, FT={an, . . ., am}, S = Аг и Ps для г = 1, 2, . . ., к состоит из правил
Ai —^ а^,Ai —^ а^,At> at.At> at.
Ai —^ а^,
Ai —^ а^,
At> at.
At> at.
РцAi> а241?РцAi> а241?AiAiаьаь
Рц
Ai> а241?
Рц
Ai> а241?
Ai
Ai
аь
аь
At --> atAb
Ai > атАк
Некоторые из вероятностей plij, р\0 могут быть'равны нулю. Далее,
к тк т2 a^+zp»-1-2 a^+zp»-1-j=l 1=1j=l 1=1
к т
к т
2 a^+zp»-1-
2 a^+zp»-1-
j=l 1=1
j=l 1=1
В частности, пусть FN = {£, А, В^, VT = {0, 1} и Ps:
Типичным выводом будет, например, вывод
S => 1Л ^ 10В =ф 100, р (100) = 1 X 0,8 х 0,3 = 0,24.
Грамматика Gs порождает следующий стохастический язык L (Gs):
Порожденная цепочка х
Р<Х)
11
0,2
100
0,24
(101)п11
0,2х(0,56)п
.(101)^100
0,24х(0,56)п
Заметим, что
2 р (ж) = 0,2+ 0,24+ 2 (0,2 +0,24) (0,56)п = 1.
x^UG^п=1
Вероятностная мера
в линейных и бесконтекстных грамматиках
Определение 5.3. Если в стохастической грамматике Gs
2 PW=1,(5.4)
xencs)
то говорят, что Gs — согласованная стохастическая грамматика.
В этом разделе приводятся условия, необходимые для того, чтобы стохастические линейные и стохастические бесконтекстные грамматики были согласованы [2, 6, 10]. Является ли согласованной при каких-либо условиях стохастическая грамматика непосредственно составляющих, до сих пор неизвестно. Каждая стохастическая грамматика типа 3 согласована.
Согласованность стохастических линейных грамматик
Пусть Gs — стохастическая линейная грамматика с VN = *= {Лт, . . ., А^, S = AXl a Gg = (Fn> Кт, ^ S). Для каждого At 6 VN определим класс эквивалентности СА как
СА = {все правила подстановки из Р с посылкой (левойчастью) Ai).
Таким образом, множество правил подстановки
кр= и СА..г=1
Пусть рц — вероятность, связанная с каждым правилом подстановки вида Аг —>- uAjV, u,v £ FT, pir — вероятность, связанная
с правилом подстановки вида Аг-^ иТ1 ur £ 7Т. Тогда ^Рц + A-'SiPu = 1- Процесс порождения может быть представлен как марковский процесс с & + 1 состояниями, которые соответствуют множеству VN + {71}. Поглощающим состоянием будет Т, а все остальные состояния, если Gs согласована, будут переходными. С каждой линейной грамматикой можно связать некоторый граф. Вершимы этого графа соответствуют элементам VN, а одна из них — дополнительная вершина — соответствует Т. Вершины At и Aj связаны дугой тогда и только тогда, когда в множестве Р существует правило подстановки вида At ->- uAjV. С другой стороны, дуга между Аг и Т существует тогда и только тогда, когда в Р есть правило вида Аг-^р. Начальная вершина — это вершина, соответствующая S = А г. Для любой цепочки х ^ L (Gs) в графе существует путь из начальной вершины в поглощающую вер*
шину Т, соответствующий некоторому выводу S => х. Заметим, что если Gs согласована, то вероятность достижения вершины Т из начальной вершины должна быть равна 1. В противном случае G^
не согласована.
Чтобы проверить, согласована ли грамматика Gs, определим матрицу переходов марковского процесса (& + 1) X (Л + 1) следующим образом:
где
{
Ptj,1^/^^ + 1,
О,i = k-Jrl,1^/.^^,
г = k 4- 1,j = к-\-1_
Каждый элемент m^ представляет вероятность одношаговогог вывода или применения одного правила в выводе цепочки в L (Gs). Элементен, ft+1 представляет вероятность всех цепочек из L (Gs), вывод которых требует применения лишь одного правила подстановки. Пусть
Мп М х М X .. . X м = Y^tj (72)].
п раз
Элемент тг5 (п) представляет вероятность всех цепочек из L (68)э вывод которых требует применения не больше чем и правил подстановки. Мы приходим к следующей теореме.
Теорема 5.4. Пусть Gs — стохастическая линейная грамматика. Грамматика Gs согласована тогда и только тогда, когда.
(5.5)(5.5)Limm^,^ (тг) = 1.
(5.5)
(5.5)
Пример 5.2. Дана стохастическая линейная грамматика Gs = = (FN, FT, PS1 8), где FN = {5, Л, B^ FT = {0, 1} и Ps:
"Тогда
Пусть
5^
0Л1, А -
—^ 00,
8 -
-Pi
15L В ■
Рз >
1Л1,
8 -
Р2 >
5
0Л0, В -
АВ
1 — Рз > '
т
1.
8
-0
Pi (1-Pi)
0
-
А М — „
0
Рз0
(1-
Рг)
В
0
Рз0
(1-
Рз)
Т
-0
00
-0 0,4 0,6
0 0,5 0
1
о - 0,5
м
1 —
0 0,6 0
.0 00
0,4
1 .
•
Тогда
-0 0 0 1-
0 0 0 1
Lim Mi = n->oo
0 0 0 1
•
.0 0 0 1.
Таким образом, грамматика Gs с pi = 0,4,
р2 = 0,5 и
Рз = 0,6
согласована, поскольку
Lim m1-4 (и) =1.
Если допустить, что
М2 =
-о о о
.0
0,4
1
0,6 о
0,6
о о о
о - о
0,4
1 .
ТО
гО
0,76
0
0,24-
0
1
0
0
Lim М2 =
0
0,6
0
0,4
.0
0
0
1 _
Отсюда грамматика Gs с р^0,4, р2=1 и р3^0,6 не согласована, поскольку
Lim ^li4 (тг) = 0,24 ^ 1.
Согласованность стохастических бесконтекстных грамматик
В бесконтекстных грамматиках все правила подстановки имеют вид
А -> а, А 6 Fn, а 6 V\
В этом случае вспомогательный символ в левой части правила может порождать некоторое конечное число, возможно 0, вспомогательных символов. Для изучения порождения языка в стохастической бесконтекстной грамматике можно применить теорию ветвящихся процессов Гальтона — Уотсона [11, 12]. Нулевой уровень процесса порождения соответствует начальному символу S. В качестве первого уровня примем рп где рх — цепочка, порожденная правилом подстановки 5 -> рР Второй уровень соответствует цепочке р2, которая получается из рх в результате применения подходящих правил подстановки к каждому вспомогательному символу pv Если Pi не содержит ни одного вспомогательного символа, то процесс заканчивается. При помощи этого процесса мы можем определить цепочку /-го уровня Ру как цепочку, полученную из цепочки р,^ при помощи применения соответствующих правил подстановки ко всем вспомогательным символам Pj-r Поскольку при переходе от (/ — 1)-го уровня к /-му все вспомогательные символы рассматриваются одновременно, достаточно учесть только вероятности pir всех правил At -> аТ. Значения этих вероятностей обрабатываются" так же, как это делалось для стохастических линейных грамматик. Итак, пусть
к^=и сА..i—1
Для каждого класса эквивалентности СА.
S Pir=i.
Определение 5.4. Для каждого класса С^., i = 1, . . ., к, определим fe-местную производящую функцию следующим образом:
h (Я, • • •, sft) = S' p^hW^M ... ^\(5.6)
CAl
где p,i( (ar) обозначает число вхождений вспомогательного символа А[ в цепочку аг правила Лг -> аг, а 5 = Av
Определение 5.5. Производящая функция /-го уровня определяется рекурсивно следующим образом:
^(»ь ..., s^ = sb
Л(51, • • •, Sft)=/i(si, • • •, sk),(5.7)
Fj (si, .. •, sh) = ГМ (h ($!, ..., Sft), ...Jh (аь ..., sft)).
Пример 5.3. Грамматика Gs = (VN, FT, Ps,'S), где Tn = {A, A), FT -{a, 6}, 5 = Л, и Ps:
Ai ^ aAiA2,A2 ^ aA2A2,
, Atb,A2 ^ aa.
Здесь процесс порождения цепочки aabaaaa, записанный по уровням, выглядит так:
0-й уровень д;^
1-й уровень(3,
2-й уровень a ^t^?2 J^вг
3-й уровеньЬ а а(3^
Производящие функции для СА^ и СА^ есть соответственно
/1 ($ь $2) — Ри^1^2 + Р12> /2 ($ь $2) = Рг1^2 4" Р22«
Производящие функции /-го уровня при / — 0, 1, 2 таковы: ^0 (^1? ^2) ~ ^1?
^1 (^1? S2) = ft (sb S2) - PiaS^ + p12,
Л(«Ь S^FAtMs^ S2), /2(Si, s2)) —
= P11/1(S17 52)/г(51» 52)+P12 =
= Pllp21^1^2 + Р11Р22^1^2 + P11P12P21S2 + P11P12P22 + P12-
Рассмотрев предыдущий пример, мы можем выразить Fj (sls . . . - . ., sk) в виде
^j (sn • • •> 5а) — ^i (si’ • e •’ s^ 4~ ^b
где Gj (sn . . ., s^ обозначает полином от $1? . . ., sk без постоянного, члена. Постоянный член К, соответствует вероятности всех цепочек, которые могут быть выведены не дальше /-го уровня. Мы приходим к следующей теореме:
Теорема 5.5. Стохастическая бесконтекстная грамматика согласована тогда и только тогда, когда
Lim^-1. (5.8)
Заметим, что если вышеупомянутый предел не равен 1, то существует ненулевая вероятность того, что процесс порождения никогда не закончится. Отсюда следует, что вероятностная мера, определенная на всем L, меньше 1, и, следовательно, грамматика Gs не согласована. С другой стороны, если предел равен 1, то не существует вывода, который нельзя было бы закончить на некотором шаге, поскольку этот предел представляет вероятность появления всех цепочек, для порождения которых требуется конечное число применений правил. Следовательно, грамматика Gs согласована. Проблема проверки согласованности данной стохастической бесконтекстной грамматики может быть решена с помощью следующей процедуры проверки, разработанной для ветвящихся процессов.
Определение 5.6. Математическое ожидание числа появлений вспомогательного символа Aj в множестве правил подстановки CAl есть *
Определение 5.7. Матрица первых моментов Е порождающегося процесса, соответствующего стохастической бесконтекстной грамматике Gs, определяется как -
Е = 1еи1, 1^ь /<&,(5.10)
где к есть число вспомогательных символов в G8.
Теорема 5.6. Если для данной стохастической бесконтекстной грамматики Gs собственные значения матрицы первых моментов или корни ее характеристического -уравнения Pi, . . ., рк расположены в порядке убывания их абсолютных величин, т. е.
I Pi I ^ I Pj В если i < Ь(5.11)
иго грамматика Gs согласована при pi < 1 и не согласована при Р1>1.
Пример 5.4. Для стохастической бесконтекстной грамматики из примера 5.3
еи
ЭЕ ($i,
Os i
82)
Ln s 2= 1
— Pili
е12
9/1 (si, $2) ds2
L s2='
I
= PiH
е21
9/г (»Ь 82) d$i
L s2=:
I
-0,
Таким образом,
е22 —
9/2(81, s2)
9s2
Li, «2=
1
= 2р21
E =
"Ph
.0
Pn"
2^21 _
•
Характеристическое уравнение для матрицы Е есть
Ф (ж) - (ж — Р^ (ж — 2р21).
Следовательно, грамматика Gs будет согласованной до тех пор, пока ^21 < 1/2.*
Языки, допускаемые стохастическими автоматами
Пользуясь понятием стохастического конечного автомата, Рабин [13], Пац [14], Туракайнен [15] и Саломаа [16] исследовали класс Л-стохастических автоматных языков (или просто Л-стоха- стических языков), а Фу и Ли [17] определили класс стохастических языков максимального правдоподобия. Одновременно с определением стохастических конечных автоматов и Л-стохастических языков Эллис [18] и Хуан и Фу [19] определили класс Л- стохастических магазинных языков, которые допускаются с стохастическими магазинными автоматами с порогом Л, таким, что О ^ Л < 1. В этом разделе мы определим стохастические автоматы (или допускающие устройства) и класс языков, допускаемых стохастическими автоматами.
Языки, допускаемые стохастическими конечными автоматами
Определение 5.8. Стохастический конечный автомат (или просто стохастический автомат) определяется пятеркой Sa = (2, ^, М, л0, F), где 2 и Q — конечные множества входных символов и внутренних состояний соответственно; М — отображение множества 2 в множество стохастических матриц перехода п X п (где п — число состояний в 0; л0 — n-мерный вектор-строка, который обозначает начальное распределение состояний; F ^ ^ ^ — множество заключительных состояний.
Выражение М (а), а ^ 5, можно интерпретировать следующим образом. Пусть М (а) = 1р^ (а)], где р^ (0) ^ 0, есть вероят- п ность перехода в состояние gj из состояния qt при входе а и 2 Ра = = 1 для всех i = 1, . . ., п. Область определения М может быть расширена с 2 до 2*, если определить
М (X) = 1, где X — пустая цепочка, а I — единичная матрица n X п;•
М (а17 . . ., ah) = М (aj . . . М (а^, где Л > 1 и все di Е 2.
Взвешенный язык, допускаемый стохастическим конечным' автоматом Sa = (2, Q, М, л0, F), есть Т (5а) = {(ж, р, (ж)) | х f £ 2*, и р (ж) — я0М (х) Up > 0}. Язык, допускаемый автоматом Sa с порогом Л при 0 ^ Л < 1 есть
L (5аЛ)-{^|^$2* и ийМ^ uF>K^ (5.12} где Лр есть n-мерный вектор-столбец, у которого i-я компонента равна 1, если qt g F, и равна 0 в противном случае. Язык, L\Sai Л) называется Л-стохаотическим автоматным языком или просто Л-стохастическим языком.
Пример 5.5. Рассмотрим стохастический автомат 5а = (2, Q^
М, л0, F), где 2 = {0, 1}, Q = ^
..., ?6},
"ООО
001“
ООО
А А о
22
М^= 00 0
А 0 А 22
ООО
001
■ООО
001
-_0 0 0
л0 = [ 1 0 0 0 0
001
0],
-0 10
00 0“
о а ± 22
■ '00 0
■0 01
И (1) =
00 0
ООО
22 и
ООО
010
"_0 00
00 1_
F = №'
Тогда
лг = [0 0 0 0 1 0]г и
/4+(т)"-(4Г
Р ^ = л0М ^ лр = <т. п> О,
^ 0 в остальных случаях.
Следовательно,
T^ = V^mOV\ Р^Хт. п>Щ. и язык*
Цзй1 4) ={lm01”|0<zn<n}
является бесконтекстным.
Для любой стохастической автоматной грамматики Gs можно построить стохастический конечный автомат 5а, допускающий язык L ^G^ [17]. Ниже приводится способ построения стохастического конечного автомата по данной стохастической грамматике Gs.
Пусть Gs = (PN, 7т, PS1 5) и 5а = (2, Q. М, л0, F).
Множество входных символов 2 автомата Sa равно множеству основных символов Ут, т. е. 2 = Ут.
Множество Q состояний автомата 5а равно объединению множества вспомогательных символов FN и двух добавочных состояний Т и 7?, соответствующих состояниям окончания и отбрасывания. Отбрасывающее состояние необходимо главным образом для нормализации. Положим Т = Л^ и R = Ак + 2, тогда Q = PN U {Т7, 7?}.
л0 есть вектор-строка, у которого компоненты, соответствующие состоянию 5, равны 1, а остальные.компоненты равны 0.
Множество заключительных состояний содержит только один элемент: это состояние окончания Т.
Матрицы переходов М формируются при помощи стохастических правил подстановки грамматики (см. пример 5.1). Если в Ps есть правило подстановки At-^atAj с вероятностью р\^ то элементом матрицы перехода М (а/) на пересечении i-й строки с у-м столбцом служит р1^. Для правила А г -> ai с вероятностью р\0 на пересечении i-й строки с (& + 1)-м столбцом в матрице М (at) стоит pi0. Элементы (А + 2)-го столбца определяются таким образом, чтобы матрица перехода всегда была стохастической матрицей.
Пример 5.6. Рассмотрим стохастическую автоматную грамматику G^ из примера 5.1. Согласно описанной выше процедуре, получим 5 = {1, 0}, Q = {5, Л, В, Т, ]В}, л0 = [10000] и
S
"0
0
0
0
1 "
А
0
0
0,8
0
0,2
М (0) = В
0
0
0
0,3
0,7
Т
0
0
0
0
1
В
_0
0
0
0
1 _
F = {71}. Кроме того,F = {71}. Кроме того,S А В Т RS А В Т R8"Q1 00А00 00,2M(^ = B0,70 '00Т00 00R_00 008А ВТ8"Q1 00А00 00,2M(^ = B0,70 '00Т00 00R_00 008А ВТо -0,80,31о _Rо -0,80,31о _R
F = {71}. Кроме того,
F = {71}. Кроме того,
S А В Т R
S А В Т R
8
"Q
1 0
0
А
0
0 0
0,2
M(^ = B
0,7
0 '0
0
Т
0
0 0
0
R
_0
0 0
0
8
А В
Т
8
"Q
1 0
0
А
0
0 0
0,2
M(^ = B
0,7
0 '0
0
Т
0
0 0
0
R
_0
0 0
0
8
А В
Т
о -
0,8
0,3
1
о _
R
о -
0,8
0,3
1
о _
R
Вероятность порождения цепочки х равна и^М (ж) nF. В этом примере вероятность порождения цепочки 10111 равна
ийМ (1) М (0) № (1) иР = 0,112.
Отсюда видно, что стохастический конечный автомат является также удобным инструментом для вычисления вероятности каждой цепочки, порождаемой соответствующей стохастической грамматикой языка.
Стохастические языки максимального правдоподобия
Применяя метод максимального правдоподобия к распределению заключительных состояний, Фу и Ли [17] ввели класс стохастических языков максимального правдоподобия. Формально этот класс определяется следующим образом.
Определение 5.9. Пусть для данного стохастического конечного автомата Sa = (5, Q^ М, л0, Fy
(х) = (р tot I ж), . . . , р (?п | ж)),
где п— число состояний в Qw Пусть
^ = max {р (& | ж)} и Q = {q | р (q | ж) = g (ж)}, г
где g (х) называется функцией максимума правдоподобия принадлежности х^ 2* (ФМПП). Стохастический язык максимального правдоподобия (СЯМП), допускаемый конечным стохастиче-
ским автоматом 5а, определяется как
Lm(Sa)-{*1<>П^0},(5.13)
где 0 — пустое множество.
Пример 5.7. Рассмотрим стохастический конечный автомат *Sa = (S, Q, М, По, F), где 2 ={0, 1}, Q = {^, q^ q3, gj.
-1/2 1/2 0 0-
-10 0 о -
010 0
0 100
М (0) =
0010
,3f(l) =
0 0 1/2 1/2
. 000 1.
.00 01 .
яо = [т°Т°].F = VkV
Пусть количество нулей и единиц в цепочке ж ^ 5 * обозначается соответственно через кг и к^. Можно показать, что
1 \ А2+11/ 1 \ Й2+1Т/' "Ш1 \ А2+11/ 1 \ Й2+1Т/' "Ш
1 \ А2+11/ 1 \ Й2+1
Т/' "Ш
1 \ А2+11/ 1 \ Й2+1
Т/' "Ш
Lm (SaW^^^X)}
— бесконтекстный язык.
Языки^ допускаемые стохастическими магазинными автоматами
Определение 5.10. Стохастический'магазинный автомат [СМА] есть семерка М8 = (2, Q, Г, 6S, qOl Zo, F)4 в которой
S — конечное множество входных символов;
Q — конечное множество состояний;
Г—конечное множество магазинных символов;
Qo 6 Q — начальное состояние;
20£Г — символ на вершине магазина в первый момент;
F^.Q— множество заключительных состояний;
6S —отображение: Q х (5 U {X}) Х.Г -^> 2Qxr*, где р — вероятностная мера на 2Qxr*, определенная для каждого элемента Q х (2 J {А}) X Г.
Отображение 6S состоит из стохастических отображений двух типов:
(I)
6S (9, a, Z) = {(дг, уг, Pi), i = 1, . . ., m},(5.14)
где
т
2 Pi = l, Pi>0, 1 = 1, т.
г=1
Стохастическое отображение этого типа интерпретируется следующим образом. Если /В данный момент' автомат Ms находится в состоянии q, при котором входная головка обозревает входной символ а й на вершине магазинной памяти оказался символ Z, то, с вероятностью рг, Ms перейдет в состояние qt и заменит Z на Yi- Входная головка передвинется к следующему символу:
) б^д, X, Z) = ((qi, Yn Pt), i = l,...,m),(5.15)
где m’
2 ,Р1 = 1 и pt>»0, i = l, ..., m.
i=l
Такое стохастическое отображение интерпретируется следующим образом. Находясь в состоянии q при Z на вершине магазина, автомат может, независимо от входного символа с вероятностью pt перейти в состояние qt и заменить в магазине памяти Z на уг. Входная головка не сдвигается. Отображение этого типа позволяет автомату М8 изменять содержимое магазина памяти, не просматривая входной ленты.
Определение 5.11. Ситуация СМА М8 определяется как тройка (^, у, р), где q g Q, у С Г* и р определяется как вероятность достижения состояния q при у в магазине памяти из начальной ситуации (g0, Zo, 1) с помощью отображения 6S.
Если 6S (^, a, Z) = ^(qt, у,, pt), г = 1, . . ., ^г} — отображение, задающее автомат Ms, то ему эквивалентна следующая запись: a*, (q, Zp, р) |— (qb уь р, рр^, г = 1, . . ., т. Это выражение
М8
интерпретируется так, что СМА Ms под действием входа а из ситуации (^, Zp, р) переходит в ситуацию (qt, у^р, рр^ с вероятностью pt. Отношение |-^- можно обобщить так: если выражение «t- (Qi-i, Yi-n -Pi-i)!— (Qi, Ъ, Pt-i,Pi) определено при г = 1, . . .
. ., n, то оно может быть записано как аг . . . ап: (q0, у0, р0)
tom Уп П PtV Т№ II Pt есть вероятность перехода из ситуации Мзг=0г=1
п
(Qo, Yo, Ро) в ситуацию (qn, yn, II Pt) при входе аг . . . ап г=0
в силу отображения 6S.f
Для взвешенного магазинного языка, допускаемого СМА М8 = (5, Q, Г, 6S, qOl Zo, F), возможны следующие эквивалентные определения:
Взвешенный магазинный язык, допускаемый при помощи заключительного состояния, есть
Ж) = №, РМ)^62*: too, Z0, 1) |-^ tob ^/Рд.
для некоторых у^Г*, q^F., i = l, ..., к и р (ж) = 2 Рг), (5.16)
<=1
где к — число различных переходов, определенных для Ms.
Взвешенный магазинный язык, допускаемый при пустом магазине, есть
^(Ms)={to, р(х))|хе2*: too, Zo, 1)|-T7- toi, к Pi),
к
для некоторого qt^Q, i =1, ..., к и р(х) = 2 Pi}, (5.17) г=1
где к — число действительно различных переходов, определенных для Ms.
Язык, допускаемый СМА ТЩ = (2, Q, Г, 6S, Zo, F) с порогом А, таким, что 0^А<1, можно определить следующим образом:
Язык, допускаемый при помощи заключительного состояния, есть
Т(М8, Л) = {^6 2* I»: (9о, 2Й, 1) |-£- (gb Yb Pi)
для некоторых уг g Г*, qi^F. i = 1, ..., A,к
я 2 Pi = P W > Л},(5.18)
i=l
где к — число различных переходов.
Язык, допускаемый при пустом магазине, есть
N(MS, Л) = {а;€2*|Ж: (^о, Zo, 1) (A- (^, X, Pl)
для некоторого qt £ Q, i = 1, ..., к к
И 2 Pi = pW>M,(5.19)
i=l
где к — число различных переходов.
Можно показать, что языки Т (MS1 Л) и TV (MS1 Л) эквивалентны. Их можно , назвать Л-стохастическими магазинными языками. Свойства Л-стохастических магазинных языков рассматриваются в разд. 5.3.5.
Пример 5.8. Пусть Ms = ^a, 6}, Q. {A, Zo}, 6, qOl Zo, to4, ^и}) — СМА, у которого
<2 = {3о, 91, 9г, 9з, 94, 9б, 9е, 9i, 9s, 9э, 9ю, 9н}
и отображение 6 определено следующим образом:
6 (9о, а, ^о) = { ( ^i’ Л2о, "2”)» (^e, AZ0, -^ ) |.
б(9ь а, Л) = {(91, ДА, 1},б(9б, Ъ,Л) = {(д7, А, 1)},
6(?i, 6, Л) = {(?2, X, 1)},б(?7, 6,Л) = {(97, А, 1)},
6 (9г, 6, Л) = { (?2, X, 4") •6 (97, а' Л)= К?8, X, 1)},
б (9з, Ь, Л) = {(9з, X, 1)},6 (98, а,Л) = { (gg, X, -|-) ,
б(92, a, Z0) = {(94, Zo, 1)},6(9», а,Л) = ((д9, X, 1)},
б(дз, a, ZQ) = {(q5, Zo, 1)},6 tos» a,Z0) = {toi(b Zo, 1)},
.8(^4, a, Z0) = {(^4, Zo, 1)},8(^9, a,Zo) = {(^117 Zo, 1)},
6(^5, a, Z0) = {(q^ Zo, 1)},6 (^H, a, Z0) = ^qni Z0) 1)},
8 toe» ai ^)—{(^6» AA, 1)},8 toio» ai Zo) = {toitb ^o» 1)}*
Тогда T ^M^ =^ ^a^a^, p ^aKbmanY) | k, m, n > 0}, где
и
T Ms, ^ = V«kbkam \m>k>l>— язык, не являющийся бесконтекстным.
Свойства языков, допускаемых стохастическими конечными, автоматами
Связь между автоматными языками и конечными автоматами была показана в гл. 2. Некоторые основные отношения между стохастическими автоматными языками и взвешенными языками. Допускаемыми стохастическими конечными автоматами, можно подытожить следующим образом.
(F1) Пусть Gs — стохастическая автоматная грамматика.
Существует стохастический конечный автомат 5а, такой, что L (G^ = Т <SaY
(F2) Класс взвешенных языков, допускаемых стохастическими конечными автоматами, содержит как собственный подкласс класс стохастических автоматных языков.
Свойства Л-стохастических (автоматных) языков можно резюмировать следующим образом.
Каждый Л-стохаотический язык есть Л^стохастический язык для любого 0 < Лх < 1. Другими словами, каждый Л-сто- хастический язык есть L ^Sai ~) для некоторого конечного автомата Sa.
Объединение Lx |J L^ пересечение Lx Q L^ и разность Ъг — L2 (или Lx f| Z/2) Л-стохастического языка Lx и автоматного языка L^ всегда есть Л-стохастический язык, где L^ — дополнение L^. е
Существует стохастический конечный автомат и число О < Л < 1, такие, что L (Sa, Л) — неавтоматный язык, т. е. L (Sai Л) не допускается никаким детерминированным конечным ^автоматом.
Пусть {^ | Qx £ L} и {^ | xQ С L) — правое и левое частные языка L относительно цепочки х. Правое и левое частные Л- ^тохастического языка есть Л-стохастические языки.
Пусть Л — изолированный порог по отношению к стохастическому конечному автомату Sa, т. е. существует такое б > 0, что | л0М (ж) nF — Л | ^ 6 для всех х £ 5*. Тогда существует детерминированный конечный автомат, который допускает язык L (Sai Л). Следовательно, L (Sa, Л) — автоматный язык.
Существует бесконтекстный язык, который не является Л-стохастическим. - 7
Ниже перечислены свойства стохастических языков максимального правдоподобия.
(Ml) Класс стохастических языков максимального правдоподобия (СЯМП) содержит все автоматные языки как собственный подкласс.
Пусть 5а — стохастический конечный автомат с п состояниями. Тогда L (Sai Л) с Л^ Мп содержит СЯМП как собственный подъязык.
Всякое левое частное СЯМП есть СЯМП.
Если qv q^. . . ., qk — ФМПП (функции максимального правдоподобия принадлежности), то (^ U ^ U • • • U Sk)/& — ФМПП.
Пусть 5а — стохастический автомат с двумя состояниями. Тогда Lm (Sa) = L (sa, у).
(Мб) Пересечение класса бесконтекстных языков, класса Л- стрхастических языков и класса СЯМП не пусто.
Свойства языков, допускаемых стохастическими магазинными автоматами - .
Во второй главе была показана связь между магазинными автоматами и бесконтекстными языками. Ниже перечислены некоторые основные свойства взвешенных магазинных языков.
(W1) Взвешенный магазинный язык Lwp есть язык N (Ms) для некоторого СМА (стохастического магазинного автомата) М8 тогда и только тогда, когда Lwp есть Т ^М'^ для некоторого СМА MV , '
(W2) Пусть Gs — стохастическая бесконтекстная грамматика. Существует СМА М81 такой, что L ^G^ = N (Afs).
Свойство (W1) означает, что определения взвешенного магазинного языка при помощи заключительного состояния автомата или при помощи пустого магазина эквивалентны, а свойство (W2) означает, что класс взвешенных магазинных языков содержит класс всех стохастических бесконтекстных языков. Легко показать, что множество взвешенных магазинных языков содержится в классе Взвешенных бесконтекстных языков как собственный подкласс.
Свойства класса языков, допускаемых СМА с порогом Л, таким, что 0^Л<1, можно резюмировать следующим образом.
(Р1) Язык L является языком N (Afs, Л) для некоторого СМА М8 с порогом Л, таким, что 0 ^ Л < 1, тогда и только тогда, когда L есть язык Т (AfgA) для некоторого СМА М8.
(Р2) Пусть дан СМА М8. Тогда N (Ms, 0) определяет бесконтекстный язык.
(РЗ) Класс бесконтекстных языков является собственным подклассом класса языков, допускаемых СМА при таком пороге Л, что 0 ^ Л < 1.
(Р4) Каждый Л-стохастический магазинный язык есть Л- стохастический магазинный язык для любого. Л', 0 < Л' < 1.
(Р5) Объединение LT (J L^ пересечение Ьг Q L^ и разность Lt — L2 (или Lt П L^) Л-стохастического магазинного, языка Lx и детерминированного языка L^ всегда является Л-стохастическим магазинным языком [20, 21].
5.4. Стохастические программные и индексные грамматики
Как программные [22], так и индексные грамматики [23] служат удобным способом порождения для широкого класса языков. Мы расширим определения программных и индексных грамматик так, чтобы получить стохастические программные и индексные грамматики.
Стохастические программные грамматики и языки х)
Определение 5.12. Стохастическая программная грамматика (СПГ) есть пятерка Gsp = (yN, Ут, J, PS1 5), где
yN — конечное множество вспомогательных символов;
Ут — конечное множество основных символов;
J — конечное множество меток правил вывода;
Ps — конечное множество правил вывода;
S — начальный символ.
Каждое правило в Ps имеет вид
(г) со -> ц S (U) Р ^ F (ТУ) Р (РУ), где со ц — ядро правила вывода, со £ (^n U FT)* ^n (^n U и ут)* и л е (vN и гт)*.
Каждое правило вывода из Ps имеет отдельную метку r Q J. Множества U ^J и ТУ г J называются списками перехода при успехе и неудаче соответственно. Р (U} и Р (ТУ) — распределения вероятностей на множествах U и ТУ соответственно. Крайнее левое применение правила к промежуточной цепочке £, выведенной из S, возможно тогда, когда £ содержит со. Правило состоит в замене крайнего левого вхождения со в £ на ц, при этом следующее правило выбирается из списка перехода при успрхе U. Если цепочка £ не содержит со, то она не изменяется и следующее правило выбирается из списка переходов при неудаче ТУ.
Предположим, что
Г1Г2ГП
S = СО^ =^,‘ СО 2 ^^ . • • =г>- COn-|-i = X
есть вывод х из 5, в' котором rt — метка правила, прямо порождающего со^ из сог-. Вероятность р, связанная с этим выводом х из 5, определяется как произведение условных вероятностей
Р (я) = р М Р (r2 I T-J . . . р (rn I гп_х\
Условная вероятность р (гг | г^) интерпретируется как вероятность выбора правила гг в качестве следующего правила из списка переходов при успехе, если удалось применить. В противном случае р (rt | rt_^ есть вероятность выбора гг из списка переходов при неудаче г^-го правила.
См. Суза [7] и Свейн и Фу [8].
Определение 5.13. Стохастической программной грамматикой с безусловными переходами /СПГБП) называется стохастическая программная грамматика, у которой U — W и Р (U) = Р (ТУ) для каждого правила грамматики.
Определение 5.14. Пусть Gsp — стохастическая программная грамматика. Характеристической программной грамматикой Ggp называется грамматика, полученная удалением из Gsp распределений вероятности, связанных со всеми списками перехода. Язык, порождаемый Gsp, называется программным языком [22].
Определение 5.15. Говорят, что стохастическая программная грамматика Gsp есть стохастическая программная грамматика непосредственно составляющих, бесконтекстная или автоматная, если Gsp — грамматика непосредственно составляющих, бесконтекстная или автоматная программная грамматика соответственно.
* Определение 5.16. Стохастическая бесконтекстная программная грамматика (СБПГ) с левым выводом — это такая грамматика, в которой каждое правило применяется к крайнему левому вспомогательному символу в выведенной промежуточной цепочке.
Определение 5.17. Стохастическая бесконтекстная программная грамматика с левым применением — это такая грамматика, в которой каждое правило применяется к крайнему левому вхождению заменяемого вспомогательного символа.
Различие между левым выводом и левым применением легко продемонстрировать на следующем примере. Пусть выведена промежуточная цепочка со = а АВАВ, где а — основной, а А и В — вспомогательные символы, а следующее правило, применяемое к со, есть В -> Ъ. Это правило можно применить к крайнему левому вхождению символа В в цепочку со (левое применение), но его не удастся применить в левом выводе, поскольку крайний левый вспомогательный символ цепочки со отличен от В.
Определение 5.18. Стохастическая бесконтекстная программная грамматика с правым применением — это такая грамматика, в которой каждое правило применяется к крайнему правому вхождению заменяемого вспомогательного символа.
Стохастический программный язык, порождаемый стохастической программной грамматикой Gsp = (TN, Ут, /, Р^ 8) определяется как
L (Ggp) = {(ж, р (ж)) | ж 6 S ^ х
к
для i= 1,■ ..., к и р М = 2 PtV (5.20) г=1
где & — число различных выводов х из 8, a pt — вероятность i-ro вывода х.
Стохастическая программная грамматика согласована тогда и только тогда, когда
р Сс) = 1- ^ЧсзР)
Пример 5.9. Рассмотрим стохастическую" бесконтекстную программную грамматику Gsp = (FN, V т, J, Ps, S), где FN = = {5, А, В, С, D), 7Т = {^ Ь, с, dY J = {1, 2, 3, 4, 5, 6, 7} и Р8л
Метка
Ядро
U
P(U)
w
1
S->aAB
2,3
a, 1 — a
0
1
2
А^аАС
2,3
1~P, P
1
3
A^D
4
1
^
1
4
C-^d
5
1
6
1
5
D-^bDc
4
1
£
1
6
B->d
7
1
1
7
D-^bc
0
1
0
1
Типичным выводом в этой грамматике служит вывод
S
а АВ ==> ааАСВ =^=* aaDCB
aaDdB ==► aabDcdB ==► aabDcdd ==► aabbccdd
и p {aabbccdd) = оф. Вообще p {AVd?) = aa (1 — p)n“2, n = 2, 3, . . . .
Ниже перечислены свойства стохастических программных грамматик и. языков.
Теорема 5.7. Множество стохастических программных языков, порождаемых стохастическими бесконтекстными программными грамматиками {СБПГ) с правым применением, совпадает с множеством стохастических программных языков, порождаемых СБПГ с левым применением. . "
Теорема 5.8. Любую СБПГ с левым выводом можно преобразовать в эквивалентную грамматику без списка переходов при неудаче с предсказанием единственного вспомогательного символа следующего шага.
Теорема 5.9. Множество стохастических программных языков, порождаемых СБПГ с левым выводом, совпадает с множеством стохастических бесконтекстных языков.
Теорема 5.10. Множество стохастических программных языков, порождаемых СБПГ с левым применением, содержит множество стохастических бесконтекстных языков как собственный подкласс.
5.4.2. Стохастические индексные грамматики и языки х)
Индексные грамматики позволяют породить класс языков, который строго содержит класс бесконтекстных языков и есть собственный подкласс класса языков непосредственно составляющих. В [23] показано, что класс индексных языков совпадает с классом языков, допускаемых односторонними стековыми автоматами. , Этот раздел посвящен стохастическим индексным грамматикам, стохастическим индексным языкам и стохастическим стековым автоматам 2).
Определение 5.19. Стохастическая индексная грамматика есть пятерка Ggi = (Ум, Ут, F, Ps, S), где
yN — множество вспомогательных символов.
Ут — множество основных символов.х
F — конечное множество, каждый элемент которого есть конечное множество стохастических правил подстановки вида Л Д» со, где А £ yN, со С (^n U ^т)*» а Р есть вероятность применения правила А со при замене А на со. Элементы j ^ F называются индексами (или сигналами), а Л -Д со из / называется стохастическим индексным правилом подстановки. Пусть {Л _Д сог, г = 1, . . ., Z} — множество всех стохастических индексных правил с левой частью А, определенных в f £ F. Тогда
i=l
Р8 — конечное множествр стохастических правил подстановки вида Л -Д у, где Л £ Ум, у £ (Ум^* U Ут)*, а р — вероятность применения правила Л у для замены А на у. Пусть множество всех стохастических правил подстановки из Р8 с левой частью А равно
1 = 1,
х) См. Фу и Хуанг [9].
Стековым автоматом называется такая модификация магазинного автомата, в которой возможно считывание символов из середины магазина, но невозможно изменение содержимого середины магазина (изменение содержимого магазина происходит так же, как в магазинном автомате).— Прим. Перее.
Тогда к
1=1
S^VN— начальный символ.
Применение стохастических правил из Ps и стохастических индексных правил из F можно описать так. Пусть А £ FN, Хг = = (^N'U VT) и ^ Е F* Для г = 1, . . .. к.
Предположим, что А ^ Х^ . . . Хт^т — стохастическое правило подстановки из Ps. Здесь фг- = X для Xt £ FT. Тогда с вероятностью р цепочка со = аЛбр, где ахр £ (V^F* U FT)* и 6 £ F*, прямо порождает цепочку ц = аХ^ . . . Xm<pmp, где
{
ipf0,если Xi£FN,
X,если Xi € Гт,
для 1 = 1, . . ., К.
Предположим/ что А^Хг, . . ., Xk — стохастическое индексное правило подстановки из f £ F. Тогда с вероятностью р цепочка со = аЛ/бр прямо порождает цепочку ц = аХ^ . . . . . . Хтфтр, в которой
J 6,если X^Fn,
^l х,если Х^Ут.
для всех i = 1, . . к.
Определение 5.20. Стохастическая индексная грамматика с левым выводом — это такая грамматика, в которой первым заменяется крайний левый вспомогательный символ промежуточной цепочки.
Стохастическим языком, порождаемым стохастической индексной грамматикой GS1 = (FN, Fт, F, PS) S), является
Pt £(с81)=Ч(я, рМ^еРт, s^x.
к
г — 1, . . ., к, и р (ж) = 2 PtV (5.21) i=i
где к — число различных левых выводов х из S. Язык L (Gsl) называется стохастическим индексным языком, если
2 р(ж) = 1,
K£L(GS1)
GS1 называется согласованной стохастической индексной грамматикой. Условия согласованности для стохастических индексных грамматик еще не найдены.
Пример 5.10. Рассмотрим стохастическую индексную грамматику Gsi = (7VN, FT, F, PS1 S), где FN = {5, T, Л, B^ FT = {a, 6},
F=Ui 8\ и ps:
S —Tf,
T Tg (0<р<1),
T —АВА,
/: А> a, g: А> аА,в> ь,В —> ьв.
Типичным выводом в этой грамматике будет
S => Tf => Tgf =>- AgfBgfAgf =>- aAfbBfaAf => ааЪЪаа
и р ^aabbaa^ = р (1 — р). Вообще
L^-V^bV. ^(l-/?))^-!, 2, ...}
и L(GS^ — стохастический язык непосредственно составляющих.
Стохастический синтаксический анализ стохастических бесконтекстных языков
, Вероятности, связанные с правилами подстановки, дают информацию о частоте применения каждого правила (когда оно применимо) в выводах цепочек рассматриваемого языка. Эта информация должна оказаться полезной при выполнении грамматического разбора цепочки, порожденной стохастической грамматикой 1). Например, предположим, что на некотором шаге грамматического разбора сверху вниз нашлись два применимых правила подстановки. Если мы хотим уменьшить возможность тупиковых попыток, то, следуя интуиции, мы должны сначала применить правило подстановки с большей вероятностью. Синтаксический анализ с использованием информации о вероятности применения правила называется «стохастическим синтаксическим анализом» или «стохастическим грамматическим разбором». Блок- схема системы стохастического синтаксического анализа приведена на рис. 5.1. Как только предложение ж допущено алгоритмом стохастического синтаксического анализа, т. е. x^L^G^ легко может быть определена и вероятность р (ж) порождения х в грамматике Gs. Если х ^ L (Gs), то р (х) = 0. В этом разделе приводятся алгоритмы стохастического синтаксического анализа бесконтекстных языков. Мы показали, что использование алгоритмов стохастического синтаксического анализа ускорило бы процесс
г) Если грамматика является стохастической автоматной, то можно построить стохастический конечный автомат для распознавания языка, порождаемого этой грамматикой (разд. 5.3.1).
грамматического разбора, имея в виду среднее число шагов анализа.
Ли и Фу [24] предложили для стохастического грамматичес- ского разбора стохастических бесконтекстных языков алгоритм грамматического разбора снизу вверх, использующий отношение
грамматика Gs
Рис. 5.1. Блок-схема системы стохастического синтаксического анализа.
предшествования. Фишер [25] и Лернер и Лим [26] показали, что любую бесконтекстную грамматику GT > можно преобразовать в эквивалентную , ей грамматику с предшествованием Вирта — Вебера G2. Также можно показать, что это верно и для стохастических бесконтекстных языков и порождающих их стохастических бесконтекстных грамматик.
Лемма 5.1. Для каждого стохастического бесконтекстного языка с согласованным распределением вероятностей существует стохастическая бесконтекстная грамматика с предшествованием Вирта — Вебера [27] с согласованным распределением вероятностей.
Доказательство леммы похоже на доказательство Фишера [25] для нестохастических грамматик и языков. Пусть грамматика Gs = (FN, Vт, Ps, 5) порождает язык L так, что L (Gs) = L. Каждое правило подстановки из G можно представить в нормальной форме Хомского. Мы получим
Л Л ВС, ' (2) Л Л а,
где]Л, В. С £ FN; а £ FT. Тогда G преобразуется в G' введением множества новых; вспомогательных символов FN для исключения противоречий в отношении предшествования
^ - (Fn, Ft, Р^ S^ Fn - Fn U Fn, Fn = {Л | Л £ FN}.
Правила Ps грамматики Gs преобразуются в правила Рз грамматики G's следующим образом:
Для каждого правила А -Д ВС из PSl где Л, 8, С £ FN, в ^ содержатся правила А ^ВС и А Д-ВС, где Л, 5 FN и Л, В, c^vN.
Для каждого правила вида А -Л- а из Ps, а £ FT, в ^s содер- жатся правила А Л-а и А -^ а, где а £ VT1 А £ FN и Л £ FN. Грамматика G§ — это грамматика с предшествованием Вирта — Вебера. Если символы X и Y связаны некоторым отношением^ то при X, У С (Fn U FN U FT) это отношение таково:
Y
X vN VN ит
KN >>>
rN = < <
ит > > >
Теперь нужно доказать, что условия согласованности грамматики выполнены и для G^. Пусть я £ Z (Gs) и вывод х таков:
л Г1Г2»*зГи
S => у^■ > у 2> ’ * *? 7л — X
и
Р(я)=П ^(г.)-
2=1
Если в исходном выводе х на ^-м шаге использовалось правило А-^^ ВС, то при выводе х в грамматике G's применяется либо
Р(г-)„ р(гр _
правило А —ВС, либо правило А —>- ВС. Также если в исходном ' Р(гр
выводе правило А —> а применялось на у-м шаге, то при выводе х р(гр
В грамматике G's применяется либо правило А а, либо правило» ^^ а. Поэтому п
Р* И = П Р М И р* (ж) = р
2—1
Стохастическая бесконтекстная грамматика может содержать много правил подстановки с одинаковыми правыми частями. При использовании в алгоритме грамматического разбора такой грамматики алгоритм становится недетерминированным, т. е. существует много способов редукции отделимой фразы. В этом случае следует проверять все возможности до тех пор, пока мы либо не допустим цепочку, либо не переберем все варианты и не отвергнем ее. Однако для сокращения времени грамматического разбора можно использовать вероятностную информацию о языке
Для каждого правила вычисляется вероятность синтаксической правильности (ВСП). Связанная с каждым правилом A j -^г\е
{где рн — обычная вероятность этого правила подстановки), ВСП Pji определяется как вероятность того, что именно вспомогательный символ А) был заменен иа ц, при выводе цепочки. Эта вероятность вычисляется как отношение числа использований правила Л7 ->ц^ во всех выводах всех цепочек Л (Gs) к числу всех правил с такой же правой частью. Следовательно, можно показать, что ВСП указывает на наиболее вероятное правило подстановки, которое нужно применить на данном шаге.
Все правила подстановки делятся на классы эквивалентности ГП1 . . . Г^, где все элементы класса Г^ имеют одинаковые правые части
АА
> Щ . . . Aq — —> цп,
^gn
л Pr^а Ртп
Аг —-> щ ... Ат т)п,
Рг1ртп
где все Л,- £ PN и все цг С Г+- ВСП нормируется по отношению к классу эквивалентности с данной правой частью
2(5.22)
Здесь суммирование идет по всем правилам подстановки из Гл Пусть Njt (ж) — число использований правйла подстановки
А] т^! в выводе цепочки х. Вероятность р^ можно вычислить как отношение вероятности частоты появления правила подстановки Aj -> тц к вероятной частоте появления всех правил из Г^.:
* 2
. (5'23'
Двойная сумма в знаменателе взята по всем цепочкам из L (Gs) и всем правилам из Г^,. Равенство (5.23) дает точное значение р^, причем р (х) есть вероятность вывода цепочки х и 0 < рц ^ 1. ВСП можно найти, используя равенство (5.23). Однако для этого должны быть известны все вероятности р (х).
Поскольку бесконтекстный язык может быть описан с помощью ветвящегося процесса Гальтона — Уотсона, этот процесс можно использовать и для вычисления вероятностей р51. Вспомогательные символы будут состояниями процесса. Пусть N^ — среднее
число применений правила подстановки А^->тц при среднем или вероятном грамматическом разборе. Число Njt выражается как произведение условного математического ожидания на вероятность правила подстановки Л7-->тц, равную рц. Условное математическое ожидание есть математическое ожидание количества попаданий процесса в состояние Aj на любом уровне при условии, что начальное состояние процесса есть Ло, где Ао — начальный символ грамматики. Условное математическое ожидание для п-го уровня, выраженное в матричной форме, есть
Я(АП|АО)-АОЯП,(5.24)
где Е — матрица первых моментов, а Ао и Ап — векторы состояний на уровнях 0 и п соответственно. Матрица Е получена при помощи производящей функции для ветвящегося процесса Гальтона — Уотсона (разд. 5.2.2). Пусть /f (sx, s2, . . ., sn) — производящая функция для i-ro вспомогательного символа, если FN состоит из п элементов. Матрица Е определяется при помощи (5.10) и Х5.9). Тогда
2 ^(А„|А0)]|>Ря.(5.25)
п=0
Здесь Ао — вектор-строка с первым элементом, равным 1, а |7- — вектор-столбец с /-элементом, равным 1. Таким образом, по всем уровням ветвления от 0 до оо N^ равно сумме вероятностей того, что процесс из состояния Ао перейдет в состояние Ап. Подставляя равенство (5.24) в (5.25), получим
Ал = [ 2 Aouita.
п=0
Если грамматика согласована, то наибольшая абсолютная величина собственного значения Е меньше ! и 11m Еи = 0. Пусть
ZП->ОО
50j=A0[ 2 ЕПН,-А(/-£)-*^.(5.26)
п—0
Тогда Njt = Вьррц. Для нормировки N5i разделим его на сумму всех Nц по классу эквивалентности Г^.; итак,
_ ^OjPji 1
Сумма берется снова по всем правилам подстановки из Г^..
Можно показать, что время грамматического разбора при стохастическом грамматическом разборе с использованием ВСП меньше или равно времени работы соответствующего недетерминированного алгоритма (не использующего информацию о вероятности применения правил). Скорость или экономию времени будем измерять по математическому ожиданию числа шагов алгоритма. Для вычисления математического ожидания числа шагов работы недетерминированного алгоритма предположим, что все возможные упорядоченные последовательности правых частей правил подстановки появляются приблизительно одинаково часто. Таким образом, для вычисления среднего числа шагов недетерминированного алгоритма грамматического разбора можно использовать среднее по всем таким последовательностям. Для имеющего смысл сравнения скоростей мы используем число ошибочных (тупиковых) шагов и число шагов возврата, поскольку недетерминированный и стохастический алгоритмы имеют всегда одинаковое число шагов продвижения х).
Грамматика Gs = (VN, FT, PS1 Лx) должна удовлетворять следующим условиям:
Грамматика Gs согласована.
Грамматика Gs задаца в форме грамматики с предшествованием Вирта — Вебера.
Грамматика Gs однозначна.
Для всех одинаковых правых частей правил подстановки из класса эквивалентности Г^ существует общее число %f — среднее число шагов алгоритма от места, где был сделан тупиковый шаг, до места, где алгоритм установил, что этот шаг ошибочен; одновременно Х^ .— среднее число шагов возврата к позиции, в которой следует применить другое правило.
Условие 4 необходимо для того, чтобы в замкнутой форме выразить количество лишних или дополнительных шагов алгоритма. Условие 3 должно выполняться по следующим причинам. Если грамматика неоднозначна, приходится проверять все возможные варианты замен встречающихсяТправых частей, чтобы убедиться, что не существует никаких других разборов цепочки» Однако при проверке всех вариантов экономия числа шагов невозможна.,
Следуя этим четырем условиям, можно получить грамматику с предшествованием и единым числом Xz* для каждого класса эквп-
Здесь и далее «шагом продвижения» алгоритма грамматического разбора называется шаг, при котором происходит редукция отделимой фазы, позволяющая в дальнейшем правильно закончить разбор; «ошибочный (или тупиковый) шаг» — это шаг, при котором делается неправильное предположение о синтаксической структуре цепочки — неправильная редукция отделимой фазы; «шаги возврата» — шаги, возвращающие алгоритм в состояние, в котором был сделан тупиковый шаг.— Прим. перев.
валентности Г^. правил частями:
подстановки с одинаковыми правыми
Номер правила
Правило подстановки
1
2
AjJ^^i
Pi гт
Если в классе эквивалентности Г^. есть т правил подстановки с одинаковыми правыми частями, то существует т\ их различных упорядочиваний. Пусть jk обозначает А-й член /-го порядка, и пусть ] — I — порядок, заданный значениями ВСП.
N4i>N4i> . . . Nlml.(5.28)
Теорема 5.11. Пусть выполнены условия 1 — 4. Тогда
Е\п8^<Е^,(5.29)
где Е {^sp} — математическое ожидание числа шагов стохастического. а Е {^гпр} — недетерминированного алгоритма грамматического разбора.
Доказательство. Пусть Е ^п^ — среднее число шагов продвижения. Оно одинаково для обоих алгоритмов грамматического разбора. Среднее число тупиковых шагов недетерминированного алгоритма при п-м упорядочивании класса Г^. вычисляется как
т
E^ = Xt 3 (k-l)Nhi,(5.30)
k=2R
где X; — число шагов до выбора нового правила подстановки с такой же правой частью. Если первым выбирается подходящее для этого разбора правило, то алгоритм не делает лишних шагов и число NM не участвует в Е {^}. Если подходящим оказывается второе правило подстановки в этом порядке, то для каждого такого правила алгоритм делает Х$ лишних шагов. Если же подходящим оказывается Л-е правило, то для каждого такого правила алгоритм сделает {к — 1)' лишних шагов.
Число Е {п^} минимально, когда N^ ^ Nk^ ^ . . . Nhmu а это и есть случай упорядочивания правил по ВСП. При этом
т
Е {4}тщ = kt 2 (к-1) Nta = Е {nip},(5.31)
к=2R
174 Гл. 5. Стохастические языки и синтаксический анализ где минимум ищется по всем ml порядкам. Для любого другого порядка
Е^^Е^, i^h^ml .(5.32)
Взяв сумму по всем возможным порядкам, получим т\т' т
^е^^ s 2 (&-1)Д^, Z=1Z=1 h=2A
£№^2 ii^-l^N^E^V (5133)
Z—1 k=2
E {^sp} ^ E {^rp} •
Правая часть неравенства (5.33) есть определение среднего числа ошибочных шагов для недетерминированного алгоритма грамматического разбора. "
Суммирование Е {^р} и Е {^ } по всем классам эквивалентности с добавлением Е { z?f} приводит к желаемому результату
Е W+ 2 ЕЙ^ 2 £{^р} + ^М Е^^Е^рУ (5.34) i= 1г= 1
Условие 4 было наложено для того, чтобы получить количественную оценку числа тупиковых шагов для класса эквивалентности правил подстановки с одинаковыми правыми частями. Это условие всегда выполняется в следующей ситуации. Пусть А^ А^ . . ., А^ есть т левых вспомогательных символов в правой части правил из класса эквивалентности Г^,. Если символ Ajk (1 ^ /с ^ т) появляется в выводимой цепочке аХ tA^X ^ч, где а, у £ (FT U FN)* и Хь Х1+1 6 (VN U ^т U Ь), то Ajq (1 < ^ q ^ т и q^ к) не может появиться в выводимой цепочке 6Х гА^Х^-^ для любых бр ^ (7Т U 7N)*. В этом случае ошибку можно обнаружить по матрице отношения предшествования. Здесь X; = 2 (один тупиковый шаг и один шаг возврата).
Пример 5.11. Ниже приводится пример поиска ВСП для линейной грамматики с несколькими правилами, имеющими одинаковые правые части:
Gs = (Fn, Ут, PS1 S), V^ = ^S, А, 5}, 7т ={^ 6, с. d},Ps: S—*->а, Sb, A—\Bd,
1-р1-рB-->aSb,B-->aSb,
1-р
1-р
B-->aSb,
B-->aSb,
A--»aSb,
S А В a b с d
Мы хотим найти все р для грамматики Gs.
Для минимизации числа тупиковых шагов упорядочим правила подстановки по убыванию ВСП.
5 —а§ь pss —— р
р-Н<Д-рНг(Д-рШ-9У
Л—4-^-^aSb,*Pas = —t—t.хиx.
' p^g—°t242P+g(l—P) + r(l—p) (1 —g)’
B-^l^aSb,
pss=o.o54P+9(l-P)+r(l-P)(l-g)
ВСП для остальных правил подстановки равна 1. Для этого класса эквивалентности все ошибки при разборе обнаруживаются по матрице отношения предшествования, так что X = 2 (один шаг на ошибку и один шаг на возврат). Существует шесть возможных упорядочиваний правил из этого класса эквивалентности. Среднее число тупиковых шагов для стохастического алгоритма равно 116. Остальные пять порядков приводят в среднем к 178, 270, 394, 486 или 548 лишним шагам алгоритма соответственно. Итак, Для недетерминированного алгоритма среднее число лишних шагов равно 332. Среднее число шагов продвижения равно 227. Средняя длина цепочки в языке равна 393. Следовательно, среднее число шагов работы недетерминированного алгоритма равно 559, в то время как среднее число шагов стохастического алгоритма — 343. Стохастический алгоритм грамматического разбора приме- ндлся в задаче классификации неоднозначных изображений хромосом [24, 28].
Стохастический синтаксический анализ бесконтекстных программных языков
В этом разделе рассмотрены два основных подхода к построению алгоритмов стохастического синтаксического анализа, определяющих, можно ли породить цепочку х СБПГ Gsp, и вычисляющих вероятность вывода этой цепочки в грамматике Gsp [29]. Стохастический алгоритм синтаксического анализа состоит из двух основных частей: 1) стохастического порождающего алгоритма и. 2) детерминированного алгоритма возврата. В зависимости от типа применяемого стохастического алгоритма выбора правила мы различаем два типа стохастических алгоритмов синтаксического анализа. В алгоритмах первого типа сначала выбирается правило подстановки с наибольшей вероятностью применения, а в алгоритмах второго типа правило из списка-перехода выбирается случайно, но в соответствии с распределением вероятностей применения на множестве всех правил подстановки из этого списка переходов.
На примерах будет показано, что алгоритм стохастического синтаксического анализа для СБПГ Gsp, выбирающий сначала наиболее вероятные правила, в среднем требует меньшего числа шагов для распознавания цепочек языка L ^G^. Кроме того, будет показано, что и алгоритм стохастического синтаксического анализа со случайным выбором правила в соответствии с распределением вероятностей в грамматике может уменьшать среднее число шагов при грамматическом разборе цепочек в языке L (Gsp).
Стохастический синтаксический анализ с фиксированной - стратегией *
Стохастический синтаксический анализ, при котором сначала выбирается правило подстановки с наибольшей вероятностью применения, — это недетерминированный синтаксический анализ [8], для которого правила подстановки в каждом списке перехода упорядочены по убыванию вероятностей применения. Левая (или первая) метка в каждом списке перехода соответствует правилу с наибольшей вероятностью, а правая (или последняя) метка соответствует правилу с наименьшей вероятностью. Ясно, что это и есть стохастический синтаксический анализ с фиксированной стратегией. Блок-схема алгоритма стохастического синтаксического анализа с фиксированной стратегией приведена на рис. 5.2.
Следующий пример показывает, что при стохастическом синтаксическом анализе, в котором выбирается наиболее вероятное правило подстановки, в среднем требуется меньшее число шагов для распознавания языка, порожденного СБПГ.
Рис. 5.2. Блок-схема стохастического алгоритма синтаксического анализа с фиксированной стратегией для СБПГ (СПУ означает список переходов при успехе, СПН — список переходов при неудаче).
12—086
Пример 5.12. Рассмотрим стохастическую грамматику СБПГ Gy =({5, А, В, С, D}, {a, b, с}, {1, . . ., 7}, Ps, 8), в которой Ps определено так:
Метка
Ядро
и
РФ)
1
S-
АВС
2, 5
Р, 1— Р
2
А-
—> а А
3
1
3
В-
->ЬВ
4
1
4
С-
->сС
2, 5
q. i — q
5
А-
—> а
6
1
6
В-
->Ь
7
1
7
С-
—> с
0
1
Здесь 0< p,q< 1. Легко показать, что цепочка аЪс выводится из 8 выводом г1г5г6г7 с вероятностью
Р (abc) = р (Г1) р (г51 п) р (r61 г^ р (г71 г^ = (1) (1 — р) (1) (1) = 1 — р*
В общем случае вывод цепочки апЪпсп таков: гг (г2г3г4)п“1г5г6г7, а вероятность этого вывода равна
Р (апЬпсп) = р (rt) р (г21 г,) р (г31 г2) р (г41 r3) VP (r21 r4) X
х Р (г3 |>2) р (rt | Г3)]"-2 р (г5 | Г4) р (г6 | Г5) р (г, | Г6) =
= (1) (?) (1) (1) К?) (1) (1)Г2 (1 - 9) (1) (1) = р (1 - з) <Г2.
Стохастический язык, порождаемый грамматикой Gy, есть
L ^0 = {(a"6V), рпНп> 0}, где
Pi = 1 — Р и рп = р (1 — д') дп~2, п = 2, 3, . . . .
Грамматику Gy можно рассматривать как стохастический источник, порождающий цепочку апЪпсп с вероятностью рп.
Теперь вычислим среднее число шагов, требующееся для стохастического анализа в языке L (Gy), если в Gy изменен порядок элементов в списках перехода. Для СБПГ Gy есть только четыре порядка расположения меток в списках перехода. Эти порядки связаны с расположением меток в списках первого и четвертого правил. При изменении порядка меток в списках перехода из Gy образуются грамматики G2, G^ и G4. Предположим, что порядок расположения меток в списках перехода СБПГ Gsp определяет порядок перебора правил подстановки в алгоритме синтаксического анализа, построенном для Gsp. Теперь по грамматике Gy построим грамматики б2, С3и G4 и вычислим среднее число шагов, необходимое каждому из четырех алгоритмов, построенных для
синтаксического анализа по грамматикам G1? G2, G3 и G4 языка L (А).
Если алгоритм синтаксического анализа строится по грамматике Gv то для распознавания цепочки апЪпсп ему требуется Зп + 2 шагов. Отсюда среднее число шагов Dtl требуемое для распознавания языка L (G-^ при помощи этого алгоритма, равно
D,= 2 (Зи + 2)рп = 5(1-р) + 2 (3n + 2)p(l-g)g”-2 = n=ln=2
=Ц1-рНр(М 2 (3m+8)qm =
m—0
= 5 (1 —p)+ p(l+ g) [3 2 mqm + 8 2 7m] =
771=0771=0
= 5 (1 — p) + p (1 — q) [3g/(l — g)2 + 8/(1 — g)] =
= 5 + 3p/(l-g).(5.35)
Алгоритм синтаксического анализа строится по грамматике G2 со следующим множеством правил подстановки:
Метка
ЯдроUР (U)
1
2
3
4
5
6
7
SАВС2,5р, (1 — р)
S —* аА31
В—> ЬВ41
С—*сС5,2(1-д),3
А —> а61
В—>Ь71
С—>с01
Заметим, что G2 получается из Gt изменением порядка элементов в списке переходов при успехе четвертого правила. Ясно, что L (G^ = L ^.
Можно показать, что число шагов для синтаксического анализа цепочки abc равно 5. Для распознавания цепочки ап6псп при п >> 1 требуется Зп + 2 (п — 2) шагов. Отсюда среднее число шагов D^ требуемое для распознавания цепочек из L (Gx) при помощи этого алгоритма, равно
О2 = 5(1-р)+ 2 [3n + 2(n-2)]p(l-g)?"-2 =
тг- 2
(5.36) 12»(5.36) 12»= 5 + Зр/(1 -qH^P (2g-1)/(1 - g).
(5.36) 12»
(5.36) 12»
Алгоритм синтаксического анализа строится по грамматике G3 со следующим множеством правил:
Метка
Ядро
и
P(U)
1
8-
-^ АВС
5, 2
(1—р^ р
2
А-
—> а А
3
1
3
в-
->ьв
4
1
4
с-
—> сС
2, 5
9, (1 — 9)
5
А-
—> а
6
1
6
В-
—> ь
7
1
7
с-
—> с
0
1
Заметим, что G3 получена из Gx изменением порядка элементов в списке переходов при успехе первого правила. Ясно, что L (G3) = = L kGiY
Можно показать, что для распознавания цепочки abc требуется 3 шага, а для распознавания цепочки аиЬиси нужно Зп + 4 шагов. Следовательно, среднее число шагов D3l необходимое этому алгоритму для распознавания цепочек из языка, равно
Р3 = 3(1-р)+2 <Зп+4)р(1-д)<Г2 =n=2w
= 5 + Зр/(1-7) + (4р-2).= 5 + Зр/(1-7) + (4р-2).’(5.37)’(5.37)
= 5 + Зр/(1-7) + (4р-2).
= 5 + Зр/(1-7) + (4р-2).
’(5.37)
’(5.37)
Наконец, построим алгоритм синтаксического анализа по грамматике G4 со следующим множеством правил подстановки:
Метка
ЯдроUР (U)
1
2
3
4
5
6
. 7
8—> АВС5,2(1—р^ р
А —> а А31
В -> ЬВ41
С-^сС5,2(1—9),9
А—>а61
В—>Ъ71
С->с01
Заметим, что G4 получена из Gx изменением порядка элементов в списке переходов при успехе в первом и четвертом правилах. Ясно, что L (G4) = L (G^.
Можно показать, что для распознавания цепочки abc требуется 3 шага, а для распознавания цепочки aubncn1 п > 1 требуется Зп + 2 (п — 1) шагов. Следовательно, среднее число шагов D^
необходимое этому алгоритму для распознавания L (Gj), равно
А = 3 (1- р) + Д [Зи + 2 (п- 1)] р (1 - 9) q^ =”=3 + 5р/(1 —9).(5.38)
Итак, при О^р, 9<1
Di = 5—ЗрК1 — q),В3 = 3 + Зр/( 1 — 9) + 4р,
P2 = 5+3p/(l-9) + 2p(29-l)/(l-9), D4 = 3+5p/(l-g).
Пусть
Dornin (D^ D^ D3l D4).
Легко показать [29], что
г
Di
ИЛИ
D3 ИЛИ Dr или D^
если
р
1
2 *
9
— 1
” 2 ’
вг
или
В.
если
р
_ 1
2 ’
9'
< 2 ’
Dv
или
Вз
если
р
” 2 ’
д'.
1
> 2 ’
D3
или
в.
если
р-
С 2 ’
9
1
” 2 ’
D =
Di
или
А
если
р".
> 2 ’
9
= 4’ (5.39)
Dv
если
р:
1
> 2 ’
q1.
> 2 ’
Вг
если
р:
1
> 2 ’
9-
2 ’
B3
если
р*
1
2 ’
9:
1
> 2 ’
А
если
р-
С 2 ’
q-
1
< 2 е
Пример 5.12 ясно показывает, что алгоритм синтаксического анализа, выбирающий при переборе первым правило подстановки с наибольшей вероятностью, требует для распознавания языка L (G^ в среднем наименьшего числа шагов
Стохастический синтаксический анализ со случайной стратегией
Стохастический алгоритм синтаксического анализа со случайной стратегией получается из недетерминированного алгоритма синтаксического анализа при введении стохастического алгоритма
выбора следующего правила подстановки из списка переходов. На каждом шаге для выбора следующего правила подстановки из имеющихся вариантов используется распределение условных вероятностей. Это легко продемонстрировать на следующем простом примере. Предположим, что алгоритм использовал правило
Метка
Ядро
и
P(U)
г
А —> аВ
гь Гр rk
Ph Рр Pk
где pt + Рз + Ph = 1, и применение этого правила к выведенной промежуточной цепочке было усиленным. В качестве следующего выбирается правило гь г,- или rk с веростностью рг1 pj или рк соответственно. Предположим, что в качестве следующего выбрано правило rj и что этот выбор приводит к неверному синтаксическому анализу цепочки. Алгоритм возврата возвращает нас к правилу г. Поскольку г, уже применялось, ^ и rk — единственные подходящие правила подстановки в U. Следовательно, можно выбрать либо г^ либо rk в соответствии с распределением их условных вероятностей
Р (rt, rk I г,) = (/),', Ph), где
Pi = PtKPt + Pft)
И
рк = PhKPi + pft).
Блок-схема стохастического синтаксического анализа второго типа приведена на рис. 5.3.
Легко показать, что алгоритм стохастического синтаксического анализа со случайной стратегией эквивалентен недетерминированному алгоритму синтаксического анализа со смешанной стратегией. Иными словами, алгоритм стохастического синтаксического анализа можно рассматривать как недерминированный алгоритм, применяющий конечный набор фиксированных стратегий, каждая из которых выбирается с некоторой вероятностью. Очевидно также, что вероятность выбора хоть какой-нибудь стратегии равна 1. Покажем, что вероятность выбора алгоритмом некоторой стратегии можно вычислить по заданной СБПГ.
Предположим, что для данной СБПГ Ggp есть N стратегий (или различных порядков расположения элементов в списках перехода Ggp) и Л; — вероятность выбора недетерминированным алгоритмом со смешанной стратегией ;-й стратегии. Тогда среднее число
Рис» 5.3, Блок-схема стохастического алгоритма синтаксического анализа со случайной стратегией для СБПГ.Рис» 5.3, Блок-схема стохастического алгоритма синтаксического анализа со случайной стратегией для СБПГ.
Рис» 5.3, Блок-схема стохастического алгоритма синтаксического анализа со случайной стратегией для СБПГ.
Рис» 5.3, Блок-схема стохастического алгоритма синтаксического анализа со случайной стратегией для СБПГ.
шагов, требующееся недетерминированному алгоритму со смешанной стратегией для распознавания L (t?gp), равно
(5.40)(5.40)N
(5.40)
(5.40)
г=1
где Dt есть среднее число шагов, необходимое недерминирован- ному алгоритму синтаксического анализа с Z-й стратегией для
распознавания L (Gsp) и
N
2 лг = 1.
г=1
Теперь легко видеть, что
max Dt^D'^min Dt.(5.41)
г?
Другими словами, стохастический алгоритм синтаксического анализа со случайной стратегией может оказаться более эффективным, чем алгоритм стохастического синтаксического разбора с фиксированной стратегией.
Для данной СБПГ Gsp порядок элементов в списках перехода определяет фиксированную стратегию недетерминированного алгоритма синтаксического анализа со смешанной стратегией. Вероятность лг использования Z-й стратегии можно вычислить по грамматике G^ которая соответствует Z-й стратегии. Предположим, что
г17 (г,, ..., rft} Р (Z7) = {Р!, ..., Р^,
где
h
2 Pi = i
есть правило подстановки со списком переходов, состоящим из к элементов. Вероятность, связанная с некоторым упорядочиванием к элементов в списке перехода r-го правила, обозначенная Р (г), равна
Р(г) = П p№piY(5.42)
3=1 г=з
где Pj/^Pi) —условная вероятность того, что г, есть у-й элемент 1=3
в списке r-го правила подстановки при условии, что г17 . . ., есть первые у — 1 элементов в списке. Вероятность, связанная с Z-й стратегией, равна
^ = 11 р(Н>
где J —множество меток правил подстановки из Gie После некоторых преобразований легко показать, что
N
2 лг = 1, i=l
где N есть число всех различных стратегий существующих для грамматики Gsp при разных упорядочиваниях элементов в списках перехода. Работу стохастического алгоритма синтаксического анализа со случайной стратегией можно продемонстрировать на следующем примере.
Пример 5.13. Можно показать, что для стохастической БПГТ рассмотренной в примере 5.12, потребуется 3 + 2р, 6 + 2g— — 2 (1 — р) и (Зтг + 2 + 2 (п — 3) (1 — д) + 2 (1 — р) шагов для распознавания цепочек^ абс, aW и аУ^с^. п^З, соответственно при помощи стохастического алгоритма синтаксического анализа со случайной стратегией. Среднее число шагов, необходимое этому алгоритму для распознавания цепочек из L (G^ обозначенное D*, равно
Я* = (3 + 2р)(1-рН(6 + 2д + 2(1-р))р(1-д) +
+ 2 [(3n + 2) + 2(n-3)(l-g) + 2(l-p)]p(l-g)g”-2 = п=3
= 3+3p/(l —р) + 4р(1 —р) + 4рд.(5.43)
В этом примере стохастический алгоритм синтаксического анализа со случайной стратегией можно рассматривать как недетерминированный алгоритм со смешанной стратегией. Как было показано в примере 5.12, недетерминированный алгоритм использует четыре стратегии: Gt, G2l G^ и G^. Вероятности лг вычисляются по данной СБПГ Gt. Можно показать, что л17 л2, л3 и л4 равны pq, р (1 — g), (1 — р) д и (1 — р) (1 — д) соответственно. Отсюда, среднее число шагов стохастического алгоритма синтаксического анализа со случайной стратегией несложно вычислить следующим образом:
О' = 2 niDi = i=l
= pgr (5 + Зр/(1 — g)) + р (1 — g) (5 + Зр/(1 — g) + 2g—1)/( 1 — g)) +
+ (1 - p) g (3+3p/(l- g)+4p)+(l - p) (1-g) (3+5p)/(l-g)) =
= 3 + 3p/(l —g) + 4p(l —p) + 4pg,(5.44)
и D' совпадает c D*.
Можно показать, что в случае р = q = — D=^p', а во всех остальных случаях D <D*.
Чтобы показать, что стохастический алгоритм синтаксического анализа ускоряет процесс грамматического разбора в том смысле, что ему в среднем требуется меньшее число шагов для распознавания цепочек из языка L (G^ докажем, что D* ^ DKn где Dn — среднее чисел DXl D2, D3l D^ a D; — среднее число шагов, тре-
бующееся алгоритму синтаксического анализа, построенному по грамматике G^ По определению,
ТогдаТогдаDK = ф^ -J- D^ + D^ + D^]4 — 4 + 4/?/(l — p).(5.45)
Тогда
Тогда
Dn - D* = (1 - 2pY + (1 - WK 1 - ?) > 0.
Мы отмечали, что Dn — D* тогда и только тогда, когда р = q = 1
= -^. Отсюда следует, что
D ^D* ^Dn,(5.46)
и О = D* = Dn тогда и только тогда, когда р = q = ^ .
Теперь ясно, что если информация о распределении вероятностей в СБПГ Gsp известна полностью, то для анализа следует применять стохастический алгоритм синтаксического анализа с фиксированной стратегией. С другой стороны, если информация о связанных с СБПГ Gsp вероятностях известна не полностью, лучше использовать алгоритм синтаксического анализа со смешанной стратегией, поскольку он работает не хуже, чем недетерминированный алгоритм с наихудшей стратегией. Такая ситуация может возникать в тех случаях, когда СБПГ определяется или эвристически строится по конечному множеству цепочек, порожденных неизвестной СБПГ.
СПИСОК ЛИТЕРАТУРЫ
Banerji R. В., Phrase structure languages, finite machines, and channel capacity, Information and, Control, 6, 153—162 (1963).
Grenander U., Syntax-Controlled Probabilities, Tech. Rep. Div. of Appl. Math., Brown Univ., Providence, Rhode Island, 1967.
Fu K. S. and Swain P. H., On syntactic pattern recognition, Int. Symp. Gomput. and Inform. Sci., Bal Harbour, Florida, December 1969; published in Software Engineering (J. T. Tou, ed.), Vol. II, Academic Press, New York, 1971.
Fu K. S., Stochastic automata, stochastic languages and pattern recognition, IEEE Symp. Decision and Contr., Austin, Texas, December 1970; published in J. Cybernet., 1, 31—49 (1971).
Fu K. S., On syntactic pattern recognition and stochastic languages. In Frontiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Hutchins S. E., Stochastic Sources for Context-Free Languages, Ph. D. Thesis, Dept, of Appl. Phys, and Inform. Sci., Univ, of California, San Diego, 1970.
Souza C. R., Probabilities in Context-Free Programmed Grammars, TR-A70-2. Aloha Syst. Univ, of Hawaii, Honolulu, Hawaii, 1970.
Swain P. H. and Fu K. S., Stochastic programmed grammars for syntactic pattern recognition. Pattern Recognition, 4 (1972), Special issue on syntactic pattern recognition*
Fu К. S. and Huang Т., Stochastic grammars and languages, I nt. J. Comput. and Inform. Sci., 1 (1972).
Booth T. L., Probability Representation of Formal Languages. IEEE Annu. Symp. Switching and Automata Theory, 10th, October 1969.
Harris T. E., The Theory of Branching Processes. Springer-Verlag, Berlin and New York, 1963.
Севастьянов Б. А., Теория ветвящихся процессов, Успехи математических наук, 7 (1970).
Rabin М. О., Probabilistic automata, Information and Control, 6, 230—245 (1963).
Paz A., Some aspects of probabilistic automata, Information and Control, 9, 26—60 (1966).
Turakainen P., On stochastic languages, Information and Control, 12, 304— 313 (1968).
Salomaa A., On languages accepted by probabilistic and time-variant automata, Proc. Annu. Conf. Inform. Sci. and Syst. 2nd, Princeton, 1968, pp. 184—188.
Fu K. S. and Li T., On stochastic automata and languages, Information Set., 1, 403—419 (1969).
Ellis G. A., Probabilistic Languages and Automata, Rep. No. 355. Dept, of Comput. Sci., Univ, of Illinois, Urbana, 1969.
Huang T. and Fu K. S., On stochastic context-free languages, Information Sci., 3, 201—224 (1971).
Schutzenberger M. P., On context-free languages and pushdown automata, Information and Control, 3, 246—264 (1963).
Ginsburg S. and Greibach S. A., Deterministic context-free languages, Information and Control, 9, 620—648 (1966).
Rosenkrantz D. J., Programmed grammars — A new device for generating formal languages, J. Assoc. Comput. Mach.. 10, 107—131 (1969). (Русский перевод: Розенкранц Д., Программные грамматики и классы формальных языков, Сборник переводов по вопросам информационной теории и практики, № 16, ВИНИТИ, 1970.)
Aho А. V., Indexed grammars — An extension of context-free grammars, J. Assoc. Comput. Mach., 15, 647—671 (1968). (Русский перевод: Ахо A., Индексные грамматики — расширение контекстно-свободных грамматик, «Языки и автоматы», Мир, М., 1975.)
Lee Н. С. and Fu К. S., A stochastic syntax analysis procedure and its application to pattern classification, IEEE Trans. Computers C-21, 660— 666 (1972).
Fischer M., Some properties of precedence languages, Proc. ACM Symp. Theory of Comput. 1st, 1969, pp. 181—190.
Learner A. and Lim A. L., Note on transformating context-free grammars to Wirth — Weber precedence form, Comput. J., 13, 142—144 (1970).
Wirth N. and Weber H., EULER — A generalization of ALGOL and its formal definition, Pt. 1, Comm. ACM, 9, 13—25 (1966).
Lee H. C. and Fu K. S., A syntactic pattern recognition with learning capability, Int. Symp. Comput. Inform. Sci. 4th, Miami Beach, Florida, December 14—16, 1972 (J. T. Tou, ed.). Academic Press, New York, 1972.
Huang T. and Fu K. S., Stochastic syntactic analysis for programmed grammars and syntactic pattern recognition, Comput. Graphics and Image Process., 1, 257—283 (1972).
Bruce G. D. and Fu K. S., A model for finite-state probabilistic system, Proc. Conf. Circuit and Syst. Theory, 1st, Allerton, Univ, of Illinois, 1962. Херц M. M., Энтропия языков, порождаемых автоматной или контекстносвободной грамматиками с однозначным выводом, Научно-техническая информация, сер. 2, № 1, 1968.
Salomaa A., On m-adic probabilistic automata, Information and Control,, 10, 215—219 (1967).*
Salomaa A., Probabilistic and weighted grammars, Information and Control.
529—544 (1969).
Santos E. S., Maximin automata, Information and Control, 13, 363—377 (1968).
Turakainen P., Some closure properties of the family of stochastic languages. Information and Control, 18, 253—256 (1971).
Nasu M. and Honda N., Fuzzi events realized by probabilistic automata, Information and Control, 12, 284—303 (1966).
Nasu M. and Honda N., A context-free language wich is not acceptable by a probabilistic automata, Information and Control, 18, 233—236 (1971).
Swain P. H. and Fu K. S., Stochastic programmed grammars for syntactic pattern recognition, Pattern Recognition, 4, 83—100 (1972).
Suppes P., Probabilistic grammars for natural languages, Synthese, 22, 95—116 (1970).
Booth T. L. and Thompson R. A., Applying probability measures to abstract languages, IEEE Trans. Computers, C-22, 442—450 (1973).
Глава б
Стохастические языкидля синтаксического распознавания образов
Стохастические языки описания образов
Как было показано в разд. 5.1, наличие шума часто приводит к неоднозначности в лингвистических представлениях объектов. Кроме того, некоторые объекты могут появляться чаще других объектов того же класса. Для того чтобы моделировать структуру Множества объектов с более реалистических позиций, в работах [1—3] предложено при описании образов пользоваться стохастическими языками *). В случае неоднозначности, т. е. когда некоторая цепочка имеет два или несколько грамматических разборов, в качестве синтаксического описания этой цепочки можно взять, например, наиболее вероятный вывод, т. е. вывод, порождающий данную цепочку с наибольшей вероятностью Если цепочки £ ^ L (Gg), представляющие образы, и связанные с этими цепочками вероятности^p (ж) известны (или их можно оценить), то можно так вычислить или оценить вероятности правил подстановки, чтобы лолученная стохастическая грамматика Gs порождала данные цепочки приблизительно с исходными вероятностями. Кроме того, приписывание порождаемым цепочкам вероятностей может служить средством отсева «нежелательных» цепочек. Этим цепочкам можно приписать малые исходные вероятности так, чтобы получаемая в результате стохастическая грамматика с большой вероятностью ^порождала только желательные цепочки. Рассмотрим ряд наглядных примеров.
Пример. 6.1. На рис. 6.1 показан равносторонний треугольник и восемь его искаженных вариантов, а на рис. 6.2 —выбранные непроизводные элементы. Каждый треугольник описывается цепочкой длины 3. Предположим, что на основе априорных знаний или текущих исследований известны или могут быть оценены вероятности этих девяти треугольников. Например, эти вероятности
х) Этот подход появился совсем недавно. Поэтому в настоящее время его можно лишь продемонстрировать на ряде примеров. Для его теоретического обоснования необходимы дальнейшие исследования.
Рис. 6.1. Треугольники для примера 6.1.
Ь3 Ьг Ь^
^4 ^3 с2 С1
Рис. 6.2. Непроизводные элементы для примеров 6.1 и 6.2.
можно оценить Эта информация
по относительным частотам появления фигур, приведена в табл. 6.1.
Таблица 6.1
X
р (X)хр (х)
х^ = аЪ^ х% — ab^c^ #3 = ab^cg Х4 = ai>2ci Х5 = ab^c^
1/36х6 = аЬ2сз2/36
2/36х^ = аЬзс^3/36
3/36хз = аЬзс22/36
1/36^9 = а63сз1/36
21/36
Все указанные цепочки порождает стохастическая регулярная грамматика г) Gt = (Уш, Уть Ph S), где KN1 = {5, Ль А^
1) Процедура восстановления этой грамматики описана в разд. 7.5.
^4)7
уТ1 = {а,
Ьг, b2, b3, clt с2, с3} и Р,
1) S
> aAi,
8) А3—^си
2) А,
?2 к л
> btA2,
9) A3—L>c2,
3) Аг
Рз 7. Л » Ь2А3,
10) А3—^сз,
4) А,
р4 К Л
И) А4—
5) Аг
Р5 > С1,
12) А4—Ч>с2,
6) Аг
Рб > С27
13) А4—1>с3.
1) а2
Р?
> с3,
Из условий нормировки следуют уравнения
^1 = 1, Ра + Рз + р^ 1, P&-V Рв + Р7 = ^
Рз + Рз + Рю = 1? ^11 + ^12 + ^13 = !•
Для порождения цепочки x^ = ab1c1 нужны правила подстановки 1), 2) и 5), следовательно,
Р(^1) = Р1Р2^5 = 1/36.
Аналогично,
Р (я6) = Р1РзРю = 2/36, р (х^ = PiPiPh 3/36, Р (ж8) = Р1Р4Р12 = 2/36, р (ж9) = р!р4р13 = 1/36.Р (я6) = Р1РзРю = 2/36, р (х^ = PiPiPh 3/36, Р (ж8) = Р1Р4Р12 = 2/36, р (ж9) = р!р4р13 = 1/36.р(ж2) = р1р2р6 = 2/36, p(x3') = p1p2pi = 3j36,
Р (я6) = Р1РзРю = 2/36, р (х^ = PiPiPh 3/36, Р (ж8) = Р1Р4Р12 = 2/36, р (ж9) = р!р4р13 = 1/36.
Р (я6) = Р1РзРю = 2/36, р (х^ = PiPiPh 3/36, Р (ж8) = Р1Р4Р12 = 2/36, р (ж9) = р!р4р13 = 1/36.
Р<Х^ = ргр3р3=ЦЗЪ, р(^ = Р1РзРэ = 21/36,
Из уравнений р4 = 1, pip2(ps + pe + P7) = 1/36 + 2/364-3/36 = 1/6, Ps 4" Рб Ч~ Р7 — 1 получим р2=1/6, р5 = 1/6, р6=1/3, р7 = 1/2. Аналогично,
Рз — 2/3,р3 — 1/24,рэ — 21/24,р^ —1/12,
р4 = 1/6,ри = 1/2,р12 = 1/3,р13 = 1/6.
Грамматика GT с вычисленными вероятностями правил подстановки порождает цепочки в точности с теми же вероятностями, которые приведены в табл. 6.1.
Пример 6.2. На рис. 6.3. показан прямоугольный треугольник и восемь его искаженных вариантов. Если использовать непроиз-
водные элементы, показанные на рис. 6.2, а вероятности взять из табл. 6.2, то девять цепочек — описаний этих фигур — поро-
ab^ с4ab^ с4^0 ^3^0 ^3а.Ь^ сга.Ь^ сгab^ Сдab^ СдClbZ С%0^2 СдClbZ С%0^2 СдРис. 6.3. Треугольники для примера 6.2.Рис. 6.3. Треугольники для примера 6.2.^2 ^4^2 ^4
ab^ с4
ab^ с4
^0 ^3
^0 ^3
а.Ь^ сг
а.Ь^ сг
ab^ Сд
ab^ Сд
ClbZ С%0^2 Сд
ClbZ С%0^2 Сд
Рис. 6.3. Треугольники для примера 6.2.
Рис. 6.3. Треугольники для примера 6.2.
^2 ^4
^2 ^4
ждает стохастическая регулярная грамматика G2 = (VN2, Утг^г- S), где
^№ ^^ {^, ^1, ^i -^3» ^li Гт2 — {а, ^0, ^1» ^2, с2» с3, Q}
и Р2:
S-2-^аА^л 2/3 к лА 1/6 К А At> ^Аз,А 1/6 К А At> Ь^А^А ^24S-2-^аА^л 2/3 к лА 1/6 К А At> ^Аз,А 1/6 К А At> Ь^А^А ^24^2^21/12 >^3,1/12 >^3,А 2^24А>А 2^24А>А3> с^Л> ^3,А3> с^Л> ^3,A V6 ^43> с^Л4> с2,Л4> c3fА 1/6 л4>с4,A V6 ^43> с^Л4> с2,Л4> c3fА 1/6 л4>с4,
S-2-^аА^
л 2/3 к л
А 1/6 К А At> ^Аз,
А 1/6 К А At> Ь^А^
А ^24
S-2-^аА^
л 2/3 к л
А 1/6 К А At> ^Аз,
А 1/6 К А At> Ь^А^
А ^24
^2
^2
1/12 >^3,
1/12 >^3,
А 2^24
А>
А 2^24
А>
А3> с^
Л> ^3,
А3> с^
Л> ^3,
A V6 ^43> с^
Л4> с2,
Л4> c3f
А 1/6 л4>с4,
A V6 ^43> с^
Л4> с2,
Л4> c3f
А 1/6 л4>с4,
Заметим, что цепочки аЪхс^ аЪ^с^ аЪ^с^ и ab^c^ из табл 6.2 содержатся и в табл. 6.1. Будем считать, что объекты, описываемые цепочками из табл. 6.1, составляют класс (Oi, а объекты, описываемые цепочками из табл. 6.2 — класс со2. Тогда четыре объек-
Таблица 6.2
X
р (х)
X
Р (X)
ab^c^
1/36
ab^c^
1/36
ab0c3
2/36
аЬ^с^
2/36
ab^c^
21/36
ab^c3
3/36
ab^
1/36
ab^c^
1/36
abtc3
4/36
та аЬ^, аЪ^с^ ab^ и аЪ^ попадут сразу в оба класса. В детерминистском случае конечные автоматы (алгоритмы синтаксического анализа), синтезированные на основе грамматик 6?х и б?2, не смогут различить принадлежности этих четырех цепочек. Иными словами, эти цепочки будут допущены обоими автоматами. В подобных ситуациях для определения принадлежности объектов можно использовать идею дискриминантного подхода. В задаче распознавания существенную роль играет информация об условных вероятностях р (^/со^), t = 1, 2, цепочек, принадлежащих к каждому классу. Например, предположим, что распознаваемый объект представлен цепочкой ab^^. Предположим, что априорные вероятности классов равны (т. е. Р (to!) = Р (со2)). В данном случае р ^ЬуС^ | G^ = 2/36, а р (аЬгс2 | G^ = 1/36. По правилу максимального правдоподобия объект, представленный цепочкой аЪуС^ следует отнести к классу о)17 поскольку р (ab^ | G^^ > р (аЬгс4 | G^.
Поскольку в правиле классификации используются вероятности р (х | G^, их вычисление для каждой поступающей цепочки х становится важной задачей. В совсем простых случаях, как в примере 6.2, эту информацию в виде табл. 6.1 и 6.2 (которую легко вывести из двух соответствующих стохастических грамматик) можно непосредственно хранить в памяти распознающей системы. Необходимые для классификации данные можно находить при помощи процедуры «просмотр таблицы». Однако в общем случае число порождаемых грамматикой цепочек часто очень велико или бесконечно. Использование конечного представления вместо выписывания всех цепочек является как раз одним из преимуществ грамматики в описании структуры языка. В случае регулярных языков для распознавания можно синтезировать конечные автоматы. Например, при помощи описанной в разд. 5.3.1 процедуры можно построить стохастический конечный автомат 5а1> который воспринимает цепочки, порождаемые грамматикой Gx из примера 6.1. Этот автомат определен пятеркой
Sai = (2, Q, М, л0, F),
где
2 — {л, bVl b2l b3, q, с2л Сз}, Q = {5, Л1? Л2, Л3, Л4, Т, R^
F = {T}, л0 = [1, О, О, О, О, О, О]
и
"0
1
0
0
0
0
0“
"0
0
0
0
0
0
г
0
0
0
0
0
0
I
0
0
1 6
0
0
0
t
0
0
0
0
0
0
1
0
0
0
0
0
0
1
М(й) =
0
0
0
0
0
0
1
мм =
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
,0
0
0
0
0
0
1_
_0
0
0
0
0
0
1_
"0
0
0
0
0
0
г
‘0
0
0
0
0
0
г
0
0
0
2
3
0
0
3
0
0
0
0
Q
0
ъ
0
0
0
0
0
0
1
0
0
0
0
0
0
]
мм =
0
0
0
0
0
0
1
М(63) =
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
,0
0
0
0
0
0
1,
_0
0
0
0
0
0
"0
0
0
0
0
0
"0
0
0
0
0
0
1 ■
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
6
0
0
0
0
0
7
2
3
ММ =
0
0
0
0
0
1
2 4
2.1 2 4
, мм
=
0
0
0
0
0
2.1
2 4
3
2 4 *
0
0
0
0
0
1 2
2
0
0
0
0
0
1 3
0
0
0
0
0
0
1
0
0
0
0
0
0
1
,0
0
0
0
0
0
1
0
0
0
0
0
0
1
"0
0
0
0
0
0
1
’0“
0
0
0
0
0
0
1
0
0
0
0
0
0
7
1 2
0
ММ =
0
0
0
0
0
1_
1 2
J
1
:1 . 2
, лг =
0
0
0
0
0
0
1
(
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
_0_
Легко проверить, что
р (ab^1 Gt) = л0М (ай^) Яг = ло^ (л) М (6^ М (с2) лг — 2/36. Аналогично,
р ^аЪ^Сх | G^ = uQM (abiC^ лр = 1/36,
р ^abxc31 G^ = л0М (я^з) Лр = 3/36,
р (аЬ2с{ 1GJ = л0М (ab2c^ лр = 1/36, р (ab2c21G^ = я0М (ab2c2) Лр = 21/36,
р (ab2c31G^ = л0М (а&2с3) uF = 2/36,
р (аЬ3с{ | G^ = л0М (ab3c^ nF = 3/36,
р (ab3c21G^ = к^М (ab3c^ nF = 2/36,р (ab3c31G^ = л0М (ab3c3) лр = 1/36.
Для образов, описываемых бесконтекстными языками, требуется синтаксический анализ исходной цепочки (образа) по отношению к каждой грамматике Gt. После нахождения всех грамматических разборов можно вычислить вероятности р (я | G^ порождения цепочки ос каждой грамматикой. Если цепочка х не может быть порождена грамматикой Gj, то считают, что
Рис. 6.4* Блок-схема стохастического узнающего устройства, работающего по принципу максимума правдоподобия.Рис. 6.4* Блок-схема стохастического узнающего устройства, работающего по принципу максимума правдоподобия.
Рис. 6.4* Блок-схема стохастического узнающего устройства, работающего по принципу максимума правдоподобия.
Рис. 6.4* Блок-схема стохастического узнающего устройства, работающего по принципу максимума правдоподобия.
(6.1)(6.1)р (х | Gj) = 0. Затем применяют правило классификации по максимальному правдоподобию, т. е. относят представленный цепочкой х объект к классу о^, если
(6.1)
(6.1)
Р ^ | Gk^ = Мах ^р (х ] Gt^.G.
Грамматический разбор по отношению к грамматике Gk дает синтаксическое описание цепочки х. На рис. 6.4 показана блок-схема такого распознающего устройства. В более общем случае можно сформулировать правила классификации, учитывая известные априорные вероятности и (или) функции потерь, например решающее^ правило Байеса.
Пример 6.3. Рассмотрим грамматику, которая предназначена для описания «зашумленных» квадратов. Такие фигуры можно получать, например, на экране катодно-лучевой трубки вводного устройства или на табло фирмы RAND [4]. Благодаря некоторым ограничениям эта грамматика довольно проста, но интересна. Ограничения таковы.
Длина стороны квадрата является случайной величиной с геометрическим распределением'и со средним значением 1/а(0< <а< 1).
Стороны квадрата ориентированы по горизонтали и вертикали. Предполагается, что оператор «рисует» квадрат настолько аккуратно, что «шум» обусловлен в основном ошибкой квантования в аналого-цифровом преобразователе.
Эффект «улучшения качества действия при наблюдении цели», который способствует замыканию фигуры, когда она почти замкнута, не учитывается.
Эти упрощающие ограничения можно отбросить и сделать грамматику произвольно сложной. Однако данный пример в первую очередь рассчитан на демонстрацию следующих положений:
бесконтекстная программная грамматика (БПГ) может порождать относительно сложный язык непосредственно составляющих;
при помощи стохастической БПГ можно моделировать физический процесс со свойственными ему шумами;
общая вычислительная программа, моделирующая действие программных грамматик, является полезным средством разработки грамматик в режиме диалога.
Эта общая вычислительная программа для языков, порождаемых стохастическими БПГ, была написана для ЦВМ типа PDP-9 с графическим дисплеем модели 339. Исходными «данными» для этой программы служит конкретная стохастическая БПГ. Программа моделирует цепочки и выводит на дисплей некоторую графическую интерпретацию процесса порождения. Возможность порождения цепочек и вывода на дисплей позволяет наблюдать действие грамматики, улучшать ее и качественно оценивать ее стохастические свойства.
Для данного примера был использован язык с остатками ).
В табл. 6.3 приведена стохастическая БПГ, а на рис. 6.5 — типичный пример «зашумленного» квадрата. Вероятности пере-
ходов были выбраны, исходя из «разумных соображений». При наличии уже проанализированного в рамках данной грамматической модели «обучающего множества» эти вероятности можно
Рис. 6.5. Типичный «зашумленный квадрат». Масштаб ~1,6 мм на клетку растра; а = 0,05, 0 = 0,05.
было бы подобрать в лучшем соответствии с физическим процессом.
Таблица 6.3
Стохастическая грамматика для описания «зашумленных» квадратов
Gsp-^N, Ит, Р, 5, /), где
Pn = {S, F, X, Q, Л, М, W, С. Е, R, Т. В, V}, VT = { —, 0, +, *, $},
J = {1, 2, ..., 37}
и
0: отрезок единичной длины в направлении данной стороны
+• отрезок единичной длины с наклоном 4-1 по отношению к данной стороне
—: отрезок единичной длины ♦ : угол (изменение направления на 90°)
$ : ограничитель остатка (только для окончательной цепочки)
Метка
Ядро
Список переходов при успехе и вероятностипри
переходов
Список переходов неудаче и вероятности переходов
1
S^FXVQ
{2, 4, 7}, {1 - 2а, а, а}
{0},{1}
2
F->QFA
(3},{1)
{0}, {1}
3
Х-^ХХХ
{10}, {1}
{0},{1}
4
F-* + F4
{5},{1}
{0},{1}
5
м->ххх
{Ю}, {1}
{6},{1}
6
Х-> WXX
{Ю}, {1}
{0MD
7
F-^-FA
{8},{1}
{0},{1}
8
W-+XXX
{Ю}, {1}
{9}, {1}
9 .
Х-^МХХ
{Ю}, {1}
{0},{1}
10
IV->W
{2, 4,l,\^APi,Pi,P3,^
{Н}, Ш
И
М->М
{2,4, ПЛ^АРъР^Рг^
MAIATsAp^p^
12
F^*F
{13}, {1}
{0},{1}
13
Q^R
{16}, {1}
{14}, {1}
14
R->S
{16}, ш
{15}, {1}
15
S-^T
{16}, {1}
{36}, {1}
16
B->A
{16}, {1}
{17}, {1}
17
A->B
{18}, {1}
{20}, {1}
18
E->C
{17}, {1}
{19}, {1}
19
V-^CV
{17}, {1}
{0},{1}
20
w-^x
{21}, {1}
{22}, {1}
21
C->E
{20}, {1}
{0},{1}
22
M->X
{23}, {1}
{25,26,29}, {1 - 2а, а, а}
23
E->C
{22}, {1}
{24}, {1}
24
V-^CV
{22}, {1}
{0},{1}
25
F->^F
{32}, {1}
{0},{1}
26
F-+VF
{27}, {1}
{0}, {1}
27
M^X
{32}, {1}
{28}, {1}
28
X->W
{32}, {1}
{0},{1}
29
F->—F
{30}, {1}
{0},{1}
30
W->X
{32}, {1}
{31}, {1}
31
X-^M
{32}, {1}
{0},{1}
32
C-+E
{33}, {1}
{0},{1}
33
C-^C
{34}, {1}
{12}, {1}
34
W-^W
{25, 26, 29}, {1 - а - а2, а2, а}
{35}, {1}
35
M-^M
{25, 26, 29}, {1 — а — а2, а, а2}
{25, 26,29}, {1 -2а, а, а}
36
T->^
{37}, {1}
{0}, {1}
37
F->F
{0},{1}
{0},{1}
Квадрат на рис, 6.5представлен цепочкой,—
-000000000 -00Ч—000000+000000000004-0000* 00000 - 00000000000000000000000000000000* 00+ 000000000000000 - 00 + 000000000 - 0000000* 0000000000000000000000 + 000000000000000*$ (остаток опущен) ЗЭесь p^Va-aW^, Рг = а\\-р\Рз = а(1-^/>4 = (1-2а)(1->8).
Пример 6.4. Этот пример служит иллюстрацией другого применения стохастических БПГ в описании образов. Следующие три грамматики предназначены для описания изображений равноплечных, неравноплечных и акроцентрических хромосом (см. рис. А.2). Они построены, исходя из эвристических соображений, связанных с тем, чтобы ^избежать неоднозначности и порождения некоторых нежелательных объектов такого типа, как показано на
Рис. 6.6. Нежелательные изображения хромосом
рис. 6.6. Данные о применении бесконтекстных грамматик при описании изображений хромосом содержатся в приложении А.
Вероятности переходов в этих трех грамматиках определяют распределения вероятностей изображений хромосом каждого из трех классов. Грамматики построены так, что некоторые неравноплечные хромосомы рассматриваются как искаженные или зашумленные варианты акроцентрических, а равноплечные и акроцентрические хромосомы — как искаженные варианты неравноплечных. Поэтому вероятности (pim, . . ., p4m, Pis, . . . . . ., p7s, pla, . . ., /?5а) выбраны так, чтобы 1) равноплечные хромосомы чаще порождались грамматикой Gm, чем Gs или G^ 2) неравноплечные чаще порождались грамматикой Gs, чем Gm или Ga и 3) акроцентрические чаще порождались грамматикой Ga, чем Grn или Gs.
Равноплечные хромосомы описываются грамматикой
^т — (Гтт> VNm, /т, Рт, S'), где
Утт = Vai Ь, с, d},
где а, 6, с и d — непроизводные элементы, показанные на рис. А.1,
Икт = {5, А. В, С. D^ Jm = {1, . . ., 25},
а Рт определены следующим образом:
Метка
ЯдроU
1
8 —>АВС2
1
2
А —> сА3
1
3
В ВсВ4, 10
Pim? 1 Р1т
4
С—> СЬ5
1
5
А—>ЬА6
1
6
B-^Db7
1
7
B—*bD8
1
8
D—» В9
1
9
D—>B4, 10
Ргт? 1 Ргт
10
А —> аАИ
1
11
С-^Са12
1
12
В —» Da13
1
13
В —> aD14
1
14
D—» В15
1
15
D—>В16, 22
Рзт» ^ — Рзт
16
А—^ А17
1
17
С-^СЬ18
1
18
B—^Db19
1
19
В —* bD20
1
20
D—»В21
1
21
D—*B22, 16
Р4т» 1 — Р4т
22
А—» В23
1
23
С—> Ь24
1
24
В —* db25
1
25
B—>bd0
1
Неравноплечные хромосомы описываются
грамматикой
Gs = (^ts, Vns, Л, ^s, S),
где VTs
= Итт» ^ns = ^S, A, 5}, Js = {1,
. .20}, а Ps опре-
делены
следующим образом:
Метка
ЯдроU
P(U)
1
S-^AB2
1
2
А —> с А3,5
P1S1 1 — Pls
3
А—*ЪА4
1
4
В—^ВЬ3, 5
P2Si 1 — P2S
5
А —> аА6
1
6
В—* Ва7
1
7
А-^ЬА8
1
Продолжение
Метка
Ядро
и
РФ)
8
В
—^въ
7, 9
PSs, 1—Pss
9
А
-^dA
10
1
10
А
—>Bd
11
1
И
А
—>ЬА
12
1
12
В
—>вь
11, 13, 17
Pis, РбЗ, ^ — P4S — P5S
13
А
-—> а А
14
1
14
В
—> В а
15, 19
Pes, 1 Pes
15
А
—> ЪА
16
1
16
В
->вь
15, 19
P7s, 1— P7s
17
А-
—> а
18
1
18
В
—> са
0
1
19
А-
-» b
20
1
20
В-
—> сЪ
0
1
Акроцентрические хромосомы описываются грамматикой
Ga = (VTa, PNa, J a, Ли 8),
где Ут a = ^Tmi ^Na — {S, A, B}
, *^а — {1, • • •» 18}, а Ра
определены
следующим образом:
Метка
Ядро
и
р^
1
5—>
АВ
2
1
2
А—>
с А
3
1
3
А —>
аА
4
1
4
в—>
В а
5
1
5
А—>
ЪА
6
1
6
в—>
ВЪ
5, 7
Pla, 1—Pia
7
А —>
dA
8
1
8
В—>
Bd
9
1
9
А—>
ЪА
10
1
10
В—>
ВЪ
9, И,
15Р2а, Рза» 1 — Рга —
Рза
11
А —»
аА
12
1
12
В—>
Ва
13, 17
Р4а, 1 — Р4а
13
А —>
ЪА
14
1
14
В—>
ВЪ
13, 17
Р5а, 1 —Рба
15
Л—>
а
16
1
16
В—>
са
0
1
17
А —>
Ъ
18
1
18
В—»
cb
0
1
Оценка вероятностей правил подстановки
В этом разделе описаны процедуры оценки или восстановления вероятностей правил подстановки по данной характеристической (нестохастической) грамматике и по выборочной информации об объектах. Эта информация обычно состоит из множества отличных друг от друга^цепочек и их вероятностей. Вероятности этих цепочек могут быть результатом оценки или присвоены субъективно.
Пусть выборочная информация задана в виде
St = {Un /1), . . Un Л)}.(6.2)
где /^ — оцененная или субъективная вероятность х) цепочки хк* Далее рассматриваются две процедуры оценки [5, 6].
Оценка для одного класса
В этом случае информация о грамматике, порождающей каждую ^выборочную цепочку, известна. Поскольку эти цепочки порождаются одной и той же грамматикой, задача состоит в оценке вероятностей для одного класса (т. е. для одной грамматики). Пусть задана характеристическая бесконтекстная грамматика
G = (FN, Ft, Р. 8^
а рц — вероятность правила подстановки
^z Л?, Аг £ FN, т|7- £ (FN U FT)+.
В качестве модели стохастической бесконтекстной грамматики можно взять случайный ветвящийся процесс Гальтона — Уотсона. Поэтому при восстановлении вероятностей правил подстановки можно воспользоваться теорией статистических выводов для марковских процессов [7]. Пусть р^ —восстановленные или оцененные вероятности, a St ^ L (G), где St = {^1? . . ., xtY Тогда оценка вероятности р^ по максимуму правдоподобия равна
Ри=^-.(6.3)
3
где Пц — математическое ожидание числа вхождений правила подстановки At -> цу в грамматические разборы всех выборочных цепочек из множества St:
пц = 2. Ы^и (х^.(6.4)
т) Если нужно убрать нежелательные цепочки, то эти вероятности обычно назначают.
Величина Nt, (xk) представляет собой число вхождений правила ^ _> т|у в грамматический разбор цепочки хк. Подставляя равенство (6.4) в (6.3), получим
<6'5>
На рис. 6.7 показана блок-схема такой системы восстановления вероятностей правил подстановки.
Рис. 6.7. Блок-схема системы восстановления вероятностей правил подстановки для одного класса.
Можно показать [5], что при t-^oo оценки ptj стремятся к вероятностям Ри^ если выполнены следующие два условия:
При t-^ оо выборочное множество St приближается к языку L (Gy
При t —>- оо оцененные или субъективные вероятности fk выборочных цепочек хк приближаются к истинным их вероятностям р (хку
Значения всех вероятностей рц вычисляются по соответствующим значениям Пц. Если на каком-то последующем этапе требуются лучшие оценки, основанные на рассмотрении большего числа выборочных цепочек, то для их получения необходимо хранить от предыдущего этапа только значения п^. Грамматический разбор всех использованных ранее цепочек не нужен. Пусть значения пц (f) вычислены по формуле (6.4) для выборки St. Если к-этой выборке добавить новую цепочку, то величину п^ (t + 1) можно вычислить по рекуррентной формуле
^J (^ +1) = пц (t) + Nd (xt^ fH1.(6.6)
Для иллюстрации применения процедуры оценки вероятностей Для одного класса рассмотрим следующий пример.
Пример 6.5. Пусть задана стохастическая грамматика источника Gs = (FN, Ft, PS1 Sy где FN = {Лп Л2}, FT = {а, 6,
с, d), S = {Л,}, и Ps:
л °’2 их лл °-8Ai> dA^л °’2 их лл °-8Ai> dA^А °*9А2> а,А2 -°’-* > сАг.А °*9А2> а,А2 -°’-* > сАг.
л °’2 их л
л °-8
Ai> dA^
л °’2 их л
л °-8
Ai> dA^
А °*9
А2> а,
А2 -°’-* > сАг.
А °*9
А2> а,
А2 -°’-* > сАг.
Эта грамматика согласована и не порождает неоднозначностей.
Рассмотрим три выборки соответственно из 10, 100 и 200 цепочек, порожденных этой грамматикой. Эти цепочки и их численность в каждой выборке представлены в табл. 6.4. Хотя грамма-
Таблица 6.4
Выборочные цепочки для примера 6.5
Число вхождении цепочки в выборку
Выборочная цепочка
10
100
200
Истинная вероятность цепочки
bada
1
9
27
0,12960
da
8
77
146
0,72000
badca
1
2
4
0,01296
dca
6
11
0,07200
bccabadca
1
1
0,00002
bcada
2
2
0,01296
bcababada
1
1
0,00042
babada
2
5
0,02333
bcabcada
1
0,00023
dcca
1
0,00720
bcabada
1
0,00233
тика порождает бесконечное множе го цепочек, в выборке объемом 200 присутствует всего лишь И разных цепочек. В качестве оценок вероятностей этих цепочек используются их частоты. Обозначим Gs = (FN, Ft, PsS), где FN —{А, Л2}, FT = {a, 6, c, d^ S = Mi}, a PV
а ри 7 * aa p2i
Ai> 0^1224^,/I2^>
A P12, AA P22 A
Ai> dA2lA2>cA2i
грамматику, для которой нужно оценить вероятности правил подстановки. При вычислении значений ptj для данной выборки по формуле (6.5) вместо величины fk можно пользоваться числом
вхождений соответствующей цепочки хк в выборку. Результаты оценки таковы:
Оценка вероятности правил подстановки
Размер выборки
Истинные вероятности
10
100|
200
PH
0,16667
0,18033
0,20635
Рн = 0,2
Р12
0,83333
0,81967
0,79365
Р12 = 0,8
Доверительный уровень
78%
60%
80%
ДЛЯ P1J
Р21
0,92308
0,89706
0,90648
р21 = 0,9
Р22
0,07692
0,10294
0,09352
Р22” 0,1
Доверительный уровень
79%
90%
72%
ДЛЯ P^j
Если субъективные вероятности цепочек назначаются (например, «учителем»), то из 200 цепочек можно использовать толь- но 11 разных. Возьмем в качестве субъективных вероятностей этих 11 цепочек их истинные вероятности, т. е. положим в равенстве (6.5) tk = Р ^kY В этом случае результаты оценки таковы:
лЛГ U/OVYtC р ООЮиМПЦ/„
'Оценка вероятности __ Истинные
правил подстановки3я7 7вероятности
Ри
0,142
0,173
0,175
0,2
Р12
0,858
0,827
0,825
0,8
Р21
' 0,987
0,923
0,911
0,9
Л 2
0,013
0,077
0,089
0,1
Легко проверить, что грамматика G's также согласована (см. разд. 5.2.2). Для этого простого примера оценки вероятности Йравил подстановки можно получить, решив систему нелинейных Уравнений, связывающих эти вероятности с оцененными или субъективными вероятностями цепочек (см. пример 6.1). Однако, если в грамматике много правил подстановки или выборка St велика, этот метод уже не дает столь легкого решения.
Оценка для многих классов
Если о выборочных цепочках известно только то, что они Дорождены бесконтекстными грамматиками Gv G^ . . ., Gmi то Д°жно применить следующую процедуру оценки. Пусть
- Gq = (VNq1 VTq, Pq, Sq). g = 1, ..„m,(6.7)
и множество выборочных цепочек S^L, где L = J ^ (Gq\ Блок- q
схема системы восстановления вероятностей правил подстановки показана на рис. 6.8. От «учителя» поступает информация о значениях вероятностей Р (Gq | ^) того, что данная цепочка хк принадлежит классу toq (или порождена грамматикой Gq\ k = 1, . , . . . ., ^; q — 1, . . ., т, причем
(6.8)(6.8)(6.9)(6.9)2 Р(£дЫ = 1.
(6.8)
(6.8)
(6.9)
(6.9)
9=1
Тогда для грамматики Gq
nqij — 2 th? (pq I xh) ^qij (xkhxk^t
где nqij — математическое ожидание числа использований правила Аг -^Ц; из Pq в грамматическом разборе всех выборочных цепо-
MWb..
. хЛ.р^х^
(xv...,xn)..}.(xv...,xn)..}.Оценка вероятности цепочкиОценка вероятности цепочки*- Учитель*- УчительНазначение субъективных вероятностейНазначение субъективных вероятностей{(X^P^IXi)),...•■МЛЖМ}{(X^P^IXi)),...•■МЛЖМ}назначение вероятностей классовназначение вероятностей классов^1^1G2G2GrGr{(X1)fbP(Gmlx1)))..." Лх^ЪуРЫх^)} системы оценки Вероятностей правил подстановки для одного класса{(X1)fbP(Gmlx1)))..." Лх^ЪуРЫх^)} системы оценки Вероятностей правил подстановки для одного класса
(xv...,xn)..}.
(xv...,xn)..}.
Оценка вероятности цепочки
Оценка вероятности цепочки
*- Учитель
*- Учитель
Назначение субъективных вероятностей
Назначение субъективных вероятностей
{(X^P^IXi)),...
•■МЛЖМ}
{(X^P^IXi)),...
•■МЛЖМ}
назначение вероятностей классов
назначение вероятностей классов
^1
^1
G2
G2
Gr
Gr
{(X1)fbP(Gmlx1)))...
" Лх^ЪуРЫх^)} системы оценки Вероятностей правил подстановки для одного класса
{(X1)fbP(Gmlx1)))...
" Лх^ЪуРЫх^)} системы оценки Вероятностей правил подстановки для одного класса
Рис. 6.8. Блок-схема системы восстановления вероятностей правил подстановки для многих классов.
чек, a Nqij (xk) — число использований правила Аг -^Ц; в грамматическом разборе цепочки х. Оценка вероятности правила Аг ->r]j, соответствующая максимуму правдоподобия, имеет вид
Pqtj—Pqtj—(6.10)(6.10)nq г j
Pqtj—
Pqtj—
(6.10)
(6.10)
2 п^з
з
Предположим, что при росте объема выборки t выполнены следующие условия:
множество St приближается к языку Ц
«учитель» правильно назначает вероятность Р (Gq | х^ каждой цепочке хк и грамматике Gq;
оцененная или субъективная вероятность fh цепочки жь приближается к истинной ее вероятности р (жй), где
m
2 p(^|Gg)P(Gg).(6.11)
9=1
Можно показать, что при t -> оо и при выполнении этих условий оценки pqij приближаются к истинным вероятностям pqlj [5, 6].
Случайные величины п^ в формуле (6.3) или nqij в формуле (6.10) имеют мультимодальные распределения вероятностей рц или рчи соответственно. Доверительный интервал оценки, характеризующий качество приближения, можно оценить по критерию %2. Обращаясь к формуле (6.3), получим
М (2 ni^tPij — Pii)2
%2 = 3—^•(6-12)
5=1Ptl
В выражении (6.12) используется распределение %2 с М—1 степенями свободы, где М — число правил подстановки с символом At в левой части. Иллюстрацией применения этой процедуры оценки для многих классов служит следующий пример.
Пример 6.6. Рассмотрим три стохастические грамматики источника 3)
^sl —(^N> Ит, Psl» ^)) ^s2 = (^N, ГТ, Ps2> S'),
Gs3 = (rN,7T, Ps3,S),
где PN - {5, A, By PT = {a, 6} и
P^P'D^ PS2-(P^2), PS3 = (M3),
р
Di
02
Оз
S аВ
0,5
0,8
0,2
S-^bA
0,5
0,2
0,8
А-^а
0,9
0,7
0,7
A-^aS -
0,05
0,2
0,05
А-^ЬАА
0,05
0,1
0,25
В-^Ь
0,9
0,7
0,7
B^bS
0,05
0,05
0,2
В-^аВВ
0,05
0,25
0,1
т) Следует отметить, что эти три стохастические грамматики имеют одну и ту же характеристическую грамматику, которая является* объединением трех индивидуальных характеристических грамматик. Грамматики отличаются только значениями вероятностей правил подстановки.
Все три грамматики согласованы и не порождают неоднозначностей.
Пусть вероятности Р (Gsl) = Р (G^ = Р ^G^ = 1/3.
В табл. 6.5 приведены цепочки из выборок объемом 10, 100 и 200.
Таблица 6.5
Выборочные цепочки для примеров восстановления вероятностей правил подстановки для многих классов
Цепочка
Число вхождений цепочки в выборку
Истинная вероятность цепочки
10
100
200
1
abab
1
2
5
1,346 х 10-2
2
ba
5
41
79
3,790 X 10"1
3
aabb
1
8
14
4,148 X 10"2
4
ab
2
36
74
4,210 х 10"1
5
bbabaa
1
2
2
4,091 X 10" 3
6
abbbaa
1
1
1,154 X 10-3
7
bbaa
5
9
3,266 X 10" 2
8
abaabb
1
1
1,507 X 10-3
9
baab
1
1
1,346 х 10" 2
10
bbaaba
1
1
1,154 х 10-3
11
bhbbaaaaba
1
1
2,509 х 10" 5
12
bbbaabaa
1
1
6,351 х 10
13
babbaa
1
1,154 х IO"3
14
aaabbb
1
5,737 х 10-3
15
aabaabbabb
1
3,691 х 10"5
16
baaaabbb
1
2,226 X 10-*
17
abba
1
1,178 х 10"2
18
aababb
2
5,737 х 10" 3
19
aabbaaaabbbabb
1
2,537 х 10" 7
20
bbaababa
1
4,329 х 10"5
21
bbbabababaabaa
1
7,391 х 10"7
22
aabbba
1
8,607 х 10"4
В качестве субъективных вероятностей положим fk=P (^kY При этом
р^р^Ж) и РШ)= р^ ~
9=1
Результаты оценки приведены в табл. 6.6.
Таблица 6.6
Истинная вероятность
Объем выборки ^
Истинная вероятность
Объем выборки ‘
Истинная вероятность
Объем выборки
• 10
100
200 .
10
100
200
10
100
200
I. Оценкой вероятности цепочки служит ее частота
(число вхождений, в выборку)
S-^aB
0,5
0,411
0,466
0,483
0,8
0,806
0,802
0,817
0,2
0,130
0,154
0,164
S—► ЬА
0,5
0,589
0,937
0,534
0,517
0,2
0,194
0,198
0,183
°,8
0,870
0,846
0,836
А-*а
0,9
0,900
0,911 0,020
0,7
0,875
0,797
0,779
0,7
0,704
0,689
0,685
A-^aS
0,05
0,00
0,020
0,2
0,00
0,078
0,120
0,05
0,25
0,00
0,035
0,057
А^ЬАА
0,05
0,063
0,080
0,069
0,867
0,1
0,125
0,125
0,101
0,296
0,276
0,258
В—* b
0,9
0,749
0,880
0,7
0,692
0,775
0,698
°,7
0,704
0,725
0,700
B-*bS
0,05
0,158
0,044
0,056
0,05
0,127
0,051
0,174
0,064
0,2
0,189
0,186
0,178
В-*аВВ
0,05
0,093
0,076
0,077
0,25
0,181
0,238
0,1
0,107
0,089
0,122
^.Вероятности цепочек назначаются
в соответствии со значениями pfa)
S-*aB
0,5
0,522
0,511
0,511
0,8
0,833
0,808
0,810
0,2
0,218
0,198
0,212
S-*bA
0,5
0,478
0,489
0,489
0,2
0,167
0,192
0,190
0,8
0,782
0,802
0,788
А-*а
0,9
0,996
0,934
0,934
0,7
0,990
0,824
0,824
0,7
0,947
0,840
0,838
А^ aS
0,05
0,00
0,022
0,026
0,2
0,00
0,115
0,116
0,05 0,25
0,00
0,010
0,014
А-*ЬАА
0,05
0,004
0,044
0,044
0,1
0,010
0,061
0,060 0,816
0,053
0,150 0,895
0,148
В—> b
0,9
0,941
0,940
0,914
0,7
0,866.
0,862
0,7
0,915
0,786
0,150
B-*bS
0,05
0,021
0,023
0,042
0,005 0,025
0,028 0,110
0,030
0,2
0,031
0,052 0,053
В^аВВ
0,05
0,038
0,037
0,044
0,25
0,109
0,154
0,1
0,054
0,064
Класс 1
Класс 2
Класс 3
6.3. Примеры стохастического синтаксического анализа
В этом разделе дано несколько иллюстраций стохастического синтаксического анализа (см. разд. 5.5 и 5.6).
Пример 6.7. Рассмотрим стохастические бесконтекстные грамматики описания неправильных (с двумя центрами) и правильных изображений хромосом
<?г=(7ю Ут, Psi,S), i = l, 2,
где yN = {Wp Лг2, . . ., TV23}, Ут = {«, b, е, f, g, h, k, m, z, p, q},8 = (ЛМ и PS1 = (P, D^ Pa2 = (P, D^,
Р
Di
d2
P
Di
d2
Wi N3N3N,tN3
0,656
0,552
N5 -*Nle
0,5
0,970
Hi -+n2n3n2
0,031
0,431
N5 -*Nn
0,5
0,030
NiN2N3N^N^N2
0,312
0,017
Ns ->-Ni6
l,2-10~7
2,9-10-7
Hi -*N5N6
1,0
1,0
Ni6^g
1,0
1,0
N3 -*NiNe
1,0
1,0
Nn^h
1,0
1,0
#2 -*fNe
1,0
1,0
Nig-^k
1,0
1,0
14-086
Продолжение
p
Di
Di
P
Di
Da
n8
m
0,656
0,233
Ni ->^19
0,047
0,767
^8
-^z
0,344
0,767
Ni -> N^o
0,953
0,233
we
-*n9
0,482
0,832
Ni^qN^q
0,166
0,011
N6
-*Nio
0,219
0,014
Wig -> qN^q
0,166
0,011
Ng
-*Nn
0,150
0,005
N^->qN^q
0,003
0,337
Ne
^N12
0,150
0,150
N^ -> qN^q
0,666
0,640
n9
-*bN10b
0,391
0,883
N^ -** bN23b
0,656
0,948
N9
bNub
0,0086
0,011
N^ —>• ЬК^Ф
l,5.10"7
1,7-IO*7
n9
-> ЬМ1йЬ
0,190
0,100
N^ —>• bN^\b
0,016
0,017
n9
-»• bN9b
0,431
0,006
N 24 —> bN^*^
0,328
0,034
Na
->Niob
0,999
0,999
N^-> N^b
0,774
0,269
Na
-Nub
2,3-IO-7
3,3-10*6
-^22 ”** -^22^
0,226
0,730
Ni2
-*^10
0,955
0,518
Nao->pN^p
0,492
0,038
N12
^bNi9
0,045
0,482
N^o -> pN22P
0,016
0,924
Nio
^Nto
1,0
1,0
N^q-^ pN 23P
8,1-10-8
3,7-10-8
Ni3
-*NU
3,6-10-8
4,8-10-8
-^20 -*■ PN^P
0,492
0,038
Ni3
->Nt5
0,999
0,999
-^21^^23
0,747
0,601
Nn
e
1,0
1,0
N^bN^
0,253
0,398
N15
-> a
1,0
1,0
N^3->N8
1,0
1,0
На рис. 6.9 показаны типичные примеры изображения хромосом, маркированные символами непроизводных элементов. Грамматики Gt представлены в форме грамматик с предшествованием Вирта — Вебера. Применяя описанную в разд. 5.5 процедуру стохастиче-
Рис. 6.9. Неправильная хромосома (а) и правильная хромосома (б). (Буквамиобозначены непроизводные элементы.)
ского синтаксического анализа, получим следующие результаты классификации [6]:
Выборочная цепочка
Машинная классификация
Истинная классификация
fbebqzqbbbbebbpbzbbbpbeb
Правильное
Правильное
fbabbbqbmbbqbagabqzbqbbbbabb
Правильное
Правильное
fbbabbpbmbpbahabpbmpbbbabb
Неправильное
Неправильное
fbabpmbbbbpbbbbabqbzbqbab
Правильное
Правильное
fabbbbpmbpbbahabpbbmbpbab
Правильное
Правильное
fbabpbzbbbpakagabpbbbzpbab
Неправильное
Неправильное
fbbaqmbqbbbabbbbpmbbbpbab
Правильное
Правильное
fbbabbpbzpbabbpbbmbbbpbbab
Правильное
Правильное
fbabbbbbqzqagab bpzbbpbabb
Правильное
Правильное
fbabqzqbbbbabgbaqbzbqbbab
Правильное
Правильное
fbbabbbqbmqabgbabbqbmbqbab
Правильное
Правильное
fbabbqbzbqbabqbzbqbbabb
Правильное
Правильное
fbbaqzbbqbbbabgaqmqbbbbabb
Правильное
Правильное
fbbabbbbmbpbagabpmpbbbabb
Правильное
Правильное
fbbabbqmbbqagaqmbbqbbbabbb
Неправильное *
Правильное
fbaqbzbqbbbaqmbbbqbbbab
Правильное
Правильное
* Звездочкой помечена ошибка классификации.
Последующие примеры 6.8 и 6.9 посвящены демонстрации синтаксического анализа для стохастических БПГ с фиксированной (или чистой) и со случайной стратегией (разд. 5.6). Для оценки качества синтаксического анализа используются две разные стохастические грамматики [9].
Пусть Gsp — согласованная стохастическая БПГ. Среднее число шагов, необходимых для распознавания языка L (Gsp), составляет
М = 2 Р М п kxY
^UG^x
где р (я) — вероятность того, что цепочка х порождена грамматикой Gsp, а п (ж) — число шагов, необходимых для распознавания этой цепочки. Эмпирическое среднее число шагов, нужных для распознавания множества из N цепочек {^т, . . ., ^N} при условии, что грамматика Gsp порождает их статистически независимо, составляет
г=1
где MN ->■ М при N оо.
Пример 6.8. Рассмотрим стохастическую БПГ для описания арабских цифр рубленого шрифта Gt = (PN, VT, J, Ps, S), где Fn - {5, А, В. C, D, E, F}, VT = {a, b. c. d. e, f, g, h}, J = = {1, 2, . . ., 27}, a Ps заданы следующим образом:
Метка
Ядро
и
P(t7)
1
S СПАВ
2, 3
0,9; 0,1
2
C-^cF
3, 4
0,77; 0,23
3
F-^c
5, 7
0,71; 0,29
4
F^g
6, 8
0,5; 0,5
5
9, 13, 20
0,6; 0,2; 0,2
6
D^d
10
1,0
7
D-^h
11, 20
0,5'; 0,5
8
D-^K
12
1,0
9
A-^aE
14, 17
0,67; 0,33
10
A-^aE
16
1,0
И
A-^aE
17
1,0
12
A-^ aE
15
1,0
13
A-^eE
16
1,0
14
E-^ab
18, 22
0,5; 0,5
15
E -^ab
19
1,0
16
E-^eb
19
1,0
17
E-^b
22
1,0
18
B-^gd
0
1,0
19
В ->cd
0
1,0
20
A-^e
21
1,0
21
B-^f
0
1,0
22
B-^c
0
1,0
23
C-^gF
24
1,0
24
F-^c
0
1,0
25
D-^d
26
1,0
26
A-^eE
27
1,0
27
E -^ab
18, 22
0,5; 0,5
Здесь {a, bs c, d, e, f, g, h} — множество начальных элементов, показанное на рис. 6.10, а. Грамматика Gt порождает множество арабских цифр, показанное на рис. 6.10,6, причем вероятности порождения каждого знака почти одинаковы г).
Пусть G2, G^ G^ G5 hG6 — стохастические БПГ, полученные из грамматики GT перестановкой меток в каждом правиле перехода. Характеристики недетерминированных алгоритмов синтак-
х) Стохастическая БПГ для этого примера построена Б. К. Бхаргавой из Университета Пардью.
сического анализа, построенных в соответствии с грамматиками Gv • • •’ ^6? а также характеристика алгоритма стохастического
ccdaab cchef gcdeabgdccdaab cchef gcdeabgdccdeebcd cchabccdeebcd cchab
ccdaab cchef gcdeabgd
ccdaab cchef gcdeabgd
ccdeebcd cchab
ccdeebcd cchab
aЛинииaЛинии55cghaabcdcghaabcd
a
Линии
a
Линии
5
5
cghaabcd
cghaabcd
g
e
Пробелы
ca)(6)
Рис. 6.10. (а) Множество непроизводных элементов; (б) Арабские цифры и ихописания (пример 6.8).
- синтаксического анализа по случайной стратегии показаны на рис. 6.11. Недетерминистский алгоритм анализа, построенный для
5 6 -
■ G1 Стохастический алгоритм синтаксического анализа по случайной стратегии х G1 Стохастический алгоритм синтаксического анализа по фиксированной стратегии о 62
4 - a G3
• ^4
^5
JIIIIIIII—
50100150200250
Рис. 6.11. Характеристики синтаксических анализаторов для примера 6.8.
грамматики GT, является стохастическим алгоритмом синтаксического анализа по фиксированной стратегии. Эти данные получены Для 250 цепочек, статистически независимо порожденных грамматикой | Gv
Пример 6.9. Рассмотрим стохастическую БПГ, описывающую прямоугольники:
Gx - (7n, Ft, J, PS1 S),
где PN = {5, А. В, C, D^ PT - ^ b, c, d}, J = {1, 2, . .9),
a Ps определены следующим образом:
Матка
Ядро
и
Р(У)
1
S -> ABCD
2, 4, 6
0,4; 0,4; 0,2
2
А-^аА
3
1,0
3
С-^сС
2, 4
0,7; 0,3
4
В-^ЪВ
5
1,0
5
D-^an
4, 6
0,5; 0,5
6
А-^а
7
1,0
7
В^Ъ
8
1,0
8
С-^с
9
1,0
9
D^d
0
1,0
Здесь {a, b, с, d} — множество непроизводных элементов, показанное на рис. 6.12, а. Легко показать, что грамматика бд действительно порождает некоторое множество прямоугольников. Некоторые из них приведены на рис. 6.12, б.
Пусть G2, G3i G4i G5 и G6 — стохастические БПГ, полученные из грамматики Gx перестановкой меток в каждом правиле перехода. Характеристики недетерминированных алгоритмов синтаксического анализа для грамматик Gv . . ., G6 и алгоритма синтаксического анализа по случайной стратегии показаны на рис. 6.13. Недетерминированный алгоритм синтаксического анализа для грамматики GT является стохастическим алгоритмом анализа по фиксированной стратегии.
Данные для примеров 6.8 и 6.9 соответствуют предположению; что стохастическому алгоритму синтаксического анализа по фиксированной стратегии необходимо по крайней мере среднее число шагов, чтобы распознать язык, определенный заданной стохастической БПГ. Кроме того, для распознавания языка, порождаемого данной стохастической БПГ, стохастический алгоритм синтаксического анализа по случайной стратегии требует в среднем меньшего числа шагов, чем некоторые недерминированные алгоритмы.
Пример 6.10. Описанная в разд. 6.10 процедура стохастического синтаксического анализа была применена к задаче классификации изображений хромосом, порождающие грамматики которых даны в примере 6.4. Распознавание осуществлялось по критерию максимального правдоподобия (рис. 6.4)-. Вероятности пра-
abed
aabbbbbbbccddddddd
Рис. 6.12. Множество непроизводных элементов (а) и типичные прямо-угольники (б) (пример 6.9).
Рис. 6.13. Характеристики алгоритмов синтаксического анализа для примера 6.9.Рис. 6.13. Характеристики алгоритмов синтаксического анализа для примера 6.9.
Рис. 6.13. Характеристики алгоритмов синтаксического анализа для примера 6.9.
Рис. 6.13. Характеристики алгоритмов синтаксического анализа для примера 6.9.
вил подстановки имели следующие значения:
Pim =0,9,
Pam — 0,7,
P3m = 0,8,
P4m
= 0,7,
Pis = 0,9,
Pas = 0,7,
P3s=0,3,
P4s
= 0,6,
p5s = 0,3,
P6s=0,8,
P7s=0,7,
Pla
= 0,4,
Paa = 0,4,
Рза=0,5,
P4a=0,8,
p5a
= 0,7.
При помощи каждой из трех грамматик были получены три случайные выборки по 100 объектов в каждой. Результаты классификации таковы [9]:
Равноплечные
Неравноплечные
Акроцентрические
Равноплечные
99
0
1
Неравноплечные
3
90
7
Акроцентри ческие
0
0
100
СПИСОК ЛИТЕРАТУРЫ
Grenander U., Syntax-controlled Probabilities, Tech. Rep. Div. of Appl. Math., Brown Univ., Providence, Rhode Island, 1967.
Fu K. S. and Swain P. H., On syntactic pattern recognition. In Software Engineering (J. T. Ton, ed.), Vol. 2, Academic Press, New York, 1971.
Fu K. S.. Syntactic pattern recognition and stochastic languages. In Frontiers of Pattern Recognition (S. Watanabe, ed.), Academic Press, New York, 1972.
Swain P. H. and Fu K. S., Stochastic programmed grammars for syntactic pattern recognition, Pattern Recognition, 4, 83—100 (1972).
Lee H. C. and Fu K. S., Stochastic Linguistics for Picture Recognition, Rep. TR-EE 72-77, School of Elec. Eng., Purdue Univ., West Lafayette, Indiana, 1972.
Lee H. C. and Fu K. S., A syntactic pattern recognition system with learning capability, Int. Symp. Comput. Inform. Sci. 4th, Miami Beach, Florida, December 14—16, 1972.
Anderson T. W. and Goodman L. A., Statistical inference about Markov chains, Ann. Math. Statists., 28, 89—108 (1957).
Cochran W. G., The %2-test of goodness of fit, Ann. Math. Statist., 27, 1—22 (1956).
Huang T. and Fu K. S., Stochastic syntax analysis for programmed grammars and syntactic pattern recognition, Comput. Graphics and, Image Process., 1, 257-283 (1972).
Dimitrov V. D., Multi-layered stochastic languages and stochastic grammars for syntactic pattern recognition, Int. Symp. Theor. Problems and Syst. for Pattern and Situation Recognition, Varna, Bulgaria, October 8—12, 1972.
Глава 7
Восстановление грамматики для синтаксического распознавания образов
Введение и основные определения
В последнее время все большее и большее внимание привлекает применение формальной лингвистики при моделировании естественных языков и языков программирования, а также при описании физических образов и структуры массивов данных [1—6]. Грамматики или синтаксические правила используются для описания синтаксиса языков или структурных отношений образов. Кроме структурного описания, при помощи грамматики можно охарактеризовать синтаксический источник, порождающий все предложения (конечные или бесконечные) данного языка или образы заданного класса. При практическом моделировании языка или при описании исследуемого класса образов или структуры массива данных можно надеяться, что используемую грамматику можно вывести из множества примеров предложений или из совокупности примеров образов. Задача обучения грамматике по множеству примеров предложений называется восстановлением грамматики г). Область возможных инженерных приложений методов Восстановления грамматики включает распознавание образов, информационный поиск, конструирование языков программирования, создание систем компиляции и перевода, графические языки, обмен информацией между человеком и машиной, искусственный интеллект [6, 14—21].
Формально задача восстановления грамматики состоит главным образом в построении процедур восстановления синтаксических правил неизвестной грамматики по конечному множеству предложений или цепочек St языка L (G), порождаемого грамматикой G, и, возможно, по конечному множеству цепочек из дополнения к L ^G). Восстановленная грамматика — это совокупность правил, описывающая данное конечное множество цепочек из L (G), по которой можно предсказать другие цепочки той же природы (в том или ином смысле), что и цепочки заданного множества. На рис. 7.1 показана основная блок-схема устройства восстановления грамматики. Меру качества восстановленной грамматики определяют таким образом, чтобы она давала в некотором смысле удовлетворительные результаты. В последние годы было
С другими близкими подходами к обучению структурам образов можно ознакомиться в [7—13].
предложено несколько мер качества, определенных в терминах сложности восстановленной грамматики, которые нашли применение в задачах восстановления грамматики.
Рис. 7.1. Основная модель устройства восстановления грамматики.
Ниже введены обозначения и определения, которые будут использованы в этой главе, а также приведен краткий обзор некоторых основных результатов в области восстановления грамматик. Рассмотрено несколько примеров применения этих результатов к синтаксическому распознаванию образов [22—42].
Определение 7.1. Последовательность цепочек множества {+ У I У € М U {—У I У € ^т — L} называется информационной последовательностью / (L) языка L. Информационную последовательность, состоящую только из цепочек языка L, назовем положительной информационной последовательностью /+ (L) языка L. Аналогично, информационную последовательность, состоящую только из цепочек множества Ут — L, назовем отрицательной информационной последовательностью I" (L) языка L.
Определение 7.2. Информационная последовательность языка L называется полной, если
/+ (L) содержит все цепочки языка L, и
I- (L) содержит все цепочки, не принадлежащие L.
Будем говорить, что положительная информационная последовательность /+ (L) полна, если каждая цепочка языка L содержится в /+ (L).
Определение 7.3. Образцом St (L) языка L называется множество {+уп . . ., + у^} U {—Ун • • •> — уЛ, причем множество {+ У17 • • -7 + уt^ называется положительным образцом, а множество {—yv . . ., —у^} — отрицательным образцом. Положительный образец St языка L(G) называется структурно полным, если для любого правила подстановки из грамматики G существует хотя бы одна цепочка из St, при построении которой было использовано это правило.
Определение 7.4. Пусть z £ Ут- Тогда ^-окончанием цепочки z по отношению к множеству S С 2Ут назовем множество g (z, S. k) вида
g (z, S, k) = {x £ V? I z x £ S и | x | ^ k^
где | # I — длина цепочки х, а к > 0. Если такой цепочки х С Ут, чтобы ^х 6 S и | х | ^ к, не существует, то множество g (z. 5, к) считается неопределенным.
Определение 7.5. Пусть функция / преобразует множество вспомогательных символов грамматики В2 в множество вспомогательных символов грамматики Gv Кроме того, предположим, что функция / преобразует начальный вспомогательный символ грамматики G^ в начальный вспомогательный символ грамматики Gx и правила подстановки G^ в правила подстановки Gv Если такая функция существует, будем говорить, что грамматика Gx покрывает грамматику G^ причем L (G^) с L (6^) [43].
Определение 7.6. Осевой грамматикой называется грамматика Gp = (Tn» Тт, Ps S), где yN — конечное множество вспомогательных символов, Ут — конечное множество основных символов, которое может быть разбито на два непересекающихся множества: УТр и Уто» Р — конечное множество правил подстановки следующих типов:
А -^ВаС; (2) А -^ВЬ; (3) А -^ЪВ и (4) 4 ->&, где 4, В, С С Tn, tt 6 Ттр и 6 С Тто; S — начальный символ.
Определение 7.7. Грамматика Gt называется совместимой с образцом языка St, если L (Gt) содержит все цепочки из положительной части и не содержит ни одной цепочки из отрицательной части образца.
Определение 7.8. Класс С грамматик называется допустимым, если:
он перечислим и
для х g Ут и любой G С С разрешим вопрос, принадлежит ли х языку L (В) или нет.
Пример 7.1. Классы грамматик непосредственно составляющих, бесконтекстных и регулярных грамматик перечислимы и разрешимы. Следовательно, эти классы допустимы.
Определение 7.9. Класс языков L (В) называется идентифицируемым в определенных пределах, если для любой грамматики Ge С и любой полной информационной последовательности I (L (В)) существует алгоритм вывода D и такое т, что
Gt = Gx при t > т,(7.1)
где Gt^D (Stl С) и Gx = D (Sx, С) и
L (Gx) = L (G).(7.2)
Определение 7.10. Будем говорить, что алгоритм D приближает грамматику В, если выполняются следующие два условия:
Для любой цепочки ж £ L (G) существует такое т, что при всех t > т х С L (Gt), где Gt = D (Stl С\
Для любой грамматики G\ такой, что L(Gf)— L (G)^ 0, существует такое т, что Gt ^ G* при всех t > т.
Будем говорить, что D строго приближает G, если при выполнении условий (а) и (б) существует такая грамматика Я, что L (Я) = L (G) и Gt = Я для любого сколь угодно большого t.
Интуитивно можно считать, что алгоритм D можно использовать для идентификации грамматики G, если он восстанавливает только одну грамматику и эта грамматика порождает в точности язык L (G). Для этого необходимо, чтобы алгоритм D в конечном счете осуществлял эффективный выбор одной грамматики и прекращал рассмотрение новых данных после этого выбора. Если относительно алгоритма D можно гарантировать только, что в конце концов он отвергнет любую грамматику, не порождающую языка L (G), то язык L (G) достижим.
Определение 7.11. Бесконтекстная грамматика G = = (FN, FT, Р, S) называется вполне редуцированной, если:
для любого А £ FN — 8 множество Р не содержит ни одного правила подстановки типа А ->А;
для любых А, В £ FN множество Р не содержит ни одного правила типа А -^В*,
*
если 5 => a, a g (FN U Ут)*? то существует цепочка х С F^ *
такая, что а => х\
каждое правило использовано при порождении хотя бы одной цепочки из L (G).
Определение 7.12. Пусть G = (FN, FT, Р, 8) — бесконтекстная грамматика. Скобочная грамматика [G] грамматики G образуется из G заменой каждого правила подстановки А —>а правилом А -^[ос], где правая и левая скобки есть специальные символы, не содержащиеся в FT.
Определение 7.13. Пусть G = (FN, FT, Р, 8) — вполне редуцированная бесконтекстная грамматика. Структурной информационной последовательностью /s (L) языка L (G) называется последовательность цепочек из множества
{ + ^(EL([G])}u{-z/Iz/(E(VtU{[ , ]})*—ZzQG])}.
Последовательность цепочек из L ([G]) называется положительной структурной информационной последовательностью It (L). Аналогично, последовательность цепочек, не содержащихся в L ([G]), называется отрицательной структурной информационной последовательностью.
Определение 7.14. Пусть G — вполне редуцированная бесконтекстная грамматика. Положительная структурная информа-
ционная последовательность It (L (G)) называется полной, если каждая цепочка из L ([G]) входит в It (L (G)) хотя бы однажды.
Определение 7.15. Пусть х — непустая цепочка над V = = Fn U Ут- Для грамматики G = (FN, FT, Р, 5) самым левым и самым правым множествами основных символов цепочки х называются множества **
Lt (ж) = {а | х => ааили(я=>Ариа^Р4(Л))},(7.3)
GG
Rt(x)^а\х=> ааили(ж=^рЛиа£йг(Л))},(7.4)
GG
где а^Ут, A^Vn и a^gF*. Интуиция подсказывает, что Lt(x) (Rt (^)) состоит из самых левых (самых правых) основных символов в некотором выводе цепочки х.
Определение 7.16. Пусть G^(FN, УТт Рт S) — вполне редуцированная бесконтекстная грамматика. Левый и правый профили порядка к цепочки х из (Vn U Ут U {[ » 1})+ определим следующим образом. Положим Vt=Vt U {I » ]}• Тогда
Rk («г) =
f I *,Т7,Vk-.-У^ если т>Ь|
I [G]Ui . .. ym§k если m^&j J k
и
. Rk (^) =
/ 1*tym-k^Y . .. ymi еста
^Wx^y, ут1у^УТ1и^1(7.6)
I [G]myv. .. ymi если m^k) J
Х*де $ $ Ft.
Определение 7.17. Пусть G = (FN, FT, P, S) —вполне редуциро- ванная бесконтекстная грамматика. Тогда /с-профиль Рк (я) цепочки ^€(Ук U Ут U {[ > 1}+ определяется выражением
Рк^ = кЬк<<зсу, Rk^).Рк^ = кЬк<<зсу, Rk^).(7.7)(7.7)
Рк^ = кЬк<<зсу, Rk^).
Рк^ = кЬк<<зсу, Rk^).
(7.7)
(7.7)
Определение 7.18. Вполне редуцированная бесконтекстная грамматика G — (FNl Ft, Р, S) называется fc-отдельной, если ^ь М) #= Рк (В) Для любых двух разных вспомогательных символов А и В из Fn.
Определение 7.19. Пусть G = (FN, FT, Р, 5) — вполне редуцированная бесконтекстная грамматика. Если Рк (х) = Рк (у) Для любых двух разных правил подстановки типа А -^х и А -^у, т° грамматика G называется /с-однородной.
Определение 7.20. Положительной стохастической информационной последовательностью I (L^ стохастического языка Ls = = L (G^ называется последовательность цепочек, каждая из которых является случайной переменной, порождаемой стохастической грамматикой Gs. Множество {^, . . ., sz), где s1? . . ., st— порождаемые стохастической грамматикой Gs цепочки (случайные переменные), называется положительным стохастическим образцом грамматики Gs.
Известные в настоящее время алгоритмы восстановления грамматики можно разбить на две категории:
алгоритмы восстановления грамматики перечислением;
алгоритмы восстановления индукцией.
В трех последующих разделах дано краткое описание этих категорий алгоритмов.
7.2. Алгоритмы восстановления грамматики перечислением
Основные формулировки
Исследование вопроса об идентификации языка в определенных пределах содержится в работе Голда [2]. Его модель идентификации языка состоит из трех компонент:
Перечислимый класс С грамматик. Предположим, что выбрана некоторая грамматика G £ С. Основываясь на информационной последовательности языка L, порожденного грамматикой G, устройство восстановления должно указать эту грамматику в классе С.
Метод представления информации. Предположим, что время разбито на такты, начиная с некоторого конечного момента, т. е. t = 1, 2, 3, . . . .В каждый момент времени t устройству восстановления грамматики предъявляется цепочка из информационной последовательности языка L. В работе рассмотрены два основных метода представления информации — текстовое и информаторное. Информаторное представление языка L — это полная информационная последовательность этого языка, в то время как текстовое представление — это полная положительная информационная последовательность.
Алгоритм восстановления грамматики. Основываясь на St, алгоритм восстановления D может формулировать некоторую гипотезу, такую, что D (St, С) = Gt для Gt 6 С. Все предложенные алгоритмы основаны на перечислимости различных классов грамматик.
Основные результаты исследования Голда связаны с нахождением определенных различий в идентифицируемости языка, порожденного некоторой грамматикой из допустимого класса при использовании двух методов представления информации — текстового
и информаторного. Результаты Голда по идентификации грамматики перечислением и некоторые их обобщения, полученные Фельдманом [24], изложены в следующих теоремах.
Теорема 7.1. Пусть С — допустимый класс грамматик» Тогда для любой грамматики G £ С существует такой алгоритм^ что язык L (G) идентифицируем в определенных пределах при информаторном представлении информации [22].
Теорема 7.2. Пусть С — допустимый класс таких грамматикг которые порождают все конечные языки и какой-нибудь один бесконечный язык L. Тогда этот язык L не является идентифицируемым в определенных пределах при текстовом представлении информации [22].
Теорема 7.3. Пусть С — класс регулярных языков. Тогда языки С не являются идентифицируемыми в определенных пределах при текстовом представлении информации [22].
Теорема 7.4. Для любого допустимого класса С грамматик существует такой алгоритм D, что любая грамматика G £ С строго достижима при текстовом представлении информации [24].
В работах Голда и Фельдмана даны основные формулировки теоретического исследования восстановления грамматики перечислением. После этих работ был предложен ряд методов повышения эффективности перечисления за счет исключения больших классов грамматик на этапе поиска [35]. Часто рассмотрение того или иного конкретного приложения дает дополнительную структурную информацию о желательном виде грамматики. В таких случаях необходимо рассматривать только грамматики этого желательного вида, а их обычно можно перечислить, избежав построения неоправданно большого числа эквивалентных грамматик. Кроме того, известно, что необходимо рассматривать только те грамматики, которые совместимы с заданным образцом языка. Поэтому много несовместимых грамматик можно отбросить, даже не построив их. Обычно классы несовместимых грамматик можно отбрасывать после какой-либо проверки одного из этих классов. Понятие грамматического покрытия дает возможность исключать все грамматики, которые покрыты грамматикой G. Эта возможность существует в том случае, когда грамматика G порождает не все известные цепочки данного языка, поскольку все покрытые грамматики обладают тем же самым свойством. С другой стороны, если грамматика G порождает некоторые цепочки, заведомо не относящиеся к данному языку, то все грамматики, покрывающие G, в той же степени не отвечают требованиям. Таким образом, обнаружение факта несовместимости рассматриваемой в ходе перечисления грамматики с заданным образцом языка дает возможность отбросить как эту грамматику, так и целый класс других грамматик.
Восстановление грамматики на основе теории структур
В работе Пао [28] предложен алгоритм восстановления регулярной грамматики по положительному образцу языка 8^ который осуществляет поиск за конечное число шагов. Основная идея алгоритма состоит в том, чтобы сначала построить регулярную грамматику, порождающую в точности те цепочки, которые принадлежат множеству St. Анализируя при помощи информатора все возможные комбинации вспомогательных символов, алгоритм строит другую регулярную грамматику, которая порождает все цепочки множества St и, возможно, некоторые другие цепочки. Если положительный образец языка структурно полон, то грамматика источника может быть идентифицирована в определенных пределах, конечно, эта грамматика является регулярной.
Предположим, что {Zx, . . ., Zn} — совокупность вспомогательных символов регулярной грамматики, порождающей в точности те цепочки, которые содержатся в множестве St. Рассмотрим все возможные разбиения этой совокупности и соответствующие этим разбиениям грамматики. Каждая такая грамматика получается в результате замены множества вспомогательных символов, образующих класс эквивалентности разбиения, одним символом. Как показано в работе [44], множество всех разбиений и множество соответствующих им грамматик можно упорядочить в рамках некоторой структуры. При этом грамматика, связанная с какой-либо вершиной структуры, покрывает грамматики, связанные с вершинами более низкого порядка. Привлечение понятия «покрывания» одной грамматики другой позволяет сократить перебор вариантов. В сокращенном виде алгоритм поиска правильной грамматики можно описать следующим образом:
Построить грамматики Gx и G^ соответствующие двум низшим вершинам структуры.
Определить, не являются ли эти грамматики эквивалентными. Если грамматика Gx эквивалентна грамматике G^ то исключить разбиение, соответствующее Gv и вернуться к шагу 1. Если разбиение, соответствующее грамматике G^ осталось единственным в структуре, то эта грамматика считается решением задачи.
Если грамматики Gx и G^ не являются эквивалентными, то построить грамматику G12 = Gx — G2, которая порождает цепочки языка L (Gx) и не порождает цепочек языка L (G^. Рассмотреть цепочку х языка Л(СХ2)и получить у информатора сведения о ее правильности (рис. 7.2). Цепочка называется правильной, если она может быть порождена грамматикой источника. Если цепочка х правильна, то исключить из структуры разбиение, соответствующее грамматике G2. Если при этом разбиение, соответствующее грамматике Gx, осталось единственным, то грамматика Gx считается решением задачи. В противном случае вернуться к шагу 1.
Если цепочка х не является правильной, то исключить из структуры разбиение, соответствующее грамматике Gv Если при этом в структуре не осталось никаких других разбиений, то грамматика G^ является решением задачи. В противном случае вернуться к шагу 1.
Требуя структурной полноты образца St языка, Пао ограничивает класс восстанавливаемых регулярных грамматик конечным множеством. Если число цепочек в образце St велико, то
Рис. 7.2. Основная модель устройства восстановления грамматики с информатором.
число возможных разбиений, которые нужно рассматривать, становится астрономически большим. Если же положительный образец языка не является структурно полным, то идентифицировать грамматику источника вообще невозможно. Поэтому начальный выбор образца языка особенно важен. Основной результат, установленный для алгоритма Пао, можно сформулировать в виде следующей теоремы.
? Теорема 7.5. Пусть С — некоторый класс регулярных грамматик. Любая грамматика G из класса С идентифицируема в определенных пределах при наличии структурно полного положительного образца языка L (6?) и информатора.
Восстановление грамматики по структурной информационной последовательности *
В работе Креспи-Регицци [30] предложен алгоритм восстановления операторных грамматик с предшествованием по структурной информационной последовательности Zg (L) языка L. Идея Алгоритма состоит в том, чтобы восстановить грамматику с опера- 15-086
торным предшествованием, которая была бы совместима с данным образцом 5t языка с операторным предшествованием L. Для иллюстрации работы алгоритма рассмотрим следующий пример.
Пример 7.2. Предположим, что L — язык арифметических выражений, подобных выражениям а + а, а + (а + ciY • • • над алфавитом основных символов Кт = {а, +, (,)}. Пусть структурный образец этого языка St = {^J, где
^ = [[а] + [[а] + [а]]]. (7.8)
Квадратными скобками ограничены компоненты цепочки этого образца в порядке, соответствующем ее выводу справа налево. Для восстановления грамматики, совместимой с образцом 517 алгоритм сканирует цепочку ^ слева направо и находит первую подцепочку, окруженную внутренними квадратными скобками. В данном случае будет найдена подцепочка [а]. Любая грамматика, которая может породить цепочку .^ при заданной структуре, должна иметь правило подстановки N —^ а, где N представляет собой некоторый вспомогательный символ. Алгоритм присваивает символу N в правиле подстановки N -^х, х С V\ имя, состоящее из самого левого и самого правого множеств основных символов подцепочки х. Это имя является упорядоченной парой (Lf (.г), Rt (х)) и записывается обычно в виде {Lt (х) NRt (х)). В данном примере х = a, Lt (а) = {а}, Rt (а)^ ^а^ а правило подстановки N -^ а записывается как {aNa) -^а. Используя это правило. Цепочку Si можно привести к виду
s, = [ {aNa) + [ (aNa) + {aNa)]]. (7.9)
Наличие внутренних квадратных скобок свидетельствует о том, Что в грамматике должно быть правило N -> {aNa) + {aNa\ Которое в соответствии с правилом присвоения имен должно быть записано в виде (а + Na + ) -> {aNa) + kaNa\ поскольку Lt ({aNa > + {aNa)) = Lt ({aNa>) J {+ } = {a, + } и Rt ({aNa) + {aNa)) = {+}U Rt ({aNa)) = {a, + }. Теперь цепочка ^ преобразуется в
^ = [ (aNa) + (а + Na + )], (7.10)
Что, в свою очередь, обусловливает необходимость правила 7V->-
{aNa) + {а + Na + >, которое должно быть записано как {а + Na + ) -> {aNa) + {а + Na + ). Окончательно цепочка ^ сводится к [(&+ Na + Ж а это уже является вспомогательным символом, который нужно обозначить через S и ввести правило Подстановки S -> {а + Na + )• Таким образом, построенная грам-
матика включает в себя правила подстановки
G^ I А —>- о,^В-^А + В, S-^B,G^ I А —>- о,^В-^А + В, S-^B,А = {aNdyB = ^a-yNa~y^А = {aNdyB = ^a-yNa~y^
G^ I А —>- о,^
В-^А + В, S-^B,
G^ I А —>- о,^
В-^А + В, S-^B,
А = {aNdy
B = ^a-yNa~y^
А = {aNdy
B = ^a-yNa~y^
Язык L (G^ = {а + я + d а У а -\- а У сц • • •} совместим с образцом Sn поскольку L ([CJ) id Sv Грамматика GT порождает бесконечное множество цепочек, которые с интуитивной точки зрения являются разумными обобщениями данного структурного образца. Если к предыдущему образцу 5Х добавить цепочку
s2 = [[([[а] + Ы])] + Ш(7.11)
то получится новый образец 52 = {5Х U {$2}} = {si7 $2}- Алгоритм исследует цепочку s2 и строит следующие правила подстановки:
^2:^2:А-^а,А-^а,В-^Ау-А, с-*Ф^ D-+C + A,В-^Ау-А, с-*Ф^ D-+C + A,А = (aN а},В s (a A-Na +), с=т, D = < + (Na + ),А = (aN а},В s (a A-Na +), с=т, D = < + (Na + ),
^2:
^2:
А-^а,
А-^а,
В-^Ау-А, с-*Ф^ D-+C + A,
В-^Ау-А, с-*Ф^ D-+C + A,
А = (aN а},
В s (a A-Na +), с=т, D = < + (Na + ),
А = (aN а},
В s (a A-Na +), с=т, D = < + (Na + ),
Легко видеть, что грамматика Рг совместима с образцом {s2}, т. е, L ([Fj]) ^ {^г}- При построении грамматики, совместимой с образцом S2, алгоритм находит объединение грамматик Gx и F^:
В-^А + В,В-^А + В,S-^D,S-^D,G^ — ^i U ^2: А^- аB-^A-YA,с-^фуD-^C + B,S-^B,
В-^А + В,
В-^А + В,
S-^D,
S-^D,
где A = (aNa), В = (a-Y Na-H, C^^N)) и D( + (Na-Y). Легко проверить, что
Ьф^Ь^Е^ЬфОиЬф^(7.12)
И ЧТО
^(G2) = {a + <z, а + а + а, .. .}U {(«+«) + «, (а + а + а)А-а, ...}.
15*
Основываясь только на двух цепочках {s7, s2) = 52, нельзя вывести всего класса арифметических выражений. Например, грамматика G2 не может породить цепочек а +(«+»), а + (а + «) + а и т. д. Таким образом, образец S2 не является представительным для языка арифметических выражений. Для идентификации этого языка к структурному образцу нужно добавить новые цепочки. Рассмотрим следующие новые цепочки (для удобства чтения квадратные скобки опущены):
s3 = ((« + а -ц а)) + а +(а+ а),s7 = (а + а) + (а + а) + а,
■^4 = (® 4~ (Я ~Н ®) 4~ Cl^S^=Cl fl- Cl -р (я -|- Л),
^5 = ((а + а) + ((а + й)+ я)),Sg = (а + (я 4" я)),
$6= п ((я 4" я) 4" я),$ю~я ~Н (я 4"а) 4" (я Н~я)Н- (а Н~я).
Пусть «Sio = S2U (8з, • • •, sio)- Алгоритм строит грамматику Glo:
А а, В-+А+А, С^(В^ С^(Еу П^С^В, e^a-yc, F^C + E, S-^B, S^E,А а, В-+А+А, С^(В^ С^(Еу П^С^В, e^a-yc, F^C + E, S-^B, S^E,B^AA-B, C-^(CY C-*(FY D^CAD, E —>- A -)- E, F-+C+C, S-+C, S^F.B^AA-B, C-^(CY C-*(FY D^CAD, E —>- A -)- E, F-+C+C, S-+C, S^F.B-^A + D, C-(D)B-^A + D, C-(D)D-^C + A, E-^A-V-F. F-^C + F, S-^D,D-^C + A, E-^A-V-F. F-^C + F, S-^D,где A = (aNa), где В = (a + Na +),где C = ((N)^где D = (-V(Na + ^ где E = (a-VN + ^ где F = ( + (y + )),где A = (aNa), где В = (a + Na +),где C = ((N)^где D = (-V(Na + ^ где E = (a-VN + ^ где F = ( + (y + )),
А а, В-+А+А, С^(В^ С^(Еу П^С^В, e^a-yc, F^C + E, S-^B, S^E,
А а, В-+А+А, С^(В^ С^(Еу П^С^В, e^a-yc, F^C + E, S-^B, S^E,
B^AA-B, C-^(CY C-*(FY D^CAD, E —>- A -)- E, F-+C+C, S-+C, S^F.
B^AA-B, C-^(CY C-*(FY D^CAD, E —>- A -)- E, F-+C+C, S-+C, S^F.
B-^A + D, C-(D)
B-^A + D, C-(D)
D-^C + A, E-^A-V-F. F-^C + F, S-^D,
D-^C + A, E-^A-V-F. F-^C + F, S-^D,
где A = (aNa), где В = (a + Na +),
где C = ((N)^
где D = (-V(Na + ^ где E = (a-VN + ^ где F = ( + (y + )),
где A = (aNa), где В = (a + Na +),
где C = ((N)^
где D = (-V(Na + ^ где E = (a-VN + ^ где F = ( + (y + )),
Язык L (G10) построен над алфавитом основных символов Кт = = {а, +, (,)} и состоит из множества арифметических выражений, исключая выражения типа а, (а^ ((a)), . . . . Это язык с операторным предшествованием. Если цепочки а, (а), ((а)), . . . считаются правильными, то к образцу S10 следует добавить цепочки
5ii — ai si2 — (Л)‘
Тогда грамматика С12 будет порождать все арифметические выражения.
Описанный алгоритм строит грамматику с операторным предшествованием в нормальной форме, для которой характерны следующие свойства:
Грамматика не имеет правил переименования, за исключением правил S -^ A, S В, . . ., левые части которых состоят из символа S.
Правые части правил подстановки не повторяются.
Все правые части одного и того же вспомогательного символа имеют одинаковые пары (Ltl Rt).
Два разных вспомогательных символа могут иметь и отличающиеся между собой пары (Lt1 Rt).
Класс грамматик, удовлетворяющих свойству 4, называется грамматиками со свободным операторным предшествованием. Можно показать, что идентификация языка в определенных пределах в данном случае возможна лишь при текстовом представлении структурной информации, а также что восстановленная по образцу St грамматика Gt порождает наименьший язык среди совместимых грамматик, имеющих свойства 1, 2, 3 и 4. Другими словами, восстановленная грамматика является в некотором смысле наилучшим приближением данного образца в классе грамматик со свободным операторным предшествованием. Кроме того, можно доказать, что по числу вспомогательных символов и правил подстановки восстановленная грамматика является наиболее простой среди совместимых грамматик, удовлетворяющих свойствам 1, 2, 3, 4.
Описанный алгоритм был обобщен на более широкие классы языков, точнее на класс ^-отдельных и ^-однородных бесконтекстных грамматик [31]. Процедура восстановления состоит из следующих трех этапов:
Для каждой цепочки st положительной информационной Последовательности построить бесконтекстную грамматику G^ которая порождает в точности цепочку st. Это построение осуществляется при помощи описанного алгоритма восстановления грамматик с операторным предшествованием. Это значит, что каждую подцепочку х цепочки s^ не содержащую правой или левой скобки, нужно заменить некоторым отдельным вспомогательным символом A t и ввести правило подстановки At -> х. Этот процесс нужно повторять до тех пор, пока цепочка st не превратится в некоторый единственный вспомогательный символ. Этот вспомогательный символ следует определить как начальный символ S.
В каждой грамматике Gt укрупнить все вспомогательные символы, имеющие одинаковый ^-профиль. Пусть G\ — грамматики, полученные в результате этого укрупнения.
Искомая грамматика есть G' = U^. Основной результат, справедливый для этой процедуры, можно сформулировать в виде следующей теоремы.
Теорема 7.6. Пусть С — класс k-отделъных и к-однородных бесконтекстных грамматик. Тогда для любой грамматики G из Масса С язык L (G) идентифицируем в определенных пределах при Текстовом представлении структурной информации.
7.3. Алгоритмы восстановления грамматики индукцией
Изучение грамматики при помощи индуктивного восстановления
Соломонов [32] описал метод вскрытия рекурсивной структуры языка L из положительного образца St. Идея метода состоит в выполнении следующих двух этапов:
Удалить из правильной цепочки некоторые ее подцепочки и спросить информатора, правильна ли оставшаяся часть цепочки (рис. 7.2).
Если оставшаяся часть цепочки правильна, то добавить к этой части ранее удаленную подцепочку, повторив ее несколько раз, и спросить информатора о правильности такого изменения. Если измененная таким образом цепочка правильна, то образуется некоторая рекурсивная конструкция.
Пример 7.3. Пусть aba — цепочка образца St. Информатора нужно спросить о правильности следующих цепочек:
аа, ab, Ьа, а, Ъ.
Предположим, что из цепочки aba удалили все символы а, и оставшаяся цепочка b правильна. Тогда информатора спрашивают о правильности цепочек а^Ьа^, а^Ъа?, . . ., akbak. Если для достаточно большого к все эти цепочки правильны, то образуется рекурсивная конструкция {А -> аАа и А -> Ь^.
Легко видеть, что вскрытие рекурсивной конструкции бесконтекстного языка существенно зависит от выбора начального образца St. Если множество St слишком мало, то не вся рекурсивная структура языка будет вскрыта, а если St слишком велико, то число подцепочек, которые необходимо рассмотреть, становится астрономически большим. Этот метод не является инкрементным по отношению к St в том смысле, что структура восстановленной грамматики’при добавлении к St новых цепочек может полностью измениться.
Восстановление регулярных грамматик
Фельдман [23] описал метод восстановления рекурсивной однозначной регулярной грамматики по положительному образцу St. Идея этого метода состоит в том, чтобы сначала построить нерекурсивную грамматику, порождающую в точности данный положительный образец, а затем укрупнять вспомогательные символы с тем, чтобы получить более простую рекурсивную регулярную грамматику, порождающую все цепочки из St и бесконечно много других цепочек. Первую часть метода можно описать следующим
образом. Пусть х = ^2 . . . ап — цепочка образца St. Тогда для построения грамматики, порождающей в точности эту цепочку, формируется множество правил подстановки {5 ах Zv ZT-^ _,- a2Z2, . . ., Z^^- a^Z^, Z^ -^ an}. Эта простая процедура выполняется для каждой цепочки образца St. Грамматика, порождающая в точности цепочки образца Stl образуется путем объединения всех правил подстановки, построенных описанным выше образом отдельно для каждой цепочки из St. Затем нужно перепробовать различные укрупнения вспомогательных символов так, чтобы в результате найти рекурсивную регулярную грамматику, порождающую все цепочки образца St и как можно меньше новых (желательно коротких) цепочек.
Бирман и Фельдман [33] предложили два алгоритма синтеза по положительному образцу St конечного автомата, который допускает образец St и некоторые дополнительные цепочки, похожие на цепочки St т). Легко видеть, что эта модель восстановления рассчитана на класс регулярных грамматик. Ниже кратко описан один из этих двух алгоритмов, который строит состояния автомата и переходы между ними непосредственно по образцу St. Недетерминированный конечный автомат A (Stl k) = (Q, 5, /, QOl F), который допускает образец St и некоторые дополнительные цепочки, может быть построен следующим образом 2):
Q = {7 С 2Ут | g (z, Stl к) — q для некоторого z^Ft} (7.13) где g(z, 5т, &) дано в определении 7.8;
2= УТ;
/ (q, я)I существует такое z 6 Ут, что
g(z, St, k) = q и g(za, St, k) = q’}; (7.14)
()0 = {g(X, St, &)} —множество начальных состояний;
F = ^q g Q | X £ q^— множество заключительных состояний.
. Язык Т (Л (5^, куу восстанавливаемый при помощи этого алгоритма,— это множество цепочек, допускаемых автоматом А (5;, ку
Ниже выписаны основные результаты, касающиеся свойств автомата A (St, ку.
5 <= Т (Л (5,, ку при к > 0.
х) В недавней работе Бирмана и Фельдмана [36] для упрощения доказательств и обобщения результатов эта задача переформулирована в терминах соотношений, похожих на соотношения Нерода.
Здесь восстановление грамматики представлено как синтез конечного автомата. При помощи некоторой модификации описываемого алгоритма Можно получить алгоритм, который непосредственно строит регулярную грамматику.
Пусть т — длина наибольшей цепочки в St. Тогда
Т (A (St, k)) = St при к^т и Т (Л (St, к)) = 2* при к^О.
T(A(St, k))^T(A(St,&+1)) при fc^O.
Легко видеть, что этот алгоритм прост, и его легко реализовать на вычислительной машине. Примеры применения этого алгоритма к обучению грамматикам, описывающим изображения, можно найти в работах Фу [38] и Ли и Фу [41]. Задание параметра к позволяет получить любую желаемую точность приближения к данному образцу St. При повышении точности возрастает сложность структуры синтезируемого конечного автомата, что проявляется в появлении новых состояний. Однако, если по образцу St нельзя определить, какое к дает хорошее приближение языка Т (Л (St, к)) к образцу St, то выбрать его не так просто. Этот алгоритм инкрементный. Это означает, что если построен автомат Л (St, к), допускающий St, а затем множество St немного изменилось, то в автомате Л (St, к) необходимо перестроить только те состояния и переходы между ними, которые соответствуют изменениям в St.
Восстановление осевых грамматик
Джипе (см. Фельдман и др. [25]) описал метод восстановления осевой грамматики, т. е. операторной грамматики очень частного вида. Класс осевых грамматик включает в себя, как собственный подкласс, линейные грамматики и, в свою очередь, включен в класс бесконтекстных грамматик.
Основная идея метода Джипса состоит в том, чтобы при восстановлении осевой грамматики по положительному образцу St найти самовставление в St. При этом отдельный вспомогательный символ выделяется как рекурсивный. Алгоритм восстановления проводится в два этапа.
Этап 1. Устанавливается, не содержит ли данная цепочка из St собственной подцепочки, которая фигурирует в St. Если нет, то эта цепочка Заносится в рабочее множество. Если она содержит такие собственные подцепочки, то самая длинная из них заменяется отдельным вспомогательным символом и измененная таким образом цепочка заносится в рабочее множество. Рассмотрим, например, St = {а — а, а — (а — а), (а — (а — а^ — а). Поскольку цепочка а — а не имеет собственных подцепочек из St, она заносится в рабочее множество без изменений. Вторая цепочка а — — (а — а) имеет собственную подцепочку а — а в St. Поэтому перед занесением этой цепочки в рабочее множество в ней нужно заменить а — а на отдельный вспомогательный символ X. Нако-
нец, поскольку третья цепочка (а — (а — а)) — а имеет две подцепочки в St, а именно а — а и а — (а.— а), только наиболее длинная из них заменяется символом X и результат заносится в рабочее множество. В результате выполнения первого этапа образуется рабочее множество из цепочек а —а, а — (X) и (X) — а.
Этап 2. Для рабочего множества строится простая осевая грамматика. В рассмотренном примере эта грамматика имеет следующие правила:
G: Х-^Х.-Х^ Х^а,
Х1-^(Х3, Х.^а, Х2-+(Х4, Х3-+Х), Х4->Х),
Из описания алгоритма следует, что начальный выбор образца St имеет существенное значение.
Эвристический подход
В работе Эванса [20] описана совокупность эвристических правил автоматического восстановления грамматик для описания и распознавания образов. Формулировка грамматики образов включает три основных пункта:
Множество непроизводных элементов или компонент, из которых составлен рассматриваемый образ.
Множество предикатов, описывающих структурные отношения между непроизводными элементами, которые являются аргументами предикатов.
Множество правил подстановки, каждое из которых состоит из трех важных частей:
наименования определяемого образа;
списка, переменных для составных частей образа (вспомогательные символы);
условия, которому должны удовлетворять составные части, чтобы получился определяемый образ.
Основываясь на этом формализме, задачу восстановления грамматики можно поставить следующим образом. Пусть {s1? . . ., sn}— заданное множество образов, имеющих общую синтаксическую структуру. Задача состоит в том, чтобы при данных непроизводных элементах и предикатах построить грамматику, которая является приближением заданного множества образов. Предлагается следующая совокупность эвристических правил восстановления грамматики:
В каждом образце st выявить всю структуру, определяемую данными непроизводными элементами и предикатами. Каждый раз, когда один или более предикатов оказываются истинными, введением некоторого правила подстановки построить новый «объект» (подобраз). Повторять эту процедуру для подобразов и непроиз-
водных элементов до тех пор, пока уже нельзя будет построить ничего нового.
По окончании процесса построения подобразов проверить, какие из них имеют в качестве своих составных частей все непроизводные элементы образцов. Все подобразы, которые оказались вне этого множества или не являются составными частями его элементов, исключаются из рассмотрения.
Всеми возможными способами сформировать грамматику
G = U
i=l
где Gx — грамматика, выбранная для описания образца sn G2 — для s2 и т. д. Модифицировать эту грамматику в соответствии с правилом 4.
Для модификации грамматики, полученной после применения правила 3, и получения «наилучшего» приближения применить следующие правила редукции.
Правило 1. Исключить из G все многократные вхождения какого-либо правила подстановки, кроме одного.
Правило 2. Найти такую пару переменных, что однородная подстановка одного вместо другого по всей грамматике G приводит к появлению многократных вхождений каких-либо правил подстановки. Сделать эту подстановку и применить первое правило редукции.
Правило 3. Найти такую пару (А, а), что добавление правила подстановки А -> а и некоторое выборочное его применение приводят к появлению многократных вхождений правил подстановки. Провести соответствующую редукцию.
Правило 4. Установить порог Тх для процедуры ослабления по предикатам. Если есть тг правил подстановки, которые по правилам 2 и 3 сливаются в одно, если не учитывать содержащейся в них информации об отношениях, и п Т^ то переписать эти правила как одно и применить первое правило редукции.
Правило 5. Установить порог Т2 для процедуры ослабления по объектам (подобразам). Если есть п правил подстановки, которые различаются только типами непроизводных элементов (основных символов), и п ^ Т21 переписать эти правила как одно, воспользовавшись специальным именем ANY, которое означает «основной символ любого типа». После этого применить первое правило редукции.
Процесс останавливается, когда дальнейшая редукция уже невозможна.
Четвертое и пятое правила редукции дают преобразования на множестве непроизводных элементов и предикатов, которые объединяют некоторое число правил подстановки в одно. Это дает возможность порождать дополнительные описания образов, которые похожи на описания образцов.
Этот процесс выполняется для каждого варианта грамматики и, в свою очередь, порождает новые варианты. Из всех этих вариантов нужно выбрать «наилучший» в смысле критерия, в основу которого положена эффективность грамматики. Мера качества определяется как ^/(тг^)2, где FG — эффективность грамматики G, a nG — число правил подстановки в G. Эффективность грамматики — это просто сумма эффективностей правил подстановки. Эффективность правила подстановки равна сумме числа компонент правила, которые являются непроизводными элементами, и числа термов отношений.
Пример 7.4. Рассмотрим изображение на рис. 7.3, а; его непроизводные элементы: круг, точка, квадрат и отрезок линии. Предположим, что заданы следующие предикаты:
СЛЕВА (X, У) — истинен, когда X находится слева от У, НАД (X, У) — истинен, когда X находится над У, ВНУТРИ (X, У) — истинен, когда X находится внутри У.
Правила подстановки строятся за три шага.
(б)(б)
(б)
(б)
Рис. 7.3. Сцена для примера 7.4 (а) и два структурных описания сцены (бив).
Первый шаг
А-^НАД (d, е^
В-> ВНУТРИ ф. а^
С ->ВНУТРИ (с, а).
D -> ВНУТРИ (d, а),
Е-^ВНУТРИ (е, а),
F СЛЕВА ф, с),
G-^СЛЕВА (6, с) ^ ВНУТРИ ф, а) Д ВНУТРИ (с, а).
Я-^НАД (d, е) Д ВНУТРИ (d. а) Д ВНУТРИ (е. а).
Второй шаг
I ВНУТРИ (4, ау J -^ВНУТРИ (F, ау А->НАД (F, d), L ->НАД(^ в), М^НАД (F, 4).
Третий шаг
N^ ВНУТРИ (К, а), О -> ВНУТРИ (L, ау р ^ ВНУТРИ (М, а), Q-^НАД (К, в), R -> ВНУТРИ (Q, ау
Правила с символами Р и Q дают два структурных описания сцены. Эти описания показаны на рис. 7.3, б, в в виде деревьев. Ниже выписаны две грамматики, порождающие эти описания.
Gr. R ->ВНУТРИ (Q, круг), Q ->НАД(А, отрезок линии), К ->НАД(Г, квадрат), F СЛЕВА (точка, точка), С2: Р -> ВНУТРИ (М, а), М->НАД (F, 4), F СЛЕВА (точка, точка), 4-> НАД (квадрат, отрезок линии).
Пример 7.5. Пусть задан образец
S7 = {caaab, bbaab, caad, bbab, cab, bbb, cb}, где a, b, c — основные символы, и задан единственный предикат CAT (X, У) (конкатенация), который записывается как АУ Грамматики, построенные для отдельных цепочек, таковы: Для Sj = caaab
Gii S -> e4, R -> aC, 4 -> aR, C ->■ ab. Для s^ — bbaab
G^. S bbD, D -> aE, E ab.
Для s3 = caab
Ga; 8 —> cF,F -> aG,G —>• ab.
Для s4 = bbab
G4: S ЫН, H -> ab.
Dah s5 = cab
G5-. 8 -> cl, I -> ab.
Для s6 = bbb
G6: 8 bbb.
Для s7 =cb "
G," S —> cb
В итоге получается грамматика
G= U G,.
i=l
На первом шаге редукции сливаются в одно правила С, Е, G, fl и I. В итоге получается грамматика
5 ->
с А,
S ->-
bbD, 8
ЬЬС,
Л ->
аВ,
D-*
аС, 8
->- сС,
В —-
аС,
S -^
cF, 8
bbb,
с
ab,
F -^
аС, 8
-*- cb.
На следующем шаге
редукции
сливаются в одно правила Л, С
И F, что дает
8
сА,
S ->
bbD, 8
ЬЬА,
А
аВ,
D-^
аА, 8
bbb,
В -^
аА,
А-^
аА, 8'
-*■ cb.
А
ab,
Отождествляя правила А
? В и
D, получим
1) 5 ->
- сА,
4) 8-^
■ ЬЬА,
2) А-^
• аА,
5) 8-^
bbb,
3)
ab,
6) 5 ->
■ cb.
На следующем шаге редукции, найдя пару (Л, 6) и выборочно
применив правило А
-> b
в правилах 3,
5 и 6, получим оконча-
дельную грамматику
8 -
> сА,
А ->- аА,
S -
>- ЬЬА,
А -^Ь.
ЧЛ. Восстановление стохастических грамматик
по правилу Байеса
Один из алгоритмов восстановления стохастических грамматик описан в работах Хорнинга [26, 27].
Основная идея этого алгоритма состоит в том, чтобы выбрать в перечислимом классе С стохастических грамматик такую грамматику Gj, которая максимизирует апостериорную условную вероятность Р (Gt | St. С^ грамматики Gt при наблюдении заданного положительного стохастического образца St. Поэтому этот алгоритм называется перечисляющим байесовским алгоритмом восстановления стохастических грамматик. В соответствии с моделью идентификации языка, предложенной Голдом, модель восстановления стохастической грамматики, разработанная Хорнингом, состоит из трех основных компонент.
Перечислимый класс С стохастических грамматик. Из этого класса с заданной априорной вероятностью Р (Gt | С) выбирается грамматика Gt £ С. Основываясь на положительной стохастической информационной последовательности стохастического языка, порождаемого Gt. устройство восстановления должно определить, что это за грамматика.
Стохастическое текстовое представление. Предположим, что время разбито на такты и отсчитывается от некоторого конечного момента, т. е. t = 1, 2, 3, . . . . В каждый момент времени t устройству восстановления грамматики представляют цепочку st. которая порождена стохастической грамматикой источника Gt С С. Множество St = fe, . ... §t) образует положительный стохастический образец, представленный устройству восстановления грамматики.
Используемое в этой модели устройство восстановления грамматики называется перечисляющим байесовским алгоритмом и определяется следующим образом. Пусть С — перечислимый класс стохастических грамматик (Сг. G^. . . .), Т (6) — вычислимая функция, такая, что из г > Т (6) следует Р (Gt | С) < 6, a St — заданный положительный стохастический образец. Перечисляющий байесовский алгоритм состоит из четырех основных этапов.
Положить it равным наименьшему целому числу, такому, что Git совместима с St.
Положить 6, = Р (Glt | С) Р (St | Gi? С\
Положить гт = Т (Ьт\
Для каждой Gt. it ^ i ^ гг вычислить Р (Gt | С) Р (St | Gt. С). Пусть к — первое значение г между it и 1Т. при котором величина Р (Gt \ С) Р (St \ Gt. С) принимает максимальное значение. Тогда в качестве решения задачи выбрать грамматику Gk.’
Некоторые основные свойства перечисляющего байесовского алгоритма можно привести в виде следующих теорем.
Теорема 7.7. Если задан перечислимый класс С стохастических грамматик и положительный стохастический образец Stl то перечисляющий байесовский алгоритм находит грамматику с максимальной апостериорной условной вероятностью Р (G | St, С).
Теорема 7.8. Перечисляющий байесовский алгоритм находит по крайней мере одну грамматику из множества эквивалентных стохастических грамматик.
Подход Хорнинга к восстановлению стохастических грамматик обеспечивает формальную основу для выбора одной стохастической грамматики среди множества возможных. Однако из-за громоздкости перечисления и проверки всех грамматик в классе С практическое применение описанной модели сталкивается с рядом трудностей.
7,5. Синтез конечных стохастических автоматов .
Следуя подходу Бирмана и Фельдмана [33], опишем процедуру построения по конечному множеству 8п случайных цепочек конечного стохастического автомата [38, 29]. Эта процедура должна непосредственно строить состояния автомата и переходы между ними. Вероятности перехода можно определить, исходя из вероятностной информации, связанной с множеством случайных цепочек.
Прежде чем описывать саму процедуру, введем ряд обозначений и определений.
Определение 7.21. Конечное множество случайных цепочек определяется как Sn = {(slt f^, . . ., (sn, /„)}, где s; £ УК n
^ fi = 1, a ft — рациональные числа. Характеристическим мно- <—1
зкеством 8Н множества 8Н называется совокупность цепочек {^ъ • • ., $п}. Множество yv . . ., /п} обозначим через Rn. Числа ft часто интерпретируют как весовые коэффициенты или вероятности цепочек sie
Определение 7.22. Пусть 8 — конечное множество случайных Цепочек. Тогда
Ds = (^ € Vt | ху g 8 при некотором у £ Ту}. (7.15)
Пример 7.6. Пусть 83 = {(а, 1/2), (аЬ, 1/4), (abb, 1/4)}. Тогда 8з~^а, аЪ, аЬЦ, /?3={1/2, 1/4, 1/4} и DS = ^X, a, ab, abbY где X — пустая цепочка.
Определение 7.23. ^-окончанием A (z £ /с) цепочки х £ Ds по отношению к множеству случайных цепочек S называется
- к (х. 5, /с) = {(ж, /) | (za;, /)( S и | х | < Ц. (7.16) Если цепочка z не принадлежит множеству DSl то функция Зг (х, S, к) не определена. Стохастический конечный автомат, допускающий множество 5, обозначим через Sa (S', к), где к — максимальная длина цепочек s в множестве S.
Определение 7.24. Пусть Sa(S, к) = (а. 2, М. л0, F) — стохастический конечный автомат, допускающий S, где
.1) *=max]s, 5 = (J, R) и 5g2Vr*;
s£S1
S=--VT;
<2 = {5r}UH€2^*xB|fe(Z) s, k) = q для некоторой x£Ds};
(7-17)
Q'=Yi£QUMKq при KRy,(7.18)
D при f^.(7.19)
Теперь сольем все состояния q из F в единственное заключительное состояние qt и отождествим множество Q с {д17 . . . • • ч 7n-i, 7п}, где <7i = к (X, 5, к) — начальное состояние; qn_x = = qt и qn = qT — состояние отказа.
Поскольку qx —начальное состояние, л0 = [1,0, . . ., 0) — л-мерный вектор-строка.
Поскольку qn_x отождествлено с заключительным состоянием, лг — [0, . . ., 0, 1, 0] — ^-мерный вектор-столбец.
Отображение М (а) = Vpu (а)] для каждого а С 2 определяется следующим образом:
Ри^ч^О, если есть такая z£S*, что к(х. 5, k^qtи к (ха. 8, к) = q5 при всех I, / = 1, ..., п — 2.
pit n-i (а) ^0, если есть такое qjE.Q, что Ри(а)^0при г — 1, ..., п— 2.
HI) pK_v j(a) = 0 при 7 = 1, ...,n—1 и рпи, п(а) = 1.
IV) Pn.jW^O при 7 = 1,...,п—1 и рп, п(а)=1.
Величины ptj (а) должны удовлетворять следующим условиям нормализации:-
п-1
2 2 Ри W = 1 при i = 1, ..., п— 2,
a£S ^=1
2 Ра (°) = 1 при 1 — 1, . .., п и а £2.
Используя систему уравнений, получающуюся из Л0М (s^ Лр=^(5;),
для каждой пары (s^ pts^^S можно определить все рц(а). Поскольку L(Sai 0) = S' и рц(а) таковы, что
л0М (s^ nF=p(Si)=fi9
для каждой цепочки s^5 справедливо равенство L(Sa)=S.
Пример 7.7. Пусть 83 = ^(а, 2/5), (аб, 2/5), (abb, 1/5)}. Стохастический конечный автомат, допускающий множество 53, определяется как
Sa№, kWQ, {а, 6}, М, л0, Г),
где
а
* = 3, <2 = {?1, ?2, 9з, 94, 9s},
g, = /i(A,, 53, 3)={(а, 2/5), (to, 2/5), (а№, 1/5)}, q3=h(a1 S3, 3)={(Х, 2/5), ф, 2/5), (to, 1/5)}, q3 = h(ab, S3, 3) ={(%, 2/5), (b, 1/5)}, q^h^abb, S3, 3) ={(%, 1/5)}, q3 = qr (состояние отказа),
и
9o = 9i, 9t = q^ n0 = [l, 0, 0, 0, 0], лр = [0, 0, 0, 1, 0]т
“0 pl2 (a) 0 pu^ pts^af 00001
M (a) = 00001,
00001
_00001_
"0000i-
о o p23 (6) p^ (b) p25 (b)
M (b) = 000p34(5)p35(5),
00001
_00001_
где
P12 (a) + P14 (a) + P15 (a) = 1, P12 (a) + Pi4 (a) = 1, P23 (^) + P24 (b) + P25 (^)= 1, P23 (6) + P24 (b) = 1, P34(b)+P35(b) = l, Р34(Ь)=1.
46-086
Можно показать, что
Р15 (Л) = £25 (Ь) = Р35 (Ь) = 0.
Поскольку
л0М (а) лг = р14 (а) = 2/5, справедливы равенства
Pi2 (а) = 1 — р14 (а) = 3/5.
Поскольку
л0М ^ab) лг = р12 (а) р^ (Ь) = 2/5, справедливы равенства
Р24= 2/3 и р2з (^) — 1 — Р^ W = 1/3.
Легко показать, что л0М (а№) лР = 1/5.
После того как стохастический автомат синтезирован, можно построить соответствующую ему стохастическую регулярную грамматику. Для этого нужно воспользоваться процедурой, которая аналогична процедуре, применяемой в детерминистском случае (гл. 2). Начальный символ S грамматики связывается с начальным состоянием автомата. С каждым из оставшихся в множестве Q состояний связывается свой вспомогательный символ. Тогда множество основных символов Ут = 2
S -^ аА, если (^0, а) = (#, р^ #£2, где А— вспомогательный символ, связанный с состоянием ^, и q^F\
At -^ аА^ если (^, а)=(^2, р^ й£2, где At и Л2 —вспомогательные символы, связанные с состояниями qv и q2 соответственно, причем q2^ F;
АЛЬ, [если (q, b) = (qtl р), b^^ и qt^F, где Л —вспомогательный символ, связанный с состоянием q.
Основываясь на этой кратко описанной процедуре, можно построить соответствующую стохастическому автомату стохастическую регулярную грамматику Gs = (7n, Ft, Л, S), где 7N = = <? — {?( U gr} = {?b 92, Уз}, Ут=2 = {я, 6}, S = qi я Ps:
3/52/3
q^> aq2.q^ > b,
2.151_
qi > a.q3> b,
g2 > bq3.
Отметим, что эта грамматика Gs порождает в точности заданное множество случайных цепочек S3.
Пример 7.8. Стохастическую регулярную грамматику Gt из примера 6.1 можно восстановить по образцу
S9 = {(a61c1, 1/36), (a6tc2, 2/36), (atocs, 3/36),
(аЬдСн 1/36), (ab2c2, 21/36), (ab2c3, 2/36),
(ab3cv, 3/36), (ab3c2, 2/36), (а63с3, 1/36)}.
Пусть Sa(S9, k) = (Q, {a, bt, b2,b3, сь c2, c3}, M, q0,F). При k = 3 fa^hfaSg, 3)=^€!, 1/36), (abtc2, 2/36), (abtc3, 3/36), (ab2ct, 1/36), (ab2c2, 21/36), (ab2c3, 2/36), (ab^, 3/36), (аЬ3с2, 2/36), (ab#3, 1/36)}, qt = h(a, Sg, 3)={(toci, 1/36), (b^, 2/36), (b,^, 3/36),
(toq, 1/36), (Ь2с2, 21/36), (62c3, 2/36),
(b3cv 3/36), (Ь3с2, 2/36), (Ь3с3, 1/36)}, ga = h(ab1, Sg, 3) = {(q, 1/36), (c2, 2/36), (c3, 3/36)},
q3 = h(ab2, Sg, 3) = {(C1, 1/36), (c2, 21/36), (c3, 2/36)}, q4 = h(ab3, Sg, 3) = {(q, 3/36), (c2, 2/36), (c3, 1/36)},
q5 = h(ab1c1, Sg, 3) = {(X, 1/36)}, q6= K(db^c2, Sg, 3) = {(X, 2/36)},
q1=K(ab1c3, Sg, 3) = {(X, 3/36)}, q8 = h(ab2c2, Sg, 3)={(X, 21/36)}, q9 = h(ab2ct, Sg, 3) = 55, 5io = h.(ab2c3, Sg, 3) = q6, дн^Ь/аЪ-А, Sg, 3) = qi, ql2 = h(ab3p2, Sg, 3) = 58, q13 = h (ab3c3, Sg, 3) = q5.
Таким образом,
Q=<qo, 91, Чг, 9з, 9t, 9s, 9s, 9ч, 9s},
F^{(k, 1/36), (X, 2/36), (X, 3/36), (X, 21/36)}, Q' = {^5, 9%, 9i, 9&}
6 (90, a) = toi, Pi), S tos, ci) = (55, Ps), в
6(51, to) = tos, Pt), 6(9i, b2) = (q3, ps), 6(5i, to) = (54, P4>, 6 (52, Ci) = tos, Ps), 6(91,Рз)= (9б, Pe), 6 (9g, c3)=(q1, p4),6(51, to) = tos, Pt), 6(9i, b2) = (q3, ps), 6(5i, to) = (54, P4>, 6 (52, Ci) = tos, Ps), 6(91,Рз)= (9б, Pe), 6 (9g, c3)=(q1, p4),6 (5s, c2)=(58, Pe), 6 (5з, c3) = too, Pio)6 (54, Ci) = (57, pu) 6 (94, Ct) = too, Pie)' 6 (54, c3) = (q5, p13\6 (5s, c2)=(58, Pe), 6 (5з, c3) = too, Pio)6 (54, Ci) = (57, pu) 6 (94, Ct) = too, Pie)' 6 (54, c3) = (q5, p13\
6(51, to) = tos, Pt), 6(9i, b2) = (q3, ps), 6(5i, to) = (54, P4>, 6 (52, Ci) = tos, Ps), 6(91,Рз)= (9б, Pe), 6 (9g, c3)=(q1, p4),
6(51, to) = tos, Pt), 6(9i, b2) = (q3, ps), 6(5i, to) = (54, P4>, 6 (52, Ci) = tos, Ps), 6(91,Рз)= (9б, Pe), 6 (9g, c3)=(q1, p4),
6 (5s, c2)=(58, Pe), 6 (5з, c3) = too, Pio)
6 (54, Ci) = (57, pu) 6 (94, Ct) = too, Pie)' 6 (54, c3) = (q5, p13\
6 (5s, c2)=(58, Pe), 6 (5з, c3) = too, Pio)
6 (54, Ci) = (57, pu) 6 (94, Ct) = too, Pie)' 6 (54, c3) = (q5, p13\
На рис. 7.4 приведена диаграмма переходов стохастического автомата Sa (S9, 3).
Пользуясь условиями нормализации и информацией, содержащейся в образце S9 (см. пример 6.1), получим
£1=1,/?6= 1/3,£и = 1/2,£1=1,/?6= 1/3,£и = 1/2,£2=1/6, р7=1/2, £12 = 1/3,£2=1/6, р7=1/2, £12 = 1/3,£з = 2/3, £в=1/24, pj3=l/6.£з = 2/3, £в=1/24, pj3=l/6.£4=1/6,£g— 21/24,£4=1/6,£g— 21/24,£5=1/6,£10 = 1/12£5=1/6,£10 = 1/12
£1=1,
/?6= 1/3,
£и = 1/2,
£1=1,
/?6= 1/3,
£и = 1/2,
£2=1/6, р7=1/2, £12 = 1/3,
£2=1/6, р7=1/2, £12 = 1/3,
£з = 2/3, £в=1/24, pj3=l/6.
£з = 2/3, £в=1/24, pj3=l/6.
£4=1/6,
£g— 21/24,
£4=1/6,
£g— 21/24,
£5=1/6,£10 = 1/12
£5=1/6,£10 = 1/12
По синтезированному стохастическому автомату легко построить соответствующую ему грамматику.
9.
В этом примере 2 /г = 1- Величина £ (=3) выбрана так, 2=1
чтобы автомат допускал в точности цепочки образца S9. В случае
отсутствия информации относительно, например, последних двух цепочек (пЬ3с2, 2/36), (аЬ3с3,1/36) переходы из состояния д4 определяются лишь частично (определяется только переход из д4 в д7). В этом случае оставшиеся переходы из ^4 в другие состояния (включая себя) можно назначить произвольно, но так, чтобы не нарушить условий нормализации. Разумеется, произвольное назначение вероятностей переходов может привести к тому, что автомат будет допускать дополнительные цепочки (с их вероятностями) х).
*) Это можно интерпретировать как обобщающее или индуктивное звено процесса восстановления (обучения) грамматики.
Практические системы восстановления грамматики
Практическую систему восстановления грамматики разработали Ли и Фу [40]. Для упрощения задачи в системе используется диалог между человеком и машиной. На рис. 7.5 показана блок- схема этой системы. Человек (учитель), возможно, при помощи интерактивного графического дисплея, разбивает каждую цепочку образца St на п различных подцепочек. Затем образец St разбивается на п множеств подцепочек. Каждое такое множество может представлять, например, совокупность подобразов простой структуры, которая легко описывается какой-нибудь грамматикой,
Рис. 7.5. Блок-схема системы восстановления грамматики.
эффективно восстанавливаемой одним из соответствующих методов. В применении к рисункам сегментацию образа на подобразы предлагается проводить, руководствуясь следующими соображениями:
Нужно выбирать просто связные подобразы, так чтобы было легко восстановить грамматику для каждого множества соответствующих подцепочек.
Разбивать изображение следует так, чтобы извлечь максимальную пользу из наличия повторений подобразов. Такая сегментация позволяет пользоваться одной грамматикой прототипа, которая допускает часто встречающиеся цепочки. Кроме того, при такой сегментации можно увеличить число цепочек в образце.
После того как образец St разбит на множества подцепочек ^i, W21 . . ., W^ можно восстановить грамматики Gv G^ . . ., Gn отдельно для каждого множества. Пусть грамматика, восстановленная для множества W ь
Gj - (VNb VTb Pb S^ / = 1, . . ., n.
а общая грамматика, описывающая все образы, G = (KN, Ут, Р, S).
Тогда множество основных символов VTj принадлежит множеству 7т» за возможным исключением некоторых связующих символов С;. Эти символы рассматриваются как основные в Gj и как вспомогательные в грамматике G, т. е. С, g V^j и С3 g F^. Для иллюстрации этой процедуры рассмотрим пример.
Пример 7.9. Пусть задано множество искаженных прямоугольных треугольников, показанное на рис. 7.6. Изображения были
заданы на растре размером 8x8 элементов и закодированы при помощи цепного кода. Использовалось следующее множество непроизводных элементов:
( -3-2 Ч-1/+ 2+34-4 )
Пусть G = (7N, ^т» ^> S) — восстановленная грамматика. Основные правила подстановки заданы для двух сторон прямого угла в виде
5 RBDB\
D-^3H3
для острого угла и гипотенузы;
R-^ 020
для прямого угла. Эти основные правила могут быть выбраны и иначе. Такой выбор обусловлен удобствами представления ). Нужно восстановить две грамматики Gx и G^.
Gx = (7nd 7Т1, Рц ЕР)для гипотенузы,i
G. = (7N2, 7Т2, Р„ В) С для стороны,
где Н ^ 7^1 и В £ Fn2*
Для восстановления этих двух грамматик воспользуемся алгоритмом Креспи-Регицци. Сначала образуем два множества под-
цепочек Wt и W2. Множество ^ состоит из подцепочек, соответствующих всем частям «гипотенузы», а множество W2 — всем частям «сторон». Во всех цепочках из Wt и W2 должна быть установлена структура. Для изображений на рис. 7.6 получим
^ = {[0{0[0[0[0[0[0]]]]]]], [0[0[0[1 -1 -1 1]0]]], [0[1 -2 1]0 [1 -2 1]0]},
w2 = {[0[0[0[0[0[0]]]]]], [0[0[0[0[0[0]]]]]], [0[0[0[0[0[0]]]]]],
[0[[1 -2 1]0[0]]], [0[1 -1 -1 1]0],[0[0[0[1 -2 1]]]]}-
Для множества W\ восстановленная грамматика С1 = (Ум1, Ут, ^1, Я), где Уш - {Я, Мь М2, М3} и Д:
Н-*МЪН-*М2,
Mi -* О,Mi 0М30, Mi -* ОМ3ОМ3О,
М2 -* OMi,М2 -* 0М2,
М3-*1 — 1 -1 1,М3->1 -2 1.
Аналогично Я2 = (Уи2, Ут, Р2, Я), гДе Укз = {Я, Nb N2, N3, N^ и P2:
В -* Ni,B-* N2,
Ni -* О,At -* 0A30,
Яг^ОЯьN2^0N2,N2-+0N3,Na^0N4,
Ns-> 1 -1 -1 1,N3-^ 1 -2 1.
N4^ N30Ni,
Объединяя эти две грамматики Gi и G2 с основными правилами, получим
G = (yN, Ут, р, 8),
Vn = {8, В, В, О, Н, Mi, М2, М3, At, N2, Ns, AJ, Ут={°, 1, -t 2, -2, 3, -3, 4}
и Р;
S RBDB, B^Ni,
Mi-+0, M2-^0Mi, M3-^ 1 -1 -1 1,
Я->ЗЯЗ, b-^n2, Mi-^ОМзО, M2-^0M2,
Я-*020,
H^Mi, н-^м2,
М1->0М30М30,
М3-*1 -2 1.
^->0,N2 0N2l^->0,N2 0N2lN2->0N3,W2->O7V4,7V3-H -2 1,N2->0N3,W2->O7V4,7V3-H -2 1,N^ONj), N^ON„ 7V3->1 -1-11, N^N£NV
^->0,
N2 0N2l
^->0,
N2 0N2l
N2->0N3,W2->O7V4,
7V3-H -2 1,
N2->0N3,W2->O7V4,
7V3-H -2 1,
Эта грамматика порождает три заданных треугольника и различные другие варианты искаженных треугольников.
Для восстановления грамматик GT и G^ вместо алгоритма Креспи — Регицци можно пользоваться процедурой восстановления регулярной грамматики Бирмана — Фельдмана.
Пример 7.10. Рассмотрим изображение неравноплечной хромосомы, показанное на рис. 7.7, а. Пользуясь его симметрией, выберем подобразы так, как показано на рис. 7.7, б. Основные правила подстановки таковы:
S^BB,
В —> с Плечо d Плечо,
№№Рис. 7.7. Изображение неравноплечной хромосомы, (а) ЗакодированноеРис. 7.7. Изображение неравноплечной хромосомы, (а) Закодированное(б)(б)где символ В представляет половину хромосомы. В данном случае необходимо восстановить грамматику для подобраза «Плечо».
№
№
Рис. 7.7. Изображение неравноплечной хромосомы, (а) Закодированное
Рис. 7.7. Изображение неравноплечной хромосомы, (а) Закодированное
(б)
(б)
изображение: х = cdabbbdbbbabbcbbabbbbdbbabb.
Части изображения выше и ниже штриховой линии имеют одинаковую структуру- (б) Подструктуры закодированного изображения. Структурный образец языка состоит из множества ^ цепочек, описывающих все плечи хромосомы
51 - {[&[[№№]; [&[&№]№]; [&[&[[[«]&]&]&]&]; Р*№]]Ы}.
Воспользуемся вновь алгоритмом Креспи-Регицци. Структурный образец для подобраза «Плечо» (рис. 7.7, б) состоит из подцепочек
Ш№Ь№; №№]№]; №№№№; [№№]}.
Эти четыре подцепочки используются при восстановлении грамматики, порождающей подобраз «Плечо». Эта грамматика такова:
^ = (Kni, Vt, Р^ Плечо),
где
Уш = {Плечо, Я, G, F, Е^
VT = i ^а, ^b, ^с,^ d |
И Р<.
G bGb, G ->- bHb. F^Fb,G bGb, G ->- bHb. F^Fb,E -+ a.E -+ a.Плечо -> G,G -> bFb.F-^Eb,H-^bE,
G bGb, G ->- bHb. F^Fb,
G bGb, G ->- bHb. F^Fb,
E -+ a.
E -+ a.
Таким образом, грамматика для изображения неравноплечной хромосомы имеет вид G = (yN, Ут, Р^ 8), где yN = {5, В, Плечо, Я, G, F, Е} и Р:
8 -^ВВ,
В^с Плечо d Плечо,
Плечо —►■ G,
G ->- bGb, G ->- bFb. G ЪНЪ.
F^Fb,F^Eb,
H^bE,Е^а.
Аппроксимация стохастических языков
Как правило, сложность языков какого-либо класса определяют в терминах его синтаксической структуры. Для грамматик непосредственно составляющих последовательность из неограниченных языков, языков непосредственно составляющих, бесконтекстных и регулярных упорядочена по убыванию степени сложности. Это означает, что неограниченные языки рассматриваются как наиболее сложные, а регулярные — как наименее сложные.
Известно, что чем сложнее язык, тем труднее восстановить грамматику, которая его порождает. Основная причина такого положения состоит в том, что в известных алгоритмах восстановления от грамматики G требуется, чтобы она порождала каждую цепочку языка L и не порождала ни одной цепочки, не принадлежащей L. В стохастическом языке (А, р) с каждой цепочкой х £ L можно связать вероятность р (^) ее порождения. Разумно предположить, что наиболее возможные цепочки являются в языке L и наиболее важными, а наименее возможные цепочки — наименее важными. Поэтому наиболее реалистический подход к восстановлению грамматики стохастического языка (L, р) состоит в том, чтобы построить такую грамматику, которая будет порождать
цепочки с относительно большой вероятностью их появления, ,а другие цепочки из L порождать необязательно. В частности, такой подход полезен при синтаксическом распознавании образов, поскольку всегда можно построить относительно простой стохастический конечный автомат, допускающий наиболее вероятные цепочки. Прежде чем перейти к изложению этого подхода к восстановлению грамматической структуры стохастического языка, необходимо дать несколько основных определений и привести некоторые • результаты по аппроксимации стохастического языка стохастическим регулярным языком.
—V*]
Определение 7.25. Пусть 5 g 2 т, где 7Т —- конечное множество основных символов. Тогда вероятностью множества S называется величина
Р (5) = ^Р ^,(7.20)
xcg
где р (х) —отображение множества 7$ на отрезок [0, 1], причем Sp fa) = 1.
Определение 7.26. Пусть 0<е<1. Стохастический язык (£27 Р^ слабо е-аппроксимирует стохастический язык iL^ PxY если р^Ьх П L2) > 1 — е при t = 1, 2,(7.21)
где
Pi(Lx Л La) = ^р^х) при i = 1, 2.(7.22)
хЕЬ1П^2
Определение 7.27. Пусть 0<с<1- Стохастический язык ^Ьг, р2) сильно е-аппроксимирует язык (£17 ру), если
"1)
Py^Ly Л Р2) >1—6 при i = l,2(7.23)
и
2)
Ру ^ = Рч М Для всех ж € Ьг Л ^2-(7-24)
Пример 7.11. Рассмотрим стохастический язык (Ly, ру) непосредственно составляющих, где Ly = {anbncn | п > 0} и Ру (aP^c") = (1/2)”, п > 0. Этот язык может быть порожден грамматикой
G = (PN, Ft, Ps, S), где
5aSBA,bB—bb,
SаВА,ЬА—be,
AB ——>BA,cA——»cc.
aB ——>ab,
Описанная в [41] стохастическая бесконтекстная грамматика порождает язык (Л2, р2), который аппроксимирует по крайней мере 96,9% всех цепочек языка Lv Другими словами, язык (Л2, р2) (слабо) е-аппроксимирует язык (Z^, р^ при 8 ^0,03125. Эта грамматика такова:
G, - (KN, Ут, PS1 S) Ч,где VN = {S, Л, В, С, Е, F, Н, J, К}, V^ = {a, К с} и Ps:
1
а Ас,
°’49277
D ——> аЕс,
ьь,
0,502 >
ь,
Е
НН,
0,365
aJc.
0,498
аВс,
„ 0,484
Е>
aFc,
^ 0,635
> кннъ,
0,504
ьь,
„ 0,538
F>
ННЬ,
0,365 К?
> ък,
0,496
aDc,
aJc,
TZ 0,635
К;
* ь,
0,508
L^=^ pMlM pOl^l, 2, 3, 4, 5 и (aW, pnm)|n, mZ^Y
Вероятности некоторых цепочек, порождаемых соответственно грамматиками Gx nG^, приведены в следующей таблице:
Цепочки х
Р4 (зс)
р2 (^
abc
0,5
0,502
а^Ь^с^
0,25
0,251
а^Ъ^с^
0,125
0,1257
а4Ъ4с4
0,0625
0,0629
а^Ь^с^
0,03125
0,0317
Теорема 7.9. Любой стохастический бесконтекстный или регулярный язык можно сильно г-аппроксимироватъ стохастическим регулярным языком при некотором 0 < £ < 1 ).
Доказательство. Пусть (L, р)— некоторый стохастический бесконтекстный или регулярный язык, где L — ^х^ я2, •••}, а р^х^^р^, ... . Поскольку 2 Ркх^ = ^ существует такое 1=1 п < оо [45], что
2 ^(^)<6>(7-25)
г—п+1
где е>0. Пусть (L\ р') — такой стохастический язык, что
U ={xi, х2, ...^x^U^y рЧхд^Р(хд ПРИ i = i,...,n и
р'(у) — 2 Р^д*(7.26)
1=п-М я
где z/ —цепочка, не входящая в множество {^^ . ..,^п}.
Очевидно, что ^L', р')—стохастический регулярный язык, который строго е-аппроксимирует язык (L, р).
Пример 7.12. Рассмотрим стохастический бесконтекстный язык (L, р), где 1/ = {0п1п| л>0} и р (0п1п) = (1)п для п>0. Для любого 0<8<1 стохастический регулярный язык (Z7, р), строго е-аппроксимирующий язык (L, р), можно определить следующим образом. Положим L' = {0п1п10<2n^.N} U {ж}, где я6{О, 1}*-Л; и рДОЧ^-p^V) для 0<n^N и /(!)-!-
N
— 2 Р (0п1п) = (-^-) . Легко показать, что п=1
Рц^и^Рчь№=^ (т)п = 1~(тГ-.
П=1
Если выбрать N так, чтобы (”^) <е, то
Р (L Л Г) - р* (L Л L’^ > 1 - 8.
Следовательно, язык (.U, р') строго е-аппроксимирует язык (L, р).
Следствие. Любой стохастический бесконтекстный или регулярный язык может быть слабо ^-аппроксимирован стохастическим регулярным языком.
Основываясь на понятии 8-аппроксимации и на методе построения стохастического конечного автомата (см. разд. 7.5), допускающего стохастический регулярный язык, опишем подход к восстановлению стохастических языков.
Модель восстановления стохастических языков состоит из трех основных частей.
Стохастический синтаксический источник G, случайно порождающий наблюдаемые цепочки.
Алгоритм восстановления, который по t наблюдениям языка L (G) находит стохастическую регулярную грамматику Gtl которая порождает язык, е-аппроксимирующий язык стохастического синтаксического источника G. При необходимости можно построить стохастический бесконтекстный язык или язык непосредственно составляющих, который е-аппроксимирует восстановленный регулярный язык.
Информатор, который имеет сведения о структуре стохастического синтаксического источника. Он используется для оценки качества восстановления. Иными словами, если р (I/(G) f|
Fnc. 7.8. Блок-схема процесса восстановления стохастической грамматики.Fnc. 7.8. Блок-схема процесса восстановления стохастической грамматики.
Fnc. 7.8. Блок-схема процесса восстановления стохастической грамматики.
Fnc. 7.8. Блок-схема процесса восстановления стохастической грамматики.
f| L (Gt)) ^ 1 — е при данном 0 < е < 1, где Gt — восстановленная по t наблюдениям Д(?)-грамматика, то Gt — приемлемое решение задачи. В противном случае для восстановления синтаксической структуры стохастического источника необходимо * + 1 наблюдений.
п2 Раз, . . . вероятностьп2 Раз, . . . вероятностьНа рис. 7.8 показана блок-схема системы восстановления стохастического языка. Пусть хТ1 . . ., xt —множество из t наблюдений, в которых появлялись отличные друг от друга цепочки 4i . . ., smi причем цепочка ^ появлялась пх раз, цепочка $2 — , цепочка $т — пт раз, и пг + уц + . . . + пт — t. порождения каждой цепочки st эмпирически оценивается по частоте ее Появления, т. е. ft = njt. Тогда множество
п2 Раз, . . . вероятность
п2 Раз, . . . вероятность
случайных цепочек, представляемых системе восстановления, Sm = {($1, /1), • • ., (sm, /т)}, где’
тт
2 Л = 2 nt[t=l.
i=l2=1
Стохастический конечный автомат, допускающий множество Sm^ определяется как 5а (5т, к), где к — максимальная длина цепочки из множества 8т.
Эта схема восстановления находит некоторую стохастическую регулярную грамматику, порождающую язык, который е-аппрокси- мирует язык неизвестного стохастического синтаксического источника. По восстановленной грамматике можно предсказывать другие цепочки, которые могут быть порождены источником, а также цепочки, которые этот источник породить не может. Тем не менее полученная грамматика дает некоторое вероятностное описание наблюдаемых цепочек, порожденных неизвестным стохастическим синтаксическим источником G. Если число наблюдений t стремится к бесконечности, то частота /г появления каждой наблюдаемой цепочки sz- приближается к истинной вероятности р (s^ ее порождения неизвестным источником G. Следовательно, при t—^oo величина р (L (G) П L (Gt)) приближается к единице.
Недавно Пэтель [42] предложил алгоритм восстановления для стохастических регулярных языков, определенный в терминах растущих грамматик. На каждом шаге своей работы алгоритм строит грамматику с большим числом правил подстановки, чем было у грамматики, построенной на предыдущем шаге. Растущая грамматика считается решением задачи по достижении такого момента, когда она полностью определена как однозначная праволинейная стохастическая грамматика, т. е. когда она согласована и правильна [45, 46]. Точное решение получается в том случае, если все правила восстанавливаемой грамматики используются при порождении данного образца хотя бы один раз. В противном случае получится лишь аппроксимация восстановленного языка.
СПИСОК ЛИТЕРАТУРЫ
Chomsky N., Aspects of the Theory of Syntax, MIT Press, Cambridge, Massachusetts, 1964.'
Naur P. et al., Report on the algorithmic language ALGOL 60, Comm. ACM, 3, 299, 314 (1960).
Irons E. T., A syntax-directed compiler for ALGOL 60, Comm. ACM, 4, 51—55 (1961).
Leavenworth В. M., FORTRAN IV as a syntax language, Comm. ACM, 7, 72—80 (1964).
Floyd R. W., The syntax of programming languages — A survey, IEEE Trans. Electron. Comput., EC-13, 346—353 (1964).
Fu K. S. and Swain P. H., On syntactic pattern recognition, In Software Engineering (J. T. Tou, ed.), Vol. 2, Academic Press, New York, 1971.
Sherman R. and Ernst G. W., Learning patterns in terms of other patterns, Pattern Recognition, 1, 301—314 (1969).
Sauvain R. and Uhr L., A teachable pattern describing and recognizing program, Pattern Recognition, 1, 219—232 (1969).
Whinston P. H., Learning Structural Descriptions from Examples, Rep. MAC TR-76, Project MAC. MIT, Cambridge, Massachusetts, September 1970.
Kaneff S., On the role of learning in picture processing, In Picture Language Machines (S. Kaneff, ed.), Academic Press, New York, 1970.
Macleod I. D. G., On finding structure in pictures. In Picture Language Machines (S. Kaneff, ed.), Academic Press, New York, 1970.
Schwebel J. C., A graph structure model for structure inference, In Graphics Languages (F. Nake and A. Rosenfeld, eds.), North-Holland Publ., Amsterdam, 1972.
Peizer D. B., and Olmsted D. L., Modules of grammar acquisition, Language, 45, 61—96 (1969).
Solomonoff R. J., A new method for discovering the grammars of phrase structure languages, Information Processing, UNESCO Publ. House, New York, 1959.
Crespi-Reghizzi S., Melkanoff M. A. and Lichten L., A Proposal for the Use of Grammar Inference as a Tool for Designing Programming Languages, Rep. No. 71-1. Lab. di Calcolatori, Inst, di Elettrotecn. ed Electtron. del Politecn. Milano, Italy, March 1971,
Feldman J. A. and Gries D., Translator writing systems, Comm ACM, 11, 77—113 (1968).
Kaneff S. ed., Picture Language Machines, Academic Press, New York, 1970.
Ross D. T. and Rodriguez J. E , Theoretical foundations for the computer- aided design project, Proc. AFIPS Spring Joint Comput. Conf., April 1963, Spartan Books, Inc., Baltimore, Maryland, 1963.
Rosenbaum P. S., A grammar base question-answering procedure, Comm. ACM, 10, 630-635 (1967).
Evans T. G., Grammatical inference techniques in pattern analysis, In Software Engineering (J. T. Tou, ed.), Vol. 2, Academic Press, New York, 1971.
Feldman J. A. and Shields P., On Total Complexity and the Existence of Best Programs, Tech. Rep. No. CS-255. Comput. Sci. Dept., Stanford Univ., Stanford, California, 1972.
Gold E. M., Language identification in the limit, Information and, Control 10, 447—474 (1967).
Feldman J. A., First Thought on Grammatical Inference, Stanford Artificial Intelligence Proj. Memo. No. 55, Stanford Univ., Stanford, California, 1967
Feldman J. A., Some Decidability Results on Grammatical Inference and Complexity, Stanford Artificial Intelligence Proj. Memo. AI-93, Stanford Univ.', Stanford, California, 1969.
Feldman J. A., Gips J., Horning J. J. and Reder S., Grammatical Complexity and Inference, Tech. Rep No. CS-125. Comput. Sci. Dept., Stanford Univ., Stanford, California, 1969.
Horning J. J., A study of Grammatical Inference, Tech. Rep. No. CS-139, Comput. Sci. Dept., Stanford Univ., Stanford, California, 1969.
Horning J. J., A procedure for grammatical inference, IFIP Congr., Yugoslavia, August 1971.
Pao T. W., A solution of the Syntactical Induction-Inference Problem fot a Non-Trivial Subset of Context-Free Languages, Interim Tech. Rep. No. 69-19, Moore School of Elec. Eng., Univ, of Pennsylvania, Philadelphia, Pennsylvania, 1969.
Crespi-Reghizzi S., The Mechanical Acquisition of Precedence Grammars, Tech. Rep. UCLA-Eng-7054, Univ, of California, 1970.
Crespi-Reghizzi S., An effective model for grammar inference, IFIP Congr. Yugoslavia, August 1971.’’
Crespi-Reghizzi S., Reduction of enumeration in grammar acquisition, Proc. Int. Joint Conf. Artificial Intelligence, 2nd, London, September 1—3, 1971.
Solomonoff R. J., A formal theory of inductive inference, Information and, Control, 7, 1—22, 224—254 (1964).
Biermann A. W. and Feldman J. A., On the Synthesis of Finite-State Acceptors, Stanford Artificial Intelligence Proj. Memo. AIM-114. Stanford Univ. Stanford, California, 1970.’
Biermann A. W., A Grammatical inference program for linear languages, Int. Conf. Syst. Sci., 4th, Hawaii, January 1971.’
Biermann A. W. and Feldman J. A., A survey of results in grammatical inference, Int. Conf. Frontiers of Pattern Recognition, Honolulu, Hawaii
* January 18—20, 1971.’
Biermann A. W. and Feldman J. A., On the synthesis of finite-state machines from samples of their behavior, IEEE Trans. Computers, C-21, 592—597 (1972).
Feldman J. A., Some decidability results on grammatical inference and complexity, Information and, Control, 20, 244—262 (1972).
Fu K. S., On syntactic pattern recognition and stochastic languages, Int. Conf. Frontiers of Pattern Recognition, Honolulu, Hawaii, January, 18—20, 1971; published in Frontiers of Pattern Recognition (S. Watanabe, ed.). Academic Press, New York, 1972.
Huang T. and Fu K. S., Stochastic Syntactic Analysis and Syntactic Pattern Recognition, Techn. Rep. TR-EE 72-5. School of Elec. Eng., Purdue Univ., Lafayette, Indiana, 1972.
Lee H. C. and Fu K. S., A syntactic pattern recognition system with learning capability, Proc. Int. Symp. Comput. and Inform. Sci. (COINS-72), Miami Beach, Florida, December 14—16, 1972.
, Lee H. C. and Fu K. S., Stochastic Linguistics for Pattern Recognition, Tech. Rep. TR-EE 72-17, School of Elec. Eng., Purdue Univ., Lafayette, Indiana, June 1972'.
Patel A. R., Grammatical Inference for Probabilistic Finite State Languages, Ph. D. Thesis, Dept, of Elec. Eng., Univ, of Connecticut, Storrs, Connecticut, May 1972.
Reynolds J. C., Grammatical Covering, Tech. Memo. No. 96. Appl. Math. Div. Argonne Nat. Lab. Argonne, Illionis, March 1968.
Hartmanis J. and Stearns R. E., Algebraic Structure Theory of Sequential Machines, Prentice-Hall, Englewood Cliffs, New Jersey, 1966.
Booth T. L., Probability representation of formal languages, IEEE Annu. Symp. Switching and Automata Theory, 10th, October, 1969.
Fu K. S. and Huang T., Stochastic grammars and languages, Int. J. Comput. Inform. Sci., 1, 135—170 (1972).
Watanabe S., Knowing and Guessing, Wiley, New York, 1969.
Gold E. M., Current approaches to the inference of phrase structure grammars, Phrase Struct. Miniconf., Montreal, Canada, March 22—23, 1973.
Anderson R. H., The linguistic approach to pattern recognition as a basis for adaptive program behavior, Proc. Allerton Conf. Circuit, and Syst. Theory, Monticello, Illinois, 1972, pp. 2—10.
Приложение А
Синтаксическое распознавание изображенийхромосом
Для описания изображений неравноплечных и V-образных хромосом (рис. АЛ) в работе Ледли и др. [1] предложена следую-
(а)
Рис. 1.А (а) Неравноплечная хромосама, (б) V-образная хромосома.
щая бесконтекстная грамматика
G = (7n) Vt, Р, {(неравноплечная хромосома), (V-образная хромосома)}), где
Vn = {(неравноплечная хромосома), (V-образная хромосома), (пара плеч), (левая часть), (правая часть), (плечо), (сторона), (основание)},
а Ь с d е
и Р:
(неравноплечная хромосома) -> (пара плеч) (пара плеч) (V-образная хромосома) -> (основание) (пара плеч) (пара плеч) -> (сторона) (пара плеч) (пара плеч) -> (пара плеч) (сторона)
,17-086
(пара плеч) -> (плечо) (правая часть)
(пара плеч) -> (левая часть) (плечо)
(левая часть) ->- (плечо) с
(правая часть) с (плечо)
(основание) -> b (основание)
(основание) -> (основание) b
(основание) -> е
(сторона) -> b (сторона)
(сторона) -> (сторона) Ъ
(сторона) -> b
(сторона) -> d
(плечо) -> Ъ (плечо)
(плечо) (плечо) b
(плечо) а.
Стрелка на границах хромосом на рис. А.1 указывает первый непроизводный элемент цепочки и направление ее разворачивания.
Для синтаксического анализа изображений хромосом в описанной в [1, 2] системе используется транслятор MOBILIZER. Он распознает, является ли входное изображение, представленное цепочкой, хромосомой или нет, а если это хромосома, то к какой категории она относится. В действительности транслятор MOBILIZER работает с числами. Ниже приведены правила подстановки, в которых вспомогательные символы закодированы номерами.
Р: 7775, 75;
76^72, 75;7571, 75;75-^70, 73;74 -> 70, с;73-^ с, 70;72->й, 72;71 -^Ь, 71;70 -> Ь. 70;76^72, 75;7571, 75;75-^70, 73;74 -> 70, с;73-^ с, 70;72->й, 72;71 -^Ь, 71;70 -> Ь. 70;75-^75, 71;75-^74, 70;75-^75, 71;75-^74, 70;72-^72, Ь;72-^72, Ь;72->е;72->е;7171, Ь; 71 -^d;70-^70, Ь; 70-^ а.7171, Ь; 71 -^d;70-^70, Ь; 70-^ а.
76^72, 75;
7571, 75;
75-^70, 73;
74 -> 70, с;
73-^ с, 70;
72->й, 72;
71 -^Ь, 71;
70 -> Ь. 70;
76^72, 75;
7571, 75;
75-^70, 73;
74 -> 70, с;
73-^ с, 70;
72->й, 72;
71 -^Ь, 71;
70 -> Ь. 70;
75-^75, 71;
75-^74, 70;
75-^75, 71;
75-^74, 70;
72-^72, Ь;
72-^72, Ь;
72->е;
72->е;
7171, Ь; 71 -^d;
70-^70, Ь; 70-^ а.
7171, Ь; 71 -^d;
70-^70, Ь; 70-^ а.
В трансляторе MOBILIZERJ используется процедура [грамматического разбора снизу вверх. Она начинает с первой части цепочки и просматривает список правил подстановки в поисках
подходящей части цепочки. Если единственным подходящим участком оказывается левая часть такого правила, у которого правая часть имеет номер, больший, чем часть цепочки, то делается попытка применить правило более высокого уровня. Действие процедуры можно проиллюстрировать на следующем примере:
Шаг
babcbabdbabcbabd
1
2
3
4
5
6
7
8
9
10 И
12
13
14
15
16
17
18
19
20
21
b70bcbabdbabcbabd 70bcbabdbabcbabd 70cbabdbabcbabd 74babdbabcbabd 74b70bdbabcbabd 7470bdbabcbabd 75bdbabcbabd 7bb7Ybabcbabd 7571babcbabd 75babcbabd 7bb7^bcbabd 7b70bcbabd IblQcbabd 7574babd 7b74b70bd 7b7470bd 757556/ 7575671 757571 7575 77
Использовав то же самое множество Ут основных символов т что и в работе Ледли [2], Ли и Фу [3] построили следующие три трамматики для описания изображений равноплечных, неравноплечных и акроцентрических хромосом (рис. А.2).
Грамматика, порождающая описания изображений равноплечных хромосом:
где 7Nm = {5, А, В. D. Я, J. Е. F^ УТ7П = {^ b. с, d} и Рт:
$^ АА,$^ АА,А-^сВ.А-^сВ.В ЕВЕ.В НШ.В ЕВЕ.В НШ.D FDE.D-^d. F-^b. E-^b.D FDE.D-^d. F-^b. E-^b.Н^а.Н^а.J -^ а.J -^ а.
$^ АА,
$^ АА,
А-^сВ.
А-^сВ.
В ЕВЕ.
В НШ.
В ЕВЕ.
В НШ.
D FDE.
D-^d. F-^b. E-^b.
D FDE.
D-^d. F-^b. E-^b.
Н^а.
Н^а.
J -^ а.
J -^ а.
та
ХраВ н = cbbbabbbbdbbbbabbbcbbbabbbbdbbbbabbb
аСьь.ь^,аСьь.ь^,(5)
аСьь.ь^,
аСьь.ь^,
хнера6н = cbabbbdbbbbbabbbcbbbabbbbbdbbbab
хакр = cadbbbbbbabbbbbcbbbbbabbbbbbda
Рис. А.2. Три примера изображений хромосом. Представление в виде цепочки (а) равноплечной хромосомы, (б) неравноплечной хромосомы, (в) акроцен
трической хромосомы.трической хромосомы.Грамматика, порождающая описания изображений неравноплечных хромосом:
трической хромосомы.
трической хромосомы.
Gs = (FNs, yTs, Л, 8),
где 7Ns = {S, А, В, D, Н, J, Е, F, W, G, R, L, М, N}, VTs = = 7Tm и Ps:
S-^AA, G-^FG, E-^b, A CM, L HNJ, F-^b, В FBE, L-+ FL, G-^d, В FL, M FBE, H-^a, B^BE, N FDE, J-^a, D FDE, R HNJ, W^d, D-^FG, R^ RE,
D WE, W WE.
Грамматика, порождающая описания акроцентрических хромосом:
Ga = (VNai 7Та, PQ1 SV
где 7No = {S, А, В, D, Н, J, Е, F, L. R, W, G^ VTa = VTmH Ра:
S^ AA,
D-
+ WE,
R-
> RE,
A-»-
cB,
G-
^FG,
w-
^WE,
B-+
FL,
L-
*HDJ,
G-
B-+
RE,
F-
*b,
H-
■>• a,
E^
b,
L-
> FL,
J-
>■ a,
EG,
R-
+ HDJ,
W-
СПИСОК ЛИТЕРАТУРЫ
Ledley R. S., Rotolo L. S., Golab T. J., Jacobsen J. D., Ginsburg M. D. and Wilson J. B., FIDAC: film input to digital automatic computer and associated syntax-directed pattern recognition programming system. In «Optical and Electro-Optical Information Processing» (Tippett J. T. et all eds.), Chapter 33, pp. 591—614. MIT Press, Cambridge, Massachusetts, 1965.
Ledley R. S., Programming and utilizing Digital Computers, McGraw-Hill, New York, 1962. (Русский перевод: Ледли P. С., Программирование и использование цифровых вычислительных машин, «Мир», 1966.)
Lee Н. С. and Fu К. S., A stochastic syntax analysis procedure and its application to pattern classification, IEEE Trans. Computers, C-21, 660— 666 (1972).
Приложение В
Язык описания изображений — PDL(Picture Description Language)
В этом приложении коротко описывается язык PDL (язык описания изображений), разработанный Шоу [1, 2]. Каждый непроизводный элемент (основной символ) помечается в двух различающихся точках — головной (head) и хвостовой (tail). Непроизводный элемент может быть связан или примыкать к другим непроизводным элементам только в хвостовой и/или головной точках. Определяются четыре бинарных оператора конкатенации
Непроизводные элементы структурного описанияа -\-Ьaxbа— bа*ЪНепроизводные элементы структурного описанияа -\-Ьaxbа— bа*ЪГрафГраф
Непроизводные элементы структурного описания
а -\-Ь
axb
а— b
а*Ъ
Непроизводные элементы структурного описания
а -\-Ь
axb
а— b
а*Ъ
Граф
Граф
Интерпретация
головная точка аПРИМЫКАЕТ Кхвостовой точке b
хвостовая точка а ПРИМЫКАЕТ К хвостовой точке b
головная точка а ПРИМЫКАЕТ К головной точке b
головная точка а
ПРИМЫКАЕТ К головной точке b /\ хвостовая точка а
ПРИМЫКАЕТ К хвостовой точке b
Унарная операция ~ определяется как перемена мест головной и хвостовой точек. Например,
/h
Грамматика, порождающая предложения в языке PDL (выражения языка PDL), есть бесконтекстная грамматика ^ (Г^ Гт, Р, 5), где VN — {5, SL^ FT = {6} (J {-4-7 X, —, *, ~, /, (, )}(J (){/}, b может быть любым непроизводимым элементом, включая нулевой точечный непроизводимый элемент X, который имеет идентичные головную и хвостовую точки, и Р:
S^b, S-+(S0bS), S-^^S^ S^SL, S^(/SL)
SL-^S1, SL^(SL0bSL). SL->(- SL). SL-^(/SL)
0ь->+» 0b-^X, 0b-^—, 0ь-^*1
I — указатель метки, использующийся для перекрестных ссылок внутри описания. Оператор / употребляется для того, чтобы можно было произвольно располагать головную и хвостовую точки предложения. Следующие примеры иллюстрируют (рис. Б.1—Б.З) использование языка PDL для структурного описания образов.
На рис. Б.5 показаны выражения языка PDL для прописных букв английского алфавита, составленные из непроизводных элементов, приведенных на рис. Б.4.
В физике частиц высокой энергии одним из наиболее обычных методов получения характеристик элементарной частицы является анализ траектории («трека»), оставляемого частицей и ее побочными эффектами в детекторной камере, такой, как пузырьковая Хамера или искровая камера. Обычно в эксперименте может получиться несколько сотен тысяч фотографий таких треков. Поскольку приходится иметь дело с большим количеством данных и необходима высокая точность и большое количество вычислений Для каждого интересного снимка, желательна их машинная обработка.
Кроме треков частиц, снимки обычно содержат некоторую определяющую информацию («в банке данных»), такую, как номер рамки, направление съемки, характеристики входного пучка, дату и множество «опорных точек»—меток на камере, положение которых точно известно. Эти точки позволяют реконструировать треки в реальном пространстве.
Непроизводные элементы :
Выражение языка PDL, описывающее букву А :
Выражение языка РСЦ описывающее букву F:
{d+(ax(d+a})){d+(ax(d+a}))
{d+(ax(d+a}))
{d+(ax(d+a}))
Рис. Б.1. Структурное описание букв А и F на языке PDL.
На рис. Б.6 приведен синтаксис суммарной картины движения физических частиц. Предполагается, что отрицательно заряженная частица ТЫ входит в камеру, содержащую положительные частицы Р, находясь под действием магнитного поля; ТМ входит слева. Предусмотрены следующие типы реакций:
Взаимодействие с Р:
TM^P-^TM-VTP
-^TM-VTP-V-TN
-^TN.
Распад отрицательной частицы ТМ -> ТМ + TN.
Выражение языка PDL для этого объекта
( ( ( е1 + я ) * ( ( ( / е1) + Ь ) + ( / eJ ) ) ) * М с + eJ' ) * f ) )( ( ( е1 + я ) * ( ( ( / е1) + Ь ) + ( / eJ ) ) ) * М с + eJ' ) * f ) )
( ( ( е1 + я ) * ( ( ( / е1) + Ь ) + ( / eJ ) ) ) * М с + eJ' ) * f ) )
( ( ( е1 + я ) * ( ( ( / е1) + Ь ) + ( / eJ ) ) ) * М с + eJ' ) * f ) )
^10. Б.2.^10. Б.2.
^10. Б.2.
^10. Б.2.
Объект: трехмерный ку5
Непроизводные элементы:а
Выражение* языка PDL для этого объекта :
(((а*((dl + а ) + (~dj ) ) ) * ( ( (( / d')+ Ь)
+((а*((~ d ) + ( ak+d ) ) ) + ( - Ь )) ) +(~ (/dJ" ) ) ) )
*((b+(/ак ) ) + ( ~Ь) ) )
Описание объектов на языке PDL. (а) Граф с четырьмя вершина? и (б) Трехмерный куб.
гдегдеи P:и P:G- (VN, VT, P, 5)G- (VN, VT, P, 5)VN = {S, А, Домик, Треугольник)VN = {S, А, Домик, Треугольник)ee
где
где
и P:
и P:
G- (VN, VT, P, 5)
G- (VN, VT, P, 5)
VN = {S, А, Домик, Треугольник)
VN = {S, А, Домик, Треугольник)
e
e
5 -* A, 5 -* Домик
A -* (Ь + Треугольник + c ) )
Домик -((e + (cz+(~e) ) ^Треугольник )
Треугольник -* ( ( b + c ) * a )
£(G) = [ (b+ ( ( (b+c ) *a) + c) ) , ( (e + (aH ~e) ) ) *( (b + c)*a) ) ]£(G) = [ (b+ ( ( (b+c ) *a) + c) ) , ( (e + (aH ~e) ) ) *( (b + c)*a) ) ]
£(G) = [ (b+ ( ( (b+c ) *a) + c) ) , ( (e + (aH ~e) ) ) *( (b + c)*a) ) ]
£(G) = [ (b+ ( ( (b+c ) *a) + c) ) , ( (e + (aH ~e) ) ) *( (b + c)*a) ) ]
Рис. Б.З. Структурное описание на языке PDL буквы А и объекта «домик».
Л/ *Л2 —►Л/ *Л2 —►v1 ♦v1 ♦di 'di 'v2 |V, fv2 |V, f
Л/ *
Л2 —►
Л/ *
Л2 —►
v1 ♦
v1 ♦
di '
di '
v2 |
V, f
v2 |
V, f
Рис. Б.4. Непроизводные элементы.
Распад нейтральной частицы
TN -> ТМ + ТР.
Распад положительной частицы TP -> TP + TN.
Частицы ТР и TN представляют собой положительно заряженную и нейтральную частицы соответственно. Используемые выше обозначения сходны с обычными условными физическими обозначениями. Продукты реакций сами могут проходить те же стадии, и это может случаться неопределенное число раз. Камера имеет четыре опорные точки (х) и детектор частиц.
Описания на языке PDL упорядочены слева направо, так что нижняя левая опорная точка FI появляется первой, и ее центр используется как хвостовая точка для описания положения
А-*(^2 + (№4-^2)»А2)+у2)
В->((и2 + ((и2 + А2+(Д + (~(^1 -l1)))*A2) b ^1 -Ь (~(Л +Н)))*Л2)
С->(((~^1) + у2 + ^1 + AI Хд\ 4 (-Н)) х (Al ^^dl -г vD хА)))
D (А2 ♦ (гЗ + А2 + д\ + ^d\ + г2))))
Е ((г2 4- ((t’2 + А2) х А1)) х А2)
F->((u2 + ((y2 + A2)xAl))x А)
G-* («Х^О + у2 + Л 4-А1 4-^1 + (-tl))x(Al 4-((Л + Н -А1)х А)))
Н -> (v2 + (и2 х (А2 4- <v2 х (~ г2)))))
I (гЗ х Л)
J ->((((~Л) 4- V,) х А1) 4- ((Л + гЗ) х А))
К ^(г2 + (г2 х d2 хд2^
L -> (уЗ х А2)
M-^(y3+^3+J3 + (~y3))
N -> (оЗ + уЗ + (оЗ х Л))
О^(А1 »((~Sl) + i>2+<7! + Al + д( + (-(</! +02))))
Р ->• «о2 + «12 + А2 + gl+ Hdl + о1») • А2» х Л)
<Н(А1 .((~01) + о2+<Л +А1 + ,1 + (-(</! +«-»!)> sD-i-2))))
R->(o2 + (A2.(o2 + A2+4zl +(~W1 +г1»)+»2)
S^((((~Sl) + ol) х Al) + «</1 +ol +(-(^1 +А1 +^l)) + t-l -^1 - Al +gl
+ (-«!)) хЛ»
Т-*((оЗ + (HL X (~A1))) x A)
U-*((((-»!) +1>3) x Al) + ((d\ +1>3) x A))
V-+((~p3)xd3xA)
w «( ~^3) + <73 + g^ + (d3 x A))
X^(<Z2 + ((~ir2)x <72x^2»
Y-((v2 + ((~g2)x d2))x A)
Z->((</3-A2)X A2)
Рис. Б.5. Запись на языке PDL изображений букв английского алфавита.
Ы ■ МП ст
СР
dp //dp //
dp //
dp //
es // V Исходный
еп t w //непроизводный элемент)
ИЗОБРАЖЕНИЕ -> (es + (FI + (FID х (ID х PT))))
FI -> (dp + (dm x (dp x (A — dm))))
FID -+ ((eh + X) + ((ev -V X) - (X ^ eh)))
ID -> ((eb + В) + ((ec + В) + ((ec + В) + (ec + B))))
PT-*(ep^TM)
X-*((dp x dm) x ((~dp) X (A — dm)))
B-*bo,B-*b\
TM-^(cm + MD), TM->(cm + MP), TM^cm
MP-*(P^((TMx TP)x TN)),MP^(P-F(TMx TP)), MP -^ (P + TN)
MD->(TMx TN),MD^TM
TP-*(cp-VPD),TP-*cp
TN -> (en -V(N-V (TM x TP)))
PD-*(T?xTN),PD-*TP
P->X
Рис. Б.6. Синтаксис для описания картины движения физических частшь
(а) Простая картина; (б) непроизводные элементы (, пусто; \/\/?
«несущественный элемент»; X нулевая точка); (в) правила подстановки.
остальных опорных точек FID, детектора ID и различных треков частиц РТ. Исходный непроизводный элемент ее определяется так, чтобы направить поиски на левое плечо левой угловой опорной точки. Непроизводимые элементы «пустой» (невидимый) и «несущественный» соединяют непересекающиеся непроизводные элементы и весьма полезны для описания простых геометрических связей, таких, которые возникают при кажущейся остановке и последующем появлении треков частиц, и как «пространство» между примыкающими друг к другу буквами и словами. Когда необходимо описать связь между непересекающимися непроизводимыми элементами, разделенными другими объектами, эти разделяющие объекты определяют как несущественные элементы. «Нулевая точка» — непроизводный элемент % — определяется как элемент с идентичными головной и хвостовой точками примыкания. Следовательно, его можно представить как помеченную вершину в графе. За счет введения X язык PDL может использоваться для описания точек так же, как и дуги.,
Примеры более прикладного характера с описанием подробностей читатель может найти в работах Шоу [1, 2].
СПИСОК ЛИТЕРАТУРЫ
Shaw А С , The formal description and parsing of pictures, Rep. SLAC-84, Stanford Linear Accelerator Center, Stanford Univ., Stanford, California, 1968.
Shaw A. C., A formal picture description scheme as a basis for picture processing system, Information and, Control, 14, 9—52 (1969).
Приложение В
Синтаксический анализдвумерных математических выражений
Грамматика, использованная Андерсоном [1] для распознавания двумерных математических выражений, описывается следующим образом:
G = (FN, Ут, Р, (expression)), где
VN — {(expression), (expression 0), (expression 1), (term), (sumterm), (adjterm), (multerm), (factor), (intbody), (limit), (variable), (subscriptlist), (subscriptlist 0), (trigname), (funcop), (trigop), (sumop), (addop)},
FT = {(letter), (unsigned: integer), (unsigned: number),
II-, -II, {,}, I-, -I, [J (,), ;,„=, oo, I, t, j, V, n, 5, +; —, •, /, sin, cos, tan, cot, sec, esc, log, exp} г), (letter) £ (a, b, c, . .z},
(unsigned: integer) £ (integers),
(unsigned: number) £ (real numbers),
(expression) (expression 0)
(expression 0)-> (expression 0) (addop) (term)
(expression 0)-> (addop) (term)
(expression 0)-> (expression 1)
(expression l)-> (term)
(term)-»- (adjterm) (sumterm)
г) Элементы Их соответствуют русским терминам: «выражение», «выражение 0», «выражение 1», «терм», «суммирование», «прилегающий терм», «циклические», «коэффициент», «содержание», «предел», «переменная», «список индексов», «список индексов 0», «тригонометрическое обозначение», «функциональный оператор», «тригонометрический «оператор», оператор суммирования или умножения», «оператор алгебраического сложения».
Элементы VT соответствуют терминам: «буква», «целое без знака», «число без знака», последний термин может быть любым действительным числом, а предпоследний — любым целым.— Прим, иерее.
(term)-*- (sumterm)
(term)~> (adjterm) (term)
(term) ~> (adjterm)
(sumterm) -> j |— (limit); (limit) — | (intbody)
(sumterm) j |—; — | (intbody)
(sumterm) -> j |— (expression); (expression) — | (intbody>
(sumterm) ~> (sumop) ||— (variable) = (expression)
(expression) —1| (term)
(sumterm) (sumop) ||— (variable): —|| (term)
(intbody)-> (expression 1) d (variable)
(adjterm) ~> (adjterm) (multerm)
(adjterm) (multerm)
(multerm) ~> (trigop) (multerm)
(multerm) ~> (funcop) (multerm)
(multerm)((expression))/((expression))
(multerm)(factor)
(factor) -> у [(expression); (expression)]
(factor) ]/" [; (expression)]
(factor)((expression))
(factor)(variable)
(factoi)->(unsigned:integer)
(factor)(unsigned:number)
(factor) (factor) f [(expression)]
(funcop)log
(funcop)exp
(limit) -> (addop) oo
(limit) oo
(variable) (letter) {(subscriptlist)}
(variable) (letter)
(subscriptlist) -> (subscriptlist 0)
(subscriptlist 0) -> (subscriptlist 0); (expression)
(subscriptlist 0) (expression)
(trigop) ~> (trigname) f [(expression)]
(trigop)(trigname)
(trigname)sin
(trigname)cos
(trigname) ->tan
(trigname)cot
(trigname)sec
(trigname)esc
(addop) +
(addop) —
(sumop) “> 2
(sumop) -> П
Это синтаксическое описание имеет много интересных свойств. Ниже описаны некоторые из наиболее необычных правил подстановки.
ЛравилоОбсуждение
п
Применяется в случаях, подобных З^^г- Заметим,
п
что синтаксические единицы, подобные ^^i’ «синтак- i=l
сически несимметричны»; с одной стороны, они действуют как коэффициент, под которым можно понимать произведение, с другой — как терм, для которого допустим только оператор сложения.
Применяется к выражению2 xt в случае, когда пред- г
полагаемые границы суммирования совпадают с длиной последовательности х.
Это правило вместе с правилом 16 учитывает особенности тригонометрических обозначений. Оно позволяет разбирать выражения sin х cos у как sin (х^* *cos (z/).
Эта грамматика есть простая грамматика с отношением предшествования [2], и ее матрица предшествований показана на рис. В.1. Буквы Л, С, D, Е. G. I. L, N. О. Р, S, Т.Хна рис. В.1 используются в тригонометрических обозначениях и в обозначениях функций.
В матрице есть три обычных отношения предшествования, именно:
С > 5, 5 > С, S > Е.■
Это означает, что необходимо заранее смотреть направо больше чем на один символ, чтобы определить, например, возникает ли
Рис. ВЛ. Матрица отношения предшествования для математического синтаксиса.
подцепочка «cs» как часть цепочки «sec sin» или как часть цепочки «CSC».
Распознающий алгоритм показан на рис. В.2. Предположим, что распознавание рукописных букв возможно L) и, кроме того, .что положение каждой буквы описывается шестью пространственными Координатами ^min, ^центр? ^max? Ут1п, Уцентр И Ушах (см. рис. В.З). На «правильно записанные» выражения накладываются следующие условия:
О распознавании рукописных букв в истинном масштабе см., например, [3—5].
11—086
В случайном порядке с выхода распознающего устройства подается множество символов и их координаты
Символы снабжаются координатами центра и, у) и формируются синтаксические единицы „ буква ”
„целое без знака”, „ числа без знака ”
Символы с координатами, упорядоченные по значениям хт-т
Цепочка символов без координат
Древовидная структура или другое удобное для вычислений представление разобранной цепочки
Рис. В.2. Четырехступенчатый распознающий алгоритм для двухмерных математических выражений.
Выражения над и под горизонтальной линией (обозначающей деление) ограничены в направлении х длиной этой линии.
Верхний и нижний пределы суммы или произведения ограничены в направлении х длиной знака.
Две прилегающие буквы ч и с2, которые должны оказаться на одной типографской строке, должны удовлетворять условиям
| Уцентр (с1) Уцентр (^2) | ^ ^tolerance
ИИ(•^min (^2)^(•^min (^2)^maxmax(^1)) ^ ^maxt(^1)) ^ ^maxt
И
И
(•^min (^2)^
(•^min (^2)^
max
max
(^1)) ^ ^maxt
(^1)) ^ ^maxt
где ^tolerance и ^тах — параметры, задаваемые пользователем системы. Это значит, что их типографские центры должны быть одинаково расположены и расстояние между ними не должно быть слишком велико.
Каждая буква с в пределе знака интеграла должна быть помещена так, что
| Z/центр (с) Уцентр ( J ) | ^ ^tolerance?
т, е. не может оказаться на той же типографской строке, что и знак интеграла. Предполагается, что буквы, расположенные над
УтахЧJ центрУ mlnУтахЧJ центрУ mln
Утах
Ч
J центр
У mln
Утах
Ч
J центр
У mln
Рис. В.З. Пространственные координаты символов.
уЦеНтр ( j составляют часть верхнего предела, а расположенные вод ним — часть нижнего. Пределы не должны располагаться левее ^min( ^ ); все буквы подынтегрального выражения должны располагаться справа от пределов интегрирования.
, 5. Буквы, задающие показатель корня, должны быть ограничены в направлении х длиной знака у, а выражение, стоящее под корнем, должно быть ограничено в направлении х длиной горизонтальной линии корня, а в направлении у — высотой знака у.
6. Все буквы верхнего и нижнего индексов должны быть расположены выше или ниже (соответственно) центра той буквы или того коэффициента, к которому они относятся, так, чтобы они не оказались на той же типографской строке, что и эта буква или этот коэффициент. Все буквы верхнего и нижнего индексов, относящихся к с, должны быть левее следующей после с буквы на той же типографской строке.
Эти ограничения можно записать в виде синтаксических правил. Они все же позволяют располагать пределы интегрирования выше и ниже или правее от знака интеграла; они позволяют также
18*
«настраивать» алгоритм распознавания при помощи регулировки параметров.
При указанных выше ограничениях математически обозначения обладают важным свойством: крайняя левая буква любой сложной синтаксической единицы (выражения, терма, коэффициента и т. д.) определяет типографский центр в направлении z/ всей этой синтаксической единицы. Полезность этого свойства можно продемонстрировать на следующем примере. Рассмотрим запись
г+1г - 1г+1г - 1dx.dx.
г+1
г - 1
г+1
г - 1
dx.
dx.
Комбинируя отношение предшествования и доминирования операторов, мы можем определить отношение порядка для операторов в двумерных объектах. Для таких объектов может быть построена структура (синтаксис). Если упорядочить эти буквы по значениям координаты ^min (в порядке возрастания), то увидим, что первая буква в упорядоченном множестве (в данном случае знак интеграла) определяет типографский центр всей записи. Более того, следующая буква в этом множестве, у которой координата уцентр достаточно близка к Уцентр знака интеграла, должна быть расположена на той же типографской строке (в этом случае на горизонтальной линии) и есть первая буква подынтегрального выражения; если это оператор, то это новый оператор подынтегрального выражения (поскольку первый оператор определяет центр синтаксической единицы).
Как показано на рис. В.2 первая ступень, лексический анализ рассматривался ранее как процедура «предобработки». Вторая ступень очень проста. Необходимо заметить, что мы предполагаем, что математическое выражение записано в «линию». Если это не так, необходимо преобразовать его на первой ступени, чтобы найти приблизительные изменения координат у в последовательности букв и нормализовать их так, чтобы они появлялись на одной и той же строке (это нетрудно,, поскольку можно снова предположить, что первая буква на новой строке есть крайняя левая буква и что она определяет типографский центр этой строки, разность между Z/центр новой и предыдущей строк нужно добавить к координате новой буквы и всех последующих для нормализации, а их координаты х нужно соответственно увеличить так, чтобы действительно выстроить буквы в «линию» неопределенной длины справа от первой строки).
На третьей ступени (порождение линейной строки) проверяется ряд тестов на координатах букв и вставляются специальные буквы, которые указывают связи между входными буквами. Зависимости, проверяемые этой программой, суть пять отклонений от линейности записи: 1) деление, обозначенное горизонтальной чер-
Синтаксический анализ двумерных математических выражений 277 той и выражениями над и под ней; 2) пределы суммы 2» произведения fj и интеграла ; 3) использование целого числа или переменной в качестве показателя корня, например |/я + е; 4) нижние индексы; 5) верхние индексы. Например, на третьей ступени входная запись
а2преобразуется в цепочку а | [2], а записьаЦ-Ье
превратится в строку (а + bY^e). Строку букв (координата теперь не нужна), полученную из множества букв (с координатами, описывающими их положение) и упорядоченного по значениям их ^min, можно после этого разобрать при помощи простой грамматики с отношением предшествования.
Чанг [6] недавно распространил анализ с предшествованием на двумерный случай. Для одномерных языков цепочек анализ с предшествованием есть способ упорядочения применяемых к цепочке операторов, так что может быть восстановлена структура этой цепочки (гл. 4). Подобным же образом обобщение такого анализа на двумерный случай — это способ упорядочения операторов, применяемых к двумерному объекту так, что может быть восстановлена его структура. К понятию предшествования операторов добавляется понятие доминирования операторов. Оператор доминирует над другим тогда и только тогда, когда второй из них расположен в пределах первого, а обратное неверно. Отношение доминирования операторов есть способ ввести описание геометрического отношения между ними.
СПИСОК ЛИТЕРАТУРЫ
Anderson R. Н., Syntax-Directed Recognition of Hand-Printed Two-Dimensional Mathematics. Ph. D Thesis, Div. of Eng. and Appl Phys , Harvard Univ , Cambridge, Massachusetts, 1968; also appears in summary form in Interactive Systems for Experimental Applied Mathematics, (M. Klerer and J. Reinfelds, eds ), pp. 436—459. Academic Press, New York, 1968.
Wirth N and Weber H , EULER A generalization of ALGOL and its formal definition, Pt. I. Comm ACM, 9, 13—25 (1966)
Groner G. F , Real-time recognition of hand-printed text. Proc. AFIPS Fall Joint Comput Conf., 1966, p 591.
Bernstein M. I and Howell H. L., Hand-Printed Input for On-Line Systems. Rep. TM-3937, Systems Develop. Corp , Santa Monica, California, 1968.
Miller G. H., On-line recognition of hand-generated symbols Proc. AFIPS Fall Joint Comput. Conf., 1969, p. 399.
Chang S K., A method for the structural analysis of two-dimensional mathematical expressions, Information Set., 2, 253—272 (1970).
Martin W A., Computer input/output of mathematical expressions Proc. Symp. Symbolic and Algebraic Manipulation, 2nd, Los Angeles, California, March 23-25, 1971, pp. 78-89.
Приложение Г
Синтаксическое описаниенарисованных от руки знаков языка ФОРТРАН
Нарасимхан [1] предложил грамматику, порождающую язык для описания знаков ФОРТРАНа
У = (Гт, У, R. Р. TY где Ут — множество непроизводных элементов, У — множество признаков, R — множество отношений, Р — множество правил композиции, а Т — множество преобразований.
Наличие множеств Ут и У позволяет порождать непроизводные элементы вместе с их признаками (т. е. с определенными значениями признаков). Пусть аг и а^ — непроизводные элементы, наделенные признаками, а г £ R — бинарное отношение, определенное на некотором подмножестве множества значений признаков элементов ал и а^. Отношение г ^аХ1 а^ задает некоторый подобраз, компонентами которого служат непроизводные элементы аг и &2, а признаки
Рис. Г.1. Шаблон с этого подобраза удовлетворяют отношению г. непроизводными эле- гр ментами — областями. огда
В общемВ общемАг Vav а2)
В общем
В общем
является правилом композиции, случае правило композиции имеет вид
Л3-*- г (Лъ Л2), г ^R, где А1? А2 могут быть как подобразами, так и непроизводными элементами.
На рис. Г.1 показан шаблон с непроизводными элементами, которыми служат области. Областью называется множество связанных между собой точек. Это множество можно считать выпуклым (например, кружком). Размер области, т. е. число составляющих ее точек, равен по крайней мере единице. Однако обычно этот размер гораздо больше. Семь таких областей на рис. Г.1 обозна-
чены через а^ а21 а31 а^ a5l aQ, а^. Ниже приведен список отноше
ний с краткими пояснениями или иллюстрациями.
VT^HZ^)RT^Y 1^1LT (а^, i =/= 7ST^dj)VT^HZ^)RT^Y 1^1LT (а^, i =/= 7ST^dj)Вертикаль, проходящая через область, аг. Горизонталь, проходящая через область at. Область сц соединена отрезком прямой с правым краем шаблона.
VT^
HZ^)
RT^Y 1^1
LT (а^, i =/= 7
ST^dj)
VT^
HZ^)
RT^Y 1^1
LT (а^, i =/= 7
ST^dj)
Область сц соединена отрезком прямой с левым краем шаблона.
Области сц и а5 соединены отрезком прямой.
СЕ^а^ а^ Криваятипа ССЕ^а.
DE^a^aj) Криваятипа
JTa(&b а5; aY a LT при ориентации влево, RT — вправо, UP — вверх, DN — вниз v
НК (а) Крючок с центром в области а
ВВ^ Вырожденная линия. Определяет связное множество точек вокруг области я; его размер — от 1 до 9..
Признаками каждого отрезка линии служат известные области, Через которые он проходит, и толщина или ширина. В том случае, Когда отрезок задан только одной областью, его признаком считается длина. Если области отрезка линии явно не заданы, то считается, что отрезок проходит от одного края шаблона до другого. На рис. Г.2 приведена полная совокупность правил композиции для знаков языка ФОРТРАН. В записи правил использованы следующие обозначения:
+ конкатенация или установление последовательности;
а немного выше а; а немного ниже а\ < меньше, чем полный размер (относится к длине отрезка); ‘ ’ идентификатор знака.
Если рассматривать как исходные знаки, так и их зеркальные отражения относительно вертикальной оси, проходящей через область а7, то можно определить преобразование MIRROR
*A'-*LT(a2,a) + RT(a2,b} + ST(a,b)
• В ’ ^ VT(av; a) + DE(at; a) + DE(a, a») ‘C ^CE(g31a6)
‘D’^-KT^O + DE^ba»)
'E'-VF' + HZ(ga
‘F’ -> КЦа,; a) + HZ(a0 + HZ(a; <) ‘G’-*‘C’ + HK(ah)
‘ H ’ -» VT<at; a) + VT(g2; 6) + ST(a, 6)
‘ Г -> VHa^ + HZ(g2; <) + HZ(as; <)
* J ’ -* ST(a2; a7) + DE(ai; a^ + HZ(a2; <)
’ К ’ VT(av; a) + ИТ-Даз, а6; а) ‘V^VTXa^ + HZM
‘ M ’ -> KT(aJ + WDN(,at, a3) + KT(a3) ‘N’ -> VT(ad + RTXa^ + FT(a6)
•Р’->ГТ(а1;а) + /)Е(а1,а)
* Q ’ -> * 0 * + ST(a2, ae) ‘R’->‘P’+5T(a,a6)
* S ’ -* CE(as, a7) + DE(a1, a«) ‘T’->yT(ai) + HZ(ai)
* U ’ -> ST(at, a*^ + CE(a4, ae) + ST^as, aj) ‘ V* -*ST(a2s a2) + ST(a$, аз)
‘ W ’ -* УПад + WUP(a4, a6) + FT(ae) ‘X’^LT(a3) + RT(al') ‘Y’-*ST(a1,a1) + LT(a1')
‘Z’ -^HZ^ +ЕТ(аз) + яг(а4)
*0’ —► CE(a2, as) 4еСЦвд, a2)
‘l’->KT(a2)
Рис. Г.2. Правила композиции для знаков языка ФОРТРАН.
* 2 * -► DE(£b д7) + СЕ^ал , д4) 4- HZ(a4}
* 3 * —> HZ(aO 4- ST(a3, д7) 4~ DE(a^, а*)
‘ 4 ’ -> ST(alt а*) + HZ(a^ + ST(an , а^
‘ 5 ’ -> HZ{aO 4- SHaY, а*) 4- DE(a4, а^ 4- DE(a4, а*)
‘ 6 ’ -> СЕ^д3 , а*) 4- СЕ(а*, а^ 4- СЕ(а7, а4) ‘7’->Яг(а1)4-5Т(а3,а5)
‘ 8 ’ -* СЕ(а2, а?) 4- DE(an , а5) 4- DE(a3, д7) 4- СЕ(а7, а2) ‘ 9 ’ -> DE(g3, а^ + DE(a7,53) + DE(q3 , а^
^'->Нг(а7^УТ(ал)-
‘-'-^HZ^
‘»’ -> HZ^ 4- VT<a^ 4- RT^aO 4- LT(a3) . ^'-^HZla^-VHZ^
*Г->ЕТ(а3)
*, ’ BB(a3) 4- DE(a5, a^
40 -*CE(a2)a5) ‘У -> DE(a2,a6} 'У-VS' -VVT^
Рис. Г.2. (Продолжение).
INVERT (зеркальное отражение). С этой целью используется Следующее множество правил замены:
^1 "^-^ a^i
а4 -<-> а^
LT RT.
СЕ DE.
СПИСОК ЛИТЕРАТУРЫ
I* Narasimhan R., On the description, generation and recognition of classes , of pictures. In «Automatic Interpretation and Classification of Images» (A. Grasselli, ed.), Academic Press, New York, 1969.
Приложение Д
Синтаксическое распознаваниекитайских иероглифов
Использование синтаксического подхода к порождению и (или) распознаванию китайских иероглифов предлагалось в работах целого ряда авторов [1—5]. В этом приложении кратко описан метод распознавания печатных иероглифов, разработанный Столлингсом [1].
Непроизводные элементы. Ими служат отрезки штрихов.
Подобразы. Это компоненты иероглифа, описанные при помощи отрезков штрихов.
Сегментация иероглифа и соответствующие отношения между компонентами*.
Восток — запад
Отношение «слева от»
Север —юг
Отношение «над»
Снаружи — внутри
□Отношение «окружает»
Сегментация типа 1 —3 в одной из областей, полученных в результате предшествовавшей сегментации типа 1 —3, например
D
Структура. Структура иероглифа, т. е. его подобразы и бинарные отношения между ними, представлена деревом. В качестве
примера на рис. Д.1 показана структура иероглифа ^
Анализ подобраза. При анализе компонент иероглифа используются следующие программы:
CONTOUR TRACING (отследить контур) — найти границы каждой компоненты иероглифа.
SEARCH (поиск) — найти какой-нибудь отрезок штриха, который будет использован в качестве начальной точки. При этом неважно, какой именно отрезок штриха будет найден.
CRAWL (обход) —«идти вдоль» отрезка штриха в заданном направлении с остановкой, когда встретится узел, т. е. когда
(а)(а)(б)(б)
(а)
(а)
(б)
(б)
Рис. Д.1, (а) Знак; (б) сегментация; (в) предЬтавление в виде дерева.
будет достигнуто место пересечения с другим штрихом или конец штриха. Направление отрезка штриха представлено восьмеричным кодом. ' ;
BUILD (построить) — построить граф, представляющий компоненту иероглифа, в виде совокупности отрезков штрихов.
На рис. Д.2 показана организация этих программ в систему, а на рис. Д.З дан наглядный пример результата работы этой системы.
Рис. Д.2. Программы анализа компонент знака.Рис. Д.2. Программы анализа компонент знака.BUILD —►BUILD —►
Рис. Д.2. Программы анализа компонент знака.
Рис. Д.2. Программы анализа компонент знака.
BUILD —►
BUILD —►
Распознавание подобразов. Каждой компоненте иероглифа при- ^ьаивается числовой код. Этот код строится по графу данной компоненты в соответствии со следующими правилами.
Начать с вершины, расположенной в верхнем левом углу графа. Спуститься из этой вершины по дуге, обладающей наименьшей меткой направления. Отметить, что дуга пройдена, и записать ее направление.
При подходе к следующей вершине посмотреть, посещается ли эта вершина в первый раз. Если это так, то отметить эту вершину, чтобы запомнить этот факт.
Покидая вершину, установить, есть ли дуги в направлениях, отличных от направления дуги, по которой вошли в эту
Рис. Д.З. (а) Компонента знака и (б) ее представление в виде графа. Цифра, которой помечена дуга вблизи вершины, указывает направление дуги. Фиксируется восемь направлений.
вершину. Если есть, то выбрать дугу с наименьшей меткой направления. Если же других нет, то покинуть вершину по дуге, которая
привела к этой вершине. Отметить факт прохождения дуги и записать ее направление.
По этому алгоритму каждая дуга обходится в каждом направлении только однажды. При этом считываются все метки направлений. Код компоненты состоит из меток направлений дуг, записанных в том порядке, в котором они встречались при обходе. На рис. Д.4 показан пример построения такого кода. Распознавание осуществляется путем сопоставления кода неизвестной компоненты с кодами, представляющими компоненты возможных типов.
Распознавание иероглифов. Каждый иероглиф представлен последовательностью из п + 1 кодов
Соч С^, . . ., СП1
где п — число компонент этого иероглифа. Код Со строится по древовидному представлению иероглифа (рис. Д.1, в), а коды <71, • • ., Сп выписаны в том порядке, в котором представлены компоненты в коде Со.
Код Со строится в результате обхода дерева в направлении против часовой стрелки с началом в корневой вершине дерева. При
Рис. Д.5. Кодовое представление Дерева.
Этом символы вершин или концевых точек (непроизводных элементов или подобразов) выписываются при первом посещении Першины или концевой точки. Концевые точки на дереве обозначены цифрой 0, вершины типа «слева от»—цифрой 1, вершины типа «над»— цифрой 2, вершины типа «окружает» — цифрой 3. На |>ис. Д.5 показан пример построения кода по дереву, представленному на рис. Д.1, в. Распознавание осуществляется путем сопоставления последовательности из п + 1 кодов, представляющей неизвестное изображение, с кодами, задающими возможные типы китайских иероглифов.
СПИСОК ЛИТЕРАТУРЫ
Stallings W. W., Recognition of printed Chinese characters by automatic pattern analysis, Comput. Graphics and, Image Process., 1, 47—65 (1972).
Fujimura 0., Kagaya Y., Structure Patterns of Chinese Characters, Annu. Bull., No 3, pp 131 — 148, Res. Inst, of Logopedics and Phoniatrics, Univ, of Tokyo, Japan, April 1968—July 1969.
Sakai T., Nagao M. and Terai H., A description of Chinese characters using subpatterns, Information Processing in Japan, 10 (1969).
Rankin В К and Tan D., Component combination and frame- imbedding in Chinese character grammars, NBS Tech. Note 492, 1970.
Chang S. К , An interactive system for Chinese character generation and text editing, Proc IEEE Int. Conf. Cybernet, and Soc., Washington, D. C., October 9—12, 1973.
Приложение Е
Синтаксическое распознавание слов,произнесенных вслух
В последнее время значительно возрос интерес к применению синтаксического подхода при распознавании звуков, слов и речи [ 1 —4]. В этом приложении кратко описан метод распознавания произносимых вслух названий цифр, предложенный Де Мори [1]. Для описания каждого отрезка входного звукового сигнала используются моменты достижения этим сигналом нулевого уровня —«пересечения с нулем» [5, 6]. Тщательный анализ последовательностей интервалов между нулевыми уровнями сигнала, проведенный на большой совокупности произнесенных слов, показал, что статистические характеристики этих интервалов можно достаточно хорошо оценить на отрезке сигнала длительностью 20 мс. Исследование этих статистических характеристик позволяет сделать вывод, что интервалы между нулевыми уровнями сигнала на 20-мс отрезке можно разбить на небольшое число групп. Совокупность этих интервалов, каждый из которых отнесен к соответствующей группе, можно использовать затем в качестве признаков отрезка речи. Таким образом, каждый звуковой сигнал разбивается на отрезки длительностью по 20 мс. Множество всех возможных интервалов между нулевыми уровнями сигнала с выхода фильтра нижних частот (НЧФ) и с выхода фильтра верхних частот (ВЧФ) разбито на группы в соответствии с табл. ЕЛ.
Таблица Е1
Группы интервалов между нулевыми уровнями сигнала (Интервал длительностью t с выхода фильтра нижних частот или фильтра верхних частот относится к группе (L^ г) или к группе (Hs t) соответственно. Длительность — в миллисекундах
7 групп для НЧФ
4 группы для ВЧФ
7 групп для НЧФ
4 группы для ВЧФ
^0
7,0
0,9
1,0
0,1
3,0
0,6
^5
0,8
^2
1,6
0,4
^6
0,6
^3
1,2
0,3
0,4
На рис. Е.1 показана упрощенная блок-схема устройства предобработки звукового сигнала.
Для каждого n-го отрезка длительностью 20 мс вычисляются векторы
RL(nT)-^RLi(nT), Rl2№, ...,RL1(nT)V
RH (nT) = {RHi (nT), .... RH4 (nT)^ T = 20мс,
где Ryt (nt) — число интервалов между нулевыми уровнями сигнала с выхода &-го фильтра (k = L для .НЧФ, к — Н для
Уставка
Рис. Е.1. Система' предобработки.
ВЧФ), отнесенных к группе с номером I. По этим векторам вычисляются следующие параметры:
7
2 (i-^RLiW
BL (пТ) — 1-1 -^ (60 уровней квантования),
2 Еы № i=i
4
Вн(пТ)=^-^ (30 уровней квантования).
2 Кш (пТ) 2=1
Таким образом, каждое произнесенное слово можно представить в виде диаграммы на плоскости BL —Вн. На рис. Е.2 показана такая диаграмма для произнесенного вслух итальянского слова NOVE (девять). Относительно плотные скопления точек получились при произношении гласных или полугласных звуков.
Рис. Е.2. Представление произнесенного слова на плоскости Bl — Вд-
Синтаксическое представление слова (на плоскости BL —Вн)
Непроизводные элементы {основные символы)
Вводятся следующие три типа непроизводных элементов:
Пауза (SL) — последовательность точек на плоскости BL —BHl все координаты которых равны нулю, за которой следует по крайней мере одна точка, обе координаты которой ненулевые. Пауза имеет описание
N-Pi -ра,
где N — символ паузы, а рг и р^ обозначают начало и длительность паузы соответственно. Например, запись N-1010-11 обозначает паузу, начавшуюся с десятого от начала слова отрезка сигнала и длившуюся на протяжении трех последующих отрезков.
Зона стабильности (SZ) —совокупность точек, представляющих последовательные отрезки слова. Эта совокупность должна занимать относительно небольшую область, а число точек в ней должно превышать заданный порог. Зона стабильности описывается цепочкой
S *Sj *S2 eSg '£4,
где $х и s2 имеют тот же смысл, что и ръ р^ для (SL), a s3, s4 — координаты центра тяжести (SZ).
Линия (LN) — нестационарные участки акустического сигнала, аппроксимированные отрезками прямой.
Линия (LN) имеет описание
L -^ '^2 *^3 * ^41
где 1Х и Z2 имеют тот же смысл, что и р^ р^ для (SL), Z3 — длина отрезка линии, a Z4— наклон этого отрезка, который может принимать одно из восьми значений, закодированных номерами.
Вспомогательные символы
Рассматриваются пять категорий вспомогательных символов.
Фрагмент-пауза (NF). Это пауза (SL) с описанием
М-п^ -0-0 -О-О.О/.
где пг и п, имеют тот же смысл, что и ръ р^ в (SL). Символ (NF) определяется через правило подстановки
(NF) ->(SL).
О-фрагмент (OF). Эта такая зона стабильности, которую нельзя составить из других непроизводных элементов. О-фрагмент имеет описание
О • (^ • О2 • О • О • О • О6 - О7,
где ог, о^ о6 и о7 имеют тот же смысл, что и slt s2, <?3 и s4 в описании (SZ) соответственно. Правило подстановки для (OF) имеет вид
(OF) -^(SZ).
Например, гласный звук между двумя паузами обычно описывается О-фрагментом.
1-фрагмент (IF). Это часть диаграммы, оканчивающаяся зоной стабильности (SZ), перед которой могут быть расположены (SZ) или (SZ) с последующей линией (LN). В виде правила подстановки 1-фрагмент определен как
’IF -^у (SZ),
где у->(LN), у -^(SZ), у->(SZ) (LN). Фрагмент (IF) имеет описание
I * ^ • 12 * 13* 1де ^5* ^6* ^7,
где 1г и i2 имеют тот же смысл, что и Ои О2; i6, i7 — координаты центра тяжести последней зоны стабильности (SZ). Через i3 обозначен код композиции, определенный в соответствии с таблицей
Композиция (IF)
Код
(LN) (SZ)
01
(SZ) (SZ)
11
(SZ) (LN) (SZ)
101
Если г3 = 11, то i5 обозначает наклон (закодированный восемью цифрами) отрезка прямой, соединяющей две зоны стабильности (SZ), а 14 обозначает поделенную на 23 длину отрезка прямой, соединяющей центры тяжести двух (SZ).
19—086
V-фрагмент (VF). Это диаграмма, составленная из двух линий, оканчивающихся в (SZ), т. е.
(VF) ->у2 (SZ).
7-фрагмент имеет описание
7-^. v2-vr vv v5-v^ v7l
где vn u2, vQ и v7 подобны ilt i21 t6 и i7 для (IP), p3 — код композиции, равный 1 для (SZ) и 0 — для (LN). Через vs обозначена последовательность наклонов отрезков линий, каждый из которых закодирован одной из восьми цифр. Через и^ обозначена последовательность длин отрезков линий, поделенных на 23.
Z-фрагмент (ZF). Это диаграмма, состоящая из трех линий (ZF) ->y3(SZ)
и имеющая описание
^ * ^1 * ^2 * ^3 ’ ^4 * ^5 * ^6 * ^7>
где 2Г, . . ^ z7 имеют тот же смысл, что и символы vv . . ., у? в описании (VF).
Грамматика имеет вид G = (7N, 7т, Р, S), где
7n = {(NF), (OF), (IF), (VF), (ZF), y, S, ZERO, ONE, TWO,
THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE}
T = {(SL), : 8
(LN), (SZ)},
-.ZERO, 8-
. ONE, 8 ->■ TWO, 8 -
^ THREE,
8
+FOUR, 5 -
.FIVE, 5-^ SIX, 8-
•> SEVEN,
8
> EIGHT, 5 -s
. NINE,
(NF)
>№, (OF) н
- (SZ), (IF)у (SZ),
(VF) -
>Y2 (SZ), (ZF)-»
-Y3 (SZ),
V
(LN), V -> (SZ), V -> (SZ) (LN),
ZERO н
к (IF) {0 < i4 <
’ 1, 6 <^ i5 <^ 7, 32 <^ i6 <
:48,
ZERO -t
- (VF) {00 < v4
0 -^ i7 -^
< 22, 26 < v5 < 47, 32^
16},
C v6 < 48.
ZERO ->
- (zf) {ooo e z4 -
0 < v7 < 16}, ^ 111, 026 < z5 < 047,
ONE -*
32 < z6 < 48, - (VF) {00 < v4
0 < z7 < 16}, < 22, 0,6 < p5 < 27, 32 <<
^р6 < 48,
ONE ->
0 < p7 < 16}, - (ZF) {000 < z4
< 222, 0,72 <z5< 274,
32 < z6 < 48;
0 < z7 < 16},
TWO -
> (IF) {1 < 16 < Z7
< < : 24},
2, 1<
C ^5
^ 2,
32 -^ t6 -^
:4o,
TWO -
> (VF) {00 ■
16 < v7 <
< v4<
£24}»
<22,
01 <
^13, 32 <
^ y6 < 40,
THREE -
> (OF) {24 ■
< o6 <
^40,
16 <
. O7 <
$24}
THREE -
* (IF) {0 <
16 < Z7 <
i4 < ; 24},
1, 3.
^ ^5 "
<3,
24 <$ Z6 <
<40,
FOUR -
> (OF) {24 .
< O6 <
C 56,
16 <
r °7 4
24}
(NF) (IF) {0< i4< 1, 6<i5<7, 32 < ie<48,
08 < Ц < 24},
FOUR -> (IF) (1 < z4 < 2, 2 < Z5 < 3, 40 < Z„ < 56,
16 < Z7 < 24},
(NF) (OF) {32 < o6 < 48, 0 < o7 < 16}
FOUR -> (VF) {11 < p4 < 22, 03 < v6 < 03, 40 < v6 < 56,
16 O7 < 24},
(NF) (OF) {32 < o6 < 48, 0 < o7 < 16}
FIVE -> (VF) {41 <p4 < 42, 44 < v6 < 44, 8 < v6 < 32, 24 < v7 < 30},
(NF) (OF) {32 < o6 < 40, 16 < o7 < 24}
FIVE
-> (ZF) {411 <z4 < 622, 404 < z5 < 444,
8 < ze < 32, 24 < z7 < 30},
(NF) (IF) {0 < i4 < 0, 0 < Ц < 0, 32 < i6 < 40.
16 C Z7 < 24},
SIX
-> (VF) {11 < v4 < 42, 42 < p5 < 53, 16X ^6 < 32.
24<p7 C 30},
SIX
-> (ZF) {111 < z4 < 422, 423 < z5 <533,
16<z6<32, 24<z7<30},
SEVENS
-(IF){3<z4<7,4<i5<5, 32<z6<40, 16<z7<24},
(NF) (OF) {32<o6<40, 16<o7<24},
SEVEN->(VF){12<y4< 33, 43<p5<43, 0<p6<16, 16<v7<30},
(NF) (OF) {32<o6<40, 16<o7<24},
Eight (OF) {32^o6^48, o<o7<i6},
(NF) (OF) {32<o6<48, 0<o7<16},
EIGHT-> (IF) {0^i4<l, 2^5^3, 32<t6<48, 0<i7<16},
(NF)(OF){32<o6<48, 0^o7<16},
NINE ->(ZF){321^z4<543, 720^z5^730, 32<z6<40, 16^ ^и7^24},
NINE ->(VF) {52^v4^54, 74^v5^74, 32<p6^40, 0^v7<16},
NINE ->(VF){21^p4<42,20<p5<30,32<p6<40,16^7<24}.
Распознавание осуществляется посредством процедуры грамматического разбора снизу вверх, которая реализована на двух магазинных преобразователях.
СПИСОК ЛИТЕРАТУРЫ
De Mori R., A descriptive technique for automatic speech recognition, IEEE Trans. Audio Electroacoustics, AU-21, 89—100 (1972).
Newman R., Fu K. S. and Li К. P., A syntactic approach to the recognition of liquids and glides, Pros. Conf. Speech Commun. Process., Newton, Massachusetts, April 24—26, 1972.
Lea W. A., An approach to syntactic recognition without phonemics, Prue. Conf. Speech Commun. Process., Newton, Massachusetts, April 24—26, 1972.
Kurematsu A., Takeda M. and Inoue S., A method of pattern recognition using rewriting rules. Tech. Note No. 81, Res. and Develop. Lab., Kokusai Denshiu Denwa Co. Ltd., Tokyo, Japan, June 1971.
Ito M. R. and Donaldson R. W., Zero-crossing measurements for analysis and recognition of speech sounds, IEEE Trans. Audio Electroacoustics, AU-19, 235—242 (1971).
Ewing G. D. and Taylor J. F., Computer recognition of speech using zerocrossing information, IEEE Trans. Audio Electroacoustics, AU-17, 37—40 (1969).
Приложение Ж
Плекс-языки
В выводах языков цепочек каждый основной или вспомогательный символ при вхождении в цепочку связан с другим символом, который соседствует с ним справа или слева. Можно считать, что каждый символ имеет две «точки примыкания»— правую и левую (или верхнюю и нижнюю), при помощи которых он связывается или соединяется с другими символами. На основе идеи Нарасимхана [1] Федер применил такой подход к языкам с символами, Имеющими произвольное число точек примыкания для связи & другими символами [2]. Символ с N точками примыкания называется TV-сочленяемой конфигурацией (TV attaching-point entity) — NAPE. Структуры, образуемые взаимосвязанными NAPE, называется «плекс-структурами». Из множества плекс-структур образуется плекс-языки. Грамматика для описания плекс-языка называется плекс-грамматикой.
Плекс-грамматику можно представить как шестерку [Ут, ^n» JP, 5, Q, ^0], где Ут — конечное непустое множество основных NAPE; yN — конечное непустое множество вспомогательных NAPE; Ут П VN 0; Р — конечное непустое множество правил Подстановки или правил замены; S — специальный’элемент, называемый начальной NAPE; Q — конечное множество идентификаторов; Q f| (Ут U ^n) = 0> ^о — специальный идентификатор, называемый пустым идентификатором.
Связь между основными элементами, вспомогательными элементами, правилами подстановки, начальной конфигурацией и соответствующими компонентами в грамматиках цепочек очевидна. Символы из Q используются как метки точек примыкания NAPE. С каждой точкой примыкания каждой NAPE связан идентификатор. У всех точек примыкания одной и той же NAPE эти идентификаторы различны. Идентификатор q0 не соответствует никакой точке примыкания и служит для заполнения места отсутствующего идентификатора. NAPE могут соединяться только при помоги имеющихся у них точек примыкания; «мнимые» связи с использованием идентификатора д0 не допускаются. Число необходимых грамматике идентификаторов на единицу больше, чем число точек примыкания у NAPE с наибольшим количеством таких точек.
Говорят, что множество NAPE связно, если в этом множестве существует путь из любого NAPE в любую другую NAPE из этого множества. Когда через множество NAPE проходит замкнутый путь, говорят, что это множество содержит петлю.
Не содержащее ограничений правило подстановки из Р имеет вид
фГфАф->(оГ0А0, фГф, соГ^ —связны, где ф — называется списком заменяемых конфигураций, со j— списком заменяющих конфигураций, Гф — списком заменяемых соединений, Гю — списком заменяющих соединений, Аф — списком точек сочленения заменяемой части, Аф — списком сочленений заменяющей части.
Списки конфигураций заменяемой и заменяющей частей — это цепочка вида ф = ага2. . . аг.. . ат и со = ЪТЬ^. ♦ .bj. • .bn, где сц и bj — NAPE. Спискиф и со обусловливают порядок расположения групп связных NAPE в заменяемой и заменяющей частях соответственно. Связь между точками примыкания двух и более NAPE образует соединение. Списки соединений заменяющей и заменяемой частей определяют, как связаны между собой конфигурации из соответствующих списков. Списки соединений делятся на поля. Поле — это список идентификаторов вида q^Qi . . . qikt определяющий, какие точки примыкания каких NAPE образуют данное соединение. Одно поле соответствует одному соединению. Длина полей заменяемой и заменяющей частей есть I (ф) и Z (со) соответственно, где I (р^ есть длина цепочки р. Вхождение q^ в некоторое поле на /-м месте указывает, что /-я компонента списка, стоящего перед Г, участвует в этом соединении. Если /-я компонента не включена в некоторое соединение, в/-й позиции соответствующего поля стоит пустой идентификатор q0. Каждое поле списка соединений должно содержать не менее двух пустых идентификаторов.
Заменяемая и заменяющая подструктуры связаны с остальной частью плекс-структуры конечным числом связей через точки, называемые точками сочленения. Списки точек сочленения устанавливают соответствие между внешними связями для заменяемой и заменяющей частей. Список точек сочленения также делится на поля. Каждой точке сочленения соответствует одно поле. Поскольку у заменяемой и заменяющей частей одно и то же число точек сочленения, число полей соответствующих списков также совпадает. Соответствие между точками сочленения задается упорядочиванием полей: точка сочленения, определяемая р-м полем списка точек сочленения заменяемой части, соответствует р-н точке заменяющей части. Поля обоих типов имеют одинаковую длину. Каждое поле списка точек сочленения должно содержать не менее одного непустого идентификатора. В правиле не нужно вносить
одну и ту же связь одновременно и в список соединений и в список точек сочленения; для полной определенности правила достаточно внести в какой-нибудь список одну из участвующих в этой связи конфигураций.
Мы исходим из следующих основных предположений.
Конфигурация не может быть связана сама с собой, грамматическое правило, определяющее такую связь, некорректно.
Между конфигурациями заменяемой и заменяющей частей не может существовать никаких других связей, кроме описанных в списках соединений.
Разные точки сочленения заменяющей или заменяемой части не могут относиться к одному и тому же соединению или точке примыкания.
Каждая точка примыкания каждой NAPE в заменяемой (левой) или заменяющей (правой) части грамматического правила должно или соединяться с точкой примыкания другой NAPE в заменяемой (заменяющей) части, или быть одной из точек сочленения. Отсюда следует, что каждая точка примыкания каждой NAPE заменяемой (заменяющей) части должна быть упомянута по крайней мере в одном поле одного из списков заменяемой (заменяющей) части правила.
Не содержащее ограничений грамматическое правило может определять замену любой подструктуры на любую другую. Грамматики, состоящие из правил этого типа, называются плекс-грам- матиками без ограничений, а языки, определяемые такими грамматиками, называются плекс-языками без ограничений. Языки и грамматики такого типа аналогичны цепочечным языкам и грамматикам типа 0.
Правило типа 1 получается из правила типа 0 при условии, что фГ^А^ и corwAw можно разложить так:
ф — Аф1?Рф — Р^Г^^,Дф = АдД^,
сэ^Х^,Pto — РдР^^,Д^ —Д^Д^,
где X не пусто и ХГх связно. Здесь
P^i — список соединений, содержащий поля длины I (ф^, которые описывают связи между NAPE, перечисленными в списке ф1;
Гд есть список соединений, содержащий поля длины I (X), которые описывают связи между NAPE, перечисленные в X;
Гдф! — список соединений, содержащий поля длины Z (А) + + Z (фх) = 1 + I (фт), Гд^ перечисляет связи А с конфигурациями ИЗ фр
Г^ есть список соединений, содержащий поля длины 2 W + I (Ф1), который показывает связи между ХГ^ и ф1ГфР
Да и ^х есть списки точек сочленения, показывающие соответствие между точками примыкания А и точками сочленения ХГд.
Дф1 — список точек сочленения хр1Гф1. Список Аф устанавливать не нужно; правило типа 1 можно записать так:
Лх^Г^Г^Да -^^^Г^Гф^ф^^, X не пусто, ХГх —связно.
Это правило позволяет заменить NAPE А на структуру ХГх при условии, что А погружено в подструктуру ^Гф^ Плекс-граммати- ки, содержащие правила только этого типа, и языки, определяемые такими грамматиками, называются грамматиками и языками непосредственно составляющих соответственно. Такие языки и грамматики являются обобщением цепочечных языков и грамматик непосредственно составляющих.
Если в приведенном выше правиле ^ пусто, мы получаем бесконтекстное правило
Л ДА ->ХГхА^, X не пусто, XV х связно.
Это правило означает, что А в любом контексте можно заменить на подструктуру, задаваемую ХГх. Бесконтекстная плекс-грам- матика и бесконтекстный плекс-язык получаются при ограничениях этого типа на правила замены.
Цепочечные языки и грамматики, содержащие конечное число предложений, и грамматики, порождающие такие языки, называются конечными языками и грамматиками соответственно, конечная плекс-грамматика является аналогом конечной цепочечной грамматики. Ее правила имеют вид .
S ->- ZrZl ZFz связно.
Соответствующий плекс-язык называется конечным плекс-языком. Правые части правил конечной грамматики ZYz — это цепочки в алфавите Q U 7т? и их можно рассматривать как закодированные варианты плекс-структур, составляющих конечный плекс-язык.
Многие свойства цепочечных грамматик можно распространить на плекс-грамматики [2]. Особые варианты плекс-грамматик получаются при введении следующих ограничений:
Основная конфигурация может иметь не более двух точек примыкания. В этом случае выводимые структуры основных NAPE есть ориентированные графы с помеченными дугами.
И основные, и вспомогательные NAPE могут иметь не более двух точек примыкания. Язык PDL, использованный Шоу [4], тесно связан с бесконтекстными плекс-грамматиками этого типа.
Ограничение 2 плюс следующее ограничение: в одном соединении могут содержаться точки примыкания только двух NAPE и в заменяющих частях грамматических правил запрещаются петли. В этом случае плекс-грамматика вырождается в обычную грамматику языков цепочек.
Следующие примеры иллюстрируют использование бесконтекстных плекс-языков для распознавания образов. Во всех примерах в качестве идентификаторов используются положительные целые числа. Число 0 служит пустым идентификатором q0. Списки Г и А заключены в скобки, поля разделены запятыми.
Пример Ж.1. Рассмотрим бесконтекстную плекс-грамматикуг порождающую изображения букв «А» и «Н».
(БУКВА)->(А), (БУКВА)(Н),
(А)-> (СТОРОНА) (СТОРОНА) (ОТРЕЗОК)
(НО, 201, 022),
(Н)-+(СТОРОНА) (СТОРОНА) (ОТРЕЗОК)
(201, 022),
(СТОРОНА) (1, 2)-> (ОТРЕЗОК) (ОТРЕЗОК) (12) (20, 12).
Единственной основной конфигурацией в этой грамматике является (ОТРЕЗОК). Эта NAPE есть неориентированный отрезок с точками примыкания, отмеченными идентификаторами 1 и 2 на каждом конце. Вспомогательными NAPE в этой грамматике являются конфигурации (БУКВА), (А), (Н) и (СТОРОНА). Только последняя из них имеет точки примыкания. Начальным символом является NAPE (БУКВА).
Первое правило приведенной выше грамматики определяет конфигурацию (БУКВА) как (А) или (Н). Правило 2 описывает изображение буквы А как структуру, построенную из двух элементов (СТОРОНА) и одного поперечного элемента (ОТРЕЗОК). Здесь образуются три соединения, поэтому в Г три поля. Первое поле [110] описывает соединение двух элементов (СТОРОНА). Это поле устанавливает, что точка примыкания 1 первой конфигурации заменяющей части ((СТОРОНА)) соединена с точкой примыкания 1 второй конфигурации заменяющей части того же правила ((СТОРОНА)). Число 0 в третьей позиции указывает, что третья конфигурация ((ОТРЕЗОК)) не включена в это соединение. Оставшиеся соединения образуются при соединении «сторон» А с поперечным «отрезком». Эти соединения описаны во втором и третьем полях. Построение изображения «Н» описано в правиле 3 и сходно с построением изображения «А»; оно отличается отсутствием соединения двух конфигураций (СТОРОНА). Соединения конфигураций из правил 2—4 показаны на рис. Ж.1.
Только правило 4 этой грамматики содержит список А. Это правило описывает соединение двух основных NAPE (ОТРЕЗОК) для образования вспомогательной NAPE (СТОРОНА). Это соединение описано в списке Г-(12). Поскольку (СТОРОНА) имеет две точки сочленения, в списке точек сочленения должны быть два поля.
(в) Прибило 4
Рис. Ж.1. Соединение компонент в грамматике для букв А, Н.
Точка примыкания 1 вспомогательной NAPE (СТОРОНА) соответствует точке сочленения, описываемой полем 20 (это точка примыкания 2 первой NAPE (ОТРЕЗОК)). Точка примыкания 2 вспомогательной NAPE (СТОРОНА) соответствует точке сочленения, описываемой полем 12. Это соединение, описанное в списке Г.
Пример Ж.2 (Грамматика для описания периодической химической структуры молекулы натурального каучука,} Структура молекулы натурального каучука показана на рис. Ж.2, а. Основные NAPE приведены на рис. Ж.2, б; это атом углерода (С) с четырьмя точками примыкания и атом водорода (Н) с одной точкой примыкания. Правила грамматики приведены на рис. Ж.2, в. Вспомогательные NAPE это (ЦЕПЬ), (КУСОК), (СН3), (СН2) и (СН). Конфигурация (ЦЕПЬ) есть начальная NAPE грамматики. В первом правиле грамматики используется рекурсия для определения
нн н н—с—ннIIIIс—с—сс =с-с-IIIIIИННННнн н н—с—ннIIIIс—с—сс =с-с-IIIIIИННННнН
нн н н—с—нн
IIII
с—с—сс =с-с-
IIIII
ИНННН
нн н н—с—нн
IIII
с—с—сс =с-с-
IIIII
ИНННН
Н Н — С — Нн н н — с — н
IIIII
СС.-и с —с—сс
IIII
ННИН
(а)
2
С — 3н
41
(б)
<CHAIN>(1,2)-+<SECTIONXCHAIN>(21)(10,02)
<СН AIN >( 1,2)(SECTION >()(1,2)
(SECTION>(1,2) -><СН2><С><СНзХСН><СН2>(21000, 02100, 03020, 04010, 00031 )(10000, 00002)
(СН3>(1)^(СН2ХН>(21)(10)
<СН2>(1,2) -> (СН>(Н>(21)(10, 30)
<СН>(1,2, 3)-> <С><Н>(41)(10, 20, 30)
(б)
Рис. Ж. 2. Грамматика для молекулы натурального каучука, (а) Молекула натурального каучука, (б) Основные NAPE, (в) Грамматические правила.
конфигурации (ЦЕПЬ > как произвольного числа повторений конфигурации (КУСОК).
Пример Ж.З. На рис. Ж.З приведена грамматика, описывающая простой регистр сдвига, образованный соединением некоторого числа идентичных регистров одношагового сдвига. Схема двухшагового регистра такого типа показана на рис. Ж.З, а. Основные NAPE этой грамматики приведены на рис. Ж.З, б, а правила — на рис. Ж.З, в. В грамматике только два правила подстановки. Первое рекурсивно описывает начальную NAPE (РЕГИСТР СДВИГА) как повторение произвольного числа вспомогательных NAPE (ОДНОШАГОВЫЙ СДВИГ). Второе правило описывает (ОДНОШАГОВЫЙ СДВИГ) в терминах основных NAPE.
Пример Ж.4. На рис. Ж.4 показаны две грамматики, порождающие блок-схемы, составленные из действий «начало», «остановка», «функция» и предикативных блоков. Основные NAPE для этой
U*— Одна позиция*-lU*— Одна позиция*-l(а)(а)(1)(2)(1)(2)<SHFT RGSTRX1,2, 3,4, 5) -> <SHFT STGE><SHFT RGSTR> (41,52, 33)(1O, 20, 33,04, 05)<SHFT RGSTR>(1,2, 3, 4, 5) -> <SHFT STGE>()(1,2, 3, 4, 5)<SHFT STGE>(1,2, 3, 4, 5) -> <FFXAXAXDXD>(31000, 40100, 02200, 03010,00301)(10000, 20000, 02200, 00020, 00002)<SHFT RGSTRX1,2, 3,4, 5) -> <SHFT STGE><SHFT RGSTR> (41,52, 33)(1O, 20, 33,04, 05)<SHFT RGSTR>(1,2, 3, 4, 5) -> <SHFT STGE>()(1,2, 3, 4, 5)<SHFT STGE>(1,2, 3, 4, 5) -> <FFXAXAXDXD>(31000, 40100, 02200, 03010,00301)(10000, 20000, 02200, 00020, 00002)(6)(6)Рис. Ж.З. Грамматика дляТпростого регистра сдвига.(а) Простой регистр сдвига. (б^Ссновные NAPE, (в) Грамматические правила.Рис. Ж.З. Грамматика дляТпростого регистра сдвига.(а) Простой регистр сдвига. (б^Ссновные NAPE, (в) Грамматические правила.
U*— Одна позиция*-l
U*— Одна позиция*-l
(а)
(а)
(1)
(2)
(1)
(2)
<SHFT RGSTRX1,2, 3,4, 5) -> <SHFT STGE><SHFT RGSTR> (41,52, 33)(1O, 20, 33,04, 05)
<SHFT RGSTR>(1,2, 3, 4, 5) -> <SHFT STGE>()(1,2, 3, 4, 5)
<SHFT STGE>(1,2, 3, 4, 5) -> <FFXAXAXDXD>
(31000, 40100, 02200, 03010,00301)
(10000, 20000, 02200, 00020, 00002)
<SHFT RGSTRX1,2, 3,4, 5) -> <SHFT STGE><SHFT RGSTR> (41,52, 33)(1O, 20, 33,04, 05)
<SHFT RGSTR>(1,2, 3, 4, 5) -> <SHFT STGE>()(1,2, 3, 4, 5)
<SHFT STGE>(1,2, 3, 4, 5) -> <FFXAXAXDXD>
(31000, 40100, 02200, 03010,00301)
(10000, 20000, 02200, 00020, 00002)
(6)
(6)
Рис. Ж.З. Грамматика дляТпростого регистра сдвига.
(а) Простой регистр сдвига. (б^Ссновные NAPE, (в) Грамматические правила.
Рис. Ж.З. Грамматика дляТпростого регистра сдвига.
(а) Простой регистр сдвига. (б^Ссновные NAPE, (в) Грамматические правила.
<PROG> -> <STARTXENDX11)
(2) <ENDXO^<HALTX1), <ENDXl)^<FUNCT><END>(21)(10)
<END>(l)-><PRED><ENDXENDX210, 201)(100)
(5)
<PROG> -> <STARTXPXHALTXI Ю, 021)
<P>(1,2)-> <FUNCT>()(1, 2), <P>(1,2)-xxFUNCT><PX21)(10,02),
<PX1,2) -> <PREDXPX21, 12)(21, 30),
<P>(1, 2) -> <PREDXP><PX210, 301,022)( 100, 022)
Рис. Ж.4. Грамматика для блок-схем, (а) Основные NAPE.
Грамматика для блок-схем без циклов, (в) Грамматика для блок-схемс циклами.
грамматики приведены на рис. Ж.4, а, а правила грамматик, порождающих блок-схемы с циклами и без циклов, приведены на рис. Ж.4, б и рис. Ж.4, в соответственно.
СПИСОК ЛИТЕРАТУРЫ
Narasimhan R. N., Syntax-directed interpretation of classes of pictures, Comm. ACM, 9, 166—173 (1966). (Русский перевод: Нарасимхан P., Синтаксическая интерпретация классов изображений, сб. «Автоматический анализ сложных изображений, «Мир», 1969.)
Feder J., Plex languages, Information Sci., 3, 225—241 (1971)»
Feder J., Languages of encoded line patterns, Information and, Control^ 13, 230—244 (1968).
Shaw A. C., A formal picture description scheme as a basis for picture processing system. Information and, Control 14, 9—52 (1969)
Приложение 3
Веб-грамматики
Одним из видов двухмерных грамматик являются веб-грамматики, предложенные Пфальцем и Розенфельдом [1]. Предложения, порождаемые веб-грамматиками, — это ориентированные графы с символами на вершинах («вебы»). Веб-грамматикой называется четверка
G = (FN, Ут, Р. SV
где yN — множество вспомогательных символов, FT —- множество основных символов, S — множество начальных вебов и Р — множество правил подстановки или правил замены. Правила подстановки определяется как *)
а -> р, Е^
где аир — вебы, Е — описание погружения р. Если мы хотим заменить подвеб а веба со на другой подвеб р, небходимо определить, как «погружать» р и в со вместо а. Определение погружения не должно зависеть от остальной части со, поскольку мы хотим иметь возможность заменять а на р в любом вебе, содержащем а как подвеб. Обычно Е состоит из множества логических функций, которые определяют для всех вершин со — а и всех вершин р, связана ли данная вершина р с данной вершиной со — а.
Пример 3.1. Рассмотрим грамматику G = (FN, 7Т, Р, 5), где FN=U}, FT-{а, Ь, с}, 5 = {Л} и Р: •
ц) д г <^ = {р, я I (р, ^) — дуга в остальной
* \lчасти веба},
с
Е— то же, что и в (1).Е— то же, что и в (1).
Е— то же, что и в (1).
Е— то же, что и в (1).
х) При самой общей формулировке в правило подстановки добавляется контекстуальное условие [1, 2].
Язык этой грамматики есть можество всех вебов вида
Заметим, что веб-грамматики ориентированы на порождение вершин или узлов в отличие от грамматик, ориентированных на порождение ребер или дуг (именно PDL плекс-грамматики). Это значит, что основные символы или непроизводные элементы представляют скорее вершины графа, чем дуги.
Важным частным случаем веб-грамматик является тот. при котором алфавит основных символов состоит из единственного символа. В этом случае каждая точка каждого веба в языке имеет одну и ту же метку так, что метками можно пренебречь и считать, что вебы совпадают с входящими в них графами. Этот тип веб-грамма- 'тики называется «графовой грамматикой», а ее язык называется «графовым языком». Правило подстановки веб-грамматики имеет вид правила непосредственно составляющих, если в а существует точка а. такая, что а — {а} есть подвеб р, и все дуги между точками остальной части и точками а — {а} заданы в Е. В частности, правило подстановки будет бесконтекстным, если в а есть только* одна точка. Таким образом, веб-грамматика называется грамматикой непосредственно составляющих (бесконтекстной), если все правила подстановки в ней имеют форму правил непосредственна составляющих (бесконтекстную). Веб-грамматика в примере 3.1 бесконтекстна, поскольку заменяются только одновершинные вебы.
При сравнении веб-грамматик с плекс-грамматиками мы можем рассматривать NAPE в плекс-грамматике как вебы, в которых одна точка помечена меткой этой NAPE, а другие — идентификаторами ее точек сочленения. Списки соединений в плекс-грамматике, описывающие, как взаимосвязаны множества NAPE, соответствуют внутренним дугам подвебов а и р в правиле подстановки г а список точек сочленения соответствует описанию погружения Р в остальную часть веба (Е).
Пример 3.2. Рассмотрим бесконтекстную графовую грамматику -
G - (En, ^т, Р, S\ где
Pn = М}, Ет = {у}, 5 = ^L а ^
И Р
.—► Е = ^(р, а) | (р, Л) —дуга в остальной части
яа А веба},
д лЕ = ^(р, Л) | (р, Л) —дуга в остальной части
Авеба}.
•—нЕ — ^р— а) | (р, Л) — дуга в остальной части
Л авеба}.
Язык, порождаемый этой веб-грамматикой, состоит из всех ориентированных деревьев с корнем.
Пример 3.3. Следующая бесконтекстная графовая грамматика порождает множество вебов, включающее класс всех последовательно-параллельных двухполюсников
TTSPN (two-terminal series-parallel networks),
G = (Vm 7t, P, 5), где
^-{Л},^-{Л},^т = М^т = МS = {a a, a A a}S = {a a, a A a}
^-{Л},
^-{Л},
^т = М
^т = М
S = {a a, a A a}
S = {a a, a A a}
(2)(2)(3) Г"а(3) Г"а
(2)
(2)
(3) Г"а
(3) Г"а
и P;
„ , E = {(p, Л(1) | (p, Л) — дуга в остальной части
(1) А Л(1) Л(2) веба} U {(Л(2), р) | (Л, р)~дуга в остальной части веба},
Е = {(р, Л) | (р, Л) — дуга в остальной части веба} U {(Л, р)|(Л, р) —дуга в остальной части веба}
Е—такое же, как в 2.
Типичным порождаемым TTSPN будет, например,
Пример 3.4. Рассмотрим веб-грамматику непосредственно составляющих G = (FN, Ft, Р, 5), где FN = {В, Z, Z', W, Wf, X}, Ft = {а, Ь, с, w, х, у, z),
где погружение «новой» вершины, помеченной ТУ, происходит, как показано; прикрепления или присоединения других вершин в заменяемом вебе остаются неизменными. Подобные погружения определены и для остальных правил.
w млиуw w Ww млиуw w WууW'W'у wу wW илиW илиУ
w млиу
w w W
w млиу
w w W
у
у
W'
W'
у w
у w
W или
W или
Эта грамматика порождает «ориентированные треугольники» вида
Синтаксический анализ (грамматический разбор) для грамматики, порождающей все TTSPN, выполнялся с использованием языка GIRL (Graph Information Retrieval Language). Язык GIRL — это расширение языка FORTRAN, подобное языку SLIP; при помощи нескольких основных команд он позволяет хранить в памяти данные в виде ориентированного графа. Анализ множества черно-белых изображений, моделирующих нейронные сети в терминах^ вебграмматик, был осуществлен с использованием набора программ, названных NRNTST (для нейронных тестов). Программы NRNTST допускают изображения, соответствующие нейронным сетям, и порождают описывающие эти изображения вебы [4].
СПИСОК ЛИТЕРАТУРЫ
Pfaltz J. L. and Rosenfeld A., WEB grammars, Proc. Int. Joint Conf. Artificial Intelligence 1st, Washington, D. C., May 1969, pp. 609—619.
Montanari G. U., Separable Graphs, Planar Graphs and Web Grammars, Tech. Rep. 69—96, Comput. Sci. Center, Univ, of Maryland, College Park, 1969.
Pfaltz J. L. and Rosenfeld A., Private communication, 1973.
Pfaltz J. L., Web grammars and picture description, Tech. Rep. 70—138, Comput. Sci. Center, Univ, of Maryland, College Park, 1970.
Приложение И
Использование грамматик деревьевдля синтаксического распознавания образов
В этом приложении дано краткое введение в грамматики де
ревьев, автоматы на деревьях и их приложения к синтаксическому
1,21,21.1.2 •••1.1.2 •••1.1.11.1.1распознаванию образов.
1,2
1,2
1.1.2 •••
1.1.2 •••
1.1.1
1.1.1
Определение И.1. Пусть N* — множество строго положительных целых чисел. Тогда U — универсальное пространство деревьев (свободная полугруппа с единицей «О», порожденная N* и бинарной операцией «.»). На рис. И.1 изображено универсальное пространство деревьев U.
Рис. И.1. Универсальное про-
Определение И.2. ^Ранжирован- странство деревьев, ным алфавитом называется пара (2, г), где 2 — конечное множество символов, а
г: 2 -^N = 7V+ U {0}.
Число г (а) называется рангом а для а £ 2. Обозначим 2 N = = г-1 (п).
Определение И.З. Дерево над 2 (т. е. над (2, г)) определяется как функция
a: D -^2,
такая, что D — дерево и
г [а (я)] = max {z | a-i ^D}.
Дерево из универсального пространства (без меток на вершинах) обозначается через D (а).
Пусть 7\ обозначает множество всех деревьев над 2.
Определение И.4. Пусть а — дерево и а — элемент D (а). Тогда поддерево а/а с вершиной а определяется как
а./а = {(6, х) | (а-b, х) £ а}.
Определение И.5. Регулярная грамматика деревьев над (FT, г) есть четверка
Gt = (Г, г', Р. SY
удовлетворяющая следующим условиям:
W, г’) — конечный ранжированный алфавит, такой, что FT ^ V и г'/Уг = г. Множество вспомогательных символов есть F - FT = Fn.
Р —- конечное множество правил подстановки вида Ф ~>ф, где Фиф — деревья над (F, г').
S — конечное подмножество TV) где Ту — множество деревьев над алфавитом F.
а
Определение И.6. Вывод а => р возможен в Gt тогда и только тогда, когда в Р существует правило подстановки Ф ->ф, такое, что Ф есть поддерево а с вершиной а, и р получается заменой вхождения Ф с вершиной а на ф. Мы пишем а => Р тогда и только а тогда, когда существует а С D (а), такое, что а => р.
возможен в Gt тогда и только ., ат, т > О, такие, чтовозможен в Gt тогда и только ., ат, т > О, такие, чтоОпределение И.7. Вывод а => р тогда, когда существуют а0, а1? . .
возможен в Gt тогда и только ., ат, т > О, такие, что
возможен в Gt тогда и только ., ат, т > О, такие, что
а = а0 => ах =>...=> ат - р.
Последовательность а0, . . ., ат называется порождением или выводом р из а, а т — длина вывода.
Определение И.8. Языком деревьев, порождаемым грамматикой Gt, называется множество L (Gt) — {а 6 ТуТ | существует У £ 5, ♦
такое, что вывод У => а допустим в Gt}.
Определение И.9. Грамматика деревьев Gt = (F, г, Р, S) называется расширяющей тогда и только тогда, когда каждое правило Р имеет вид
где х £ Ft, а Хо, Хи , . ., Хг(х) — вспомогательные символы.
Теорема ИЛ. Для каждой регулярной грамматики деревьев Gt можно эффективно построить эквивалентную расширяющую грамматику Gt, такую, что L (Gt) = L (Gt) [1].
Определение И.10. Автомат на деревьях над 2 состоит из& + 2 элементов
где 1) Q есть множество состояний; 2) для любого i, 1 ^ i ^ А, /f есть отношение на Q1*^^ X Q, а^ 5, т. е. fp. Q1^ -^Q и 3) F г Q — множество заключительных состояний.
Определение] И.11. Отношение перехода р автомата на деревьях Mt определяется следующим образом:
Если о £ 2 0, то р (о) ~ X тогда и только тогда, когда /а ~ ~ X, т. е. р (о) =/а;
если о 6 Sn, п > 0, то р (о, х0) . . ., хп-1) ~ X тогда и только тогда, когда существуют х0, . . ., xn_v такие, что /а (ж0) . . . • • ^п-1) ~ X и р (xt) ~ Хь 1 ^ г ^ п, т. е. р (а, х^ . . ., яп-1) = = /5 (р W).
Определение И.12. Множество Т (Mt) = {а £ Z^l существует X С F, такой, что р (а) ~ X} называется множеством деревьев, допускаемых Mt.
Теорема И.2. Для каждой регулярной грамматики деревьев Gt можно эффективно построить автомат на деревьях М^ такой, что Т (Mt) = L (Gt) [11.
Процедура построения такова:
Строим расширяющую грамматику деревьев G{ = (7', г, P'S) над Ут по данной регулярной грамматике деревьев Gt = (И, г, Р, S) над алфавитом Ут.
Эквивалентный ей (недетерминированный) автомат на деревьях есть
Mt = (V'-VTJv...,fk, {5}),
где ]х (Х1? . . ., Хп) ~ Х01 если Хо -^хХ^ . . ., Хи лежит в Р\
(а)(а)(6)(6)
(а)
(а)
(6)
(6)
Рис. И.2. Представление куба в виде дерева.
Приложения грамматик деревьев и автоматов на деревьях к описанию и распознаванию образов демонстрируется на следующих примерах [2].
Пример И.1. Изображение на рис. И.2, а можно описать с помощью дерева на рис. И.2, б.
Пример Й.2. Грамматика деревьев Gt = (Г, г, Р, S), где V = = {5, а, Ь, $, А. Б}, Гт - {Л, 1 Ь, • $}, г (а) = {2, 1, 0}, г (Ь) = {2, 1, 0}, г($) - 2 и Р:
ь Гь Гаа
ь Г
ь Г
а
а
порождает такие объекты, как
Автомат на деревьях, который допускает множество деревьев, порождаемых Gt, есть
М^^АЛа. A, f^ F), где Q = ^qa, qb, q, qF}, ^={?f} и /:
fa = qa,fa(qiq) = q,fa(qb)=q,
fb=qb,Mqtq)=q,fb(qa)=q,
/$ M = Qf-
Пример И.З. Следующую грамматику на деревьях можно использовать для порождения деревьев, представляющих АС-цепочки, показанные на рис. И.З
Gt = (Г, г. Р, S\
где
и Р:и Р:Кт = {5, © Vin,-nnn^L, Ч(- С, 41- W, • $} г(Цп) = 1, r(L) = {2, 1}, r(C) = 1, r(^) = 0, г($) —'
и Р:
и Р:
(I) S -^^(2) L -*L(3) L — 4
Hnj7 4-j7
WWW
Например, при применении правил подстановки 1—3 порождает
ся следующее дерево:
Автомат на деревьях, который допускает множество деревьев, порождаемых Gt, есть
^t — (Qi /rin, /ь, fci twi /^, P),^t — (Qi /rin, /ь, fci twi /^, P),Рис. И.З. L — С-цепочка.Рис. И.З. L — С-цепочка.
^t — (Qi /rin, /ь, fci twi /^, P),
^t — (Qi /rin, /ь, fci twi /^, P),
Рис. И.З. L — С-цепочка.
Рис. И.З. L — С-цепочка.
где Q = {^, g2, g3, q4l qF}, F = {qF} и7: /vln(9i)=?4,fL to) =^2»
/l = 92111 to, ^з) = Q2i
fc (91) =93itw = 9h/ф (921 90 =9f-
СПИСОК ЛИТЕРАТУРЫ |
Brainerd W. S., Tree generating regular systems, Information and Control. 14, 217—231 (1969).
Fu K. S., and Bnargava B.K., Tree systems for syntactic pattern recognition, IEEE Trans. Comput.. C22, 1087—1099 (1973).
Doner J. E., Tree acceptors and some of their applications, J. Comput. System Sci.. 4 (1970).
Thatcher J. W. and Wright J. B., Generalized finite automata theory with an'application to a decision problem of second order logic, J. Math. System Theory. 2 (1969).
Rounds W. C., Context free grammar on trees, IEEE Annu. Symp. Switching 'and Automata Theory, 10th, October, 1969, pp. 143—148.
Rounds W. C., Mappings and grammars on trees, J. ^Math. System Theory. 4 257-287 (1970).
УКАЗАТЕЛЬ
Номера в скобках обозначают ссылку на работу данного автора, хотя его имя не упомянуто в тексте.
Автомат конечный 41
— линейный 50
— магазинный 45
Айзерман М. А. 15 (18), 31, 33
Айронс Е. Т. 217 (3), 254
Амблер А. П. 107 (19), 139
Амосс Дж. О. 104
Андерсон Р. Г. 29 (40), 32, 93 (64), 104, 135 (42), 140, 256, 270, 277
Андерсон Т. У. 202 (7), 216
Аппроксимация стохастического языка 249
Аркадьев А. Г. 15 (20), 31
Ахо А. В. 35, 57, 141, 162 (23), 165 (23), 187
Барроу Г. Г. 34, 81 (55), 103, 107 (19), 139
Бар-Хиллел И. 35 (5, 6), 57
Батлер Дж. У. 70 (27), 102
Батлер М. К. 70 (27), 102
Бах Е. 65 (14), 101
Барстолл Р. М. 107 (19), 139
Беккер Р. У. 34
Берстайн М. И. 273 (4), 277
Бинфорд Т. О. 33
Бирман А. У. 218 (33, 34, 35, 36), 223 (35), 231, 239, 256
Бобров Д. Г. 29 (46), 32
Бонгард М. М. 34
Браверман Э. М. 15 (18, 20), 31, 33
Брайс К. Р. 75, 103
Брейнерд У. С. 91 (75), 104, 308 (1), 309 (1), 312
Брюс Г. Д. 187
Бус Т. Л. 58, 146 (10), 187, 188, 254 (45), 256
Бхаргава Б. К. 310 (2), 312
Бэкис Р. 26 (32), 32
Бэнерджи Р. Б. 34, 106 (8), 139, 142 (1), 186
Ватанабе С. 29 (37), 32, 256
Вебер Г. 133, 134, 140, 168 (27), 187, 272 (2), 277
Вероятность правила подстановки 149
— —- —, оценка 202—209
— синтаксической правильности 169
Вигна П. Д. 105
Вильсон Дж. Б. 27 (38), 32, 257,
258 (1), 261
Вильямс Т. Г. 141
Вирт Н. 133, 134, 140, 168 (27), 187, 272 (2), 277
Восстановление грамматики 217
— — индукцией 230
— — на основе теории структур 224
— — осевой 232
— — перечислением 222
— — по структурной информационной последовательности 225
— — регулярной 230
— — стохастической 238
Вудс В. А. 107 (21), 139
Вывод 14, 107, см. также дерево вывода
Гайфман К. 35 (5), 57
Галлус Г. 69 (15), 101
Гардер Дж. 70 (20), 101
Генчи X. 27 (37), 32
Гершковитц А. 33
Гинзбург М. Д. 27 (38)А32, 257 (1), 261
Гинзбург С. 58, 104, 123 (30), 140, 161 (21), 187
Гитис В. Г. 33
Гладкий А. В. 35 (21), 58
Голаб Т. Дж. 27 (38), 32, 257, 258 (1), 261
Голд Е. М. 218 (22), 222, 223 (22), 255, 256
Гофман Р. Л. 33
Грамматика веб 87
— графовая 87—91
— деревьев 91, 307
— индексная 56
Грамматика LR (к) 122
— матриц 83
— образа многомерная 81
— — одномерная 76
— осевая 219
— плекс 87, 293
— порождающая 35
— программная 54
— с предшествованием 133
— скобочная 220
— с операторным предшествованием 129
— с расширенным предшествованием 133
— трансформационная 65
Грамматический разбор 106, см. также синтаксический анализ
— —, алгоритм Эрли 124
— — сверху вниз 108, 111
— — снизу вверх 108, 117
— — стохастический по максимуму правдоподобия 195
Грасселли А. 70 (30), 102
Граф отношений 12
Грейбах Ш. А. 58, 112 (23), 123 (30), 139, 140, 161 (21), 187
Гренандер У. 34, 142 (2), 146 (2), 186, 189 (1), 216
Гримсдейл Р. Л. 61 (4), 101, 106 (9), 139
Грис Д. 106 (2), 139, 217 (16), 255
Гриффитс Т. В. 121, 140, 141
Гронер Г. Ф. 273 (3), 277
Гузман А. 76, 103, 107 (17), 139
Гудмен Л. А. 202 (7), 216
Гусев Л. А. 35 (22), 58
Де-Мори Р. 29 (44), 32, 286, 292
Дерево вывода 14, 107
Джинс Дж. 218 (25), 232, 255
Димитров В. Д. 216
Дональдсон Р. У. 286 (5), 292
Донер Дж. Е. 91 (76), 104, 312
Досита С. 26 (31), 32
Дуда Р. О. 9 (9), 15 (9), 31, 70 (36),
75 (36, 43), 102, 103, 107 (18), 139
Дэси М. Ф. 83 (57), 103
Завалишин Н. В. 10 (16), 31
Загоруйко Н. Г. 33
Зан К. Т. 34, 69 (19), 101
Занделл Г. Дж. 26 (35), 32
Заславская Т. И. 34
Иден М. 33, 62 (8), 101
Инойс С. 286 (4), 292
Инсельберг А. Д. 141
Инсельби А. 105
Информационная последовательность
Ито М. Р. 286 (5), 292
Кагайя У. 281 (2), 285
Канефф С. 104, 217 (10, 17), 255
Касаи Т. 58
Кац Дж. Дж. 104 #
Кацураги С. 27 (37), 32
Келли М. Д. 33, 70 (34), 102
Келли Дж. Л. 74 (39), 103
Кенел Л. 30 (49), 33, 81 (48), 103
Керте М. М. 187
Кильбурн Т. 49 (4), 101, 106 (9), 139
Кирш Р. А. 83 (56), 103
Клайден Д. О. 33
Клайн Р. 105
Клотт Д. Г. 29 (46), 32
Клюз М. Б. 33, 81 (47, 53), 83 (47), 86, 103, 104
Кнут Д. Е. 95, 104, 123, 140
Ковалевский В. А. 33
Коллере П. А. 33
Кореньяк А. Дж. 124 (36), 140
Кохран У. Г. 207 (8), 216
Креспи-Регицци С. 217 (15), 218 (29, 30, 31), 225 (30), 229 (31), 246, 248, 251, 255, 256
Кридинг К. Дж. 104
Куно С. 111 (20), 116 (24), 139
Куремацу А. 286 (4), 292
Курки-Суонио Р. 112 (22), 139
Курода С. Й. 54, 58
Ланд гриб Д. А. 33
Леви Г. 70 (31), 102
Левис П. М. 123 (32), 1401
Ледли Р. С. 27 (38), 32, 33, 70 (28), 82 (55а), 102, 103, 121, 140, 257, 258, (1, 2), 261
Лей У. А. 29 (42), 32, 286 (3), 292
Лернер А. 134, 140, 168, 187
Летичевский А. А. 104
Ли К. П. 29 (43), 32, 286 (2), 292
Ли Т. 152, 154 (17), 155, 187
Ли Г. К. 69 (16), 101, 135 (43), 140, 168, 169 (24), 175 (24, 28), 187,
202 (5, 6), 203 (5), 207 (5, 6), 211 (6), 216, 218 (40, 41), 232, 245, 961
Ливенворт В. М. 217 (4), 254
Лим А. Л. 134, 140, 168, 187
Липкин В. С. 34
Лихтен Л. 217 (15), 255
Лонде Д. Ф. 105
Люцио Ф. 105
Майзель У. 9 (5), 15 (5), 31
Мак Каллох Дж. В. 33
Мак Киман В. М. 135, 140
Маклеод И. Д. Г.217(11), 255
Мартин Т.Б.26 (35),32
Мартин В.А.277
Маслов В.К.33
Мацусима X. 34
Матрица отношений 13
Машина Тьюринга 50
Мельканов М. А. 217 (15), 255
Мендель Дж. М. 9 (4), 15 (4), 31
Меннинг Л. Д. 34
Мермельстайн П. 63 (8), 101
Милгрем Д. Л. 83 (58), 93 (70), 103,
104
Миллер Г. А. 35 (4), 57
Миллер Г. М. 273 (5), 277
Миллер У. Ф. 10 (13), 31
Милопулос Д. 104, 107 (14), 139
Минский М. Л. 58, 75, 81 (52), 93 (71)
103, 104
Мойер В. 70 (32), 102
Монтанари Г. У. 302, 306
Морзе С. П. 69 (17), 101
Мори К. И. 27 (37), 32
Мучник И. Б. 10 (16), 31, 105
Мясников Л. Л. 34
Мясникова Е. Н. 34
Нага о М. 33
Нагас М. 61 (2), 101
Нарасимхан Р. 10 (14), 31, 70 (21, 26), 81 (49, 50), 87, 92 (49), 101, 102, 103, 105, 121 (26), 140, 278, 281, 293, 301
Насу М. 188
Наур П. 217 (2), 254
Нейк Ф. 93, 104
Нельсон А. Л. 26 (35), 32
Нельсон Р. Дж. 58
Непроизводный элемент 57
— — из границ 64
— — из областей 70
Нильсон Н. Дж. 9 (3), 15 (3), 31
Нир М. 70 (24), 102
Нода К. 33
Ноук Р. Дж. 65, 101, 106 (10), 139
Нурат П. 69 (15), 101
Ньюмен Р. 286 (2), 292
О’Каллаген Дж. Ф. 70 (23), 102
Ольмстед Д. Л. 217 (13), 255
Оттингер А. Г. 141
О’Хендли Д. А. 34
Павлидис Р. 107 (12), 139
Павлидис Т. 34, 70, 75 (41, 42), 87, 102, 103, 104, 105, 106 (11), 107 (13), 139
Пац Т. В. 218 (28), 224, 255
Паркс Д. Р. 33
Парле М. 35 (6), 57
Парти Б. 104
Патрик Е. А. 9 (7), 15 (7), 31
Пац А. 152, 187
Пейперт С. 75, 94 (71), 103, 104
Пейцер Д. В. 217 (13), 255
Первичное подмножество 71
Первичный граф 75
Петрик С. Р. 121, 140
Поллок Д. К. 33
Поле Л. В. 29 (45), 32
Поплстон Р. Д. 34, 81 (55), 103
Предобработка 16—20
Препарата Ф. П. 105
Престон К. Д. 16 (26), 31
Пфальц Д. Л. 87 (59), 104, 302 (1), 306
Пэтел А. Р. 218 (42), 256
Рабин М. О. 58, 152, 187
Райт Дж. Б. 312
Распознавание образов, дискриминантный подход 1, 27
— —, синтаксический подход 1, 27
Раундс В. К. 312
Редди В. С. 105
Редди Д. Р. 26 (33, 34), 28 (34), 32
Рей С. Р. 105'
Рейнольдс Д. К. 256
Ренкин В. К. 281 (4), 285
Ридер С. 218 (25), 232, 255
Робертс Л. Д. 70 (35), 102
Родригес Д. Е. 217 (18), 255
Розен С., 106 (7), 139
Розенбаум П. С. 217 (19), 255
Розенкранц Д. Д. 54, 58, 123 (33), 140, 162 (22), 163 (22), 187
Розенфельд А. 16 (21), 20 (21), 31, 336, 34, 75, 83 (58), 87 (59), 93 (70),
104, 105, 141, 302 (1), 304 (1),
304 (3), 306
Розоноэр Л. И. 15 (18), 31
Росс Д. Т. 217 (18), 255
Ротолло Л. С. 27 (38), 32, 258 (1), 261
Роч К. 93, 104
Саймон Дж. С. 93, 104
Сайр К. М. 34
Сакаи Т. 26 (31), 32, 33, 34, 61 (2), 101, 285
Саломаа А. 152, 188
Саммер Ф. Г. 61 (4), 101, 106 (9), 139
Сантос Е. С. 188
Санс П. 188
Сассенгут Е. Г. 107 (15), 139, 141
Сатли К. 106, 161, 139
Свейн П. Г. 10 (12), 31, 104, 135 (45), 139, 140, 142 (38), 162, 176 (8), 186, 188, 189 (2), 196 (6), 254
Себастьян Д. С. 9 (2), 15 (2), 30
Севастьянов Б. А. 149 (12), 187
Сегментация 20
— изображения 20
— речевого потока 25
Селтон Д. 141
Семантическая информация 92
Симмонс Р. Ф. 105
Синтаксический анализ, 106
Синтаксическое описание знаков языка ФОРТРАН 278
— распознавание знаков английского алфавита 267
— — изображений хромосом 257
— — китайских иероглифов 257
— — слов 286
Сирович Ф. 70 (31)
Скланский Дж. 9 (И), 10 (11), 15 (11), 31
Скотт Д. 58
Снайвели Дж. У. 141
Сноу Т. Б. 29 (43), 32
Совейн Р. 217 (8), 255
Соломонов Р. Дж. 217 (14), 218 (14), 230, 255, 256
Спинрад Р. Дж. 70 (22), 102
Стернс Р. Е. 123 (33), 140, 224 (44), 256
Стефаналли Р. 33
Столлингс У. У. 61 (1), 101, 281 (1), 285
Стохастическая грамматика 142
— — автоматная 144, 160
— — бесконтекстная 144
— — — программная 196
— — согласованная 146
Стохастический автомат конечный 152
— — магазинный 156
— синтаксический анализ 209
— — — стохастических бесконтекстных программных языков 176
_ _ — — — языков 167
— язык индексный 165
— — описания образов 187
— — программный 162
Стронг Дж. П. 103
Строуд А. 70 (27), 102
Суза С. А. 142 (7), 162, 186
Такеда М. 286 (4), 292
Тапперт С. С. 26 (36), 32
Тейлор Дж. Ф. 286 (6), 292
Тераи X. 61 (2), 101, 285
Тетчер Дж. У. 312
Томпсон Р. А. 188
Toy Дж. Т. 70 (29), 102
Третьяк О. Дж. 16 (25), 31
Тунис С. Дж. 61 (4)f 101, 106 (9), 139
Туракайнен П. 152, 187
Турбович И. Т. 33
Турстон М. 33
Тэн Д. 281 (4), 285
Уемель Г. И. 34
Уили Р. Г. 65, 101, 106 (10), 139
Уллман Дж. Д. 34, 35, 57, 141
Уонг Е. 34
Уотен-Дунн У. 34
Ур Л. 33, 34
Фалтер Дж. У. 26 (35), 32
Фан Г. С. 34
Федер Дж. 65, 69 (18), 101, 141, 292 (2), 296 (2), 301
Фельдман Дж. А. 70 (37), 102,106 (2), 139, 217 (16, 21), 218 (23, 24, 25, 33, 35, 36, 37), 223 (24, 35), 230, 231, 232, 239, 255, 256
Феннема К. Л. 75, 103
Филлипс Т. Л. 33
Фишер М. 134, 140, 168, 187
Фиш лер М. А. 34
Фланаган Дж. Л. 33
Флойд Р. У. 106 (1), 124 (34, 35), 133, 139, 140, 217 (5), 254
Флорентин Дж. Дж. 136, 141
Фодор Дж. А. 104
фон Келлер Т. Г. 29 (47), 32
Фостер Дж. М. 106 (3), 139
Фримен X. 64, 69 (17, 18), 70 (20), 101, 141
Фу К. С. 9 (1), 10 (12), 15 (1, 4, 19), 30 (48), 30, 31, 32, 33, 69 (16), 70 (32), 101, 102, 104, 135 (43, 45), 139, 140, 141, 142 (3, 4, 5, 8), 143 (9), 152, 154 (17), 155, 162, 165, 168, 169 (24), 175 (24, 28), 176 (8, 29), 186, 187, 189 (2, 3), 196 (4), 202 (5, 6), 203 (5), 207 (5, 6), 211 (6, 9), 216, 217 (6) 218 (38, 39, 40, 41), 232, 239 (38, 39), 245 (40), 251 (41), 254 (46), 254, 255, 256, 259, 261, 286 (2), 292, 310 (2), 312
Фудзимура О. 281 (2), 285 Фукунага К. 9 (6), 15 (6), 31 Фухибаяси С. 22
Характеристическая грамматика 144
Харрис Т. Е. 149 (11), 187
Харрисон М. А. 58
Харт П. Е. 9 (9), 15 (9), 31, 70 (36), 75 (36, 43), 102, 103, 107 (18), 139
Хартманне Дж. 224 (44), 256
Хасс Г. У. 29 (43), 32
Хатчинс С. Е. 142 (6), 146 (6), 186
Хаукинс Дж. К. 15 (22), 31
Хаффмен Д. А. 105, 141
Хейс Д. Г. 106 (5), 139
Хелл М. 62, 101
Хомский Н. 35 (1, 2), 57, 65 (13), 101, 136 (47), 140, 217 (1), 254
Хенкли У. Дж. 70 (29), 102
Хершер М. Б. 26 (35), 32
Хонда Н. 188
Хопгуд Ф. Р. А. 106 (4), 139
Хопкрофт Дж. Е* 35, 57, 124 (36), 140
Хорнинг Дж. Дж. 218 (25, 26, 27), 232 (25), 238, 255
Хоуэлл X. Л. 273 (4), 277
Хуан Т. С. 15 (25), 31
Хуанг Т. 143 (9), 152, 165, 176 (29), 187, 211 (9), 216 (9), 216, 218 (39), 239 (39), 254 (46), 256
Цепной код 64
Цыпкин Я. 3. 15 (17), 31
Чанг С. К. 29 (41), 32, 61 (3), 93, 101, 104, 135 (44), 140, 277, 281 (5), 285
Чандрасекаран Б. 30 (49), 33, 81 (48) 103
Чекруин А. 93, 104
Чен К. X. 9 (10), 15 (10), 31
Чрпг Г К ЧЧ
Читхем Т. Е. 106 (6), 139
Шамир Е. 35 (5), 57
Шартр Б. А. 136, 140
Швебель Д. С. 217 (12), 255
Шерман Р. 217 (17), 255
Шилдс Л. 217 (21)
Шольц П. Н. 26 (32), 32
Шоу А. К. 10 (13), 27 (39), 31, 32, 70 (25), 87 (60), 93 (65), 102, 104, 116, 140, 262, 269, 296, 301
Шрейбер В. Ф. 16 (25), 31
Шютценберже М. Л. 136 (47), 161, (20), 187
Эванс Т. Г. 81 (51, 54), 92 (54), 103, 217’(20), 233, 255
Эвин Г. Д. 286 (6), 292
Эллис К. А. 152, 187
Элшлагер А. Р. 34
Эндрю X. G. 9 (8), 15 (8, 23), 31
Эрли Дж. 140
Эрнест Л. Д. 63, 101
Эрнст Г. У. 217 (7), 255
Язык бесконтекстный 38, 44
— взвешенный магазинный 158, 161
— детерминированный 50
— Х-стохастический автоматный 153
— — магазинный 158, 161
Язык непосредственно составляющих 38
— описания изображений PDL 86, 262
— регулярный, автоматный 39, 40
— стохастический максимального правдоподобия 155, 160
Якобсен Дж. Д. 27 (38), 32, 257,
258 (1), 261
ОГЛАВЛЕНИЕ
Предисловие редактора'перевода .5
Предисловие 7
Глава 1. Введение » 9
Синтаксический (структурный) подход к распознаванию образов 9
Система синтаксического распознаванияобразов 13
Методы предобработки 16
Сегментация 20
Замечания о синтаксическом и дискриминантном подходах 27
Список литературы 30
Глава 2. Введение в теорию формальных языков 35
Введение 35
Языки и порождающиеграмматики 35
Автоматные языки и конечные автоматы 40
Бесконтекстные языки имагазинные автоматы 45
Машины Тьюринга и линейно ограниченные автоматы . . .50
Модификации грамматик * 54
Список литературы 57
Глава 3. Языки описания образов 59
Выбор непроизводных элементов 59
Грамматика образа. Введение 76
Грамматики образов более высокой размерности 81
Использование семантической информации 92
Список литературы 101
Глава 4. Синтаксический анализ как распознающая процедура . .106
Введение 106
Грамматический разбор сверху вниз 111
Грамматический разбор снизу вверх 117
LR (/с)-грамматики 122
Эффективный грамматический разбор сверху вниз 124
Грамматики с операторным предшествованием 129
Грамматики с предшествованием и грамматики с расширенным предшествованием 133
Синтаксический анализ бесконтекстныхпрограммных языков 135
Список литературы 139
Глава 5. Стохастические языки и стохастический синтаксический анализ 142
Основные формулировки 142
Вероятностная мера в линейных и бесконтекстных грамматиках ’ 146
Языки, допускаемые стохастическими автоматами 152
Стохастические программные и индексные грамматики . . .162
Стохастический синтаксический анализ стохастических бесконтекстных языков 167
Стохастический синтаксический анализ бесконтекстных программных языков 176
Список литературы 186
Глава 6. Стохастические языки для синтаксического распознавания образов 189
Стохастическиеязыкиописанияобразов 189
Оценка вероятностей правилподстановки 202
Примеры стохастического синтаксического анализа . . . .209
Список литературы. . . 216
Глава 7. Восстановление грамматики для синтаксического распознавания образов 217
Введение и основные определения 217
Алгоритмы восстановления грамматики перечислением...222
Алгоритмы восстановления грамматики индукцией ....230
Восстановление стохастических грамматик по правилу Байеса238
Синтез конечных стохастических автоматов 239
Практические системы восстановления грамматики....245
Аппроксимация стохастических языков 249
Список литературы 254
Приложение А. Синтаксическое распознавание изображений хромосом257
Список литературы 261
Приложение Б. Язык описания изображений — PDL (Picture Description Language) 262
Список литературы 269
Приложение В. Синтаксический анализ двумерных математических выражений 270
Списоклитературы 277
Приложение Г. Синтаксическое описание нарисованных от руки знаков языка ФОРТРАН 278
Списоклитературы 281
Приложение Д. Синтаксическое распознавание китайских иероглифов Список литературы 285
Приложение Е. Синтаксическое распознавание слов, произнесенных вслух 287
Синтаксическое представление слова (на плоскости Bl — Вн)
Список литературы 292
Приложение Ж. Плекс-языки 293
Список литературы 301
Приложение 3. Веб-грамматики 302
Список литературы 306
Приложение И. Использование грамматик деревьев для синтаксического распознавания образов 307
Список литературы 312
УВАЖАЕМЫЙ ЧИТАТЕЛЬ!
Ваши замечания о содержании книги, ее оформлении, качестве перевода и другие просим присылать по адресу: 129820, Москва, И-110, ГСП, 1-й Рижский пер., д. 2, издательство «Мир».
ИБ № 84
К. Фу
СТРУКТУРНЫЕ МЕТОДЫ В РАСПОЗНАВАНИИ ОБРАЗОВ
Редактор А А. Бряндинская. Художник Н А. ВовкХудожественный редактор В И. ШаповаловТехнический редактор Н И МанохинаКорректор М. А. Смирнов
Сдано в набор 18/П 1977 г. Подписано к печати 1/VI 1977 г.Бумага кн.-журн. 60х901/1б=10 бум. л. 20 печ. л. Уч.-изд. л. 18,01. Изд № 1/8934.Цена 1 р. 60 к. Зак* 086
ИЗДАТЕЛЬСТВО «МИР»Москва, 1-й Рижский пер., 2.
Ордена Трудового Красного Знамени Московская типография № 7 «Искра революции»Союзполиграфпрома при Государственном комитете Совета Министров СССР по деламиздательств, полиграфии и книжной торговли.
Москва, К-1, Трехпрудный пер., 9.
1) Более подробное обсуждение задачи предобработки можно найти в работах [9, 21—28].
х) Пусть Lx — язык над алфавитом Уф, a Z2 — язык над алфавитом
Уф U {$, 0, гДе st $ Г-г, причем L2 = ^xst1 | х £ Z^}, и I зависит от
1) Грамматику G2 можно восстановить при помощи первой процедуры, описанной Креспи-Регицци [31], а затем воспользоваться алгоритмом восстановления вероятностей Ли и Фу [40]. Такая двухэтапная схема восстановления бесконтекстных стохастическйх грамматик была применена также к задаче классификации хромосом [40, 41].
MATHEMATICS IN SCIENCE AND ENGINEERING VOL. 112EDITED BY RICHARD BELLMAN
SYNTACTIC METHODSIN PATTERN RECOGNITION
K. S. FU
School of Electrical EngineeringPurdue University
West Lafayette, Indiana
Academic Press,New York and London 1974
к. фу
СТРУКТУРНЫЕ МЕТОДЫ В РАСПОЗНАВАНИИ ОБРАЗОВ
Перевод с английского
Н. В. ЗАВАЛИШИНА, С. В. ПЕТРОВА и Р. Л. ШЕЙНИНА
Под редакцией
М. А. АЙЗЕРМАНА
ИЗДАТЕЛЬСТВО «МИР»
Москва 1977
УДК 506 + 510
Новое направление исследований по автоматической обработке изображений связано с открытием аналогии между структурой изображений и синтаксисом языка. Развитие этого направления потребовало привлечения методов математической лингвистики и привело к ряду обобщений порождающих грамматик Хомского.
Настоящая книга служит хорошим введением как в методы автоматической обработки изображений, так и в новые аспекты исследования формальных грамматик.
Книга адресована специалистам по распознаванию образов, автоматической обработке изображений, математической лингвистике. Она доступна также и тем читателям, которые впервые знакомятся с этой новой областью науки.
Редакция литературы по математическим наукам
©1974 by Academic Press
ф 20204-029
041(0I)-77© Перевод на русский язык, «Мир», 1977