/
Author: Нильсон Н.
Tags: регулирование и управление машинами, процессами искусственный интеллект
Year: 1973
Text
Н.НИЛЬСОН
ИСКУССТВЕННЫЙ
ИНТЕЛЛЕКТ
МЕТОДЫ ПОИСКА
РЕШЕНИЙ
Перевод с английского В. Л. Стефанюка
Под редакцией С. В. Фомина
ИЗДАТЕЛЬСТВО «МИР»
МОСКВА 1973
УДК 62—506,222.001.57
Книга Нильсона написана как учебник, посвященный методам
поиска решений в пространстве состояний, — главной теме в исследо-
ваниях по искусственному интеллекту. В ней излагаются основные
теоретические результаты и для их иллюстрации разбираются много-
численные примеры решения задач — игра в 15, игра тик-так-ту, за-
дача о коммивояжере, задача о пирамидке, доказательство теорем
и др.
Для чтения книги требуются небольшие познания по теории гра-
фов, комбинаторике и исчислению предикатов.
Доступность изложения и тщательно подобранные задачи раз-
личной трудности делают книгу полезной студентам и аспирантам,
специализирующимся по искусственному интеллекту. Она будет инте-
ресна и специалисту как обстоятельный обзор большого числа совре-
менных работ, рассеянных по журналам, трудам конференций и от-
четам.
Редакция литературы по математическим наукам
0223—016
" 041 (01)—73
Перевод на русский язык, «Мир», 1973
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
Круг вопросов, объединяемых термином «искусственный ин-
теллект», достаточно широк и довольно неопределен. В самом
общем смысле — это решение «интеллектуальных» задач с по-
мощью автоматических методов, в первую очередь с помощью
вычислительных машин. Но какую деятельность следует счи-
тать интеллектуальной, а какую нет? Это не вполне ясно. На-
пример, мы привыкли рассматривать решение сложных вычи-
слительных задач как деятельность, несомненно, интеллектуаль-
ную. Для специалистов же по искусственному интеллекту боль-
шой интерес, пожалуй, представит исследование игры в шашки
или «крестики и нолики», чем, скажем, решение систем диффе-
ренциальных уравнений. И для этого есть довольно веские осно-
вания. Дело в том, что если для той или иной вычислительной
задачи (типа решения уравнений) имеется определенный алго-
ритм решения, то он достаточно естественно и четко представ-
ляется последовательностью отдельных элементарных опера-
ций, которая и реализуется в виде соответствующей программы
для вычислительной машины. Что же касается таких видов
деятельности, как распознавание образов, различного рода
игры, решение головоломок и т. д., то для них, напротив, это
формальное разбиение процесса поиска решения на отдельные
элементарные шаги часто оказывается весьма затруднительным,
даже если само их решение и несложно.
Трудность разбиения вычислительных задач на элементар-
ные шаги обычно бывает связана с трудностью формального
описания этих задач. Например, человек может отличать кошку
от собаки, совершенно не будучи в состоянии дать формальное
описание соответствующей процедуры распознавания.
Многие из задач, с которыми нам приходится встречаться
в науке, играх, практической Деятельности, в принципе могут
быть решены путем перебора некоторого, заведомо конечного
числа вариантов и выбора из них варианта, в том или ином
смысле наилучшего. Однако в достаточно интересных н содер-
жательных ситуациях такой «полный перебор» неосуществим,
поскольку обилие вариантов превосходит возможности любой
самой совершенной вычислительной машины. Например, число
различных позиций в шахматах, равно как и число возможных
шахматных партий, состоящих из некоторого ограниченного
числа ходов (скажем, не более 40), хотя и конечно, но столь
велико, что никакой перебор здесь невозможен. Поэтому в по-
добных ситуациях возникает вопрос о нахождении возможно
более экономных и эффективных способов сокращенного пере-
бора, первоочередного рассмотрения наиболее перспективных
путей решения задачи и т. д.
Итак, для проблем искусственного интеллекта существенную
роль играет вопрос о формальном описании тех или иных не-
формально поставленных задач, методах их расчленения на
отдельные элементарные шаги, а также об организации раз-
' личных оптимальных в том или ином смысле процедур перебора
вариантов.
Именно этим вопросам и посвящена книга Нильсона — од-
ного из ведущих сотрудников Группы искусственного интеллек-
та Стэнфордского исследовательского института.
Эта книга задумана автором как учебное руководство по
проблемам эвристического поиска. В первой, вводной, главе
дается общее представление о рассматриваемом круге вопро-
сов, который сам автор характеризует как эвристические ме-
тоды поиска решений задач. Далее следует изложение этих ме-
тодов. Методы, рассматриваемые в главах 2—5, базируются в
основном на теории графов и близком к ней комбинаторном
аппарате. В главах 6—8 довольно широко используются методы
математической логики. Хотя все содержание книги ориентиро-
вано на автоматические (т. е. реализуемые в виде программ для
вычислительных машин) методы перебора, собственно вопросы
составления программ в книге не рассматриваются. Ее цель —
дать логические подходы к возможно более эффективному по-
строению таких программ.
От читателя книги Нильсона требуется очень умеренная ма-
тематическая подготовка; по существу достаточно владеть эле-
ментарными теоретико-множественными понятиями и основами
комбинаторики. Знакомство с математической логикой жела-
тельно, но не обязательно, поскольку необходимые сведения из
этой области, равно как и используемые автором элементы
теорий графов, достаточно подробно изложены в самой книге.
Приводимые в книге результаты и методы автор'иллюстри-
рует, как правило,’ весьма элементарными модельными приме-
рами— игрой в пятнадцать, задачей о пирамидке и т. д., од-
нако сами эти методы применимы и ко многим проблемам,
имеющим серьезный научный и практический интерес.
Доступность изложения, сравнительная элементарность ап-
парата, наглядность приводимых примеров позволяют чита-
телю, желающему лишь составить себе общее представление о
рассматриваемом круге вопросов, достигнуть этого с неболь-
шрй Затратой времени и сил. Вместе с тем, ие пожалев труда на
тщательное изучение книги и, в частности, на разбор задач, по-
мещенных в конце каждой главы, читатель может достигнуть
и значительно большего — активного владения понятиями и ме-
тодами современной теории поиска решений. Такого вниматель-
ного изучения книга Нильсона несомненно заслуживает.
С. В. Фомин
'Моим родителям,
.Уолтеру и Паулине Нильсон
ПРЕДИСЛОВИЕ
Цель работ по искусственному интеллекту состоит в созда-
нии машин, выполняющих такие действия, для которых обычно
требуется интеллект человека. В число основных направлений
этой области входят автоматические методы решения задач,
«понимания» и перевода языков, доказательства теорем и рас-
познавание зрительных образов и речи. Хотя многие из этих за-
дач очень трудны, уже создано несколько программ для вычис-
лительной машины, работающих на уровне, приближающемся
к человеческому.
Дальнейшее продвижение в этой области зависит как от
развития теории, так и от накопления практических результа-
тов. По мере того как практики будут на основании своего
опыта понимать пути построения все более сложных систем
обработки ийформации, будет расширяться запас технических
приемов работы. Мы можем ожидать, что развитие технологии
цифровых вычислительных машин и совершенствование языков
для этих машин (в особенности списковых языков) будет и
дальше служить основой для получения необходимых новых
практических сведений.
Что же касается теоретических знаний, то здесь имеются сто-
ронники единой теории искусственного интеллекта. Моя точка
зрения состоит в том, что искусственный интеллект представ-
ляет собой (или скоро бу*дет представлять собой) инженерную
дисциплину, поскольку его первоначальной целью является со-
здание конструкций. Поэтому в поисках теории искусственного
интеллекта смысла не больше, чем в поисках, скажем, теории
гражданского строительства. Вместо единой общей теории
имеется ряд теоретических дисциплин, которые сюда относятся
и которые должны изучаться теми, кто выбирает искусственный
интеллект своей специальностью. К таким дисциплинам отно-
сятся математическая логика, структурная лингвистика, теория
вычислений, теория информационных структур, теория управ-
ления, статистическая теория классификации, теория графов и
теория эвристического поиска. Последняя из названных дисци-
плин— эвристический поиск — составляет основной предмет дан-
ной книги.
Решение задач посредством эвристически направляемого, ме-
тода проб и ошибок в пространстве возможных решений —
доминирующая тема в исследованиях по искусственному интел-
лекту. Тем не менее пока нет единого учебника, посвященного
объяснению тех теоретических идей, которые лежат в основе та-
ких поисковых процессов. Настоящая работа представляет со-
бой попытку удовлетворить потребность в такой книге. В ней
достаточно полно рассматриваются важнейшие методы эври-
стического поиска, используемые при автоматическом решении
задач, доказательстве теорел^ в игровых ситуациях.
Эти методы поиска разъясняются на основе единой системы
понятий; кроме того, приводятся некоторые теоретические ре-
зультаты относительно свойств эвристического поиска. Хотя
эффективное применение эвристических методов поиска в боль-
ших «практических» задачах только еще начинается, тем не ме-
нее во многих случаях они были успешно использованы в задачах
несравненно более сложных, чем выбранные в книге в качестве
примеров. Я упомянул некоторые из таких приложений, но я
думаю, что существует еще много других.
В книгу включены три главы, связанные с доказательством
теорем в исчислении предикатов, основанном на принципе по-
строения резольвент, и его применением для решения задач.
И хотя этот подход еще не нашел практического приложения,
но, я думаю, что в конце концов такие приложения возникнут.
Поскольку большая часть литературы по этому вопросу весьма
трудна для чтения, мне казалось полезным попытаться-дать до-
статочно простое изложение, снабдив его большим числом при-
меров.
Первоначально я намеревался включить в книгу главу, где
бы рассматривались методы принятия решений с использова-
нием обучающихся машин. Однако я пришел к выводу, что этот
предмет еще не разработан до такой степени, чтобы его можно
было включать в учебник.
Уровень, на котором представлен материал в настоящей
книге, позволяет использовать ее в качестве учебного пособия
для студентов старших курсов и аспирантов. Предварительный
курс лекций по математической логике был бы полезен, но со-
вершенно необязателен для ее чтения. Читатель, знакомый с
основными понятиями теории множеств и комбинаторной мате-
матики, не должен встретить трудностей при разборе приводи-
мых в книге доказательств. В конце каждой главы даны задачи,
которые можно разбить на три группы. Одни из них просто
предназначаются для проверки понимания читателем материала
книги, другие содержат важные идеи, которые не нашли исчер-
пывающего объяснения в тексте, третьи же могли бы служить
темами соответствующих курсовых работ. Последняя группа
задач отмечена звездочкой.
В каждой главе имеются также «Библиографические и исто-
рические замечания», в которых перечисляются и вкратце об-
суждаются наиболее важные работы по материалу соответ-
ствующей главы. Все эти работы объединены в алфавитном по-
рядке в список литературы в конце книги.
При создании этой книги ряд организаций и отдельных лиц
оказали мне неоценимую помощь. Я хотел бы особо отметить
первоначальную поддержку Отдела информационных систем
Управления военно-морских исследований. Дополнительная по-
мощь исходила от Группы техники обработки информации
Агентства перспективных исследовательских проектов, которое
поддерживает работы по проектам искусственного интеллекта
Стэнфордского исследовательского института и Стэнфордского
университетэ (где я провел чэсть зкэдемического годэ в 1963—
1969 гг.). Группэ искусственного интеллектэ из Стэнфордского
исследовэтельского институтэ, членом которой я состою, со-
здэлэ все необходимые условия для выполнения этой работы.
Доктор Петер Хзрт из Стэнфордского исследовэтельского
институтэ ззтрзтил немзло усилий нз чтение и критический рзз-
бор нескольких взризнтов рукописи. С его помощью изложение
мзтеризлз удзлось сделать значительно более ясным. Беседы
с профессорзми вычислительного фзкультетз Стэнфордского
университетэ Эдвзрдом Фейгенбаумом и Артуром Сэмюэлем
помогли мне в выборе структуры книги. Я также хочу побла-
годарить профессора Дэвида Лакхэма из Станфорда за его по-
пытку научить меня математической (формальной) логике. Мно-
гие из аспирантов вычислительного факультета Стэнфордского
университетэ, в чзстности Дж. Кеннет Сиберз, внесли предложе-
ния, позволившие улучшить эту книгу.
Нильс Нильсон
К РУССКОМУ ИЗДАНИЮ
Это предисловие, нзписзнное специзльно для русского изда-
ния, дает мне возможность высказать ряд новых соображений
по поводу искусственного интеллекта вообще и этой книги в ча-
стности. Прежде всего я хотел бы остановиться на моей пози-
ции в вопросе важности процессов поиска и различных страте-
гий решения задач, изучаемых в настоящей книге.
В последнее время исследования в области искусственного
интеллекта в США в какой-то степени отошли от эвристического
поиска. Первая причина этого состоит, по-видимому, в том, что
методика эвристического поиска уже доведена до такого уровня
развития, при котором дальнейшее изучение приемов поиска
едва ли может коренным образом повысить их эффективность.
Другая, и более важная причина состоит в том, что, как по-
казывает опыт, обобщенные’ процессы поиска, взятые сами по
себе, как правило, недостаточны для решения по-настоящему
сложных задач. Если предстоит написать программы для вычи-
слительной машины, позволяющие переводить с одного языка на
другой, мастерски играть в шахматы, эффективно и разумно
управлять деятельностью механического, робота, то в такие про-
граммы нужно вложить, помимо конкретных сведений (о языке,
о шахматах и т. д.), еще и представления «здравого смысла» об
окружающем мире. Поэтому исследования в области искусствен-
ного интеллекта в нескольких главных центрах США в настоя-
щее время концентрируются на том, как представить эти знания
в системах программ для вычислительной машины и как ими
пользоваться.
Отметив это смещение акцентов, наш потенциальный чита-
тель может подумать, что, пожалуй, ему следует читать вместо
нее какие-то другие книги, скажем «Как вкладывать знания в
программы для ЭВМ» или лучше «Как компьютеры могут усваи-
вать знания». Мы можем только пожелать, чтобы такие книги
существовали. К сожаленйю, их пока нет. (Возможно, кто-либо
из читателей этого предисловия будет участвовать в их напи-
сании.) Во всяком случае, цель этой книги состоит не в объясне-
нии наиболее модных в настоящее время вопросов из области
искусственного интеллекта, а скорее в том, чтобы ввести чита-
теля в круг идей, которые являются и существенными и доста-
точно установившимися.
Как отмечено в предисловии к американскому изданию, я счи-
таю, что искусственный интеллект — это по существу инженер-
ная дисциплина. Мы хотим строить разумные системы. Как и
для всякой инженерной дисциплины, имеется несколько связан-
ных с ней теоретических предметов, знание которых обязательно
для специалиста. Я по-прежнему считаю, что эвристический
поиск, обсуждаемый в этой книге, представляет главную компо-
ненту техники искусственного интеллекта. Было бы очень трудно
понять современный путь развития искусственного интеллекта,
не имея основ соответствующих знаний о предметах, обсуждае-
мых в книге. Эти предметы не стали вдруг ненужными. Наобо-
рот: в настоящее время принято считать, что специалист уже
хорошо с ними знаком.
Совершенно ясно, что в области искусственного интеллекта
существуют также и другие фундаментальные вопросы. К ска-
занному по этому поводу в предисловии к американскому изда-
нию я бы добавил здесь, что будущему специалисту можно
посоветовать приобрести знания в таких областях, как автома-
тические системы управления и информационные системы. При
таких основах мыслящий исследователь будет располагать всеми
возможностями для разработки новых важных идей в области
искусственного интеллекта.
Март 1973 Нильс Нильсон
Пало-Альто
Глава 1
ВВЕДЕНИЕ
1.1. РЕШЕНИЕ ЗАДАЧ И ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
Многие виды деятельности человека, такие, как решение го-
ловоломок, участие в играх, занятия математикой и даже вож-
дение автомобиля, требуют, как это принято считать, участия
«интеллекта». Если бы вычислительные машины могли справ-
ляться с деятельностью такого типа, то они (вместе с их про-
граммами), вероятно, обладали бы в какой-то степени искус-
ственным интеллектом. Многие специалисты полагают, что в
конечном итоге искусственный интеллект вычислительных ма-
шин превзойдет интеллект человека, хотя теперьвсе больше и
больше осознается тот факт, что процессы, требуемые для вы-
полнения даже самых обычных для человека задач, неизбежно
будут чрезвычайно сложными. В настоящей книге мы подробно
исследуем некоторые процессы, связанные с решением задач, в
которых участвует интеллект.
Решение задач может показаться весьма неясным предме-
том, ’и тем не менее на нем концентрируется большая доля ис-
следований по искусственному интеллекту. В самом широком
смысле этих слов нахождение решений включает в себя всю вы-
числительную науку, поскольку всякая вычислительная задача
может рассматриваться как задача, решение которой надо найти.
Однако для наших целей нужно более узкое определение, кото-
рое исключает такие стандартные вычислительные методы, как
методы, используемые, скажем, при обращении матрицы 50-го
порядка или при решении системы линейных дифференциальных
уравнений.
Если мы внимательно рассмотрим методы нахождения ре-
шений, изучаемые в исследованиях по искусственному интел-
лекту, то обнаружим, что в большинстве из них используется по-
нятие поиска путем проб и ошибок. Это значит, что в этих ме-
тодах задачи решаются посредством поиска решения в про-
странстве возможных решений. Наша цель состоит в разъясне-
нии наиболее важных методов решения задач с использованием
процедур поиска.
Имеются, конечно, и другие важные направления в изучении
искусственного интеллекта. Типичные представители тех из них,
которым было уделено особое внимание (кроме нахождения ре-
шений), следующие:
Обработка сенсорных данных (особенно зрительных образов
и речи).
Сложные системы хранения и извлечения информации.
Обработка естественных языков.
К сожалению, никто еще не мог сказать ничего достаточно по-
лезного относительно того, как названные элементы могли бы
быть объединены вместе в' одном общем «интеллекте» (каком
бы то ни было). В действительности при внимательном ана-
лизе становится ясно, что любая из предполагаемых «фунда-
ментальных» компонент интеллектуального поведения содер-
жит, по-видимому, в себе черты других фундаментальных ком-
понент. Так, для сенсорного, восприятия могут потребоваться
весьма изощренные способы выбора решения, для которых в
свою очередь возникает необходимость в достаточно эффектив-
ной системе извлечения информации, опирающейся, возможно,
на дополнительный выбор решений и т. д.
Наш опыт работы с этими сложными процессами все еще не-
достаточен для создания единой теории организации интеллекта.
На самом деле в настоящее время нет никаких оснований по-
лагать, что такая теория вообще могла бы существовать. Неко-
торые исследователи считают, что интеллектуальное поведение
может быть получено на вычислительных машинах только по-
средством комбинирования специализированных программ, каж-
дая из которых содержит множество подходящих к данному
случаю решений (или, как их часто называют, «программист-
.ских находок»), с возможностью обращения к магазину энци-
клопедических сведений, содержащему хорошо систематизиро-
ванные факты. Однако сейчас нам не хотелось бы занимать
определенную позицию по этому вопросу. Вместо этого мы опи-
шем те приемы решения задач, которые, по-видимому, имеют
достаточно широкую область применения.
1.2. ГОЛОВОЛОМКИ И ИГРЫ КАК ПРИМЕРЫ ЗАДАЧ
Мы еще не давали точного определения, что значит решить
некоторую задачу с применением методов поиска. Точно так же
мы не определили, что мы понимаем под задачей. По всей види-
мости, еще никем не было дано такого простого определения
слова «задача», которое полностью бы соответствовало тому
интуитивному значению, которое мы намереваемся здесь исполь-
зовать. Поэтому вместо того, чтобы пытаться дать формальное
определение, мы.начнем наше обеуждение с рассмотрения ти-
пичного примера задачи.
Головоломки и игры представляют собой неисчерпаемый ис-
точник примеров, полезных для иллюстрации и испытания мето-
дов решения задач. Для вычислительных машин были написаны
программы решения многих видов головоломок, достаточно
трудных для человека. Были написаны также другие програм-
мы, которые побеждали опытных игроков в настольные игры,
такие, как шахматы и шашки. Как говорит Минский (1968,
стр. 12): «Игры и математические задачи берутся не потому, что
они просты и ясны, а потому, что они при минимальных началь-
ных структурах дают нам наибольшую сложность, так что мы
можем заняться некоторыми действительно трудными ситуа-
циями, относительно мало отвлекаясь на вопросы программиро-
вания». В игровых задачах и решениях головоломок возникли
и отшлифовались многие идеи, которые оказались по-настоя-
щему полезными для менее легкомысленных задач.
11 д 4 15 => 1 2 3 4
1 3 12 5 6 7 8
7 5 8 В 9 10 11 12
13 2 10 14 13 14 15
Рис. 1.1. Игра в пятнадцать (слева — начальная конфигурация, справа —
целевая).
Для иллюстрации понятий, возникающих при решении за- ,
дач, мы часто будем пользоваться головоломкой, известной как
игра в пятнадцать. В ней используется пятнадцать пронумеро-
ванных подвижных фишек, расположенных на площадке раз-
мером 4X4 клетки. Одна клетка этой площадки остается все-
гда пустой, так что всегда одну из соседних с ней фишек можно
передвинуть на место этой пустой клетки, «передвинув», таким
образом, и эту пустую клетку. Игра в пятнадцать иллюстрирует-
ся на рис. 1.1, на котором изображены две конфигурации фи-
шек. Рассмотрим задачу перевода начальной конфигурации в
заданную целевую конфигурацию. Решением этой задачи
служит подходящая последовательность ходов, такая, напри-
мер, как «передвинуть фишку 12 влево, фишку 15 вниз
и т. д.».
Игра в пятнадцать — замечательный пример одного класса
задач, для которого лучше всего приспособлены методы”, изла-
гаемые в данной книге. В этой задаче имеется точно определен-
ная начальная ситуация и точно определенная цель. Имеется
также некоторое множество операций, или ходов, переводящих
одну ситуацию в другую. Мы начнем с введения некоторых
фундаментальных понятий, связанных с нахождением решений,
которые могут быть использованы для нахождения решения
игры в пятнадцать.
1.3. СОСТОЯНИЯ и ОПЕРАТОРЫ
По-видимому, самый прямолинейный подход при поиске ре-
шения для игры в пятнадцать состоит в попытке перепробовать
различные ходы, пока не удастся получить целевую конфигура-
цию. Такого рода попытка по существу связана с поиском при
помощи проб и ошибок. (Мы, разумеется, предполагаем, что та-
кой поиск может быть выполнен в принципе, скажем, на некото-
рой вычислительной машине, а не с привлечением реальной игры
в пятнадцать). Отправляясь от начальной конфигурации, мы
могли бы построить все конфигурации, возникающие в резуль-
тате выполнения каждого из возможных ходов, затем построить
следующее множество конфигураций после применения следую-
щего хода и т. д., пока не будет достигнута целевая конфигу-
рация.
Для обсуждения такого сорта методов поиска решения ока-
зывается полезным введение понятий состояний и операторов
для данной задачи. Для игры в пятнадцать состояние задачи
— это просто некоторое конкретное расположение фишек. На-
чальная и целевая конфигурации представляют собой соответ-
ственно начальное и целевое состояния. Пространство состояний,
достижимых из начального состояния,’ состоит из всех тех кон-
фигураций фишек, которые могут быть образованы в результате
допустимых правилами перемещений фишек. Многие из задач,
с которыми мы будем сталкиваться, имеют чрезвычайно боль-
шие (если не бесконечные) пространства состояний1).
Оператор преобразует одно состояние в другое. Игру в пят-
надцать естественнее всего интерпретировать как игру, имею-
щую четыре оператора, соответствующие следующим ходам: пе-
редвинуть пустую клетку (пробел) влево, вверх, вправо и вниз.
В некоторых случаях оператор может оказаться неприложимым
к какому-то состоянию: так, оператор «передвинуть пробел
вправо» не может быть применен к целевому состоянию на
рис. 1.1. На нашем языке состояний и операторов решение не-
которой проблемы есть последовательность операторов, которая
преобразует начальное состояние в целевое.
Пространство состояний, достижимых из данного началь-
ного состояния, полезно представлять себе в виде графа, вер-
шины которого соответствуют этим состояниям. Вершины та-
кого графа связаны между собой дугами, отвечающими опера-
торам. На рис. 1.2 показана небольшая часть графа для игры
в пятнадцать. На этом графе в каждой вершине помещена та
конфигурация фишек, которую она представляет.
1) В игре в пятнадцать имеется 16! различных конфигураций из фишек и
пустой клетки. Половина из них (или примерно 10,5-1012) достижима из дан-
ной начальной конфигурации.
Решение игры в пятнадцать можно было бы получить, ис-
пользуя процесс поиска (перебора) при котором прежде
всего применяют операторы к начальному состоянию, с тем
чтобы получить новые состояния,- к которым также приме-
няют операторы, и т. д. до тех пор, пока не будет построено
состояние, отвечающее цели. Методы организации такого поиска
целевого состояния удобнее всего объяснять, пользуясь пред-
ставлением в виде графа рис. 1.2.
Про метод решения задач, основанный на понятиях состоя-
ний и операторов, можно было бы сказать, что это подход к
задаче с точки зрения пространства состояний. В общем случае
мы будем связывать последний термин с методами, в которых
опробываемые последовательности операторов строят посте-
пенно, отправляясь от некоторого начального оператора и до-
бавляя затем каждый раз по одному оператору до тех пор, пока
не будет достигнуто целевое состояние.
Мы вернемся к дальнейшему обсуждению методов, связан-
ных с пространством состояний, в следующих двух главах.
’) В отечественной литературе широко используется слово «перебор» в
качестве значения английского «зеагсб» («поиск»). Ниже мы будем пользо-
ваться обоими русскими терминами как эквивалентами. — Прим, перев.
1.4. СВЕДЕНИЕ ЗАДАЧИ К ПОДЗАДАЧАМ
В некотором смысле более тонкий подход к решению задачи
связан с понятием подзадач. При таком подходе производится
исследование исходной задачи с целью выделения такого мно-
жества подзадач, чтобы решение некоторого определенного под-
множества этих подзадач содержало в себе решение исходной
задачи. Рассмотрим, например, задачу о проезде на автомобиле
из Пало-Альто (шт. Калифорния) в Кембридж (шт. Массачу-
сетс). Эта задача может быть сведена, скажем, к следующим
подзадачам:
Подзадача 1. Проехать из Пало-Альто в Сан-Франциско.
Подзадача 2. Проехать из Сан-ФранцисковЧикаго, шт. Ил-
линойс.
Подзадача 3. Проехать из Чикаго в Олбани, шт. Нью-Йорк.
Подзадача 4. Проехать из Олбани в Кембридж.
Здесь решение всех четырех подзадач обеспечило бы неко-
торое решение первоначальной задачи.
Каждая из подзадач может быть решена с применением ка-
кого-либо метода. К ним могут быть применены методы, исполь-
зующие пространство состояний, или же их можно проанализи-
ровать с целью выделения для каждой своих подзадач и т. д.
Если продолжить процесс разбиения возникающих подзадач на
еще более'мелкие, то в конце концов мы придем к некоторым
элементарным задачам, решение которых может считаться три-
виальным.
Про всякий метод решения задачи путем выработки и по-
следующего решения подзадач мы будем говорить, что в нем
используется подход, основанный на редукции задачи. Заметим,
что, строго говоря, подход с использованием пространства со-
стояний можно рассматривать как вырожденный случай под-
хода, основанного на редукции задачи, ибо каждое применение
оператора сводит задачу к несколько более простой подзадаче.
Правда, как правило, мы будем иметь дело со случаями, когда
подзадачи, возникающие при редукции, получаются не столь
тривиальным образом.
Важно отметить, что поиск методом проб и ошибок по-преж-
нему играет важную роль в подходе, основанном на редукции
задачи. На каждом из этапов может возникнуть несколько аль-
тернативных множеств подзадач, к которым может быть све-
дена данная задача. Так как некоторые из этих множеств-в ко-
нечном итоге, возможно, и не приведут к окончательному реше-
нию задачи, то, как правило, для решения первоначальной за-
дачи необходим поиск в пространстве множеств подзадач.
В главах 4 и 5 мы вернемся к обсуждению методов, основанных
на редукции задач.
1.5. ИСПОЛЬЗОВАНИЕ ФОРМАЛЬНОЙ ЛОГИКИ ПРИ РЕШЕНИИ
ЗАДАЧ
Часто для решения задачи либо требуется проведение логи-
ческого анализа в определенном объеме, либо поиск решения
существенно облегчается после такого анализа. Иногда такой
анализ показывает, что определенные проблемы неразрешимы.
В игре в пятнадцать, например, можно доказать1), что целевая
конфигурация
/ 2 3 4
5 6 7 8
9 10 И 12
13 14 15
в подходах, основанных на использовании пространства
состояний, так и в подходах, связанных с редукцией задач.
В подходах первого типа логических выводов может потребо-
вать тот тест, с помощью которого определяется, будет ли не-
которое состояние состоянием, отвечающим поставленной цели.
Кроме того, логические умозаключения могут понадобиться при
определении, какой из операторов применим к данному состоя-
') Это утверждение вытекает из логического анализа данной игры, кото-
рый показывает, что множество всевозможных конфигураций может быть раз-
бито на два непересекающихся подмножества А и В, причем никакой элемент
подмножества А не может быть преобразован в элемент подмножества В и
обратно,
нию. Как мы уже видели, иногда можно доказать, что некото-
рая задача неразрешима. В подходах, основанных на редукции
задачи, доказательство такого рода позволило бы избежать
тщетных попыток разрешить неразрешимые подзадачи. В до-
полнение к таким приложениям мы хотим также иметь возмож-
ность решать задачи, которые представляют собой задачи на
доказательство. Например, возможно, мы захотим найти дока-
зательство некоторой математической теоремы, записанной в
определенной формальной системе, такой, как исчисление пре-
дикатов первого порядка.
Таким образом, полное исследование приемов'решения задач
должно включать рассмотрение машинных методов поиска до-
казательства. Некоторые из этих методов опираются на страте-
гии поиска, подобные тем, которые мы будем обсуждать в связи
с подходами, основанными на пространстве состояний и редук-
ции задач. Хотя известно много способов выбора конкретного
логического формализма, мы будем рассматривать разработан-
ную в последнее время методику доказательства теорем в исчи-
слении предикатов первого порядка, основанную на принципе
резольвенций, и применения такой методики к решению задач.
Этому будут посвящены гл. 6—8.
При обсуждении автоматического доказательства теорем мы
покажем, что даже нематематические задачи могут быть сфор-
мулированы как теоремы, подлежащие доказательству.. Многие
из головоломок, которые мы рассмотрим, так же как и многие
возникающие в реальной действительности задачи, требующие
для их анализа здравого смысла, могут быть в принципе сфор-
мулированы в рамках определенного логического формализма
и после этого решены методом доказательства теорем. Исполь-
зование формальной логики и методов доказательства теорем
позволяют нам думать о действительно «универсальном» реша-
теле задач. Новая информация в такой решатель задач могла
бы вводиться просто в форме внесения в его память новых
дополнительных аксиом, а не посредством переделывания его
программы. Он мог бы решать задачи из достаточно широких
областей, поскольку существуют логические формализмы, до-
статочно универсальные для того, чтобы выразить любую ин-
формацию и записать любую задачу.
1.6. ДВА СОСТАВНЫХ ЭЛЕМЕНТА ПРОЦЕССА РЕШЕНИЯ ЗАДАЧ:
ПРЕДСТАВЛЕНИЕ И ПОИСК (ПЕРЕБОР)
В каждом из подходов к решению задач, о которых мы го-
ворили, для построения решения необходим поиск какого-либо
типа. Эта книга написана главным образом о том, как прово-
дить такой поиск настолько эффективно, насколько это воз-
можно. Но прежде чем такой процесс поиска может быть на-
чат, сама задача должна быть поставлена либо в рамках под-
хода, основанного на пространстве состояний или на редукции
к подзадачам, либо же как теорема, подлежащая доказатель-
ству. Обычно при решении человеком той или иной задачи мы
восхищаемся не быстрым и упорядоченным поиском в простран-
стве всевозможных решений, а умением найти такую ясную
точку зрения на рассматриваемую задачу, которая делает ре-
шение элегантно простым.
В следующей главе мы обсудим вопрос о постановке и пред-
ставлении задачи ъ такой форме, чтобы ее можно было решать
методом, основанным на рассмотрении пространства состояний.
Мы увидим, что существует несколько вариантов представлений
для одной и той же задачи, причем некоторые представления
дают намного более узкие пространства состояний, чем другие.
Так как даже самые эффективные методы поиска будут непри-
годны, если пространство, в котором ведется поиск, слишком
велико, то важно уметь представлять задачу самым экономным
из возможных способов. Вопрос о выборе представления —
общий для любого способа решения задач, но, к сожалению, в
исследованиях по искусственному интеллекту еще не вырабо-
тано универсального автоматического метода для нахождения
искусных формулировок задач. Поэтому, несмотря на то что
имеется два аспекта в автоматическом решении задач, а имен-
но представление и поиск, в настоящей книге мы вынуждены
ограничиться рассмотрением главным образом вопросов поиска.
1.7. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
«Интеллект» вычислительных машин
Вопрос о том, могут ли машины «Гдумать» (или будут ли они
когда-либо способны на это), все еще вызывает живое обсужде-
ние даже среди тех, кто допускает, что сам человек представ-
ляет собой некую машину. Тьюринг (1950) устранил многие из
стандартных доводов против мыслящих машин. Для решения
вопроса о том, может ли машина мыслить, им был предложен
тест, который принято теперь называть тестом Тьюринга.
Селфридж и Келли (1962) обсуждали вопрос об объеме
практических трудностей, стоящих на пути создания разумных
машин, после того, как они пришли к выводу о том, что здесь
неизвестно никаких теоретических запретов. Хьюберт Дрейфус
(1965) заявил, что цифровые вычислительные машины принци-
пиально неспособны на выполнение таких обязательных для
интеллекта действий, как «осознание края» и «ясное группиро-
вание». Его аргументация была последовательно опровергнута
Пейпертом (1968),.
Искусственный интеллект в целом
Попытки упорядочить область искусственного интеллекта
никогда не были вполне успешны. В важной обзорной статье
Минский (1961а) предложил следующий перечень: поиск, распо-
знавание образов, обучение, решение задач, логические выводы.
Такая схема все еще приносит пользу, хотя ее классификацион-
ные достоинства сильно снижаются изобилием в литературе
утверждений, имеющих форму: «проблема X по существу яв-
ляется проблемой У», где в качестве X и У можно взять любую
пару компонент, о которых говорил Минский. Уже не так давно
Минский (1968) написал еще одну содержательную статью об
основаниях искусственного интеллекта, где делается вывод, что
главной является проблема образования, поддержания и извле-
чения сведений из некоторой большой их совокупности.
. Различные подходы в области искусственного интеллекта
При попытке построить разумные машины мы, естественно,
ставим вопрос о том, в чем же состоит секрет естественного
интеллекта. Поиски ответа на этот вопрос были связаны с ря-
дом замечательных событий, однако до сих пор никому не уда-
лось раскрыть этой тайны. Розенблаттом (1962) были предло-
жены модели мозга, названные персептронами. Это были сети
из искусственных нейронов, в основе которых лежали нейрон-
ные модели Маккаллока — Питтса (1943). Изучение персептро-
нов стимулировалось вначале исследователями по распознава-
нию образов и привело к некоторым изящным математическим
результатам по вычислительной геометрии (Минский и Пей-
церт, 1969). Однако сложные процессы, связанные с интеллек-
том, оказались вне пределов возможностей, заложенных в этих
простых персептронных моделях.
Другим подходом, основанным на биологических представ-
лениях, была весьма грандиозная попытка промоделировать
саму эволюцию. Поскольку эволюционному процессу потребо-
валось два миллиарда или около того лет для .создания разум-
ного человека, то почему бы нам не воспользоваться вычисли-
тельной машиной и не промоделировать такой эволюционный
процесс при высокой скорости? Фогель и др. (1966) описывают
эксперименты, в которых с использованием идей мутации ^из-
бирательного выживания моделировался процесс построения
многих поколений машин с конечным числом состояний. Хотя
такой подход дает возможность свести несколько первых мил-
лионов лет эволюции к нескольким дням вычислительного вре-
мени, создается впечатление, что важные средняя и поздняя
стадии эволюции связаны со столь сложными структурами (хотя
и не являющимися еще «разумными»), что их эволюция уже не
может быть ускорена путем моделирования на вычислительной
машине. Поэтому такая «искусственная эволюция» не привела
к созданию действительно сложных машин.
Другой способ понять, что такое естественный интеллект жи-
вотных, состоит в том, чтобы изучать их поведение и в особен-
ности поведение человека при решении задач. Трейвис я(1963,
1967) обсуждает роль самонаблюдения при создании решателя
задач. Ньюэлл, Шоу и Саймон (1959) описали «универсальный
решатель задач», который обращается с задачей в значительной
степени так же, как это делает человек. Богатым источником
идей о том, как человек подходит к решению задач, является
книга Пойа (1957).
Рассматривая методы решения задач, основанные на анализе
поведения человека, мы обнаруживаем, что поиск путем проб
и ошибок на некотором уровне играет в них ключевую роль.
Кэмпбелл (1960) называет ненаправленный процесс поиска
процессом «слепого изменения и избирательного выживания».
Он делает вывод:
Процесс слепого изменения и избирательного выживания
составляет основу успешных индуктивных построений, ос-
нову всех случаев, когда объем знаний действительно воз-
растает, всех случаев улучшения приспособления системы
к ее окружению.
Процессы, которые обеспечивают прерывание полного про-
цесса слепого изменения и избирательного выживания,
сами по себе представляют результаты успешных индуктив-
ных построений, содержащие полезные сведения об окру-
жении, полученные первоначально в результате некоторого
процесса слепого изменения и избирательного выжива-
ния.
Кроме того, эти подменяющие процессы сами при своей ра-
боте опираются на некотором уровне на процесс слепого
изменения и избирательного выживания.
Мы согласны с Кэмпбеллом относительно первостепенной в
конечном счете роли поиска. Действительно, существенным при-
емом при создании эффективного автоматического решателя за-
дач -является поиск, осуществляемый на самом высшем уровне,
допускаемом имеющейся информацией о самой задаче и о том,
как она могла бы быть решена. Таким образом, в настоящей
книге мы прежде всего интересуемся методами поиска и тем,
каким образом сделать их более эффективными, используя всю
имеющуюся информацию.
Методы поиска решений
В литературе имеется всего лишь несколько попыток абст-
рактного изучения процессов решения задач, с тем чтобы
упорядочить различные методы и вывести их общие свойства.
В настоящей книге мы делаем попытку выделить некоторые
главнейшие концепции, связанные с поиском решений, и
дать их связное изложение. Несколько иной путь систематиза-
ции обсуждения методов поиска решений предлагается Ньюэл-
лом (1969). На построение настоящей книги оказала сильное
влияние серия трудных, но очень ценных статей Амареля (1965,
1967, 1969). Формализация некоторых идей поиска решений, ко-
торыми мы занимаемся в нашей книге, дана в статье Сэнду-
олла (1969). Весьма формальное исследование вопросов реше-
ния задач и разыгрывания игр содержится в книге Бенерджи
(1969).
Подход к решению задач с использованием пространства со-
стояний получил такое название по аналогии с ситуацией в
теории управления, где также для подобных целей исполь-
зуются пространства состояний. Последние находят широкое
применение и в теории исследования операций. Некоторые из
методов поиска в пространстве состояний, которые мы будем
обсуждать в дальнейшем, идентичны методам, которые в теории
исследования операций получили названия методов ветвей и
границ. Обзор методов ветвей и границ и их применений имеет-
ся в работе Лолера и Вуда (1966).
Наше желание различать методы, использующие понятие
пространства состояний, и методы, основанные на редукции за-
дачи, связано с тем, что в этих методах применяются различ-
ные стратегии поиска. Это различие носит тот же характер, что
и отмеченное Амарелем (1967) различие между методами «про-
дукционного типа»'и «редукционного типа». Слейджл (1963а)
при описании своей программы, предназначенной для символи-
ческого интегрирования, также счел полезным использовать по-
нятие сведения задачи к подзадачам. По нашему убеждению,
работу универсального решателя задач (Оепега! РгоЫегп 8о1-
уег) Ньюэлла и его сотрудников (Эрнст и Ньюэлл,’ 1969) го-
раздо легче себе уяснить, если его описывать как решатель
задач, опирающийся на сведение задачи к подзадачам.
Использование формальных методов для построения логиче-
ских выводов при решении задач может быть обнаружено в за-
метках Маккарти (1958, 1963) о системе, «воспринимающей со-
веты». Эта система должна была выводить решения для задач
из большого количества аксиом, представляющих те знания,
которые имеются у решателя. Такой системе очень легко давать
«советы», просто добавляя новые аксиомы. Работа Блэка (1964)
была одной из первых работ, основанных на этой идее. О. неко-
торых из последних работ в этой области будет идти речь
в гл. 7.
Ряд блестящих идей о решении больших комбинаторных за-
дач высказал Лин Шен (1965, 1970). Он привел несколько эф-
фективных стратегий разбиения задачи на подзадачи.
Приложения программ решения задач
Стоит задаться вопросом о том, был' ли хоть один из мето-
дов, так хорошо работающих на головоломках и играх, когда-
либо с пользой применен для «реальных» задач. Методы, исполь-
зующие пространство состояний, нашли применение для реше-
ния задач исследования операций, таких, как известная задача
о коммивояжере. Примером может служить метод, предложен-
ный в диссертации Шапиро (1966) и рассмотренный затем Белл-
мором и Немхозером (1968). Хотя задача о коммивояжере
может показаться легкомысленной, как головоломки и игры,
она служит моделью важных с экономической точки зрения
проблем, возникающих при составлении расписаний и плани-
ровании производства.
Другие приложения метода, использующего пространство
состояний, даны в работе Уитни (1969) о дистанционном управ-
лении манипуляторами, в работе Йелинека (1969) о последова-
тельном декодировании и в работе Монтанари (1970) о подборе
хромосом. Методы, основанные на редукции задачи, были ис-
пользованы в одной системе, осуществляющей интегрирование
в символической записи (Слейджл, 1963а), и в системе, анали-
зирующей данные с масспектрографа (Фейгенбаум, Букхэнан
и Ледерберг, 1971),
Важнейшая литература по искусственному интеллекту
По вопросам искусственного интеллекта имеется много об-
зоров и существует обширная литература. Один из первых анно-
тированных списков литературы принадлежит Минскому
(19616). Более поздние обзоры Фейгенбаума (1963) и Соло-
монова (1966) содержат много дополнительных работ. Еще
больше литературных ссылок, сопровождающихся рассужде-
ниями о будущем этой области исследований, содержится в не-
давнем обзоре Фейгенбаума (1969).
Часто делаются ссылки на книгу «Вычислительные машины
и мышление» под редакцией Фейгенбаума и Фельдмана, по-
скольку в ней нашло отображение много более ранних статей в
этой области. Под редакцией Мичи и др. выходит серия книг,
носящая название «Машинный разум». Здесь публикуются до-
клады, сделанные на конференциях по машинному разуму, про-
водимых ежегодно в Эдинбурге. Следующая важная книга — это
«Обработка семантической информации» под редакцией Мин-
ского; в ней содержатся полные тексты нескольких диссертаций,
связанных с обработкой языков и вопросами «понимания».
Журнал АгНПс1а1 1п1е1Пдепсе, целиком предназначенный для
работ по искусственному интеллекту, начал издаваться в 1970 г.
Статьи по этой тематике время от времени публикуются также
в Доигпа! о? 1Ье АззощаБоп Тог СотриНп^ МасЫпегу.
В США координацию деятельности в области искусствен-
ного интеллекта осуществляет специальная исследовательская
Группа по искусственному интеллекту (8ЮАКТ) Ассоциации
вычислительных устройств (АСМ). Она издает информацион-
ный бюллетень, в котором время от времени появляются рефе-
ративные материалы, нигде больше не публикуемые. В Европе
издается информационный бюллетень Группой искусственного
интеллекта и моделирования поведения (А18В) Британского
общества вычислительных машин.
Программы решений задач были отшлифованы на ряде
головоломок и игр. Хорошими книгами по головоломкам яв-
ляются книги Мартина Гарднера (1959, 1961), который редак-
тирует раздел головоломок в журнале ТЬе 8с1епЩ1с Атепсап.
Интересны также книги по головоломкам Дьюденея (1958,
1967), известного английского составителя головоломок. В книге
головоломок Шуха (1968) особо выделяются стратегии поиска
методом проб и ошибок и редукции задач. У игры в пятнадцать
имеется длительная история, которая обсуждается Мартином
Гарднером (1964, 1965а, б, в) и Боллом (1931).
Для полноты изложения мы иногда будем ссылаться в этой
книге на неопубликованные работы и отчеты. Авторы этих мате-
риалов в отдельных случаях могут выслать их копии, если об-
ратиться к ним с такой просьбой.
Задачи
1.1. Прочтите статью Ньюэлла (1969) и сопоставьте применяемую им
классификацию методов решений задач с описанной в настоящей главе. Ка-
кие из методов Ньюэлла можно рассматривать как методы поиска в простран-
стве состояний? Что является для них состояниями и операторами?
1.2. Во многих случаях решение задач связано с 'выполнением все увели-
чивающегося объема вычислений с последующей проверкой, ие завершена ли
задача. Если она не завершена, то производятся дополнительные" вычисления
п
и т д. Примером может служить процесс нахождения суммы чисел У, х/.
1=1
представленный на стр. 24.
Можно ли представить этот процесс как метод решения задачи с исполь-
зованием пространства состояний? Имеется ли в этом процессе какой-либо
поиск методом проб и ошибок? (Могла бы в этом процессе возникнуть не-
обходимость вернуться назад н пойти к цели другим путем?)
1.3. Приведите несколько примеров из повседневной человеческой деятель-
ности, характеризующихся гем или иным поиском по методу проб и ошибок.
(Примеры могут касаться вопроса о том, что одеть, что приготовить к обеду
н т. д.)
1.4. Прочтите работу Ньюэлла, Шоу и Саймона (1957) о логической тео-
рии машин и опишите ее содержание как с точки зрения подхода, основанного
на1 пространстве состояний, так и с точки зрения редукции задач.
Глава 2
ПРЕДСТАВЛЕНИЕ ЗАДАЧ
В ПРОСТРАНСТВЕ СОСТОЯНИЙ
2.1. ОПИСАНИЯ состоянии
В предыдущей главе мы ввели понятия состояний и опера-
торов. Здесь мы займемся детальной разработкой этих идей и
дадим несколько примеров формулировки задач в терминах
пространства состояний.
Чтобы построить описание задачи с использованием простран-
ства состояний, мы должны иметь определенное представление
о том, что представляют собой состояния в этой задаче. В игре
в пятнадцать выбор в качестве состояний различных конфигу-
раций из фишек был достаточно очевидным. Но процесс решения
задачи, в котором решение ищется без реального перемещения
настоящих фишек, может работать лишь с описанием конфигу-
раций, а не с самими конфигурациями. Таким образом, важным
этапом построения какого-либо описания задачи с использова-
нием пространства состояний является выбор некоторой кон-
кретной формы описания состояний этой задачи.
В сущности любая структура величин может быть исполь-
зована для описания состояний. Это могут быть строки симво-
лов, векторы, двумерные массивы, деревья и списки. Часто
выбираемая форма описания имеет сходство с некоторым физи-
ческим свойством решаемой задачи. Так, в игре в пятнадцать
естественной формой описания состояний может быть массив
4X4. Выбирая форму описания состояний, нужно позабо-
титься и о том, чтобы применение оператора, преобразующего
одно описание состояния в другое, оказалось бы достаточно
легким.
Проиллюстрируем выбор формы описания состояний на про-
стом примере. Рассмотрим задачу преобразования алгебраиче-
ского выражения (АВ-{-СО)/ВС в более простое выражение
А/С + О/В. Очевидно, что в качестве состояний задачи здесь
должны выступать алгебраические выражения, но необходимо
еще принять решение относительно формы описания со-
стояний.
6' широко используемом описании употребляются двоичные
деревья. Неконцевые вершины в таком дереве описания пред-
ставляют арифметические знаки (+, —, Х> Ч-), а концевые
вершины представляют переменные или постоянные символы
(А, В, С, б), появляющиеся в этом выражении. Таким обра-
зом, деревом представления для выражения (АВ Д- СО)/ВС
должно быть
Здесь ветвь, отходящая от вершины 4- влево, представляет чис-
литель дроби, а ветвь, отходящая вправо, — ее знаменатель.
Применение законов алгебраических преобразований (операто-
ров в пространстве состояний) привело бы к преобразованию
этого описания в другие описания. Наша задача состоит в пре-
образовании его в состояние, 'описываемое деревом
Другой известной формой описания служит линейная строка.
Возможное описание для выражения (АВСО)/ВС в виде
строки такое 4- + X АВ X СО X ВС. Здесь арифметические
операторы (4-, + и X) называются префиксными операто-
рами, поскольку они предшествуют в этой строке своим операн-
дам. Так как нам известно, что каждый из этих операторов от-
носится ровно к двум операндам, то в этой строке нет необхо-
димости в пунктуации. Операндами для символа + в этой
строке, например, должны быть две идущие непосредственно
друг за другом подстроки, которые представляют собой алге-
браические выражения ХАВ и У. СО. Используя описание
в форме строки, можно сформулировать стоящую перед нами
проблему как задачу преобразования строки 4- X АВ X
X СО X ВС в строку + 4- АС 4- ОВ.
2.2. ОПЕРАТОРЫ
Операторы переводят одно состояние в другое. Таким обра-
зом, их можно рассматривать как функции, определенные на
множестве состояний и принимающие значения из этого мно-
жества1). Так как наши процессы решения задач основаны на
работе с описаниями состояний, то мы будем предполагать, что
операторы суть функции этих описаний, а их значения суть
новые описания. Мы могли бы, конечно, определять наши опе-
раторные функции с помощью таблицы, связывающей с каж-
дым «входным» описанием состояния некоторое «выходное»
описание. Для больших задач такая таблица была бы практи-
чески непригодной, поэтому в общем случае мы будем предпо-
лагать, что операторы — это вычисления, преобразующие одни
описания состояний в другие. '
Для описаний состояний в форме строки имеется очень
удобный способ представления операторных вычислений. Он
основан на идее правил переписывания (называемых иногда
продукциями (ргодисНопз)).
Множество правил переписывания определяет возможные
способы преобразования одной строки в другую. Все правила
переписывания имеют форму 5»-*5д означающую, что строка
может быть преобразована в строку 53-. Пример правила- пе-
реписывания таков:
Оно означает, что если символ А появляется в качестве первого
символа некоторой строки, то он может быть заменен на сим-
вол В. Знак $—произвольная подстрока (включая пустую
строку). В приведенном правиле переписывания знак $ указы-
вает, что часть строки (какова бы она ни была), идущая не-
посредственно за А, не изменяется, когда А заменяется на В.
Для указания нескольких различных подстрок в правилах
переписывания может быть использовано несколько знаков $.
Так мы получаем следующие примеры возможных правил
переписывания:
1. А$А->Л (строка, начинающаяся и кончающаяся
символом А, может быть заменена
одиночным символом Л).
2. (одиночный символ А, стоящий между
двумя символами В, можно исключить).
3. 818283 -* 81828283 (каждая подстрока может быть пов-
торена).
4. 81828283 -* 818283 (одна из двух стоящих рядом одина-
ковых подстрок может быть исклю-
чена).
') В действительности они могут быть определены не на всем множестве
состояний, поскольку оператор может быть неприменим к некоторым состоя-
ниям. __
Используя, например, два последних правила, строку
АВСВАВС можно преобразовать в строку АВС следующим
образом: - 4 4
АВСВАВС —* АВ АВСВАВС —> АВ АВС —> АВС
Правило переписывания часто может применяться к некоторой
строке несколькими различными способами. Так, в приведен-
X, хг Хд 1 х. х3 X,
Х4 Х5 х4 Х?
Хе х7 Хв Хв х7 Х?
X, Хг Х3 2 X, хг ха
Х4 Х5 х4 х7 Хе
Хе Х7 Х8 Хе
х, х3 8 х< Х3
х4 Хг Х5 Х4 Хг Хе
х6 х7 Х6 х7 Х8
X, Хг Х3 3 X, хг Х3
Х4 Х5 Х4 Х9
Хе х7 х8 Х6 Х7 х8
X, Хг х3 4 X, х3
Х4 Хе < — > Х4 Х2 Хр
Хе х7 Хе х6 х7 Х^
х, Хг х3 5 Хг Х3
х4 Хе *—* х, х4 Х5
Хе х7 х8 Хе х7 Хе
х, Хг х3 6 X, Х2 Х3
х4 Хе Хе Х^ Хе
Хе х7 ха х7 Х8
Р и с. 2.1. Правила переписывания для игры в восемь.
ном примере правило 4 к строке АВСВАВС вообще не может
быть применено, тогда как правило 3 может применяться к ней
несколькими способами. Конечно, определенному оператору от-
вечает некоторое конкретное применение данного правила пере-
писывания. Поскольку одно правило переписывания может пред-
ставлять много различных операторов, то правила переписыва-
ния находят широкое применение при решении задач.
Представление операторов с помощью правил переписыва-
ния не должно быть обязательно ограничено ситуациями, в ко-
торых состояния описываются строками. Аналогичные идеи
могут быть использованы, например, для игры в пятнадцать,
в которой естественным описанием состояний служит массив
4X4. Проиллюстрируем это обобщенное понятие правил пере-
писывания на примере игры в восемь — упрощенном варианте
игры в пятнадцать. В этой игре восемь пронумерованных фи-
шек расположены на площадке размером 3X3.
Один из способов представления допустимых ходов в этой
игре состоит в задании множества правил переписывания, опре-
деленных над массивами. Эти правила определяют пути, по
которым массивы 3X3 могут быть преобразованы в другие
массивы того же размера. На рис. 2.1 изображено множество
правил переписывания для игры в восемь. Каждое правило
представляет собой в действительности два правила (как это
показано двунаправленными стрелками), объединенных для эко-
номии места в одно; в каждом случае левая запись может быть
заменена правой и обратно. В каждом из правил переписывания
допустимый ход определяется путем подстановки чисел
1,2, ..., 8 на место переменных Х2, . .., Хя по каждую сто-
рону от стрелки (при условии Х{ =#= X,). Так,
2 1 6
4 8
7 СЛ ' 3
может быть преобразовано в
2 1 6
4 8
7 5 3
посредством применения правила 3.
2.3. ЦЕЛЕВЫЕ СОСТОЯНИЯ
Во все наши процедуры исследования пространства состоя-
ний входит построение новых описаний состояний, исходя из
старых с последующей проверкой новых описаний состояний,
с тем чтобы убедиться, не описывают ли они состояние, отве-
чающее поставленной цели. Часто это просто проверка того,
соответствует ли некоторое описание состояния данному целе-
вому описанию состояния, но иногда должна быть произведена
более сложная проверка. Например, для игры в пятнадцать
целью может быть создание конфигурации из фишек, в которой
в верхних двух рядах не будет фишек с номерами, превосхо-
дящими 12. Во всяком случае, то свойство, которому должно
удовлетворять описание состояния, для того чтобы это состоя-
ние было целевым, должно быть охарактеризовано исчерпываю-
щим образом.
В некоторых задачах оптимизации недостаточно найти лю-
бой путь, ведущий к цели, а необходимо найти путь, оптими-
зирующий некоторый критерий (например, минимизирующий
число применений операторов). С такими задачами проще всего
работать, сделав так, чтобы поиск не оканчивался до тех пор,
пока не будет найдено некоторое оптимальное решение. Методы
поиска в пространстве состояний, рассматриваемые в следую-
щей главе, позволяют получить оптимальное решение.
Таким образом, мы видим, что для полного представления
задачи в пространстве состояний необходимо задать: а) форму
описания состояний и, в частности, описание начального состоя-
ния, б) множество операторов и их воздействий на описания
состояний, в) свойства описания целевого состояния.
Мы уже отмечали, что пространство состояний полезно пред-
ставлять себе в виде направленного, графа. Такое представле-
ние особенно полезно для исследования различных методов по-
иска в пространстве состояний. В следующем разделе мы при-
ведем некоторые необходимые сведения из теории графов.
2.4. ЗАПИСЬ В ВИДЕ ГРАФА
В гл. 1 мы использовали граф с целью иллюстрации
пространства состояний для игры в пятнадцать. До сих пор
наше рассмотрение графов носило интуитивный характер, а
в настоящем разделе будут введены некоторые полезные фор-
мальные понятия, относящиеся к графам.
„ Граф состоит из множества (не обязательно конечного)
вершин. Некоторые пары вершин соединены с помощью дуг,
и эти дуги направлены от одного члена этой пары к другому.
Такие графы носят название направленных графов. Если неко-
торая дуга направлена от вершины П; к вершине п^, то говорят,
что вершина гу является дочерней вершиной для вершины п»,
а вершина /г,- является родительской вершиной для Может
оказаться, что некие две вершины будут дочерними друг для
друга; в этом случае пара направленных дуг называется ино-
гда ребром графа. В случае когда граф используется для пред-
ставления пространства состояний, с его вершинами связывают
описания состояний, а с его дугами — операторы.
Последовательность вершин пц, пц, ..., п^, в которой каж-
дая вершина дочерняя для п^ ;_1( / = 2, ..., к, называется
путем длины к от вершины пц к вершине Пгк. Если существует
путь, ведущий от вершины п^ к вершине П), то вершину П] на-
зывают достижимой из вершины П{ или потомком вершины щ.
В этом случае вершина и,- называется также предком для вер-
шины П]. Видно, что проблема нахождения последовательности
Операторов, преобразующих одно состояние в другое, эквива-
лентна задаче поиска пути на графе.
Часто бывает удобным приписывать дугам графа стоимости,
отражающие стоимость применения соответствующего опера-
тора. Мы будем использовать запись с(п{, п^) для обозначения
стоимости дуги, направленной из вершины и, в п,. Стоимость
пути между двумя верщинами определяется тогда как сумма
стоимостей всех дуг, соединяющих вершины этого пути. В за-
дачах оптимизации возникнет необходимость найти путь между
двумя вершинами, имеющий минимальную стоимость.
В задачах простейшего типа нам необходимо найти путь
(возможно, имеющий минимальную стоимость) между задан-
ной вершиной 5 (представляющей начальное состояние) и дру-
гой заданной вершиной I (представляющей целевое состояние).
Два очевидных усложнения этой простейшей задачи следующие:
Найти путь между вершиной 5 и любым элементом мно-
жества вершин {Л}.
Найти путь между любым элементом множества {$3 и лю-
бым элементом множества {/,}.
Множество {/,}, называемое целевым множеством, не должно
быть обязательно задано явным образом. Оно может опреде-
ляться неявно через свойства, которыми обладают описания
соответствующих состояний, отвечающих цели.
Граф может быть задан как явным образом, так и неявным.
При явном задании его вершины и дуги (с соответствующими
стоимостями) должны быть перечислены явным образом, ска-
жем, в виде некоторой таблицы. Эта таблица может содержать
перечень всех вершин графа, их дочерних вершин и стоимостей
всех связанных с ними дуг. Очевидно, что явное задание оказы-
вается практически неприемлемым для больших графов, а для
графов, имеющих бесконечное число вершин, оно невозможно.
При неявном способе задания определяется некоторое ко-
нечное множество {«,} вершин, являющихся начальными верши-
нами. Кроме того, определяется оператор Г, который, будучи
примененным к любой вершине, дает все ее дочерние вершины
и стоимости соответствующих дуг. (В нашей терминологии про-
странства состояний этот оператор «наследования» определяется
как множество операторов, применимых к данному описанию
состояния.) .Последовательное применение оператора Г к эле-
ментам множества {5,}, к их дочерним элементам и так до бес-
конечности дает, таким образом, представление для графа,
определенного неявно через Г и {51}.
При этом процесс поиска в пространстве состояний той по-
следовательности операторов, которая решает задачу, соответ-
ствует преобразованию в явную форму достаточно большой
части неявно заданного графа, такой, чтобы в нее входила вер-
шина, отвечающая цели. Таким образом, центральным пунктом
решения задачи с использованием пространства состояний яв-
ляется поиск на графе указанного типа. Рассмотрение приемов
поиска на графе мы отложим до следующей главы.
2.5. ПРЕДСТАВЛЕНИЕ ПРОСТРАНСТВ СОСТОЯНИЙ ПОСРЕДСТВОМ
НЕДЕТЕРМИНИРОВАННЫХ ПРОГРАММ1)
Процесс порождения пространства состояний может быть
представлен блок-схемой, изображенной на рис. 2.2. Здесь сим-
волы х и у используются для обозначения произвольных сово-
купностей данных. Заметим, что оператор присваивания «поло-
жить у равным некоторому члену множества Г (у) элементов,
Рис. 2.2. Представление пространства состояний
с помощью недетерминированной программы.
Исходное положение: программная переменная у
(пробегающая описания состояний) полагается
равной входной структуре данных х, описы-
вающей начальное состояние.
Присваивание: новое значение программной пере-
менной у полагается равным одному из эле-
ментов множества Г (у) дочерних значений для
прежней величины у.
непосредственно следующих за у», является недетерминирован-
ным в том смысле, что при его выполнении может быть выбран
любой член множества Г(у). Множество (возможно, бесконеч-
ное) всех* возможных способов выполнения программы, пред-
ставленной этой блок-схемой, охватывает тогда полное про-
') Этот раздел может быть опущен при первом чтении.
2 Зак. 493
странство состояний. (При такой формулировке состояния
описываются возможными величинами программной переменной
у, которая может быть произвольно сложной совокупностью
данных.)
Программы, в которых используются операторы присваива-
ния (и другие), допускающие во время выполнения недетерми-
нированные выборы, получили название недетерминированных1).
Часто бывает удобно представлять пространство состояний не-
которой задачи неявно, с помощью некоторой недетерминиро-
ванной блок-схемы. Такая блок-схема может быть столь же
простой, как канонический пример рис. 2.2, но может иметь и
более сложный вид с несколькими недетерминированными и
детерминированными элементами.
(Строго говоря, на нашей блок-схеме на рис. 2.2 нужно было
бы дать условия для окончания и привести другие подробности,
такие, как тест для проверки непустоты множества Г(у). Про-
верка на окончание может появиться в любой из точек, поме-
ченных крестиком на нашей блок-схеме. В следующей главе мы
дадим точное определение алгоритмов образования простран-
ства состояний и перебора его элементов.)
В общем недетерминированные программы связаны с рас-
ширением определений оператора обычного присваивания и
оператора ветвления детерминированных программ. Мы уже
видели, как можно пользоваться, недетерминированными опера-
торами присваивания. Этот тип операторов присваивания, назы-
ваемый операторами типа ВЫБОР, на блок-схемах обозначается
так:
I
у — ВЫБОР {Г(х,у}}
Здесь совокупность данных х есть входная величина этой
программы. Функция Р является полной функцией, отображаю-
щей совместную область изменения х и у в некоторое непустое
подмножество области изменения у. Для представления этого
подмножества мы пользуемся обозначением {/}, а ВЫБОР {Г}
означает выбор одного члена (любого члена) этого подмноже-
ства. Этот член затем присваивается как новое значение вели-
чине у. (Мы допускаем, что присваивание может зависеть как
от значения входной переменной х, так и от имеющегося в дан-
ное время значения программной переменной у.)
') Слово «недетерминированный» в том смысле, в котором оно использо-
вано здесь, вовсе не равносильно слову «стохастический»; недетерминирован-
ность не означает наличие каких-либо случайных механизмов.
Рис. 2.3. Представление
виде недетерминированной
в
игры в пятнадцать
программы.
Кроме того, мы расширяем понятие оператора ветвления.
В операторе V-ветвления на п направлений используется п
предикатов рДх, у), ..., рп(х,‘у), принимающих либо значение
Т (истина), либо Е (ложь) в совместной области изменения х
и у, причем по крайней мере один из предикатов должен иметь
значение Т. Каждый предикат соответствует некоторой ветви.
Выбирается одна ветвь (любая), для которой соответствующий
ей предикат имеет значение Т. Этот тип недетерминированного
ветвления называется V-ветвлением и на блок-схемах обозна>
чается следующим образом:
Отметим, что обычные детерминированные присваивания и
ветвления — это простые частные случаи недетерминированных
операторов.
При конкретном выполнении недетерминированной про-
граммы в операторах V-ветвление и ВЫБОР делаются конкрет-
ные выборы. Тогда множество всех возможных способов вы-
полнения определяет пространство состояний. Если для любого
входного массива существует по крайней мере одно конкретное
выполнение программы, имеющее окончание, то говорят, что эта
программа правильно определена.
В качестве того как некоторой задаче можно придать форму
недетерминированной программы, на рис. 2.3 дается одна воз-
можная программа для игры в пятнадцать. Здесь состояние
описывается значением программной переменной у, принадле-
жащем пространству массивов 4X4. Элементами этих массивов
являются числа от 1 до 15 и символ (представляющий пус-
тую клетку). Функции ВЛЕВО, ВВЕРХ, ВПРАВО, ВНИЗ соот-
ветствуют операторам. Они изменяют массивы посредством пере-
мещения символа соответственно вле'во, вверх, вправо, вниз.
Оказывается, что можно определить также и другие эле-
менты недетерминированных программ. Эти элементы полезны
при обсуждении формулировок, основанных на сведении задачи
к подзадачам. Они будут рассмотрены в гл. 4.
2.6. НЕКОТОРЫЕ ПРИМЕРЫ ПРЕДСТАВЛЕНИЙ ЗАДАЧ
Для большого числа задач можно дать представления, свя-
занные с пространством состояний. Для некоторых задач такое
представление удается выбрать совершенно естественно, тогда
как для других любое представление, связанное с введением
пространства состояний, кажется весьма искусственным. Чита-
телю не следует предполагать, что каждая из формулировок,
приведенных в настоящем разделе, — наилучшая из всех воз-
можных. Точно так же он не должен удивляться, увидев, что
может решить аддачу, опираясь на иное представление. Сейчас
мы хотим лишь показать, что для некоторых различных типов
задач действительно возможно представление в пространстве
состояний.
Задача о коммивояжере
Задача о коммивояжере — классическая комбинаторная про-
блема. Коммивояжер должен построить свой маршрут так, чтобы
побывать в каждом из п городов в точности по разу и возвра-
титься в исходный город. Желательно, чтобы этот маршрут
имел минимально возможную протяженность. Было разработано
несколько эффективных методов решения задачи, которые реа-
лизуемы лишь в том случае, когда число городов не превышает
примерно 50. Приближенные методы дают хорошие решения
(хотя не обязательно минимизирующие протяженность марш-
рута) уже для 200 городов. Задача о коммивояжере полезна
для иллюстрации представлений, основанных на введении про-
странства состояний, как это видно из следующего простого
частного примера.
Рис. 2.4. Карта для задачи о коммивояжере.
Коммивояже'р должен посетить каждый из пяти городов,
изображенных на карте на рис. 2.4. Между каждой парой горо-
дов имеется путь, длина которого указана на этой карте.
Нужно, отправляясь из города Л, найти самый короткий путь,
по которому коммивояжер по одному разу проходит через каж-
дый из городов и затем возвращается в город Д.
Чтобы дать представление в пространстве состояний, мы
должны определить следующее;
Описания состояний. Будем задавать состояния списком го-
родов, пройденных к настоящему моменту. Так, начальным
состоянием будет список (Д). Мы не будем допускать, чтобы
в этом списке какой-то город упоминался более одного раза,
с тем лишь исключением, что после того, как в нем будут упо-
мянуты все остальные .города, может быть снова упомянут Д.
Операторы. Операторы суть вычисления, соответствующие
поступкам: (1) направиться теперь в город Д, (2) направиться
теперь в город В, ..., (5) направиться теперь в город Е. Опе-
ратор неприменим к некоторому описанию состояния, если он
не преобразует его в некоторое допустимое описание. Так, опе-
ратор номер (1) (соответствующий «направиться теперь в го-
род Д») неприменим ни к какому описанию, не содержащему
названия всех городов.
Критерий достижения цели. Любое описание, начинающееся
и оканчивающееся городом А и перечисляющее все другие го-
рода, есть описание состояния, удовлетворяющего поставленной
цели.
На рис. 2.5 показано представление этого пространства со-
стояний в виде графа. (Явно указаны лишь некоторые из его
Рис.
2.5. Часть графа для
задачи о Коммивояжере.
вершин.) Числа, написанные около дуг графа, указывают стои-
мости этих дуг’. Мы полагаем эти стоимости равными расстоя-
ниям между соответствующими городами (см. рис. 2.4). В вер-
шинах графа стоят описания тех состояний, которые они
представляют. Достоинства представления в виде графа состоят
в том, что приписывание дугам стоимостей дает нам удобный
способ вычисления полной длины маршрута, а следовательно,
и способ поиска кратчайшего из них. Кратчайший (34 мили)
для нашего случая показан на графе жирными стрелками.
Задача о коммивояжере представляет собой пример задачи,
в которой информация, содержащаяся в ее формулировке, пред-
ставима в графической форме (карте расстояний). Следует
быть внимательным и не смешивать какие-либо графы, исполь-
зуемые при формулировке задачи, с графом пространства со-
стояний, который строится при решении задачи.
Задачи синтаксического анализа
При работе с языками часто сталкиваются с задачей син-
таксического анализа. В таких задачах сначала дается некото-
рое формальное определение через задание грамматики, которая
выделяет определенный класс строк символов. А затем возни-
кает вопрос о том, принадлежит ли к этому классу произвольная
строка. Следующий пример иллюстрирует этот тип задач.
Грамматика. Предположим, что мы определяем предложение
как строку однбго из следующих видов:
за символом а следует символ Ь
за символом а следует некоторое предложение
за некоторым предложением следует символ Ь
за некоторым предложением следует другое предложение.
Примеры предложений: ааЬ, аЬааЬаЬ, аааааЬ. Некоторые
строки, не являющиеся предложениями: ааа, аЬа, аЬаа.
Предположим, что мы захотели определить, является ли
строка аЬааЬаЬ предложением. Тогда формулировка этой задачи
в пространстве состояний выглядит Так:
Описания состояний. Один из возможных путей формули-
ровки этой задачи состоит в том, чтобы выбрать в качестве на-
чального состояния рассматриваемую строку аЬааЬаЬ. Тогда
множеством допустимых состояний будет множество строк, по-
лучающихся из нее путем применения тех правил переписыва-
ния (они даются ниже), которыми определяются операторы.
Операторы. Мы определяем операторы через следующие
правила переписывания:
$]$$2 (подстрока аЬ может быть заменена сим-
волом 5, обозначающим предложение)
$1а$$2 ~* $1$$2
$1‘$^$2 $15$2
ф ССФ . Ф Сф
Ф1°°Ф2 Ф1°Ф2
Мы видим, что эти правила просто выражают грамматику,
определяющую понятие предложения.
Критерий цели. Целевое состояние описывается строкой, ко-
торая состоит из одиночного символа 5.
Последовательность состояний, представляющая собой реше-
ние этой задачи, имеет следующий вид:
аЬааЬаЬ
8ааЬаЬ
8а8аЬ
88аЬ
888
88
8
Граф, изображающий пространство состояний для этой
задачи, показан на рис. 2.6. В этой задаче оказалось так, что
с
" Целевая вершина
Рис. 2.6. Граф для задачи синтаксического анализа.
в силу заданной грамматики любая строка, начинающаяся с а
и оканчивающаяся на Ь, является предложением. Знание такого
факта, очевидно, сильно бы упростило решение вопроса о том,
будет ли некоторая произвольная строка предложением. Иногда
оказывается, что заданная грамматика может быть представ-
лена в эквивалентном, но более простом виде. Обнаружение
таких упрощений позволяет строить меньшие пространства для
перебора.
Задачи распределения
Следующая простая задача типична для класса задач, на-
зываемых иногда задачами распределения. Имеются два источ-
ника жидкости: А дает 100 галлонов в минуту, а В — 50. Источ-
ники должны снабжать два бассейна С и О, потребность
каждого из которых 75 галлонов в минуту. Жидкость может
источник, 100
Рис. 2.7. Расположение источников жидкости и бассейнов (расстояния
измеряются в милях).
подаваться от источника к бассейну с помощью труб с макси-
мальной пропускной способностью 75 галлонов в минуту. Пусть
источники и бассейны расположены так, как это показано на
рис. 2.7, и соединения труб допускаются только в местах рас-
положения источников и бассейнов. Спрашивается, как следует
подсоединять трубы, чтобы при этом полная длина труб была
наименьшей.,
Представление этой задачи в пространстве состояний выгля-
дит следующим образом:
Описания состояний. Состояния описываются списком вели-
чин избыточного расхода жидкости, который имеется в точках
А, В, С и О. Так, начальное состояние описывается списком
(Л = 100, В = 50, С = 0, В = 0).
Операторы.. Операторы соответствуют передаче избытка
«жидкости в минуту» из одной точки в другую. В задачах, по-
добных этой, в качестве подходящего избытка выступает наи-
больший общий делитель пропускных способностей и потребно-
стей в жидкости в различных точках. Таким образом, у нас
есть операторы:
1. Передать 25 галлон/мин из Л в В.
2. Передать 25 галлон/мин из Л в С.
12. Передать 25 галлон/мин из В в А.
Разумеется, операторы применимы лишь тогда, когда имеется
достаточный избыток жидкости в той точке, от которой жид-
кость отбирается для передачи в другую точку. И, конечно, для
осуществления каждой такой передачи нужно иметь соответ-
ствующую трубу.
Критерий цели. Целевое состояние описывается списком
(Л = О, В = О, С = .75, В = 75).
Начальная вершина
(А = О,В = О,С = 75,0 = 75)
Целевая вершина
Рис. 2.8. Часть графа для задачи распределения.
Часть графа, получающегося таким образом пространства
состояния, показана на рис. 2.8. Обозначение типа А —около
Дуг графа показывает, что соответствующий оператор передает
избыток в 25 галлон/мин от А к Ц. Стоимости, написанные ря-
дом с каждой дугой, показывают, сколько миль труб нужно до-
бавить для подачи этого избытка. Число нуль при этом озна-
чает, что нет необходимости добавлять еще трубу, поскольку
уже имеющаяся труба обладает достаточной дополнительной
пропускной способностью. Граф на рис. 2.8 изображен не пол-
ностью— многие из его вершин не показаны. Исследовав пол-
ный граф, можно установить, что путь, ведущий от начальной
вершины к целевой и обладающий наименьшей стоимостью, тре-
бует 12 миль труб.
Задачи управления
В типичной задаче управления имеется процесс, представ-
ленный системой «устанавливаемых» переменных, которые
должны управляться с помощью соответствующего управления,
обеспечиваемого некоторым множеством управляющих перемен-
ных.
Интересным примером служит задача о перевернутом маят-
нике на тележке (рис. 2.9). В этой задаче масса М прикреп-
лена к концу стержня длины /.дру-
гой конец которого шарнирно за-
креплен на тележке, так что стер-
жень может свободно вращаться в
вертикальной плоскости, совпадаю-
щей с направлением движения те-
лежки, снабженной колесами. Уста-
навливаемые переменные — угол на-
клона стержня 9, координата х те-
лежки и производная по времени 9.
Требуется, чтобы значения каждой
из этих переменных поддержива-
лись в определенных, заранее ука-
занных границах. Управляющей пе-
ременной служит скорость тележки
X, которая может принимать одно Рис. 2.9. Перевернутый м:ят-
из двух значений 4-о и —V. (Мы
иик на тележке.
предполагаем для простоты, что
эти значения могут сменять друг друга мгновенно.) Главная за-
дача здесь состоит в принятии в данный момент решения о том,
следует ли перемещать тележку со скоростью а вправо или со
скоростью а влево.
Описание состояний. Предположив, что переменные 9, 6 и х
принимают дискретные значения с достаточно мелким шагом,
можно считать состоянием вектор, составленный из этих трех
переменных (пространством состояний при этом служит решетка
в трехмерном пространстве 9, 9 их).
Операторы. Имеются ровно два оператора:
1. Применить управление + о.
2. Применить управление —V.
Состояние, возникающее в результате применения одного из
этих операторов, — это просто то состояние, которое описы-
вается вектором (9, 9, х) по истечении А/ секунд. (Во многих
типичных задачах управления действия операторов могут быть
компактно представлены с помощью дифференциальных урав-
нений.)
Критерий достижения цели. Предположим, что целевое
состояние описывается вектором (9 = 0, 9 = 0, х=»0). Тогда
нам нужно найти последовательность операторов, которая будет
преобразовывать любое данное состояние в целое. Конечно,
такая последовательность не должна приводить ни к какому
состоянию, описываемому переменными 9, 9 и х, для которого
неизбежно в конце концов полное нарушение работы системы.
(Оно происходит при 9 = ±90°.)
В некоторых типичных задачах управления часто можно
получить (аналитическими методами) уравнения разделяющих
поверхностей, которые разбивают векторное пространство со-
стояний на непересекающиеся области, такие, что для всех век-
торов из данной области в данный момент должно быть при-
менено одно и то же управление (один и тот же оператор).
В этих случаях несложное вычисление может дать ответ, который
иначе получался бы с помощью поиска. Читатель должен по-
нимать, что мы но собираемся предлагать использовать по-
исковые процессы в случаях, когда известны прямые методы
решения. Мы хотим лишь подчеркнуть, что часто можно вос-
пользоваться эффективными методами перебора для решения
тех задач, для которых прямые методы еще не найдены.
2.7. ВЫБОР «ХОРОШИХ» ПРЕДСТАВЛЕНИЙ
Выбор для данной задачи определенного представления
в пространстве состояний существенно определяет те поиско-
вые усилия, которые придется приложить для ее решения.
Очевидно, что предпочтительны представления с малыми про-
странствами состояний (т. е. такие, графы которых имеют не-
большое число вершин). Существует множество примеров за-
дач, кажущихся трудными, но таких, что при правильной их
трактовке соответствующие пространства состояний оказы-
ваются очень узкими. Подчас данное пространство состояний
«сжимается в точку» после того, как обнаруживается, что не-
которые операторы могут быть отброшены за ненадобностью,
а другие — объединены в более мощные операторы. И даже если
такие простые преобразования неосуществимы, может ока-
заться, что полная переформулировка задачи, изменяющая само
понятие состояния, приведет к меньшему пространству.
Еще слишком слабо поняты те процессы, которые необхо-
димы для первоначального представления задач и для усо-
вершенствования этих представлений. По-видимому, желаемый
прогресс в представлении задачи зависит от опыта, накоплен-
ного в попытках решить задачу в рамках данного представле-
ния. Этот опыт позволяет выделить упрощающие понятия, та-
кие, как свойства симметрии или полезные последовательности
операторов, которые следует объединить в макрооператоры.
Чрезвычайно важная идея в области представлений задач
связана с использованием переменных в описаниях состояний.
Тогда выражения, содержащие переменные, могут быть исполь-
зованы для описания целого множества состояний, а не только
одного. Подстановка каких-то частных значений (констант)
вместо этих переменных в указанные выражения дает конкрет-
ные описания состояний. Выражение, содержащее переменные,
которое используется для описания множества состояний в ука-
занном смысле, называется схемой для описания состояний.
Мы проиллюстрируем на примере использование схем для опи-
сания состояний.
К задаче об обезьяне и бананах часто обращаются в лите-
ратуре по искусственному интеллекту при демонстрации работы
автоматических решателей задач, создаваемых для осуществле-
ния умозаключений, опирающихся на здравый смысл. Задачу
можно сформулировать так. В комнате, где находится обезь-
яна, имеются ящик и связка бананов, причем бананы подве-
шены к потолку настолько высоко, что обезьяна не может до
них дотянуться с пола. Какая последовательность действий по-
зволит обезьяне достать эти бананы? (Предполагается, что
обезьяна должна подойти к ящику, подтащить его к бананам,
забраться на него и достать бананы.)
Как следует строить для этой задачи представления в про-
странстве состояний? В описании состояния должны непременно
появиться следующие элементы: координаты обезьяны в ком-
нате (по горизонтали и по вертикали), координаты ящика в ком-
нате и наличие у обезьяны бананов. Эти элементы удобно пред-
ставить в виде четырехэлементного списка (XV, х, у, г), где
XV — координаты обезьяны в горизонтальной плоскости
(двумерный вектор),
х — это 1 или 0 в зависимости от того, где обезьяна нахо-
дится, на ящике или нет,
у — координаты ящика в горизонтальной плоскости (дву-
мерный вектор),
г — это 1 или 0 в зависимости от того, достала обезьяна
бананы или нет.
Если бы каждое отдельное значение списка (XV, х, у, г)
описывало ровно одно состояние, то мы имели бы бесконечное
число состояний, поскольку число различных расположений
предметов в комнате бесконечно. Мы могли бы сделать про-
странство состояний конечным, допустив, что предметы могут
находиться лишь в конечном числе точек (скажем, точек ре-
шетки), но все же число точек, достаточное для поставленной
задачи, привело бы к чрезвычайно большому пространству со-
стояний. Другой путь состоит в использовании схем. Для входя-
щих в схему переменных имеются частные значения (например,
константы), которые должны подставляться на их место при
применении оператора или при проверке того, что цель достиг-
нута.
Операторы в этой задаче соответствуют четырем возмож-
ным действиям, которые могут выполняться обезьяной:
1) подойти (и) . —обезьяна идет к точке и в плоскости
пола комнаты (и — переменная),
2) передвинуть (у) —обезьяна передвигает ящик в точку у
пола комнаты (у — переменная),
3) взобраться —обезьяна забирается на ящик,
4) схватить —обезьяна хватает бананы.
В связи с наличием переменных в «подойти», «передвинуть»
эти операторы на самом деле являются схемами. Условия при-
менимости и действия этих операторов даются следующими
правилами переписывания:
подойти (и)
(лу, 0, у, г)--------> (и, 0, у, г),
, п \ передвинуть(у)
(\у, 0, \у, 2)---------->(у, 0, у, г),
взобраться , ,
(\у, О, V, г)------—->(уу, 1, V/, г),
. схватить
(с, 1, с, 0)------>(с, 1, с, 1),
где с — координаты точки пола, расположенной непосред-
ственно под бананами (двумерный вектор).
Применение некоторых операторов, например «передвинуть»,
связано с ограничением значений переменных, представляющих
координаты обезьяны и ящика, от которых теперь требуется,
чтобы они были одинаковыми. Мы будем считать идентичными
две схемы для описания состояний, если они отличаются лишь
наименованием переменных.
В такой формулировке элементы множества целевых со-
стояний описываются любыми списками, последний элемент
которых есть единица.
Предположим, что вначале обезьяна находится в точке а
пола, а ящик — в Ь. Тогда описанием начального состояния
будет (а, 0, Ь, 0). Единственный оператор, который применим в
этом состоянии,—это «подойти», приводящий к схеме (и, 0, Ь, 0).
Теперь применимы три оператора. Если и — Ь, то обезьяна мо-
жет либо забраться на ящик, либо передвинуть его. Независимо
от величины и обезьяна могла бы переместиться куда-нибудь
еще. Влезание на ящик приводит к состоянию с описанием (Ь, 1,
Ь,0); перемещение ящика в V приводит к схеме (V,0,V,0), а
переход в другое место, описываемое новой переменной, не из-
меняет описания.
Продолжая процесс применения всех операторов, мы по-
строим пространство состояний, иллюстрируемое графом на
рис. 2.10. Мы видим, что этот граф весьма невелик и на нем
легко можно найти путь, решающий нашу задачу (жирные
Рис 2.10. Граф для задачи об обезьяне и бананах.
стрелки). Подставив вместо переменных их соответствующие
частные значения, как это показано на рис. 2.10, мы получаем
последовательность операторов: подойти (Ь), передвинуть (с),
взобраться, схватить.
На этом мы закончим рассмотрение вопроса о представле-
ниях задач в пространстве состояний. Приведенные в этой главе
примеры касались нескольких сторон проблемы представлений,
хотя пока еще нет удовлетворительной теории представлений и
изменения представлений. В следующей главе мы перейдем
к гораздо.более глубоко разработанной области приемов поиска
в пространстве состояний.
2.8. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
Составные элементы представления в пространстве состояний
Три элемента, из которых слагается представление в про-
странстве состояний — описания состояний, операторы и крите-
рии цели — давно считаются основными в области автоматиче-
ского решения задач. Эти понятия обсуждаются в книге Эрнста
и Ньюэлла (1969), в которой рассматривается программа уни-
версального решателя задач. Более абстрактное исследование
проблемы описания состояний и операторов можно найтиуАма-
реля (1967, 1969). Пример использования правил переписыва-
ния для задания операторов имеется в системе для решения
задач, описанной Квинланом и Хантом (1968).
Основные элементы языка теории графов (дуги, вершины,
пути и т. п.) часто используются при описании процессов реше-
ния задач. Классическими книгами по теории графов являются
книги Бержа (1958) и Оре (1962). Оре (1963) написал также
популярную элементарную книжку, содержащую применения
теории графов к различным комбинаторным задачам.
Недетерминированные программы
Название недетерминированный алгоритм было предложено
Флойдом (1967а). Флойд допускал использование в таких алго-
ритмах функции «выбора» для упрощения описания стратегий
полного перебора. Позднее Манна (1970) описал класс про-
грамм, допускающих как недетерминированные утверждения
присваивания (подобные функции выбора), так и недетермини-
рованные операции ветвления. Он привел методику доказатель-
ства корректности (правильности) программ, содержащих эти
новые элементы. В более ранней статье Манна (1969) рассмот-
рел проблему доказательства корректности обычных (детерми-
нированных) программ. Файке (1970) описал полную систему
решения задач, в которой задачи ставятся на некотором проце-
дурном языке, допускающем использование недетерминирован-
ных функций выбора.
Основная литература по примерам задач
Примеры задач, которые мы использовали для иллюстрации
методов работы с пространством состояний, связаны с различ-
ными областями, в каждой из которых свои традиционные специ-
ализированные методы решения. Многие из этих методов можно
рассматривать как применение подхода, основанного на про-
странстве состояний. Читателю было бы весьма полезно попы-
таться в качестве упражнения перевести описания этих специа-
лизированных методов на обычный язык представления в про-
странстве состояний.
Задача о коммивояжере занимает важное место в теории
исследования операций. Обзор результатов по ней можно найти
у Беллмора и Немхозера (1968).
Задачи синтаксического анализа обычны при исследовании
языков. Фельдман и Грис (1968) дают всесторонний обзор
методов синтаксического анализа, используемых трансляцион-
ными системами для формальных вычислительных языков. Ама-
рель (1965) обсуждает синтаксический анализ с позиции авто-
матического решения задач и предлагает процедуру, основан-
ную на сведении задачи к подзадачам. Доступное изложение
вопроса об использовании строк и символов и их продукцион-
ных систем как вычислительных моделей имеется в заключи-
тельных главах книги Минского (1967) по вычислениям.
Множество задач, таких, как распределение, потоки и оче-
реди, может быть решено методом, связанным с пространством
состояний. Они рассмотрены в книге Форда и Фалкерсона
(1962).
Теория управления — это большая специальная область
с разнообразными приемами решения возникающих здесь за-
дач. Книга Де Руссо, Роя и Клоуза (1965) может служить хо-
рошим введением в современную теорию управления.
Проблема поиска хорошего представления
Вопросы поиска хорошего представления рассматривали
лишь немногие исследователи и, в частности, Амарель. Амаре-
лем (1968) написана классическая работа на эту тему. В ней
он последовательно показывает читателю ряд постепенно улуч-
шающихся представлений для задачи о миссионерах и людо-
едах. Интересная головоломка, подчеркивающая важность вы-
бора хорошего представления, была отмечена Маккарти (1964).
Задача об обезьяне и бананах — стандартный пример задачи
о построении рассуждений на основе здравого смысла. Она де-
тально рассмотрена Амарелем (1966).
Отмечалось, что использование схем для описания состояний
служит мощным приемом представления задачи. В последнем
варианте универсального решателя задач допускается исполь-
зование схем объектов с переменными, как это делается в си-
стеме Файкса (1970) решения задач. В статье Ньюэлла (1965)
исследуются некоторые возможные подходы (и связанные с ними
ограничения) к задаче получения хорошего представления.
Задачи
(Для решения задач, отмеченных звездочкой, может потребоваться не-
сколько часов. Некоторые из этих задач могли бы служить темой курсовой
работы.)
2.1. Локомотив Д н вагоны стоят на пути, показанном ниже, в порядке
(слева направо), который может быть представлен строкой ЬАВСЛ; Пред-
положим, что локомотив можно произвольно отцеплять н сцеплять с отдель:
ными вагонами, стрелки могут занимать произвольное положение и локомотив
может тянуть и толкать тот вагон, к которому ои прицеплен. Укажите мно-
жество правил переписывания для строк, которое можно было бы использо-
вать с целью создания представлений для всех возможных расположений ваго-
нов и локомотива на прямом отрезке пути.
2.2. Дуга между вершиной п< и вершиной П), следующей за ией, назы-
вается невозвратной, если п< недостижима из П). Дайте два примера задач,
для которых графы в пространстве состояний содержат невозвратные дуги.
2.3. Покажите, найдя соответствующий путь на графе, представляющем
пространство состояний, что строка (((), ()), (), ((), ())) является предло-
жением 5 в грамматике, определяемой следующими правилами переписыва-
ния:
а) 5-()
Ь) Л—5
с) Л — Л, Л
б) 5-(Л).
В этих правилах переписывания считается, что символ, стоящий слева от
стрелки, может быть подставлен вместо подстроки символов, стоящей справа
от стрелки, в любом месте строки, в котором эта подстрока встретилась.
2.4. Найдите форму описания состояний, операторы и критерии достиже-
ния цели для следующей задачи о кувшинах.
Даны кувшин с водой емкостью 5 галлонов и пустой кувшин емкостью
2 галлона. Как получить ровно один галлон в кувшине емкостью в 2 галлона?
Воду можно либо выливать, либо переливать из одного кувшина в другой.
Начертите часть дерева перебора, соответствующего тем шагам, которые
вы предпринимаете в поиске решения.
2.5. Для следующей задачи о восьми ферзях укажите форму описания
состояний, операторы и критерий достижения цели.
Разместить 8 ферзей на обычной шахматной доске так, чтобы на. каждой
горизонтали, вертикали и диагонали стояло не более одного ферзя.
Начертите часть графа состояний и снабдите его вершины и дуги соответ-
ствующими описаниями.
2.6. Напишите программу для вычислительной машины, порождающую
множество строк, которые могут быть получены заменой подстроки 51 под-
строкой 52 во всех местах данной строки 5, где стоит подстрока 5].
*2.7. Прочтите работу Амареля (1968) по представлениям. Обратите вни-
мание на-то, что Амарель начинает с весьма примитивного представления, ра-
ботает немного с ним, а затем постепенно еп? улучшает. Проведите подробный
анализ следующей задачи, упоминаемой Маккарти (1964):
Удалите из доски, содержащей 2п X 2п клеток, по одной клетке из двух
ее противолежащих углов:
Покажите, что теперь невозможно полностью покрыть эту искаженную
доску фишками размером 1 X 2 так, чтобы они ие высовывались за край
доски и не накрывали друг друга.
На некотором этапе исследования задачи Вы, возможно, захотите порабо-
тать с доской 2X2, затем с доской 4 X 4 и т. д., чтобы найти понятия, удоб-
ные для представления общего случая. Напишите отчет о работе над этой
задачей и в заключение укажите те наблюдения, которые, быть может, у Вас
имеются относительно трудности этой задачи представления.
Глава 3
МЕТОДЫ ПОИСКА
В ПРОСТРАНСТВЕ СОСТОЯНИЙ
3.1. ПРОЦЕССЫ ПОИСКА НА ГРАФЕ
При формулировке задачи в пространстве состояний реше-
ние получается в результате применения операторов к описа-
ниям состояний до тех пор, пока не будет получено выражение,
описывающее состояние, которое соответствует достижению
цели. На примерах, рассмотренных в предыдущей главе, мы
видели, как для иллюстрации пространств состояний могут быть
использованы графы. Язык графов чрезвычайно полезен для
описания эффективных стратегий перебора (поиска) в простран-
стве состояний. Все методы перебора в пространстве состояний,
которые мы будем обсуждать, могут быть смоделированы с по-
мощью следующего теоретико-графового процесса:
Начальная вершина соответствует описанию начального со-
стояния.
Вершины, непосредственно следующие за данной, полу-
чаются в результате использования операторов, которые приме-
нимы к описанию состояния, ассоциированного с этой вершиной.
Пусть Г —некоторый специальный оператор, который строит
все вершины, непосредственно следующие за данной. Мы будем
называть процесс применения оператора Г к вершине раскры-
тием вершины.
От каждой такой последующей вершины к породившей ее
идут указатели. Эти указатели позволяют найти путь назад к
начальной вершине, уже после того как обнаружена целевая
вершина.
- Для вершин, следующих за данной, делается проверка, не
являются ли они целевыми вершинами. (То есть проверка того,
не определяют ли соответствующие описания такие состояния,
которые соответствуют цели.) Если целевая вершина еще не
найдена, то продолжается процесс раскрытия вершин (и уста-
новки указателей). Когда же целевая вершина найдена, эти
указатели просматриваются в обратном направлении — от цели
к началу, в результате чего выявляется путь решения. Тогда
операторы над описаниями состояний, связанные с дугами этого
пути, образуют решающую последовательность.
Этапы, указанные выше, описывают просто основные эле-
менты процесса перебора подобно описанию, даваемому блок-
схемой недетерминированной программы. При полном описании
процесса перебора нужно еще задать порядок, в котором сле-
дует раскрывать вершины. Если вершины раскрываются в том
же порядке, в котором они порождаются, то получается про-
цесс, который называется полным перебором (ЬгеасНЬ-Нгз! рго-
сезз). Если же сначала раскрывается всегда та вершина, кото-
рая была построена самой последней, то получается процесс
перебора в глубину (бер1Ь-Пгз1 ргосезз). Процессы полного пе-
ребора и перебора в глубину можно назвать также процеду-
рами слепого перебора, поскольку расположение цели не влияет
на порядок, в котором раскрываются вершины.
Возможно, однако, что у нас имеется некоторая эвристиче-
ская информация о глобальном характере графа и общем рас-
положении цели поиска. (Слово эвристический означает «слу-
жащий открытию».) Такого рода информация часто может
быть использована для того, чтобы «подтолкнуть» поиск в сто-
рону цели, раскрывая в первую очередь наиболее перспектив-
ные вершины. В этой главе мы опишем несколько эвристических
методов перебора в терминах теории графов. Но прежде мы
введем ряд основных идей, связанных с перебором, рассмотрев
более подробно методы слепого перебора.
Сущность этих методов станет понятнее, если мы ограничим-
ся рассмотрением деревьев, а не произвольны'х графов. Дере-
вом называется граф, каждая вершина которого имеет ровно
одну непосредственно предшествующую ей (родительскую) вер-
шину, за исключением выделенной вершины, называемой корнем
дерева, которая вовсе не имеет предшествующих ей вершин.
Таким образом, корень дерева служит начальной вершиной.
Для перебора деревья проще графов прежде всего потому,
что при построении новой вершины мы можем быть уверены,
что она никогда раньше не строилась и никогда не будет
построена вновь. Таким образом, путь от корня до данной вер-
шины единствен. После описания методов слепого поиска для
деревьев мы покажем, как их следует модифицировать в слу-
чае произвольных графов.
3.2. МЕТОДЫ ПОЛНОГО ПЕРЕБОРА
В методе полного перебора вершины раскрываются в том
порядке, в котором они строятся. Простой алгоритм полного-
перебора на дереве состоит из следующей последовательности
шагов:
(1) Поместить начальную вершину в список, называемый
ОТКРЫТ.
(2) Если список ОТКРЫТ пуст, то на выход подается сиг-
нал о неудаче поиска, в противном -случае переходить к сле-
дующему шагу.
(3) Взять первую вершину из списка ОТКРЫТ и перенести
ее в список ЗАКРЫТ; назовем эту вершину п.
(4) Раскрыть вершину п, образовав все вершины, непосред-
ственно следующие за п. Если непосредственно следующих вер-
шин нет, то переходить сразу же к шагу (2). Поместить имею-
щиеся непосредственно следующие за п вершины в конец спи-
ска ОТКРЫТ и построить указатели, ведущие от них назад к
вершине п.
Рис. 3.1. Блок-схема программы алгоритма полного перебора для
деревьев.
(5) Если какие-нибудь из этих непосредственно следующих
за п вершин являются целевыми вершинами, то на выход вы-
дать решение, получающееся просмотром вдоль указателей; в
противном случае переходить к шагу (2).
В этом алгоритме предполагается, что начальная вершина не
удовлетворяет поставленной цели, лотя нетрудно ввести этап
проверки такой возможности. Блок-схема алгоритма показана
на рис. 3.1. Вершины и указатели, построенные в процессе пере-
бора, образуют поддерево всего неявно определенного дерева
пространства состояний. Мы будем называть такое поддерево
деревом перебора.
Легко показать, что в методе полного перебора непременно
будет найден самый короткий путь к целевой вершине при усло-
вии, что такой путь вообще существует. (Если такого пути нет,
то в указанном методе будет объявлено о неуспехе в случае
конечных графов, а в случае бесконечных графов алгоритм ни-
когда не кончит свою работу.)
На рис. 3.2 приведено дерево перебора, полученное в резуль-
тате полного перебора, примененного к игре в восемь. (Граф
пространства состояний для игры в восемь в действительности
деревом не является, но этот факт несуществен, так как в рас-
сматриваемом процессе перебора одца и та же вершина ни-
когда не может возникнуть более, чем от одной родительской
вершины.) Задача состоит в том, чтобы преобразовать конфи-
гурацию, стоящую слева, в конфигурацию, стоящую справа:
2 8 3
6 4
7 5
1 2 3
8 4
1 6 5
В вершинах дерева помещены соответствующие описания со-
стояний. Эти вершины занумерованы в том порядке, в котором
они получались при раскрытии1); зачерненная ветвь представ-
ляет собой решение из пяти шагов. (Стрелки на дугах не ука-
заны, поскольку в данном случае совершенно ясно происхожде-
ние каждой вершины.) Заметьте, что было раскрыто 26 и по-
строено 46 вершин, прежде чем удалось найти это решение.
Непосредственное рассмотрение этого графа показывает также,
что не существует решения, содержащего меньшее число шагов.
Могут встретиться задачи, в которых к решению предъяв-
ляются какие-то иные требования, отличные от требования
получения наикратчайшей последовательности операторов. При-
сваивание дугам дерева определенных цен (с последующим
нахождением решающего пути, имеющего минимальную
’) Порядок последующих вершин соответствует перемещению пустой
клетки сначала влево, затем вверх, вправо и вниз.
ей
Рис. 3.2. Дерево, образованное
Целевая
вершина
в процессе полного перебора.
стоимость) соответствует многим из таких обобщенных крите-
риев, как это было видно из нескольких примеров предыдущей
главы. Более общий вариант метода полного перебора, назы-
ваемый методом равных цен, позволяет во всех случаях найти
некоторый путь от начальной вершины к целевой, стоимость ко-
торого минимальна. В то время как в только что описанном ал-
горитме распространяются линии равной длины пути от на-
чальной вершины, в более общем алгоритме, который будет опи-
сан ниже, распространяются линии равной стоимости пути.
Предполагается, что нам задана функция стоимости с(гц, п^,
дающая стоимость перехода от вершины гц к некоторой следую-
щей за ней вершине п;-.
В методе равных цен для каждой вершины п в дереве пере-
бора нам нужно помнить стоимость пути, построенного от на-
чальной вершины 5 к вершине п. Пусть —стоимость
пути от вершины 5 к вершине п в дереве перебора. В случае
деревьев перебора мы можем быть уверены, что §(п) является
к тому же стоимостью того пути, который имеет минимальную
стоимость (так как этот путь единственный).
В методе равных цен вершины раскрываются в порядке воз-
растания стоимости §(п). Этот метод характеризуется такой
последовательностью шагов: '
(1) Поместить начальную вершину 8 в список, называемый
ОТКРЫТ. Положить ё'(з) = 0.
(2) Если список ОТКРЫТ пуст, то на выход подается сиг-
нал о неудаче поиска; в противном случае переходить к сле-
дующему шагу.
(3) Взять из списка ОТКРЫТ ту вершину, для которой ве-
личина § имеет наименьшее значение, и поместить ее в список,
называемый ЗАКРЫТ. Дать этой вершине название п. (В слу-
чае совпадения значений выбирать вершину' с минимальным §
произвольно, но всегда отдавая предпочтение целевой вершине.)
(4) Если п есть целевая вершина, то на выход выдать ре-
шающий путь, получаемый путем просмотра назад в соответст-
вии с указателями; в противном случае переходить к следую-
щему шагу.
(5) Раскрыть вершину п, построив все непосредственно сле-
дующие за ней вершины. [Если таковых не оказалось, то пере-
ходить сразу к шагу (2).] Для каждой из такой непосредственно
следующей (дочерней) вершины п.} вычислить стоимость
положив @(пг) = ^(п) 4-с(п,П{). Поместить эти вершины вме-
сте с соответствующими им только что найденными значениями
& в список ОТКРЫТ и построить указатели, идущие назад к п.
(6) Перейти к шагу (2).
Блок-схема этого алгоритма показана на рис. 3.3. Заметьте,
что проверка того, является ли некоторая вершина целевой,
Рис. 3.3. Блок-схема программы алгоритма равных цен для деревьев.
включена в эту схему так, что' гарантируется обнаружение пу-
тей минимальной стоимости.
Мы видим, что алгоритм, работающий по методу равных цен,
может быть также использован для поиска путей минимальной
длины, если просто положить стоимость каждого ребра равной
единице. Если имеется несколько начальных вершин, то алго-
ритм просто модифицируется: на шаге (1) все начальные вер-
шины помещаются в список ОТКРЫТ. Если состояния, отве-
чающие поставленной цели, могут быть описаны явно, то про-
цесс перебора можно пустить в обратном направлении, приняв
целевыё вершины в качестве начальных и используя обращение
оператора Г.
3.3. МЕТОД ПЕРЕБОРА В ГЛУБИНУ
В методах перебора в глубину прежде всего раскрываются
те вершины, которые были построены последними. Определим
глубину вершины в дереве следующим образом:
Глубина корня дерева равна нулю.
Глубина любой последующей вершины равна единице плюс
глубина вершины, которая непосредственно ей предшествует.
Таким образом, вершиной, имеющей наибольшую глубину в
дереве перебора, в данный момент служит та, которая должна
в этот момент быть раскрыта. Такой подход может привести к
процессу, разворачивающемуся вдоль некоторого бесполезного
пути, поэтому нужно ввести некоторую процедуру возвращения.
После того как в ходе процесса строится вершина с глубиной,
превышающей некоторую граничную глубину, мы раскрываем
вершину наибольшей глубины, не превышающей этой границы,
и т. д.
Метод перебора в глубину определяется следующей последо-
вательностью шагов:
(1) Поместить начальную вершину в список, называемый
ОТКРЫТ.
(2) Если список ОТКРЫТ пуст, то на выход дается сигнал
о неудаче поиска, в противном случае перейти к шагу (3).
(3) Взять первую вершину из списка ОТКРЫТ и перенести
ее в список, называемый ЗАКРЫТ. Эту вершину назвать'п.
(4) Если глубина вершины п равна граничной глубине, то
переходить к (2), в противном случае — к (5).
(5) Раскрыть вершину п, построив все непосредственно сле-
дующие за ней вершины. Поместить их (в произвольном по-
рядке) в начало списка ОТКРЫТ и построить указатели, иду-
щие от них к. вершине п.
(6) Если одна из этих вершин целевая, то на выход выдать
решение, просматривая для этого соответствующие указатели,
в противном случае переходить к шагу (2).
На рис. 3.4 приведена блок-схема для метода перебора в
глубину. Дерево, которое получается в результате применения
метода перебора в глубину к той же самой игре в восемь,
что и прежде, показано на рис.- 3.5. Снова нужно найти
Рис. 3.4. Блок-схема программы алгоритма поиска в глубину для деревь
Целевая
вершина
Рис. 3.5. Дерево, построенное при переборе в глубину.
последовательность ходов для преобразования левой конфигу-
рации в правую:
2 8 3
1 6 4
7 СП
1 2 3
8 4
7 6 5
Вершины здесь занумерованы в том порядке, в котором они
были раскрыты, причем граничная глубина выбрана равной 5
(т. е. ищутся пути, ведущие к цели, длина которых не больше
пяти).
Мы видим, что в алгоритме поиска в глубину сначала идет
перебор вдоль одного пути, пока не будет достигнута макси-
мальная глубина, затем рассматриваются альтернативные пути
той же или меньшей глубины, которые отличаются от него лишь
последним шагом, после чего рассматриваются пути, отличаю-
щиеся последними двумя шагами, и т. д.
3.4. ИЗМЕНЕНИЯ ПРИ ПЕРЕБОРЕ НА ПРОИЗВОЛЬНЫХ ГРАФАХ
При переборе на графах, а не на деревьях, нужно внести
некоторые естественные изменения в указанные алгоритмы.
В простом методе полного перебора не нужно вносить никаких
изменений; следует лишь проверять, не находится ли уже вновь
построенная вершина в списках ОТКРЫТ или ЗАКРЫТ по той
причине, что она уже строилась раньше в результате раскрытия
какой-то вершины. Если это так, то ее не нужно вновь поме-
щать в список ОТКРЫТ.
Несколько более сложные изменения должны быть сделаны
в алгоритме равных цен:
(I) Если вновь построенная вершина уже имеется в списке
ОТКРЫТ, то ее не следует вносить в этот список снова. Однако
соответствующая ей величина стоимости § может оказаться
теперь меньше (может быть найден менее дорогой путь). Мы
всегда связываем с вершинами списка ОТКРЫТ наименьшие
из имевшихся до сих пор значений Точно так же указатель
от вершины всегда должен быть направлен к породившей ее
вершине, расположенной на том пути, стоимость которого оказа-
лась наименьшей среди всех путей к этой вершине, рассмотрен-
ных к настоящему моменту.
(2) Если вновь построенная вершина уже имеется в списке
ЗАКРЫТ, то, казалось бы, возможно, что для нее величина &
окажется меньше, чем раньше, так как направление ее указа-
теля должно быть выбрано заново. Но на самом деле этого не
происходит. Позже мы докажем, что если в алгоритме равных
цен некоторая вершина помещается'в список ЗАКРЫТ, то уже
найдена наименьшая возможная величина § (и, следовательно,
путь наименьшей стоимости, идущий' к этой вершине).
Прежде чем делать какие-либо изменения в алгоритме пере-
бора в глубину, нужно решить, что понимать под глубиной
вершины в графе. Согласно обычному определению, глубина
вершины равна единице плюс глубина наиболее близкой роди-
тельской вершины, причем глубина начальной вершины предпо-
лагается равной нулю. Тогда поиск в глубину можно было бы
получить, выбирая для раскрытия самую глубокую вершину
списка ОТКРЫТ (без превышения граничной глубины). Когда
порождаются вершины, уже имеющиеся либо в списке ОТКРЫТ,
либо в списке ЗАКРЫТ, пересчет глубины такой вершины может
оказаться необходимым.
Даже в том случае, когда перебор осуществляется на пол-
ном графе, множество вершин и указателей, построенное в про-
цессе перебора, тем не менее образует дерево. (Указатели по-
прежнему указывают только на одну порождающую вершину.)
В оставшейся части этой главы мы имеем дело с общим слу-
чаем поиска на графе, и, следовательно, в алгоритмах, которые
мы будем обсуждать, явным образом учитываются эти допол-
нительные изменения.
3.5. ОБСУЖДЕНИЕ ЭВРИСТИЧЕСКОЙ ИНФОРМАЦИИ
Методы слепого перебора, полного перебора или поиска в
глубину являются исчерпывающими процедурами поиска пу-
тей к целевой вершине. В принципе эти методы обеспечивают
решение задачи поиска пути1), но часто эти методы невозможно
использовать, поскольку при переборе придется раскрыть
слишком много вершин, прежде чем нужный путь будет най-
ден. Так как всегда имеются практические ограничения на
время вычисления и объем памяти, отведенные для перебора,
то мы должны заняться поисками других методов, более эффек-
тивных, чем методы слепого перебора.
Для многих задач можно сформулировать чисто эмпириче-
ские правила, позволяющие уменьшить объем перебора. Все та-
кие правила, используемые для ускорения поиска, зависят от
специфической информации о задаче, представляемой в виде
графа. Будем называть информацию такого сорта эвристиче-
ской? информацией (помогающей найти решение) и называть
') В случае перебора в глубину при дополнительном ограничении на мак-
симально допустимую длину пути. — Прим, перев.
использующие ее процедуры поиска эвристическими методами
поиска. Один из путей уменьшить перебор состоит в выборе бо-
лее «информированного» оператора Г, который не строит так
много не относящихся к делу вершин. Этот способ применим
как в методе полного перебора, так и в методе перебора в глу-
бину. Другой путь состоит в использовании эвристической ин-
формации для модификации шага (5) алгоритма перебора в
глубину. Вместо того чтобы размещать вновь построенные вер-
шины в произвольном порядке в начале списка ОТКРЫТ, их
можно расположить в нем некоторым определенным образом,
зависящим от эвристической информации. Так, при переборе в
глубину в первую очередь будет раскрываться та вершина, ко-
торая представляется наилучшей.
Более гибкий (и более дорогой) путь использования эври-
стической информации состоит в том, чтобы, согласно некото-
рому критерию, на каждом шаге переупорядочивать вершины
списка ОТКРЫТ. В этом случае перебор мог бы идти дальше
в тех участках границы, которые представляются наиболее пер-
спективными. Для того чтобы применять процедуру упорядоче-
ния, нам необходима мера, которая позволяла бы оценивать
«перспективность» вершины. Такие меры называют оценочными
функциями.
Как мы сможем убедиться, подчас удается выделить эвристи-
ческую информацию (эвристику), уменьшающую усилия, затра-
чиваемые на перебор (до величины, меньшей, скажем, чем при
поиске методом равных цен), без потери гарантированной воз-
можности найти путь, обладающий наименьшей стоимостью.
Чаще же используемые эвристики сильно уменьшают объем ра-
боты, связанной с перебором, ценою отказа от гарантии найти
путь наименьшей стоимости в некоторых или во всех задачах.
Но в большинстве практических задач мы заинтересованы в
минимизации некоторой комбинации из стоимости пути ,и стои-
мости перебора, необходимого для нахождения этого пути. -
Более того, нас обычно интересуют методы перебора, при
которых минимизируется такая комбинация, усредненная по
всем задачам, которые могут нам встретиться. (При вычисле-
нии этой средней стоимости мы должны использовать веса, про-
порциональные частоте появления каждой задачи, так что мы
допускаем большие стоимости для нечасто встречающихся за-
дач, если они компенсируются меньшими стоимостями для часто
встречающихся задач.) Если усредненная комбинационная сто-
имость одного метода перебора ниже соответствующей стоимо-
сти другого метода, то мы говорим, что первый метод перебора
обладает большей эвристической силой, чем второй. Заметим,
что по нашему определению вовсе не обязательно (хотя это
обычно недопонимается), чтобы метод перебора, имеющий
большую эвристическую силу, чем другой, гарантировал воз-
можность нахождения путей минимальной стоимости, которую
другой-метод мог бы обеспечивать.
Усредненные комбинационные стоимости в действительности
никогда не вычисляются как по той причине, что трудно вы-
брать способ комбинирования стоимости пути и стоимости уси-
лий, затрачиваемых на перебор, так и потому, что было бы не-
легко найти вероятностное распределение на множестве задач,
которые могут встретиться. Таким образом, решение вопроса о
том, имеет ли один метод перебора большую эвристичёскую
силу по сравнению с другим, зиждется обычно на интуиции зна-
тока, подкрепленной реальными экспериментами с этими мето-
дами. *
3.6. ИСПОЛЬЗОВАНИЕ ОЦЕНОЧНЫХ ФУНКЦИЙ
Как мы уже отмечали, обычный способ использования эври-
стической информации связан с употреблением для упорядоче-
ния перебора оценочных функций. Оценочная функция должна
обеспечивать возможность ранжирования вершин — кандидатов
на раскрытие — с тем, чтобы выделить ту вершину, которая с
наибольшей вероятностью находится на лучшем пути к цели.
Оценочные функции строились на основе различных соображе-
ний. Делались попытки определить вероятность того, что вер-
шина расположена на лучшем пути. Предлагалось также ис-
пользовать расстояние или другие меры различия между произ-
вольной вершиной и множеством целевых вершин. В салонных
играх или головоломках позиции часто ставится в соответствие
определенное число очков на основе тех черт, которыми она
обладает и которые представляются связанными со степенью
уверенности в том, что это шаг к поставленной цели.
Предположим, что задана некоторая функция Д которая мо-
гла бы быть использована для упорядочения вершин перед их
раскрытием. Через /(п) обозначим значение этой функции на
вершине п. Пока мы будем считать, что / — произвольная функ-
ция. Позднее же мы предположим, что она совпадает с оценкой
стоимости того из путей, идущих от начальной вершины к целе-
вой и проходящих через вершину п, стоимость которого — наи-
меньшая (из всех таких путей).
Условимся располагать вершины, предназначенные для рас-
крытия, в порядке возрастания их значений функции Тогда
можно использовать некоторый алгоритм (подобный алгоритму
равных цен), в котором для очередного раскрытия выбирается
та вершина списка ОТКРЫТ, для которой значение оказы-
вается наименьшим. Будем называть такую процедуру алго-
ритмом упорядоченного перебора (огдегесРзеагсВ а1§огКЬт).
Чтобы этот алгоритм упорядоченного перебора был приме-
ним для перебора на произвольных графах (а не только на
деревьях), необходимо предусмотреть в нем возможность работы
в случае построения вершин, которые уже имеются либо в спи-
ске ОТКРЫТ, либо в списке ЗАКРЫТ. При использовании не-
которой произвольной функции / нужно учесть, что величина I
для некоторой вершины из списка ЗАКРЫТ может понизиться,
если к ней найден новый путь (^(и) может зависеть от пути
из 5 к п даже для вершин списка ЗАКРЫТ). Следовательно,
мы должны тогда перенести такие вершины назад в список
ОТКРЫТ и позаботиться об изменении направлений соответст-
вующих указателей.
После принятия этих необходимых мер алгоритм упорядо-
ченного поиска может быть представлен такой последователь-:
ностью шагов:
(1) Поместить начальную вершину 5 в список, называемый
ОТКРЫТ, и вычислить {(з).
(2) Если список ОТКРЫТ пуст, то на выход дается сигнал
о неудаче; вЛ противном случае переходить к следующему этапу.
(3) Взять из списка ОТКРЫТ ту вершину, для которой /
имеет наименьшее значение, и поместить ее в список, называе-
мый ЗАКРЫТ. Дать этой вершине имя п. (В случае совпадения
значений ? для нескольких вершин выбирать вершину с мини-
мальным / произвольно, но всегда отдавая предпочтение целе-
вой вершине.)
(4) Если п — целевая вершина, то на выход подать решаю-
щий путь, получаемый прослеживанием соответствующих ука-
зателей; в противном случае переходить к следующему этапу.
(5) Раскрыть вершину п, построив все непосредственно сле-
дующие за ней вершины. (Если таковых не оказалось, пере-
ходить сразу к (2).) Для каждой такой дочерней вершины гц
вычислить значение /(«»).
(6) Связать с теми из вершин и,, которых еще нет в списках
ОТКРЫТ или ЗАКРЫТ, только что подсчитанные значения
/(иг). Поместить эти вершины в список ОТКРЫТ,и провести
от них к вершине п. указатели.
(7) Связать с теми из непосредственно следующих за п
вершинами, которые уже были в списках ОТКРЫТ или ЗА-
КРЫТ, меньшее из прежних и только что вычисленных значе-
ний I. Поместить в список ОТКРЫТ те из непосредственно сле-
дующих за п. вершин, для которых новое значение оказалось
ниже, и изменить направление указателей от всех вершин, для
которых значение } уменьшилось, направив их к п.
(8) Перейти к (2).
Общая структура алгоритма идентична структуре алгоритма
равных цен (см.‘ рис. 3.3), поэтому мы не приводим для него
блок-схему. Отметим, что множество вершин и указателей, по-
рождаемых этим алгоритмом, образует дерево (дерево пере-
бора), причем на концах этого дерева расположены вершины
из списка’ ОТКРЫТ.
Работу алгоритма проще всего пояснить, рассмотрев вновь
тот же самый пример игры в восемь. Мы будем пользоваться
следующей простой оценочной функцией:
/(«) =^(«)+ ^(«),
где ^(и) —длина пути в дереве перебора от начальной вершины
до вершины п, а №(п) —это число фишек, которые лежат не на
своем месте в описании со-
стояния, связанного с вер-
шиной п.
значение равно 0 + 4 — 4.
По предположению с боль-
шей вероятностью на опти-
мальном пути находится та
вершина, которая имеет наи-
меньшую оценку.
На рис. 3.6 показан ре-
зультат применения к игре
в восемь алгоритма упоря-
доченного перебора и ис-
пользования такой оценоч-
ной функции. Значение ^для
каждой вершины приведено
внутри кружка. Отдельно
Целевая
вершина
Рис. 3.6. Дерево, построенное в про-
цессе упорядоченного перебора.
стоящие цифры показывают порядок, в котором раскрывались
вершины. Мы видим, что найден тот же самый путь решения,
который был получен другими методами перебора, но исполь-
зование оценочной функции привело к существенно меньшему
числу раскрытий вершин.
Выбор оценочной функции сильно влияет на результат пере-
бора. Использование оценочной функции, не учитывающей ис-
тинной перспективности некоторых вершин, может привести к
построению путей, не обладающих минимальной стоимостью.
С другой стороны, использование оценочной функции, которая
придает слишком большое значение возможной перспективности
всех вершин (т^Гкой, как в алгоритме равных цен), приведет к
тому, что придется раскрыть очень много вершин. В следую-
щих нескольких разделах будет получен ряд теоретических ре-
зультатов, относящихся к некоторой специальной оценочной
функции, использование которой приводит к раскрытию наи-
меньшего числа вершин, совместимого с гарантией нахождения
пути минимальной стоимости.
3.7. ОПТИМАЛЬНЫЙ АЛГОРИТМ ПЕРЕБОРА
Сейчас мы дадим описание некоторой специальной оценоч-
ной функции и покажем, что ее использование максимизирует
одну меру эффективности перебора и в то же время гаранти-
рует обнаружение пути минимальной стоимости, ведущего к
цели. Определим оценочную функцию так, чтобы значение Цп)
для любой вершины п представляло собой сумму оценки стои-
мости пути минимальной стоимости от начальной вершины д
к вершине п и оценки стоимости пути минимальной стоимости
от вершины п к целевой вершине. Таким образом, }(п) пред-
ставляет собой оценку стоимости пути минимальной стоимости
при условии, что этот путь проходит через вершину п. По этой
оценке та вершина списка ОТКРЫТ, которая имеет наименьшее
значение I, считается лежащей на пути минимальной стоимо-
сти, и поэтому следующей должна быть раскрыта именно она.
Для демонстрации некоторых из свойств этой оценочной
функции мы введем вначале ряд обозначений. Пусть функция
к (пи П]) дает действительную стоимость пути минимальной стои-
мости между двумя произвольными вершинами П{ и щ-. (Функ-
ция к не определена для вершин, между которыми нет пути.)
Если Т — множество целевых вершин, то стоимость пути мини-
мальной стоимости от вершины п{ до цели обозначим
к(П{)= гп1п к(п{, п^.
П]<^Т
(Функция А не определена для тех вершин п, из которых недо-
стижима ни одна из целевых вершин.) Мы будем говорить, что
любой путь от вершины п, к целевой вершине, для которого
достигается Л (и,), является оптимальным путем из вершины
к цели.
Нам часто будет нужно знать стоимость оптимального пути
к (э, п) от данной начальной вершины 5 до некоторой произволь-
ной вершины п. Наши обозначения несколько упростятся, если
ввести новую функцию определяемую следующим образом:
§(п) = к (5, п)
для всех п, ДОСТИЖИМЫХ ИЗ 5.
Далее, определим функцию / так, что ее значение /(п) для
любой вёршины п есть сумма действительной стоимости опти-
мального пути от вершины 5 до вершины п и стоимости опти-
мального пути от вершины п до какой-нибудь из целевых вер-
шин. Таким образом,
/ («) = ё («) + Л (п).
Иными словами, значение /(п) есть стоимость оптимального
пути при условии, что он проходит через вершину п. (Заметим,
что — Н(з) представляет собой действительную стоимость
оптимального пути от вершины 5 к цели без всяких ограниче-
ний.)
Мы хотим, чтобы наша оценочная функция / была оценкой
функции Будем считать, что наша оценка дается выра-
жением
• I («) = ^ («) + Й (п),
где § — оценка для а Н — оценка для К.
Естественно выбрать в качестве ^(и) стоимость пути от 5
до п в дереве перебора, которая получается после суммирова-
ния стоимостей дуг, лежащих на
пути, даваемом указателями, иду-
щими от п назад к 5. (Этот путь
есть путь наименьшей стоимости
от $ к и, найденный алгоритмом
к настоящему моменту.) Заме-
тим, что из определения следует,
что §(п) 5> §(п).
На следующем простом при-
мере будет видно, что эта оцен-
ка легко вычисляется в процессе
работы алгоритма. Рассмотрим
подграф, показанный на рис. 3.7.
Он состоит из начальной верши-
ны 5 и трех других вершин п2
и п3. На рисунке указаны стои-
мости дуг и их направления. Рассмотрим работу алгоритма
при переборе на таком подграфе. Отправляясь от вершины 5,
получаем две непосредственно следующие за ней вершины п} и
п2. Оценки ^(«1) и § (п2) будут тогда равны соответственно 3
и 7. Предположим, что следующей, согласно алгоритму, раскры-
вается вершина и строятся вершины п2 и п3. На этом шаге
ё(пз) =3 + 2 — 5, а ё(п2) снижается до 3 + 3 = 6 (поскольку
теперь к этой'вершине найден менее дорогой путь). Значение
€(«1) остается равным трем.
Далее нам требуется оценка П(п) для й(п). Здесь мы опи-
раемся на любую эвристическую информацию, связанную
с самой задачей. Эта информация может оказаться подобной
той информации, которая была использована при решении во-
проса о функции №(и) в примере игры в восемь. Мы назовем
Н эвристической функцией и более подробно рассмотрим ее позже.
Предположим, что теперь мы используем оценочную функ-
цию
Н«) = § («) + («)•
Назовем алгоритм упорядоченного перебора, в котором исполь-
зуется эта оценочная функция, алгоритмом А *. Заметим, что^
если /1 = 0, то алгоритм А* совпадает с описанным выше алго-
ритмом равных цен.
Раньше мы сделали утверждение (без доказательства), что-
в алгоритме равных цен гарантируется' нахождение пути до
цели, имеющего минимальную стоимость. Сейчас мы покажем,
что если /г — нижняя граница для А, то алгоритм А* также
находит оптимальный путь к цели. (Так как /1 = 0, безусловно,
служит нижней границей для Н, то факт, что алгоритм равных
цен позволяет находить оптимальные пути, будет следовать
как частный случай этого более общего результата для Л*.)
3.8. ДОПУСТИМОСТЬ АЛГОРИТМА А*
В общем случае будем называть алгоритм перебора допу-
стимым, если для произвольного графа он оканчивает свою ра-
боту построением оптимального пути к цели (при условии, что
такой путь существует). В этом разделе мы докажем, что если
/г — нижняя граница для Н, то алгоритм А* допустим. Идея до-
казательства состоит в том, чтобы сначала убедиться, что (при
нашем ограничении на Н) до завершения работы алгоритма А* в
списке ОТКРЫТ и на некотором оптимальном пути -имеется не-
которая вершина, значение / для которой не больше действи-
тельной стоимости 1(5) оптимального пути. Используя этот ре-
зультат, мы видим, что допустимость алгоритма Д* следует из
того факта, что вершина из списка ОТКРЫТ, имеющая мини-
мальное значение Д не может оказаться целевой вершиной
(на которой заканчивает работу алгоритм Д*) до тех пор,
пока не будет найдена целевая вершина, значение ? для которой
равно /(«).
Таким образом, мы прежде всего докажем лемму, утверж-
дающую, что если эвристическая функция Н является нижней
границей для Н, то до того, как алгоритм Д* закончит свою ра-
боту, на любом оптимальном пути будет находиться открытая ‘)
’) Любую вершину списка ОТКРЫТ мы будем называть открытой, а лю-
бую вершину списка ЗАКРЫТ — закрытой. Незакрытой вершиной является
та, которая либо находится в списке ОТКРЫТ, либо еще не была построена
в процессе перебора.
вершина, величина / для которой не превышает действительной
стоимости /(«) оптимального пути.
Лемма 3.1. Если для всех п выполняется условие Н(п)
й(п), то в любой момент времени до того, как алгоритм А*
закончит свою работу, на любом оптимальном пути Р от вер-
шины з к цели существует открытая вершина п', для которой
Доказательство. Предположим, что оптимальный путь Р
представляется упорядоченной последовательностью (з =
= п0, щ, п2,..., Пд), где Пь — целевая вершина. Пусть п' — пер-
вая открытая вершина в этой последовательности. (Должна су-
ществовать по крайней мере одна такая вершина, так как если
пк закрыта, то алгоритм А* уже закончил свою работу.) По
определению ? имеем
I (п') = ё(п') + (г(п').
Мы знаем, что алгоритм А* нашел оптимальный путь до вер-
шины п', так как п' лежит на Р и все ее предшественницы на Р
закрыты. Следовательно, §(п') = §(п') и
Г(п') = §(«') + й (и').
Так как мы принимаем, что Н(п') Н-(п'), то мы можем запи-
сать
ё («') + Л («') = / («')•
Но значение / для любой вершины на оптимальном пути равно
просто /(5), т. е. минимальной стоимости; следовательно,
/(п')^/(5), что и утверждает наша лемма.
Теперь мы докажем, что если Я—нижняя граница для Л,
то алгоритм А* допустим.
Теорема 3.1. Если для всех вершин п выполняется условие
Л'(п) <=: й(п) и если стоимости всех дуг превосходят некоторое
малое положительное число б, то алгоритм А* допустим.
Доказательство. Мы будем доказывать эту теорему, пред-
положив противное, а именно, что не всегда работа алгоритма
Д* заканчивается отысканием оптимального пути от начальной
вершины 5 к цели. Нужно рассмотреть три случая: либо работа
алгоритма А* заканчивается, но целевая вершина остается не
найденной, либо работа алгоритма вообще никогда не закан-
чивается, либо заканчивается на некоторой целевой вершине,
но при этом не достигается минимальная стоимость.
Случай 1. Работа алгоритма заканчивается, но целевая вер-
шина не найдена. Шаг 4 алгоритма (стр. 66) показывает, что
успешное окончание не может произойти до тех пор, пока не
будет найдена целевая вершина. Единственный другой случай
окончания работы — окончание, свидетельствующее о неудаче
(шаг 2), может произойти лишь тогда, когда список ОТКРЫТ
пуст. Но по лемме 3.1, если путь от з к целевой вершине суще-
ствует, то перед окончанием работы алгоритма список ОТКРЫТ
не может оказаться пустым.
Случай 2. Нет окончания работы алгоритма. Пусть I — не-
которая целевая вершина, достижимая из начальной вершины
за конечное число шагов с соответствующей минимальной стои-
мостью /(з). Так как стоимость любой дуги не меньше, чем б,
то для любой вершины п, расположенной на расстоянии, боль-
шем, чем М = Цз) /8 шагов от з, мы имеем
> Мб = /(з).
Ясно, что никогда не будет раскрыта вершина, расположенная
на расстоянии большем М шагов от з, так как по лемме 3.1
на оптимальном пути найдется такая открытая вершина п', что
/(з) < /(и), и поэтому, согласно шагу 3 алгоритма, алго-
ритм А* выберет вершину п' вместо п. Отсюда заключаем, что
невозможность окончания работы алгоритма А* может быть
вызвана лишь продолжающимся переоткрытием вершин (на
шаге 7) в пределах М шагов от з. Пусть х(М)—множество
вершин, достижимых в пределах М шагов из з, и пусть V(Л1) —
"число вершин в %(Л1). Далее, каждая вершина п из х(М) мо-
жет быдъ переоткрыта самое большее конечное число раз, ска-
жем р(п, М), так как имеется лишь конечное число путей от
з к п, проходящих только через вершины, расположенные в пре-
делах М шагов от вершины з. Пусть
р (М) = щах р (п, М)
пе=х(М)
— максимальное число раз, которое может быть переоткры-
та любая вершина. Следовательно, после самбе большее
у(Л1)р(Л1) раскрытий вершин все вершины из х(^) должны
навсегда остаться закрытыми. Так как ни одна из вершин вне
множества х(^) не может быть раскрыта, то алгоритм А*
обязан прекратить свою работу.
Случай 3. Окончание работы на целевой вершине без до- ’
стижения минимальной стоимости. Предположим, что работа
алгоритма А* оканчивается на некоторой вершине / с /(/) =
= ^(/) >?($). Но по лемме 3.1 как раз перед окончанием ра- 1
боты на оптимальном пути существует такая открытая вершина
п', что /(«') Таким образом, на этом шаге для
раскрытия была бы выбрана вершина п.', а не /, что противо-
речит предположению об окончании работы алгоритма А*.
Доказательство теоремы З.Г теперь завершено. В следующем
разделе мы покажем, что при задании другого разумного огра-
ничения на функцию Я(и) алгоритм А* будет не только допу-
стимым, но и оптимальным в том смысле, что не существует
другого сравнимого допустимого алгоритма, в котором раскры-
валось бы меньшее число вершин.
3.9. ОПТИМАЛЬНОСТЬ АЛГОРИТМА А*
Точность нашей эвристической функции И зависит от объема
тех эвристических знаний, которыми мы располагаем относи-
тельно задачи, моделируемой нашим графом. Ясно, что исполь-
зование условия /г(п) =0 соответствует полному отсутствию
какой-либо эвристической информации о задаче, хотя такая
оценка и является нижней границей для И(п), и, следовательно,
она приводит к допустимому алгоритму (описанному ранее
алгоритму равных цен). Мы будем говорить, что алгоритм А
более информирован, чем алгоритм В, если эвристическая ин-
формация, используемая в алгоритме А, позволяет вычислять
такую нижнюю границу для И(п), которая всюду строго больше
(для всех вершин п, не являющихся целевыми вершинами), чем
та, которая вычисляется по эвристической информации, исполь-
зуемой в алгоритме В. Как пример рассмотрим игру в восемь,
решенную на рис. 3.6. Там была использована оценочная функ-
ция /(п) = ё(п) + ^(п)- Мы можем интерпретировать процесс
упорядоченного перебора в этом примере как применение алго-
ритма А* с условием б(п) = №(п). Так как №(п) есть нижняя
граница для числа шагов, остающихся до цели, то алгоритм А*
в этом случае допустимый. Кроме того, алгоритм А* с условием
Н(п) = №(«), очевидно, более информирован, чем алгоритм
равных цен, в котором принимается 1г(п) =0.
Интуитивно мы ожидаем, что в более информированном
алгоритме придется раскрыть меньшее число вершин, прежде
чем будет найден путь минимальной стоимости. Для игры в во-
семь это соображение подтверждается сопоставлением рис. 3.2
и рис. 3.6. Конечно, то обстоятельство, что один алгоритм рас-
крывает меньшее число вершин, чем другой, еще не означает,
что он более эффективен. В более информированном алгоритме
могут потребоваться более дорогостоящие вычисления, которые
ослабят его эффективность. Тем не менее число вершин, кото-
рые раскрываются в процессе работы алгоритма, — один из фак-
торов, определяющий эффективность, и это как раз тот фактор,
который позволяет делать простые сравнения.
Если теперь наложить еще одно слабое ограничение на функ-
цию /, то можно показать, что алгоритм А* оптимален в сле-
дующем смысле. В алгоритме А* никогда не раскрывается
больше вершин, чем в любом другом допустимом алгоритме А,
гаком, что А* более информирован, чем А. Формальному дока-
зательству оптимальности алгоритма А* мы предпошлем крат-
кое описание плана рассуждений.
Рассмотрим любой допустимый алгоритм А, такой, что Д*
более информирован, чем-Л. Мы покажем, что алгоритм А рас-
крывает каждую вершину п, которую раскрывает алгоритм Л*.
Чтобы сделать это, прежде всего мы должны доказать, что
класс вершин, раскрываемых алгоритмом А*, подчиняется сле-
дующим ограничениям:
Когда в алгоритме А* раскрывается некоторая вершина п,
оптимальный путь к п уже найден, т. е. §(п) = &(п).
Когда в алгоритме А* раскрывается некоторая вершина п,
то оценка /(и) не больше, чем оптимальная стоимость /($).
Пользуясь этими ограничениями, мы покажем, что если
в алгоритме А не происходит раскрытия вершины п, раскры-
ваемой в алгоритме А*, то алгоритм А должен знать, что любой
путь к цели, проходящий через вершину п, не оптимален. Ко-
роче говоря, алгоритм А* не может быть более информирован-
ным, чем алгоритм А, если алгоритм А может избежать раскры-
тия тех вершин, которые в алгоритме А* раскрываются.
Таким образом, наша первая задача состоит в доказатель-
стве двух сформулированных выше предварительных результа-
тов. Очевидно, что в случае деревьев для всех вершин выпол-
няется равенство §(п) = §(п), ибо по дереву существует только
один путь от начальной вершины к любой вершине п дерева.
Но в общем случае нам придется наложить еще одно ограни-
чение на /г, для того чтобы показать, что как только в‘алго-
ритме А* происходит раскрытие некоторой вершины графа, то
оказывается, что оптимальный путь к этой вершине уже был
найден. Мы будем предполагать, что для любых двух вершин
шип, для которых к(т, п) существует, выполняется условие
А (пг) — А (п) к (т, п).
Иными словами, разность между оценками стоимостей путей от
любой пары вершин т и п до цели должна быть нижней гра-
ницей стоимости оптимального пути от т до п. (Заметим, что
если /г == О для целевых вершин, то это ограничение включает
в себя предыдущее ограничение на /г, состоящее в том, что /г —
нижняя граница для к. Это можно увидеть, взяв в качестве п
целевую вершину.) Это новое ограничение, например, не будет
нарушаться, если эвристическая информация, используемая для
вычисления /г, непротиворечиво применяется во всех' вершинах.
Поэтому мы будем называть это предположение предположе-
нием о непротиворечивости. (Легко проверить, что, например,
использование условия к = УР(п) для игры в восемь удовлетво-
ряет условию непротиворечивости.) Если функция к каким-то
образом изменяется в процессе перебора, то предположение
о непротиворечивости может и не удовлетворяться.
Пользуясь предположением о непротиворечивости, мы мо-
жем доказать в общем случае, что когда при работе алгоритма
Л* происходит раскрытие некоторой вершины, то оказывается,
что оптимальный путь к этой вершине уже найден. Этот факт
важен по двум причинам. Во-первых, он используется при до-
казательстве теоремы об оптимальности алгоритма А*, прово-
димом ниже. Во-вторых, в нем утверждается, что в алгоритме
А* никогда не придется изменять направление указателя, иду-
щего от закрытой вершины, так как оптимальный путь к этой
вершине уже найден. Таким образом, возможность переоткры-
тия вершин, предусмотренная на шаге 7 работы алгоритма
упорядоченного поиска (стр. 66), оказывается излишней и мо-
жет быть удалена из него, если удовлетворяется предположение
о непротиворечивости.
Лемма 3.2. Предположим, что выполнено предположение
о непротиворечивости, и предположим, что вершина п закрыта
алгоритмом А*. Тогда &(п) = @(п).
Доказательство. Рассмотрим дерево перебора вершин, по-
рожденных алгоритмом А* непосредственно перед закрытием
вершины п, и предположим противное, т. е. предположим, что
^(п) >§(п). Далее, существует некоторый оптимальный путь
Р из 5 в п. Так как ё(п) > ё(п)> то этот-путь не найден алго-
ритмом А*. Но по лемме 3.1 существует открытая вершина п'
на пути Р с ё(п') =§(п'). Если п'= п, то лемма доказана.
В противном случае
ё (п) — ё («') + & («'.«) = ё («') + к №, п).
Таким образом, если мы предполагаем, что ё(п) > ё(п)> то
ё > ё (п') + к (п', п).
Прибавляя /г(п) к обеим частям выписанного неравенства, по-
лучаем
(п) + /г (п) > ё (п') + к (п', п) + $1 (п).
Мы можем применить предположение о непротиворечивости
к правой части предыдущего неравенства и получить
ё (Р) + к (п) > $ (п') + й. (п'),
или
!(«)>? (п')
в противоречии с тем фактом, что в алгоритме А* для раскры-
тия была выбрана вершина п, когда имелась вершина п', что
и доказывает лемму.
Далее нам нужно показать, что если Н — нижняя граница
для 1г, то значение / для вершины, закрытой алгоритмом А*,
не может быть больше стоимости оптимального пути от $ к це-
левой вершине.
Лемма 3.3. Для любой вершины п, закрытой алгоритмом.
А*, если И — нижняя граница для И, то /(п) /($).
Доказательство. Оно легко получается из леммы 3.1. Пусть
п— любая вершина, закрытая алгоритмом А*. Если п — целевая
вершина, то мы тривиально имеем /(п) =/($). Поэтому пред-
положим, что п не есть целевая вершина. Далее, вершина п
была закрыта в алгоритме А* перед окончанием его работы, так
что сейчас мы знаем (по лемме 3.1), что существует некоторая
открытая вершина п' на оптимальном пути от 5 к цели
с /(«') г^/($). Если п = п', то наше доказательство закончено.
В противном случае мы знаем, что для раскрытия алгоритмом
А* будет выбрана вершина п, а не п', так что это должен быть
случай, когда
Г («)<?(«') </(«).
После доказательства этих двух лемм мы можем доказать
оптимальность алгоритма А*.
Теорема 3.2. Пусть А и А* — допустимые алгоритмы, такие,,
что А* более информирован, чем А, и пусть предположение о
непротиворечивости удовлетворяется той функцией /г, которая
йспользуется в алгоритме А*. Тогда для любого графа верно,
что если алгоритм А* раскрывает вершину п, то ее раскрывает
и алгоритм А.
Доказательство. Предположим противное. Тогда существует
некоторая вершина, которая была раскрыта алгоритмом А*, но
не была раскрыта алгоритмом А (поскольку вершина п была
раскрыта при работе алгоритма А*, то мы знаем, что эта вер-
шина— не целевая). Если алгоритм А никогда не приводит к
раскрытию вершины п, то это должно быть по той причине, что
он использовал информацию, согласно которой любой путь к
целевой вершине, идущий через вершину п, имел бы стоимость,
большую или равную значению /($)—истинной стоимости оп-
тимального пути к цели. (Если бы имелся менее дорогой путь
к цели, проходящий через вершину п, то в алгоритме А он без
сомнения был бы пропущен и этот алгоритм оказался бы недо-
пустимым, что противоречит нашему предположению. Таким
образом, мы должны предположить, что алгоритму А «изве-
стно» отсутствие менее дорогого пути, проходящего через п.)
Действительная стоимость оптимального пути при условии, что
он проходит через вершину п, равна
I («) = ё (и) + И (п),
откуда мы получаем, что
й (п) = /(«)-г («)•
Далее, согласно приведенным выше соображениям, алгоритму
А «известно», что Пл)^/(5)> и> следовательно, ему известно,что
й («) > / (х) — ё (.п).
Такая информация, доступная алгоритму А, могла бы позволить
получить нижнюю граничную оценку для
й (л) = /(«) — «'(л).
С другой стороны, в алгоритме А* была использована сле-
дующая оценочная функция:
1(п) = ё («) + А (п).
Из леммы 3.3 известно, что
?(п)<^(х).
Таким образом, мы знаем, что
^(«) + Й(Й)</(х).
Следовательно, какова бы ни была функция /г, использованная
в алгоритме А*, она должна удовлетворять неравенству
А (п)< / (х) — ё (п)-
Далее, когда по алгоритму А* раскрывается вершина п, то, со-
гласно лемме 3.2, ^(п) = ^(п) и, таким образом,
А (п)< / (х) — ё («)•
Но теперь мы видим, что по крайней мере для вершины п в ал-
горитме А использована информация, дающая для й нижнюю
границу, не меньшую, чем нижняя граница, использованная в
алгоритме А*. Таким образом, алгоритм А* не может быть бо-
лее информированным алгоритмом по сравнению с алгоритмом
А, что противоречит нашему предложению. Теорема доказана.
з.ю. эвристическая сила функции л
При определении эвристической силы алгоритма упорядочен-
ного поиска выбор функции К играет решающую роль. Исполь-
зование условия Н = о гарантирует допустимость, но ведет
к слепому перебору и поэтому обычно оказывается неэффек-
тивным. Выбор в качестве Н наибольшей из возможных нижних
границ для й приводит к тому, что раскрывается наименьшее
число вершин, при котором еще сохраняется допустимость.
Часто эвристическая сила алгоритма может быть повышена
ценой отказа от допустимости при использовании в качестве Н
некоторой функции, не являющейся нижней границей для й.
Такая дополнительная эвристическая сила позволяет решать
существенно более трудные задачи. Для игры в восемь функ-
ция /г(п) = №(и) (где №(п) — число фишек, находящихся йена
своих местах) есть нижняя граница для /г(п), но эта оценка не
обеспечивает очень хорошей оценки трудности данного располо-
жения фишек (в смысле числа шагов, отделяющих от цели).
Лучшую оценку дает функция /г(и)=Р(п), где Р(п) — сумма
расстояний каждой фишки от «своего места» (без учета, фишек,
расположенных на ее пути). Однако даже эта оценка слишком
груба, так как в ней не учитывается должным образом труд-
ность обмена местами двух соседних фишек.
Следующая оценка достаточно хороша для игры в восемь:
Я(п) = Р(п) + 35(п);
здесь 5(п)—число очков, учитывающее порядок расположения
фишек. Для его вычисления нужно последовательно просмотреть
все нецентральные фишки в данной конфигурации и за каждую
фишку, за которой не идет та фишка, которая должна бы идти
(в целевой конфигурации), начисляется два очка, а в противном
случае берется нуль очков. За фишку, находящуюся в центре,
начисляется одно очко. Отметим, что такая функция И не дает
нижней границы для К.
Используя такую функцию /г в оценочной функциц Нп) —
= §(п) + Н(п), мы можем легко находить решения в намного
более сложных случаях игры в восемь, чем рассмотренные ниже.
•На рис. 3.8 приведено дерево, возникающее в результате приме-
нения алгоритма упорядоченного перебора с этой оценочной
функцией к задаче преобразования левой из следующих конфи-
гураций в правую:
2 1 6
4 В 8
7 5 3
/ 2 3
8 4
7 6 5
Как и раньше, значение / для каждой вершины помещено в кру-
жок, а цифры без кружков указывают порядок, в котором рас-
крывались вершины.
Оказалось, что решающий путь имеет минимальную длину
(18 шагов), хбтя, поскольку функция Н не есть нижняя граница
для И, нахождение оптимального пути не было гарантировано.
Заметим, что такая функция К приводит к перебору, направ-
ленному достаточно прямо к цели. Имеется лишь небольшое
число ответвлений в сторону, и сосредоточены они вблизи на-
чальной вершины.
Рис. 3.8. Дерево, построенное в процессе упорядоченного перебора.
Другим фактором, определяющим эвристическую силу алго-
ритма упорядоченного перебора, является объем усилий, связан-
ных с вычислением /г. Лучшей функцией /г была бы функция, в
точности совпадающая с /г, и она бы обеспечивала абсолютный
минимум числа раскрытий вершин. Такая функция й могла бы,
например, быть определена в результате отдельного полного
перебора на каждой вершине, что, очевидно, не привело бы к
уменьшению объема вычислений в целом.
Иногда намного легче вычислить некоторую функцию /г, от-
личную от нижней границы для й, чем такую, которая с ней
совпадает. В этом случае эвристическая сила алгоритма может
быть увеличена по двум причинам — как благодаря уменьшению
общего числа раскрываемых вершин (ценою отказа от допусти-
мости), так и благодаря уменьшению объема вычислений.
В ряде случаев эвристическая сила данной функции /г может
бьць повышена просто путем умножения ее на некоторую поло-
жительную константу, большую единицы. Если этот множитель
очень велик, то мы получаем ситуацию, аналогичную условию
^(п)==0. Такой выбор, безусловно, приведет к недопустимому,
но тем не менее способному удовлетворительно работать алго-
ритму. Опираясь на интуицию, можно было бы предположить,
что выбор ^(п)== 0 приведет к повышению эффективности пере-
бора в тех случаях, когда желательно получить любой путь к
цели (не обязательно имеющий минимальную стоимость).
В следующем разделе мы приведем некоторые результаты, про-
тиворечащие такого рода интуиции.
Суммируя, отметим, что имеются три важных фактора, влия-
ющих на эвристическую силу алгоритма упорядоченного поиска:
1. Стоимость пути.
2. Число вершин, раскрытых в процессе поиска пути.
3. Объем вычислений, требуемых для подсчета ' значений
функции Н.
Выбор соответствующей функции /г позволяет получить для
каждой задачи требуемый компромисс между этими тремя фак-
торами, при котором максимизируется эвристическая сила алго-
ритма.
3.11. ВАЖНАЯ РОЛЬ ФУНКЦИИ %
Во многих задачах нам необходимо просто найти какой-
нибудь путь к целевой вершине, а стоимость результирующего
пути значения не имеет. (Но, конечно, объем трудностей пере-
бора при нахождении такого пути нас интересует.) В таких слу-
чаях можно привести интуитивные соображения как за включе-
ние функции @ в оценочную функцию, так и за то, чтобы этого
не делать.
Интуитивное соображение против включения функции &
в оценочную функцию
Если нам требуется найти какой-нибудь путь до цели, то
функцию ё можно не учитывать, поскольку на любом шаге пере-
бора нам не важны стоимости уже построенных путей. Для нас
существенны только те затраты на перебор, которые еще потре-
буются, прежде чем будет найдена целевая вершина, а они, воз-
можно, и зависят от величин 1г для открытых вершин, но уж
заведомо не зависят от значений § для этих открытых вершин.
Следовательно, в таких задачах мы должны бы пользоваться
оценочной функцией / = Н.
Интуитивное соображение за включение функции §
в оценочную функцию
Даже в том случае, когда не существенно, чтобы найденный
путь имел минимальную стоимость, функцию § следует вклю-
чить в I для того, чтобы быть уверенным, что хотя бы какой-
нибудь путь будет в конечном итоге найден. Такой уверенностью
необходимо заручаться всегда, когда Н не достаточно хорошая
оценка для И, поскольку если всегда раскрываются вершины с
минимальным /г, то может случиться так, что в нашем процессе
перебора будут все время раскрываться ложные вершины, а
целевая вершина достигаться не будет. Включение функции §
как бы вносит определенную компоненту полного перебора и га-
рантирует, что нет такой части у графа, которую процесс пере-
бора постоянно обходит.
Каждое из приведенных соображений представляется разум-
ным, хотя нам кажется, что второе более оправдано логически.
В ряде частных случаев второе соображение может быть даже
подкреплено соответствующим точным анализом.
, Рассмотрим случай бесконечного графа в форме бесконеч-
ного т-арного дерева. (Бесконечное т-арное дерево — это де-
рево, в котором у каждой вершины имеются в точности т непо-
средственно следующих за ней вершин.) В этом графе имеется
единственная целевая вершина, которая расположена на &-м
уровне. Заметим, что цель достижима из любой вершины этого
конкретного графа. Пример такого графа приведен на рис. 3.9;
стоимости ребер предполагаются единичными.
Предположим, что при переборе на этом графе мы пользуем-
ся следующей функцией /г:
/г(п) = Л(п) + Е для вершин п. на кратчайшем пути,
/г(п)= Л(п) — Е для вершин п. вне кратчайшего пути.
где Е — некоторая целочисленная ошибка. То есть наша функ-
ция Я всегда содержит ошибку, величина которой равна некото-
рому целому Ег).
Кроме того, знак этой ошибки выбран так, чтобы вызвать
наибольшие затруднения. Проанализировав самый худший слу-
Р и с. 3.9. Граф, изображающий бесконечное т-арное дерево.
чай, мы покажем, что при такой функции Я перебор с’ функцией
/ = у + Я более эффективен, чем перебор с функцией / = Я,
если только Е > 1.
Мы должны сопоставить следующие два случая:
Случай 1. / = ^ + /2. Пусть —число вершин, которые
были раскрыты до достижения цели. Здесь мы обязаны рас-
крывать вершину, если она расположена в пределах Е единиц
от какой-либо вершины на кратчайшем пути. (В духе рассмат-
риваемого нами самого худшего случая мы всегда будем выби-
рать наихудшую из возможностей, если число вершин равно Е.)
Видно тогда, что
1Уе+/1 = 1г{1 +(ш— 1) (число вершин в т-арном дереве
глубиной (Е — 1))} = к + (пг —- 1) —ЗГр] / = кпгЕ.
') Заметим, что функция К не дает в этом случае нижней границы для Л.
Случай 2. I = И. Пусть — число вершин, которые были
раскрыты до достижения цели. Здесь мы обязаны раскрывать
вершину, если она расположена -в пределах 2Е—1 единиц от
вершины на кратчайшем пути. (Обманчиво перспективные вер-
шины в этом случае заставляют процесс перебора отойти на
большее расстояние от кратчайшего пути к цели.) Итак, для
Е 1 имеем
= к {1 +(т— 1) (число вершин в т-арном дереве.
глубины (2Е — 2))} = к {1 + (т — 1) г~^]) — кт?Е~1-
(Отдельно можно показать, что = й для Е = 0.)
Мы видим, что Ын больше для Е> 1, а это означает,
что (для нашего графа) для эффективного перебора необходимо
в оценочную функцию включить функцию Отношение Мё+ь/Мь
не зависит от к и дается просто выражением
_ 1
тЕ~1
для Е 1.
Хотя в реальных задачах это различие в эффективности может
оказаться существенно меньше, наше исследование наихудшего
случая показывает, что интуитивное соображение о необходи-
мости включения функции & в оценочную функцию имеет ощу-
тимую ценность.
3.12. ИСПОЛЬЗОВАНИЕ ДРУГИХ ЭВРИСТИК
Перебор этапами
До сих пор в настоящей главе мы обсуждали вопрос о том,
что использование эвристической информации может существен-
но уменьшить объем перебора, необходимого для пбиска прием-
лемого пути. Следовательно, ее использование позволяет также
осуществлять перебор на гораздо больших графах. И тем не
менее могут возникнуть случаи, когда имеющаяся в нашем рас-
поряжении память оказывается исчерпанной раньше, чем будет
найден удовлетворительный путь. В этих случаях может быть
полезным не отказываться полностью от продолжения перебора,
а «отсечь» часть ветвей дерева, построенного к этому моменту
в процессе перебора, освободив тем самым пространство па-
мяти, необходимое для углубления перебора.
Такой процесс перебора может осуществляться этапами, ко-
торые отделяются друг от друга операциями отсечения дерева,
необходимыми для освобождения памяти. В конце каждого
этапа удерживается некоторое подмножество открытых вершин,
например вершины с наименьшими значениями Д Наилучшие
пути к этим вершинам запоминаются, а остальная часть дерева
отбрасывается. Затем начинается перебор снова, уже от этих
«лучших» открытых вершин. Этот процесс продолжается до тех
пор, пока либо будет найдена целевая вершина, либо будут ис-
черпаны все ресурсы. Ясно, что даже если на каждом этапе
используется алгоритм А*, то хотя весь процесс заканчивается
построением некоторого пути, тем не менее у нас нет теперь
гарантии, что этот путь будет оптимальным.
Ограничение числа дочерних вершин
Раньше в этой главе было отмечено, что другой путь умень-
шения объема перебора состоит в том, чтобы использовать бо-
лее информированный оператор Г, который не порождал бы
слишком много ненужных последующих вершин. В пределе
«полностью информированный» оператор Г порождал бы лишь
вершины, расположенные на оптимальном пути, снимая тем
самым полностью необходимость перебора.
Один из приемов, который может позволить снизить требуе-
мый объем перебора, состоит в том, чтобы сразу же после рас-
крытия вершины отбросить почти все дочерние вершины, оставив
лишь небольшое их число с наименьшими значениями функ-
ции /. Конечно, отброшенные вершины могут оказаться распо-
ложенными на наилучших (и даже только на наилучших) пу-
тях, так что только эксперимент может определить пригодность
такого метода отсечения ветвей графа для конкретных задач.
Существуют также задачи перебора, в которых все вершины,
непосредственно следующие за некоторой, могут быть перечи-
слены и значения /г для них могут быть подсчитаны еще до по-
строения соответствующих описаний состояний в явной форме.
Более того, может оказаться полезным отложить получение опи-
сания состояния, связанного с некоторой вершиной, до той поры,
когда она сама будет раскрыта. Тогда в нашем процессе ни-
когда не будут строиться излишние дочерние вершины, которые
в дальнейшем в ходе процесса так и остались бы не раскры-
тыми.
Поочередное построение дочерних вершин
Когда вершины, непосредственно следующие за некоторой,
вычисляются с помощью операторов в пространстве состояний,
то очевидно, что эти последующие вершины могут строиться по
отдельности и независимо друг от друга. Кроме того, суще-
ствуют случаи, когда применение всех применимых операторов
было бы очень расточительно в смысле вычислительных затрат.
Как указывалось выше, более информированный оператор Г
выделял бы несколько наиболее перспективных операторов и
строилЛ5ы только те последующие вершины, которые возникают
в результате их применения. Более гибкий подход состоит в том,
чтобы сначала допускать применение самого перспективного
оператора (что приведет к одной последующей вершине), остав-
ляя в дальнейшем возможность в процессе перебора построить
и другие вершины, непосредственно следующие за данной. Для
того чтобы воспользоваться этой идеей вместе с оценочными
функциями для упорядочения вершин, в алгоритм упорядо-
ченного перебора следует внести соответствующие изменения.
3.13. КРИТЕРИИ КАЧЕСТВА РАБОТЫ МЕТОДОВ ПЕРЕБОРА
Эвристическая сила того или иного метода перебора в зна-
чительной степени зависит от специфических черт, характерных
для данной задачи, и определение этой силы — скорее вопрос
опыта,, чем вычислений. Тем не менее существуют некоторые
критерии работы, которые могут быть вычислены, и хотя эти
критерии не дают исчерпывающей оценки эвристической силы,
они оказываются полезными при сравнении различных методов
перебора.
Один из таких критериев называется целенаправленностью.
Целенаправленность Р перебора позволяет узнать, в какой мере
перебор идет в направлении цели, а не ведется по нежелатель-
ным направлениям. Она просто определяется как
Р = 1_
Т ’
где Ь — длина найденного пути до цели, а Т — общее число вер-
шин, построенных в течение перебора (включая целевую вер-
шину, но исключая начальную вершину). Например, если опе-
ратор Г, с помощью которого строятся последующие вершины,
настолько точен, что строятся только вершины, лежащие на
пути к цели, то для него величина Р достигает своего макси-
мума, равного 1. Перебор в слепую характеризуется малыми
величинами Р. Таким образом, целенаправленность показывает,
насколько дерево, построенное при переборе, вытянуто, а не
кустисто.
'Значения величин целенаправленности для некоторых при-
меров перебора, использованных в настоящей главе, приведены
в табл. 3.1.
Величина целенаправленности перебора зависит как от труд-
ности задачи, для которой производится этот перебор, так и от
эффективности метода перебора. Для данного метода перебора
целенаправленность может быть велика при коротком оптималь-
ном решающем пути и мала, если этот путь оказывается
длинным. (Как правило, увеличение длины пути решения Ь при-
водит к тому, что Т увеличивается еще быстрее.)
Таблица 3.1
Целенаправленность н фактор эффективного ветвления
для различных примеров
Игра в восемь 1 Полный перебор Игра в восемь 1 |=О ТГ (я) Игра в восемь 2 (я) + 33 (я)
Целенаправлен- ность Р Фактор эффектив- ного ветвле- ния В 0,108 1,86 0,385 1,34 0,419 1,08
Другой критерий — фактор эффективного ветвления В — го-
раздо меньше зависит от длины оптимального решающего пути.
Его определение основано на представлении, о дереве, имеющем
глубину, равную длине этого пути, и общее число вершин, рав-
ное числу вершин, построенных в процессе перебора, причем у
каждой вершины этого дерева имеется в точности В дочерних
вершин. Таким образом, В связано с длиной пути Ь и общим
числом построенных вершин Т соотношениями
В + В2+ ... 4-ВА = 7’
и
-^-(5^-1) = Г.
Величина В не может быть выписана как явная функция от Ь и
Т, но на рис. 3.10 представлена диаграмма, показывающая зави-
симость В от Т при различных значениях Ь. Величина В, близ-
кая к единице, соответствует перебору, который весьма точно
направлен прямо к цели и очень мало ответвляется на другие
направления. С другой стороны, кустообразный граф перебора
характеризуется высоким значением В.
Значения В для наших примеров перебора были вычислены с
помощью диаграммы, изображенной на рис. 3.10, и приведены
вместе со значениями целенаправленности в табл. 3.1. Целена-
правленность связана с В и длиной пути формулой Р =
= Ь(В—{)/В(В1—1). На рис. 3.11 показано изменение целе-
направленности с длиной пути при различных значениях В.
В той мере, в какой В мало зависит от длины пути, эта вели-
чина может быть использована для предсказания того, сколько
вершин было бы'построено при переборе той или иной длины.
Например, из табл. 3.1 видно, что при / = §’ + /’ + 35 для игры
в восемь получается величина В, равная 1,08. Попытаемся
теперь узнать, как много вершин пришлось бы построить при
использовании той же самой функции I, решая более трудную
задачу в игре в восемь, требующую, скажем, 30 шагов. Из
Рис. 3.11. Зависимость Р от Л для различных значений
рис. 3.10 мы видим, что тридцатишаговая задача, при условии
что фактор ветвления остается неизменным, потребовала бы по-
строения около 120 вершин. (Эта оценка, между прочим,- не
противоречит экспериментальным результатам Дорана и Мичи
(1966), охватывающим больше примеров задач такого типа.)
3.14. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
Алгоритмы поиска кратчайшего пути
Алгоритмы поиска кратчайшего пути (или пути наименьшей
стоимости) между двумя вершинами графа представляют боль-
шой интерес для широкого круга дисциплин. Процедуру, на-
званную нами методом равных цен, впервые описал Дийкстра
(1959). Подобный метод полного перебора предлагался также
Муром (1959). Алгоритмы динамического программирования
Беллмана по существу также являются методами полного пере-
бора. Подробное изложение динамического программирования
содержится в книге Беллмана и Дрейфуса (1962). Процедура
перебора на заданную глубину часто называется программиро-
ванием с обратным слежением (ЬаскДгаск рго^гатпйп^); она
описана Голомбом и Бомертом (1965). Стюарт Дрейфус (1969)
дает подробный обзор этих и других методов поиска на графах.
Эвристические приемы поиска
Вопрос использования эвристической информации для уве-
личения эффективности перебора рассматривался как в области
искусственного интеллекта, так и в исследовании операций.
Вероятно, самым известным применением эвристических оценоч-
ных функций были игровые программы, в особенности програм-
ма Сэмюэля (1959, 1967) для игры в шашки. Привлечение оце-
ночных функций для придания направленности перебору на
графе было предложено Дораном и Мичи (1966) и в дальней-
шем исследовалось Дораном (1968) и Мичи и Россом (1970).
Наши примеры игры в восемь основаны на примерах Дорана и
Мичи. Общая теория использования оценочных функций для
ведения перебора была дана в статье Харта, Нильсона и Рафа-
эля (1968); приведенное нами описание алгоритма упорядочен-
ного псшска и его свойств базируется на этой статье.
В методах ветвей и границ из области исследования опера-
ций мы также находим привлечение оценочных функций для
направления перебора к цели. Их описание можно найти в об-
зорной статье Лолера и Вуда (1966). Метод ветвей и границ,,
предложенный Шапиро (1966) для задачи о коммивояжере, мо-
жет быть также интерпретирован как прямое применение алго-
ритма А*.
Наш анализ, подтверждающий важность включения функции
(точно так же, как и функции /г) в оценочную функцию, взят
из диссертации Поля (1969). (См. также Поль, 1970.) Поль
(1969) рассмотрел также проблему построения перебора как из
начальной, так и из целевой вершины. В особенности здесь ин-
тересно его подробное рассмотрение более сложных критериев
остановки, необходимых при двунаправленном переборе.
Прерывание хода процесса перебора этапами отсечения вет-
вей дерева (для очищения требуемой памяти) было исследовано
Дораном и Мичи (1966) и Дораном (1967).
Критерии качества работы
Доран и Мичи (1966) предложили целенаправленность как
критерий эффективности данного поиска. Слейджл и Диксон
11969) предложили иную меру, которую они назвали «глубинное
отношение». Наше «эффективное ветвление» было навеяно этими
двумя введенными раньше мерами эффективности.
Задачи
3.1. Рассмотрите представление в пространстве состояний дли задачи
о коммивояжере, описанной в разд. 2.6. Предложите по крайней мере две
функции Н (Н й 0), являющиеси нижией границей для А. Какая из этих функ-
ций, по вашему мнению, приведет к более эффективному перебору? Приме-
ните алгоритм А* с такими функциями к задаче о коммивояжере для 5 горо-
дов, которая показана на рис. 2.4.
3.2. На рис. 2.4 укажите, пользуясь подходом, основанным на пространстве
состояний, путь максимальной протяженности, который начинается в А, про-
ходит через каждый другой город не более одного раза и возвращается в А.
Выберите представление в пространстве состояний и изобразите часть графа
в пространстве состояний с вершинами и стоимостями дуг, снабженными
соответствующими пометками, и укажите иа этом графе оптимальный путь от
начальной вершины к целевой.
3.3. Рассмотрите возможные достоинства следующей стратегии перебора
в пространстве состояний: любым удобным методом получить некоторый путь
к цели и его стоимость С. Эта стоимость не обязательно минимальна, но она
дает некоторую верхнюю границу для минимальной стоимости. Теперь вос-
пользуйтесь алгоритмом А* с некоторой функцией Л, гарантирующей допусти-
мость, 1: сразу же отбросьте те полученные открытые вершины, значения ? для
которых больше, чем С. Является ли эта модифицированная стратегия допу-
стимой? Означает ли факт возможного отбрасывания некоторых из открытых
вершин в этом алгоритме, что число вершин, которые будут раскрыты, может
оказаться меньше? Уменьшаются ли при этом требования к памяти в целом?
3.4. Предположим, что Н — нижияя граница для Л. Докажите, что если
алгоритм А* когда-либо раскроет вершину, для которой ?(п) = /(а), то или
вершина п была на оптимальном пути, или непосредственно перед раскрытием
в списке ОТКРЫТ и на оптимальном пути была- такая вершина т, что
/(«) =1(т) = /(а).
3.5. Пусть «1, п2> . •., Пк — последовательность вершии, раскрытых алго-
ритмом А*. Докажите, что если И удовлетворяет предположению о непротиво-
речивости (разд. 3.9), то /!(п1) /(П1+1) для любого 1 I < к — 1.
*3.6. Используя наиболее развитые представления для задачи, о миссионе-
рах и людоедах, данные Амарелем (1968), напишите программу, которая на-
ходит решение с минимальным числом ходов дли любого числа п миссионеров
и людоедов и для любой вместимости лодки к.
*3.7. Напишите программу для вычислительной машины, в которой алго-
ритм А* используется для преобразования произвольного расположения в за-
даче о скользящих прямоугольниках в конфигурацию вида
если такое преобразование возможно в принципе.
Глава 4
ПРЕДСТАВЛЕНИЯ, ДОПУСКАЮЩИЕ СВЕДЕНИЕ
ЗАДАЧ К ПОДЗАДАЧАМ
4.1. ПРИМЕР ПРЕДСТАВЛЕНИЯ, ДАЮЩЕГО СВЕДЕНИЕ ЗАДАЧИ
К ПОДЗАДАЧАМ
В этой главе мы исследуем иной подход к решению задач,
основанный на сведении задачи к подзадачам. Идея такого под-
хода состоит «в размышлении в обратном направлении» от за-
дачи, которую предстоит решить, с тем чтобы выделить
подзадачи, подподзадачи и т. д., пока, наконец, первоначальная
задача не будет сведена к набору тривиальных элементарных
задач.
Для того чтобы показать, как можно решать задачу методом
сведения к подзадачам, мы воспользуемся еще одной голово-
ломкой. Один йз вариантов задачи о пирамидке (ханойской
башне) можно сформулировать следующим образом:
Имеется три колышка 1, 2 и 3 и три различных диска А, В и
С. У дисков в центре имеется отверстие, так что их можно наде-
вать на колышки. Сначала все диски расположены на первом
Рис. 4.1. Задача о пирамидке (слева — начальное положение, справа — це-
левое).
колышке, больший диск С внизу, а меньший диск А — вверху.
Требуется переместить все диски на третий колышек, двигая их
уо очереди. Перемещать можно всегда только верхний диск,
причем нельзя никакой диск помещать выше меньшего. Началь-
ное и целевое расположения показаны на рис. 4.1.
Конечно, эта задача может быть решена методами, исполь-
зующими пространство состояний. Действительно, на рис. 4.2
показано полное пространство состояний для этой задачи1).
Граф имеет 27 вершин, каждая из которых представляет одно
из допустимых расположений дисков на колышках. Обозначе-
ние (Ц1г) у каждой вершины графа описывает такое состояние,
>) Этот граф был предложен Дж. Маккарти (частное сообщение).
когда диск С (наибольший) находится на колышке I, диск В —
на колышке /, а диск А (самый маленький)—на колышке к.
Если на одном и том же колышке находится более одного диска,
то всегда предполагается, что самый большой находится внизу
и т. д. Дуги, связывающие между собой пары вершин графа,
означают, что некоторый диск может быть, переложен так, что
Р и с. 4.2. Граф для задачи о пирамидке.
конфигураций, представляемая одной из вершин пары, изме-
нится на конфигурацию, представляемую другой вершиной. На-
пример, дуга, идущая от (113) к (123), означает, что (113) мо-
жно изменить на (123) посредством перекладывания диска В
с колышка 1 на колышек 2. Это действие отражается надписью
«Переложить (В, 1,2)» у этой, дуги. (Путь, выделенный жир-
ными линиями на этом графе, представляет собой решение за-
дачи.)
Задачу о пирамидке можно решить также простым методом
сведения задачи к подзадачам. Один из путей сведения исход-
ной задачи о пирамидке, изображенной на рис. 4.1, к совокуп-
ности более простых задач связан со следующей цепочкой рас-
суждений:
1. Для того чтобы переложить все диски на колышек 3, мы,
конечно, должны переложить на этот колышек диск С, причем
в момент, непосредственно предшествующий перекладыванию
диска С на колышек 3, последний должен быть свободным.
2. Теперь, рассматривая исходную конфигурацию, мы видим,
что диск С вообще нельзя никуда переложить, пока с этого ко-
лышка не будут сняты диски А и В. Кроме того, диски А и В
лучше не размещать на колышке 3, так как тогда у нас не буд^т
возможности поместить там диск С. Таким образом, прежде
всего мы должны перенести диски А и В на колышек 2.
3. Затем можно сделать наш основной шаг, переложив диск
С с колышка Г на 3, и перейти к решению оставшейся задачи.
Мы видим, что эти рассуждения позволяют свести исходную
задачу к следующим трем задачам:
1. Задача с двумя дисками о перемещении дисков А и В на
колышек 2:
2. Задача с одним диском о перемещении диска С на колы-
шек 3:
(122)
12 3
(322)
3. Задача с двумя дисками о перемещении дисков А и В на
колышек 3:
(322) ’
. (ЗЯ) .
Элементарная Элементарная' Элементарная Элементарная Элементарная Элементарная
Рис. 4.3. Граф подзадач, сводящий задачу о пирамидке к совокупности элементарных одношаговых задач.
Каждая из этих трех полученных задач меньше, а следователь-
но, и должна быть легче, чем исходная задача. Действительно,
задача 2 может рассматриваться как элементарная, так как ее
решение состоит ровно из одного хода. Используя подобную це-
почку рассуждений, задачи 1 и 3 также можно свести к элемен-
тарным, как это схематически изображено на рис. 4.3. (Точно
такая же схема сведения задачи к совокупности подзадач мо-
жет быть применена и в случае, когда начальная конфигурация
содержит произвольное число дисков.)
Графовая структура рис. 4.3 носит название «И/ИЛИ» графа
(или графа подзадач); она полезна для иллюстрации решений,
получаемых методом сведения задачи к подзадачам. В этой и
следующей главах мы подробно рассмотрим различные приме-
нения метода сведения задачи к подзадачам. Методы сведения
задачи к подзадачам нашли применение к широкому кругу про-
блем, включая задачу получения выражения, которое было бы
интегралом от некоторой функции, и задачу доказательства тео-
рем планиметрии. Мы увидим также, что эти методы полностью
аналогичны методам, используемым для вычисления наилучше-
го следующего хода в таких играх, как шашки или шахматы.
4.2. ОПИСАНИЕ ЗАДАЧ
В подходе, основанном на сведении задачи к подзадачам,
используются операторы, которые преобразуют описания задач
в описания подзадач. Имеется большое число форм описаний
задачи. Для этой цели опять могут быть использованы списки,
деревья, строки, векторы, массивы и другие формы. В задаче
о пирамидке описание подзадач может быть сделано в виде
списка, содержащего два списка. Так, описание задачи [(113),
(333)] означает: «Преобразовать расположение (113) в распо-
ложение (333)».
Часто удобно описывать задачу на языке элементов пред-
ставления в пространстве состояний. Мы. видели, что любая
задача поиска в пространстве состояний может быть представ-
лена как совокупность трех составляющих:
1. Множество 5 начальных состояний.
2. Множество Р операторов, отображающих описания состоя-
ний в описания состояний.
3. Множество О целевых состояний.
Тогда тройка (5, Р, О) определяет задачу, и она может быть
использована как описание задачи. В задаче о пирамидке мы
использовали именно это обозначение, хотя, поскольку мно-
жество Р операторов в пространстве состояний предполагалось
одним и тем же для всех задач, в описаниях задачи оно в явном
виде не присутствовало.
После того как задачи и подзадачи описаны в виде троек
(5, Р, О), естественно рассматривать эти подзадачи как задачи
нахождения пути между определенными состояниями-вехами в
пространстве состояний. Например, в задаче о пирамидке под-
задачи [(111) ф (122)], [(122) ф (322)] и [(322) Ф (333)] опреде-
ляют такие состояния-вехи (122) и (322), которые обладают
тем свойством, что через них пройдет и окончательный решаю-
щий путь.
То обстоятельство, что в подходе, связанном с сведением за-
дачи к подзадачам,, используются понятия состояний, операто-
ров и целей при описании подзадач, само по себе еще не озна-'
чает, что этот подход и подход с использованием пространства
состояний по существу совпадают. На самом деле, как мы уже
отмечали, последовательный перебор в пространстве состоя-
ний— это тривиальный случай сведения задачи к подзадачам;
по этой причине подход, связанный со сведением задачи к сово-
купности подзадач, можно рассматривать как более общий метод
решения, чем последовательный перебор в пространстве состоя-
ний. Можно было бы также рассматривать подход, основанный
на сведении задачи к подзадачам, просто как способ перечисле-
ния отдельных этапов поиска подпутей между предполагаемыми
состояниями-вехами в пространстве состояний и управления
процессом компоновки подпутей в полные решения.
4.3. ОПЕРАТОРЫ СВЕДЕНИЯ ЗАДАЧИ К ПОДЗАДАЧАМ
Оператор сведения задачи к подзадачам преобразует описа-
ние задачи во множество результирующих, или дочерних, описа-
ний задач. Это преобразование таково, что решение всех дочер-
них задач обеспечивает решение исходной родительской задачи.
Когда множество дочерних задач состоит из одного элемента,
мы имеем простейший случай замены одной задачи "другой, ей
эквивалентной.
Для данного описания задачи может существовать много
операторов сведения, каждьГй из которых применим. Примене-
ние каждого такого оператора порождает альтернативные мно-
жества подзадач. Некоторые из этих подзадач могут оказаться
неразрешимыми, так что нам придется перепробовать несколько
операторов, чтобы построить такое множество, все члены кото-
рого разрешимы. Таким образом, снова возникает задача пере-
бора.
Один класс задач связан с доказательством *) того, что опре-
деленные утверждения истинны. Пусть 5 — утверждение, истин-
') В этой главе наше обсуждение доказательств будет носить совершенно
неформальный характер. В последующих главах предмет доказательства и его
роль в решении задач будут рассмотрены более строго.
ность которого мы хотим доказать, а Т — множество посылок,
который предполагаются верными. Тогда под 51Т (читается «5
при данном Т») мы будем понимать задачу доказательства
утверждения 5, исходя из посылок Т. Общая схема для сведе-
ния к подзадачам задач такого вида, состоит в том, чтобы вве-
сти в исходную задачу новые посылки, а затем сформулировать
дополнительные задачи на доказательство этих новых посылок.
Так, при редукции задачи 5|Т мы добавляем, скажем, посы-
лок и получаем следующее множество результирующих задач:
5 | Г, Х2, ..., Х„
Х}\Т, Х2, Хы
*ы\Т
где Х1, Х2, ..., Хх — это п добавочных посылок. Часто этот опе-
ратор редукции задачи применяется так, чтобы в каждый мо-
мент времени добавлялась лишь одна посылка. Тогда 51Т сво-
дится к множеству 5|Х, Т и Х|Т.
Символы посылок Хи ..., Хя можно было бы рассматривать
как переменные, принимающие значения из некоторого множе-
ства посылок. Тогда каждое возможное значение этих перемен-
ных соответствовало бы применению отдельного оператора све-
дения задачи. Этим переменным могут быть сразу же приданы
определенные значения в виде конкретных посылок (содержа-
щих, возможно, новые переменные), но вместо этого их можно
оставить в виде переменных, имея в виду, что конкретные зна-
чения могут быть им приданы в процессе дальнейшего сведе-
ния. Позже мы рассмотрим некоторые из предлагаемых подхо-
дов к выбору конкретных значений для посылок. Часто нам
будет нужно в качестве частных значений выбрать более чем
одно множество посылок, так что наше доказательство может
вернуться назад и. пойти по другим альтернативным направле-
ниям.
4.4. ОПИСАНИЯ ЭЛЕМЕНТАРНЫХ ЗАДАЧ
Конечная цель всякого рода сведений задачи к подзадачам
состоит в получении таких элементарных задач, решения кото-
рых очевидны. Этими задачами могут быть как задачи, решаю-
щиеся за один шаг перебора в пространстве состояний, так и
другие более сложные задачи, имеющие известные нам реше-
ния. Кроме того, что эти элементарные задачи играют очевид-
ную роль в остановке процесса перебора, иногда они исполь-
зуются для ограничения процесса построения альтернативных
множеств результирующих -задач в течение процесса сведения
задачи. Это ограничение возникает вследствие того, что одна
или более из этих результирующих задач оказываются принад-
лежащими определенному подклассу элементарных задач.
4.5. <И/ИЛИ» ГРАФЫ
Для изображения расчленения задачи на альтернативные
множества результирующих задач удобно воспользоваться гра-
фоподобной структурой. Так, предположим, что задача А может
быть решена либо путем решения задач В и С, либо путем ре-
шения задач В и Е, либо путем решения задачи Е. Это соотно-
шение изображается структурой иа рис. 4.4. В вершинах струк-
туры указаны те задачи, которые они представляют.
Рис. 4.4. Структура, показы-
вающая различные множе-
ства подзадач для А.
Рис. 4.5. «И/ИЛИ» граф.
Задачи В и С составляют одно множество результирующих
задач, задачи В и Е— другое, а задача Е— третье. Вершины,
соответствующие одному множеству, помечены специальным
значком, связывающим подходящие к ним дуги.
В структуру обычно вводятся некоторые дополнительные вер-
шины, так чтобы каждое множество, содержащее более одной
результирующей задачи, группировалось под своей собственной
родительской вершиной. При этом структура на рис. 4.4 преоб-
разуется в структуру, изображенную на рис. 4.5. На этом
рисунке добавленные вершины М и М служат отдельными роди-
тельскими вершинами для множеств {В, С} и {В, В} соответ-
ственно. Если считать, что вершины Ы и М играют роль описа-
ний задач, то мы видим, что задача А сведена к одиночным
альтернативным подзадачам №, М или Е. По этой причине вер-
шины, помеченные IV, М и Е, называются «ИЛИ» вершинами.
Задача /V сводится к одному множеству подзадач В и С, причем
обе они должны быть решены, чтрбы была решена задача М.
По этой причине вершины, помеченные В и С, называются «И»
вершинами. Вершины типа «И» выделяются отметкой, сделан-
ной на идущих к ним дугах.
Структуры, подобные той, что изображена на рис. 4.5, назы-
ваются «И/ИЛИ» графами. Если некоторая вершина «И/ИЛИ»
графа имеет непосредственно следующие за ней вершины, то
либо все они являются «ИЛИ» вершинами, либо все они — «И»
вершины. (Если у некоторой вершины имеется ровно одна не-
посредственно следующая за ней вершина, то ее можно считать
как «И» вершиной, так и «ИЛИ» вершиной.)
Заметим, что в частном случае, когда вершин типа «И» во-
обще нет, мы получаем обычный граф того типа, который появ-
лялся при переборе в пространстве состояний. Но из-за наличия
вершин типа «И» в «И/ИЛИ» графах эти структуры существен-
но отличаются от обычных графовых структур. Для них тре-
буются свои собственные специализированные приемы поиска,
что и служит главной причиной, по которой мы делаем разли-
чие между двумя подходами к решению задач.
При описании «И/ИЛИ» графов мы будем продолжать поль-
зоваться такими терминами, как родительские вершины, верши-
ны, непосредственно следующие за данной (дочерние), дуга, со-
единяющая две вершины, и т. д., придавая им очевидный смысл.
На языке «И/ИЛИ» графов применение одиночного оператора
сведения задачи к подзадачам к некоторому описанию
задачи обычно будет означать, что по очереди сначала будет
построена промежуточная «ИЛИ» вершина, а затем непосред-
ственно следующие за ней «И» вершины. (Исключение состав-
ляет случай, когда множество подзадач состоит из одного эле-
мента. В этом случае образуется ровно одна вершина, а имен-
но «ИЛИ» вершина.)
Таким образом, подходящей структурой, моделирующей ме-
тод расчленения задачи на подзадачи, является граф типа
«И/ИЛИ». Одна из вершин этого графа, называемая начальной
вершиной, соответствует описанию исходной задачи. Те верши-
ны графа, которые соответствуют описаниям элементарных за-
дач, называются заключительными вершинами.
Цель процесса поиска, осуществляемого иа «И/ИЛИ» гра-
фе, — показать, что начальная вершина разрешима. Общее оп-
ределение разрешимости вершины в «И/ИЛИ» графе можно
сформулировать рекурсивно следующим образом:
Заключительные вершины разрешимы (так как они соответ-
ствуют элементарным задачам).
Если у вершины, не являющейся заключительной, непосред-
ственно следующие за ней вершины оказались вершинами
«ИЛИ», то она разрешима тогда и только тогда, когда раз-
решима по крайней мере одна из этих вершин.
Если у вершины, не являющейся заключительной, непосред-
ственно следующие за ней вершины оказались вершинами
«И», то она разрешима тогда и только тогда, когда разре-
шима каждая из этих вершин.
Тогда решающий граф определяется как подграф из разре-
шимых вершин, который показывает (в соответствии с приве-
денным определением), что начальная вершина разрешима.
в
Рис. 4.6. Некоторые примеры «И/ИЛИ» графов и решающих графов. Для
графа (б) имеется более одного решения.
На рис. 4.6 приведены примеры «И/ИЛИ» графов. Заключи-
тельные вершины обозначены буквой I, разрешимые вершины
изображены черными кружочками, а решающие графы выде*
лены жирными линиями.
Если у некоторой вершины «И/ИЛИ» графа, не являющейся
заключительной вершиной, вовсе нет следующих за ней вершин,
то мы говорим, что такая вершина неразрешима. Появление та-
ких неразрешимых вершин может означать, что и другие вер-
шины графа (и даже начальная вершина) могут оказаться не-
разрешимыми. Общее определение неразрешимой вершины
дается рекурсивно следующим образом:
Вершины, не являющиеся заключительными и не имеющие
следующих за ними вершин, неразрешимы.
Если у вершины, не являющейся заключительной, непосред-
ственно следующие за ней вершины оказались вершинами
' «ИЛИ», то она неразрешима тогда и только тогда, когда
неразрешима каждая из этих вершин.
Если у вершины, не являющейся заключительной, непосред-
ственно следующие за ней вершины оказались вершинами
«И», то она неразрешима тогда и только тогда, когда не-
разрешима по крайней мере одна из этих «И» вершин.
На рис. 4.6 неразрешимые вершины отмечены незачерненны-
ми кружочками.
Показанные на рис. 4.6 «И/ИЛИ» графы заданы в явной
форме. Точно так же, как в случае решения задач в простран-
стве состояний, редко .случается, чтобы граф, на котором дол-
жен осуществляться перебор, задавался в явной форме. Как
правило, такой граф определен неявно посредством описания
исходной задачи и операторов редукции задачи. Удобно ввести
оператор Г построения непосредственно следующих (дочерних)
вершин, который, будучи примененным к описанию задачи, по-
рождает все множества следующих из него описаний задач.
(Применение оператора Г означает применение всех примени-
мых операторов сведения задачи к подзадачам.) Так, в случае
рис. 4.5 применение оператора Г к алгоритму А образует всю
ту структуру «И/ИЛИ» графа, которая изображена на рисунке.
Процесс решения задачи тогда состоит в том, чтобы по-
строить достаточную часть этого «И/ИЛИ» графа, из которой
было бы видно, что начальная вершина разрешима. Мы отло-
жим до следующей главы рассмотрение эффективных методов
поиска.
4.6. ПРЕДСТАВЛЕНИЕ «И/ИЛИ» ГРАФОВ С ПОМОЩЬЮ
НЕДЕТЕРМИНИРОВАННЫХ ПРОГРАММ1)
Мы можем ввести некоторые дополнительные элементы не-
детерминированных программ, с тем чтобы эти программы мож-
но было использовать для представления процесса построения
«И/ИЛИ» графа. По аналогии с оператором присваивания
ВЫБОР (в котором программная переменная принимается рав-
ной любому элементу некоторого множества) мы можем опре-
делить оператор присваивания ВСЕ. В последнем программная
переменная принимается равной всем элементам некоторого
') При первом чтении этот раздел можно опустить.
множества. (Представьте себе, что вычисление после оператора
ВСЕ разветвляется на множество фиктивных параллельных про?
цессов, в каждом из которых в качестве значения программной
переменной берется своя величина.)
Рис. 4.7. Недетерминированная программа,
определяющая «И/ИЛИ» граф.
ИСХОДНОЕ ПОЛОЖЕНИЕ: Программная
переменная у (принимающая значения из
области описаний задач) полагается равной
входной структуре данных х, описывающей
задачу.
ВЫБОР: Значение программной переменной V
(принимающей значения нз области множеств
описаний задач) полагается равным некото-
рому элементу множества Г (у) множеств
дочерних вершин для прежнего значения у.
ВСЕ: Новое значение у принимается равным
всем элементам множества У.
На рис. 4.7 изображена блок-схема недетерминированной
программы, определяющей «И/ИЛИ» граф. Для простоты здесь
опущены условия окончания, но они состояли бы в.совершенно
очевидных проверках, разрешимы вершины или неразрешимы.
В общем случае оператор ВСЕ обозначается на блок-схемах
следующим образом:
I
У - ВСЕ (Г(*,у)}
I
Структура данных х служит входом «в эту программу, структура
данных у — программной переменной, а функция Е представ-
ляет собой функцию, отображающую прямое произведение об-
ластей изменения х и у в некоторое подмножество области из-
менения у. Снова для обозначения этого подмножества мы бу-
дем пользоваться символом {Е}; операция у-«-ВСЕ {Е} делает
новые значения программной переменной у равными всем чле-
нам множества {У7}.
Мы также вводим обозначение Л-ветвления. Это ветвление
на п направлений, в котором используется п предикатов
Р1(х,у), рп(х,у). Эти предикаты имеют значение Т (исти-
на) или Г (ложь) на той области, которая является прямым
произведением областей изменения х и у. (Снова х — входная
структура данных, а у — программная переменная.) Значение
хотя бы одного из этих предикатов должно быть Т. Каждый
предикат соответствует некоторой ветви, и выбираются все те
ветви, соответствующие предикаты которых имеют значения Т.
(Представьте себе опять фиктивные параллельные процессоры,
начинающие работать на каждой из выбранных ветвей.) На
блок-схемах Л-ветвления изображаются так:
И опять, обычные детерминированные ветвления являются
частными случаями Л-ветвлений. Точно так же, когда значе-
нием функции Р(х, у) является один элемент, операторы ВЫ-
БОР, ВСЕ и обычные детерминированные операторы совпа-
дают.
При конкретном осуществлении недетерминированной про-
граммы делается один определенный выбор в V-ветвлениях и
операторах ВЫБОР и производятся все возможные выборы в
Л-вет-влениях и операторах ВСЕ. Множество всех возможных
конкретных реализаций определяет некоторое «И/ИЛИ» дерево.
В данной реализации содержится много путей (ветвления на
А-ветвлениях и операторах ВСЕ). Ее выполнение завершается,
если завершается каждый из ее путей. Если для любого входа
существует по крайней мере одна завершающая реализация, то
говорят, что эта программа правильно определена.
Использование всех этих недетерминированных (и детерми-
нированных) элементов дает возможность применять для опи-
сания задач недетерминированные программы. Как пример рас-
смотрим задачу, о восьми ферзях. В этой задаче требуется на
обычной шахматной доске расставить восемь ферзей так, чтобы
ни один из них не находился под ударом других ферзей. Неде-
терминированная блок-схема программы для этой задачи пока-
зана на рис. 4.8. На этой блок-схеме Г{ и представляют собой
координаты г-го ферзя по горизонтали и по вертикали соответ-
Р и с. 4.8. Недетерминированная
программа для задачи о восьми ферзях.
ственно. Предикат «побить ((п, с^), (г,, ц))» имеет значение Т
лишь тогда, когда 1-й ферзь с координатами (г,-, сг) может по*
бить /’-го ферзя с координатами (г>, с^).
4.7. ПРИМЕРЫ СВЕДЕНИЯ, ЗАДАЧИ К СОВОКУПНОСТИ ПОДЗАДАЧ
Задача Символического интегрирования
В задаче символического интегрирования мы хотим иметь
автоматический процесс, который будет воспринимать в каче-
стве входной величины любой неопределенный интеграл, ска-
жем | х81пЗхс0с, и выдавать на выходе ответ: (1/9)з1пЗх—
— (1/Зх)созЗх. Мы будем считать, что в нашем распоряжении
имеется таблица таких простых интегралов, как
| 51П и йи = — соз и, | аа йи —и т. д.
Тогда любая задача символического интегрирования может
быть представлена как задача преобразования данного интегра-
ла в выражения, содержащие лишь табличные интегралы. Для
простоты мы будем описывать задачу интегрирования функции
7(х) по к выражением 11(х)(1х.
Описания элементарных задач даются просто табличными
интегралами. Мы видим, что каждая из формул на самом деле
является схемой, определяющей бесконечное множество элемен-
тарных задач. Члены этого множества получаются путем под-
становки выражений вместо переменных, содержащихся в этих
формулах. Для того чтобы определить, является ли данный ин-
теграл примером некоторой элементарной формулы, нужно при-
менить оператор сведения, который отыскивает те подстановки,
после которых интеграл и формула совпадают.
Операторы сведения задачи к подзадачам могут быть осно-
ваны на правиле интегрирования по частям, на правиле инте-
грирования суммы функций и других правилах преобразования,
таких, как правила, содержащие алгебраические и тригономет-
рические подстановки. Правило интегрирования по частям имеет
вид
и^ — и (IV — | о йи.
Это правило мы можем использовать для оправдания сле-
дующего сведения задачи к подзадачам:
Заметим, что это сведение означает всего лишь, что задача
и йо может быть решена, если мы можем решить задачи
| йо и | V йи. Соотношение | и (IV = и | (IV — | V йи может
быть в дальнейшем использовано для построения действи-
тельного решения. Если имеется несколько возможных спо-
собов разбиения исходного подинтегрального выражения на ча-
сти, соответствующие и и йо, то каждой такой возможности ста-
вится в соответствие отдельный оператор редукции задачи.
Согласно правилу интегрирования суммы функций, имеем
п п
(х) йх =11}(х)(1х.
«-=1 Ь=1
Это правило служит оправданием следующего сведения задачи
к подзадачам:
Другое правило, называемое правилом вынесения постоян-
ного множителя за знак интеграла, позволяет заменить задачу
1$(х)(1х задачей |/(х)йх. Таким образом, получаем такой
сведение задачи
$М\х) их
I
их
Остальные . операторы просто осуществляют подстановку
одного интегрального выражения в другое и, таким образом,
порождают «ИЛИ» вершины. Эти операторы основаны на еле-»
дующих процессах:
Алгебраические подстановки
Пример
Г хМх97--> [1(2в-423 + 4)</г, г2 = (2 + Зх)2/3,
(2 + Зх)2/3 •> 9
Тригонометрические подстановки
Пример
Г---7=^===^ -► Г с1§ 0 созес 0 й0, х = 4 0.
; х2 /25х2 + 16 •< 16 6 5
Деление числителя на знаменатель
Пример
I г2 +1 I (г2 — 1 + 1 + г2) йг‘
Дополнение до полного квадрата
Пример
Г Лх Г Лх
] (х2 - 4х + 13)2 ] [(х - 2)2 + 9]2 •
На каждой данной стадии процесса мы располагаем мно-
гими альтернативными операторами редукции задачи, которые
могли бы быть применены. Если для каждой задачи мы будем
использовать все эти приложимые альтернативы, то результи-
рующая задача перебора очень быстро станет невообразимо
громоздкой. В такого типа задачах весьма существенно при-
влечь эвристические соображения, которые позволили бы огра-
ничить число порождаемых вершин.
В указанной задаче интегрирования некоторые операторы
редукции оказываются настолько полезными, что они (н только
они) должны быть использованы во всех случаях, когда они
применимы. Так, сведения задачи, соответствующие интегриро-
ванию суммы и вынесению множителя, используются всегда,
когда это оказывается возможным.
Полезность других правил и операторов, таких, как триго-
нометрические подстановки, сильно зависит от вида подинте-
грального выражения. В одной системе символического инте-
грирования (Слейджл, 1963а), для которой была написана про-
грамма, все подинтегральные выражения были подвергнуты
классификации по тем характеристикам, которыми они обла-
дают. Для каждого класса подинтегральных выражений выби-
рались различные операторы в соответствии с их эвристической
применимостью.
Пример решения. На рис. 4.9 показан «И/ИЛИ» граф
перебора, образованный в результате процесса, подобного
рассмотренному выше1)- Задача состоит в интегрировании вы-
ражения
I {1 _ х2)5/2 ах-
Вершины графа — это описания задач, и в каждой из них
указан интеграл. Заключительные вершины (соответствующие
Начальная
вершина
х - з1п у
Рис. 4.9. «И/ИЛИ» граф перебора для задачи интегрирования.
табличным интегралам) помечены двойными рамочками. Жир-
ными дугами выделен решающий граф для этой задачи. На
') Пример основан на одной задаче интегрирования, которая была ре-
шена программой Слейджла (1963а).
основании этого решающего графа и табличных интегралов
устанавливаем, что
х4
(1-х2)5/2
йх = аге 81п х + у (§3 (аге зш х) — (аге зш х)3.
До настоящего момента мы, конечно, не говорили ничего
о порядке, в котором производится сведение задачи к подзада-
чам. Этот вопрос будет освещен в следующей главе, в которой
рассматриваются методы перебора при сведении задач к сово-
купности подзадач.
Доказательство теорем в планиметрии
Доказательства теорем в планиметрии дают другой пример
задач, которые могут быть решены путем сведения к подзада-
чам. Предположим, например, что нам нужно доказать следую-
щую теорему: любая точка биссектрисы угла равноудалена от
его сторон. Пусть задача сфор-
мулирована в следующем виде:
Дано: /.ОВА = /ОВС,
АО! В А, СО! ВС, где ОД —от-
резок, /.ВСО—треугольник,
ЛВАО — треугольник.
Требуется доказать: АО =
= СО.
Читатель (но не наша система
решения задач) может обра-
титься к рис. 4.10, где приведен
чертеж, соответствующий этой
задаче. (Позже мы обсудим, ка-
ким образом система решения за-
дач также может воспользовать-
ся «чертежом».)
Мы будем представлять тако-
го типа задачи в виде выраже-
ния, имеющего форму 51Т, где
предстоит доказать, а Т — множе
Р н с. 4.10. Чертеж к рассматри
ваемому примеру геометрической
теоремы.
Дано: ^АВО=</СВО,
Ай ± ВА,
СО ± ВС.
Доказать: АО = СО.
8 — то утверждение, которое
зтво посылок. Тогда наш при-
мер описывается следующим выражением:
АО = СО / ОВА = Д ВВС, АО 1 ВА, СО 1 ВС, ОВ,
АВСО, △ ВАО.
Элементарными задачами являются задачи доказательства
утверждений, относительно которых мы хотим предположить,
что они истинны. Например, в список элементарных задач мы
могли бы включить среди других следующие задачи4):
Р1 Х.Х1 = ХХ2\ХХ1— прямой угол, ХХ2 — прямой угол
(прямые углы равны между собой);
Р2 ХЛ2 = Х1Х2
(отрезок равен самому себе);
РЗ ХХ^ ==
(угол равен самому себе);
Р4 IХД1 = КзК1, ^ВДХ2= / У3Г1Г2,
1ХХ1Х2Х3= /У1У2У3
(сторона, угол, угол = сторона, угол, угол);
Р5 ХХ^гХз — прямой | Х4Х2 ± ХгХ3
(два пересекающихся перпендикулярных отрезка определяют
прямой угол);
Р6 ХЛ == У2У31ДХ1ХЛ Д У1 У2Уз
(соответственные стороны равных треугольников равны).
В достаточно сильной программе доказательства геометри-
ческих теорем, конечно, следовало бы использовать множество
других более элементарных формул. Приведенных же нами
формул достаточно для иллюстрации процесса доказательства
нашей теоремы.
Чтобы свести задачу к подзадачам, мы введем достаточное
число новых посылок с целью сделать данную задачу частным
случаем некоторого истинного утверждения. Множество истин-
ных утверждений, пригодных для этого, могло бы быть некото-
рым подмножеством элементарных задач. Получаемыми при
этом подзадачами будут задачи доказательства новых посылок
(при условии, конечно, что даны старые посылки). Чтобы со-
кратить число различных множеств подзадач, мы потребуем,
чтобы в этих дополнительных посылках упоминались только те
элементы, которые уже встречались в первоначальных .посыл-
ках. Поскольку, как правило, будет существовать большое чис-
ло новых посылок, удовлетворяющих этим условиям, то у нас
все-таки будет очень большое число различных множеств под-
задач. Каждое из них соответствует применению отдельного
оператора редукции задачи.
Покажем, каким образом довольно простая система доказа-
тельства геометрических теорем могла бы доказать ту теорему,
которая была сформулирована в начале раздела. В этом при-
мере мы будем использовать в качестве элементарных задач
только множество {Р1, ..., Р6}, упомянутое выше. Когда мы
будем добавлять посылки с тем, чтобы сделать’ некоторое
утверждение истинным, мы будем также считать, что лишь чле-
') Как и в примере с интегрированием, выражения элементарных задач
определяются формулами.
ны указанного множества соответствуют истинным утвержде-
ниям?’
Сначала мы расчленим на 'подзадачи основную задачу
АВ = СВ\Т (где через Т мы для простоты обозначили множе-
ство всех посылок). Единственной элементарной задачей, кото-
рая может быть использована для этого путем добавления посы-
лок к Т, является Р6:
Х2Х3 = У2У31 △ Х{Х2Х3 & △ У>У2У3.
Для того чтобы эта задача нам пригодилась, нужно положить
Х2 = А, Х3 = В, У2 = С, У3 = В,
так что нам нужна посылка вида ЛХ,АВ △У,СД. Так как в Т
упоминаются только треугольники АВСВ и АВЛП, то полагаем
Х1 — В и У; = В. Таким образом, мы сводим нашу первона-
чальную задачу к задаче
△ ВЛВ^ △ВСВ|7’.
В результате редукции этой задачи (путем добавления посылок,
согласующихся с Р4) возникает такое множество подзадач:
ВВ = ВВ\Т, А ВАВ= А ВСВ, ЛВАВ=>АВСВ\Т.
Продолжая аналогичным образом этот процесс, мы прихо-
дим к решающему графу типа «И/ИЛИ», изображенному на
рис. 4.11. Из-за ограниченности запаса элементарных задач
(хорошо соответствующих нашему примеру, но недостаточных
в общем случае) в этом процессе не возникает никаких лишних
множеств вершин типа «И». Читатель мог бы посмотреть, к че-
му привело бы добавление еще нескольких элементарных задач,
таких, как
△ ХхХ2Х3 ~ △ У,У2У3
Х,Х2=У.У2, Л ВДХ3= УхУ^Хз,
Х2Х3 — У2У3 (сторона-угол-сторона).
Важным средством контроля числа порождаемых вершин в
«И/ИЛИ» графах служит использование моделей. Под мо-
делью мы здесь понимаем некоторую конкретную интерпре-
тацию общего логического утверждения. Утверждения, которые
нам предстоит доказать, часто представляют собой общие утвер-
ждения, охватывающие большое число частных случаев. Любой
из этих частных случаев мог бы использоваться в качестве мо-
дели общего утверждения. Если это общее утверждение в дей-
ствительности можно доказать, то тем более любой частный
случай, очевидно, будет истинным в соответствующей модели.
В качестве примера рассмотрим только что доказанную тео-
рему:
АВ = СП / ВВА = / ВВС, Ай 1 В А, СВ 1 ВС,
ВВ, /ХВСВ, АВАВ.
Эту задачу можно представлять себе как задачу, содержащую
определенное утверждение, которое может быть формально до-
казано посредством некоторого абстрактного процесса манипу-
лирования с символами, использующего чисто синтаксические
правила сведения задачи к совокупности подзадач. В то же
время мы можем интерпретировать ее как некоторое осмыслен-
ное утверждение о реальных точках, отрезках и т. п. на плоско-
сти. С точки зрения семантики в этом утверждении говорится,
Частный случай Р5 Частный случай Р5
Рис. 4.11. «И/ИЛИ» решающий граф для рассматриваемого доказательства
теоремы.
что независимо от действительного расположения этих точек на
плоскости, до тех пор пока справедливы указанные посылки,
длина отрезка ДР всегда будет равна длине отрезка СР. То
есть мы на самом деле могли бы измерить длины этих отрезков
и убедиться, что они равны. Конечно, прежде чем мы получим
возможность что-то измерять, мы должны взять некоторый
частный случай этих посылок и указать реальное расположение
этих точек и отрезков так, как это было сделано при построении
рис. 4.10. Такой частный пример и служит моделью нашего
утверждения.
Конечно, если утверждение вообще доказуемо, то его интер-
претация на данной модели должна быть истинной. И обратно,
если будет установлено, что некоторая интерпретация в некото-
рой модели не является истинной, то очевидно, что- это утвер-
ждение не может быть доказано. Использование модели как
«меры»' недоказуемости тех или иных возможных утверждений
часто может привести к исключению из рассмотрения большого
числа бесполезных порождаемых вершин графа.
Проиллюстрируем использование модели для задачи
АВ = ВС ВВ = АВ,^ВВС=^ВСВ,ВС,
ВС СВ, АВ, &ВАВ, А ВВС.
Мы предполагаем, что программа доказательства теорем
имеет доступ к чертежу на рис. 4.12. Эту задачу следовало бы
решать прямым путем посредством введения посылки ВС — ВВ
Рис. 4.12. Чертеж для геометрической задачи.
Дано: ВО = АВ, А ВОС = А ОСВ.
АОАВ, ЛОВС.
Доказать: АВ = ВС.
и формулировки подзадачи доказательства этой посылки. Но
прежде чем будет получено решение, в простом устройстве дока-
зательства теорем будет введена также посылка /\ВАВ^&ВВС
и сформулирована задача ее доказательства. Очевидно, что ра-
венство ДВАВ &.ВВС не может быть доказано из этих посы-
лок. Проводя несложные подсчеты на этом чертеже (рис. 4.12),
решатель этой задачи мог бы легко установить, что треуголь-
ники АВАВ и АВВС модели не равны друг другу, и таким
путем выяснить, что подзадача &.ВАВ А.ВВС неразрешима.
После этого данную подзадачу можно было бы изъять из спи-
ска «перспективных» вершин.
Обычно программу доказательства теорем нетрудно снаб-
дить моделью. Для геометрических теорем такой моделью мог
бы быть чертеж, построенный по имеющимся посылкам и соот-
ветствующим образом представленный в виде списка координат,
линий, отрезков и т. д., на основании которого могли быть
сделаны измерения с привлечением, скажем, аналитической гео-
метрии. При этом нужно позаботиться о том, чтобы расположе-
ние выбранных точек было наиболее общим, не допускающим
появления случайных совпадений, параллельностей и т. д. Заме-
тим, что если совпадения все же имеются или оказались неточ-
ными измерения, произведенные на чертеже, то нужно, чтобы
устройство доказательства теорем, использующее этот чертеж,
не могло бы даже и тогда получить доказательство для недока-
зуемого утверждения. (Чертежные ошибки могли бы привести
к попыткам доказать недоказуемые утверждения. Однако, они,
очевидно, будут безуспешными.) Ошибки могут привести также
Рис. 4.13. Пример, требующий построения вспомогательного отрезка.
Дано: ВС || АО, ВС = АО.
Доказать: АВ = СО.
к отбрасыванию ключевых доказуемых утверждений, в резуль-
тате чего доказательство может получиться более длинным, а
может и не быть найдено вовсе.
Обычно эти осложнения удается предусмотреть и в резуль-
тате получить значительное возрастание эффективности поиска
решения при использовании чертежа. Гелернтер и др. (1960)
показали, что использование чертежа в программе -доказатель-
ства геометрических теорем уменьшает в среднем число дочер-
них вершин с 1000 до 5 на одну родительскую вершину.
В программе Гелернтера имелась также возможность до-
бавлять некоторые вспомогательные линии к имеющемуся чер-
тежу. Рассмотрим, например, следующую задачу:
АВ = СО
АВСО — четырехугольник, отрезок ВС параллелен
отрезку АО, ВС —АО, АВ, СО.
Устройство доказательства теорем может обращаться к чертежу
на рис. 4.13.
При попытке построить вершины, следующие за начальной
вершиной, путем добавления посылок, наше устройство доказа-
тельства теорем не может, к сожалению, сделать попытку при-
менить такую элементарную задачу, как АВ = СО | Д АВО
= /\ВОС, поскольку треугольники &.АВО и Д.ВОС не упоми-
наются в наших посылках. Предположим, что вообще не уда-
ется найти никаких последующих вершин. Тогда при отсутствии
альтернативных подзадач, с которыми в этом случае можно ра-
ботать, наше устройство вновь обратится к тем элементарным
задачам, относительно которых прежде было принято считать,
что они неприменимы, поскольку они содержат элементы, не
упомянутые в посылках. В случае использования АВ =
= СВ\ДАВО & Д.ВОС порождается следующая «И/ИЛИ» гра-
фовая структура ниже начальной вершины:
Задачи и т. д. и ДВРС| и т. д. берутся в качестве
элементарных (три точки определяют треугольник). Результат
этой операции равносилен построению на чертеже отрезка ВИ,
образующего на нем два треугольника. После такого построе-
ния доказательство может быть продолжено обычным образом.
4.8. МЕХАНИЗМЫ ПЛАНИРОВАНИЯ ПРИ СВЕДЕНИИ ЗАДАЧ
К ПОДЗАДАЧАМ
В настоящем разделе мы опишем один метод сведения зада-
чи к совокупности подзадач, при котором задачи поиска в про-
странстве состояний сводятся последовательно к все более и бо-
лее простым, которые могут быть решены тривиально. Кроме
того, этот процесс сведения задач направляется одним из типов
механизма планирования, играющим весьма важную роль в
искусственном интеллекте.
Предположим, что задачу поиска в пространстве состояний,
определяемую тройкой (5, Р, О), нам нужно свести к совокуп-
ности более простых задач поиска в пространстве состояний.
Если бы мы могли выделить последовательность соответствую-
щих «основных промежуточных состояний» ‘) §1, §2, • ., Ви, то
мы получили бы возможность свести первоначальную задачу к
множеству задач, определяемых тройками (5, Р, {#1}),
*)’ В оригинале пн1е51опе5 — «километровые столбы». — Прим. ред.
({^1},Л {^2}), • ••> Р,С)- Решение всех этих задач эк-
вивалентно решению первоначальной задачи.
Если эти основные промежуточные состояния §2, ,
определяются явно, то безразлично, в каком порядке решаются
результирующие задачи. Иногда, однако, нам удается опреде-
лить множество 01 состояний, каждое из которых могло бы слу-
жить в качестве первого основного промежуточного состояния,
множество 62 состояний, каждое из которых могло бы служить
в качестве второго, и т. д. Тогда задача, описываемая тройкой
{5, Р, 01}, должна быть решена в первую очередь, чтобы можно
было найти конкретное состояние §1 е 01 прежде, чем будет
сформулирована следующая задача ({&]}, Р, 02), и т. д. В сле-
дующем разделе мы опишем интересный прием нахождения
этих множеств основных промежуточных состояний.
4.9. КЛЮЧЕВЫЕ ОПЕРАТОРЫ
Во многих задачах поиска в пространстве состояний нетруд-
но сообразить, как выделить по крайней мере один оператор
в пространстве состояний, который будет находиться где-то в
решающей цепочке операторов. То есть, хотя задача нахожде-
ния всей цепочки операторов в решении достаточно трудна, за-
дача выделения одного из них часто оказывается легкой. С воз-
можностью выделения одного такого оператора мы сталки-
ваемся тогда, когда по характеру задачи применение одного из
операторов рассматривается как необходимый шаг решения за-
дачи. (На графах в пространстве состояний применение такого
оператора соответствует проведению дуги, связывающей две
практически отдельные части графа.) Например, в рассмотрен-
ной задаче ю пирамидке оператор «переложить диск С на ко-
лышек 3» может быть выделен как оператор, совершенно не-
обходимый при решении задачи (см. рис. 4.2). Мы будем назы-
вать операторы такого рода ключевыми операторами.
Когда удается найти ключевой оператор, его можно исполь-
зовать для определения некоторого основного промежуточного
состояния в нашем процессе сведения задачи. Предположим,
что некоторый I из Р — ключевой оператор для задачи, зада-
ваемой тройкой (5, Р, О). Так как мы предполагаем, что опе-
ратор I должен быть применен, то первой задачей, следующей из
(5, Р, О), будет задача поиска пути к некоторому состоянию,
к которому I применим. Пусть О/ представляет собой множе-
ство состояний, к которым применим Д Тогда мы имеем подза-
дачу, описываемую тройкой (5, Р, Как только такая
подзадача решена и названо состояние § е 6/, мы можем сфор-
мулировать элементарную задачу ({#}, Р,{}(§)}), где — со-
стояние, достигающееся после применения оператора / к состоя-
нию Эта задача элементарная, так как она решается просто
путем применения ключевого оператора /. У нас остается теперь
задача, описываемая тройкой ({/(^)}, Р, О).
Таким образом, когда может'быть найден ключевой опера-
тор / в пространстве состояний, можно воспользоваться сле-
дующим способом редукции задачи:
(Мы упростили эту схему, не указав на ней элементарной под-
задачи ({^}, Р, {/(^)}).) Эти две результирующие задачи могут
быть в дальнейшем решены либо путем непосредственного пере-
бора в пространстве состояний, либо путем дальнейшего их све-
дения. Если наша стратегия состоит в том, чтобы прибегнуть
к дальнейшему сведению задач к подзадачам, то нам нужно
определить некоторый ключевой оператор для задачи (5, Р, О/)
и т. д.
В большинстве задач нам не удается всегда выделить един-
ственный ключевой оператор, про который заведомо известно,
что применение его совершенно необходимо при решении за-
дачи. Вместо этого нам удается лишь указать некоторое под-
множество операторов, таких, что один из них с достаточно
высокой степенью правдоподобия является таким существенным
оператором. Каждый оператор из э^ого подмножества образует
пару результирующих подзадач. Процесс перебора, опирающий-
ся на эту идею, приводил бы к построению графа «И/ИЛИ»
при поиске решения среди различных альтернатив.
Прежде чем у нас возникнет возможность применить этот
метод, следует для любой задачи поиска в пространстве состоя-
ний указать некоторый способ построения множества операто-
ров, которые могут быть кандидатами в ключевые. В следую-
щем разделе мы опишем один конкретный метод, основанный
на различиях (бШегепсез).
4.10. РАЗЛИЧИЯ
Один из способов нахождения операторов, которые предпо-
ложительно могут быть ключевыми, состоит в вычислении раз-
личия для данной задачи (5, Р, О). Попросту говоря, различие
для тройки (5, Р, О) это есть частичный список причин, по кото-
рым элементы множества 5 не удовлетворяют тем условиям,
которым должны удовлетворять целевые состояния (множество
6). (Если некоторый элемент множества 5 находится в О, то
наша задача решена и никакого различия нет.) Например, если
множество целевых состояний О определяется некоторой груп-
пой условий, налагаемых на состояния, и если некоторый эле-
мент 8 е5 удовлетворяет части, но не всем этим условиям, то
различием может служить частичный перечень тех условий, ко-
торым элемент я не удовлетворяет. Если эти условия могут быть
расположены в порядке их важности, то в качестве различия
можно было бы выбрать просто самое важное из них.
Далее, каждому возможному различию мы ставим в соответ-
ствие некоторый оператор (или множество операторов) в про-
странстве состояний. Это и есть операторы, которые могут быть
ключевыми. Некоторый оператор ставится в соответствие раз-
личию только в том случае, когда его применение может устра-
нить это различие. Проиллюстрируем работу этого процесса
применительно к задаче об обезьяне и бананах.
Эта задача обсуждалась нами в гл. 2 в связи с использова-
нием схем описаний состояний. Напомним, что эти схемы имели
форму («г, х, у, г), где «г — положение обезьяны в горизонталь-
ной плоскости (двумерный вектор); х равен 1 или 0 в зависи-
мости от того, находится обезьяна на ящике или нет соответ-
ственно; у — положение ящика в горизонтальной плоскости
(двумерный вектор); г равен 1 или 0 в зависимости от того, по-
лучает обезьяна бананы или нет соответственно.
Имеются четыре оператора, действия и условия применимо-
сти которых даются следующими правилами переписывания:
ста \ подойти (и)
/1 (V, 0, у, г)--------► (и, 0, у, г),
е , передвинуть (V)
12 (V, 0, «г, г)----------> (V, О, V, г),
Ста \ взобраться
Т3 (чг, О, V, г)------->(\у, 1, чг, г),
ц(с, 1, с,.О)------*(с, 1, с, 1),
где с — точка пола, расположенная прямо под бананами.
Условие выполнения поставленной цели выполняется для
описаний состояний лишь в том случае, когда последний эле-
мент в этой схеме описания состояния равен 1. Начальное со-
стояние дается списком (а, О, Ь, 0).
Если Р = {ДДгДз. М — множество из четырех операторов, а
О — множество целевых состояний, то наша исходная задача
принимает вид
({(а, 0, Ь, 0)}, Р, О).
Так как в этой задаче множество операторов остается неизмен-
ным, то символ Р можно опустить и обозначить всю задачу про,
сто как ({(а, 0, Ь, 0)}, О).
Теперь процедура сведения задачи к совокупности подзадач
с использованием понятия ключевых операторов может быть
описана следующим образом:
Прежде всего вычисляем различие для исходной задачи. Для
списка (а, О, Ь, 0) мы получаем, что он не удовлетворяет по-
ставленной цели, так как последний элемент в нем не равен 1.
Ключевой оператор (ответственный за уменьшение этого раз-
личия — это оператор [4 «схватить».
(Мы предполагаем, что связи между возможными разли-
чиями и их ключевыми операторами заданы решателю задач
с самого начала.)
Используя оператор [4 для сведения иервоначальной задачи,
мы приходим к следующей паре подзадач:
({(а, 0, Ь, 0)), О,,) и ({Ш»>0).
где О}, — множество описаний состояний, к которым применим
оператор /4 (описания состояний из области определения опера-
тора [4), а «1 —состояние в О;„ получаемое в результате реше-
ния подзадачи.
Так как прежде всего мы должны решить первую задачу из
указанной пары, то применим к ней ту же самую процедуру.
Сначала вычислим различие. Состояние, описываемое четверкой
(а, 0, Ь, 0), не входит в О{, по той причине, что
Ящик не находится в точке с.
Обезьяна не находится в точке с.
Обезьяна не на ящике.
Если теперь этот список утверждений взять в качестве разли-
чия, то мы выделяем следующие ключевые операторы:
/2 — передвинуть (с),
Д — подойти (с),
[3 — взобраться.
Далее мы по очереди применяем каждый из этих ключевых
операторов, с тем чтобы построить альтернативные пары ре-
зультирующих задач. Первый из ключевых операторов исполь-
зуется для сведения задачи ({а, 0, Ь, 0), 0^) к такой паре за-
дач:
(1.1) ({(а, 0, Ь, 0)}, О,2),
(-1.2) ({[2(8..)}, Оп),
где 8.. е 0^ получается в результате решения задачи 1.1.
Так как сначала необходимо решить задачу 1.1, то мы вы-
числяем, ее различие.
Обезьяны нет в точке Ь.
Зммеитарная Элементарная Элементарная Элементарная
Рис. 4.14. <И/ИЛИ» граф для задачи об обезьяне и бананах.
Это различие дает нам ключевой оператор
— подойти (Ь).
Затем этот ключевой оператор используется для разбиения за-
дачи ({(а, О, Ь, 0)}, Сь) на две:
(1.11) ({а, 0, Ь,0},0,,),
(1.12) ({Л(8111)},еь)..
Первая из этих задач элементарная; для нее различие равно'
нулю, поскольку (а, 0, Ь, 0) находится в области определения
оператора /1. Следовательно, можно начать работать с зада-
чей 1.12. Продолжим наше описание процесса еще на один шаг
вперед. Мы видим теперь, что Д(«ш) есть (Ь, 0, Ь, 0), так что
задача 1.12 превращается в задачу
({Ь, 0, Ь, 0), О,2).
Эта задача также элементарная, поскольку (Ь, 0, Ь, 0) нахо-
дится в области определения оператора /г- Такой процесс завер-
шения решений задач, построенных ранее, продолжается до тех
пор, пока не будет решена исходная задача.
На рис. 4.14 изображен граф типа «И/ИЛИ», дающий дерево
решения для этой задачи. Числа около вершин графа показы-
вают порядок, в котором исследовались различные задачи в
ходе описанного процесса перебора. Оказалось, что рассмотрен-
ный нами порядок привел к решению еще до того, как были
подвергнуты изучению незанумерованные задачи, но в общем
случае мог потребоваться дополнительный перебор. Анализируя
граф решения на рис. 4.14, нетрудно построить последователь-
ность операторов, решающую исходную задачу:
(подойти (Ь), передвинуть (с), взобраться, схватить).
В методе, использующем ключевые операторы, задача рас-
щепляется на части с последующим уменьшением объема необ-
ходимых поисковых усилий. (Пространство перебора в задаче
об обезьяне и бананах настолько мало, однако, что в этом слу-
чае использование ключевых операторов не дало заметного уве-
личения эффективности.) Для того же, чтобы воспользоваться
ключевыми операторами, решателю задач должна быть сооб-
щена процедура вычисления различий и процедура, позволяю-
щая связывать с ними ключевые операторы. Возможность уста-
новления хороших связей между различиями и операторами
сильно зависит от конкретной задачи.
4.11. ПРОСТРАНСТВА СОСТОЯНИЙ ВЫСШЕГО УРОВНЯ
Процесс сведения задачи к подзадачам, основанный на ис-
пользовании ключевого оператора / и примененный к задаче
(8,Р,6), приводит к двум «И» подзадачам (5, Р, 6/) и
(([(ё)},Р,(т), где Ф—множество состояний, к которым при-
меним оператор а § — элемент множества О/.
Часто оказывается необходимым решать первую из резуль-
тирующих задач (5, Р, О/) еще до того, как вторая может быть
сформулирована и решена. Тогда весь этот процесс решения
задачи путем ее редукции удобнее представить в пространстве
состояний высшего уровня. В пространстве состояний высшего
уровня описанием состояния служит упорядоченный список
описаний задач. (Отдельные задачи в этом списке должны быть
решены в том порядке, в котором они там помещены.) Опера-
тор построения дочерних вершин в пространстве состояний выс-
шего уровня использует различия и ключевые операторы для
создания двух подзадач, заменяющих первую задачу из этого
списка, (Это делается до тех пор, пока первая из задач списка
не окажется элементарной; в последнем случае она просто уби-
рается из списка. Обычно удаление элементарной задачи из
списка соответствует применению ключевого оператора. Этот
факт должен быть отмечен, чтобы в дальнейшем включить та-
кой оператор в решающую последовательность.) Состоянием
цели в пространстве состояний высшего уровня служит любое
описание состояния с пустым списком задач. Читатель сможет
много уяснить для себя, проследив решение задачи об обезьяне
и бананах с использованием такого пространства состояний
высшего уровня.
4.12. ИГРЫ
Подход, связанный с расчленением задачи на совокупность
подзадач, может быть использован также для поиска игровых
стратегий для некоторых типов игр. Мы будем рассматривать
игры двух лиц с полной информацией. В них играют два игрока,
делающие свои ходы поочередно. Им полностью известно все,
что было сделано и что может быть сделано в этой игре. Кон-
кретнее, мы будем интересоваться играми, в которых один из
двух игроков выигрывает (а другой проигрывает) или же ре-
зультат получается ничейным. Некоторыми примерами игр та-
кого типа служат шашки, тик-так-ту, шахматы, гоу и ним. Мы
не собираемся рассматривать здесь те игры, в которых резуль-
тат зависит хотя бы частично от случая: так, мы исключаем
игральные кости и большинство карточных игр. (Впрочем наш
анализ можно было бы обобщить, включив в рассмотрение не-
которые типы игр, содержащих случайный элемент.)
В подходе, основанном на сведёнии задачи к совокупности
подзадач, выигрышная стратегия ищется в процессе доказатель-
ства того, что эта игра может быть выиграна. Поэтому в опи-
сании задачи должно содержаться описание того состояния
(или конфигурации) игры, про которое утверждается, что из
него достижение выигрыша может быть гарантировано. Напри-
мер, в шахматах конфигурацией -является полное описание по-
ложений всех фигур на доске и указание, кому принадлежит
следующий ход.
Пусть именами игроков будут ПЛЮС и МИНУС. Рассмо-
трим задачу нахождения игровой стратегии для игрока ПЛЮС,
отправляясь от некоторой конфигурации X1. Индекс I принимает
значения + или —, причем Х+ представляет собой конфигура-
цию, в которой следующий ход принадлежит игроку ПЛЮС, а
X" — конфигурацию, в которой следующий ход за игроком МИ-
НУС. Мы хотели бы иметь возможность доказать, что игрок
ПЛЮС может выиграть, исходя из конфигурации X1, если же
такого доказательства найти не удастся, то мы хотели бы иметь
возможность доказать, что, исходя из конфигурации X1, игрок
ПЛЮС может по крайней мере добиться ничьей. Обозначим
через ^(Х') задачу доказательства того, что ПЛЮС может
выиграть, отправляясь от конфигурации X1.
Допустимые в этой игре ходы порождают схему сведения
игровых задач к совокупности подзадач. Предположим, что
очередь делать ход в конфигурации Х+ за игроком ПЛЮС, и
предположим, что имеется № допустимых ходов, приводящих к
конфигурациям Х^1, Х^2, ..., Х^. Тогда для доказательства
1^(Х+) мы должны иметь возможность доказать ту или иную из
№ (Х,*)- С другой стороны, если очередь делать ход в конфигу-
рации Х~ за игроком МИНУС и если имеется М допустимых
ходов, приводящих ж конфигурациям У]1, У^2, то Для
доказательства ^(Х-) мы должны уметь доказывать каждую
из задач № Конечно, подобное сведение к подзадачам
применимо и в том случае, когда мы пытаемся доказать лишь,
что возможны ничьи.
Применение этих операторов сведения задачи порождает
структуру, которая часто называется деревом игры. Элементар-
ные задачи даются правилами окончания игры, а процесс дока-
зательства продолжается до тех пор, пока не будет установлено,
что решающее дерево оканчивается на элементарных задачах.
(В большинстве игр, представляющих интерес, таких, как шах-
маты, 'Гоу и шашки, построить полные решающие деревья не
представляется возможным. В следующей главе мы рассмотрим
некоторые специализированные методы перебора на игровых
деревьях, в которых строятся частичные деревья.)
Мы проиллюстрируем эти соображения на простом примере
игры, называемой «игра Гранди», и применим методы сведения
задачи к совокупности подзадач для поиска стратегии игрока
ПЛЮС.
Правила игры Гранди таковы. Перёд двумя играющими рас-
положена единственная кучка предметов, например стопка мо-
нет. Первый игрок делит исходную стопку на две новые стопки,
которые должны быть неравными. В дальнейшем каждый из
игроков, когда приходит его очередь делать ход, делает то же
самое с одной из стопок монет. Игра продолжается до тех пор,
Рис. 4.15. «И/ИЛИ» граф для игры Граиди.
пока все стопки 'не будут содержать по одной-две монеты, после
чего игра заканчивается, поскольку дальнейшее ее продолже-
ние невозможно. Проигрывает тот из игроков, который первым
окажется в положении, когда игра не может продолжаться.
Начнем со стопки, содержащей семь монет, и пусть первым
.делает ход игрок МИНУС. Конфигурацией в этой игре является
последовательность чисел, отражающая числа монеток в раз-
личных стопках, • плюс указание на то, чей ход. Так, 7~ — на-
чальная конфигурация.
В положении 7~ у игрока МИНУС имеются три альтернатив-
ных хода, приводящих к конфигурациям 6,1+, 5,2+ или 4,3+.
Имеются всего три конфигурации, в которых игрок, имеющий
право наследующий ход, проигрывает:
2, 1, 1, 1, 1, 1+, 2, 2, 1, 1, Г, 2, 2, 2, 1+.
Единственной элементарной задачей (означающей выигрыш для
игрока ПЛЮС) является, таким образом, 1Г(2,2,1,1,1~).
Применив нашу процедуру сведения задачи к совокупности
подзадач (отправляясь от задачи ^(7-)), мы получаем
«И/ИЛИ» граф, показанный из рис. 4.15. Жирными дугами на
этом графе выделено решающее дерево, а в двойных прямо-
угольниках размещены элементарные задачи.
Если мы изменим игру так, чтобы первым начинал игрок
ПЛЮС (отправляясь от конфигурации 7+), то окажется, что мы
не можем доказать Ц7(7+). (Второй игрок всегда может вы-
играть.) Пытаясь доказать Ц7(7+), мы придем в конце концов
к ситуации, когда невозможно будет построить новые вершины,
и тогда можно было бы определить, что начальная вершина
неразрешима. (Например, в соответствии с правилами игры
у конфигурации 2, 2, 1, 1, 1+ нет следующих за ней конфигу-
раций.)
4.13. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
Методы сведёния задачи к подзадачам и «И/ИЛИ» графы
В некоторых из самых первых работ по искусственному ин-
теллекту для решения задач использовались методы сведёния
задачи к совокупности подзадач (называемые также «рассужде-
нием в обратном направлении»). Ньюэлл, Шоу и Саймон (1957)
написали программу для логико-теоретической машины (ЛТ),
которая доказывала теоремы исчисления предикатов, строя свою
работу на рассуждении в обратном направлении от доказывае-
мой теоремы. В этой программе было использовано дерево под-
задач, для того чтобы можно было просмотреть альтернативные
цепочки рассуждений.
Другой из первых программ, в которой были применены ме-
тоды сведёния задачи и деревья подзадач, была программа для
символьного интегрирования (8А1МТ) Слейджла (1963а).
Слейджл первым назвал эти деревья деревьями типа «И/ИЛИ».
В более поздней работе Слейджла и Бурского (1968) был ис-
пользован термин «пропозициональное дерево». Ригни и Таун
(1969) предложили применить граф типа графов «И/ИЛИ» для
анализа структуры последовательностей операций в промышлен-
ности. Некоторые примеры представлений неявно заданных де-
ревьев типа «И/ИЛИ» с помощью недетерминированных про-
грамм были даны Манна (1970).
Примеры программ, использующих метод сведёния задачи к
подзадачам
Наш пример символического интегрирования основан на про-
грамме Слейджла (1963а). Подробно эта программа описана
в диссертации Слейджла (1961). Много более развитая система
интегрирования (названная 81Й) была впоследствии запрограм-
мирован^ Мозесом (1967). Она содержала так много специаль-
ных критериев применимости различных операторов, что интег-
рирование по большей части производилось либо вовсе без
перебора, либо после очень незначительного перебора1). Риш
(1969) разработал алгоритмические процедуры для интегриро-
вания выражений различных типов (см. задачу 4.5).
Примеры доказательства геометрических теорем были заим-
ствованы из программы Гелернтнера и др. (1959, 1960). Некото-
рые элементы этой программы представляют собой важные и
оригинальные нововведения.
Понятия ключевых операторов и различий и их применение
при решении задач связаны главным образом с именем Ньюэлла
и его сотрудников по универсальному решателю задач ОР8
(см. Эрнст и Ньюэлл, 1969). Можно было бы здесь упомянуть,
что наше объяснение этих идей несколько отличается от того,
что можно найти у Ньюэлла и др. Ньюэлл употреблял фразу
«анализ цели-средства», когда говорил о процессе поиска раз-
личий и устранения этих различий с помощью подходящих опе-
раторов. Он различал также три типа целей в программе ОР8:
преобразование объекта, уменьшение различия и применение
оператора. Из нашего описания не видна полезность такой клас-
сификации. Нас интересует программа ОР8 постольку, посколь-
ку она может быть использована в системе автоматического ре-
шения задач, а многих работавших над ОР8 онц интересовала
также и как психологическая модель мыслительного процесса.
Это различие в точках зрения, без сомнения, отразилось в ка-
кой-то мере и на способах описания программы.
Особо интересуясь возможностями программы ОР8 для ре-
шения задач, Эрнст (1969) исследовал те условия, при которых
ОР8 гарантирует нахождение решения. Анализ Эрнста привел
к формализации понятий различия и упорядочения различий.
Игры и подход, связанный с разбиением задачи иа подзадачи
Слейджл и его сотрудники подчеркнули существенную ана-
логию между «И/ИЛИ» деревьями и игровыми деревьями
’) Можно было бы считать, что большая часть перебора, необходимого
для проведения интегрирования, была произведена раз и навсегда самим Мо-
зесом при разработке программы. Результатом такого перебора на стадии
проектирования явились специальные правила, по которым во всех случаях
применяются операторы.
(Слейджл, 1970, Слейджл и Бурский, 1968). Эта аналогия в ка-
кой-то ьГёре очевидна в простых играх, которые могут быть рас-
смотрены до конца, или в окончаниях более сложных игр, таких,
как шахматы. Действительно, мы часто думаем о шахматных
эндшпилях как о задачах на доказательство, а не как об играх.
Наш пример игры Гранди взят из статьи О’Бирна (1961).
Задачи
4.1. (Для инженеров-электриков.) Покажите, как может быть использо-
вано решающее «И/ИЛИ» дерево для представления вычислений импеданса
показанной ниже электрической цепи. За элементарные факты возьмите воз-
можность вычислить импеданс одиночного звена Л, Ь или С (соответствую-
щие значения равны /?, /шЕ, 1//шС). Операторы построения дочерних вершин
должны быть основаны на правилах комбинирования импедансов в парал-
лельных и последовательных соединениях.
4.2. Представьте, что Вы студент высшего учебного заведения, изучаю-
щий геометрию. Докажите следующую теорему: диагонали параллелограмма,
пересекаясь, делятся пополам. Воспользуйтесь «И/ИЛИ» деревом для изобра-
жения этапов, которые Вы проходите в поиске доказательства. Проставьте
в вершинах этого дерева предположения, которые были Вами рассмотрены при
поиске доказательства. Были ли какие-нибудь из иих отброшены после обраще-
ния к модели? Укажите решающее поддерево, дающее доказательство теоремы.
4.3. (Для программирующих на языке Ы8Р.) Напишите на языке 1Д8Р
предикат РАЗРЕШИМОЕ (ДЕРЕВО), имеющий значение Г, если корневая
вершина этого дерева (графа типа «И/ИЛИ») разрешима, и значение Р в про-
тивном случае. Воспользуйтесь любой удобной структурой данных для ДЕ-
4.4. Объясните, как бы Вы построили систему решения задачи, основан-
ную на сведении задачи к подзадачам, предназначенную для разбиения лю-
бого английского слова иа составляющие его слоги. Предположите, что на
каждом этапе сведения задачи к подзадачам строка символов расщепляется
ровно иа две строки.
4.5. История прогресса в развитии систем для автоматического символи-
ческого иитегрироваиия выдвигает интересный вопрос, касающийся опре-
деления искусственного интеллекта. Лишь немногие будут сомневаться в том,
что программа 8А1ЫТ Слейджла является результатом исследования в об-
ласти искусственного интеллекта. В программе 8Ш Мозеса для символического
интегрирования редко используется перебор, и по этой причине некоторые
считают ее сильнее (разумнее?) программы 8АШТ. Риш (1969) разра-
ботал алгоритм для интегрирования многих типов выражений. Ои считает*
себя математиком, а не исследователем в области искусственного интеллекта.
Как по Вашему мнению, следует ли относить алгоритм Риша к области искус-
ственного интеллекта? При ответе дайте описание критерия для определения
того, что составляет искусственный интеллект. Если Вы исключите из искус-
ственного интеллекта алгоритм Риша, то как Вы будете реагировать на
заявление, что каждая программа из области искусственного интеллекта
в конце концов будет превзойдена некоторым (более разумным?) алгоритмом
ие из области искусственного интеллекта? Если же Вы относите алгоритм
Риша к области искусственного интеллекта, то не включите ли Вы туда и
алгоритм деления многочлена на многочлен?
4.6. Игра, называемая «последний проигрывает», состоит в следующем:
два игрока поочередно берут по одной, две или три монеты из кучки, перво-
начально содержащей девять монет. Игрок, берущий последнюю монету,
проигрывает. Нарисуйте решающее «И/ИЛИ» дерево, которое доказывает, что
участник, играющий вторым, всегда может выиграть.
Глава 5
Методы поиска при сведении задач
К СОВОКУПНОСТИ ПОДЗАДАЧ
5.1. ПРОЦЕССЫ ПЕРЕБОРА (ПОИСКА) НА ГРАФАХ ТИПА «И/ИЛИ»
После выбора описаний задач и операторов сведения задач
к подзадачам можно построить «И/ИЛИ» граф, предназначен-
ный для решения исходной задачи или для демонстрации ее не-
разрешимости (при выбранном представлении). Построение
этого графа связано с процессом перебора, который успешно
завершается, когда находится решающий граф. В этой главе мы
опишем основные приемы ведения эффективного поиска решаю-
щих графов.
Нахождение решающего графа основано на построении до-
статочно большой части «И/ИЛИ» графа, показывающей, что
начальная вершина разрешима. Приведем здесь еще раз опреде-
ления разрешимых и неразрешимых вершин, данные в преды-
дущей главе.
Разрешимые вершины
Заключительные вершины (соответствующие элементарным
задачам) разрешимы.
Вершина, не являющаяся заключительной и имеющая дочер-
ние вершины типа «ИЛИ», разрешима тогда и только тогда,
когда разрешима по крайней мере одна из ее дочерних вер-
шин.
Вершина, не являющаяся заключительной и имеющая дочер-
ние вершины типа «И», разрешима тогда и только тогда,
когда разрешимы все ее дочерние вершины.
Неразрешимые вершины
Вершины, не являющиеся заключительными и не имеющие
дочерних вершин, неразрешимы.
Вершина, не являющаяся заключительной и имеющая дочер-
ние вершины типа «ИЛИ», неразрешима тогда и только то-
гда, когда неразрешимы все ее дочерние вершины.
Вершина, не являющаяся заключительной и имеющая до-
черние вершины типа «И», неразрешима тогда и только
б Зак, 493
тогда, когда неразрешима по крайней мере одна из ее дочер-
них вершин.
Мы видим, что определения разрешимых и неразрешимых
вершин носят рекурсивный характер. Эти определения можно
использовать в простых рекурсивных или итеративных процеду-
рах, действующих на «И/ИЛИ» графе, для того чтобы отметить
все разрешимые и неразрешимые вершины. Мы будем называть
эти процедуры процедурами разметки разрешимых и неразре-
шимых вершин. Они применяются при контроле окончания в тех
алгоритмах перебора, которые мы будем рассматривать. Пере-
бор заканчивается успешно, если начальная вершина может
быть отмечена как разрешимая. Перебор считается закончив-
шимся безуспешно, если начальная вершина может быть отме-
чена как неразрешимая.
В том случае, когда начальная вершина в конечном итоге
может быть отмечена как разрешимая, решающим графом будет
подграф (содержащий только разрешимые вершины), показы-
вающий в соответствии с нашим определением, что начальная
вершина разрешима.
Все процессы перебора, которые мы будем рассматривать,
включают следующие этапы:
(1) Начальная вершина ассоциируется с начальным описа-
нием задачи.
(2) Строятся множества дочерних вершин для начальной
вершины с помощью тех операторов сведения задач к подзада-
чам, которые применимы. Пусть Г — такой комбинированный
оператор, применение которого дает нам все дочерние вершины
для данной вершины. Мы снова назовем этот процесс примене-
ния Г к вершине раскрытием вершины. (Напомним, что если
при этом строится более одного множества дочерних вершин
типа «И», то каждое множество,- содержащее более одного эле-
мента, группируется под промежуточной вершиной типа
«ИЛИ».)
(3) От каждой дочерней вершины назад к ее родительским
вершинам проводятся указатели. Эти указатели используются,
когда делается попытка разметить разрешимые и неразреши-
мые вершины, а после окончания они дают решающий граф.
(4) Процесс раскрытия вершин и установки указателей про-
должается до тех пор, пока начальная вершина не может быть
помечена как разрешимая или как неразрешимая.
Структура из вершин и указателей, порождаемая в процессе
перебора, образует «И/ИЛИ» граф, т. е. подграф всего неявно
определенного, графа. Мы будем называть его графом пере-
бора.
В этой главе мы будем заниматься различными процессами
перебора на графе типа «И/ИЛИ», в которых выбран эффектив-
ный порядок раскрытия вершин1). Эти процессы в некоторых
отношениях отличаются от процессов перебора в пространстве
состояний. Основные различия возникают из-за того, что теперь
контроль окончания и методы упорядочения вершин должны
быть намного более сложными. Вместо поиска вершин, удовле-
творяющих условию цели, мы теперь ведем поиск решающего
графа. Таким образом, мы должны в соответствующие моменты
времени делать проверку, чтобы убедиться в том, что начальная
вершина разрешима. Однако такую проверку имеет смысл де-
лать лишь после того, как будут построены дочерние вершины,
которые разрешимы (например, заключительные вершины). Для
проведения такой проверки мы должны прежде всего применить
процедуру разметки разрешимости вершин поискового «И/ИЛИ»
графа, построенного к данному моменту. Если начальная вер-
шина отмечена как разрешимая, то мы закончили проверку.
В противном случае мы продолжаем раскрывать вершины (воз-
можно, запоминая, какие из ранее раскрытых вершин отмечены
как разрешимые, с тем чтобы уменьшить объем вычислений при
следующей проверке).
Если вершина, выбранная для раскрытия, не является за-
ключительной и не’имеет дочерних вершин, тс/она неразрешима.
Тогда естественно применить процедуру разметки неразрешимо-
сти вершин с тем, чтобы проверить, не будет ли начальная вер-
шина неразрешимой. Если начальная вершина неразрешима, то
это означает, что мы потерпели неудачу. В противном случае мы
продолжаем раскрывать вершины (помня снова, какие из ранее
раскрытых вершин были отмечены, как неразрешимые).
Наличие разрешимых и неразрешимых вершин приводит к
другой интересной особенности перебора (поиска) на графе
типа «И/ИЛИ». Так как нет никаких причин искать более од-
ного решения задачи, то можно на поисковом графе отбросить
все те неразрешимые вершины, которые являются дочерними
для разрешимых вершин. Точно так же можно отбросить все
вершины, следующие за неразрешимыми вершинами. Перебор
ниже таких отбрасываемых нами вершин был бы бессмыслен-
ным.
Методы перебора на «И/ИЛИ» графах отличаются друг от
друга главным образом тем, каким образом в них упорядочи-
ваются вершины перед раскрытием. А именно, в методах пол-
ного перебора вершины раскрываются в том порядке, в котором
они строились, а в методах перебора в глубину в первую очередь
раскрываются те вершины, которые были построены последними.
') Как мы видели на примере, разобранном в разд. 4.10, может ока-
заться, что одну из дочерних подзадач необходимо решить раньше, чем можно
будет приступать к другим. Методы упорядочения настоящей главы приме-
няются только там, где имеется возможность выбора, какую из вершин рас-
крывать в следующий раз.
Хотя нас интересуют прежде всего методы упорядоченного
перебора (в которых для упорядочения вершин при их раскры-
тии используют оценочные функции), но начнем мы с обсужде-
ния методов поиска в глубину и методов полного перебора, так
как они являются достаточно простыми и позволяют ввести
некоторые важные представления.
Методы перебора значительно упрощаются, если их приме-
нять к деревьям (а не к произвольным графам). Мы опишем
варианты этих методов, рассчитанные на перебор на деревьях,
а потом отметим некоторые из проблем, связанных с обобщени-
ями, необходимыми для перебора на графах. Дерево типа
«И/ИЛИ» — это граф типа «И/ИЛИ», в котором у каждой вер-
шины имеется ровно одна родительская вершина (исключая
корневую вершину, вовсе не имеющую родительских вершин).
Как и в случае обыкновенных деревьев, при построении той или
иной дочерней вершины можно быть уверенным, что такая вер-
шина в процессе нашего перебора не строилась и не будет по-
строена вновь. Перебор на «И/ИЛИ» дереве приводит к по-
строению поддерева, называемого деревом перебора.
5.2. МЕТОД ПОЛНОГО ПЕРЕБОРА
В методе полного перебора вершины раскрываются в том
порядке, в котором они были построены. Последовательность
определяющих его шагов кажется длинной, но большая часть
их связана с проверками того, не должна ли данная процедура
закончить свою работу. Структура этого процесса весьма про-
ста, как видно из блок-схемы рис. 5.1. Последовательность ша-
гов в методе перебора на «И/ИЛИ» дереве такова:
(1) Поместить начальную вершину « в список вершин с на-
званием открыт.
(2) Взять первую вершину из списка ОТКРЫТ и поместить'
ее в список вершин с названием ЗАКРЫТ; обозначить эту вер-
шину через п.
(3) Раскрыть вершину п, построив все ее дочерние вершины.
Поместить эти дочерние вершины в конец списка ОТКРЫТ и
провести от них указатели к вершине п. Если дочерних вершин
не оказалось, то пометить вершину п как неразрешимую и про-
должать; в противном случае перейти к (8).
(4) Применить к дереву поиска процедуру разметки неразре-
шимых вершин.
(5) Если начальная вершина помечена как неразрешимая,
то на выход подается сигнал о неудаче. В противном случае
продолжать далее.
(6) Изъять из списка ОТКРЫТ все вершины, имеющие не-
разрешимые предшествующие им вершины. (Этот шаг позволяет
Рис. 5.1. Блок-схема программы полного перебора на <И/ИЛИ» деревьях.
избежать ненужных затрат, связанных с попытками разрешить
неразрешимые вершины.)
(7) Перейти к (2).
(8) Если все дочерние вершины являются заключительными,
то пометить их как разрешимые и продолжать. В противном
случае перейти к (2).
(9) Применить к дереву перебора процедуру разметки раз-
решимых вершин.
(10) Если начальная вершина помечена как разрешимая, та
на выход выдается дерево решения, которое доказывает, что
начальная вершина разрешима. В противном случае продол-
жать.
(11) Изъять из списка ОТКРЫТ все вершины, являющиеся
разрешимыми или имеющие разрешимые предшествующие им
вершины. (Этот шаг позволяет избежать ненужных затрат, свя-
занных с поиском более одного пути решения задачи.)
(12) Перейти к (2).
Как и для обычных деревьев, глубина вершины в дереве
типа «И/ИЛИ» определяется следующим образом:
Глубина начальной вершины равна 0.
Глубина любой другой вершины на 1 больше глубины ее
родительской вершины (непосредственно ей предшествую-
щей).
В дальнейшем мы докажем теорему, из которой будет, в
частности, следовать, что описанная выше процедура полного
А I I
Рис. 5.2. «И/ИЛИ» дерево, показываю-
щее порядок, в котором раскрываются
вершины при полном переборе.
перебора непременно обна-
руживает то дерево реше-
ния, самая глубокая верши-
на которого (заключитель-
ная вершина) имеет мини-
мальную глубину (при усло-
вии, конечно, что дерево ре-
шения вообще существует).
Пример последовательно-
сти, в которой раскрывают-
ся вершины в методе полно-
го перебора, приведен на
рис. 5.2. Числа, стоящие
рево решения выделено жирными
около вершин, указывают
очередность раскрытия вер-
шин, разрешимые вершины
зачернены, а найденное де-
ветвями. Заметим, что после
раскрытия девятой вершины и установления того, что ее дочер-
ние вершины являются заключительными, вершины А, В и С
удаляются из списка ОТКРЫТ.
5.3. ПОИСК В ГЛУБИНУ
При переборе в глубину делается попытка найти в пределах
определенной граничной глубины дерево решения, причем в
первую очередь раскрываются только что построенные вершины.
Вершины, имеющие большую глубину, чем эта граничная, ни-
когда не будут раскрываться, поэтому незаключительные вер-
шины с глубиной, в точности равной этой границе, отмечаются
как неразрешимые. Как и при переборах в пространстве состоя-
ний, наличие граничной глубины может воспрепятствовать на-
хождению решения, но в ходе процесса будет найдено любое
решение в пределах этого ограничения. Структура процесса
аналогична структуре процесса в методе полного перебора. Она
показана на блок-схеме рис. 5.3. Последовательность шагов в
процедуре поиска в глубину такова:
(1) Поместить начальную вершину а в список вершин с на-
званием ОТКРЫТ.
(2) Взять первую вершину из списка ОТКРЫТ и поместить
ее в список вершин с названием ЗАКРЫТ; обозначить эту вер-
шину через п.
(3) Если глубина вершины п равна граничной глубине, то
отметить вершину п как неразрешимую и перейти к (5); в про-
тивном случае продолжать далее. л
(4) Раскрыть вершину п, построив все ее дочерние вершины.
Поместить эти дочерние вершины (в произвольном порядке)
в начало списка ОТКРЫТ и провести от них указатели к вер-
шине п. Если дочерних вершин не оказалось, то пометить вер-
шину п как неразрешимую и продолжать; в противном случае
перейти к (9).
(5) Применить к дереву поиска процедуру разметки нераз-
решимых вершин.
(6) Если начальная вершина помечена как неразрешимая,
то на выход подается сигнал о неудаче. В противном случае
продолжать далее.
(7) Изъять из списка ОТКРЫТ все вершины, имеющие не-
разрешимые предшествующие им вершины.
(8) Перейти к (2).
(9) Если все дочерние вершины являются заключительными,
то пометить их как разрешимые и продолжать. В противном
случае перейти к (2).
(10) Применить к дереву перебора процедуру разметки раз-
решимых вершин.
(11) Если начальная вершина помечена как разрешимая, то
на выход выдается дерево решения, которое доказывает, что
начальная вершина разрешима. В противном случае продол-
жать.
Рис. 5.3. Блок-схема программы перебора в глубину на «И/ИЛИ> деревьях.
(12) Изъять из списка ОТКРЫТ все вершины, являющиеся
разрешимыми или имеющие разрешимые предшествующие им
вершины.
(13) Перейти к (2).
Пример последовательности, в которой раскрываются вер-
шины в методе перебора в глубину, приведен н-а рис. 5.4. В этом
примере граничная глубина
принята равной 4. Черными
кружочками показаны раз-
решимые вершины, белыми
неразрешимые, а дерево ре-
шения выделено жирными
ветвями.
5.4. ПЕРЕБОР НА ГРАФАХ
ТИПА «И/ИЛИ»
Всегда, когда процесс
сведения задачи к совокуп-
Рис. 5.4. «И/ИЛИ» дерево, показы-
вающее порядок, в котором раскры-
ваются вершины при переборе в глу-
бину (предельная глубина равна 4).
ности подзадач приводит к
построению дочерней верши-
ны, эквивалентной некото-
рому описанию задачи, уже
построенному ранее в про-
цессе перебора, результирующую структуру можно представить
эффективнее не в виде дерева, а в виде «И/ИЛИ» графа, в ко-
тором вершины могут иметь более одной родительской вершины.
Если у нас есть возможность распознавать случаи эквивалент-
ности описаний задач, то задачу поиска можно в общем случае
существенно упростить, так как идентичные подзадачи доста-
точно решить один раз. К тому же общая .графовая структура
может содержать бесполезные циклы (давая циклические це-
почки рассуждений), которые мы могли бы встретить, но не быть
в состоянии их обнаружить, если бы считали разными в действи-
тельности идентичные описания задач.
Некоторые примеры «И/ИЛИ» графов, вершины которых мо-
гут иметь более одной родительской вершины, показаны на
рис. 5.5. Заключительные вершины отмечены буквой (, а решаю-
щие графы выделены жирными ребрами. Заметим, что у графов
на рис. 5.5, а, б есть решающие подграфы, а у графа на
рис. 5.5, в таких подграфов нет, поскольку на нем никак нельзя
избежать зацикливания.
Казалось бы, можно предположить, что для того, чтобы не
попасть в цикл, следует отказываться от построения тех дочер-
них вершин для данной вершины, которые были бы для этой
вершины предшествующими. В действительности такое правило
могло бы привести к исключению из рассмотрения некоторых
верных нециклических решений. Например, если вершины рас-
крываются в порядке, указанном на рис. 5.6, мы, безусловно,
захотим включить вершину 2 в число дочерних вершин для в
(хотя вершина 2 в то же время предшествует 6), так как в про-
тивном случае мы не получили бы решения (возможно, един-
ственного), показанного жирными ветвями.
Рис. 5.5. Некоторые «И/ИЛИ» графы.
При попытке определить процедуру перебора для графа (а
не дерева) типа «И/ИЛИ» возникает ряд осложнений. Во-пер-
вых, разумное определение процедуры полного перебора было
бы, вероятно, связано с выбором для очередного раскрытия той
вершины из списка ОТКРЫТ, которая имеет наименьшую глу-
бину. Теперь, однако, несколько труднее, чем в случае деревьев,,
дать хорошее определение глубины. Как и для обычных графов,
глубина вершины в «И/ИЛИ» графе определяется следующим,
образом:
Глубина начальной вершины равна 0.
Глубина любой другой вершины на 1 больше глубины са-
мой ближайшей ее родительской вершины.
Второе осложнение связано с необходимостью установки ука-
зателей*, идущих от данной вершины к более чем одной роди-
тельской вершине. Все эти указатели могут оказаться необхо-
димыми при определении решающего графа. (Например, на
рис. 5.6 обязательно должны содержаться в решении указатели,
идущие от вершины 2 к вершинам 1 и 6.) С другой стороны,
некоторые из этих кратных указателей могут и не потребоваться
в решении (например, на ри
указатель, идущий от вер-
шины 3 назад к вершине 4).
Поэтому в процедуре пере-
бора на «И/ИЛИ» графе
должна быть предусмотрена
возможность проанализиро-
вать после окончания рабо-
ты структуру указателей
графа перебора, с тем чтобы
отбросить несущественные
указатели и сохранить те,
которые необходимы в ре-
шающем графе.
Аналогично когда стр'о-
ятся дочерние вершины, сле-
дует провести специальную
проверку, нет ли уже каких-
нибудь из этих вершин в
описке ЗАКРЫТ и не были
ли они прежде помечены
как разрешимые или как неразрешимые. Если при этом мы при-
шли к уже разрешимой (или неразрешимой) дочерней вершине
по новому пути, то небходимо воспользоваться процедурой раз-
метки, чтобы проверить, разрешима ли (или неразрешима ли)
начальная вершина.
Разработку алгоритмов перебора на произвольных графах
типа «И/ИЛИ» мы оставляем читателю в качестве упражнения.
Нашей ближайшей задачей будет исследование способов эффек-
тивного упорядочения процесса раскрытия вершин с использо-
ванием оценочных функций. Снова наше рассмотрение суще-
ственно упростится, если ограничиться случаем «И/ИЛИ» де-
ревьев.
в решение не должен входить
Рис. 5.6. Пример, показывающий, что
вершина 2 может быть дочерней для
вершины 6 (через дугу а), хотя при
этом и возникает цикл.
5.5. СТОИМОСТИ ДЕРЕВЬЕВ РЕШЕНИЯ
В переборах в пространстве состояний у нас была возмож-
ность воспользоваться для упорядочения процесса раскрытия
вершин эвристически выводимыми оценочными функциями.
Ключевым понятием при определении этих оценочных функций
было понятие эвристической функции, оценивающей стоимость
оптимального пути от некоторой вершины до цели. В «И/ИЛИ»
деревьях соответствующее понятие связано с оценкой стоимости
дерева решения с корнем в данной вершине. Разумеется, прежде
чем решать, как давать оценку стоимости дерева решения с кор-
нем в данной вершине, надо определить, что мы будем понимать
под стоимостью «И/ИЛИ» решения.
Нетрудно определить два различных понятия, каждое из ко-
торых приписывает определенные
Р н с. 5.7. Два решающих дерева и их
стоимости.
Решение Л
Суммарная стои-
мость =20
Максимальная стой-
мость=15
Решение В
Суммарная стой-
мость=18
Максимальная стой*
мость=17
стоимости дугам дерева реше-
ния : суммарную стоимость*
представляющую собой сум-
му стоимостей всех дуг в
дереве решения, и макси-
мальную стоимость, опреде-
ление которой основано на
понятии пути по дереву ре-
шения. (Назовем путем по
дереву с корнем в вершине
п последовательность вер-
шин («1, п2, ..., п*) дерева,
где — п, «а — заключи-
тельная вершина, а вершина
п, — дочерняя для при
] — 2, ..., к.) Сумму стои-
мостей дуг, связывающих
вершины некоторого пути,
будем называть стоимостью пути. Максимальная стоимость —
это стоимость пути по дереву решения, имеющего максимальную
стоимость.
Эти определения можно пояснить на деревьях решений, по-
казанных на рис. 5.7, на котором числа, стоящие-около дуг,
указывают стоимости последних. Здесь имеются два решения.
Одно из них выделено жирными линиями (решение 4), а дру-
гое (решение В) —перечеркнутыми линиями. У решения А сум-
марная стоимость равна 20, максимальная равна 15, а у реше-
ния В суммарная стоимость равна 18, максимальная равна 17.
Какое из этих решений предпочтительнее, зависит, конечно, от
того, какую стоимость мы пытаемся минимизировать.
Часто стоимости дуг полагаются равными единице. В этом
случае суммарная стоимость есть просто число вершин в дереве
решения без единицы. Подобным образом максимальная стои-
мость дает длину самой длинной цепочки шагов в дереве реше-
ния. В любом случае достаточно хорошую оценку любой из этих
стоимостей можно с пользой применить в оценочной функции и
тем самым эффективно упорядочить перебор.
Дерево решения само по себе является поддеревом некото-
рого неявно заданного «И/ИЛИ» дерева, определяемого началь-
ным описанием задачи, множеством операторов сведения задачи
к подзадачам и множеством элементарных задач. Внутри всего
неявно заданного «И/ИЛИ» деревй мы хотим найти дерево ре-
шения с минимальной стоимостью. Такое дерево решения будем
называть оптимальным деревом. Обозначим через й («) стои-
мость оптимального дерева решения с корнем в начальной вер-
шине 5. Дадим рекурсивное определение минимальной стоимо-
сти й(«) через минимальную стоимость й(п) дерева решения
с корнем в любой вершине п. Будем обозначать стоимость дуги
между вершиной П{ и ее дочерней вершиной П] через с(пг-, п^).
1. Если п — заключительная вершина (отвечающая элемен-
тарной задаче), то
й (п) = 0.
2. Если п не является заключительной вершиной и имеет в
качестве своих дочерных вершин вершины П[, ..., пк типа
«ИЛИ», то
й (п) = шт [с (п, п() + й (/?,)]•
I
3. Если п не является заключительной вершиной и имеет в
качестве своих дочерних вершин вершины гц, ..., пъ типа
«И», то для суммарных стоимостей
к
й («) = 2 [с (га, П() + й («,)],
<=1
а для максимальных стоимостей
й (п) — тах [с (п, п() 4- й («;)].
I
Разумеется, функция й(п) не определена, если вершина п не-
разрешима.
5.6. ИСПОЛЬЗОВАНИЕ ОЦЕНОК стоимости для ПРЯМОГО
ПЕРЕБОРА
Нас будет интересовать поиск деревьев решения, обеспечи-
вающих минимальную стоимость (либо суммарную, либо ма-
ксимальную в зависимости от ситуации). Для-этого мы восполь-
зуемся представлением об оцененной стоимости дерева решения.
Пусть И — такая функция, что для каждой вершины п, которая
не является неразрешимой, Й(п) служит оценкой величины й(п),
т. е. стоимости оптимального дерева решения с корнем в вер-
шине п. Мы будем называть Й эвристической функцией и будем
пользоваться ею для упорядочения процесса раскрытия вершин.
В процессе перебора, который мы опишем, строится дерево
перебора. На любом этапе этого перебора внизу дерева пере-
бора располагаются вершины одного из следующих трех
типов:
1) вершины, признанные в процессе перебора заключитель-
ными;
2) вершины, относительно которых в процессе перебора было
установлено, что они не являются заключительными и у них нет
дочерних вершин;
3) вершины, для которых в процессе перебора еще не были
построены дочерние вершины.
Любую из таких вершин в дереве перебора мы будем называть
концевой вершиной.
Теперь мы опишем, каким образом для каждой вершины п
дерева перебора должна строиться эвристическая функция
Л(п).
я—концевая вер шина
Если установлено, что п является заключительной вершиной,
то Й(л) = 0.
Если установлено, что п. не является заключительной верши-
ной и у нее нет дочерних вершин, то функция Н(п) не опреде-
лена.
Если у вершины п еще не были построены дочерние вершины,
то за Н(п) принимается некоторая эвристическая оценка стои-
мости величины Н(п) оптимального дерева решения с корнем
в вершине п. Такая оценка могла бы быть сделана на основе
эвристической информации, касающейся происхождения задачи,
представляемой нашим «И/ИЛИ» деревом.
я—неконцевая вершина, имеющая дочерние вершины л.........л*
типа „ИЛИ“
Эвристическая функция задается формулой
А (Л) = Ш1П [С (л, Л/) + А (лг)].
' I
л — неконцевая вершина, имеющая дочерние вершины ........л»
типа „И“
Эвристическая функция Н(п) для суммарных стоимостей за.
дается формулой
Й (л) == 2 [с (л, Л/) й (Л/)],
/=1
а для максимальных стоимостей — формулой
А (л) = шах [с (л, п{) -р 1г (л,)]
Поскольку /г(п) = 0 для заключительных вершин, наше опре-
деление'дает гарантию, что при И в И в состав дерева перебора
будет входить наше «И/ИЛИ» деревб целиком.
Далее, в дереве поиска на каждом этапе содержится мно-
жество поддеревьев с корнем в з, каждое из которых могло бы
в зависимости от результатов дальнейшего раскрытия вершин
стать верхней частью полного дерева решения. Назовем эти де-
ревья потенциальными деревьями решений для а. Для каждой
вершины, имеющей дочерние вершины типа «ИЛИ», в дереве
поиска можно выбрать отдельное потенциальное дерево реше-
ния, соответствующее каждой из дочерних вершин типа «ИЛИ».
Аналогично имеются также потенциальные деревья решений с
корнем в вершине п, которые могли бы решать подзадачу, соот-
ветствующую этой вершине. (Конечно, если только эта вершина
не помечена уже как неразрешимая.)
На каждом этапе в процессе перебора можно извлечь из де-
рева перебора это потенциальное дерево решения то, корень ко-,
торого расположен в з и которое по оценке служит верхней
частью оптимального дерева решения с корнем в з. В процедуре
извлечения используются величины /г; основана процедура на
следующем определении:
1. Начальная вершина входит в т0.
2. Если у вершины п, входящей в т0. в дереве перебора есть
а) дочерние вершины пь..., пи типа «ИЛИ», то та из них,
для которой значение [с(п,Пг) + й(п,)] минимально, также вхо-
дит в то (в случае равных значений выбор произволен),
б) дочерние вершины типа «И», то все они входят в то.
Это потенциальное дерево решения то, по оценке служащее
верхней частью оптимального дерева решения с корнем в з, яв-
ляется ключевым понятием в эвристическом 'процессе перебора,
который нам предстоит описать. Уместная здесь процедура упо-
рядочения связана с вопросом «Какое из потенциальных де-
ревьев решения наиболее перспективно для раскрытия», а не с
вопросом «Какая из вершин наиболее перспективна для раскры-
тия на следующем шаге». (Аналогично при переборе в про-
странстве состояний, выбирая вершину с минимальным значе-
нием / = мы продолжаем наиболее перспективный ча-
стичный путь.) Мы будем брать то в качестве наиболее перспек-
тивного потенциального дерева решения.
Для того чтобы в ходе нашего процесса перебора можно
было извлечь дерево то, мы должны следить за величинами И
в каждой вершине дерева поиска. После того как дерево то из-
влечено, раскрываются те его концевые вершины, которые еще
не выбирались для раскрытия, и для такого выросшего дерева
пересчитываются величины Й. На самом деле достаточно пере-
считать величины Н только для вершин, предшествующих только
что раскрытой вершине, ибо для других вершин они не изме-
нятся. (Величина Я для вершины зависит лишь от величин Я
следующих за ней вершин.)
Прежде чем точно описать процесс перебора, основанный на
этих идеях, надо располагать средствами для решения вопроса
о том, какую из концевых вершин дерева т0 раскрывать на сле-
дующем шаге. Можно предложить различные методы. Возмож-
но, хорошей идеей был бы выбор вершины, раскрытие которой
с наибольшей вероятностью опровергало бы гипотезу о том, что
То окажется верхней частью оптимального дерева решения. В са-
мом деле, если То не является верхней частью оптимального де-
рева решения, хотя в данный момент оно и оценивается как та-
ковое, то для эффективности процедуры перебора требуется,
чтобы этот факт был обнаружен как можно быстрее. Дополни-
тельные соображения по этому вопросу будут приведены в
разд. 5.9. Пока же предположим, что у нас есть некие средства
определения, какую из концевых вершин т0 раскрывать в сле-
дующую очередь.
5.7. АЛГОРИТМ УПОРЯДОЧЕННОГО ПЕРЕБОРА ДЛЯ ДЕРЕВЬЕВ
ТИПА «И/ИЛИ»
Мы можем теперь дать перечень шагов, определяющий алго-
ритм упорядоченного перебора для деревьев «И/ИЛИ». Эти
шаги лишь немного отличаются от этапов метода полного пере-
бора:
(1) Поместить начальную вершину з в список вершин с на-
званием ОТКРЫТ и вычислить Я(з).
(2) Получить потенциальное дерево решения, которое по
оценке служит верхней частью оптимального дерева решения с
корнем в з, используя для этого величины Я для вершин дерева
перебора.
(3) Выбрать некоторую концевую вершину дерева т0, кото-
рая имеется в списке ОТКРЫТ, и поместить ее в список вершин
с названием ЗАКРЫТ. Обозначить эту вершину через п.
(4) Если п — заключительная вершина, то пометить вершину
п как разрешимую и продолжать. В противном случае перейти
к (9).
(5) Применить к то процедуру разметки разрешимых вершин.
(6) Если начальная вершина помечена как разрешимая,
то на выход выдается То в качестве дерева решения; в против-
ном случае продолжать.
(7) Изъять из списка ОТКРЫТ все вершины, имеющие раз-
решимые предшествующие им вершины.
(8) Перейти к (2).
(9) Применить к п оператор Г и построить все дочерние
вершины для п. Если дочерних вершин нет, то пометить вер-
шину п. как неразрешимую и перейти к следующему этапу. В про-
тивной случае перейти к (14).
(10) Применить к т0 процедуру разметки неразрешимых
вершин.
(11) Если начальная вершина помечена как неразрешимая,
то на выход подается сигнал о неудаче. В противном случае
продолжать далее.
(12) Изъять из списка ОТКРЫТ все вершины, имеющие
неразрешимые предшествующие им вершины.
(13) Перейти к (2).
(14) Поместить эти дочерние вершины в список ОТКРЫТ
и провести от них указатели назад к вершине п. Вычислить ве-
личины Й для этих вершин. Пересчитать величины Й для вер-
шины п и для предшествующих ей вершин.
(15) Перейти к (2).
Блок-схема этой процедуры изображена на рис. 5.8. (Заме-
тим, что в частном случае, когда не возникает вершин типа
«И», в этой процедуре перебор дерева осуществляется спосо-
бом, идентичным методу упорядоченного перебора в простран-
стве состояний. Кроме того, если стоимости дуг равны единице,
Й = 0 для концевых вершин и используется определение ма-
ксимальной стоимости, то эта процедура приводит к тем же ре-
зультатам, что и процедура полного перебора.)
На рис. 5.9 приведена последовательность гипотетических
деревьев перебора, иллюстрирующая работу нашего алгоритма
упорядоченного перебора. Предположим, что раскрытие началь-
ной вершины привело к дереву перебора, изображенному на
рис. 5.9, а. Число, стоящее рядом с вершиной, указывает ве-
личину й. Для концевых вершин эти величины служат эври-
стическими оценками суммарных стоимостей решений соответ-
ствующих задач. Величины й для других вершин этого дерева
получаются в результате применения определения Й(п) для
суммарных стоимостей в предположении об единичной стоимо-
сти ребер. Исходя из этих значений Й, можно получить потен-
циальное дерево решения то, которое по оценке должно быть
верхней частью оптимального дерева решения. Это дерево то
выделено жирными ветвями.
Далее мы раскрываем некоторую концевую вершину в то-
Предположим, что в результате возникает дерево перебора,
изображенное на рис. 5.9, б. Из-за новых значений величин й
дерево то теперь переместится в другую часть дерева перебора.
Раскрытие вершины в этом дереве то приводит, скажем, к де-
реву перебора рис. 5.9, в. Здесь мы получили некоторые заклю-
чительные вершины, а значит, и некоторые разрешимые вер-
шины. Они отмечены черными кружочками. Заметим, что ве-
личины Й для заключительных вершин равны нулю. После еще
Рис. 5.8. Блок-схема программы упорядоченного перебора для «И/ИЛИ»
деревьев.
8
Рис. 5.9. Ряд деревьев перебора, построенных алгоритмом упорядоченного
перебора.
одного раскрытия мы, наконец, получаем дерево решения, вы-
деленное на рис. 5.9, г жирными ветвями. Суммарная стои-
мость этого дерева равна 9, как показывают вычисления с ис-
пользованием окончательных значений И.
5.8. ДОПУСТИМОСТЬ АЛГОРИТМА УПОРЯДОЧЕННОГО ПОИСКА
(ПЕРЕБОРА)
Как и при переборах в пространстве состояний, алгоритм
поиска на дереве «И/ИЛИ» называется допустимым, если его
применение всегда приводит к решению минимальной стоимо-
сти, при условии что дерево решения существует. Мы докажем
сейчас, что если оценка Й является нижней границей величины
Н для открытых вершин, то алгоритм упорядоченного перебора
допустим. Сначала докажем следующую лемму:
Лемма 5.1. Если 1г(п) для всех вершин из списка
ОТКРЫТ, то на любом этапе процесса перебора для всех по-
строенных вершин дерева перебора Й(п) й(п), причем для
вершин, уже полученных как разрешимые, здесь достигается
равенство.
Доказательство. Доказательство поведем индукцией по’
уровню дерева перебора1). Для деревьев перебора уровня О
лемма тривиально выполняется, так как для таких деревьев
единственной вершиной в дереве перебора будет начальная
вершина 5. Если а находится в списке ОТКРЫТ, то Й(а) =^й(а);
если же вершина а разрешима, будучи заключительной верши-
ной, то Й(а) = й(а) = 0. ’
Предположим теперь, что лемма верна для деревьев пере-
бора любого уровня, меньшего или равного некоторому произ-
вольному числу I (1^0), и докажем, что она верна для де-
ревьев перебора уровня / + 1.
Возьмем некоторое дерево перебора уровня 1+1. Так как
I 0, то у начальной вершины а имеются вершины, непосред-
ственно за ней следующие, скажем вершины п\, ... пк. Эти
вершины являются корнями поддеревьев уровня не выше I, так
что по предположению индукции лемма верна для всех вершин
этих поддеревьев. Иными словами, для всех вершин этих под-
деревьев Й И (равенство достигается для разрешимых вер-
шин). Таким образом, нам осталось доказать, что й(а) ^й(а),
а равенство достигается, когда вершина а разрешима. Предпо-
ложим сначала, что П{, ..., п* — вершины типа «ИЛИ». Тогда
по определению Й ;
. 4 (а) = ппп [с (а, га,) + А («<)]•
’) Уровень дерева перебора определяется как глубина наиболее глубокой
из его концевых вершин.
Но по предположению индукции Й(П1) Н(п<) для I —
— 1, к, так что
А (в) < ППП [с (5, щ) + к («01-
I
Правая часть этого неравенства по определению равна к($)г
и поэтому
А («)< Л (з).
Далее, если вершина 5 разрешима, то алгоритм обязан был
закончить свою работу, выдав дерево решения то, в котором не-
которая вершина, скажем «го, является дочерней для з. Па
определению т0
А (з) = с (з, гг10) + А (п10) = ппп [с (з, п() + А («,)]•
X*
Но так как то — дерево решения для з, то для него вершина пю
также должна быть разрешимой. По предположению индукции
/г(я,о) = к(п{0). Следовательно,
А (з) = с (з, п(0) + Л (гаго) = ппп [с (з, п() + А (п,)].
X*
Поскольку Й(П1) к(Пг) для 1=1, ..., к, ясно, что
А (з) = с (з, п10) + к (п,0) < Ш1П [с (з, п{) + к (пг)].
Так как вершина пю является одной из указанных вершин
п{, ТО
А (5) = с (з, гг1о) + к (п/0) = ппп [с (3, га») + к («*)].
Поэтому по определению Л(з)
А(з) = /1(з),
и лемма для случая, когда вершина з разрешима, доказана.
Аналогичные рассуждения приводят к тому же результату и в
случае, когда у з есть дочерние вершины типа «И» (и для сум-
марных, и для максимальных стоимостей). Доказательство за-
кончено.
Заметим, что так как Н(п) ==к(п) для всех разрешимых
вершин в дереве перебора, то поиску дерева минимальной сто-
имости не препятствует то, что на шаге (7) нашего алгоритма
мы выбрасываем из списка ОТКРЫТ все вершины, имеющие
разрешимые предшествующие им вершины. Не может произойти
так, чтобы отброшенные вершины составили часть дерева ре-
шения минимальной стоимости.
Теперь мы готовы сформулировать и доказать утверждение
о том, что наш алгоритм упорядоченного перебора допустим
в том случае, когда Й является нижней границей величины Л
для всех вершин из списка ОТКРЫТ.
Теорема 5.1. Если И(п) Н(п) для любой открытой вер-
шины п и стоимости всех дуг превосходят некоторую положи-
тельную величину б, то алгоритм упорядоченного перебора до-
пустим.
Доказательство. Стратегия доказательства этой теоремы
совпадает с использованной при доказательстве теоремы 3.1.
Предположим, что наш метод не приводит к построению опти-
мального дерева решения, но дерево решения в действитель-
ности существует. Снова мы имеем три случая: 1) алгоритм
заканчивает свою работу, но дерево решения остается ненай-
денным; 2) алгоритм вообще не прекращает работу; 3) алго-
ритм заканчивает свою работу, построив дерево решения, стои-
мость которого неминимальна.
Случай 1. Алгоритм заканчивает работу без построения де-
рева решения. Окончание может произойти лишь на шагах (6)
и (11) (стр. 144, 145). Если окончание произошло на шаге (6),
то начальная вершина разрешима, а это может случиться, лишь
если дерево решения было найдено. Если же окончание про-
изошло на шаге (11), то,начальная вершина неразрешима. Но
этот случай можно отбросить, поскольку мы предположили, что
дерево решения на самом деле существует.
Случай 2. Нет окончания вообще. В этом случае в конце
концов будет раскрыта вершина, имеющая глубину о! > Н(з)/8.
По определению величины Н (неважно, для суммарной стои-
мости или максимальной) тогда будет й(з) йб > Н(з), что
противоречит лемме 5.1.
Случай 3. Алгоритм заканчивает работу построением дерева
решения неминимальной стоимости. В момент окончания вер-
шина з должна оказаться разрешимой и, следовательно, по
лемме 5.1 й(з) =Н(з). Но величина Й(з) по окончании долж-
на быть равна стоимости дерева То, т. е. найденного дерева ре-
шения, и, таким образом, это решение имеет минимальную
стоимость.
5.9. ВЫБОР ВЕРШИНЫ В То ДЛЯ ОЧЕРЕДНОГО РАСКРЫТИЯ
Ясно, что свойство допустимости алгоритма упорядоченного
перебора с величиной й, являющейся нижней границей функции
И для открытых вершин, не зависит от того, какие из конце-
вых вершин в списке ОТКРЫТ выбираются для раскрытия. Мы
уже говорили, что, возможно, наиболее разумным было бы вы-
брать ту из концевых вершин в то, которая с наибольшей вероят-
ностью5) приведет к опровержению гипотезы о том, что то слу-
жит верхней частью дерева решения,, имеющего минимальную
стоимость. Если то на самом деле служит частью дерева мини-
мальной стоимости, то безразлично, какую из открытых вер-
шин в То раскрывать в первую очередь, ибо в этом случае они
так или иначе все должны быть выбраны для раскрытия. Од-
нако если то не составляет части дерева решения минимальной
стоимости, то нет смысла вкладывать слишком много сил в не-
нужный перебор. Тогда следует раскрыть в первую очередь ту
вершину в то, которая с наибольшей вероятностью обнаружит
ошибку, допущенную при выборе то.
Если используются суммарные стоимости, то вершиной, ко-
торая с наибольшей вероятностью показала бы непригодность
то, может оказаться открытая вершина в то, имеющая наиболь-
шее значение И. Так как она представляется концевой верши-
ной для решения максимальной стоимости, то, быть может, ее
раскрытие в наибольшей степени повысит оцениваемую (сум-
марную) стоимость дерева то.
В случае же максимальных стоимостей, по-видимому, по-
лезным -окажется метод выбора открытой вершины в то, при
котором, отправляясь от вершины $, мы идем по дереву то
к некоторой открытой концевой вершине, выбирая под каждой
из вершин конкретную дугу следующим образом. Всякий раз,
когда в то мы встречаем вершину п с несколькими дочерними
вершинами (типа «И») п%, ..., пк, то переходим к той из
неразрешимых дочерних вершин, которая максимизирует ве-
личину [с(п, щ) -|-й(пг)]. Достигнутая в результате такого про-
цесса концевая вершина и должна быть той. вершиной, раскры-
тие которой с наибольшей вероятностью окажет неблагоприят-
ное воздействие на оценку максимальной стоимости
дерева то.
Во всяком случае мы не можем доказать оптимальность ни
одного из этих методов выбора открытых вершин. По-видимому,
для «И/ИЛИ» деревьев нет результата, аналогичного резуль-
тату для пространства состояний, касающемуся раскрытия
наименьшего числа вершин. Интуитивно, однако, кажется прав-
доподобным, что при любом способе выбора открытой вершины
в то эффективность перебора выше для тех функций й, которые
лучше аппроксимируют истинную величину Н. Чем лучше ниж-
няя граница для 1г, используемая в Н, тем направленнее будет
идти перебор к дереву решения минимальной стоимости.
') Мы пользуемся словами «наибольшая вероятность», не вкладывая в
них формального смысла. Мы не будем даже пытаться определить вероят-
ности или произвести статистический анализ.
5.10. МОДИФИКАЦИИ
Как и в случае переборов в пространстве состояний, суще-
ствует ряд способов модификации основного алгоритма упо-
рядоченного перебора, делающих его более практическим в кон-
кретных ситуациях. Прежде всего, вместо того, чтобы после
каждого раскрытия вершины заново строить новое потенциаль-
ное дерево решения, можно было бы не прерываясь раскрыть
одну или более вершин в то и несколько их дочерних вершин,
а затем уже строить новое дерево то. Такая стратегия приводит
к снижению общих затрат на построение то, но в то же время
возникает риск, что некоторые из раскрытых вершин не будут
расположены на наилучшем потенциальном дереве решения.
В случае «И/ИЛИ» деревьев можно выбрать также страте-
гию поэтапного перебора, описанную в гл. 3. При ее использова-
нии необходимое пространство в памяти машины периодически
очищается в результате отбрасывания некоторых из поисковых
«И/ИЛИ» деревьев. Можно, например, определить, какое из
потенциальных деревьев решения внутри дерева перебора имеет
наибольшую оцениваемую стоимость. Тогда можно периодиче-
ски отбрасывать некоторое число наиболее «дорогих» потен-
циальных деревьев решения (с риском, конечно, что отброшен-
ное дерево окажется верхней частью истинного дерева мини-
мальной стоимости).
Если наш метод предполагается использовать для перебора
на «И/ИЛИ» графах (а не на «И/ИЛИ» деревьях), то в алго-
ритме следует произвести более важные изменения. При этом
необходимо принять во внимание соображения, упомянутые
в разд. 5.4.
5.11. МИНИМАКСНАЯ ПРОЦЕДУРА ПРИ ПЕРЕБОРЕ
НА ИГРОВЫХ ДЕРЕВЬЯХ
В гл. 4 мы видели, что игровые деревья можно представ-
лять в виде «И/ИЛИ» деревьев. Пользуясь этим, мы пытаемся
доказать, что игрок ПЛЮС может выиграть из некоторого на-
чального положения игры. Тогда те позиции, которые возникают
после хода игрока ПЛЮС, представляются «ИЛИ» вершинами,
а позиции, возникающие после хода игрока МИНУС, представ-
ляются «И» вершинами. Мы примем, что ПЛЮС ходит первым
и ходы ПЛЮСА и МИНУСА чередуются. Следовательно, дочер-
ними для «И» вершин будут «ИЛИ» вершины, и обратно. В со-
ответствии с принятым предположением мы будем считать, что
начальной вершиной является «И» вершина. Заключительная
вершина соответствует любой позиции, про которую известно, что
она является выигрышной для игрока ПЛЮС. (Определение за-
ключительной вершины должно быть изменено, если цель поиска
состоит в доказательстве того, что ПЛЮС может добиться
ничьей, исходя из заданной позиции, или что ПЛЮС в данной
позиции не может проиграть.)
Для многих простых игр (а также и для окончаний более
сложных игр) можно применить перебор на «И/ИЛИ» деревьях,
поскольку тогда доказательство выигрыша (или ничьей) можно
найти, не строя больших деревьев перебора. Тогда дерево ре-
шения, доказывающее выигрыш (или ничью), дает полную иг-
ровую стратегию для игрока ПЛЮС. Примерами простых игр,
в которых перебор на «И/ИЛИ» деревьях до получения ответа
представляется реально осуществимым, являются игра Гранди из
предыдущей главы, тик-так-ту (крестики-нолики), различные ва-
рианты игры ним и некоторые шахматные и шашечные энд-
шпили. Грубую оценку размеров дерева игры для тик-так-ту,
например, можно получить, заметив, что начальная вершина
имеет 9 дочерних вершин, каждая из которых в свою очередь
имеет по 8 дочерних вершин и т. д., что приводит к 9! = 362 880
вершинам в нижней части этого дерева. Однако многие пути об-
рываются на заключительных вершинах более высоких уровней,
и, кроме того, значительного уменьшения размеров дерева мож-
но достичь, если принять во внимание симметрии.
В случае более сложных игр, таких, как полная игра в шах-
маты или шашки, о переборе до конца на «И/ИЛИ» деревьях
не может быть и речи. Число вершин в полном игровом дереве
для шашек было оценено величиной 1О40, а для шахмат —
1О120. (Чтобы построить полное дерево для шашек, понадоби-
лось бы около 1021 столетий, даже если предположить, что
каждая дочерняя вершина образуется за 7з наносекунды.) Про-
цедуры упорядоченного перебора не настолько уменьшают фак-
тор ветвления, чтобы что-то существенно изменилось. Следова-
тельно, мы должны смириться с тем, что для сложных игр пе-
ребор до конца невозможен, т. е. следует- отказаться от мысли
доказать, что можно достичь выигрыша или ничьей (исключая,
возможно, эндшпили).
Вместо этого при переборе на игровых деревьях можно
было бы стремиться найти просто «хороший» первый ход. Мы
могли бы сделать этот ход, подождать ответа противника и
вновь осуществить перебор с тем, чтобы найти «хороший» ход
из новой позиции.
Перебор должен производиться так же, как обычный пере-
бор на «И/ИЛИ» графах. Можно воспользоваться либо мето-
дом полного перебора, либо перебором в глубину, либо ме-
тодами упорядоченного перебора, однако условия окончания
теперь необходимо изменить. Можно указать несколько искусст-
венных условий окончания, основанных на таких факторах,
как ограничение времени перебора, ограничение объема памяти
или глубины самой глубокой концевой вершины в дереве по-
иска. К тому же в шахматах, например, не оканчивают
перебора, если любая из концевых вершин представляет «жи-
вую» позицию, например позицию, в которой нет непосредствен-
но выгодного размена.
После того как перебор будет закончен, мы должны из-
влечь из дерева перебора оценку «лучшего» первого хода. Эту
оценку можно получить, применив к концевым вершинам де-
рева перебора статическую оценочную функцию. Оценочная
функция измеряет «достоинства» позиции, отвечающей конце-
вой вершине, и основана она на различных элементах пози-
ции, которые, как полагают, влияют на ее достоинства. Напри-
мер, в шашках такими полезными элементами являются отно-
сительная продвинутость своих шашек, контроль центра доски,
контроль центра доски дамками и т. д. При анализе игровых
деревьев обычно принимается соглашение, по которому в игро-
вых позициях, где ПЛЮС имеет преимущество, оценочная
функция положительна, а для позиций, где преимущество за
игроком МИНУС, оценочная функция отрицательна. Значения
вблизи нуля соответствуют игровым позициям, не дающим пре-
имущества ни одному из игроков.
Хороший первый ход можно найти с помощью минимаксной
процедуры. Мы предполагаем, что если бы игроку ПЛЮС при-
шлось выбирать между концевыми вершинами, то он выбрал
бы ту из них, которая имеет наибольшую оценку. Следователь-
но, вершине (типа «И»), являющейся родительской для конце-
вых вершин типа «ИЛИ», приписывается обращенная величина
(Ьаскей-ир уа!ие), равная максимуму оценок концевых вершин.
С другой стороны, если бы между концевыми вершинами при-
шлось' выбирать игроку МИНУС, то он, вероятно, предпочел
бы выбрать такую вершину, которая имела бы наименьшую
оценку (т. е. самую отрицательную). Следовательно, вершине
(типа «ИЛИ»), являющейся родительской для концевых «И»
вершин, приписывается обращенная величина, равная 'минимуму
оценок концевых вершин. После того как всем родительским
вершинам концевых вершин приписаны обращенные величины,
этот процесс «прослеживания в обратном направлении» перено-
сится на уровень выше при условии, что ПЛЮС выбирает вер-
шину с наибольшей обращенной величиной, а МИНУС — с на-
именьшей обращенной величиной.
Такое прослеживание в обратном направлении продол-
жается с уровня на уровень до тех пор, пока, наконец, обращен-
ные величины не будут приписаны всем вершинам, являющимся
дочерними для начальной вершины. Мы предполагаем, что если
первый ход должен делать игрок ПЛЮС (т. е. дочерними
для начальной вершины являются «ИЛИ» вершины), то он
должен выбрать‘в качестве своего первого хода ход, соответ-
ствующий дочерней вершине с наибольшим значением этой об-
ращенной величины.
Польза всей этой процедуры связана с тем, что величины,
полученные в результате прослеживания оценок в обратном на-
правлении, для вершин, непосредственно следующих за началь-
ной, считаются более надежными мерами относительного до-
стоинства соответствующих позиций, чем те величины, которые
можно было бы получить прямым применением оценочной функ-
ции к этим позициям. В конце концов эти обращенные вели-
чины будут основаны на «просмотре вперед» по дереву игры, и
поэтому они зависят от особенностей, возникающих ближе к
концу игры.
Проиллюстрируем минимаксный метод на простом примере,
использующем игру тик-так-ту. Предположим, что ПЛЮС ста-
вит крестики (X), а МИНУС ставит нолики (О), и пусть пер-
вым ходит ПЛЮС. Мы будем производить полный перебор до
тех пор, пока не будут построены все вершины на уровне 2, а за-
тем применим статическую оценочную функцию к позициям,
соответствующим этим вершинам. Пусть наша оценочная функ-
ция е(р) позиции р задается следующим образом:
Если р не является позицией выигрыша, то
е(р) = (число полных строк, столбцов или диагоналей, все
еще открытых для игрока ПЛЮС) — (число полных
строк, столбцов или диагоналей, все еще открытых
для игрока МИНУС).
Если позиция р выигрышна для игрока ПЛЮС, то
е(р) = оо (символ оо означает очень большое положитель-
ное число).
Если позиция р выигрышна для игрока МИНУС, то
е(р)=—оо.
О
X
Таким образом, если р есть
, то е (р) = 6 — 4 = 2. При
построении дочерних позиций мы будем учитывать симметрии.
Так, все позиции
мы будем считать идентичными. (В начале игры фактор ветвле-
ния в игре тик-так-ту мал из-за симметрий, а в конце игры
он мал из-за небольшого числа незаполненных клеток.)
На рис. 5.10 изображено дерево, построенное при переборе
до глубины 2. Под концевыми вершинами показаны их стати-
ческие оценки, а величины, полученные в результате прослежи-
вания в обратном направлении, обведены кружком. Поскольку
!О|Х
Рис- 5.10. Минимаксный подход в игре тик-так-ту (первый этап).
позици^
имеет обращенную величину с наибольшим зна-
чением.она выбирается как первый ход. (Кстати, оказывается,
что это лучший первый ход для игрока ПЛЮС.)
Предположим теперь, что ПЛЮС делает этот ход, и МИ-
О
х
НУС отвечает позицией
. (Плохой ход для бедного игро-
ка МИНУС, который, видимо, не пользуется хорошей стратегией
перебора.) Далее ПЛЮС осуществляет перебор на глубину 2
01 ч
(отправляясь от позиции х ). что приводит к дереву пе-
ребора, изображенному на рис. 5.11. ПЛЮС делает наилучший
ход, а МИНУС делает ход, благодаря которому он избегает
.немедленного поражения; в результате получается позиция
. Затем ПЛЮС снова
осуществляет перебор, что приво-
дит к дереву, изображенному на рис. 5.12. Некоторые из конце-
вых вершин этого дерева (например, вершина Д) представляют
позиции, в которых МИНУС выигрывает, и поэтому они имеют
оценку —сю. Проследив эти оценки в обратном направлении, мы
видим, что наилучшим ходом для игрока ПЛЮС является здесь
дот единственный ход, который позволяет ему избежать немед-
ленного поражения. Теперь даже МИНУС может видеть, что
ПЛЮС должен выиграть при следующем своем ходе, и потому
он с достоинством уступает.
5.12. АЛЬФА-БЕТА ПРОЦЕДУРА
В только что описанной процедуре перебора процесс по-
строения дерева перебора полностью отделен от процесса оцен-
ки позиции. Только после того, как заканчивается построение
дерева, начинается оценка позиций. Оказывается, что такое
разделение приводит к весьма неэффективной стратегии. Можно
добиться существенного снижения необходимого объема пере-
бора (иногда на несколько порядков), если оценивание конце-
вых вершин и вычисление обращенных величин вести одновре-
менно с построением дерева.
Рассмотрим дерево перебора, изображенное на рис. 5.12
(последний этап нашего перебора в игре тик-так-ту). Предпо-
ложим, что концевая вершина оценивается, как только она по-
строена. Тогда после построения и оценки вершины А нет
Рис. 5.11. Минимаксный подход в игре тик-так-ту (второй этап).
Рис.
5.12. Минимаксный подход
в игре тик-так-ту (третий этап).
никакого смысла строить (и оценивать) вершины В, С и О.
В самом деле, так как в распоряжении игрока МИНУС имеется
позиция А и он ничего не может ей предпочесть, то ясно, что
он выберет именно А. Тогда можно приписать вершине, пред-
шествующей А, обращенную величину —оо и продолжать пе-
ребор, сэкономив поисковые усилия, связанные с построением
и оценкой вершин В, С и О. (Заметим, что эта экономия была
бы даже еще значительнее, если бы перебор производился
до большей глубины, поскольку не нужно было бы строить ни
одну из вершин, следующую за В, С и О.) Важно отметить,
что тот факт, что вершины В, С и В не строятся, никак не мо-
жет повлиять на ход, который окажется для игрока ПЛЮС
наилучшим первым ходом.
В этом примере экономия затрат на перебор связана с тем,
что позиция А выигрышна для игрока МИНУС. Однако эконо-
мии такого же типа можно добиться даже и тогда, когда ни
одна из позиций дерева перебора не является выигрышной ни
для игрока ПЛЮС, ни для игрока МИНУС.
Рассмотрим дерево для игры тик-так-ту, изображенное на
рис. 5.10. Часть этого дерева воспроизведена на рис. 5.13. Пред-
положим, что производится перебор на заданную глубину, и как
только строится некоторая концевая вершина, вычисляется ее
статическая оценка. Предположим также, что, как только пози-
ции может быть приписана обращенная величина, эта величина
сразу же вычисляется. Теперь рассмотрим ситуацию, возни-
кающую на том этапе перебора в глубину, когда уже построены
вершина А и ее дочерние вершины, но еще не построена вер-
шина В. Для вершины А обращенная величина равна —1. Сей-
час начальной вершине можно приписать предварительную об-
ращенную величину (ПОВ), равную —1. В зависимости от
обращенных величин других дочерних вершин начальной вер-
шины окончательная обращенная величина начальной вершины
может стать больше этой предварительной величины —1, но не
может стать меньше.
Продолжим процесс поиска в глубину до момента, когда
строятся вершина В и первая из ее дочерних вершин, т. е. С.
Вершине С присваивается статическая величина —1. Вершине
В можно присвоить предварительную обращенную величину
(ПОВ), равную —1. В зависимости от статических величин
остальных дочерних вершин вершины В окончательная обра-
щенная величина вершины В может стать меньше—1, но не
может стать больше. Заметим, что окончательная обращенная
величина вершины В не может поэтому превысить ПОВ началь-
ной вершины и, следовательно, можно прервать перебор ниже
вершины В. Можно быть уверенным в том, что вершина В не
окажется предпочтительнее вершины А.
Это уменьшение затрат на перебор достигается благодаря
прослеживанию предварительных обращенных величин. В об-
щем случае, как только дочерним вершинам некоторой вершины
приписаны обращенные величины, следует пересмотреть ПОВ
этой вершины. Следует учесть, что
1) ПОВ «И» вершин (включая начальную вершину) не мо-
жет уменьшаться.
2) ПОВ «ИЛИ» вершин не может увеличиваться.
Учитывая эти замечания, сформулируем следующие правила
прерывания перебора:
а) Перебор можно прервать ниже любой «ИЛИ» вершины,
ПОВ которой не больше, чем ПОВ любой предшествующей ей
вершины «И» (включая начальную вершину). Этой вершине
«ИЛИ» затем можно присвоить ее ПОВ в качестве оконча-
тельной обращенной величины1).
б) Перебор может быть прерван ниже любой «И» вершины,
ПОВ которой не меньше, чем ПОВ любой предшествующей ей
«ИЛИ» вершины. Этой «И» вершине затем можно присвоить ее
ПОВ в качестве окончательной обращенной величины.
>) Заметим, что эта обращенная величина может не быть «истинной» для
своей вершины, но она является той границей, которая приводит к правиль-
ному вычислению предварительной обращенной величины для предшествую-
щей вершины.
Рис.
5.14. Пример, иллюстрирующий перебор альфа-бета
(□ — вершины типа «И», О — вершины типа «ИЛИ»).
В процессе поиска ПОВ вычисляются следующим образом:
1) ПОВ для «И» вершины (включая начальную вершину)
полагается равной наибольшей из имеющихся в данный момент
обращенных величин ее дочерних вершин.
2) ПОВ для вершины «ИЛИ» полагается равной наимень-
шей из имеющихся в данный момент обращенных величин ее
дочерних вершин.
Обычно ПОВ для «И» вершин называют альфа-величинами,
а ПОВ для «ИЛИ» вершин называют бета-величинами. Если
перебор прерывается в соответствии с правилом (а), то гово-
рят, что имеет место альфа-отсечение, а если в соответствии с
правилом (б), то говорят, что имеет место бета-отсечение. Весь
процесс прослеживания ПОВ и осуществления отсечений, когда
это возможно, обычно называют альфа-бета процедурой. Про-
цедура заканчивается, когда всем дочерним вершинам для на-
чальной вершины приписаны окончательные обращенные вели-
чины. Тогда наилучшим первым ходом будет ход, приводящий
к дочерней вершине с наибольшей обращенной величиной. За-
метим, что такая процедура всегда приводит к тому же наилуч-
шему первому ходу, что и простой минимаксный метод той же
глубины. Единственное отличие состоит в том, что альфа-бета
процедура, как правило, находит этот наилучший первый ход
после перебора намного меньшего объема.
Применение альфа-бета процедуры иллюстрируется на дере-
ве, изображенном на рис. 5.14. Это дерево перебора, построен-
ное на глубину 6. (Для удобства «И» вершины изображены
квадратиками, а вершины «ИЛИ» — кружками.) Концевые вер-
шины имеют указанные статические значения. Предположим,
что мы ведем перебор с использованием альфа-бета процедуры.
(Мы опять договариваемся строить в первую очередь вершины,
расположенные слева.) Поддерево, получающееся в результате
альфа-бета процедуры, выделено жирными линиями. Отсечен-
ные вершины зачеркнуты. Заметим, что пришлось оценить толь-
ко 18 из. первоначальных 41 вершин. Читатель может на этом
примере проконтролировать свое понимание смысла альфа-бета
процедуры, попробовав повторить перебор.
5.13. ЭФФЕКТИВНОСТЬ ПЕРЕБОРА ПРИ АЛЬФА-БЕТА ПРОЦЕДУРЕ
Для того чтобы можно было произвести отсечения, по край-
ней мере часть дерева перебора должна быть построена до
максимальной глубины, поскольку предварительные обращен-
ные величины должны основываться на статических значениях
концевых вершин. Поэтому при использовании альфа-бета про-
цедуры обычно прибегают к той или иной разновидности пере-
бора' в глубину. Число отсечений, возможных в процессе пере-
бора, зависит от степени, в которой первые предварительные
величины аппроксимируют окончательные обращенные вели-
чины.
Окончательная обращенная величина для начальной вер-
шины совпадает со статическим значением одной из концевых
вершин. Если эту вершину можно достичь первой при переборе
в глубину, то число отсечений будет максимальным. При макси-
мальном числе отсечений требуется строить и оценивать мини-
мальное число концевых вершин.
Пусть дерево имеет глубину й и у каждой вершины (за
исключением концевой) в точности В дочерних вершин. У та-
кого дерева будет ровно концевых вершин. Предположим,
что в альфа-бета процедуре дочерние вершины строятся в по-
рядке, соответствующем их истинным обращенным величинам:
для «ИЛИ» вершин строятся дочерние вершины с наибольшими
значениями, а для вершин «И» — с наименьшими. (Конечно, эти
обращенные величины в момент построения дочерних вершин,
как правило, не известны, так что в действительности этот по-
рядок никогда не достигается, разве что случайно.)
Оказывается, что такой порядок максимизирует число отсе-
чений и минимизирует число построенных концевых вершин.
Обозначим это минимальное число концевых вершин через Уд.
Можно показать, что
( 2В°12— 1 для четного й,
| 5<о+1)/2 д(о-1)/2— । для нечетного О.
Иными словами, число концевых вершин глубины О, которые
будут построены при оптимальном альфа-бета переборе, при-
мерно равно числу концевых вершин, которые были бы построе-
ны на глубине й/2 без альфа-бета процедуры. Таким образом,
при тех же требованиях к памяти альфа-бета процедура с со-
вершенным упорядочением дочерних вершин позволяет удвоить
глубину перебора. Конечно, в задачах перебора невозможно до-
биться совершенного упорядочения (если бы это было возмож-
но, то мы не нуждались бы ни в каком процессе перебора!),
однако важно использовать наилучшую из имеющихся в нашем
распрряжении функций упорядочения, поскольку это приносит
большую потенциальную выгоду.
5.14. КОМБИНИРОВАННЫЕ АЛЬФА-БЕТА ПРОЦЕДУРЫ И ПРОЦЕДУРЫ
УПОРЯДОЧЕНИЯ
Сразу приходят на ум две процедуры построения дочерних
вершин в той последовательности, которая оценивается как наи-
лучшая.
Фиксированное упорядочение
Можно использовать процедуру перебора в глубину, в кото-
рой в первую очередь строится.дочерняя вершина, оцениваемая
как лучший ход (для любого игрока). Мы будем говорить, что
в такой процедуре используется фиксированное упорядочение.
Так, если, скажем, вершина 1 оценивается как наилучшая из
дочерних вершин начальной вершины (с точки зрения игрока
ПЛЮС), то следующей строится она, и она же выбирается для
очередного раскрытия. Тогда если, скажем, вершина 11 оцени-
вается как наилучшая из дочерних вершин вершины 1 (с точки
зрения игрока МИНУС), то она строится следующей и выби-
рается для раскрытия. Этот процесс продолжается до тех
пор, пока не будет достигнута концевая вершина, после чего
становятся возможными отсечения. Перебор в глубину (с ис-
пользованием альфа-бета процедуры) продолжается обычным
образом, причем построение вершин по-прежнему производится
в порядке их оцениваемого достоинства.
Оценку достоинства вершины можно производить различ-
ными способами. Для ранжирования дочерних вершин можно
_ взять саму статическую оценочную функцию или, быть может,
какую-нибудь более простую (и менее надежную) оценочную
функцию. С другой стороны, под каждой из дочерних вершин
'можно произвести менее глубокий перебор, а потом упорядо-
чить дочерние вершины, исходя из их обращенных величин, по-
лученных в результате такого неглубокого перебора. Конечно,
в каждом из этих методов следует сопоставить дополнительные
затраты на перебор, связанные с упорядочением, с той эконо-
мией, которая вызывается возрастающим при этом числом от-
сечений ветвей в дереве перебора. Обычно для того, чтобы вы-
брать правильное соотношение между этими факторами, нужно
произвести эксперимент.
Динамическое упорядочение
Достоинство описанной альфа-бета процедуры с фиксирован-
ным упорядочением заключается в том, что она довольно проста.
Но может случиться, что в ходе перебора, идущего по опреде-
ленному пути в дереве перебора, становится очевидно, что этот
перебор следовало бы продолжить, отправляясь от некоторой
более высокой вершины, которая теперь более эффективна.
Осуществлять перебор в той части дерева, которая представ-
ляется наиболее перспективной, до тех пор пока не будет до-
стигнута максимальная глубина, можно будет, слегка изменив
алгоритм упорядоченного перебора на деревьях «И/ИЛИ». Мы
будем говорить, что модифицированный алгоритм упорядочен-
ного перебора использует в этом случае динамическое упоря-
дочение.
Изменения весьма просты. На каждом этапе в процессе пе-
ребора в дереве перебора будут концевые вершины. Вместо того
чтобы подсчитывать для этих вершин значения Н (измеряющие
оцениваемую стоимость), можно для измерения достоинства со-
ответствующих позиций игры привлечь некоторую оценочную
функцию е. Тогда, по аналогии с подсчетом значений 1г, для не-
концевых вершин дерева перебора будут вычисляться обращен-
ные величины, или е-значения. (Заметим, что стоимости дуг в
дереве игры обычно не задаются; поэтому обращенные величины
будут вычисляться точно так же, как в минимаксной про-
цедуре.)
На основе обращенных е-значений в дереве выделяется це-
почка наилучших ходов, ведущая к одной из его концевых вер-
шин. Эта вершина и раскрывается в следующую очередь. (Наи-
лучшим ходом под вершиной и будет выбор дочерней «ИЛИ»
вершины, имеющей наибольшее обращенное е-значение; наи-
лучшим ходом под «ИЛИ» вершиной будет выбор дочерней
«И» вершины, имеющей наименьшее обращенное е-значение.)
Когда в конечном итоге достигается максимальная глубина, у
нас появляется возможность подсчитать предварительные обра-
щенные величины, и тогда можно начать искать возможные
отсечения. (Выполнение отсечений аналогично удалению вер-
шин из списка ОТКРЫТ на шагах (7) и (12) алгоритма упоря-
доченного перебора (стр. 144, 145).)
Здесь снова можно оценить достоинства позиции, соответ-
ствующей этой концевой вершине дерева перебора, с помощью
статической оценочной функции или посредством неглубокого
перебора. Можно допустить также, чтобы до того, как будут
производиться вычисления, связанные с получением нового де-
рева то, под вершиной, выбранной для раскрытия, вырастал
целый кусок дерева. В ряде экспериментов (Слейджл и Дик-
сон, 1969) на примере игры калах1) было показано, что метод
альфа-бета, использующий определенный вид динамического
упорядочения, более эффективен по .сравнению с альфа-бета
процедурой с фиксированным упорядочением или же (есте-
ственно) по сравнению с простой минимаксной процедурой без
альфа-бета.
5.15. ВОЗМОЖНОЕ УЛУЧШЕНИЕ МЕТОДОВ, ОСНОВАННЫХ НА
МИНИМАКСЕ
Основная философия методов, основанных на минимаксе
(включая методы, использующие альфа-бета), состоит в том,
что наилучший ход игрока МИНУС определяется перебором,
произведенным игроком ПЛЮС. Если предположить, что по-
) Игра калах подробно описана в журнале «Наука» и жизнь», № 12>
106—114, 1971. Там же приведено (популярное) описание нескольких про-
грамм этой игры для ЭВМ. — Прим, перев.
исковые возможности игрока МИНУС те же, что и у игрока
ПЛЮС; то в'действительности его^ перебор будет произведен
на один уровень глубже перебора, произведенного в дереве
перебора игроком ПЛЮС. Таким образом, после того как игрок
МИНУС осуществит перебор, он может выбрать свой ответный
ход на основе обращенных величин, более надежных, чем те,
что были вычислены игроком ПЛЮС. Следовательно, наилуч-
ший ход игрока МИНУС не будет совпадать с наилучшим
ходом, полученным ранее игроком ПЛЮС.
Можно исправить это положение, слегка изменив минимакс-
ный метод построения обращенных величин. Вместо того чтобы
в качестве обращенной величины брать наибольшее (или наи-
меньшее) из значений для дочерних вершин, можно взять неко-
торую более сложную функцию этих значений. Например, к об-
ращенной величине для «И» вершины предлагалось добавлять
еще некоторую фиксированную величину, если наибольшее зна-
чение имеет более чем одна из дочерних вершин «ИЛИ». Ана-
логично эту фиксированную величину предлагалось вычитать из
величин «ИЛИ» вершин, если «И» вершина имеет более чем
одну «хорошую» (для игрока МИНУС) дочернюю вершину.
Эта стратегия добавления или вычитания определенной сум-
мы позволяет выделить дополнительные достоинства позиции,
из которой можно сделать несколько хороших ходов. Экспери-
менты, проверенные с этой стратегией (Слейджл и Диксон,
1970), показывают, что ее использование действительно приво-
дит к лучшей игре, по крайней мере в случае игры калах.
5.16. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
Развитие методов перебора на «И/ИЛИ» графах
В стратегиях поиска большинства из ранних программ, в ко-
торых строились деревья подзадач, применялись лишь простые
методы упорядочения. В первых вариантах универсального ре-
шателя задач применялась стратегия перебора в глубину и
привлекались средства оценки трудности задач; возвращение
назад производилось в тех случаях, когда дочерняя задача пред-
ставлялась более сложной по сравнению с одной из предше-
ствующих ей задач. В программе 8А1МТ Слейджла в качестве
меры трудности задачи вводится «глубина подинтегрального
выражения» и обычно в первую очередь расматривается самая
легкая и? задач.
В 60-х годах Слейджл и его сотрудники провели много экс-
периментов с различными стратегиями перебора для игровых
деревьев и «И/ИЛИ» деревьев. Обзор стратегий для игровых
деревьев содержится в статье Слейджла и Диксона (1969).
В самой сложной из этих стратегий используется динамиче-
ское упорядочение раскрытия вершин. Программа Слейджла и
Бурского (1968), названная МПЕПРЬЕ (МПЕПригрозе Рго-
^гат 1Ьа1 БЕагпз), включает некоторую универсальную страте-
гию для перебора на «И/ИЛИ» графах. В этой стратегии ис-
пользуется понятие «вероятности того, что предположение
верно», а затем определяется «функция качества», заданная на
множестве открытых вершин дерева. Вершина, оказывающая
наибольшее влияние на вероятность того, что первоначальное
предположение верно, считается обладающей наиболее высоким
«качеством». Последняя и выбирается для раскрытия.
Амарель (1967) предложил стратегию «контроля внимания»
для упорядочения процесса раскрытий в «И/ИЛИ» дереве. Эта
стратегия связана с попыткой найти решение минимальной сто-
имости. Автор этой книги (Нильсон, 1969) также предложил
одну стратегию минимизации стоимости и позже понял, что
она по существу совпадает со стратегией Амареля. В работе
Нильсона (1969) доказывается, что эта стратегия действительно
позволяет найти решения минимальной стоимости. Это доказа-
тельство, так же как и доказательство, приведенное в настоя-
щей главе, похоже на доказательство Харта, Нильсона и Ра-
фаэля (1968) для графов в пространстве состояний. Стратегия
Амареля — Нильсона мало отличается от метода динамического
упорядочения Слейджла и Диксона. Описание алгоритма упо-
рядоченного поиска, приведенное в настоящей главе, является
просто попыткой дать достаточно ясное и общее представление
об этой основной стратегии.
Развитие методов перебора на игровых деревьях
Клод Шеннон (1950) рассмотрел некоторые вопросы, относя-
щиеся к созданию программ для машины, играющей в такие
сложные игры, как шахматы. Он предложил применять мини-
максную поисковую процедуру вместе со статической оценоч-
ной функцией. Ньюэлл, Шоу и Саймон (1958) использовали его
идеи при конструировании первых программ для игры в шах-
маты. Им принадлежит также блестящий обзор этой области
исследований. Дополнительное обсуждение программ для игры
в шахматы вместе с «пятилетним планом работ» в области ав-
томатической шахматной игры можно найти в статье Гуда
(1968), содержащей также некоторые ссылки.
В 1959 г. Сэмюэль описал программу игры в шашки, в кото-
рой использовались полиномиальные оценочные функции, мини-
максные методы перебора и различные стратегии «обучения»,
позволяющее совершенствовать игру1)- Программа Сэмюэля
) Позднее Сэмюэль отмечал (частное сообщение), что в его программе
применяется также альфа-бета процедура, но в то время он полагал, что ее
использование носит слишком очевидный характер, чтобы стоило включать ее
в статью.
блестяще играет в шашки и выигрывает у всех, за исключением
лишь очень сильных игроков. Она по-прежнему остается од-
ним из лучших примеров применения методов искусственного
интеллекта. Дальнейшая работа над этой программой описана
в работе Сэмюэля (1967). Одной из особенностей самых послед-
них вариантов программы Сэмюэля является динамическое
упорядочение процедуры перебора, до некоторой степени похо-
жее на упорядочение Слейджла и Диксона (1969).
Альфа-бета процедура обычно представляется довольно оче-
видным развитием минимаксного подхода и поэтому незави-
симо «открывалась» рядом исследователей. Впервые она была
описана Ньюэллом, Шоу и Саймоном (1958) и была предметом
глубокого изучения, проведенного Маккарти и его учениками
(Эдвардс и Харт, 1963) в Массачусетском технологическом ин-
ституте. Существует несколько ясных изложений этого метода
и его свойств. Хорошее его описание содержится во второй
статье Сэмюэля (1967), посвященной игре в шашки, а также
в статье Слейджла и Диксона (1969). Результаты, касающиеся
эффективности перебора в альфа-бета процедуре, впервые были
установлены Эдвардсом и Хартом (1963) на основе теоремы,
которую они приписывают Михаэлу Левину. Позднее Слейджл
и Диксон (1969) привели, как они полагают, первое опублико-
ванное доказательство этой теоремы. Они рассмотрели несколь-
ко вариантов альфа-бета процедуры, в том числе (наилучший
вариант) использование динамического упорядочения. Сравне-
ние работы этих различных стратегий было проведено на при-
мере старинной игры калах.
Наше исследование возможных усовершенствований мето-
дов, основанных на минимаксе, исходит из некоторых предло-
жений Слейджла (19636) и Слейджла и Диксона (1970). В по-
следней статье описываются эксперименты с «Программой
перебора на деревьях М&М», в которой при вычислении обра-
щенных величин добавляется (или вычитается) фиксированная
величина.
Некоторые характерные игровые программы
Шахматы
Кистер и др. (1957) описали самую первую шахматную си-
стему, запрограммированную на вычислительной машине
(МАМАС I в Лос-Аламосе). В ней используется уменьшенная
доска (6X6), и ее игра представляется довольно бедной.
Бернштейн и др. (1958) описали шахматную систему, запро-
граммированную на машине 1ВМ. Она также играет довольно
плохо, но на доске обычных размеров (8X8).
Ньюэлл, Шоу и Саймон (1958) дали другой пример ранней
шахматной программы, разработанной в Карнеги.
Коток (1962) изложил первый вариант программы, состав-
ленной в Массачусетском технологическом институте, которая
позже была взята Маккарти в Станфорд и слегка модифици-
рована. Она уже достигает уровня игры посредственного иг-
рока.
Г. М. Адельсон-Вельский и др. (в нашем распоряжении нет
их работы1)) написали программу в Институте теоретической и
экспериментальной физики (Москва). Эта программа победила
в турнире программу Котока—'Маккарти. (См. 8КЗАКТ Ыеч/з-
1еНег, № 4 (июнь 1967), стр. 11.)
Гринблатт и др. (1967) описали программу, составленную
в Массачусетском технологическом институте, которая теперь
называется Мэк Хак. Уровень ее игры можно охарактеризовать
как уровень «среднелюбительский». Она является почетным чле-
ном Массачусетского шахматного общества и получила катего-
рию С. Некоторое другие примеры игр содержатся в следующих
выпусках 8ЮАКТ Ме\уз1еНег, № 6 (октябрь 1967), стр. 8 (здес$>
вычислительная машина выигрывает у X. Дрейфуса, который
прежде выражал сомнение в том, что машина вообще способна
выиграть у игрока-любителя); № 9 (апрель 1968), стр. 9—10,
№ 15 (апрель 1969), стр. 8—10; № 16 (июнь 1969), стр. 9—11.
Шашки
Сэмюэль (1959, 1967) продолжает усовершенствовать прог-
рамму, которая великолепно играет в шашки, но не может на-
нести поражение чемпиону мира.
Калах* 2)
Первую программу для этой игры написал Рассел (1964).
Слейджл и Диксон (1969) описали эксперименты с исполь-
зованием игры калах и (1970) результаты экспериментов, в ко-
торых калах используется для испытания «процедуры М&М».
(По-видимому, в игре калах человек неспособен выиграть
у машины.)
Гоу
Зобрист (1969) написал программу для игры в старинную
и трудную игру гоу. С точки зрения человека, эта программа
играет довольно плохо и не производит перебора по дереву.
Примеры работы программы Зобриста можно найти в 81САКТ
№^51еНег, № 18 (октябрь 1969), стр. 20—22.
Задачи
5.1. При проведении индукции в лемме 5.1 мы получили доказательство
для случая, когда дочерними вершинами начальной вершины являются «ИЛИ»
вершины, и отметили, что подобные рассуждения можно применить и тогда,
’) См. статью Адельсона-Вельского и др., УМН, 25, вып. 2(152), (1970).—»
Прим, перев.
2) См. примечание переводчика на стр. 166. — Прим, перев.
когда дочерними вершинами являются «И» вершины. Дайте доказательство
для этого случая, закончив, таким образом, доказательство леммы 5.1.
5.2. (Для играющих в шахматы.) Возьмите какой-нибудь шахматный энд-
шпиль (скажем, из шахматного раздела газеты) и решите его, построив пол-
ное игровое дерево. Нарисуйте это дерево перебора, указав все ходы, которые
вы рассмотрели, и отметьте «И/ИЛИ» поддерево решения. Какие специфи-
чески шахматные эвристики вы использовали при построении дерева пере-
бора?
*5.3. Постройте алгоритм упорядоченного перебора для «И/ИЛИ» графов
(обобщив соответствующий алгоритм для деревьев, описанный в разд. 5.7).
5.4. Проведите альфа-бета перебор на игровом дереве, изображенном на
рис. 5.14, строя в первую очередь самые правые вершины. Укажите, где
делаются отсечения, и сравните с- рис. 5.14, на котором- в первую очередь
строились самые левые вершины.
*5.5. (Для программистов на языке Ы8Р.) Напишите на Ы8Р функцию
8ЕАКСН(8ТАКТ, ЭЕРТН), которая строит игровое дерево, применяя построи-
тель допустимых ходов.на Ы8Р вида ЕЕОАЕ8 (РО81Т1ОМ) сначала к исход-
ной позиции 8ТАКТ, а затем к ее дочерним позициям и т. д. вплоть до не-
которой максимальной глубины ВЕРТН. (Предположите, что в позиции
8ТАКТ ходит игрок ПЛЮС, а затем ходы чередуются.) Функция 8ЕАКСН
должна применять статическую оценочную функцию УАЬ (РОЗтОМ) к вер-
шинам с глубиной, равной ВЕРТИ, и производить альфа-бета перебор с тем,
чтобы найти наилучший ход в позиции 8ТАКТ. Значением 8ЕАКСН должен
быть список вида (ВРО81Т1ОМ, УАЬЧЕ), где ВРО81Т1ОИ— это наилучшая
дочерняя (по отношению к 8ТАКТ) позиция, а УАШЕ — обращенная вели-
чина для игрока ПЛЮС.
*5.6. Напишите для вычислительной машины программу игры в трехмер-
ную игру тик-так-ту (называемую иногда Кьюбик). В эту игру играют два
или более игрока на кубе 4X4X4, разделенном иа 64 ячейки. Каждый из
игроков по очереди помещает один из своих значков в одну из свободных
ячеек. Первый из игроков, которому удается поместить четыре своих значка
в одну строку, столбец или диагональ любой из плоскостей куба или вдоль
любой из главных диагоналей куба, выигрывает. В программе можно при-
менить любую разумную стратегию перебора, но следует использовать в ней
также и некоторые эвристические элементы, позволяющие ограничивать число
дочерних позиций, строящихся в игровом дереве. Чтобы охватить игры п лиц,
п 2, потребуется обобщить понятия игрового дерева и перебора на игровом
дереве.
Глава 6
ДОКАЗАТЕЛЬСТВО ТЕОРЕМ
В ИСЧИСЛЕНИИ ПРЕДИКАТОВ
6.1. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ КАК ЯЗЫК ДЛЯ РЕШЕНИЯ ЗАДАЧ
Мы отмечали в гл. 1, что для решения многих задач может
потребоваться логический анализ. Для автоматического логи*
ческого рассуждения необходим некоторый формальный язык,
на котором можно формулировать посылки и делать верные
логические выводы. Все, что для этого требуется, — это возмож-
ность описать интересующую нас задачу и средства поиска со*
ответствующих шагов в процессе логического вывода.
Исчисление предикатов первого порядка — это такая система
в логике, в которой можно выразить большую часть того, что
относится к математике, а также многое из разговорного языка.
Эта система содержит правила логического вывода, позволяю-
щие делать верные логические построения новых утверждений,
исходя из некоторого заданного множества утверждений. Бла-
годаря своей общности и логической силе исчисление предика-
тов может всерьез претендовать на использование его для ма-
шинного построения умозаключений.
В этой главе мы на время отойдем от нашей главной цели
изучения процессов решения и дадим обзор теории исчисления
предикатов и приемов дедукции в этой системе, основанных на
принципе резольвенций1). В гл. 7 мы вернемся к предмету ре-
шения задач и приведем примеры, иллюстрирующие задачи. На-
конец, в гл. 8 мы объясним работу некоторых наиболее эффек-
тивных способов поиска требуемых логических заключений.
Язык, подобный языку в исчислении предикатов, опреде-
ляется его синтаксисом. Чтобы задать синтаксис, надо задать
алфавит символов, которые будут использоваться в этом языке,
и правила соединения этих символов друг с другом в выраже-
ниях, допустимых на этом языке. Один из важных классов
выражений в исчислении предикатов — это класс правильно по-
строенных формул (п. п. формул).
Мы обычно пользуемся языком для того, чтобы делать
утверждения, касающиеся интересующей нас области. Отноше-
ния между языком и описываемой им областью определяются
семантикой этого языка. П. п. формулы исчисления предикатов
как раз являются теми выражениями, которые мы будем ис-
’) Используется также термин «резолюция», который нам представляется
менее удачным русским переводом английского гезоТпНоп. — Прим, перев.
пользовать в качестве утверждений, касающихся интересующей
нас области. Говорят, что п. п. формулы принимают значение
Т или Т в зависимости от того, являются эти утверждения в
этой области истинными или ложными. Приемы обращения
с п. п. формулами позволяют строить умозаключения, отно-
сящиеся к некоторой области, и, следовательно, могут пред-
ставить интерес при создании процессов принятия решения, тре-
бующих такого умозаключения.
В следующем разделе мы зададим синтаксис одного из ва-
риантов исчисления предикатов. Затем покажем, как на этом
языке можно делать утверждения, касающиеся описываемой им
области.
6.2. СИНТАКСИС
Синтаксис нашей системы исчисления предикатов включает
в себя задание алфавита символов и определение различных
полезных выражений, которые можно построить из этих сим-
волов.
Для того чтобы объяснить основные идеи, мы начнем с вве-
дения сравнительно • примитивной системы1). Потом добавим
к этому алфавиту другие символы, позволяющие записывать
некоторые из выражений короче.
Основной алфавит состоит из таких множеств символов:
1. Знаки пунктуации: , ( ).
2. Логические символы: ~ ==>. (Символ ~ читается как
«не», а символ ==> как «влечет за собой».)
3. н-местные функциональные буквы: (г^1, п^О).
называются константными буквами. Для простоты записи вме-
сто $ удобно употреблять строчные буквы а, Ь, с, а вместо
других — строчные буквы /, И.без индексов.)* 2)
4. п-местные предикатные буквы: р? 0'^1, н^О). (р°{ на-
зываются пропозициональными буквами. Мы включили их для
полноты, но в последующих примерах мы ими не пользуемся.
Для простоты записи вместо р" удобно употреблять пропис-
ные буквы Р, <2, Р без индексов.)
Из этих символов можно построить различные выражения.
Классы выражений, представляющих для нас интерес, можно
рекурсивно определить следующим образом:
*) Конкретнее, мы временно исключаем из рассмотрения кванторы и пере-
менные.
2) У читателя может возникнуть вопрос, почему мы сразу не строили
определения, употребляя буквы а, Ь, с, д, К. Причина состоит в том, что
нам иужио, чтобы наши формальные определения годились для произвольно
больших множеств функциональных букв, таких, как / ” В конкретных при-
мерах, однако, обычно берется небольшое число функциональных букв, и по-
этому можно ограничиться более простым конечным множеством {а, Ь, с,
ё,Ь}.
1. Термы.
а) Каждая константная буква есть терм.
б) Если 6, • •, (« > 1) — термы, то ..., 1п}—терм.
в) Никакие другие выражения не являются термами.
(Заметим, что если выражение 12, .... А) используется как
терм, то оно используется вместо (2....../„) для некото-
рого I. Верхний индекс у § был бы излишним.)
2. Атомные формулы.
а) Пропозициональные буквы являются атомными форму-
лами.
б) Если 1{,12, .... 1п (и>1) —термы, то 12...1п) —
атомная формула.
в) Никакие другие выражения не являются атомными фор-
мулами.
3. Правильно построенные формулы (п. п. формулы).
а) Атомная формула есть п. п. формула.
б) Если А — п. п. формула, то (~А)— п. п. формула.
в) Если А и В — п. п. формулы, то (Аф В)— также п. п.
формула.
г) Никакие другие выражения не являются п. п. форму-
лами (пока).
Приведем примеры п. п. формул1):
~Р(а,§(а, Ь, а)),
Р(а,Ь)^(~(Цс)),
(~(Р(а)=$Р(Ь)))^Р(Ь),
Приведем примеры выражений, не являющихся п. п. форму-
лами:
~/(а).
О (Ца), (Р(Ь)^О(с))).
Добавим к нашему алфавиту логические символы А («и»)
и V («или»), которые позволят короче записывать более слож-
ные п. п. формулы, содержащие ~ и ф. Пусть Л\ и Х2 — лю-
бые две п. п. формулы. Тогда Х{ЛХ2 и Х1УХ2 —также пра-
вильно построенные формулы, определяемые равенствами
Х1ДХ2=~(Х1Ф~Х2),
Х,УХ2 = (-Х1)фХ2.
’) Если это не может привести к недоразумению, круглые скобки будем
опускать.
6.3. СЕМАНТИКА
Для того чтобы п. п. формуле придать «содержащее», ее
надо интерпретировать как некоторое утверждение, касающееся
рассматриваемой области. Для нас областью может служить
некоторое непустое множество (возможно, бесконечное). Им
может быть множество целых чисел, или множество всех кон-
фигураций игры в восемь, или множество всех математиков
и т. д. Интересующие нас утверждения будут связаны с отно-
шениями между элементами этой области. Например, мы мо-
жем захотеть высказать утверждение: «Джон — отец Билла».
Тогда областью будет множество людей, а отношением между
людьми — бинарное отношение «отцовства».
Полезно также иметь функции на этой области. Если —
область, то «-местная функция ставит в соответствие каждому
набору из п элементов области О некоторый элемент из этой
области. Так, функция плюс отображает пары целых чисел в
целые числа в соответствии с хорошо известной операцией сло-
жения.
Именно об этих аспектах области — ее элементах, ее функ-
циях и ее отношениях — мы и хотим говорить на нашем языке
исчисления предикатов. Для того чтобы для п. п. формулы сде-
лать утверждение определенного смысла, мы связываем с этой
п. п. формулой некоторую непустую область О, а затем
с каждым константным символом в п. п. формуле — неко-
торый конкретный элемент из Д;
с каждой функциональной буквой в п. п. формуле — неко-
торую конкретную функцию на О («-местные функциональ-
ные буквы соответствуют «-местным функциям);
с каждой предикатной буквой в этой п. п. формуле — неко-
торое конкретное отношение между элементами из О («-ме-
стные предикатные буквы соответствуют «-местным отно-
шениям).
Конкретизация области и указанных соответствий дает ин-
терпретацию, или модель, нашей п. п. формулы.
При заданной п. п. формуле и некоторой интерпретации
каждой атомной формуле в этой п. п. формуле приписывается
значение Т или Р. Эти значения можно затем использовать для
того, чтобы приписать значение Т или Р всей п. п. формуле.
Правило приписывания значения атомной формулы очень прос-
тое: если термы предикатной буквы соответствуют элементам
из О, удовлетворяющим соответствующему соотношению, то
значением атомной формулы будет Т, в противном случае бу-
дет Р.
Рассмотрим в качестве примера атомную формулу
Р (а, I (Ь, с))
и следующую интерпретацию:
О — множество целых чисел,
а — число 2,
Ь— число 4,
с — число 6,
/ — функция сложения,
Р — отношение „больше".
При такой интерпретации наша атомная формула утверж-
дает, что «число 2 больше суммы чисел 4 и 6». Это утвержде-
ние неверно, поэтому Р(а,/(&,с)) имеет значение Р. Если ин-
терпретацию изменить так, что а станет числом 11, то
Р{а, будет иметь значение Т. Очевидно, что существует
много других интерпретаций, для которых эта атомная фор-
мула имеет значение Т, и много таких интерпретаций, для ко-
торых она имеет значение Р, но для любой интерпретации бу-
дет либо Т, либо Р и никогда то и другое одновременно.
Значение неатомной п. п. формулы можно вычислить ре-
куррентно, исходя из значений составляющих ее формул. При
таком вычислении используются следующие правила:
Если Х[ — п. п. формула, то имеет значение Т,
когда имеет значение Р, и имеет значение Р,
когда Х1 имеет значение Т.
Если Х{ и Х2— любые две п. п. формулы, то значе-
ния (Х1V Х2), (Х{ЛХ2) и (Х1=^> Х2) даются следую-
щей таблицей истинности:
х. х, х,ух, Х,ЛХг
Т Т Т Т Т
Р Т Т Р Т
Т Р Т Р Р
Р Р Р Р Т
Этот метод вычисления называется методом таблиц истин-
ности. При данной интерпретации для некоторой п. п. формулы
(и, таким образом, для данных значений каждой атомной фор-
мулы, содержащейся в ней) всегда можно вычислить значение
(Т или Р) этой п. п. формулы с помощью таблицы истинности.
Если значение некоторой п. п. формулы при данной интерпре-
тации есть Т, то говорят, что эта интерпретация удовлетворяет
указанной п. п. формуле (или выполняет указанную п. п. фор-
мулу). Неатомная п. п. формула и ее значение служат для опре-
деления некоторого нового отношений между элементами из О:
п. п. формула делает некоторое утверждение относительно эле-
ментов из О, истинное, когда значение этой п. п. формулы
есть Т.
6.4. ПЕРЕМЕННЫЕ И КВАНТОРЫ
Рассмотрим п. п. формулу
Р (а, Ь)
и интерпретацию
О — конечное множество целых чисел
1, 2, ..., 99, 100,
а — число 30,
Ь — число 1,
Р — отношение «.больше или равно».
При такой интерпретации п. п. формула утверждает, что
«30 больше или равно 1». Это утверждение, очевидно, истинное,
и наша п. п. формула при данной интерпретации имеет значе-
ние Т. Предположим, что при той же самой области мы припи-
сываем значения 1, 2, ..., 100 константным буквам % ...
• • • > /?от соответственно. С каждой из этих букв можно сконст-
руировать п. п. формулу вида
р (М)-
При этом каждая из п. п. формул при данной интерпретации
имеет значение Т.
Часто бывает нужно высказать определенное утверждение,
относящееся к каждому элементу некоторой области. Такое
утверждение можно было бы сделать в виде конъюнкции *)
п. п. формул, утверждение каждой из которых касается одного
из элементов. В рассмотренном выше примере п. п. формула
р(ПЛ1}ЛР(Р,.П)Л ... лр(Ц„.Ц)
утверждает, что «каждое целое число от 1 до 100 больше или
равно 1». Так как каждая п. п. формула Р(?°{, имеет значе-
ние Т, то мы устанавливаем с помощью таблиц истинности, что
эта конъюнкция также имеет значение Т.
Использование больших конъюнкций для выражения утвер-
ждений, содержащих слова каждый или для всех, привело бы
к слишком громоздким выражениям. Для их сокращенной за-
писи введем в наш язык символ V (означающий для всех) и
индивидные переменные Х{ (1 1). (Иногда вместо мы будем
употреблять буквы и, V, хш, у, г.) Предполагается, что
’) Конъюнкцией п. п. формул Хь Хг, ..., Хп называется п. п. формула
Х1 Л Х2Д...Д Х„.
переменные х,- принимают значения из области интерпретации.
Так, в нашем примере вместо выписывания конъюнкции, содер-
жащей п. п. формулы для каждого элемента рассматриваемой
области, мы будем писать просто
(Ух)Р(х,/°).
Символ V называется квантором всеобщности, а перемен-
ная, стоящая сразу же за символом V, называется переменной,
относящейся к квантору всеобщности. Когда такая переменная
появляется внутри области действия квантора V, про нее так-
же говорят, что она относится к квантору всеобщности, или что
она связывается этим квантором.
Теперь мы имеем новый класс п. п. формул, в которых в ка-
честве термов могут выступать переменные, относящиеся к
квантору всеобщности. В случае конечных областей значения
истинности таких п. п. формул можно установить с помощью
таблиц истинности. Однако такой метод нельзя применить для
оценки значения истинности бесконечных конъюнкций. Тем не
менее это понятие полезно, поскольку иногда значения истин-
ности п. п. формул, содержащих кванторы, можно вычислить,
минуя оценку бесконечных конъюнкций. (Например, согласно
таблице истинности, простая п. п. формула
[(Ух)Р(х)=Ф(Ух)Р(х)]
в любой интерпретации имеет значение Т.)
Иногда требуется высказать утверждение, касающееся всех
пар элементов из некоторой области или всех троек и т. п. Тогда
используется несколько переменных и для каждой из них сим-
вол V. Так, 'правильно построенную формулу, соответствую-
щую утверждению «для всех пар целых чисел, расположенных
между 1 и 100, первое больше второго», можно запиеать в виде
(Ух)(Уу)Р(х,у).
.Очевидно, что эта п. п. формула (двойная конъюнкция) при
нашей интерпретации имеет значение Р.
Подобное сокращение имеется и Для дизъюнкций1), пере-
числяющих каждый элемент области. Предположим, мы имеем
дизъюнкцию
<?(/?) уеду еду...,
где /“> • • • —элементы области О. Согласно таблице истинно-
сти, эта правильно построенная формула имеет значение Т,
’) Дизъюнкцией п.п. формул Х2, Хп называется п.п. формула Х[
ух2у..,ух„.
когда верно утверждение «по крайней мере один элемент из О
обладает,, свойством С}».
Вместо дизъюнкций, в которых упоминается каждый эле-
мент области, пользуются символом 3 и соответствующей пе-
ременной. Тогда приведенная выше дизъюнкция принимает вид
(Зх)0(х).
Символ 3 (существует) называется квантором существования,
а переменная, стоящая сразу же после символа 3> называется
переменной, относящейся к квантору существования. Когда та-
кая переменная появляется внутри области действия квантора
з, про нее говорят, что она относится к квантору существова-
ния, а также, что она связывается этим квантором.
С помощью таблиц истинности (для конечных областей)
можно показать, что всегда значение истинности п. п. формулы
~(\/х)Ц7 (х) совпадает со значением истинности п. п. формулы
(Зх){~Ц7(х)}. Аналогично ~Н(х)Ц7(х) и (Ух){~1Г(х)} экви-
валентны. Мы будем считать, что эти соотношения эквивалентны
и в неограниченных областях.
При комбинировании кванторов всеобщности и существова-
ния действие квантора существования может оказаться «зави-
сящим» от каких-нибудь предшествующих кванторов всеобщно-
сти. Так, утверждение «для любого целого числа существует
большее целое число» можно записать в виде
(Ух)(Эу)Р(у,х).
Очевидно, что если эта п. п. формула должна иметь значение
Т, то переменная у, которая «существует», должна зависеть
от х.
В п. п. формулах, состоящих более чем из одной предикат-
ной буквы, мы будем использовать фигурные скобки для обо-
значения области действия кванторов. Так, (Ух){} означает,
что любая переменная х, появляющаяся в этих фигурных скоб-
ках, относится к квантору всеобщности.
6.5. ОБЩЕЗНАЧИМОСТЬ И ВЫПОЛНИМОСТЬ
Если некоторая п. п. формула имеет значение Т при всех
интерпретациях, то ее называют общезначимой. Так, по таблице
истинности п. п. формула Р(а)=^(Р(а) V Р(Ь)) при любой ин-
терпретации имеет значение Т и, следовательно, она общезна-
чима. С помощью таблиц истинности всегда можно определить,
общезначима ли данная п. п. формула, не содержащая кванто-
ров. Нужно просто проверить, имеет ли эта п. п. формула
значение Т при всех возможных значениях (Т или Р) содержа-
щихся в ней атомных формул.
Когда же появляются кванторы, общезначимость или ее от-
сутствие не всегда можно установить. Было показано, что об-
щего. метода нахождения значений всех бесконечных формул,
содержащих кванторы, не существует. По этой причине исчис-
ление предикатов называют неразрешимым.
Можно установить общезначимость лишь некоторых типов
формул, содержащих кванторы, и поэтому можно говорить
о разрешимых подклассах исчисления предикатов. Более того,
если некоторая п. п. формула на самом деле общезначима, то
существует процедура для проверки ее общезначимости. (Та
же процедура, примененная к п. п. формулам, не являющимся
общезначимыми, может привести к неограниченной последова-
тельности операций.) Поэтому исчисление предикатов можно
назвать полуразрешимым.
Если при данной интерпретации каждая п. п. формула из
некоторого множества п. п. формул имеет значение Т, то гово-
рят, что данная интерпретация удовлетворяет этому множеству.
Правильно построенная формула № логически следует из неко-
торого множества 5 п. п. формул, если каждая интерпретация,
удовлетворяющая 5, удовлетворяет также и №. Так, очевидно,
что (Ух\/у) {Р (х) V <2 (У)} логически следует из {(УхУу) {Р (х) V Ф (*/)}
(Уг){Л?(г) \/<2(«)}}, а Р(а) логически следует из {(Ух)Р(х)}. Менее
очевидно, что {(Ух)ф(х)} логически следует из {(Ух){~Р(х) V
УО(4 (ух)Р(х)},
Именно эту концепцию логического следования мы поло-
жим в основу понятия доказательства. Доказательством того,
что некоторая п. п. формула № логически вытекает из задан-
ного множества 5 правильно построенных формул, назовем де-
монстрацию того факта, что № логически следует из 5. Цель
оставшихся глав — дать основы, по-видимому наиболее пер-
спективного, механического метода поиска доказательства того,
что данная п. п. формула логически следует из некоторого мно-
жества п. п. формул, и показать, как можно применить этот
метод к решению задач.
Факт «неразрешимости» исчисления предикатов означает
также, что при заданных произвольной п. п. формуле № и про-
извольном множестве п. п. формул 5 не существует эффектив-
ной процедуры, позволяющей всегда решить, следует ли логи-
чески № из 5. Если № действительно следует из 5, то суще-
ствуют процедуры, которые в конце концов сообщат нам этот
факт. Однако если № не следует из 5, то те же процедуры,
к сожалению, не всегда могут это установить.
Тем не менее умение продемонстрировать, что № логически
следует из 5 (когда это на самом деле так), уже достаточно
полезно, и мы сосредоточим на нем свое внимание. Предполо-
жим, что № логически следует из 5. Тогда любая интерпрета-
ция, удовлетворяющая 5, удовлетворяет также №. Но заметим,
что эти интерпретации не удовлетворяют ~ №. Следовательно,
никакая интерпретации не удовлетворяет объединению 5 и
{~№}. Если некоторое множество, п. п. формул не удовлетво-
ряется ни при какой интерпретации, то оно называется неудов-
летворимым (или невыполнимым). Так, если № логически сле-
дует из 5, то объединение 5 II {~№} неудовлетворимо. Обратно,
если .5 II {~№} неудовлетворимо, то № должно логически сле-
довать из 5.
Мы используем этот результат для того, чтобы придать оди-
наковую форму всем задачам доказательства: для доказатель-
ства логического следования № из 5 мы будем показывать, что
объединение 511{~№} неудовлетворимо. Для того чтобы по-
казать, что некоторое множество п. п. формул неудовлетворимо,
надо доказать, что нет такой интерпретации, при которой каж-
дая из п. п. формул в этом множестве имеет значение Т. Хотя
эта задача и кажется трудоемкой, существуют довольно эф-
фективные процедуры ее решения. Для выполнения этих про-
цедур требуется представить сначала п. п. формулы данного
множества в специальном удобном виде — в виде предложе-
ний1).
6.6. ПРЕДЛОЖЕНИЯ
Любую п. п. формулу исчисления предикатов можно пред-
ставить в виде предложения, применяя к ней последователь-
ность простых операций. Наша ближайшая задача состоит в
том, чтобы показать, как придать произвольной п. п. формуле
форму предложения. Мы будем иллюстрировать этот процесс
на п. п. формуле
(Ух) {Р (х) =${(Уу) {Р (у) =}РЦ (х, г/))} Д ~ (У у) {<2 (х, у)^Р (у)}}}.
Процесс состоит из следующих этапов:
1) Исключение знаков импликации. В форме предложения
в исчислении предикатов явно используются лишь связки V и
~. Знак импликации можно исключить подстановкой в исход-
ном утверждении XV В“ вместо „Д==>.В“* 2). Такая подста-
новка в нашем примере дает
(Ух){~Р(х) V {(Ау){~Р(у) V Р(Цх, у))} Д
А ~(Vу) {~(}(х, у) V Р (г/)}}}.
’) В оригинале с!аизе, что иногда переводят в данной ситуации как
«дизъюнкт». — Прим, перев.
2) Читателю следовало бы убедиться, что эти подстановки сохранят значе-
ние истинности первоначальной п.п. формулы. При более формальном изло-
жении мы должны были бы показать, что „~А V В” логически следует из
„А =^> В” и „А =^> В" логически следует из „~Л V В”, и поступать точно1
так же для всех других подстановок, которые будем делать.
2) Уменьшение области действия знаков отрицания. Мы хо-
тим, чтобы знак отрицания ~ применялся не более чем к одной
предикатной букве. С помощью повторного применения указан-
ных ниже подстановок можно свести область действия каждого
знака ~ до отдельной предикатной буквы:
заменить ~(АДЙ) на
заменить ~(А V#) на ~АД~В,
заменить на А,
заменить ~(Ух)А на (Зх){~А),
заменить ~(3х) А на (Ух){~А).
Тогда наша п. п. формула примет сначала вид
(Ух) {- Р (х) V {(V*/) {- Р (у) V Р (1 (х, у))} Л
Л(ЗЖ~{~<?(х, у) V (</)}}}},
а потом
(Ух){~Р(х) V {(У?){-Р(у) УРЦ(х, у))} Л
Л(3//){<Э(х, г/} Л ~ Р (г/)}}}.
3) Стандартизация переменных. В области действия любого
квантора переменная, связываемая им, является немой перемен-
ной. Поэтому везде в области действия квантора ее можно за-
менить другой переменной, а это не приведет к изменению зна-
чения истинности п. п. формулы. Стандартизация переменных
в п. п. формуле означает переименование немых переменных, с
тем чтобы каждый квантор имел свою собственную немую пере-
менную. Так, вместо (Ух){Р(х)=>(Зх)$(х)} следует написать
(Ух){Р(х)=>(3#) ф (#)}. Стандартизация в нашем примере дает
(Ух) {~Р (х) V №У){~Р (У) УР(1 Ы)} Л
Л (Зоу) {С? (х, ш) Л ~ Р (оу)}}}.
4) Исключение кванторов существования. Рассмотрим пра-
вильно построенную формулу
(У^Зх)Р(х, у),
которую можно интерпретировать, скажем, так: «Для всех у су-
ществует такой х (возможно, зависящий от у), что х больше у».
Заметим, что, поскольку квантор существования О*) нахо-
дится внутри области действия квантора всеобщности (V у),
допускается, что х, который «существует», может зависеть от
значения у. Пусть эта зависимость определяется явно с помощью
некоторой функции ё(у), отображающей каждое значение у вх,
который «существует». Такая функция называется функцией
Сколема. Если вместо х, который «существует», взять функцию
Сколема, то можно исключить квантор существования:
^)Р(^({/),1/).
Общее правило исключения из п. п. формулы квантора суще-
ствования состоит в замене всюду в' ней переменной, относя-
щейся к квантору существования, функцией Сколема, аргумен-
тами которой служат переменные, относящиеся к тем кванторам
всеобщности, области действия которых охватывают область
действия исключаемого квантора существования. Функциональ-
ные буквы для функций Сколема должны быть «новыми» в том
смысле, что они не должны совпадать с теми буквами, которые
уже имеются в п. п. формуле.
Так, исключая (Зг) из п. п. формулы
{(Ую) <2 (ю)} => (Ух) {(Vу) {(Зг) {Р (х, у, 2) => (У«) Я (х, у, и, г)}}},
получаем
{(Уда)Ф(^)}=ф(Ух){(У«/){Р(х, у, у))=^(Уи) Я(х, у, и, $(х, у))}}.
Если исключаемый квантор существования не принадлежит
области действия ни одного из кванторов всеобщности, то функ-
ция Сколема не содержит аргументов, т. е. является просто кон-
стантой. Так, (Зх)Р(х) превращается в Р(а), где а — констан-
та, про которую мы знаем, что она «существует».
Чтобы исключить все переменные, относящиеся к кванторам
существования, надо применить описанную выше процедуру по
очереди, к каждой переменной. В нашем примере исключение
кванторов существования (здесь лишь один такой квантор) дает
(Ух){~Р(х) V {(Vу){~Р(у)Ч Р(1 (X, у))} А
А {С (х, § (х)) А ~ Р (§ (х))}}},
где &(х)— функция Сколема.
5) Приведение к предваренной нормальной форме. На этом
этапе уже не осталось кванторов существования, а каждый
квантор всеобщности имеет свою переменную. Теперь можно
перенести все кванторы всеобщности в начало п. п. формулы и
считать областью действия каждого квантора всю часть п. п.
формулы, расположенную за ним. Про полученную в результате
п. п. формулу говорят, что она имеет предваренную нормальную
форму. Правильно построенная формула в предваренной нор-
мальной форме состоит из цепочки кванторов, называемой пре-
фиксом, и расположенной за ней формулой, не содержащей
кванторов, называемой матрицей. Предваренная нормальная
форма для нашей п. п. формулы имеет вид
(Ух V у) {~Р (х) V {{-Р (У) V Р (I (х, у))} А
А{<Ж ^(х))А~Р(^(х))}}}.
6) Приведение матрицы к конъюнктивной нормальной форме.
Любую матрицу можно представить в виде конъюнкции конеч-
ного множества дизъюнкций предикатов и (или) их отрицаний.
Говорят, что такая матрица имеет конъюнктивную нормальную
форму. Дадим примеры матриц в конъюнктивной нормальной
форме:
{Р (х) V С (х, у)} Д {Р (си) V ~ Н (у)} Л <Э (х, у),
Р(х) V <2 (х, у),
Р(х) Д <2(х, у),
Любую матрицу можно привести в конъюнктивную нормаль-
ную форму, применяя несколько раз правило:
Заменить А V {В Л С) на {Л V В) Л М V С}.
После приведения матрицы нашей п. п. формулы в конъюнк-
тивную нормальную форму она принимает вид
<УхУу) {{ ~ Р (х) V ~ Р (*/) V Р 0 (х, у))} Л
Л {~ Р (х) V <3 (х, § (х))} Л {~ Р (х) V - Р (ё (х))}}.
7) Исключение кванторов всеобщности. Так как все пере-
менные п. п. формулы должны быть связанными, то все остав-
шиеся на этом этапе переменные относятся к кванторам всеобщ-
ности. Так как порядок расположения кванторов всеобщности
несуществен, то можно эти кванторы явным образом не указы-
вать, условившись, что все переменные в матрице относятся к
кванторам всеобщности. Теперь у нас остается лишь матрица
в конъюнктивной нормальной форме.
8) Исключение связок «и». Теперь можно исключить знак
«и» Л, заменяя А Л В двумя п. п. формулами А, В. Результа-
том многократной замены будет конечное множество п. п. фор-
мул, каждая из которых представляет собой дизъюнкцию атом-
ных формул и (или) их отрицаний. Атомную формулу или ее
отрицание называют литералом, а правильно построенную фор-
мулу, состоящую лишь из дизъюнкций литералов, — предложе-
нием1). Итак, каждая п. п. формула в нашем множестве будет
предложением.
Наша п. п. формула теперь представлена в виде следующих
предложений:
~Р(х) У~Р(у) УР(Цх, у)),
~Р(х)У <2(х, ё(х)),
~Р(х) У~Р(^(х)).
Заметим, что в литералах предложения могут содержаться
переменные, которые всегда следует считать относящимися
к кванторам всеобщности. Если вместо переменных литерала
') См. примечание на стр. 181. — Прим, перев.
подставляются выражения, не содержащие переменных, то мы
получаем так называемый константный частный случай этого
литерала. Так, (2(а,,}(@(Ь)))—константный частный случай п.п.
формулы ф(х, у).
Наш процесс, предназначенный для демонстрации того, что
некоторое множество 5 п. п. формул неудовлетворимо (невыпол-
нимо), начинается с превращения каждой п. п. формулы из 5
в предложения. В результате возникает некоторое множество 5
предложений. Можно показать, что если множество 5 неудовле-
творимо, то неудовлетворимо и множество 8', и обратно, из не-
удовлетворимости 8' вытекает неудовлетворимость 5. В остав-
шейся части этой главы мы изложим методы, позволяющие
показать, что некоторое неудовлетворимое множество предложе-
ний действительно неудовлетворимо. Эти методы носят вполне
общий характер, поскольку любое множество правильно по-
строенных формул можно представить в виде предложений.
6.7. УНИВЕРСУМ ЭРБРАНА
Рассмотрим неудовлетворимое конечное множество 5 пред-
ложений.
Для того чтобы убедиться в неудовлетворимости 5, нужно
показать, что не существует интерпретации, которая ему удовле-
творяет. Задавая для 5 интерпретацию, следует прежде опреде-
лить область О, а затем связать с каждым константным симво-
лом в 5 некоторый элемент из О и с каждым функциональным
символом в 5 некоторую функцию на О и т. д. Очевидно, что
для демонстрации того, что каждая получающаяся в результате
интерпретация не удовлетворяет 5, мы не в состоянии перечис-
лять всевозможные области и такие связи. Но можно указать
такой адекватный список имен для элементов области, что если
не существует удовлетворяющей интерпретации в областях, эле-
менты которых могут быть названы именами из нашего списка,
то не существует удовлетворяющей интерпретации вообще. Од-
ним из таких списков имен, адекватным множеству предложе-
ний 5, является универсум Эрбрана для 5.
Универсум Эрбрана Н (5) для множества предложений 5
определяется рекурсивно следующим образом:
1. Множество всех константных букв упомянутых в 5,
принадлежит Н(8). Если {/9} пусто, то Н (5) содержит некото-
рую произвольную константную букву, скажем а.
2. Если термы ..., 1п принадлежат Н(8), то Н(8) при-
надлежит также н /"(/,, /2, •••> ^п)> гДе /"—любая функцио-
нальная буква, упомянутая в 5.
3. Никаких других термов в Н (5) нет.
Должно быть ясно, что независимо от выбора интерпретации
при приписывании значений Т и Р литералам из 5 никаких дру-
гих имен для элементов области никогда не потребуется. В этом
смысле Н (5)—наиболее общая область; если мы покажем, что
множество 5 неудовлетворимо в области Н(8), то можно бедть
уверенным, что оно неудовлетворимо в любой области.
Универсум Эрбрана, вообще говоря, бесконечен, но счетен,
так что его члены всегда можно тем или иным образом упоря-
дочить. Например, рассмотрим множество предложений 5:
{/> (х) V <2 (а) V ~ Р (*)), ~^(Ь)VР(ё (х, у))}.
Здесь константные термы — {а, 6}, а функции — {/, ^}. Таким
образом, Н (5) представляет собой (счетное) бесконечное мно-
жество
{а, Ь,Ца), }(Ь), ё(а, а), & (а, Ь), а), Ь),
6.8. ЭРБРАНОВСКАЯ БАЗА
Когда мы задаем интерпретацию (на Н (5)) для предложе-
ния в 5, его атомным формулам приписываются значения (Т
или Р). Предположим, что Р есть «-местная предикатная буква
в 5. Означивание атомной формулы Р(Х1, х2, ..., хп) произво-
дится приписыванием значений Т и Р независимо для всех ее
константных частных случаев, получающихся в результате под-
становки элементов из Н(8) вместо переменных хъ х2, ..., хп.
Разумеется, число константных частных случаев для каждой
атомной формулы в 5 может оказаться бесконечно большим,
так что таким способом можно бесконечно долго решать задачу
означивания. Но замечательно, что, прежде чем будет закончено
означивание каждой атомной формулы в 5, станет совершенно
очевидным, что никакая интерпретация не может удовлетворить
5, и это будет несмотря на то, что даже еще не всем констант-
ным частным случаям приписаны значения истинности!
Эрбрановской базой для 5 называется множество всех кон-
стантных частных случаев для всех атомных формул в 5 при
условии, что для наименования элементов области использован
универсум Эрбрана. Элементы эрбрановской базы называются
атомами. Очевидно, что задание интерпретации на Н (5) закан-
чивается для всех предложений из 5 только тогда, когда каж-
дому атому эрбрановской базы приписано значение истинности.
Эрбрановская база также является счетной, и, следовательно, ее
элементы можно тем или иным образом упорядочить. Пусть
упорядоченная эрбрановская база для 5 записана в виде после-
довательности {Р1, р2, р3, ...}.
6.9. ПОСТРОЕНИЕ СЕМАНТИЧЕСКОГО ДЕРЕВА
Семантическое дерево представляет собой бинарное дере-
во1). простирающееся вниз от корневой вершины. В соответствии
со способом, который мы выбрали для приписывания значений
истинности атомам рг эрбрановской базы, мы будем спускаться
по этому дереву по определенному пути. Если мы присвоим
атому р{ значение Т, то окажемся непосредственно под корне-
вой вершиной слева, а если Р, то справа. Далее, независимо
от того, в какой из двух вершин, расположенных непосредствен-
но под корневой вершиной, мы оказались, если мы присвоим
атому рг значение Т, то пойдем из нее по левой ветви, а если
Р, то по правой. Этот процесс продолжается до тех пор, пока
каждому элементу эрбрановской базы не будет присвоено зна-
чение истинности. Очевидно, что в случае бесконечной эрбранов-
ской базы любой полной интерпретации будет соответствовать
бесконечный путь вниз по вершинам этого дерева. Полное де-
рево, содержащее все возможные пути, представляет все воз-
можные интерпретации предложений из 5; отсюда и название:
семантическое дерево.
В качестве примера рассмотрим неудовлетворимое множе-
ство 5 предложений
Р(х)уС}(у),
~Р(а),
Универсумом Эрбрана будет здесь конечное множество
Н(8) = {а, Ь}.
Эрбрановская база также конечна. Ее можно упорядочить так:
{Р (а), <2 (а), Р (Ь), <2 (Ь)}.
Семантическое дерево для этого множества предложений ко-
нечно, оно показано на рис. 6.1. Каждое ребро, соединяющее
вершину с одной из ее дочерних вершин, представляет решение,
принятое относительно значения истинности одного из атомов
эрбрановской базы. Условились записывать рядом с ребром, где
атому присваивается значение Т, сам этот атом, а рядом с реб-
ром, где атому присваивается значение Р, — его отрицание.
Каждый из путей, ведущих от корневой вершины к концевой
вершине этого дерева (а именно к вершине, расположенной
внизу этого дерева), дает одну из интерпретаций для множе-
ства 5. Эту интерпретацию можно однозначно представить в
-- р
') Каждая вершина бинарного дерева имеет ровно две дочерние вершины,
если таковые у нее вообще имеются. Можно обобщить определение семанти-
ческого дерева так, чтобы допускалось более двух таких вершин.
виде множества атомов, встречающихся на этом пути. Так, ин-
терпретация, получающаяся при прослеживании пути от корне-
вой вершины к концевой вершине, отмеченной на рис. 6.1 циф-
рой 1, задается множеством
~0(а), ~Р(Ь), 0(6)}.
Такое множество называют моделью для данного множества
предложений.
Говорят, что модель не удовлетворяет предложению, если
существует константный частный случай этого предложения
(построенный на термах универсума Эрбрана), имеющий значе-
ние Е при означиваниях, определяемых этой моделью. Так, не
удовлетворяет ни одному из предложений ~Р(а) и Ана-
логично М2 = ~<2(а), ~Р(Ь), не удовлетво-
ряет предложению Р(х)\/ так как константный частный
случай Р(а)\/ С}(Ь) имеет значение Е.
Если в 5 есть предложение, не удовлетворяющееся интер-
претацией, или моделью, то эта модель не может удовлетво-
рить 5. Так, и М2 не удовлетворяют множеству 5 нашего
примера, более того, можно исключить по очереди каждую из
16 возможных интерпретаций и сделать’ рывод, что множество 5
нашего примера неудовлетворимо.
6.10. НЕБЛАГОПРИЯТНЫЕ ВЕРШИНЫ
Наиболее важным фактом, связанным с семантическими де-
ревьями, является возможность установить, не просматривая
дерево неограниченно далеко вниз, что определенные интерпре-
тации не удовлетворяют некоторому множеству предложений.
В нашем примере на рис. 6.1 мы приписали атому Р(а), рас-
положенному слева непосредственно под корневой вершиной,
значение Т. Сразу же видно, что ни одна из возможных восьми
интерпретаций, в которых Р(а) имеет значение Т, не удовлетво-
ряет 5; чтобы удовлетворять 5, значением атома Р(а) должно
быть Е. Итак, нет необходимости просматривать дальше левую
часть этого дерева. Пометим черными кружочдами те вершины
дерева на рис. 6.1, где впервые было установлено, что эта ин-
терпретация не может удовлетворять 5. Такие вершины будем
называть неблагоприятными.
Разумеется, если множество предложений неудовлетворимо,
то, даже когда эрбрановская база бесконечна, каждая возмож-
ная интерпретация в конце концов должна оборваться на ка-
кой-то неблагоприятной вершине. В самом деле, если бы хотя
бы одна интерпретация не обмывалась на неблагоприятной вер-
шине, то мы могли бы сколь угодно долго двигаться по этому
пути, т. е. существовала бы интерпретация, удовлетворяющая
множеству предложений, что противоречит неудовлетворимости
этого множества. Семантическое дерево для множества предло-
жений 5, все пути которого обрываются на неблагоприятных
вершинах, называется замкнутым для 5. Таким образом, мы по-
лучили ключевой результат, на котором основаны наши методы
проверки выполнения свойства неудовлетворимости. Семантиче-
ское дерево для неудовлетворимого множества предложений 8
Рис. 6.2. Замкнутое семантическое дерево для невыполнимого множества
{~Р(Х)У<3(Х), Р(Цу)),
замкнуто для 8 и содержит конечное число вершин, располо-
женных над неблагоприятными вершинами *).
') Можно показать, что это утверждение эквивалентно знаменитой тео-.
реме Эрбрана (1930).
На рис. 6.2 изображена часть семантического дерева для не-
удовлетвор'имого множества предложений
$ = {~Р(х) V Р(х), Р (I (у)), -()(} (у))}.
Универсумом Эрбрана здесь будет множество
Я (5) = {а,/(а),(а)),/(/(/(а))),
а эрбрановскую базу можно упорядочить так:
{Р (а), (а), Р (а)), О 0 (а)), Р Ц (? (а))), ...}._
Хотя эрбрановская база бесконечна, так что любая полная
интерпретация соответствует бесконечному пути по этому семан-
тическому дереву, мы знаем, что, в случае когда 5 неудовлетво-
римо, семантическое дерево замкнуто неблагоприятными верши-
нами. На рис. 6.2 показана часть семантического дерева, рас-
положенная выше неблагоприятных вершин и включающая их.
На практике редко удается установить невыполнимость
множества предложений построением семантического дерева.
В последнее время на основе принципа резольвенций были раз-
работаны практически приемлемые процедуры установления
неудовлетворимости. В следующих разделах мы объясним суть
этого принципа, воспользовавшись уже описанными представ-
лениями, связанными с семантическими деревьями.
6.11. ВЕРШИНЫ ВЫВОДА
Рассмотрим снова пример, приведенный на рис. 6.2. Каждая
из неблагоприятных вершин этого дерева обладает тем свой-
ством, что любое завершение части интерпретации, заданной
вплоть до этой вершины, не удовлетворяет какому-то из пред-
ложений нашего множества. Ниже неблагоприятной вершины,
отмеченной на рис.’6.2 цифрой 1, идут интерпретации, заведомо
не удовлетворяющие предложению ~Р(х) V <2(х). Ниже не-
благоприятной вершины, отмеченной цифрой 2, идут интерпре-
тации, заведомо не удовлетворяющие предложению ~ С} (/(«/)).
Мы будем называть вершину 1 неблагоприятной для
~Р(х) V <2(х), а вершину 2 неблагоприятной для
Мы будем также говорить, что предложения ~Р(х)\/ <2(х) и
:~Ф(П#)) терпят неудачу на вершинах 1 и 2 соответственно.
Если некоторая вершина семантического дерева не является
неблагоприятной, а обе ее дочерние вершины неблагоприятны,
то она называется вершиной вывода. На рис. 6.2 вершина, отме-
ченная цифрой 3, является вершиной вывода, поскольку можно
вывести новое предложение, логически следующее из предложе-
ний ~Р(х) V <2(х) и (/(</)), которые терпят неудачу на не-
благоприятных вершинах, идущих сразу за ней. Кроме того, это
новое предложение само терпит неудачу на вершине вывода или
выше нее. (Конечно, этого нового предложения нет в 5, по-
скольку иначе вершина 3 или какая-нибудь вершина, ей пред-
шествующая, была бы неблагоприятной.)
Какое же предположение можно вывести из предложений
~Р(х)\/ <2(х) и ~<2(/(*/))? Пусть / — произвольная интерпре-
тация, удовлетворяющая обоим предложениям ~ Р (х) V С? (х) и
~(?(](у)). Так как интерпретация I удовлетворяет предложе-
нию ~Р(х)\/ ф(х), она должна также удовлетворять любому
предложению, получающемуся из него подстановкой другого
выражения вместо х. В частности, / должна удовлетворять
предложению ~/’(/(у))\/<?(/(*/)). Но литерал <?(/(*/)) не мо-
жет удовлетворяться этой интерпретацией, поскольку мы пред-
положили, что интерпретацией / удовлетворяется его отрицание
(/(*/))• Следовательно, если интерпретация I удовлетворяет
предложению ~Р(1(у)) V то только потому, что /
удовлетворяет предложению ~^(/(у)). Тогда из данных двух
предложений можно вывести предложение ~Р(Цу)). Кроме
того, заметим, что приписывание значений истинности дополни-
тельным литералам и не изменяет означива-
ния выведенного предложения ~ Р()(у)). Выведенное предло-
жение уже потерпело неудачу на вершине вывода (вершине 3).
Выведенное предложение ~ Р(/ (у)) называется резольвентой
двух предложений ~ Р(х) V <2(х) и ~ Если у двух
предложений есть резольвенты (их может быть более одной),
то процесс их получения зависит от возможности делать такие
подстановки термов вместо переменных, чтобы предложения,
возникающие в результате подстановок, содержали дополни-
тельные литералы. Мы обсудим детали этого процесса несколь-
ко ниже, а сейчас предположим, что мы располагаем таким
процессом вывода и он обладает тем свойством, что резольвен-
ты терпят неудачу на вершине вывода или выше нее. .
Любое замкнутое семантическое дерево для неудовлетвори-
мого множества 5 непустых предложений должно иметь по
крайней мере одну вершину вывода, так как иначе у каждой из
вершин была бы по крайней мере одна дочерняя вершина, не
являющаяся неблагоприятной, что противоречит предполагае-
мой замкнутости дерева. Пусть мы располагаем процессом вы-
вода резольвенты С из двух предложений, терпящих неудачу
ниже такой вершины вывода п, что С терпит неудачу на вер-
шине п или выше нее. Тогда можно образовать новое (все еще)
неудовлетворимое множество предложений 5' — {С} II 5. Се-
мантическое дерево для 5 должно быть семантическим деревом
для 5', но только для 8' вершина п (или некоторая вершина
над ней) будет неблагоприятной. Ясно, что число вершин, рас-
положенных выше неблагоприятных вершин, в дереве для 5'
строго меньше, чем в дереве для 5. И тем не менее дерево для
5' должно иметь по крайней мере одну вершину вывода, поро-
ждающую новую резольвенту С'. Этот процесс повторяется, и
на каждом этапе число вершин, расположенных выше неблаго-
приятных вершин, в новом (все еще замкнутом) семантическом
дереве будет меньше. После некоторого конечного числа выво-
дов у дерева не будет вершин, расположенных выше неблаго-
приятных вершин, т. е. корневая вершина окажется неблагопри-
ятной. Так как приписывания значений истинности производятся
лишь ниже корня, то этот корень терпит неудачу только на пу-
стом предложении (т. е. предложении, не содержащем лите-
ралов).
Процесс получения резольвент, терпящих неудачу на вер-
шинах вывода или выше них, можно использовать теперь для
демонстрации того, что неудовлетворимое множество предложе-
ний 5 действительно неудовлетворимо. Сначала надо получить
все возможные резольвенты всех пар предложений в 5. Так как
в семантическом дереве для 5 должна быть по крайней мере
одна вершина вывода, то одна из резольвент должна терпеть
неудачу на этой вершине вывода или выше нее. Таким образом,
семантическое дерево для 8' = 5 0 {все резольвенты всех пар
в 5} по-прежнему замкнуто и имеет меньше вершин, располо-
женных выше неблагоприятных вершин. Продолжение такого
процесса путем нахождения всех резольвент всех пар предло-
жений в 5 и т. д. должно в конечном итоге привести к появле-
нию пустого предложения. Далее, если мы покажем, что резоль-
вента пары предложений логически следует из этой пары, то
будет доказано, что появление в результате этого процесса пу-
стого предложения означает, что исходное множество 5 неудо-
влетворимо. (Пустое предложение тривиально неудовлетворимо;
его эрбрановская база пуста, поэтому не существует удовлетво-
ряющей его модели.)
6.12. УНИФИКАЦИЯ
Теперь мы должны обсудить процесс, называемый унифика-
цией, являющийся основным в формальных преобразованиях,
выполняемых при нахождении резольвент.
Термы литерала могут быть переменными буквами, кон-
стантными буквами и выражениями, состоящими из функцио-
нальных букв и термов. (Подстановочный) частный случай ли-
терала получается при подстановке в литералы термов вместо
переменных. Например, для литерала Р(х,[(у),Ь) частными
случаями будут
Р (2, I (-Ш), Ь),
Р(х,!(а), Ь),
Р(ё(2),[(а),Ь),
Р(с,}(а),Ь).
АМ
Первый частный случай называется алфавитным вариантом
исходного литерала, поскольку здесь вместо переменных, входя-
щих в Р(х,1(у),Ь), подставлены лишь другие переменные.
Последний из перечисленных четырех частных случаев назы-
вается константным частным случаем, или атомом, так как ни
в одном из термов этого литерала нет переменных.
В общем случае любую подстановку можно представить в
виде множества упорядоченных пар 0={(Л, г>1), (/2,^2), ...
.... Цп, &п) } Пара (/,, вг) означает, что повсюду переменная вг
заменяется термом А. Существенно, что переменная в каждом
ее вхождении заменяется одним и тем же термом, т. е. из I =/^ ]
следует, что о, =^= о;-, I, ] = 1, . .., п. Для получения частных
случаев литерала Р(хД(у),Ь) были использованы четыре под-
становки
а = {(г, х), (ау, г/)},
Р = ((а, У)},
У = {&(*)» х), (а, у)},
б = {(с, х), (а, у)}.
Обозначим через Ре частный случай литерала Р, получаю-
щийся при использовании подстановки 0. Например,
Р(г,/(да), б) = Р(х, 1(у), Композицией ар двух подстановок
аир называется результат применения р к термам подстанов-
ки а с последующим добавлением любых пар из р, содержащих
переменные, не входящие в число переменных из а. Например,
(х, у), г)}{(а, х), (Ь, у), (с, да), (Д, г)} =
= {(§ (а, Ь), г), (а, х), (Ь, у), (с, да).}
Можно показать, что применение к литералу Р- последова-
тельно подстановок аир дает тот же результат, что и приме-
нение к Р подстановки ар, т. е. (Ра)р = Ра₽. Можно также
показать, что композиция подстановок ассоциативна:
(ар) у = а (Ру)-
Если подстановка 0 применяется к каждому элементу мно-
жества {А,} литералов, то множество соответствующих ей част-
ных случаев обозначается через Множество {А,} литёра-
лов называется унифицируемым, если существует такая подста-
новка 0, что Л19 = А2е = Азе = • • • - В этом случае подстановку
0 называют унификатором для {АД, поскольку ее применение
сжимает множество до одного элемента. Например, подстановка
0 = {(а,х), (Ь,,у)} унифицирует множество {Р(х,/((/), б),
р(х, }(Ь), Ь)} и дает {Р(а, Кф), &)}
Унификатор 0 = {(а,х), (Ь,у)} для множества {Р(х, [(у), Ь),
Р(х,/(&),&)} в некотором смысле не является простейшим. За-
метим, что для унификации нет необходимости подставлять а
вместо х.' Наиболее общим (или простейшим) унификатором
(ноу) для {Л,} будет такой унификатор X, что если 0 — какой-
нибудь унификатор для {Л,}, дающий {Лг}е, то найдется подста-
новка б, для которой {Аг}хв = «Общий» частный случай,
соответствующий наиболее общему унификатору, единствен с
точностью до алфавитных вариантов.
Существует алгоритм, называемый алгоритмом унификации,
который приводит к наиболее общему унификатору для унифи-
цируемого множества {Л,} литералов и сообщает о неудаче, если
это множество неунифицируемо. Схему работы алгоритма мож-
но описать следующим образом. Алгоритм начинает работу с
пустой подстановки *) и шаг за шагом строит наиболее общий
унификатор, если таковой существует. Предположим, что на
к-м шаге получена подстановка Л*. Если все литералы множе-
ства {А»} в результате применения к каждому из них подста-
новки становятся идентичными, то X = Л* и есть наиболее об-
щий унификатор. В противном случае каждый из литералов в
рассматривается как цепочка символов и выделяется
позиция первого символа, в которой не все из литералов имеют
одинаковый символ. Затем конструируется множество рассогла-
сования, содержащее п. п. выражения из каждого литерала, ко-
торый начинается с этой позиции. (П. п. выражение представ-
ляет собой либо терм, либо литерал.) Так, множеством рассо-
гласования для
{Р(а,1(а, §(?)), й(х)), Р(а,?(а,и), §(&))}
I т
будет
к (г), и}.
Далее алгоритм пытается так модифицировать подстановку
Хй, чтобы сделать равным два элемента из множества рассогла-
сования. Это можно сделать только тогда, когда множество
рассогласования содержит переменную, которую можно поло-
жить равной одному из его термов. (Если множество рассогла-
сования вообще не содержит переменных, то множество {Л;}
унифицировать нельзя. Например, на первом шаге работы алго-
ритма множество рассогласования может оказаться самим {Л,},
и тогда ясно, что ни один из элементов не будет переменной.)
Пусть 5й — переменная в множестве рассогласования и —
терм (возможно, другая переменная) в множестве рассогласо-
вания, не содержащий $&. (Если такого Д нет, то множество
{!»} неунифицируемо.) Теперь можно образовать модифициро-
ванную подстановку Хй+1 = Хй{(Д, «л)} и выполнить следующий
шаг работы алгоритма.
') То есть не делается никаких подстановок.—Прим, перев.
Можно доказать (Робинсон, 1965а и Лакхэм, 1967), что опи-
санный алгоритм находит наиболее общий унификатор для мно-
жества унифицируемых литералов и сообщает о неудаче, если
литералы неунифицируемы. Мы не будем давать здесь доказа-
тельство этого утверждения.
В качестве примеров приведем «общие» частные случаи, со-
ответствующие наиболее общему унификатору для ряда мно-
жеств литералов.
Множество литералов «Общие» частные случаи
{Р (г), р (а)} {Р(Н.х), у, ё(уУ), Р(!(х), г, §(х))} (Р (1 (х, § (а, у)), § (а, у)), Р (х, г), г)} Р (а) р а (х), X, ё (х)) РЩх, ё (а, у)), ё (а, у))
Принято рассматривать предложения как множества литера-
лов. Тогда предложение, содержащее множество {Аг} литералов,
можно также обозначить {Р,}.
Если подмножество литералов в некотором предложении
{Ьг} унифицируемо с помощью ноу X, то предложение {^г}х
называют фактором предложения {А,}. Факторами предложения
Р (I (х)) V Р(х) V <2 (а, I («)) V <2 (х Л (6)) V <2 (г, ш)
являются, например, предложения
Р(Кг))УР(г)У«(а,Г(и))УС(г,/(Ь)) . '
и
Р(?(а)) \/Р(а) \/(} (а,
В первом факторе унифицированы только два последних вхо-
ждения литерала ф, а во втором все три. Заметим, что в этом
предложении два вхождения литерала Р нельзя унифицировать.
Вообще предложение может иметь более одного фактора, но,
во всяком случае, число факторов конечно.
6.13. РЕЗОЛЬВЕНТЫ
Теперь опишем процесс, с помощью которого иногда можно
вывести новое предложение из двух других (называемых исход-
ными предложениями). Пусть исходные предложения задаются
в виде {А,} и {М,} и переменные, входящие в {М,}, не встре-
чаются в {Ь,} и обратно1). Пусть {/,} е{А,} и {тг} е {Л4,} —
такие два подмножества в {Л,} и {М,}, что для объединения
{/г} 0 существует наиболее общий унификатор X. (Иными
') В любой паре предложений всегда можно так переименовать перемен-
ные, чтобы это предположение выполнялось.
словами, {т»}х содержит одиночный литерал, равный отрицанию
одиночного литерала в {/<}х.) Тогда грворят, что два предложе-
ния {Л,} и {Л4,} разрешаются, а новое предложение
км-Мкщрм-Мх
является их резольвентой.
Резольвента представляет собой выведенное предложение, и
процесс образования резольвенты из двух «родительских» пред-
ложений называется резольвенцией. Если два предложения раз-
решаются, то они могут иметь более одной резольвенты, по-
скольку способ выбора {/,} и {т,} может оказаться не един-
ственным. Но, во всяком случае, они имеют не более конечного
числа резольвент. Сейчас мы дадим несколько примеров резоль-
венции и попытаемся связать ее с более знакомыми нам прави-
лами вывода.
Рассмотрим два предложения
{Л л = Р (х, / (а)) V р М О/)) V
и
{М^-Р&.ШУ-(}(?).
Выбирая подмножества
{М={Р(Х, И«))} и {т<} = {-Р(г,/(а))},
мы получаем резольвенту
а если взять
{^{Р^тУ'Р^.Ну)')} и {/«Л = {~Р(г,Н«))Ь
то резольвентой будет
-<?(*).
Всего для этих двух предложений есть четыре резольвенты:
три из них получаются разрешением на Р и одна разрешением
на ф.
Резольвенция является общим правилом вывода, объединяю-
щим подстановку, тодиз ропепз1) и различные типы силлогиз-
мов. Рассмотрим резольвенту ф(а) двух предложений
~Р(а) V <2(а) и Р(а).
Если первое предложение записать в виде Р(а) =>ф(а), то
ясно, что в этом случае резольвенция совпадает с тойиз ропепз.
') МоСиз ропепз — латинское название первой формы гипотетического сил-
логизма, выражаемой формулой (Д'/ (4->В))->-В (т. е. если из А следует
В н А имеет место, то имеет место и В). — Прим. ред.
Рассмотрим теперь резольвенту ~Р(х)\/ С(х) двух предло-
жений ~Р(х) V Р(х) и ~/?(х) V <Э(х). В более привычных
обозначениях (а также на русском языке) эта цепочка рассуж-
дений выглядит так:
Обычная логика На русском языке
(ух){Р (х) =>/?(X)} Все, что обладает свойством Р, имеет свойство Р
(Ух) {/? (х) => <Э (х)} Все, что обладает свойством /?, имеет свойство С}
Следовательно:
(ух) {Р (х) => <2 (х)} Все, что обладает свойством Р, имеет свойство
Такой вывод является одним из силлогизмов.
6.14. ПРИНЦИП РЕЗОЛЬВЕНЦИИ')
Резюмируем кратко основные идеи этой главы. Мы хотим
иметь возможность находить доказательство того, что некото-
рая_ правильно построенная формула № в исчислении предика-
тов логически следует из некоторого множества 5 правильно
построенных формул. Мы показали, что эта задач? эквивалент-
на задаче доказательства того, что множество {~ и7} II 5 не-
удовлетворимо. Процессы выявления неудовлетворимссти неко-
торого множества предложений называются процессами опро-
вержения. -
Собираясь применять частный случай процесса опроверже-
ния, приложимый к п. п. формулам, имеющим форму предло-
жений, мы привели простую последовательность операций, по-
зволяющую представить любую п. п. формулу в виде предложе-
ний. Затем ввели понятие области, названной универсумом
Эрбрана, для множества 5 предложений и объяснили, как ис-
пользовать построенное на его основе семантическое дерево
для представления всех интерпретаций предложений из 5. Если
множество 5 неудовлетворимо, то, разумеется, нельзя найти ин-
терпретацию, при которой все п. п. формулы в 5 истинны. На
такую неудовлетворимость множества 5 указывает замкнутость
его семантического дерева. Мы показали, как можно использо-
вать общее правило вывода, называемое резольвенцией, для
создания новых предложений. Дальше мы покажем, что при
добавлении к 5 этих предложений у семантического дерева.
') См. примечание йа стр. 172. — Прим, перев.
для нового множества (по-прежнему неудовлетворнмого) над
неблагоприятными вершинами будет, меньше вершин, и этот
процесс можно продолжать до тех пор, пока не останется
только корневая вершина, соответствующая неблагоприятной
вершине для пустого предложения.
Мы заключаем, что если продолжать осуществлять резоль-
венции на множестве неудовлетворимых предложений, то в
Рис. 6.3. Граф опровержения для невыполнимого множества
{Р(х)У(}(х), ~() (((?)), ~Р (((*)) V/? (г), ~/?(®)}.
конце концов придем к пустому предложению. Этот результат
позволяет пользоваться в процессе опровержения одним только
правилом резольвенции без явной ссылки на семантические де-
ревья. Пусть 31 (5)—объединение множества 5 с множеством
всех резольвент всех пар его предложений. Пусть 5?2(5) обо-
значает 31 (31 (5)) и т. д. Если множество 5 неудовлетворимо,
то мы гарантированы, что при некотором конечном п. (называе-
мом уровнем, или глубиной, опровержения) в 31п(8) будет пу-
стое предложение. Так как множество 5?’(5) при любом I ко-
нечно, если конечно 5, то эта простая стратегия нахождения
опровержения является конечным (хотя, быть может, долгим)
процессом.
Образование множеств 31(8), ЗР(8), ... соответствует пол-
ному перебору при поиске опровержения. В гл. 8 мы обсудим
различные стратегии поиска, более эффективные, чем эта про^
стая стратегия.
Опровержения, использующие резольвенции (иногда назы-
ваемые доказательствами с помощью резольвенций), можно
проиллюстрировать графоподобными структурами, в которых
в каждой вершине записано некоторое предложение. Предло-
жения из 5 записаны в концевых вершинах этого графа. Если
два предложения, находящиеся в концевых вершинах, разре-
шаются, то их резольвента записывается в идущей непосред-
етвенно за ними вершине, которая соединяется с этими конце-
Рис. 6.4. Граф опровержения для невыполнимого множества
{В(х), ~В(х)\/С(х), ~С(а)УО(Ь), ~С(с)уЕ(Д),
~О(х)\/~Е(у)}.
выми вершинами с помощью ребер. Корнем графа опроверже-
ния с помощью резольвенции (эти графы обычно изображаются
с корнем, расположенным внизу рисунка) служит пустое пред-
ложение (обозначаемое символом пП).
На рис. 6.3 приведен пример графа опровержения для мно-
жества неудовлетворимых предложений. Здесь для опроверже-
ния необходимы 3 резольвенции. Другой пример приведен на
рис. 6.4. (Заметим, что на рис. 6.4 предложение С(х) исполь-
зуется на графе дважды. Иногда эти графы изображают в виде
деревьев, повторяя поддеревья, появляющиеся более одного
раза.)
6.15. НЕПРОТИВОРЕЧИВОСТЬ И ПОЛНОТА РЕЗОЛЬВЕНЦИИ
В этом разделе мы покажем, что, принцип резольвенции не-
противоречив и полон. Непротиворечивость означает, что если
когда-нибудь мы придем к пустому предложению, то исходное
множество обязано быть неудовлетворимым. Полнота означает,
что если исходное множество неудовлетворимо, то в конце кон-
цов мы придем к пустому предложению.
Для того чтобы показать непротиворечивость принципа ре-
зольвенции, нужно доказать, что резольвента двух предложе-
ний логически следует из этих предложений, т. е. в прежних
обозначениях, что [{Л,} — {Мк 0 [{АМ — {тЛк логически следует
из (Ьг} и {ЛА,}. Заметим, что каждая интерпретация, удовлетво-
ряющая {В,} и {ЛА,}, удовлетворяет {В,}х и {ЛА,}Х- Но поскольку
никакая интерпретация не может удовлетворять одновременно
и {/г}х и {т(}х, то каждая интерпретация, удовлетворяющая {В,}
и {АМ, удовлетворяет также и их резольвенте. Таким образом,
резольвента логически следует из тех предложений, на которых
она построена.
Для того чтобы показать, что принцип резольвенции полон,
достаточно показать, что он полон по отношению к вершинам
вывода в семантических деревьях.
Обозначим через Тг замкнутое семантическое дерево для
.невыполнимого множества предложений 5, и пусть п — такая
вершина вывода в Тг, что П[ и п2— неблагоприятные вершины,
расположенные непосредственно под п, но ни одно предложе-
ние из 5 не терпит неудачу ни на п, ни выше п. Предположим,
что предложение {А,} из 5 терпит неудачу на Ць а предложение
{В,}' из 5 терпит неудачу на п2. Тогда в данном случае полнота
принципа резольвенции означает существование резольвенты
для {А,} и {В(}, скажем {С^, терпящей неудачу на вершине п
или выше нее.
Нетрудно видеть, что такая резольвента существует. В са-
мом деле, пусть Ь — элемент эрбрановской базы, значение ис-
тинности которого присваивается как раз под вершиной п.
Пусть для определенности значение Ь будет истинным для п1
и ложным для п2. Хотя ни {А,}, ни {В,} не терпят неудачу на
вершине п, {А,} терпит неудачу на пг, а {В,}— на п2. Рас-
смотрим сначала предложение {А,}. Так как оно терпит неудачу
на П], оно должно содержать по крайней мере одно унифици-
руемое подмножество, скажем {а,}, для которого ~В будет
«общим» константным частным случаем. Пусть о — такой уни-
фикатор, что{аЛа = ~В. Далее, предложение {А,}— {а{} терпит
неудачу на вершине п (или выше нее), поскольку при переходе
от п. к «1 мы лишь определили значение истинности для Ь,
а {А,} терпит неудачу на «ь
Аналогично, поскольку предложение {В^} терпит неудачу на
•«2, оно должно содержать унифицируемое подмножество,
скажем {Ь,}, для которого 1 будет «общим» константным част-
ным случаем. Пусть т — такой унификатор, что {Ь,}т = 1. Пред-
ложение {Вг} — {Ь4 также должно терпеть неудачу на вершине
п (-или выше нее).
Теперь унификаторы ст и т можно скомбинировать, посколь-
ку переменные в {Л,} и {&,} можно считать различными. Обо-
значим этот комбинированный унификатор через и. Таким об-
разом, так как = Ь и (Ь{}а — то {Л,} и {В,} имеют
резольвенту
ей а - {а я и «вл - {ш>
где % — наиболее общий унификатор для {а,} I) {—Ь{}. Так как
% — наиболее общий унификатор, то [{ЛД — {аг}]ш— частный
случай предложения [{Л,} —{аД]х, а [{В4 — {М1®— частный слу-
чай предложения [{В,} — {Мк Тогда, так как оба предложения
[И4—{«г}]в> и [{В,} — {ЬД]и> терпят неудачу на вершине вывода
п (или выше нее), то должны терпеть неудачу и предложения
[{Л4 — {аЛх и [{В4 — {МК- Очевидно, что их объединение —
наша резольвента — также терпит неудачу.
Для иллюстрации связи между семантическими деревьями
и резольвентными построениями обратимся снова к множеству
предложений 5, семантическое дерево которого изображено на
рис. 6.2. Мы уже показали, что на вершине 1 терпит неудачу
предложение ~Р(х)Л(Э(х), на вершине 2 — предложение
•~^(/(«/)), а их резольвента ~Р(Ну)) терпит неудачу на вер-
шине 3 — вершине вывода. Далее, на семантическом дереве для
множества 8' = {~Р(Цу))} II 5 неблагоприятными вершинами
будут вершины 3 и 4. На вершине 4 терпит неудачу предложе-
ние Р(1(у)). Построение резольвенты для Р([(у)) и ~Р (/(«/))
приводит, разумеется, к пустому предложению (терпящему не-
удачу на корневой вершине). Итак, доказательство невыполни-
мости заканчивается всего лишь после двух резольвейций.
6.16. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
Основания логики
Наше весьма поверхностное изучение математической ло-
гики можно углубить, обратившись к некоторым стандартным
учебникам. Блестящими учебниками являются книги Мендель-
сона (1964) и Роббина (1969)'), а для специалистов — класси-
ческая книга Чёрча (1956). В этих книгах излагается то, что
можно назвать классической логикой. Принцип резольвенций
(или в действительности любое обсуждение автоматического
доказательства теорем) еще не попал в учебники по логике.
*) На русском языке можно порекомендовать монографию П. С. Нови-
кова «Элементы математической логики», М., 1959. — Прим. ред.
В основу настоящей главы мы положили исчисление преди-
катов первого порядка с резольвенциями, поскольку оно явно
играет большую роль при автоматическом решении задач. Су-
щественное упущение здесь, однако, состоит в том, что мы не
рассмотрели отношения равенства. Все еще неясно, как «встро-
ить» в автоматические доказатели теорем отношение равенства
(и другие стандартные часто встречающиеся отношения). Об-
суждение этих усложнений выходит за рамки настоящей книги.
Одна из схем, позволяющая включить отношение равенства в
устройства автоматического доказательства теорем, обсуждается
Робинсоном и Восом (1969).
Далее, становится все яснее, что для создания сложных
универсальных решающих устройств необходимо привлечь ло-
гики высших порядков. Обсуждение применения логики выс-
ших порядков к решению задач можно найти у Маккарти и
Хэйеса (1969). В книге Роббина (1969) есть раздел, посвящен-
ный логике второго порядка, а в статьях Дж. Робинсона (1969а,
19696) рассматриваются общие проблемы процедур доказатель-
ства для логик высших порядков.
Этапы, выделенные нами при преобразовании правильно по-
строенной формулы в совокупность предложений, основаны на
процедуре Дэвиса и Путнама (1960). Такое представление в
виде предложений называют также бескванторной коиъюнк-
тивно нормальной формой.
Эрбрановские процедуры доказательства и резольвенции
Принцип резольвенций в автоматическом доказательстве
теорем основан на процедуре доказательства Эрбрана (1930).
Прямая реализация эрбрановской процедуры была бы в выс-
шей степени неэффективной. Усовершенствования, внесенные
Правицем (1960) и другими, привели в конечном итоге к прин-
ципу резольвенции, Дж. Робинсона (1965а). Наш способ изло-
жения методов доказательства, основанных на резольвенциях,
опирается на работу Ковальского и Хэйеса (1969). (См. также
Дж. Робинсон, 1968.) Привлечение семантических деревьев де-
лает очевидной связь между резольвенциями и эрбрановскими
методами, их можно использовать также для доказательства
применимости правил, более общих по сравнению с простой ре-
зольвенцией. Наше доказательство полноты принципа резоль-
венции является частным случаем доказательства полноты бо-
лее общего правила вывода, приведенного у Ковальского и
Хэйеса (1969).
Ясно написанное, сжатое изложение принципа резольвенции
с доказательством его полноты и непротиворечивости дано в
статье Лакхэма (1967). Доказательство непротиворечивости и
полноты можно найти еще в первой работе Дж. Робинсона
(1965а). В этих двух работах приведено также доказательство
«корректности» алгоритма унификации. Дж. Робинсон (1970)
написал, кроме того, блестящее, исследование, посвященное
«механическому доказательству теорем».
Задачи
6.1. Придать следующим п.п. формулам вид предложений:
а) (Чх){Р(х)=$ Р(х)},
Ь) {-{(Ух) Р (*)}) =$ (Зх) {- Р (х)},
с) -{(Ух) {Р (х)=>{(уу) {Р (У)^Р (I (х, у))} Л - (Уу) {<2 (х, у)=$ Р (у)}}}},
й) (УхЗу) {{Р (х, у) => (} (у,г)} Д {(? (у, х) =ф 5 (х, у)}} =ф
=Ф (ЗхУу) {Р (х, у) =ф 5 (х, у)}.
6.2. При каких условиях универсум Эрбраиа для множества предложений
5 конечен?
*6.3. Напишите программу для приведения п. п. формулы к виду предло-
жений.
6.4. Пусть 5 — множество литералов и р— подстановка. Напишите про-
грамму для вычисления 5р.
6.5. Исчисление высказываний можно рассматривать как частный случай
исчисления предикатов, когда единственными предикатными буквами яв-
ляются пропозициональные символы р® (см. стр. 173). Как надо находить,
реэольвенцию двух классов в исчислении высказываний? Возьмите отрицание
каждой из следующих формул исчисления высказываний и используйте прин-
цип резольвенции для доказательства неудовлетворимости множества предло-
жений, получаемого из каждого такого отрицания.
а) (Р V <У) ==> (<? V Р),
Ь) (Р=>(1)^ ((Л V Р) (« V <&),
с) Р =$ Р) =$ Р,
<1) (~<2 =>~ Р) =^> ((~<2 =5 Р) =5 О),
е) ((Р =ф Ф) =Ф Р) =Ф Р.
*6.6. Определите точно (скажем, с помощью блок-схемы) алгоритм унифи-
кации, работающий в соответствии с общим описанием в разд. 6.12. Исполь-
зуйте этот алгоритм для поиска унификатора множества
{Р (х, г, у), Р (о>, и, о>), Р (а, и, и)}.
(Замечание: будьте внимательны при точном определении композиции под-
становок.) Верно ли Ваш алгоритм обнаруживает тот факт, что множество-
{Р(х), Р(/(х))} не унифицируемо? Используя свой алгоритм, составьте про-
грамму, выдающую наиболее общий унификатор множестиа 5, если оно уни-
фицируемо, и пП в противном случае.
6.7. Пусть С1 и С2 — два предлояцгния. Покажите, как использовать про-
граммы задач 6.4 и 6.6 для написания программы вычисления множества всех
резольвент предложений и С2.
6.8. Возьмите отрицание каждой из следующих теорем исчисления преди-
катов и используйте принцип резольвенции для поиска противоречия:
а) (Ух){Р(х)=^Р(х)},
Ь) {-{(Ух)Р(х)}}^> (Зх) {—Р (х)},
с) {(Ух) {Р (х) Л (1 (х)} {(ух) Р (х)} Д {(Уг/) (} (у)},
б) {(Зх) (Уу) Р (х, у)} {(Уу) (Зх) Р (х, у)}.
Глава 7
.ПРИМЕНЕНИЯ ИСЧИСЛЕНИЯ ПРЕДИКАТОВ
К РЕШЕНИЮ'ЗАДАЧ
7.1. ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ПРИ РЕШЕНИИ ЗАДАЧ
В настоящей главе мы рассмотрим, как можно применить
к решению задач доказательства теорем в исчислении предика-
тов. Иногда достаточно только знать, следует ли логически
п. п. формула № из некоторого множества 5 п. п. формул. Если
№ не следует из 5, то, возможно, мы захотим знать, следует ли
~ № из 5. Конечно, в силу неразрешимости исчисления преди-
катов не всегда можно установить, следует ли № (или — №)
из 5. Можно попытаться поискать ответ на каждый из этих
вопросов, и, если после затраты некоторых усилий ответ не бу-
дет найден или время будет исчерпано, можно лишь заключить,
что на вопрос, следует ли № (или. ~ №) из 5, нельзя дать ответ
(с учетом наших возможностей). Часто, конечно, рдно из дока-
зательств будет найдено, и вопрос окажется решенным.
В других приложениях нужно знать значение элемента х
(если он существует), при котором данная правильно построен-
ная формула № (содержащая х в качестве переменной) логи-
чески следует из некоторого множества 5 п. п. формул. Иными
словами, мы хотели бы знать, следует ли логически п. п. фор-
мула (Зх)№(х), и если да, то каков тот частный случай пере-
менной х, «который существует». Проблема поиска доказатель-
ства п. п. формулы (Зх)УР(х), исходя из 5, является обычной
проблемой доказательства в исчислении предикатов, но для
построения удовлетворяющего частного случая требуется, что-
бы метод доказательства был «конструктивным».
Заметим, что умение строить удовлетворяющие частные слу-
чаи для переменной, относящейся к квантору существования,
позволяет ставить вопросы весьма общего свойства. Например,
мы могли бы задаться вопросом: «Существует ли решающая
последовательность для некоторого случая игры в пятнадцать?»
Если можно найти конструктивное доказательство того, что ре-
шение существует, то можно указать также само решение. Мы
могли бы задать даже более трудный вопрос: «Существует ли
программа, которая будет производить определенные вычисле-
ния?» Из конструктивного доказательства ее существования
можно было бы извлечь саму программу. (Очевидно, следует
помнить, что сложные вопросы, вообще говоря, приводят к
сложным доказательствам, возможно настолько сложным, что
наши автоматические процедуры поиска доказательства их не
найдут.)
Основная цель настоящей главы — описать процесс, с по-
мощью которого удовлетворяющий частный случай переменной,
относящейся к квантору существования, в некоторой п. п. фор-
муле можно извлечь из доказательства п. п. формулы, содержа-
щей эту переменную. Затем на ряде примеров мы проиллюстри-
руем применение этого процесса и вообще исчисления предикатов
к решению задач. Обсуждение процессов поиска при построе-
нии самих доказательств мы отложим до следующей главы.
Часто утверждения, относящиеся к задаче, делаются в-фор-
ме фраз на разговорном языке, например английском. Поэтому
естественно возникает вопрос, в каких случаях можно осуще-
ствить автоматический перевод с айглийского языка на язык
п. п. формул исчисления предикатов первого порядка. Хотя та-
кой процесс перевода должен быть одной из основных частей
законченного решателя задач, мы его не будем здесь рассмат-
ривать. Написано несколько программ, позволяющих осуще-
ствлять в ограниченных рамках перевод с английского языка
на язык исчисления предикатов, но способность работать с ес-
тественным языком пока находится в весьма неудовлетвори-
тельном состоянии. Можно выделить две главные трудности:
(1) выбор отношений, которые следует использовать при пере-
воде предложений с английского языка, и (2) однозначное
преобразование смысла, вложенного в фразу, в п. п. формулы,
использующие предикатные символы для этих отношений. Часто
неоднозначность можно устранить только рассмотрением «кон-
текста» фразы, а это сопряжено с трудными и не до конца по-
нятыми процессами. Проблема преобразования английского
языка в п. п. формулы нисколько не легче, чем, например, проб-
лема преобразования английского языка в описания состояний,
операторы и т. д. В настоящей книге мы вынуждены оставить
без рассмотрения вопросы перевода (сколь ни важны они) и
сосредоточить все свое внимание на процессах решения уже
сформулированных задач.
7.2. ПРИМЕР
Рассмотрим следующую тривиальную задачу: «Если Майкл
повсюду ходит за Джоном, а Джон находится в школе, то где
Майкл?» Совершенно ясно, что в этой задаче сформулированы
два «факта», а затем поставлен вопрос, который, по-видимому,
можно вывести из этих двух фактов. Эти факты легко перево-
дятся на язык п. п. формул и дают следующее множество 5
п. п. формул:
(Ух) {АТ (Джон, х) => АТ (Майкл, х)}
и
АТ (Джон, школа),
где предикатному символу АТ придана очевидная интерпрета-
ция («быть в определенном месте», соответствующая предлогу
«в» — Перее.).
На вопрос «Где Майкл?» можно дать ответ, если сначала
доказать, что п. п. формула
(Эх) АТ (Майкл, х)
следует из 5, и затем найти тот частный случай переменной х,
«который существует». Ключевая идея здесь состоит в таком
преобразовании вопроса в п. п. формулу, содержащую квантор
существования, чтобы ответом на этот вопрос служила пере-
менная, относящаяся к квантору существования. Если на осно-
вании данных фактов можно дать ответ на вопрос, то п. п. фор-
мула, построенная таким способом, будет логически следовать
~ АТ (Майкл,х)
~АТ(Джон,х) V АТ(Майкл,х}
Рис. 7.1. Дерево опровержения для рассматриваемого примера.
из 5. После нахождения доказательства мы пытаемся извлечь
тот частный случай переменной, относящейся к квантору суще-
ствования, который служит ответом. В нашем примере легко
доказать, что (Эх) АТ (Майкл,х) следует из 5. Легко также
показать, что соответствующий ответ можно, извлечь с помощью
сравнительно простой процедуры.
Доказательство получается обычным путем. Сначала отри-
цается п. п. формула, которую предстоит доказать. Затем это
отрицание добавляется к множеству 5, и все члены расширен-
ного множества преобразуются в форму предложений. Далее
с помощью принципа резольвенции показывается, что это мно-
жество предложений неудовлетворимо. Дерево опровержения
для нашего примера изображено на рис. 7.1. Правильно пост-
роенная формула, которую предстоит доказать, называется
предположением, а предложения, получающиеся из п. п. фор-
мул, содержащихся в 5, называются аксиомами.
Заметим, что отрицание п. п. формулы (Эх)АТ (Майкл, х)
дает
(Ух)[~АТ (Майкл, х)],
или, в форме предложения, просто ~ АТ (Майкл, х).
Теперь из этого дерева опровержения извлечем ответ на
вопрос «Где Майкл?» Это осуществляется следующим образом:
(1) К каждому предложению, вытекающему из отрицания
предположения, добавляется его отрицание. Тогда ~ АТ (Майкл,
х) принимает вид тавтологии ') ~ АТ (Майкл, х) V АТ (Майкл, х).
(2) В соответствии со структурой дерева опровержения вы-
полняются те же самые резольвенции* 2), что раньше, до тех пор
пока я его корне не будет получено некоторое предложение.
~АТ (Майкл, х) V АТ (Майкл, х)
Рис. 7.2. Модифицированное дерево доказательства для рассматриваемого
примера.
В нашем примере этот процесс порождает дерево, показанное
на рис. 7.2, с предложением АТ(Майкл, школа) в его корне.
(3) Предложение в корне преобразуется в обычную форму
исчисления предикатов и используется в качестве - ответного
утверждения. Эту п. п. формулу затем можно снова перевести
на, скажем, английский язык, как ответ на вопрос. Очевидно,
что в нашем примере АТ (Майкл, школа) и является соответ-
ствующим ответом задачи.
Заметим, что форма ответного утверждения близка к форме
предположения. В нашем случае единственное отличие состоит
в том, что в предположении мы имеем переменную, связанную
с квантором существования, а в ответном утверждении — кон-
станту (ответ).
Прежде чем приступить к обсуждению приложений этого
метода, стоит подробнее изучить процесс извлечения ответа.
В следующем разделе мы приведем обоснование самого про-
‘) Тавтологией называется п. п. формула вида В7 V ~ В7.
2) Смысл слов «те же самые резольвенции» мы объясним позже.
цесса и обсудим, как применять его в случаях, когда предполо-
жение 'содержит как кванторы всеобщности, так и кванторы су-
ществования.
7.3. ПРОЦЕСС ИЗВЛЕЧЕНИЯ ОТВЕТА
Извлечение ответа связано с преобразованием графа опро-
вержения (с ш! в его корне) в граф, у которого в корне нахо-
дится некоторое утверждение, могущее служить ответом. Так
как при таком преобразовании каждое предложение, возникаю-
щее из отрицания предположения, превращается в тавтологию,
то преобразованный граф представляет собой доказательство
того, что утверждение, расположенное в его корне, логически
следует из аксиом и тавтологий. Поэтому оно также следует из
аксиом и только из них. Таким образом, для извлечения от-
вета можно использовать сам преобразованный граф доказа-
тельства. Позже станет ясно, почему утверждение, расположен-
ное в корневой вершине модифицированного дерева опровер-
жения, всегда можно использовать как ответ.
Хотя этот метод и прост, но у него есть несколько тонких'
моментов, которые мы разъясним на примерах.
Пример 1. Рассмотрим правильно построенные формулы
1) ^хУу) {(Р (х, у) К Р (у, г)) =$ О (х, г)},
2) (Уг/Зх){Р(х, у)}.
Их можно интерпретировать так:
1) Для всех хну, если х является родителем у и у является
родителем г, то х является прародителем г
2) Каждый индивид имеет своего родителя.
Будем считать эти формулы гипотезами и зададим такой
вопрос: «Существуют ли такие индивиды х и у, что О(х,«/)?»
(Иными словами, существуют ли такие х и у, что х является
прародителем г/?)
Сформулируем этот вопрос в виде предположения, требую-
щего доказательства:
(3x3г/) О (х, у).
Это предположение легко доказать методом опровержения
с помощью резольвенций, показав невыполнимость множества
предложений, получаемых из аксиом и предположения. Дерево
опровержения изображено на рис. 7.3. Литералы, подвергаю-
щиеся унификации при каждой из резольвенций, подчеркнуты.
Подмножество литералов в предложении, подвергающееся уни-
фикации в процессе резольвенций, назовем множеством унифи-
кации.
~С(и,о)
(отрицание предположения)
~Р(х,у)у ~Р(у,г) V С (г,г)
(аксиома 1)
~Р(и,у) V ~Р(У,о)
Рис. 7.3. Дерево опровержения для примера 1.
Заметим, что предложение Р(/(и>),и>) содержит сколемову
функцию Д введенную при исключении квантора существования
в аксиоме 2: (Vу^х) {Р (х, у)}. Эта функция определяется' так,
чтобы (V#) (Р(Г(у),у). (Функцию I можно интерпретировать
как функцию, задающую имя родителя каждого индивида.)
Модифицированное дерево доказательства приведено на
рис. 7.4. Отрицание предположения преобразовано в тавтоло-
гию, а резольвенции осуществляются те же самые, что и на
рис. 7.3. Каждая резольвенция в модифицированном дереве
опирается на множества унификации, которые в точности соот-
ветствуют множествам унификации графа опровержения. Мно-
жества унификации на рис. 7.4 подчеркнуты.
В корневой вершине дерева доказательства, изображенного
на рис. 7.4, находится ), о). Это предложение соответ-
ствует п. п. формуле (Уц){6(/(/(ц)), ц)}, представляющей со-
бой ответное утверждение. Ответное утверждение дает полный
ответ на вопрос: «Существуют ли такие х и у, что х является
прародителем у?» Ответ в данном случае содержит определи-
тельную функцию ф. любое V и родитель родителя этого V слу-
жат примерами индивидов, удовлетворяющих условиям вопроса.
Снова ответное утверждение имеет форму, близкую к форме
вопроса.
~С{и,о) V С(и,о)
~Р(х,у) V ~Р(у,г) V С(х,г)
~Р(и,у) V ~Р/у,Ц) V е/«,«/
~Р(и,Г{о)) V С (и,о)
С(Г(Г(и))л)
Рис. 7.4. Модифицированное дерево доказательства для примера 1.
Пример 2. Покажем, как преобразовать в тавтологии бо-
лее сложные предложения, возникающие при отрицании пред-
положения.
Рассмотрим следующее множество предложений:
~Л(х) УР(х) V 60(х)),
~Р(х)\/ В (х),
~Р (х) V С (х),
~ О (х) V В (х),
~ О (х) V В (х),
4&(х)) УВ(Л(х)).
Мы хотим доказать, исходя из этих аксиом, предположение
(3x31/) {{В (х) Л с (х)} V {В (У) Л в (у)}}.
Отрицание его приводит к двум предложениям, каждое из
которых содержит по два литерала:
~ В (х) V ~ С (х),
~ В (х) V ~ В (х).
Граф опровержения для нашего дополненного множества
предложений приведен на рис. 7.5.
Теперь для преобразования графа мы должны превратить
предложения, вытекающие из отрицания высказанного предпо-
ложения (на рис. 7.5 они заключены в рамку), в тавтологии,
дописав к ним их отрицания. В данном случае отрицания
содержат знак Л. Предложение ~ В(х)\/ ~ С(х), например,
преобразуется в формулу ~В(х)\/ ~ С(х) V (В(х)ЛС(х)).
Эта формула не будет предложением из-за имеющейся^ в ней
конъюнкции (В(х) ЛС(х)). Однако мы будем обращаться с этбй
конъюнкцией, как с единым литералом, и действовать формаль-
но так, как будто наша формула является предложением (ни
Рис. 7.5. Граф опровержении для примера 2.
один из элементов рассматриваемой конъюнкции не может ока-
заться ни в одном множестве унификации). Аналогично пре-
образуем предложение ~Б(х) V ~В(х) в тавтологию
~Д(х)У ~В(х)У (О(х)ЛВ(х)).
Выполняя резольвенций, диктуемые соответствующими мно-
жествами унификации, мы строим граф, изображенный на
рис. 7.6. В корневой вершине расположена п. п. формула
{(V*) [В (ё (х)) /\С(ё (х))] V [Р д (ё (х))) Л В (х)))] V
V [В(Л(х))ЛС(Л(х))1}.
Мы видим, - что здесь ответное утверждение имеет форму,
несколько отличную от формы, в которой было сделано предпо-
ложение. Нетрудно видеть, что подчеркнутая часть ответного
утверждения аналогична по форме всему предположению, но
только здесь вместо переменной х, относящейся к квантору су-
ществования, стоит §(х), а вместо переменной у, относящейся
к другому квантору существования, стоит }(ё(х)). Но в рассма-
триваемом примере в ответном утверждении имеется дополни-
{ВП1(х}) Л С(й(я))] V [О(Г№УП Л В(Г(д(х)))] V [В(д(х)) л С(д(х))]
Рис. 7.6. Модифицированный граф доказательства для примера 2.
тельный дизъюнкт [В(й(х))Л С(й(х))]. Этот дизъюнкт похож;
на один из дизъюнктов, содержащихся в предположении, при-
чем вместо переменной х, относящейся к квантору существова-
ния, здесь стоит Н(х).
Вообще, если предположение делается в дизъюнктивно нор-
мальной форме, то в процессе извлечения ответа создается
утверждение, представляющее собой дизъюнкцию выражений,,
каждое из которых имеет форму либо всего предположения,
либо одного или нескольких дизъюнктов этого предположе-
ния. Поэтому мы и говорим, что такое утверждение можно-
использовать в качестве «ответа» на вопрос, представляемый
исходным предположением.
Ситуацию, возникающую в общем случае, можно описать
точно. Допустим, что нам нужно доказать предположение,
имеющее вид
(3X1) ... (Зх„) 1^1 (*!.х„) V • • • V (х„ .... х„)],
где каждый член ТС7! представляет собой конъюнкцию литера-
лов. Это значит, что каждый член можно записать в виде
— Л ^12 Л • • • Л
где переменные явным образом не указаны. Отрицание предпо-
ложения приводит к предложениям
V ~Ь12 V ... VЬир
V V • • V Ьткт‘
После того как построен граф опровержения, каждое вхождение
любого из этих предложений преобразуют в тавтологию, добав-
ляя отрицание предложения. Иными словами, добавляют фор-
мулы вида
1 Л 1^12 Л ••• Л Ьнц == I (Х{> х2, . • •, хп).
Таким образом, в корневой вершине преобразованного графа
опровержения будет'получено ответное утверждение, состоящее
из дизъюнкций членов в которых вместо переменных
Х1, ..., хп стоят различного рода частные случаи.. Ясно, что
каждый член ТГ,- может вовсе не содержаться в ответном утвер-
ждении, а может содержаться в нем один или даже несколько
раз. Таким образом, совсем не обязательно, чтобы ответное
утверждение имело вид в точности как у предположения.
7.4. ПРЕДПОЛОЖЕНИЯ, СОДЕРЖАЩИЕ ПЕРЕМЕННЫЕ,
ОТНОСЯЩИЕСЯ К КВАНТОРУ ВСЕОБЩНОСТИ
В случае когда предположение, которое требуется доказать,
содержит переменные, относящиеся к квантору всеобщности,
возникают дополнительные трудности. При отрицании такие пе-
ременные переходят в переменные, относящиеся к квантору
существования, а это приводит к необходимости введения ско-
лемовых функций. Что должно служить интерпретацией этих
сколемовых функций, если они в конце концов появляются в
качестве термов в ответном утверждений?
Проиллюстрируем это на примере. Зададим аксиомы в виде
предложений:
1) С(х, р(х)) : каждый х является ребенком для р(х). (Ины-
ми словами, р — функция, ставящая в соответствие ребенку ин-
дивида самого индивида.)
2) ~ С (х, у) V Р (у, х): для всех х и у, если х — ребенок для
у, то у — родитель для х.
Теперь мы задаем вопрос: «Для любого х кто является его
родителем?» Предположение, соответствующее этому вопросу,
имеет вид
($хЗу) Р (у, х).
Преобразуя отрицание этого предположения в форму предложе-
ний, мы получаем сначала
(ЭхУу)~Р(у, х),
а затем
~Р(у,а),
где а — сколемова функция, не содержащая аргументов (т. е.
константа), введенная для исключения квантора существова-
ние. 7.7. Модифицированное дерево доказательства для получения ответ-
ного утверждения.
ния, появляющегося при отрицании предположения. (Отрицание
предположения означает, что некоторый индивид, а не имеет
родителей.) Модифицированное дерево доказательства, в корне-
вой вершине которого находится ответное утверждение, изобра-
жено на рис. 7.7.
В данном случае мы получаем довольно трудно интерпрети-
руемое утверждение Р(р(а),а), содержащее сколемову функ-
цию а. Интерпретация должна говорить о том, что независимо
от сколемовой функции а, которая должна бы «нарушить» спра-
ведливость предположения, мы можем, как оказалось, доказать
Р(р(а),а). Иными словами, любой индивид, для которого пред-
• положение могло быть неверным, на самом деле удовлетворяет
предположению. Доказательство, представленное на рис. 7.7,
будет справедливо и.в случае, если вместо константы а взять
переменную.
Можно показать (Лакхэм и Нильсон, 1971), что в процессе
извлечения ответа всегда можно заменять любые сколемовы
функции, возникающие при отрицании предположения, новыми
переменными. В модифицированном доказательстве в эти" новые
переменные не будет делаться никаких подстановок, так что они
пройдут через доказательство без изменения и появятся в окон-
чательном ответном утверждении. Резольвенциями в модифици-
рованном доказательстве по-прежнему будут лишь резольвен-
ции, определяемые множествами унификации, соответствующи-
ми множествам унификации, появляющимся в ходе первона-
чального опровержения. В процессе некоторых резольвенций
переменные могут быть переименованы, так что, возможно, не-
которая переменная, использованная на месте сколемовой функ-
ции, окажется переименованной и станет, таким образом, «родо-
начальником» новых переменных в окончательном ответном
утверждении.
Продемонстрируем на двух простых примерах некоторые
явления, связанные с этой особенностью.
Пример 3. Пусть 5 состоит из единственной аксиомы (в
форме' предложения)
Р(Ь, а), о») V Р(а, и, и).
Нам нужно доказать предположение
(ВхУгВг/)Р(х, г, у).
Дерево опровержения изображено на рис. 7.8, а. В предло-
жении, происходящем из отрицания нашего предположения, со-
держится сколемова функция ё(х). На рис. 7.8,6 изображено
дерево модифицированного доказательства, в котором вместо
•сколемовой функции §(х) стоит переменная Л Мы получаем
доказательство ответного утверждения
Р(а, I, I) V Р(Ь, г, г),
совпадающего (с точностью до наименования переменных) с
нашей аксиомой. Этот пример показывает, каким образом по-
являются в ответном утверждении новые переменные, введенные
при переименовании в процесс резольвенции переменных в од-
ном предложении.
Пример 4. Допустим, что нам нужно доказать то же самое-
предположение, что и в предыдущем примере, но теперь исходя
Рис. 7.8. Деревья доказательства для примера 3.
из аксиомы Р(г, и,г) V Р(а, и, и). Дерево опровержения изобра-
жено на рис. 7.9, а. В предложении, происходящем из отрицания
предположения, содержится сколемова функция §(х).
На рис. 7.9, б изображено дерево модифицированного дока-
зательства, в котором вместо сколемовой функции ё(х)
использована переменная V. Мы получаем доказательство ответ-
ного утверждения
Р(г, а), г) V Р(а, по, а»),
совпадающего (с точностью до наименований переменных) с
исходной аксиомой. Внимательный анализ унифицирующих под-
Рис. 7.9. Деревья доказательства для примера 4.
становок в этом примере показывает, что, хотя резольвенции
в модифицированном дереве и ограничены соответствующими
множествами унификации, подстановки, используемые в моди-
фицированном дереве, могут носить более общий характер по
сравнению с подстановками в первоначальном дереве опровер-
жения.
В заключение перечислим этапы процесса извлечения от-
вета:
1. В ходе некоторого процесса поиска (перебора) строим
граф опровержения на основе резольвенций и выделяем в нем
множества унификации.
2. Вместо сколемовых функций, которые появляются в пред-
ложениях, происходящих из отрицания предположения, под-
ставляем новые переменные.
3. Предложения, происходящие из отрицания предположе-
ния, превращаем в тавтологии, приписывая к ним их же отри-
цания.
4. Следуя структуре первоначального графа опровержения,
строим граф модифицированного доказательства. В каждой ре-
зольвенции модифицированного графа используем множество
унификации, определяемое множеством унификации, используе-
мым при соответствующей резольвенции в графе опровержения.
5. Предложение, находящееся в корневой вершине модифи-
цированного графа, представляет собой ответное утверждение,
извлеченное в ходе описываемого процесса.
Очевидно, что ответное утверждение зависит от того опро-
вержения, из которого оно было извлечено. Возможно, для одной
и той же задачи существует несколько различных опроверже-
ний. Из каждого такого опровержения мы могли бы извлечь
ответ, и хотя некоторые из ответов могут совпасть, тем не менее
некоторые утверждения, составляющие ответ, могут оказаться
более общими, чем другие. Обычно у нас нет возможности
установить, является, ли ответное утверждение, извлеченное из
данного доказательства, наиболее общим. Мы могли бы, конеч-
но, продолжать поиск доказательств до тех пор, пока не найдем
доказательство, дающее достаточно общий ответ. Но вследствие
неразрешимости исчисления предикатов не всегда можно уста-
новить, нашли ли мы все возможные доказательства для п. п.
формулы № исходя из множества 5. Эта трудность представ-
ляет, по-видимому, лишь теоретический интерес. В приводимых
ниже примерах получаемые ответы вполне удовлетворительны.
7.5. ПРИМЕР АВТОМАТИЧЕСКОГО НАПИСАНИЯ ПРОГРАММЫ
При соответствующей формализации описанный выше про-
цесс извлечения ответа можно применять для автоматического
построения простых программ для вычислительной машины.
При существующем уровне развития таких методов приемы
автоматического доказательства теорем пригодны для написа-
ния лишь простейших программ. Мы проиллюстрируем этот
подход на примере. Общая же проблема автоматического син-
теза программы пока еще выходит за рамки возможностей всех
имеющихся в настоящее время подходов.
Предположим, что мы хотим написать программу, в которой
в качестве входной переменной берется х, а на выходе полу-
чается значение у, удовлетворяющее какому-то соотношению
Д (х,у). Мы считаем, что некоторым множеством аксиом опреде-
лена интерпретация предикатной буквы /?. Другие аксиомы за-
дают элементарные функции, из которых мы будем конструиро-
вать нашу программу (создавая композиции функций). С по-
мощью процесса извлечения ответа система доказательства тео-
рем построит требуемую программу, если она сможет доказать,
что предположение (УхВг/) /?(х, у) логически следует из указан-
ных аксиом. После того как доказательство - будет найдено, в
ответном утверждении будет предположенное у как композиция
элементарных функций. Эта композиция функций тогда и будет
программой.
Для того чтобы писать интересные программы, мы должны
располагать элементарными функциями, допускающими услов-
ные ветвления и либо итерации, либо рекурсии. Такие языки
программирования, как Ы8Р1), дают возможность писать ре-
курсивные программы. Для формализации действия функций,
допускающих условные ветвления (таких, как функция сопб в
языке Ы8Р), требуется либо возможность работать с отноше-
нием равенства, либо наличие специальных правил вывода.
В настоящей книге мы не рассматриваем вопрос отношения ра-
венства; пока еще неясно, какой именно из предлагаемых мето-
дов работы с равенством приемлем (и приемлем ли хоть один
из них вообще). В некоторых случаях можно обойти эту труд-
ность и создать рекурсивные программы с ветвлением при про-
верке выполненности условий окончания. Используемые в этих
случаях приемы лучше всего пояснить на конкретном примере.
Допустим, что мы хотим составить программу, сортирующую
входной список чисел. Выходом должен быть другой .список, со-
держащий те же самые числа, расположенные в порядке их
убывания. Мы будем строить программу из элементарных функ-
ций саг, сбг, сопз и тег&е. Первые три из них являются эле-
ментарными функциями языка программирования Ы8Р. Они
определяются следующим образом:
саг(х) имеет в качестве своего значения первый элемент
списка х;
сбг(х) имеет в качестве своего значения ту часть списка х,
которая остается после удаления из него первого элемента;
сопз (х, у) имеет в качестве своего значения список, полу-
чаемый в результате размещения перед списком у элемента х.
Как следствие этих определений мы получаем, что
сопз (саг (х), сбг (х)) = х.
’) Хорошее описание языка Ы8Р содержится в книге Вайссмана (1967).
Нетрудно видеть целесообразность использования этих функ-
ций как компонент более сложных .операций над списками, та-
ких, как программа сортировки, которую мы хотим построить.
Еще одна элементарная функция, тег^е, выбранная нами, су-
щественно более сложна по сравнению с первыми тремя.
У функции тег^е (сливаться, соединяться) два аргумента: пер-
вый является элементом, а второй — отсортированным списком.
Значением тег^е(х, у) служит новый список, содержащий эле-
мент х и все элементы списка у, причем этот новый список уже
подвергнут сортировке. Таким образом, тег^е (х, у) находит
соответствующее место в отсортированном списке у для такого
размещения там элемента х, чтобы результирующий список не
нуждался в сортировке.
Теперь сформулируем «аксиомы», формализующие наши
определения и нужное нам отношение вход — выход /?(х, у).
Прежде всего мы определим отношение сортировки К(х,у)
в терминах двух других отношений:
1. (Ух^у) «/? (х, у) ^{8 (у) Л / (X, г/)}} Л {{5 (у) Д / (х, у)}
==>/?(*, г/)}}.
Интуитивный смысл отношения 5 (у) состоит в том, что «спи-
сок у уже подвергнут сортировке». Смысл отношения 1(х,у) —
«два списка х и у содержат одни и те же элементы (но не обя-
зательно в одинаковом порядке)». Теперь мы предлагаем (ре-
куррентные) определения для 5 и I через элементарные функ-
ции:
2. (УхУ уУи){1 (х, у) ==>I(сопз(и, х), теще(и, г/))}.
3. / (ш1, ш1) (пП обозначает пустой список).
4. (УхУ у) (8 (у) => 8 (тег^е (х, г/))}.
5. 8(пИ).
На самом деле определения 2—5 несколько слабее того интуи-
тивного определения, которое мы дали выше, но они достаточны
для построения доказательства ’).
Множество предложений, соответствующих приведенным
выше правильно построенным формулам 1—5, таково:
1а. ~/?(х, у) V 8 (у).
1Ь. ~/?(х, у) V Цх, у).
1с.
2. ~/(х, у) V / (сопз (и, х), тег§е(и, у)).
') Представленная здесь аксиоматизация в сущности совпадает с аксио-
матизацией, предложенной ранее Робертом Йейтсом из Стэнфордского иссле-
довательского института.
3. I (П11, П11).
4. ~ 8 (у) V 5 (тег^е (х, у)).
5. 5(ш1).
Нашей стратегией будет попытка доказать (УхЭг/) /?(х, у)
по индукции. Мы будем доказывать это предположение для
списка длины нуль, затем предположим, что оно верно для спи-
сков длины п 0, и докажем его справедливость для списков
длины п+1. Результатом будет рекурсивная функция, сорти-
рующая список произвольной длины.
, ~К(п11,у) -
_______V К(х,у)
~8(у) V
Рис. 7.10. Дерево опровержения для (Зу) /?(п!1, у).
Доказывая таким способом, мы существенно помогаем на-
писанию программы, «встраивая» проверку условного ветвления
для х = пП. Если этот тест удовлетворяется, мы переходим
к программе, образованной доказательством для входных спи-
сков длины п = 0. В противном случае мы переходим к про-
грамме, образованной доказательством, использующим предпо-
ложение индукции. Такая схема упрощает наш пример, по-
скольку освобождает от формализации условных функций и
введения необходимых отношений равенства.
В случае списков длины п = 0 предположение можно сфор-
мулировать в виде (Эу)/?(пП,у). Отрицанием его будет
~/?(пП, у). Дерево опровержения изображено на рис. 7.10.
После извлечения ответа из этого дерева мы получаем ответ-
ное утверждение
7?(пП, пП).
Таким образом, здесь мы имеем до некоторой степени тривиаль-
ный результат: «Если длина списка х равна 0, то у = пП».
(сопз(сяг(а),с(1г(я)),у)
V ~/(х,у)
-/(сопз(саг(а),с<1г(а)),у; V ~5(у)
(н.у)) V ~Цх,у)
~/(с<1г(я),у) V ~5(тегде(сяг(а),у))
~$(тегде(сяг(а)),у) V ~К(сЛг(я),у)
\ 5(тегде(х,у)) V ~5(у)
Рис. 7.11. Дерево опровержения для (УхЗу)/? (х, у).
Сформулируем теперь предположение индукции: «Для каж-
дого непустого списка х значение сс1г(х) можно отсортировать».
Представим себе, что у нас есть функция зог(, которая может
произвести сортировку списка меньшего размера. Предположе-
ние индукции в форме предложения имеет вид
6. /? (с<1г (х), воН (сбг (х))).
Разумеется, мы сейчас предполагаем, что х п>1, и обращение
к программе, образованной этой частью доказательства, проис-
ходит в случае, когда не выполняется тест х = п!1.
Для доказательства (УхЗ?/) /?(х, у) нам «онадобится сле-
дующее соотношение между саг, сопз и сбг:
V х {сопз (саг (х), сбг (х)) = х}.
Опять-таки, чтобы избежать трудностей, связанных с преди-
катами равенства, введем это соотношение в виде предложения
7. ~ А? (сопз (саг (х), сбг (х)), у) V Я (х, у).
(Заметим, что это предложение становится тавтологией после
подстановки х = сопз (саг(х),сс!г(х)), справедливость которой
вытекает из определения функций саг, сопз и сбг.)
Отрицанием предположения служит
8. ~ (а, у).
Здесь а — сколемова функция, появляющаяся, когда в пред-
положении содержатся переменные, относящиеся к квантору
всеобщности. Граф опровержения изображен на рис. 7.11.
Исключая функцию а и преобразуя граф опровержения обыч-
ным способом, получаем ответное утверждение
/? (х, шег^е (саг (х), эог! (с<1г (х)))).
Объединяя условное ветвление, которое мы заранее обеспе-
чили, и элементы, созданные доказателем теорем, имеем в итоге
рекурсивную программу
пП, если'х = пП,
шег^е (саг (х), зог! (с<1г (х))) в противном случае.
7.6. ИСПОЛЬЗОВАНИЕ ИСЧИСЛЕНИЯ ПРЕДИКАТОВ ПРИ РЕШЕНИИ
ЗАДАЧ В ПРОСТРАНСТВЕ СОСТОЯНИЙ
Если состояние задачи можно определить совокупностью
правильно построенных формул исчисления предикатов, то эта
совокупность может составлять описание состояния, используе-
мое для решения задачи в пространстве состояний. При такого
рода описаниях операторы в пространстве состояний будут вы-
числениями, заменяющими одно множество правильно построен-
ных формул другим. Множество целевых состояний можно
тогда определить как множество, описываемое любой совокуп-
ностью п. п. формул, из которой следует некоторая целевая п. п.
формула. Аналогично можно с помощью п. п. формулы приме-
нимости определить множество состояний, к которым применим
данный оператор. В такой системе решения задач можно было
зог1х =
бы использовать методы доказательства теорем в исчислении
предикатов для проверки выполнения условий достижения цели
и условий применимости операторов.'
Представление в пространстве состояний для задачи об
обезьяне и бананах, данное в гл. 3, легко модифицировать так,
чтобы состояния описывались п. п. формулами. (Напомним, что
в задаче об обезьяне и бананах обезьяна находится в комнате
в некоторой точке айв этой же комнате в точке Ь находится
ящик. Над точкой с пола на недосягаемой высоте находится
связка бананов.)
Описание 50 начального состояния может состоять из четы-
рех п.п. формул:
~ОЫВОХ
АТ (ящик, Ь)
АТ (обезьяна, а)
-НВ
Предикат ОЫВОХ имеет значение Т только тогда, когда обезья-
на находится наверху ящика; предикат НВ *) имеет значение Т
только тогда, когда обезьяна получает бананы; предикат’АТ
имеет очевидную интерпретацию* 2). Целевой п.п. формулой бу-
дет просто НВ. Любое описание состояния, из которого следует
НВ, соответствует целевому состоянию.
У нас, как и прежде, есть четыре оператора: «подойти (и)»,
«передвинуть (у)», «взобраться» и «схватить». Два первых —
операторные схемы; конкретное их значение зависит от вели-
чины схемной переменной. При определении каждого опера-
тора основными являются следующие элементы:
правильно построенная формула применимости, описываю-
щая условия, при которых этот оператор применим;
правила преобразования множества п. п. формул, описы-
вающих состояние, к которому применяется оператор, в
новое множество п. п. формул, описывающее результирую-
щее состояние.
Правила преобразования можно задать в виде списка п. п.
формул, которые должны быть изъяты, и списка п. п. формул,
которые следует добавить; при этом предполагается, что те
п. п. формулы, которые не были изъяты, остаются и в новом
описании состояния. На таком языке наши четыре оператора
можно определить следующим образом:
') Науе Ьапапаэ (иметь бананы). — Прим, перев.
2) Быть в определенном месте. — Прим, перев.
О
подойти (и)
П. п. формула применимости:
Преобразования
изъять:
добавить:
-ОЫВОХ
АТ (обезьяна, ЭД)
АТ (обезьяна, и).
Здесь символ $ стоит вместо любого терма. Правильно по-
строенная формула АТ (обезьяна, ЭД) должна быть изъята не-
зависимо от значения ЭД. Так как «подойти (и)» представляет
собой операторную схему, то ее применение даст схему описа-
ния состояния, содержащую переменную и. Приписывая этой
переменной конкретное (константное) значение и, получаем
конкретное описание состояния.
передвинуть (у)
П. п. формула применимости:
Преобразования
изъять:
добавить:
взобраться
П. п. формула применимости:
Преобразования
изъять:
добавить:
- ОЫВОХ Л (Нх) [АТ (обе-
зьяна,’х) Л АТ (ящик, х)]
АТ (обезьяна, ЭД)
АТ (ящик, ЭД)
АТ (обезьяна, у)
АТ (ящик, у)
~ОЫВОХ Л (Вх)[АТ (обе-
зьяна, х) Л АТ (ящик, х)]
-ОЫВОХ
(ЖВОХ
схватить
П. п. формула применимости:
Преобразования
изъять:
добавить:
ОЫВОХ Л АТ (ящик, с)
-НВ
НВ.
При формулировке правил изъятий и добавлений, опреде-
ляющих преобразование п. п. формул, осуществляемое операто-
рами, нужно проследить за тем, чтобы изъятые п. п. формулы
не следовали из неизъятых п. п. формул, ибо в противном слу-
чае эти изъятые п. п. формулы могли бы опять оказаться вы-
веденными.
Теперь поиск целевого состояния может протекать на основе
стандартного процесса применения применимых операторов.
к начальному состоянию 5о и к результирующим состояниям,
до тех пор пока не будет получено рписание состояния, содер-
жащее целевой предикат НВ. Поскольку мы пользуемся опера-
торными схемами, мы построим сейчас граф схем описаний со-
стояний (идентичный графу рис. 2.10).
Первым шагом нашего процесса поиска (перебора) будет
выяснение того, следует ли НВ из 50. Формально эту проверку
можно осуществить, строя отрицание п. щ. формулы, которую
нужно доказать, и используя затем методы поиска доказатель-
ства на основе резольвенции для вывода противоречия. Так как
очевидно, что никакого противоречия из {5о} V НВ вывести
нельзя (невозможны никакие резольвенции), то мы заключаем,
что результат проверки выполнения условия достижения цели
отрицателен.
Следующий шаг в простейшем процессе перебора в прост-
ранстве состояний — выяснение, какой из операторов применим.
Здесь опять можно использовать методы доказательства тео-
рем на основе резольвенции. Для каждого оператора можно
было бы попытаться доказать, что его п. п. формула примени-
мости следует из 50. Тогда мы быстро обнаружили бы, что опе-
ратор «схватить» неприменим. Правильно построенные форму-
лы применимости для операторов «взобраться» и «передвинуть»
совпадают. Отрицание этой общей п. п. формулы применимости
(в форме предложения) имеет вид О^ОХХ/ ~АТ (обезьяна,
х)\/ ~ АТ (ящик, х). Попытка вывести его противоречие с 50
здесь также окончится неудачей, так что операторы «взобрать-
ся» и «передвинуть» также неприменимы к 50.
Наконец, нам удастся доказать, что оператор подойти при-
меним к 50. Используя правило преобразования для оператора
«подойти (и)», приходим к следующей схеме описания состоя-
ний:
-ОЫВОХ
АТ (ящик, Ь)
1 АТ (обезьяна, и)
~НВ
Теперь процесс повторяется. Сначала мы выясняем, суще-
ствует ли частный случай схемы 51, из которого следует целе-
вая п. п. формула “НВ. Очевидно, что нет. Далее мы находим
операторы, которые можно применить к частным случаям схе-
мы 5]. Например, при проверке применимости оператора «пере-
двинуть (у)» мы хотим узнать, существует ли частный случай
схемы 5ь из которого следует п. п. формула ~ОЫВОХЛ (Нх)
АТ (обезьяна, х) Л АТ (ящик, х). Мы видим, что подстановка в
5] вместо и величины Ь дает частный случай, к которому опе-
ратор «передвинуть» применим. Обозначим этот частный
случай через 5ь Обязательно нужно проследить за тем, чтобы и
было заменено на Ь во всех случаях вхождения и в $1. (В на-
шем случае имеется ровно одно вхождение, но их могло бы
быть и больше.)
Поскольку к 5] применим оператор «передвинуть», к 5(
применим также и оператор «взобраться», но оператор «схва-
тить» неприменим ни к одному частному случаю схемы 5Ь
К любому частному случаю схемы 5! применим, конечно, так-
же и оператор «подойти», но его применение не изменяет схему
описания состояния.
Теперь, если применить оператор «передвинуть (у)» к 51,
то получится схема описания состояния
-ОЫВОХ
АТ (ящик, V)
2 АТ (обезьяна, у)
~НВ
Другая схема получится, если применить к 51 оператор «взо-
браться». Этот процесс продолжается до тех пор, пока не бу-
дет удовлетворен целевой предикат. В результате создается
граф, совпадающий по форме с графом рис. 2.10. После этого
нетрудно извлечь решающую последовательность операторов
(с соответствующим образом выбранными конкретными значе-
ниями схемных переменных).
Учитывая различия и пользуясь ключевыми операторами,
как в гл. 4, можно было бы также использовать для решения
этой задачи подход, основанный на сведении задачи к совокуп-
ности подзадач. Тогда в качестве условий цели для подзадач,
образованных в результате попытки применить ключевые опе-
раторы, выступили бы п. п. формулы применимости этих опе-
раторов. Пользуясь решением, представленным на рис. 4Л 4,
читатель мог бы получить некоторый опыт работы с методом
решения, основанным на сведении задачи к совокупности под-
задач и ориентированным на исчисление предикатов.
7.7. ОДНА ФОРМАЛИЗАЦИЯ ДЛЯ РЕШЕНИЯ ЗАДАЧ
В ПРОСТРАНСТВЕ СОСТОЯНИЙ
В предыдущем разделе состояния описывались с помощью
множеств п. п. формул, а дочерние описания состояний получа-
лись в результате применения операторных правил изъятия и
добавления п. п. формул. Так как преобразования, связанные
с операторами, отображают одни множества п. п. формул в
другие множества п. п. формул, то они были похожи на пра-
вила логического вывода. На самом деле они не были настоя-
щими правилами вывода, так как дочерние п. п. формулы не
следовали логически из родительских п. п. формул. Преобра-
зования, связанные с операторами, изменяли описания состоя-
ний, и совершались независимо от системы логического вывода
в исчислении предикатов.
При небольшой переформулировке удается включить описа-
ние действий операторов в рамки формализма исчисления пре-
дикатов. Чтобы это сделать, добавим в каждый предикат терм
состояния, указывающий состояние, к которому предикат при-
меним, тогда в нашем предыдущем примере начальное состоя-
ние $о описывалось бы с помощью множества п. п. формул
{~(ЖВОХ($о), АТ (ящик, Ь, 50), АТ (обезьяна, а, з0), ~НВ(з0)}.
Здесь термом состояния является з0.
В такой формулировке операторы рассматриваются как функ-
ции, отображающие одно состояние в другое. Так, значением
оператора «схватить (5)» будет новое состояние, возникающее
в результате применения оператора «схватить» к состоянию з.
Основной эффект применения оператора «схватить» можно опи-
сать с помощью п. п. формулы
(Уз){ОЫВОХ(з) Л АТ (ящих, с, з)=^НВ (схватить (з))},
означающий «для всех з, если обезьяна находится на ящике,
а ящик расположен в точке с в состоянии з, то в состоянии,
возникающем в результате применения оператора «схватить»
к состоянию з, обезьяна будет иметь бананы».
При таком способе описания операторные описания — это
просто дополнительные «аксиомы», которые можно объединить
с п. п. формулами, описывающими начальное состояние 5Э.
Если наша цель состоит в создании состояния з, удовлетворяю-
щего некоторой целевой п. п. формуле №(з), то эту задачу
можно решить формально, найдя сначала доказательство для
предположения (Вз)1Г(з), а затем использовав процесс извле-
чения ответа для получения решения. Ответное утверждение
будет содержать выражение для целевого состояния в форме
композиции операторных функций.
Для иллюстрации этого подхода воспользуемся упрощенной
формой задачи об обезьяне и бананах. Предположим, что у нас
только три оператора — «схватить», «взобраться», «передви-
нуть»,— и условия их применимости несколько отличаются от
прежних. (Эта упрощенная форма больше всего подходит для
решения иллюстративных задач. Читателю предлагается пора-
ботать также с четырехоператорным вариантом задачи, кото-
рый рассматривался в предыдущем разделе.) Действие этих
операторов можно описать следующими п. п. формулами:
1. (УхУз){ ~ ОЫВОХ => АТ (ящик, х, передвинуть (х,з))},
т. е. «для всех х и з, если обезьяна не находится на ящике в
состоянии з, то в состоянии, возникающем в результате
применения оператора «передвинуть (х)». к состоянию 5, ящик
будет расположен в точке х.
2. (У5){ОЫВОХ (взобраться ($))}, т. е. для всех 5 в состоя-
нии, возникающем в результате применения оператора «взо-
браться» к состоянию 5, обезьяна находится на ящике.
3. (У$){ОЫВОХ($) Л АТ (ящик, с, $)=>НВ (схватить (5))},
т. е. для всех 5, если обезьяна находится на ящике, а ящик рас-
положен в точке с в состоянии 5, то в состоянии, возникающем
в результате применения оператора «схватить» к состоянию 5,
обезьяна будет иметь бананы.
В дополнение к этим аксиомам нужно выразить явно другие
результаты действия этих трех операторов, например «положе-
ние ящика не изменяется, когда обезьяна на него взбирается»
или «в конце этапа перемещения ящика обезьяна еще не будет
находиться на ящике». Поскольку в нашем доказательстве по-
требуется только первый результат, запишем его формально:
4. (УхУ$){АТ (ящик, х, «)=^АТ (ящик, х, взобраться ($))}.
Нам понадобится также адекватное описание начального
состояния 5о:
5. ~ОЫВОХ($0).
Теперь поставить вопрос перед нашим формальным решате-
лем задач — это просто сформулировать предположение
(Н«) НВ («).
Далее надо преобразовать приведенные выше аксиомы и от-
рицание предположения в форму предложений и получить де-
рево опровержения, изображенное на рис. 7.12. Ответным утвер-
ждением, извлеченным обычным образом из этого дерева, будет
утверждение
НВ (схватить (взобраться (передвинуть (с, 50)))).
Отсюда видно, что искомое состояние достигается с помощью
последовательности операторов
{передвинуть (с), взобраться, схватить}.
Интересно соноставить этот формальный подход к решению
задачи с методом пространства состояний (использующим ис-
числение предикатов для проверки выполнения условий дости-
жения цели и применимости операторов), рассмотренным в пре-
дыдущем разделе. Формальный подход дает то преимущество,
что для выполнения операторных вычислений не требуется ни-
какого специального механизма. Вычисления выполняются авто-
матически с помощью механизма дедукции, воплощенного в
доказателе теорем. Таким образом, не требуется никаких специ-
альных методов перебора в пространстве состояний (или пере-
бора при сведении задачи к подзадачам), кроме тех, которые
используются при поиске доказательств (их мы будем рассма-
тривать'в следующей главе). Но эта высокая степень едино-
образия может оказаться также и недостатком формального
метода. В формальную процедуру перебора доказателя теорем
нелегко включить специальные эвристики, полезные для упоря-
дочения процесса применения операторов при переборах в про-
странстве состояний.
—НВ (в)
X. ~0НВ0Х(з) у ~АТ(ящик,с,з) V НВ(схватигпь(5))
~0МВ0Х(з) V —АТ (ящик, с, з)
>^\^^^В0Х(взо<1раться(з))
—А Т (ящик, с, взобраться (з))
Рис. 7.12. Доказательство для задачи об обезьяне и бананах.
Другой недостаток формальной процедуры — необходимость
явного описания с помощью специальных аксиом тех отноше-
ний, которые не изменяются под воздействием операторов. Так,
в нашем примере пришлось сформулировать и использовать тот
факт, что положение ящика не изменяется при действии опера-
тора «взобраться». Доказательство того, что определенные отно-
шения в дочерних состояниях по-прежнему удовлетворяются,
утомительно и значительно увеличивает затраты усилий при
поиске полного доказательства. Проблема, связанная с тем, что
на одни отношения операторы воздействуют, а на другие нет,
иногда называется проблемой системы отсчета. В наших
правилах добавлений — изъятий отражается та точка зрения,
что легче назвать формулы, подвергающиеся изменению, и пред-
положить, что все другие остаются неизменными. Слабость фор-
мального подхода, изложенного в этом разделе, состоит в том,
что такого рода предварительное условие в нем не используется,
и поэтому, если нам нужен факт, что некоторое отношение после
применения оператора по-прежнему удовлетворяется, то мы
должны этот факт явно доказать.
7.8. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
Системы, отвечающие на вопросы
Процесс извлечения из опровержений ответных утверждений
позволяет применить формальные методы к задачам получения
ответа на вопросы. Вообще говоря, система, отвечающая на во-
просы, основана на весьма сложных способах извлечения ин-
формации, в которых при ответе на вопросы следует произво-
дить логические дедукции, исходя из различных фактов, храня-
щихся в массиве данных. При создании систем, отвечающих на
вопросы, возникает также проблема осуществления перевода с
естественного языка, например английского, на формальный
язык, такой, как исчисление предикатов, используемый дедук-
тивной системой.
Первая универсальная система, отвечающая на вопросы,
была предложена Рафаэлем (1964а, 19646). Рафаэль сосредото-
чил внимание на механизмах ассоциации и дедукции и в боль-
шой степени пренебрег вопросом перевода с естественного язы-
ка. С другой стороны, Бобров (1964а, 19646) построил систему
для решения простых алгебраических задач, сформулированных
на английском языке. Его система могла переводить задачи с
английского языка на язык соответствующих уравнений, кото-
рые предстояло решить. Другая универсальная система, отве-
чающая на вопросы, названная ВЕВйСОМ (не обладающая
способностью перевода с английского языка на язык логики),
предложена Слейджлом (1965). Грин и Рафаэль (1968) разра-
ботали систему, отвечающую на вопросы, в которой применя-
лись логика первого порядка и метод резольвенций. Коулс (1968)
написал программу перевода с английского языка на формаль-
но-логический язык: эта программа служила дополнением к си-
стеме Грина и Рафаэля.
Два хороших обзора работ в области систем, отвечающих
на вопросы, сформулированных на естественном языке, напи-
саны Симмонсом (1965, 1970). Бар Хиллел (1969) выделил не-
которые трудности, присущие обработке естественных языков,
и пришел к выводу о том, что они могут оказаться непреодо-
лимыми.
Процессы извлечения ответа
Хотя вопрос о вычислении частных случаев переменных, от-
носящихся к кванторам существования, подвергался рассмотре-
нию в классической теории доказательства, Грин (1969а) пер-
вым указал процедуру для систем, основанных на резольвенции.
Рассмотренный в настоящей главе метод извлечения ответа
обобщает подход Грина и основан на статье Лакхэма и Ниль-
сона (1971).
Наш пример автоматического написания программы, иллю-
стрирующий приложения процесса извлечения ответа, представ-
ляет собой модификацию примера Грина (19696, приложение С).
Вопрос написания программы для вычислительной машины свя-
зан с вопросом доказательства правильности программ. По
этому последнему вопросу имеется значительное число работ, в
том числе работы Маккарти (1962), Флойда (19676) и Манна
(1969). Лондон (1970) дает хороший обзор работ по доказатель-
ству правильности программ. Несколько отличная (но также
основанная на резольвенции) процедура автоматического напи-
сания программ описана Уолдингером и Ли (1969). Блестящую
и доступную статью о связи между процедурами доказательства
и автоматическим написанием программ опубликовали Манна и
Уолдингер (1971).
Применения исчисления предикатов к решению задач в прост-
ранстве состояний
Идея использования множеств п. п. формул для описания
состояний в решателе задач, основанном на введении про-
странств состояний, разрабатывается в Стэнфордском исследо-
вательском институте. Процесс, описанный в разд. 7.6 и отно-
сящийся к задаче об обезьяне и бананах, выявился в ходе бесед
между Ричардом Файксом, Бертрамом Рафаэлем, Джоном Ман-
соном и автором.
Мы уже отмечали, что техника решения задач в простран-
стве состояний с помощью формальных методов возникла в
основном из заметок Маккарти (1958, 1963) о системе, «дающей
советы». Работа по реализации такой системы была предпри-
нята Блэком (1964). Корделл Грин первым разработал систему
формального решения задач, опирающуюся на пространство со-
стояний и использующую полную систему вывода (резольвен-
ции) для логики первого порядка. Большая часть его исследо-
ваний изложена в его диссертации (Грин, 19696) и двух статьях
(Грин, 1969а, 1969в). В системе Грина в каждом из предикатов
используется «терм состояния», который рассматривался нами
в разд. 7.7,
Дж. Маккарти продолжил свои исследования, касающиеся
требований, предъявляемых к универсальной формальной си-
стеме решения задач. Особенно он настаивал на необходимости
'включения элементов логики более высокого (по сравнению с
первым) порядка для формализации таких понятий, как ситуа-
ции, будущие операторы, действия, стратегии, результаты при-
менения стратегий и знание. Эти идеи прекрасно изложены в
статье Маккарти и Хэйеса (1969). Многие вопросы, поднимае-
мые Маккарти и Хэйесом, выходят за рамки вопросов, рассмат-
риваемых в вводном курсе.
Математическое доказательство теорем
Одна из наиболее очевидных областей применения автомати-
ческих устройств для доказательства теорем (правда, не рас-
смотренная в настоящей главе)—доказательство математиче-
ских теорем. Этим занимались Робинсон и Вос (1969), а также
Гард и др. (1969). В частности, программа Гарда (в какой-то
мере с помощью человека) успешно справилась с задачей по-
иска первого доказательства одного предположения теории мо-
дулярных структур. (
Задачи
7.1. Приведите соображения за или против следующего утверждения:
«Использование формальных процедур доказательства будет приносить весьма
малую пользу в любой системе решения задач, предназначенной для решения
значительных, практически важных задач».
7.2. Примените процесс извлечения ответа к дереву опровержения на
основе резольвенции, изображенному иа рис. 7.11, с тем, чтобы получить ответ-
ное утверждение
/?(х, тег^е(саг(х), зог1(сс1г(х)))).
7.3. Напишите формулы исчисления предикатов, содержащие переменные
•состояния, которые задают условия применимости и результаты воздействия
-операторов «подойти», «передвинуть», «взобраться» и «схватить», используе-
мых в задаче об обезьяне и бананах из разд. 7.6. Из этих формул и предика-
тов, описывающих начальное состояние 50, получите доказательство иа основе
резольвенции того, что обезьяна может схватить банаиы. С помощью процесса
извлечения ответа найдите выражение для целевого состояния. (Замечание:,
это упражнение есть просто усложненный вариант примера из разд. 7.7.)
7.4. Робот по перевозке грузов, отправляющийся из фирмы «Универсал
плэстик инкорпорейшн», должен отвезти безделушки, браслеты, бусы соответ-
ственно в магазины Гампа, Мейси и Сака. Используя простые операторы типа
«перевозить (х, у)-» и «разгружать (г)» с соответствующими предваритель-
ными условиями И результатами действия, покажите, как система решения за-
дач в пространстве состояний, опирающаяся иа исчисление предикатов, могла
бы найти последовательность операторов, создающую состояние, удовлетво-
ряющее п.п. формуле
АТ (безделушки, Гамп) Л АТ (браслеты, Мейси) Д АТ (бусы, Сак).
*7.5. Напишите программу для вычислительной машины, реализующую
процесс извлечения ответа на основании поданного на ее вход дерева опро-
вержения на основе резольвенций.
7.6. Сформулируйте в виде выражений исчисления предикатов факты и
вопросы, содержащиеся в следующей задаче. Воспользуйтесь принципом ре-
зольвеиции с извлечением ответа.
Тони, Майкл и Джон принадлежат к Альпинклубу. Каждый член Альпин-
клуба является либо скалолазом, либо горнолыжником, либо тем и другим.
Ни один из скалолазов ие любит дождь, и все горнолыжники любят снег.
Майкл не любит все, что любит Тони, и любит все, что не любит Тони. Тонн
любит снег и дождь. Есть ли в этом Альпинклубе хотя бы один член, который
является скалолазом, но не является горнолыжником? Кто?
Глава 8
МЕТОДЫ ПОИСКА ДОКАЗАТЕЛЬСТВА
В ИСЧИСЛЕНИИ ПРЕДИКАТОВ
81. СТРАТЕГИИ ПЕРЕБОРА
В гл. 6 мы отметили, что непосредственное применение прин-
ципа резольвенции соответствовало бы простой процедуре пол-
ного перебора при построении опровержения. Такой перебор
мы начинали бы с множества предложений 5, к которому до-
бавляли бы все резольвенты всех пар предложений в 5 с тем,
чтобы образовать множество 31. Затем добавляли бы все ре-
зольвенты всех пар предложений в 31 с тем, чтобы образовать
множества 31(31(8)) = 5?2(5), и т. д. Этот тип перебора, как
правило, непригоден для практики, ибо множества 31(8),
31?(8), ... слишком быстро разрастаются. Практические про-
цедуры доказательства определяются стратегиями перебора,
применяемыми для его ускорения. Такие стратегии бывают трех
типов: стратегии упрощения, стратегии очищения и стратегии
упорядочения. Стратегии упорядочения точнее' двух других
стратегий соответствуют методам, применяемым при переборе
на графах в пространстве состояний и «И/ИЛИ» графах. В на-
стоящей главе мы кратко обсудим все три типа стратегий.
8.2. СТРАТЕГИИ УПРОЩЕНИЯ
Иногда множество предложений удается упростить, исклю-
чив из него некоторые предложения или исключив из предложе-
ний определенные литералы. Эти упрощения таковы,'что упро-
щенное множество предложений выполнимо тогда и только
тогда, когда выполнимо исходное множество предложений. Та-
ким образом, применение стратегий упрощения позволяет сни-
зить скорость роста числа новых предложений.
Исключение тавтологий
Любое предложение, содержащее литерал и его дополнение
(такое предложение называется тавтологией), можно отбро-
сить, так как любое невыполнимое множество, содержащее тав-
тологию, остается невыполнимым и после ее удаления, и об-
ратно. Так, предложения типа
Р(8)У В(2)У~В(у) и Р(/(а))У~Р(/(а))
можно отбросить.
Исключение путем означивания предикатов
Иногда появляется возможность" означить (выяснить значе-
ние истинности) литералы, и это оказывается удобнее, чем
включать соответствующие предложения в 5. Такое означива-
ние часто легко провести для константных частных случаев.
Например, если предикатная буква Е обозначает отношение
равенства, то означивание константных частных случаев типа
Т:(7,3), когда они появляются, провести легко, хотя нам бы не
хотелось добавлять к 5 полную таблицу, содержащую много
константных частных случаев литералов Е(х, у) и ~Е(х, у).
Если какой-нибудь литерал предложения получает значение
истинности Т, то все предложения можно отбросить, не нару-
шая при этом свойства невыполнимости оставшегося множе-
ства. Если же какой-нибудь литерал при означивании получает
значение истинности Е, то из этого предложения можно исклю-
чить данное вхождение литерала. Так, предложение Р(х)\/
V <2(а) V Е(7,3) можно заменить на Р(х)У <2(а), поскольку
значение истинности для Е(7,3) есть Е.
Исключение подслучаев
Предложение {Е,} называется подслучаем предложения {Л4г},
если существует такая подстановка 0, что {Е1}0е{ЛЕ}. Напри-
мер,
Р (х) — подслучай предложения Р(у)уСЦг),
Р(х) — подслучай предложения Р(а),
Р(х) — подслучай предложения Р(а)УС}(г),
Р(х) V (а) — подслучай предложения Р(/(а)) У (а) У Я (у).
Предложение в 5, являющееся подслучаем другого предло-
жения в 5, можно исключить из 5, не нарушая свойства невы-
полнимости оставшегося множества. Отбрасывание предложе-
ний, являющихся подслучаями других, часто ведет к значи-
тельному уменьшению числа резольвенций, необходимых для
нахождения доказательства.
Вообще в то время, как тавтологии можно отбрасывать сразу
же, как только они появляются в процессе поиска доказа-
тельства, предложения, являющиеся подслучаями, можно от-
брасывать лишь после того, как каждый «уровень» оказывается
завершенным (Ковальский, 1970).
8.3. СТРАТЕГИИ ОЧИЩЕНИЯ
Стратегии очищения основаны на тех теоретических резуль-
татах в теории доказательства с помощью резольвенций, в ко-
торых утверждается, что для нахождения опровержения не
нужны все резольвенции. Иными словами, достаточно выпол-
нить резольвенции только для предложений, удовлетворяющих
определенным требованиям. Мы будем обозначать через 5?с(5)
объединение множества 5 и множества всех резольвент всех
пар предложений из 5, удовлетворяющих критерию С. Ясно, что
ЙС(5)^Й(5),
Про стратегию очищения, использующую критерий С, гово-
рят, что в ней используется «резольвенции по отношению к С».
Для применения такой стратегии мы сначала вычисляем 5?с(5),
затем (^с (5)) = (5) и т. д. до тех пор, пока при некото-
ром п в (5) не окажется пустого предложения (обозначае-
мого П11).
Потенциальное достоинство стратегии очищения в том, что
на каждом уровне требуется меньше резольвенций. Однако
уровень, на котором появляется пустое предложение, обычно
возрастает, так что стратегия очищения приводит обычно к
узконаправленному, но более глубокому перебору. Стратегия
очищения полезна лишь в том случае, если она уменьшает все
затраты усилий на перебор, включая усилия, необходимые для
проверки выполнимости критерия С.
Мы рассмотрим две основные стратегии очищения, снижаю-
щие затраты усилий на перебор, а также некоторые их частные
случаи.
8.4. ФОРМЫ ДОКАЗАТЕЛЬСТВА С ОТФИЛЬТРОВЫВАНИЕМ
ПРЕДШЕСТВУЮЩИХ ВЕРШИН
Нашу первую стратегию очищения легко описать в терминах
тех типов графов опровержения, которые она образует. Полез-
но сначала ввести некоторые определения.
Графом (или деревом) доказательства на основе резольвен-
ций называется структура, в которой каждая вершина соответ-
ствует некоторому предложению. (Для простоты мы часто будем
отождествлять вершину этого графа с ' - предложением.) Вер-
шины графа, у которых нет предшествующих вершин, назы-
ваются концевыми вершинами. Если граф изображает доказа-
тельство на основе резольвенций некоторого предложения (воз-
можно пП), исходя из множества предложений 5, то концевые
вершины соответствуют предложениям из 5. Они называются
базовыми предложениями этого доказательства. Вершина гра-
фа, у которой нет следующих за ней вершин, называется корне-
вой вершиной. Она соответствует предложению, доказанному
этим графом.
Мы будем говорить, что граф доказательства имеет вид
лозы, если каждая его вершина либо является базовым предло-
жением, либо непосредственно следует из базового предложе-
ния. (Такой граф будет деревом, но не все деревья имеют вид
лозы. Это видно из примеров гл. 6, где граф рис. 6.3 имеет вид
лозы, а граф, изображенный на рис. 6.4, нет.) Если граф опро-
вержения, имеющий вид лозы, существует, то для его построе-
ния достаточно резольвент лишь тех пар предложений, из ко-
торых хотя бы одно принадлежит 5. Такое ограничение на
резольвенции могло бы лечь в основу прекрасной стратегии очи-
щения, если бы только быть уверенным, что для любого невы-
полнимого множества предложений существует граф опровер-
жения, имеющий вид лозы. К сожалению, стратегия очищения,
основанная на графах в виде лозы, не полна; но одна очень
похожая на нее стратегия полна.
Чтобы убедиться, что для невыполнимого множества граф
в виде лозы существует не всегда, рассмотрим множество
(?(х)УР(а)
~(?(х)У~Р(х) ’
<2 (х) V ~ Р (х)
Из графа опровержения, представленного на рис. 8.1, видно,
что это множество невыполнимо. В графе опровержения, имею-
щем вид лозы, одно из предложений множества 5 должно быть
вершиной, непосредственно предшествующей корневой вершине
пП. Но для образования пустого предложения нужна либо ре-
зольвента двух предложений, содержащих по одному литералу,
либо два предложения, которые «факторизуются» ') к предло-
жениям, содержащим по одному литералу. Ни один из элемен-
тов множества 5 не удовлетворяет этим требованиям, так что
для 5 не может быть опровержения в виде лозы.
Из рис. 8.1 видно, что одна из резол'ьвенций производится
между предложениями ~Р(а) и Р(а)У Р(х). Далее, в этом
графе опровержения предложение Р(а) V Р(х) предшествует
предложению ~Р(а). Граф рис. 8.1 служит примером графа
с отфильтрованными предшествующими вершинами, или графа
в Мт-форме.
Мы будем говорить, что граф опровержения имеет АЕ-фор-
му, если каждая вершина графа соответствует одному из сле-
дующих предложений:
1) базовому предложению;
2) предложению, непосредственно следующему за базовым;
3) предложению, непосредственно следующему за двумя не-
базовыми предложениями А и В, из которых В предшествует А
(отсюда термин — отфильтровывание предшествующих вершин).
Граф в виде лозы представляет собой частный случай
графа в АЕ-форме: каждая из его вершин соответствует либо
*) См. стр. 196. — Прим, перев.
предложению 1), либо предложению 2). Базовое предложение С
в графе, имеющем АР-форму, называется концевой вершиной,
если любая другая вершина дерева либо является базовым
предложением, либо следует за С.
Р н с. 8.1. Граф опровержения.
Сформулируем без доказательства теорему, утверждающую,
что для любого невыполнимого множества предложений всегда
существует граф опровержения в АР-форме. Таким образом,
стратегия очищения, основанная на поиске графов в АР-форме,
полна.
Теорема 8.1. Пусть 57'(пП)—граф опровержения для не-
выполнимого множества 8 предложений, а С — некоторое пред-
ложение из 8, появляющееся в 5Т(ш1). Тогда для 8 существует
граф опровержения ^г'(пП) в АВ-форме, для которого С слу-
жит концевой вершиной.
Для многих графов частный случай опровержения в АР-
форме, имеющий вид лозы, существует. Дерево, изображенное
на рис. 6.4, не имеет АР-формы, однако дерево опровержения
для того же самого множества предложений с О(х) V ~ Е (у)
в качестве концевой вершины, показанное на рис. 8.2, имеет вид
~В(т)ч ~Е(У)
~В(а) у ~Е(у)
~С(с) V
пи
Рис. 8.2. Дерево опровержения в виде лозы.
лозы. Читатель может попытаться построить для этого мно-
жества предложений, но с иными концевыми вершинами, другие
графы в АР-форме.
Так как в теореме 8.1 утверждается, что для любого не-
выполнимого множества предложений существует граф опро-
вержения в АР-форме, то перебор можно ограничить, отыскивая
лиШь опровержения такого вида. Назовем стратегией АР-формы
стратегию очищения, реализующую это ограничение. В ней при-
меняются резольвенций по отношению к критерию отфильтро-
вывания предшествующих вершин. Этот критерий можно
описать следующим образом. Сначала отметим, что при выборе
концевой вершины для графа в АР-форме допускается некото-
рый произвол. Концевая вершина должна появляться в каком-
нибудь графе опровержения, так что она выбирается из не-
которого подмножества К <= 5, содержащего предложения,
появляющиеся в каком-нибудь опровержении (например, в
Рис. 8.3. Поиск опровержения с использованием АР-стратегии.
К могут содержаться предложения, возникающие при отрица-
нии теоремы, которую предстоит доказать). Тогда критерий,
которому должна удовлетворять пара предложений (А, В) для
того, чтобы ее можно было подвергнуть резольвенции в отно-
шении АР-стратегии, таков:
один элемент пары (А, В) принадлежит 5, а другой есть
либо предложение из К, либо предложение, следующее за
предложением из К,
или
один из элементов пары (А, В) предшествует другому.
Обозначим через 5?др(5) объединение множества 5 и мно-
жества всех резольвент всех пар из 5, допускаемых АР-страте-
гией. Положим, как обычно,
^(5) = 5,
^'(5) = ^ар№(5)). .
Согласно теореме 8.1, если множество 5 неудовлетворимо, то
найдется такое п, что пП е 5?аг(5).
На рис. 8.3 показан результат применения АР-стратегии
к простому неудовлетворимому множеству предложений. (В этом
примере К = 5.) На уровнях 1 и 2 выполнялись все допусти-
мые резольвенции до тех пор, пока не было выведено на
уровне 5 пустое предложение. Образованный такой процедурой
граф в АР-форме отмечен жирными линиями. Он оказался
лозой.
8.5. СТРАТЕГИЯ ПОДДЕРЖИВАЮЩЕГО МНОЖЕСТВА
Стратегией поддерживающего множества называют страте-
гию, в которой выбирается такое непустое подмножество К
исходного множества предложений 5, что множество 5 — К
удовлетворимо. Например, можно в качестве К взять множе-
ство предложений, возникающих из отрицания доказываемой
теоремы. Говорят, что предложения в К имеют поддержку. При
поиске опровержения допустимыми считаются резольвенции
лишь тех пар предложений, в которых по крайней мере одно
имеет поддержку. Каждому предложению, построенному в ре-
зультате резольвенции, также придается поддержка.
Так как множество 5 — К удовлетворимо, существует граф
опровержения, имеющий АР-форму, у которого верхней верши-
ной служит один из элементов множества К. Таким образом,
стратегия поддерживающего множества полна, поскольку она
допускает все резольвенции, допускаемые АР-стратегией (и,
возможно, другие).
8.6. БОЛЕЕ ОГРАНИЧИТЕЛЬНЫЕ СТРАТЕГИИ
В действительности АР-стратегию можно еще ограничить,
сохранив при этом полноту. Одно из ограничений состоит в том,
что если А предшествует В, то резольвенту для А и В можно
строить лишь тогда, когда она является подслучаем подстанов-
кового частного случая предложения В (Лавленд, 1969). Можно
наложить также и другие ограничения, связанные со специаль-
ными типами резольвенций, называемыми слияниями (Эндрюс,
1968; Йейтс, Рафаэль, Харт, 1970). Конечно, при выборе стра-
тегии следует иметь в виду, что затраты на дополнительные
вычисления, требуемые для выбора соответствующих резольвен-
ций, могут и не перекрыться экономией, вызванной уменьше-
нием числа резольвенций, выполненных на самом деле в про-
цессе перебора. В настоящее время судить об этом можно лишь
на основании практического опыта.
8.7. МОДЕЛЬНЫЕ СТРАТЕГИИ
Напомним, что в гл. 6 мы придали точный смысл интерпре-
тации, задав значения истинности атомов в эрбрановской базе.
Мы назвали такое задание значений истинности моделью. Так,
если эрбрановская база состоит из атомов {Р(а, Ь), Р(а,а),
Р(Ь,Ь), Р(Ь,а), 0\Ь)}, то одной из моделей может быть
{~Р(а, Ь), Р(а,а), Р(Ь,Ь), ~Р(Ь,а), С}(Ь)}. В об-
щем случае моделью является множество (быть может, беско-
нечное) литералов, сконструированных исходя из эрбрановской
базы таким образом, что каждый атом эрбрановской базы со-
держится в модели либо со знаком отрицания, либо без него
(но не может быть и то и другое одновременно).
По определению модель не удовлетворяет предложению С,
если С имеет константный частный случай (полученный с по-
мощью элементов универсума Эрбрана), принимающий зна-
чение Р при означивании на основе данной модели. В против-
ном случае говорят, что модель удовлетворяет предложению С.
Обычно можно определить непосредственно, удовлетворяет ли
данная модель М предложению С. Например, модель {~Р(а, Ь),
Р(а,а), Р(Ь,Ь), ~Р(Ь,а), ~(Ца), О.(Ь)} не удовлетворяет
предложению ~С?(х) V Р(у, х), так как подстановка {(&,%),
(а,у)} приводит к константному частному случаю со значением
истинности Р. Эта модель удовлетворяет предложению
{~<2(х) V Р(у, у)}, так как ни одна из подстановок не приво-
дит к константному частному случаю со значением истинно-
сти Р.
Часто удается представить модель более компактно в виде
списка литералов, у которых §се константные частные случаи
(на универсуме Эрбрана) имеют значение истинности Т. При
этом нужно проследить, чтобы не получилось противоречивого
результата и чтобы каждому атому эрбрановской базы было
присвоено значение истинности. Так, если множество есть
г ~ <2 (х) V Р (а, / (х))
<2(х) уР(Цх),а)
~Р(х,Цх))У Щу)1’
то моделью может быть, например, множество
{<Э(х), ~Р(а,Цх)), ~Р(х,!(х)), Р(/(х),а), Р(х)}.
В терминах атомов эрбрановской базы эта модель представ-
ляет собой бесконечное множество
М = {Р(а), Р(Ца)), Р(/(/(а))), (а), (?(/(«), ...
...» ~Р(а, /(а)), ~Р(а, /(/(а)))...... ~Р(/(а), /(На))), •••
.... Р(/(а), а), Р(/(/(а)), а), ...}.
Заметим, что первое и четвертое предложения этой моделью
не удовлетворяются, а второе и третье — удовлетворяются.
Понятием модели можно воспользоваться для того, чтобы,
ограничить число резольвенций, необходимых для нахождения’
пи
Рис. 8.4. Граф опровержения, удовлетворяющий модельной стратегии,
в которой {С (х), Р (х)} используется для определения модели.
опровержения. Приведем без доказательства теорему, на основе
которой можно построить еще одну стратегию очищения, свя-
занную с моделями.
Теорема 8.2. Пусть 5 — неудовлетворимое множество пред-
ложений и М — модель, заданная на его эрбрановской базе.
Тогда существует такой граф опровержения для 5, что каждая
его вершина либо является предложением из 8, либо имеет
в качестве одной из непосредственно предшествующих ей вер-
шин предложение, которое не удовлетворяется моделью М.
Стратегию, основанную на теореме 8.2, называют модельной
стратегией. Критерий, которому должна удовлетворять пара
предложений (Д,В) для того, чтобы ее можно было подверг-
нуть резольвенции в отношении модельной стратегии, таков, что
по крайней мере одно из предложений пары (Д, В) не удовлет-
воряется моделью.
Мы будем обозначать через Ям(5) объединение множе-
ства 5 и множества всех резольвент всех пар из 5, допускае-
мых модельной стратегией. Положим
^(5) = 5,
^+>(5) = ^(^(5)).
Согласно теореме 8.2, если множество 5 неудовлетворимо, то
найдется такое п, что ш1 е Я^(8).
На рис. 8.4 изображен граф опровержения для множества
невыполнимых предложений, приведенного на рис. 8.1. Каж-
дая резольвенция на графе удовлетворяет модельному крите-
рию с моделью {<2(х), Р(х)}. Предложения, не удовлетворяю-
щиеся этой моделью, заключены в рамку. Степень, в которой
модельная стратегия уменьшает число необходимых резольвен-
ций, зависит, конечно, от модели М. Наихудшим выбором яв-
ляется любая модель М, которая не удовлетворяет ни одному
ив предложений в 5.
Полноту стратегии поддерживающего множества можно
также вывести из полноты модельной стратегии. Выберем мо-
дель, удовлетворяющую каждому предложению из 5 — К, где
К имеет поддержку. По теореме 8.2 существует такое опровер-
жение, что для пар предложений, каждое из которых принад-
лежит 5 — К, ни одна из резольвенций не выполняется. Таким
образом, модельная стратегия является усилением стратегии
поддерживающего множества.
8.8. ^-ОПРОВЕРЖЕНИЯ
Назовем предложение положительным, если у всех его ли-
тералов нет знака отрицания. Ясно, что в любом невыполнимом
множестве 5 есть по крайней мере одно положительное предло-
жение. В противном случае модель, определяемая множеством
отрицаний атомов из эрбрановской базы, удовлетворяла бы 5.
Опровержение, при котором каждая резольвенция осуществ-
ляется между такими двумя предложениями, что по крайней
мере • одно из них положительно, назовем /^-опровержением.
Полнота Л-опровержения следует из теоремы 8.2; в самом
деле, в качестве модели можно взять множество литералов
из 5 с отрицаниями. Тогда предложение в рамках этой модели
принимает значение истинности Р тогда и только тогда, когда
оно положительно.
Если непротиворечивым образом переименовать литералы,
в 5, то получим просто вариант /^-опровержения. Если в на-
шем примере на рис. 8.4 заменить <2(х) на ~/?(х), а Р(х) на
~Т(х), то опровержение станет Л-опровержением для переиме-
нованного множества предложений, /^-опровержение и его ва-
рианты важны, поскольку здесь легко реализовать проверку вы-
полнения условия проведения резольвенции.
8.9. КОМБИНИРОВАННЫЕ СТРАТЕГИИ
Естественно возникает вопрос: приводит ли к полной стра-
тегии комбинирование ограничений на резольвенции, опреде-
ляемых АР-стратегией и модельной стратегией? Безусловно,
такое комбинирование могло бы существенно уменьшить число
требуемых резольвенций. К сожалению, эта комбинация не
полна: не существует опровержения для невыполнимого мно-
жества {~Р(а), /? (а) V ~ <3 (а), Р(а) V Р(а), Р(а)У (}(а)}
в АР-форме, которое удовлетворяло бы также модельному
ограничению с моделью {Р(а), С}(а), Р (а)}. Тем не менее, объ-
единяя эти две стратегии эвристически, часто можно получить
достаточно эффективный поиск опровержения.
8.10. СТРАТЕГИИ УПОРЯДОЧЕНИЯ
На основе резольвенций, обеспечиваемых различными стра-
тегиями очищения, иногда можно искать опровержение, упоря-
дочив выполняемые резольвенции. В стратегиях упорядочения
не запрещаются никакие типы резольвенций, а лишь даются
указания на то, какие из них надо выполнять в первую оче-
редь. Стратегии упорядочения соответствуют рассмотренным
в гл. 3 и 5 эвристическим стратегиям перебора для поиска на
графах. При хорошем упорядочении не обязательно вычислять
все элементы множеств ^(5), 5?2(5) и т. д. Если пустое пред-
ложение появляется впервые на уровне п, то хочется думать,
что перебор можно прямо направить на этот уровень, не за-
полняя нижние уровни.
Две довольно эффективные стратегии упорядочения — это
стратегия предпочтения одночленам и стратегия наименьшего
числа компонент. В стратегии предпочтения одночленам де-
лается попытка сначала построить резольвенты между одно-
членами, т. е. предложениями, содержащими единственный ли-
терал. Если это удается, то сразу же получается опроверже-
ние. Если же не могут найти пару одночленов, у которых есть
резольвента, то пытаются найти резольвенту для пар одно-
член— двучлен и т. д. (Как только какая-нибудь пара предложе-
ний разрешается, полученную резольвенту сразу сопоставляют
с одночленами с тем, чтобы найти возможные резольвенты.)
Во избежание совершения невыгодной цепочки одночленных
резольвенций обычно устанавливается граничный уровень.
Если предложение содержится в 5?г(5), но не содержится
в 5?г-1(5), то говорят, что данное предложение имеет уровень /.
Если граничный уровень равен /, то предложения из 5?' (5) не
строятся. Когда граничный уровень препятствует поиску одно-
членных резольвенций, применяют другие схемы упорядочения’
(такие, как резольвенции двучленов и одночленов и т. д.) до
тех пор, пока не будут построены новые одночлены.
Стратегия предпочтения одночленам оправдана гарантиро-
ванным укорочением длины предложений, вызываемым одно-
членными резольвенциями. Так как цель построения резольвент
состоит в образовании пустого предложения (нулевой длины),
то стратегия предпочтения одночленам напрашивается сама
собой. При введении граничных уровней для возможности
использования и других резольвенций такая стратегия не пре-
пятствует нахождению опровержения (если оно существует
в пределах заданной границы) и, как правило, сильно ускоряет
процесс перебора.
Стратегия наименьшего числа компонент упорядочивает ре-
зольвенции согласно длине получаемых резольвент. Так, два
предложения, дающие наиболее короткую резольвенту, разре-
шаются в первую очередь. Эта стратегия в некотором смысле
дороже, поскольку до выполнения резольвенции надо подсчи-
тать длины потенциальных резольвент и упорядочить их.
8.11. БИБЛИОГРАФИЧЕСКИЕ И ИСТОРИЧЕСКИЕ ЗАМЕЧАНИЯ
Обсуждения стратегий перебора
Проблема построения эвристически эффективных стратегий
перебора (поиска) при условии сохранения логической полноты
прекрасно изложена в статье Дж. Робинсона (1967). Г. Робин-
сон и др. (1964) дали ясное описание нескольких стратегий и
привели много примеров.
Стратегии упрощения
Проблема исключения подслучаев в процессе поиска дока-
зательства оказывается тоньше, чем это может показаться.
В статье Ковальского (1970а) указаны некоторые несоответ-
ствия в’ исследовании данной проблемы Ковальским и Хэйесом
(1969); полностью этот вопрос рассмотрен в диссертации Ко-
вальского (19706),
Стратегии очищения
Стратегия формы с отфильтрованными предшествующими
вершинами (АР-формы) является простейшей из семейства
связанных между собой стратегий. В теореме 8.1 утверждается,
что АР-стратегия логически полна; доказательство этой тео-
ремы приведено в работе Лакхэма (1969). Хотя мы здесь по-
казали, что полнота стратегии поддерживающего множества
следует из теоремы 8.1, на самом деле она была разработана
раньше (Вос и др., 1965).
Существуют разные пути дальнейшего усовершенствования
АР-стратегии. В некоторых случаях их объединяют со страте-
гией, предложенной Эндрюсом (1968), использующей слияния.
Среди работ, в которых доказывается полнота- АР-формы со
слиянием, укажем работы Киберца и Лакхэма (1971), Йейтса,
Рафаэля и Харта (1970), Андерсона и Бледсоу (1970). В пер-
вой содержатся другие результаты, касающиеся свойств дока-
зательств в АР-форме, а в двух последних применяются срав-
нительно новые методы доказательства полноты, представляю-
щие самостоятельный интерес. Андерсон и Бледсоу доказали
своим методом полноту и других стратегий. В статье Лавленда
(1968) устанавливается полнота еще одного ограничения на
АР-стратегию.
Модельные стратегии представляют собой развитие Лрде-
дукций, предложенных впервые Дж. Робинсоном (19656).
Слейджл (1967) доказал полноту некоторых очень общих мо-
дельных стратегий. Теорема 8.2 взята у Лакхэма (1969); она
является простым частным случаем одной из теорем Слейджла.
Мельцер (1966, 1968) предлагает дополнительные результаты,
касающиеся дедукций Л-типа.
Стратегии упорядочения
Стратегия предпочтения одночленам была предложена и
оправдана Восом и др. (1964). Она и стратегия поддерживаю-
щего множества включены как основные элементы в ряд авто-
матических доказателей теорем.
Читатель, вероятно, обратил внимание на то, что все стра-
тегии перебора, обсуждаемые в настоящей главе, используют
синтаксические, а не семантические правила (т. е. ограничения
перебора связаны с формой предложений и возможных дедук-
ций, а не с их смыслом). Стратегии, использующие семантику,
можно построить различными способами, однако пока в этом
направлении было предпринято не слишком много попыток.
Возникает вопрос: нельзя ли воспользоваться оценочной функ-
цией, заданной на парах предложений, являющихся кандида-
тами на разрешение? Возможно, она могла бы учитывать и
имеющуюся семантическую информацию, и форму предложений-
кандидатов. Некоторые теоретические результаты о свойствах
стратегий с оценочными функциями содержатся в статье Ко-
вальского (1970а). Его результаты о поиске на структурах
«графов вывода» аналогичны результатам Харта и др. (1968)
для структур графов в пространстве состояний.
Примеры реализации
Уже написано несколько программ для автоматического до-
казательства теорем. Например, программы Робинсона и Воса
(1969), Аллена и Лакхэма (1970), Гарда и др. (1969), а также
система Грина — Рафаэля — Йейтса, модифицированная Гар-
веем и Клингом (1969).
Задачи
8.1. Укажите, для каких из следующих предложений предложение
Р(](х),у)является подслучаем:
а) Р (Ца), Их)) V Р (г, Цу)),
' Ь) Р (г, а) V' ~ Р (а, г),
с) Р (I (I (х)), г),
<1) Р(Цг),г)У (}(х),
е) Р (а, а) V Р (( (х), у).
8.2. Найдите опровержение в виде лозы для следующего невыполнимого
множества предложений:
а) ~ру~<2 V Р,
Ь) ~8уТ,
с)
а) 5, ,
е) ~Р,
1) ~зуи,
е) V о.
' Можете ли вы найти другие опровержения (не обязательно в виде Лозы),
Имеющие меиыпую глубину?
8.3. Найдите опровержение в АР-форме для следующего невыполнимого
множества предложений:
а) ~ А (х) V Р (х) V О (} (х)),
Ь) ~Г(х) У В (х),
с) ~Р (х) V С (х),
а) ~о (Х) у в (х),
е) ~С(х) У О (х),
П А (в (х)) У Р (К (х)),
е) ~в(х) у~с(х),
Ъ) ~В(х)У~О(х).
Сравните с неимеющим такую форму опровержением, приведенным на
рис. 7.5,
8.4. Найдите контрпример к утверждению: «Стратегия предпочтения одно-
членам всегда позволяет найти опровержение минимальной глубины».
8.5. Рассмотрите задачу поиска опровержения с отфильтрованными пред-
шествующими вершинами для невыполнимого множества 5 предложений как
задачу перебора в пространстве- состояний. Пусть описание состояния содер-
жит дерево доказательства в АР-форме и множество 5.
а) Что служит начальной вершиной?
б) Что представляет собой оператор построения дочерних вершин?
в) Каков критерий достижения цели?
г) Предложите оценочную функцию учитывающую уровень АР-дерева,
«общность» содержащихся в нем предложений, глубину размещения функций
в его предложениях и другие факторы, которые вы считаете важными.
8.6. Рассмотрите утверждение: «В замкнутой ассоциативной системе с ле-
выми и правыми решениями уравнений существует единичный элемент». Усло-
вия можно выразить следующим образом:
УхУуЗг Р (г, х, у) — для всех х и у в этой системе найдется такой эле-
мент г нз этой системы, что г • х = у,
УхУуЗг Р (х, г, у) — для всех х и у в этой системе найдется такой эле-
мент г из этой системы, что х • г = у,
УхЧуЗг Р (х, у, г) — для всех х и у в этой системе найдется такой эле-
мент г из этой системы, что х • у = г (замыкание);
Уцоа’х(/г{[Р (и, о, а>) Л Р (о, х, у)] [Р (ц, у, г)^Р (®, х, г)]} (ассоциатив-
ность).
(Замечание: А В — сокращенная запись для [(А ==> В) Л (В ==> А)].)
Заключение можно записать в виде 3«/Ух Р (х, у, г) — существует пра-
вый единичный элемент.
Для этой теоремы сделайте следующее:
а) Преобразуйте условия и отрицание заключения в форму предложений.
б) С помощью этих предложений получите Ргопровержение.
в) Из этого опровержения извлеките ответное утверждение (т. е. полу-
чите выражение для правого единичного элемента).
СПИСОК ЛИТЕРАТУРЫ
АЛЛЕН, ЛАКХЭМ (АББЕИ I, ШСКНАМ В.)
1970 Ап 1п!егасНуе ТЬеогегп-Ргоутд Ргодгат, т В. МеИхег апд В. Мь
сЫе (еда.), «МасЫпе 1п1еШдепсе 5», 321— 336, Атепсап Е1аеу1еГ РиЬНаЫпд
Сотрапу, Ие» Уогк.
АМАРЕЛЬ (АМАЕЕБ 8.)
1965 РгоЫет 8о1у1п§; Ргоседигез Гог ЕНгаеп! 8уп1асНс Апа1у818, АСМ
20111 ИаН. СопБ [см. также 8сБ КерБ Ио. 1, АЕО8К СоЫг. Ио. АЕ49(638)-
1184, 1968].
1966 Моте оп КергеаепЫНопа о! 1Ье Мопкеу РгоЫет, Сатере 1паШи1е
о! ТесЬпо1оду Бес1иге Йодеа, МагсЬ 1.
1967 Ап АрргоасЬ 1о НеипаНс РгоЫет-8о1ут§; апд ТЬеогет Ргоуте
т 1Ье РгороаШопа! Са1си1иа, т 1 Наг! апд 8. Такааи (еда.), «8уа1етз апд
СотрЫег 8с1епсе», Итуегаку о! Тогоп1о Ргеаз, Тогоп!о.
1968 Оп Рергеаеп1аНоп8 о! РгоЫета о! Кеаэотп§ АЬои! АсНопа, т
В. М1сЫе (ед.), «МасЫпе ГпГеШ^епсе 3», 131—171, Атепсап Е1аеу1ег РиЬИаЬ-
тд Сотрапу, 1пс., Ие1у Уогк.
1969 Оп 1Ье КергеаеЫаНоп о! РгоЫета апд Ооа1 В1гес!ед Ргоседигез
Гог СотрЫега, Соттип. Ат. Зое. СуЪегпеИсз, 1, Мо. 2.
АНДЕРСОН, БЛЕДСОУ (АИВЕК8ОИ К., ВБЕВ8ОЕ XV.)
1970 А Ыпеаг Еогта! Гог Кеао1иНоп \уИЬ Мегдтд апд а Ие» ТесЫи-
цие Гог ЕаЫЬИаЫп^ Сотр1е1епеаа, I. АСМ, 17, Ио. 3.
БАР ХИЛЛЕЛ (ВАК Н1ЕБЕБ У.)
1969 Итуегаа! ЗетапНсз апд РЬПоаорЬу 61 Бап^иа^е: риапдапеа апд
РгоаресЫ, ш Таап РиЬуе! (ед,), «8иЬа1апсе апд 81гис1иге о! Ьапдиаде», Нт-
уегаИу о! СаШогша Ргеаа, Вегке1еу.
БЕЛЛМАН, ДРЕЙФУС (ВЕЬЕМАЫ Д, ВКЕУЕИ8 8.)
1962 АррНед Вупагтс Рго^гатттд, Рппсе1оп ИшуегзИу Ргеаа, Рпп-
се!оп, Ы. д. [Русский перевод: Прикладные задачи динамического программи-
рования, «Наука», М., 1965.]
БЕЛЛМОР, НЕМХОЗЕР (ВЕЫМОКЕ М„ МЕМНАН8ЕР О.)
1968 ТЬе ТгауеНпд 8а1еатап РгоЫет: А Зигуеу, ОрегаИопз Кез., 16,
Но. 3, 538—558.
БЕНЕРДЖИ (ВАИЕКЛ К.)
1969 ТЬеогу о! РгоЫет ЗоМпд: Ап АрргоасЬ 1о Аг1Шс1а1 1п1е1Пдепсе,
Атепсап Е1аеу1ег РиЬИзЫпд Сотрапу, 1пс., Не» Уогк. [Русский перевод:
Теория решения задач. Подход к созданию искусственного интеллекта, «Мир»,
М„ 1972.]
БЕРЖ (ВЕРОЕ. С.)
1958 ТЬе ТЬеогу о! ОгарЬа апд Из АррПсаНопа, Випод, Рапз (на
франц, яз.). [Русский перевод: Теория графов и ее применения, ИЛ, М., 1962.]
БЕРНШТЕЙН и др. (ВЕРН8ТЕ1Н А. е! а!.)
1958 А СЬе88-Р1ау1пй Ргоргат Гог Гке,1ВМ 704 СотриГег, Ргос. ХУезГ.
То1пГ СотриГег СопГ., рр. 157—159.
БЛЭК (ВБАСК Г.)
1964 А ЬебисНуе ОиезНоп-Апз'.сепгщ ЗузГет, ОосГога! О1ззегГаПоп,
Нагуагб. См. также М. Мтзку (ей.), «ЗетапНс [пГогтаНоп Ргосеззт^»,
354—402, Тке М. I. Т. Ргезз, СатЬгМ^е, Мазз., 1968.
БОБРОВ ДВОВРОХУ О.)
1964а НаГига1 Баприа^е 1приГ Гог а СотриГег РгоЫет-ЗоМп^ ЗузГет,
ОосГога1 01ззегГаНоп, МаззаскизеГГз 1пзПГи!е о! Тескпо1о^у. См. также
М. М1Пзку (е±), «ЗетапНс ГпГогтаНоп Ргосеззт^», Тке М. I. Т. Ргезз, Сат-
ЬгМ^е, Мазз, 1968.
19646 А ОиезГюп-Апз'.уепп^ ЗузГет Гог Н^к-Зскоо! А1^еЬга ХУогй
РгоЫетз, т Ргос. АГ1Р8 Га11 Тот! СотриГег СопГ., 591—614.
БОЛЛ (ВАБЬ XV.)
1931 МаГкетаНса1 РесгеаНопз апб Еззауз, ЮГк ей., МастШап апб Со.,
БГ<Б, Бопбоп. (15-ригг1е, рр. 224—228; То\\?ег-оГ-Напо1, рр. 228—229.)
ВАЙССМАН (ХУЕ188МАН С.)
1967 Б18Р 1.5 Рптег, О1скепзоп РиЬПзкт^ Сотрапу, 1пс., Ве1топГ,
СаПГ.
ВОС, КАРСОН, РОБИНСОН (ХУ08 Б., САР8ОН О., РОВ1Н8ОН О.)
1964 Тке ИпМ РгеГегепсе ЗГгаГе^у т Ткеогет Ргоут^, Ргос. АГ1Р8
1964 ГаП Тот! СотриГег СопГ., уо!. 26, рр. 616—621.
ВОС, РОБИНСОН, КАРСОН (ХУОЗ Б., РОВ1Н8ОН О., САР8ОН О.)
1965 ЕГПаепсу апд Сотр1еГепезз оГ Гке 8еГ оГ ЗиррогГ ЗГгаГе^у т
Ткеогет-Ргоу1П2, 7. АСМ, 12, Но. 4, 536—541.
ГАРВЕИ, КЛИНГ (ОАРУЕУ Т„ КБ1НО К.)
1969 Изег’з ОиМе Го ОА3.5 ОиезНоп-Апзмепп^ ЗузГет, ЗГапГогб Резе-
агск 1пзПГиГе АгПГ1с1а1 ГпГеШ^епсе Огоир Тесктса! НоГе 15.
ГАРД и др. (ОИАРО 3. еГ а!.)
1969 8ет1-АиГотаГе<1 МаГкетаНсз, 7. АСМ, 16, Но. 1, 49—62.
ГАРДНЕР (ОАРПНЕР М.)
1959 Тке ЗаепННс Атепсап Воок оГ МаГкетаПса! РиггГез апй Олгег-
з1опз, 81топ апд ЗскизГег, Не\у Уогк.
1961 Тке 8есоп<1 8с1епНГ1с Атепсап Воок оГ МаГкетаПса! РигДез апд
О1уегз1опз, 81топ ап<1 ЗскизГег, Нем Уогк. 1961.
1964, 1965а, б, в МаГкетаПса1 Оатез, 8с1. Ат., 210, Но. 2, 122—130
(РеЬгиагу 1964); 212, Но. 3, 112—117 (Магск 1965); 212, Но. 6, 120—124 (Типе
1965); 213, Но. 3, 222—236 (ЗерГетЬег 1965).
ГЕЛЕРНТЕР (ОЕБЕРНТЕР Н.)
1969 РеаПгаПоп оГ а ОеотеГгу Ткеогет-Ргоу1п^ Маскте, Ргос. 1пГегп.
СопГ. 1пГогт. Ргос., рр. 273—282, ИНЕЗСО Ноизе, Рапз. См. также Фейген-
баум Э., Фельдман Дж. (1963), стр. 145—164.
ГЕЛЕРНТЕР, ХАНСЕН, ЛАВЛЕНД (ОЕБЕРНТЕР Н„ НАН8ЕИ 3., БОУЕ-
БАНП О.)
1960 Етр1пса1 Ехр!огаНопз оГ Гке ОеотеГгу Ткеогет Ргоу1п§ Маскте,
Ргос. ХУезГ. Тот! СотриГег СопГ., уо1. 17, рр. 143—147. См. также Фейген-
баум Э., Фельдман Дж. (1963), стр. 165—174.
ГОЛОМБ, БОМЕРТ (ООБОМВ 8., ВАИМЕРТ Б.)
1965 Васк1гаск Рго^гатгпт^, 1. АСМ, 12, Но. 4 ,516—524.
ГРИН (ОРЕЕН С.)
1969а Ткеогет-Ргоутд Ьу Рез^иИоп аз а Вазсз Гог риезНоп-Апзмегтд
8уз1етз, 1п В. МеИгег апд О. М1сЫе (едз.), «МасЫпе 1п1еШ^епсе 4»,
рр. 183—205, Атепсап Е1зеу1ег РиЬИзЫпд Сотрапу, 1пс., \Тем Уогк.
19696 Тке АррНсаБоп о! Ткеогет-РгоУ1п§ 1о (ЗиезГюп-Апзмегт^ 8у-
з1етз, Оос1ога1 ОцзеНаНоп, "Е1ес1пса1 Еп|рпеегт|г ОерЕ, 81ап(ог6 ИтуегзИу.
См. также 51ап1ог6 АгНПаа! ТпГеШ^епсе Рго)ес1 Мето А1-96, .Типе 1969.
1969в АррИсаРоп о! Ткеогет-Ргоу1п^ 1о РгоЫет 8о1у1п§;, 1п ОопаМ Е.
<Уа1кег апд Бемсз М. Ног1оп (ебз.), Ргос. 1п!ет. Ло1пБ СопБ АгРПс1а1 1п1е1П-
депсе, \Уазктд1оп, О. С.
ГРИН, РАФАЭЛЬ (ОРЕЕН С., РАРНАЕБ В.)
1968 Тке Б'зе оГ Ткеогет-Ргоутд Тескг^иез 1п ОиезНоп-Апзмепп^
8уз1етз, Ргос. АСМ 23г<1 На11. СопБ, рр. 169—181, Вгапбоп 8уз1етз Ргезз,
РппсеГоп, Н. ].
ГРИНБЛАТТ и др. (ОРЕЕНВБАТТ Р. е! а1.)
1967 Тке ОгеепЫаИ Скезз Рго^гат, Ргос. АЕ1Р8 Еа11 9о1п1 Сотри1ег
СопБ, рр. 801—810, Апаке1т, СаПБ
ГУД (ОООП I.)
1968 А Иуе-Уеаг Р1ап Гог АиГотаРс Скезз, 1п Е. Оа1е апд О. М1ск1е
(едз.), «Маскте 1п1е1Ндепсе 2», рр. 89—118, Атепсап Е1зеу1ег РиЬНзктд
Сотрапу, 1пс., Нем Уогк.
ДЕ РУССО, РОИ, КЛОУЗ (ИЕ РИ88О Р„ РОУ Р„ СБ08Е С.)
1965 81а1е УапаЫез Гог Епдтеегз, Локп \УПеу апд 8опз, 1пс.. Нем
Уогк.
ДИИКСТРА (ОЫК8ТРА Е.)
1959 А Но1е оп Тмо РГоЫетз 1п СоппесРоп мИк Огарка, 1\! итепзске
МаИг., 1, .269—271.
ДОРАН (ООРАН 3.)
1967 Ап Арргоаск Ло Аи1отаНс РгоЫет-ЗоЕкп^, 1п Н. СоШпз апд
О. М1ск1е (едз.), «Маскте ТпГеШ^гепсе 1», рр. 105—123, Атепсап Е1зеу1ег
РиЬИзктд Сотрапу, 1пс., Нем Уогк.
1968 Нем Оеуе1ортеп1з о! (ке Огарк Тгауегзег, т Е. Эа1е апд О. Мь
ск1’е (едз.), «Маскте 1п1еШеепсе 2», рр. 119—135, АтеНсап Е1зеу)ег РиЬИ-
зктд Сотрапу, 1пс., Нем Уогк.
ДОРАН, МИЧИ (ООРАН Л., М1СН1Е О.)
1966 Ехрептеп(з мНк 1ке Огарк Тгауегзег Ргодгат, Ргос. Роу. 8ос., А,
294, 235—259.
ДРЕЙФУС С. (ОРЕУГН8 8.)
1969 Ап Аррга1за1 о! 8оте 8ког1ез! Ра1к А1^оп1ктз, ОрегаИопз Рез.,
17, Но. 3, 395—412.
ДРЕЙФУС X. (ОРЕУЕН8 Н.)
1965 А1скету апй Аг11Пс1а1 ЫеШеепсе, Рапс! СогрогаНоп Рарег Р3244
(АО 625 719).
ДЬЮДЕНЕИ (ВНВЕИЕУ Н.)
1958 ' ТЬе СаЫегЬигу РигДез, Воуег РиЬПсаНопз, 1пс., Меи/ Уогк. [Перво-
начально опубликовано в 1907 г.]
1967 536 РигДез апд Сипоиз РгоЫетз, МагНп Сагдпег (ей.'), СЬаг1ез
ЗспЬпег’з 8опз, Ием Уогк. [На основе двух книг Дьюденея: Модегп РигДез,
1926 и РигДез ап<1 Сипоиз РгоЫетз, 1931.]
ДЭВИС, ПУТНАМ (ВАУ18 М„ РИТМАМ Н.)
1960 А СотриНп^ Ргоседиге Гог риапНПсаНоп ТЬеогу, 1. АСМ, 7, Ио. 3.
ДЭЙЛ, МИЧИ (ред.) (ВАБЕ Е„ М1СН1Е В.)
1968 МасЫпе ТпкШ^епсе 2, Атепсап Е1зеу1ег РиЬНзЫпд Сотрапу,
1пс., Ием Уогк.
ЗОБРИСТ (2ОВК18Т А.)
1969 А Моде1 о! Угзиа! Ог^атгаНоп 1ог 1Ье Сате о! Со, Ргос. АГ1Р8
8ргт^ дот! СотрЫег Соп!., рр. 103—112.
ЙЕЙТС, РАФАЭЛЬ, ХАРТ (УАТЕ8 К., РАРНАЕЕ В., НАРТ Т.)
1970 РезоЫНоп ОгарЬз, АгНЦс1а11п(еШ§епсе, 1, Ио. 4.
ЙЕЛИНЕК (ТЕЫИЕК Г.)
1969 Газ! 8е^иепНа1 Весодгп^ А1§гоИЬт Изгп^ а 81аск, 1ВМ 1. Кез.
Оеое1ор., 13, Ио. 6, 675—685.
КВИНЛАН, ХАНТ (рЕПИЕАМ д„ ННМТ Е.)
1968 А Гогта! ВедисНуе РгоЫет-ЗоЫт^ 8уз1ет, 1. АСМ, 15, Ио. 4,
625—646.
КИБЕРЦ, ЛАКХЭМ (К1ЕВНРТ7 К., ЕИСКНАМ О.)
1971 СотраНЫШу о! РеПпетеЫз о! Нге РезоЫНоп Рг1пс1р1е (в печати).
КИСТЕР и др. (К18ТЕР 1 е! а1.)
1957 ЕхрептеЫз 1п СЬезз, 1. АСМ, 4, Ио. 2, 174—177.
КОВАЛЬСКИЙ (КОШАБ8К1 К.)
1970а ЗеагсЬ 81га1е^1ез Гог ТЬеогет-Ргоут^, Ы В. МеНгег апд'
В. МгсЬТе (едз.), «МасЫпе ГЫеШдепсе 5», рр. 181—201, Атепсап Е1зеу1ег
РиЬПзЫп^ Сотрапу, 1пс., Ием Уогк.
19706 81исНез т Нге Сотр1е1епезз апд ЕШЫепсу о! ТЬеогет-Ргоут^ Ьу
РезоЫНоп, ВосГога] Ткезгз, ЫтуегзИу о! ЕдтЬиг^Ь.
КОВАЛЬСКИЙ, ХЭЙЕС (КОШАЕ8К1 К., НАУЕ8 Р.)
1969 ЗетапНс Тгеез т АЫотаНс ТЬеогет-Ргоут^, т В. МеИгег апд
В. МгсЫе (едз.), «МасЫпе ШеШ^епсе 4», рр. 87—101. Атепсап Екеугег
РиЬПзЫп^ Сотрапу, 1пс., И ем Уогк.
КОЛЛИНЗ, МИЧИ (ред.) (СОЕЫИ8 И., М1СН1Е В.)
1967 МасЫпе 1п(е1Пдепсе 1, Атепсап ЕИеугег РиЬНзЫп^ Сотрапу,
1пс., Ием Уогк.
КОТОК (КОТОК А.)
1962 А СЬезз РЫут^ Рго^гат Гог 1Ье 1ВМ 7090, неопубликовано,
В. 8. ТЬезгз, МаззасЬизеЛз 1пзН1и1е о! Тескпо1о§;у, СатЬпд^е, Мазз.
КОУЛС (СОБЕ8 Е. 8.)
1968 Ап Оп-Бте риезНоп-Апзмепп^ 8уз1ет мНЬ ИаЫга! Еапдиазе
апд Р1с1ог1а1 1прЫ, Ргос. АСМ 23гд ИаЦ. СопБ, 1968, рр. 157—167, Вгапдоп
§уз1етз Ргезз, РппсеЫп, М. д,-
КЭМПБЕЛЛ (САМРВЕББ Б.)
1960 ВНпй УапаНоп апй 8е1есНуе Зитуа! аз а Оепега! 8(га1еду 1п
Кпотукй^е-Ргосеззез, 1п М. УоуИз апй 8. Сатегоп (ейз.), ЗеИ-Огдатгт^
8уз!етз, рр. 205—231, Рег^атоп Ргезз, Не» Уогк. [Русский перевод: Само-
организующиеся системы, «Мир», М., 1964.]
ЛАВЛЕНД (БОУЕБАНБ Б.)
1968 А Ыпеаг Гогта! Гог КезоШНоп, Сагпе^е-МеПоп ИтуегзИу Сотри-
1ег 8с1епсе БерЕ Керог!, БесетЬег 1968. См. также Ргос. 1Д1А 1968 Зутр.
Аи1от. БетопзНаНоп, Бес1иге НоГез т МаГкетаНсз Но. 125, Зргт^ег-УеНа^
Не» Уогк, 1пс„ Не» Уогк, 1970.
ЛАКХЭМ (ББСКНАМ Б.)
1967 Тке ДезокШоп Рппс1р1е т Ткеогет-Ргоут^, ш И. СоШпз апй
Б. М1сЫе (ейз.), «МасЫпе 1п1еШ§епсе 1», рр. 47—61, Атепсап Е1зеу1ег
РиЬПзЫп^ Со., 1пс.
1969 КеПпетеп! Ткеогетз 1п Резо1иНоп Ткеогу, ЗГапГогй Аг1Шс1а1 1п1е1-
Н^епсе Рго]ес1 Мето А1-81, Магск 24, 1969. См. также Ргос. Ш1А 1968
8утр. Аи1от. БетопзГгаНоп, Бес1иге Мо1ез оп Ма1кетаНсз по. 125, Зргтдег-
Уег1а^ Меч’ Уогк, 1пс., Не» Уогк, 1970.
ЛАКХЭМ, НИЛЬСОН (БИСКНАМ Б., Н1Б88ОН И.)
1971 ЕхГгасНп^ [пГогтакоп [гот ДезоШНоп РгооГ Тгеез, АгШкйа! 1п1е1-
Пдепсе.
ЛИН ШЕН (ЫИ 8НЕН)
1965 СотриГег 8о1иНопз о! Гке ТгауеНп^ 8а1езтап РгоЫет, Ве11 8уз(.
ТесНп. /., ХБ1У, Ио. 10.
1970 НеипзНс Тескшриез Гог 8о1у1п^ Баг^е СотЫпаГопа! РгоЫетз оп
а СотриГег, т К. Вапегр апй М. Мезагоущ (ейз.), «ТкеогеНса! Арргоаскез
(о Ноп-Иитепса! РгоЫет-Зокчп^», рр. 410—418, Зргт^ег-УеНа^ Не» Уогк,
1пс., Не» Уогк.
ЛОЛЕР, ВУД (БАХУБЕК Е„ ХУООБ Б.)
1966 Вгапск апй Воипй Ме1койз: А Зигуеу, ОрегаИопз Кез., 14, Ио. 4,
699—719.
ЛОНДОН (БОНБОН К.)
1970 В1ЬИодгарку оп Ргоут^ Гке СоггесГпезз оГ СотриГег Рго^гатз,
1п В. МеЦгег апй Б. МкЫе (ейз.), «Маскте [пГеШ^епсе 5», рр. 569—580,
Атепсап Ё1зеу1ег РпЬНвЫп^ Сотрапу, 1пс., Не» Уогк.
МАККАЛЛОК, ПИТТС (МсСИББОСН XV. 8., Р1ТТ8 XV.)
1943 А Бо§1са1 Са1си1из о! 1Ье 1йеаз 1ттапеп1 т Неига1 Не1з, ВиИ.
Ма1Н. Вюркуз., 5, 115—137.
МАККАРТИ (МсСАКТНУ X)
1958 Рго^гатз »Ик Соттоп 8епзе, 1п «МескатгаНоп о! Ткои§к1 Рго-
сеззез», уо1. I, рр. 77—84, Ргос. 8утр., Нак Ркуз. Бак, Бопйоп, Ноу. 24—27,
1958. См. также М. Мтзку (ей.), «ЗетапНс 1п!огтаНоп Ргосеззтд»,
рр. 403—410, Тке М. I. Т. Ргезз, СатЬпйде, Мазз., 1968.
1962 То»агйз а Ма(кетаНса1 8с1епсе о! СотргйаНоп, Ргос. 1Е1Р
Соп^г. 62, Ног1к-Но11апй РиЪНзктд Сотрапу, Атзкгйат.
1963 ЗИиаНопэ, АсНопз апй Саиза! Ба»з, 81ап1огй ИтуегзИу АгННс1а1
1п1е1П§епсе. Рго]ес1 Мето. Но. 2. См. также М. Мтзку (ей.), «ЗетапНс 1п-
(огтаНоп Ргосеззт^», 410—418, Тке М. I. Т. Ргезз, СатЬпй^е, Мазз., 1968.
1964 А Тои^к Ни! Гог РгооГ Ргосейигез, 81ап1огй БкиуегзИу АгНПсщ!
МеШдепсе Рго]есГ Мето. Но. 16,
МАККАРТИ, ХЭЙЕС (МсСАКТНУ 3„ НАУЕ8 Р.)
1969 <г 8оте РЫ1озорЫса1 РгоЫетз кот Гке 8!апдро1Ы о! АгШгЫа] 1п!е1-
П^епсе, 1п В. МеИгег апд й. МгсЫе (едз.), «МасЫпе ТЫеШ^епсе 4», 463—502,
Атепсап Екеугег РиЬНзЫп^ Сотрапу, 1пс., Уогк.
МАННА (МАННА 2.)
1969 Тке Соггес!пезз о! Ргодгатз, Л Сопгри‘ег 8уз1. 8с1., 3 (Мау 1969).
[Русский перевод; Манна 3., Правильность программ, Кибернетический сбор-
ник, № 7, новая серия, «Мир», М., 1970.]
1970 Тке СоггесГпезз о! Ноп-Ве!еггЫтзНс Рго§гатз, Аг11Цс1а1 1п1е1Ц-
цепсе, уо1. 1, Но. 1.
МАННА, УОЛДИНГЕР (МАННА 2., ХУАЬШНОЕК К.)
1971 Томагбз АЫотаНс Рго§гат ЗупШезгз, Соттип. АСМ (АргП
1971).
МЕЛЬЦЕР (МЕЕТ2ЕК В.)
1966 ТЬеогет-Ргоутд Гог СотргИегз: 8оте КезиИз оп КезоШНоп апб
КепагЫпд, Сотр. 1., 8, 341—343.
1968 8оте Но!ез оп КезоЫНоп 8ка!е§рез, т В. Мгскге (ей.), «МасЫпе
МеШ^епсе 3», 71—75, Атепсап Е1зеу1ег РиЪПзЫп^ Сотрапу, 1пс., Нем Уогк.
МЕЛЬЦЕР, МИЧИ (ред.) (МЕЕТ2ЕК В., М1СН1Е О.)
1969 МасЫпе ГиГеШ^епсе 4, Атепсап Е1зеУ1ег РиЫ1зЫп§ Сотрапу,
1пс., Нем Уогк.
1970 МасЫпе 1п!еШдепсе 5, Атепсап Екеугег РиЬПзЫп^ Сотрапу,
1пс., Нем Уогк.
1971 МасЫпе 1п!е1Пдепсе 6, Атепсап Ёкеугег РиЬНзЫпд Сотрапу,
1пс., Нем Уогк.
МЕНДЕЛЬСОН (МЕНПЕЕ8ОН Е.)
1964 1п!годисНоп (о Ма!кетакса1 Еодк, О. Уап Новкапс! Сотрапу,
1пс., РппсеЫп, Нем Зегзеу. [Русский перевод: Введение в математическую
логику, «Наука», М., 1971.]
МИНСКИЙ (М1Н8КУ М.)
1961а 8!ерз Томан! АгНПсга! 1п!еШдепсе, Ргос. /РЕ, 49, 8—30 (За-
пиагу 196Г). См. также Фейгенбаум Э„ Фельдман Дж. (1963), стр. 402—457.
19616 А 8е1ес!е<! ОезспрЫг-Тпбехес! В1Ы1О2гарЬу !о (Не ЬИегаЫге оп
АНШсга] ТЫеШ^епсе, 1КЕ Тгапв. Нитап ЕаЫогз Е1ескоп, НГЕ-2, рр. 39—55,
Магск 1961. Переработанный вариант см. в Фейгенбаум Э., Фельдман Дж.
(1963), стр. 475—490.
1967 СотриШюп: ГтИе апд 1пкпИе МасЫпез, РгепИсе-НаП, 1пс.,
Епд1емоо<1 СИИз, Н. 3.
1968 (ед.) ЗетапНс 1п(огтаНоп Ргосеззгпд, Тке М. I. Т. Ргезз, Сат-
Ьпдде, Мазз.
МИНСКИЙ, ПЕИПЕРТ (М1Н8КУ М„ РАРЕКТ 8.)
1969 Регсеркопз: Ап 1п!годисНоп !о СотриГакопа] Оеотеку, Тке
М. I. Т. Ргезз, СатЬггдде, Мазз. [Русский перевод: Персептроны, «Мир», М.,
1971.]
МИЧИ (ред.) (М1СН1Е О.)
1968 МасЫпе 1п!еШдепсе 3, Атепсап Екеугег РиЬПвЫп^ Сотрапу,
1пс., Нем Уогк.
МИЧИ, РОСС (М1СН1Е О., РО88 К.)
1970 Ехрептеп!з хуИИ !Ье АдарНуе ОгарЬ Тгатегзег, Ы В. МеНгег апд
В. МкЫе (едз.), «МасЫпе 1п!е1Пдепсе 5», 301—318, Атепсап Е1зеу1ег РиЬП-
зЫпд Сотрапу, 1пс., Меху Уогк.
МОЗЕС (МО8Е8 3.)
1967 ЗутЬоИс 1п!едга!1оп, !Ьез1з, Рго]ес! МАС, Рерог! МАС-ТР-47,
МаззасЬизеНз 1пз!Ни!е о! ТесЬпо1оду.
МОНТАНАРИ (МОИТАИАР! И.)
1970 НеиНвНсаПу Ошдед Зеагск апд СЬготозогпе Ма!сЫпд, АгНЦс1а1
Iп(е1И.репсе, 1, Ио. 4.
МУР (МООРЕ Е.)
1959 ТЬе 8Ьог!ез! Ра!Ь ТкгоидЬ а Маге, Ргос. 1п1егп. 8утр. ТЬеогу
ЗхуИсЫпд, Рас! II, АргН 2—5, 1957; ТЬе Аппа1з о! !ке Сотри!а!юп ЬаЬога!огу
о! Нагуагд ЫтуегзИу 30, Нагуагд .ЫтуегзНу Ргезз, СатЬпдде, Маев., 1959.
НИЛЬСОН (М1Е88ОИ И.)
1969 ЗеагсЫпд РгоЫет-8о1утд апд Оате-Р1аутд Тгеез !ог М1тта1
Соз! 8о1иНопз, дп А. 3. Н. МоггеП (ед.), «1п(огтаНоп Ргосезэтд 68», уо]. 2,
1556—1562, Мог!Ь-Но11ап<1 РиЬПзЫпд Сотрапу, Атз!егдат.
НЬЮЭЛЛ (МЕШЕЬЬ А.)
1965 ЫтНаНопз о! !Ье Сиггеп! 8!оск о! 1деаз аЬои! РгоЫет 8о1у1пд,
т А. Кеп! апд О. Таи1Ьее (едз.), «Е1ес!готс ШогтаНоп НапдПпд», 8раг!ап
Воокз, \УазЫпд!оп, О. С.
1969 НеипзНс Ргодгатттд: Ш-8!гис!игед РгоЫетз, 1п 3. АгопоГзку
(ед.), «Ргодгезз т ОрегаНопз РезеагсЬ», уо1. 3, ЗоЬп \УПеу апд 8опз, 1пс.
НЬЮЭЛЛ, ШОУ, САЙМОН (МЕШЕЬЬ А., 8НА\У 3., 81МОМ Н.)
1957 Етршса! ЕхрЫгаНопз о! !Ье Ьод1с ТЬеогу МасЫпе, Ргос. \Уез1.
Зот! СотрЫег Соп!., уо]. 15, рр. 218—239. См. также: Фейгенбаум Э.,
Фельдман Дж. (1963), стр. ИЗ—144.
1958 СЬезз Р1ау1пд Ргодгагпз апд !Ье РгоЫет о! Сотр1ехНу, 1ВМ I.
Кек. Ьеое1ор., 2, 320—335 (ОсТоЬег 1958). См. также Фейгенбаум Э„ Фельд-
ман Дж. (1963), стр. 33—70.
1959 Рерог! оп.а Оепега] РгоЫегп-ЗоМпд Ргодгат, Ргос. 1п!егп. СопГ.
1п!огт. Ргосезз., рр. 256—264, 13ИЕ8СО Ноизе, Рапз.
О’БИРН (О’ВЕ1РИЕ Т. Н.)
1961 Ригг1ез апд Рагадохез, Л'ео> 8с1епИк1, 245 (Зи1у 27, 1961), 246
(Аид. 3, 1961).
ОРЕ (ОРЕ О.)
1962 . ТЬеогу о! ОгарЬз, Ат. Ма!И. 8ос. Со11оц. РиЫ., уо1. 38, Ргоу1депсе,
РЬо1е 1з1апд. [Русский перевод: Теория графов, «Наука», М., 1968.]
1963 ОгарЬз апд Тпе1г ЕГзез, Рапдот Ноизе, Меху Уогк. [Русский пере-
вод: Графы и их применение, «Мир», М., 1965.]
ПЕЙПЕРТ (РАРЕРТ 8.)
1968 ТЬе Аг!Шс1а] 1п!еШдепсе о! НиЬег! Ь. ВгеуГиз. А Видде! о! Га1-
1ас1ез, М. I. Т. АгШгаа] 1п!е1Пдепсе Мето Ио. 54.
ПОЙА (РОЬУА О.)
1957 Ноху !о 8о1уе И, 2пд ед., ВоиЫедау апд Сотрапу, 1пс., Оагдеп
СИу, И. У. [Русский перевод: Как решить задачу? Учпедгиз, М., 1959.]
ПОЛЬ (РОНЬ I.)
1969 ВЬВкесНопа! апд НеипзНс 8еагсЬ т Ра!И РгоЫетз, Вос!ога1 В18-
зеНаНоп СотрЫег 8с1епсе Вер!., 8!ап!огд ЫтуегзИу, 8!ап!огд, Са1И. См,
также 8!ап!огд Ыпеаг Ассе1ега!ог Сеп!ег Рерог! Ио. 104, Мау 1969.
1970 Е1гзГ РезиИз оп Гке ЕНес! о! Еггог- т НеипзНс Зеагск, т В. МеИ-
гег апд И. М1сЫе (екз.), «МасЫпе ТпГеПцгепсе 5», 219—236, Атепсап Е1зеу1ег
РиЬИзЫпд Сотрапу, Мечу Уогк.
ПРАВИЦ (РКАШ1Т7 П.)
1960 Ап 1тргоуед РгооГ РгосесЫге, ТНеог'м, 26, 102—139.
РАССЕЛ (РНЗЗЕЬЕ К.) '
• 1964 Ка1аЬ — Тке Сате апй Гке Рго^гат,- ЗГапГогд СГпЫегзИу АгННс1а1
1п!е1Ндепсе Рго]ес! Мето Ио. 22, ЗерЕ 3, 1964.
РАФАЭЛЬ (КАРНАЕЬ В.)
1964а 8Ш: А СотриГег Рго^гат Гог ЗетапНс 1п(огтаНоп РеЫеуа!,
ОосГога! 01ззег1аНоп, МаззаскизеКз 1пзНГи1е оГ Тескпо1о^у. См. также
М. Мтзку (едз.), ЗетапНс 1п(огтаНоп Ргосеззт^, Тке М. I. Т. Ргезз, Сат-
ЬгШ^е, Мазз., 1968. 1
19646 А СотрЫег Рго^гат ХУЫск «Нпдегз1апдз», Ргос. АГ1Р8 ЕаП
Тот! СотриГег СопЕ, 577—589.
РИГНИ, ТАУН (ШОИЕУ Л. XV., ТОХУИЕ О. М.)
1969 СотриГег Тесктриез Гог Апа1угт§ Гке МЫгозГгисГиге оГ ЗепаЬ
АсНоп ХУогк т ГпбизГгу, Нитап Рас(огв, 11, Но. 2, 113—122.
РИШ (Р18СН К. Н.)
1969 Тке РгоЫет оГ ГпГедгаНоп т ЕтИе Тегтз, Тгапз. Ат. Ма(к. 8ос.,
139, 167—189.
РОББИН (РОВВ1И Л.)
1969 МаГкетаНса1 Ьодт: А ИгзГ Соигзе, XV. А. Веп]ат1п, 1пс., Мечу
Уогк.
РОБИНСОН, ВОС (РОВГИЗОИ С. А., ХУОЗ Ь. Т.)
1969 Рагато6и1аНоп апб Ткеогет-Ргоут^ т ИгзГ-ОпГег Ткеопез чуИк
ЕриаИГу, т В. МеИгег апй О. МЫЫе (ебз.), «Маскте ГпГеШ^епсе 4»,
135—150, Атейсап Е1зеу1ег РиЬИзкЫд Сотрапу, 1пс., Мечу Уогк.
РОБИНСОН, ВОС, КАРСОН (РОВГИЗОИ С. А., ХУОЗ Ь. Т„ САРЗОМ О. Р.)
1964 Зоте Ткеотет-Ргоут^ 8ГгаГед1ез апй Ткет 1тр1етеп1аНоп, Аг-
доппе ИаНопа! БакогаГопез Тесктса1 МетогатГит Ио.-72.
РОБИНСОН ДЖ. (РОВГИЗОИ Л. А.)
1965а А Маскте-ОпепГед ЬодЫ Вазеб оп Гке РезоЫНоп Рг1пс1р1е,
]. АСМ, 12, Мо. 1, 23—41. [Русский перевод: см. Кибернетический сборник,
№ 7, Новая серия, «Мир», М., 1970.]
19656 АиГотаНс ОебисНоп чуИк Нурег-Резо1иНоп, 1Мегп. ]. Сотр.
Ма(к., 1, 227—234, 1965.
' 1967 НеипзНс апд Сотр1е1е Ргосеззёз 1п Гке МескатгаНоп оГТкеогет-
Ргоут^, т Л. Т. Наг! апд 8. Такази (ебз.), «ЗузГетз ап<1 СотрЫег ЗЫепсе»,
116—124, СкиуегзИу оГ ТогоЫо Ргезз, ТогопГо.
1968 Тке СепегаНгеб Резо1иНоп Ргтс1р1е, т О. М1сЫе (есЕ), «Маскте
1п1е1Ндепсе 3», 77—93, Атепсап Е1зеу1ег РиЬПзкт^ Со., 1пс., Мечу Уогк.
1969а Мечу ОкесНопз 1п Мескатса1 Ткеогет Ргоут^, т А. Л. Н. Мог-
ге11 (ед.), «ЫогтаНоп Ргосеззтд 68», уо1. 1, 63—67, Мог1к-Но11апд РиЬИ-
зктд Сотрапу, АтзГегдат.
19696 Мескапшпд Н1дкег Огдег Ьодгс, Ы В. МеИгег апд О. М1сЫе
(едз.), «Маскте 1п1е1Ндепсе 4», Атепсап Е1зеу1ег РиЬПзЫп^ Сотрапу, 1пс.,
Мечу Уогк.
1970 Ап Оуетечу оГ Мескапка! Ткеогет Ргоу1пд, 1п К. Вапегр апд
М. Мезагоук (едз.), «ТкеогеНса! Арргоаскез 1о Иоп-Митепса! РгоЫет 8о1«
У1П5», 2—20, Зрпп5ег-Уег1а§ Мечу Уогк, 1пс., Мечу Уогк.
РОЗЕНБЛАТТ (КОЗЕНВБАТТ Г.)
1962 Рппс1р1ез оГ Неигойупапнсз, 8раг(ац Воокз, Неч’ Уогк. [Русский
перевод: Принципы нейродинамики. Перцептроны и теория механизмов мозга,
«Мир», М., 1965.]
СЕЛФРИДЖ, КЕЛЛИ (ЗЕБЕРЮОЕ О., КЕББУ X, Тг.)
1962 ЗорЫзНсаНоп т СотрЫегз: А П1задгеетепБ /ЕЕ Тгапз. 1п[огт.
ТНеогу, 1Т-8, Ио. 2, 78-80.
СИММОНС (81ММОН8 К.)
1965 Апздаегт^ Еп^Изк риезНопз Ьу СотрЫег: А Зигуеу, Соттип.
АСМ, 8, 53—70 (Запиагу 1965).
1970 На1ига1 Бап§;иаде ОиезБоп Апздаегт^ ЗузГетз: 1969, Соттит
АСМ, 13, Но. 1, 15—30.
СЛЕЙДЖЛ (ЗБАОБЕ X)
1961 А СотриЫг Рго^гат Гог 8о1ут^ РгоЫетз т Ггезктап Са1си1из
(8А1НТ), Пос1ога1 О1ззег1аПоп, МаззаскизеДз 1пзШи1е оГ Тескпо1о^у, Сат-
Ьпд^е, Мазз. См. также Ыпсо1п БаЬогаГогу КерогГ 50-0001, Мау 10, 1961.
1963а А НеиНзНс Рго^гат ТЬаГ 8о1уез ЗутЬоПс ГЫе^гаНоп РгоЫетз
т Егезктап Са1си1из, 1. АСМ, 10, Но. 4, 507—520. См. также Фейгенбаум Э.,
Фельдман Дж. (1963).
19636 бате Тгеез, М апд И Мтипахт^, апд Иге М апй И А1рка-Ве1а
РгосеЗиге, АгНПса] ГЫеШ^епсе Огоир Керог! Но. 3, 13СРБ-4671, ЫшуегзИу о!
СаНГогта Бадагепсе РаЫаНоп БаЬогаГогу, Ыуегтоге, СаИЕ
1965 ЕхрептепГз даНк а ПебисНуе-риезНоп Апздаегтд Ргодгат,
Соттип. АСМ, 8, 792—798 (ПесетЬег 1965).
1967 АЫотаНс Ткеогет-Ргоут^ ууИН РепатаЫе апб ЗетапНс Еезо-
1иПоп, 3. АСМ, 14, Но. 4, 687—697 (ОсГоЬег 1967).
1970 НеипзНс Зеагск Рго^гатз, т К. Вапегр апй М. Мезагоу1с (ебз.),
«ТкеогеПса! Арргоаскез Го Ноп-Нитепса1 РгоЫет ЗоЫпд», рр. 246—273,
ЗрНп^ёг-УеНа^ Неда Уогк, 1пс., Неда Уогк.
СЛЕЙДЖЛ, БУРСКИЙ (ЗБАОБЕ 3., ВИДЗКУ Р.)
1968 ЕхрептепГз даИк а МиШригрозе, Ткеогет-Ргоут^ НеипзНс Рго-
егат, X АСМ, 15, Но. 1, 85—99.
СЛЕЙДЖЛ, ДИКСОН (ЗБАОБЕ X, ШХОН 3.)
1969 ЕхрептепГз даНк Зоте Ргодгатз ТкаТ Зеагск Оате Тгеез, X АСМ,
16, Но. 2, 189—207.
1970 ЕхрептеЫз даИк 1ке М ап<1. И Тгее Зеагсктд Рго^гат, Соттип.
АСМ, 13, Но. 3, 147.
СОЛОМОНОВ (ЗОБОМОНОГР К.)
1966 Зоте РесепГ ХУогк т АНШЫа! ГЫеШ^епсе, Ргос. 1ЕЕЕ, 54, Но. 112,
ПесетЬег 1966.
СЭМЮЭЛЬ (8АМБ1ЕЕ А.)
1959 Зоте ЗЫсНез 1п Маскте Беагпт^ БГзт^ Тке Оате о! Скескегз,
1ВМ I. Рез. Оеое1ор., 3, Но. 3, 211—229. См. также Фейгенбаум Э., Фельд-
ман Дж. (1963), стр. 71—110.
1967 Зоте ЗЫсНез ш Маскте Беагпт^ Б1з1п^ Тке Оате оГ Скескегз И.
ДесеЫ Рго§гезз, 1ВМ X Рее. ап<1 Оеие1ор., 11, Но 6, 601—617.
СЭНДУОЛЛ (ЗАНОЕХУАББ Е.)
1969 Сопсер(з апй МеГкокз Гог НеипзНс Зеагск, 1п ПопаМ Е. \Уа]кег
апб Беда1з М. НоНоп (ебз.), «Ргос. 1п(егп. ЗотГ СопБ АгНПс1а1 1п1е1Идепсе»,
ХУазкт^Гоп, О. С.
ТРЕЙВИС (ТКАУ18 Ь.)
196$ ТЬе Уа1ие о! 1п1гозресНоп (о йезгдпег о! МесЬаЫса! РгоЫет-
8о1уегз, ВеНао. 8с1., 8, Ио. 3, 227—233.
1967 РзусЬо1оду апд Вютсз: Мапу ОМ РгоЫетз апд а Ге» МТе»
МасЫпез, СопГ. Десогд 1967 \У1Ыег Сопу. Аегозрасе Е1ес1гоп. 8уз. (ХУТМСОИ),
ШЕЕ РиЬИсаНоп Мо. 10-С-42, уок VI.
ТЬЮРИНГ (ТЕНИМО А. М.)
1950 СотриНпд МасЫпегу апд 1п1е1Пдепсе, ММ, 59, 433—460 (Ос1о-
Ьег 1950). См. также Фейгенбаум Э., Фельдман Дж. (1963).
УИТНИ (ХУН1ТИЕУ Й.)
1969 8Ше 8расе Моде1з о! ДетоГе МатрЫаНоп Таэкз, 1п йопаШ Е.
\Уа1кег апд Ье»1з М. ИоНоп (едз.), «Ргос. 1п!егп. Зо1п1 СопГ. АгШкпа! 1п1е1-
Ндепсе», 495—507, \УазЫпд1оп, й. С.
УОЛДИНГЕР, ЛИ (ШАЬЙШОЕК К., ЬЕЕ К.)
1969 РДОХУ: А 81ер То»агд Аи1отаНс Ргодгат-ШгШпд, т Йопа1д Е.
\Уа1кег апд Ье»1з М. ИоНоп (едз.), «Ргос. 1п1егп. Зот1 СопГ АгШгаа! 1п1е1-
Ндепсе», \УазЫпд(оп, й. С.
ФАИКС (Г1КЕ8 К.)
1970 КеГ-АН: А 8уз(ет Гог 8о1у1пд РгоЫетз 8Ыед аз Ргоседигез,
АгЩ1с1а1 1п1е111{>епее, 1, Мо. 1.
ФЕЙГЕНБАУМ (ЕЕЮЕМВАИМ Е.)
1963 АгШюа! 1п1е1Ндепсе КезеагсЬ, 1ЕЕЕ Тгапк. 1п(огт. ТЬеогу, 1Т-9,
Ио. 4, 248—261.
1969 АгШгаа! 1п1е1Пдепсе: ТЬетез т Нге 8есопд йесаде, т А. 3. Н. Мог-
ге11 (ед.), «ШогтаНоп Ргосеззйд 68», уо]. 2, 1008—1022, ИогШ-НоПапд РиЬН-
зЫпд Сотрапу, Атз1егдат. См. также 8!апГогд ЕТшуегзНу АгННс1а1 1п1е1И-
депсе Рго]ес4 Мето Ио. 67, Аид. 15, 1968.
ФЕЙГЕНБАУМ, БУКХЭНАН,. ЛЕДЕРБЕРГ (ГЕЮЕМВАИМ Е„ ВИСНА-
ИАИ В., ЬЕЙЕКВЕКО 3.)
1971 ОепегаШу апд РгоЫет 8о1утд: А Сазе 81иду Изтд Нге ЙЕМ-
ЙКАЬ Ргодгат, т В. МеНгег апд й. МгсЫе (едз.), «МасЫпе 1п1еШдепсе 6»,
Атепсап Ейеугег РиЬПзЫпд Сотрапу, 1пс., Ие» Уогк.
ФЕЙГЕНБАУМ, ФЕЛЬДМАН (ред.) (ЕЕЮЕМВАИМ Е., ГЕЬЙМАИ 1)
1963 СотрЫегз апд ТЬоидЫ, МсОга»-НП1 Воок Сотрапу, М'е» Уогк.
[Русский перевод: Вычислительные машины и мышление, «Мир», М., 1967.]
ФЕЛЬДМАН, ГРИС (ГЕЬЙМАИ 3., ОК1Е8 й.)
1968 Тгапз1а1ог ХУгШпд 8уз!етз, Соттип. АСМ, 11, Ио. 2, 77—ИЗ.
ФЛОЙД (ГЬОУЙ К.)
1967а МопдеГеггЫтзНс А1догИЬтз, 1. АСМ, 14, Ио. 4, 636—644.
19676 Аззгдтпд Меаптдз 1о Ргодгатз, Ргос. 8утр. Арр1. Ма1Ы Ат.
МаЫ. 8ос., уо1. 19, 19—32.
ФОГЕЛЬ, ОУЭНС, УОЛШ (ГООЕЬ Ь„ ОШЕИ8 А., \УАЬ8Н М.)
1966 АгНПсга! 1Ме1Идепсе ТЬгоидЬ 81ти1а(ед ЕуоЫНоп, ЗоПп \УПеу
апд 8опз, 1пс., Ие» Уогк.
ФОРД, ФАЛКЕРСОН (ЕОКй Ь„ Зг„ РИЬКЕКЗОМ Й.)
Т962 Е1о»з 1п Ме1»огкз, РгтсеЫп ЫпгуегзНу Ргезз, Рппсект, • И. 3.
[Русский перевод: Потоки в сетях, «Мир», М., 1966.]
ХАРТ, НИЛЬСОН, РАФАЭЛЬ (НАРТ Р„ НШ88ОН И., РАРНАЕЬ В.)
1968 А Роста! Ваз!з (ог 1Ье НеипзНс Ое!егттаНоп о( Мштит Соз!
Ра!Ьз, 1ЕЕЕ Тгапз. 8уз. 8с1. СуЬегпеНсз, 88С-4, Но. 2, 100—107.
ЧЕРЧ (СНПрСН А.)
1956 (ЫгосЫсНоп 1о МаЛЬетаНса! Ьо§1с, уок 1, РппсеЫп ЫпИегзНу
Рге88, Рппсе1оп, Н. Л. [Русский перевод: Введение в математическую логику,
т. I, ИЛ, М„ 1961.]
ШАПИРО (8НАР1РО О.)
1966 А^огЛЬшз (ог 1Ье 8о!иНоп о( 1Ье ОрНша1 Со81 ТгауеНпр; 8а!ез-
тап РгоЫет, 8с. О. ТЬез!з, АУазЫпрПоп ЫтуегзНу, 81. Ьошз/Мо.
ШЕННОН (8НАННОН С.)
1950 Ргор;гатгтп§ а О1^Иа1 СотрЫег (ог Р1аутр; СЬезз, РНИозорНу
Мауаг'те, 41, 356—375 (МагсЬ, 1950). См. также Л. К. Неу/тап (ей.), ТЬе
\Уог!<1 о( МаШетаНсз, уо!. 4, 81топ апй 8сЬиз1ег, ИеУ/ Уогк, 1954. [Русский
перевод: см. Работы по теории информации и кибернетике, ИЛ, М., 1963.]
ШУХ (8СН1ЛН Р.)
1968 ТЬе Ма81ег Воок о( МаЛЬёгпаНса! РесгеаНопз, XV. Л. ТЫете апй
С1е., 2и1рЬеп, 1943 (на голланд. яз.). Английский перевод: Р. ОбЬе1, Ооуег
РиЬНсаНопз, 1пс., Неу/ Уогк, 1968.
ЭДВАРДС, ХАРТ (ЕПХУАРО8 О., НАРТ Т.)
1963 ТЬе а-0 НеипзНс. М. I. Т. АгНПс!а1 (ЫеШ^епсе Мето Но. 30,
Ос1. 28, 1963. [Первоначально опубликовано как ТЬе Тгее Ргипе (ТР) А1р;о-
гНЬт, бес. 4, 1961.]
.ЭНДРЮС (АНОРЕХУ8 Р.)
1968 РезоЫНоп мН1Ь Мегррп§, I. АСМ, 15, Но. 3, 367—381. См. также
поправки в 1. АСМ, 15, Но. 4, 720 (ОсЫЬег, 1968).
ЭРБРАН (НЕРВРАНО Л.)
1930 РесЬегсЬез зиг 1а (Ьёопе <1е 1а бётопзкаНоп, Тгао. 8ос. 8с1. Ье(-
1гез Уагзооге, С1аззе III 8с1. МаИг. РНуз., Но. 33.
ЭРНСТ (ЕРН8Т С.)
1969 8и(Нс1еп1 СопсИНопз (ог 1Ье 8иссезз 6( СР8, I. АСМ, 16, Но. 4,
517—533.
ЭРНСТ, НЬЮЭЛЛ (ЕРН8Т С., НЕХУЕЬЬ А.)
1969 СР8: А Сазе 81и<Лу т СепегаШу ап<1 РгоЫет ЗоЫЫр;, АСМ Мопо-
дгарЬ 8епез, АсабетЫ Ргезз, 1пс., Неу/ Уогк.
Адельсон-Вельский Г. М. 170
Аллен (АПеп Л.) 250
Амарель (Атаге! 8.) 22, 48, 49, 51,
90, 168
Андерсон (АтЛегэоп К.) 249
Бар Хиллел (Ваг НП1е1 V.) 232
Беллман (ВеПтап К.) 89
Беллмор (ВеПтоге М.) 23, 49
Бенерджи (Вапег]1 К.) 22
Берж (Вег^е С.) 48
Бернштейн (Вегпз^ет А.) 169
Бледсоу (ВЫзое XV.) 249
Блэк (В1аск Е.) 22, 233
Бобров (ВоЬгочу Б.) 232
Болл (Ва11 АУ.) 24
Бомерт (Башней Ь.) 89
Букхэнан (ВисЬапап В.) 23
Бурский (Вигзку Р.) 125, 127, 168
Вайссман (АУе188тап С.) 220
Вос (АУоз Ь.) 203, 234, 249, 250
Вуд (АУооб Б.) 22, 89
Гарвей (Оагуеу Т.) 250
Гард (Сшагб Л.) 234
Гарднер (Оагбпег М.)' 24
Гелернтер (Ое1егп1ег Н.) 114, 126
Голомб (Оо1отЬ 8.) 89
Грин (Огееп С.) 232, 233, 250
Гринблатт (СгеепЫаП К.) 170
Грис (Оп'е8 Б.) 49
Гуд (Оооб I.) 168
Де Руссо (Бе Риззо Р.) 49 '
Дийкстра (БцЫга Е.) 88
Диксон (Б1хоп Л.) 89, 166—170
Доран (Богап Л.) 88, 89
Дрейфус С. (БгеуГиз 8.) 89
Дрейфус X. (БгеуГиз Н.) 19, 170
Дьюденей (БшЛепеу Н.) 24
Дэвис (Бау1в М.) 203
Зобрист (ХоЬпз! А-) 170
Иейтс (Уа1ез Р.) 221, 243, 249, 250
Йелинек (ЛеИпек Р.) 23
Квинлан (С?шп1ап Л.) 48
Келли (Ке11у Л., (г.) 19
Киберц (К1еЬиг1х К.) 249
Кистер (К1в4ег Л.) 169
Клинг (КИп§ Р.) 250
Клоуз (С1озе С.) 49
Ковальский (Комш1зк1 Р.) 203, 237,
248, 250
Коток (Ко1ок А.) 170
Коулс (Со1ез Ь. 8.) 232
Кэмпбелл (СатрЬеП Б.) 21
Лавленд (Ьоуе1апс1 Б.) 243, 249
Лакхэм (Ьискйат Б.) 9, 196, 204,216,
233, 249, 250
Левин (Ьеут М.) 169
Ледерберг (Ьес1егЬег§ Л.) 23
Ли (Бее Р.) 233
Лин Шен (Ып 8Ьеп) 22
Лолер (ЬахЛег Е.) 22, 89
Лондон (ЬогкЛоп Р.) 233
Маккаллок (МсСиПосЬ АУ. 8.) 20
Маккарти (МсСаййу Л.) 22, 49, 51,
91, 169, 170, 203, 233, 234
Манна (Маппа 2.) 48, 125, 233
Мансон (Мипзоп Л.) 233
Мельцер (МеИгег В.) 249
Мендельсон (Мепбекоп Е.) 202
Минский (Мтзку М.) 13, 20, 23, 49
Мичи (МшЫе Б.) 23, 88, 89
Мозес (Мозез Л.) 126, 127
Монтанари (МогПапап 1Л.) 23
Мур (Мооге Е.) 89
Нильсон (МП88ОП И.) 6, 89, 168, 216,
233
Немхозер (Ь’еткаизег С.) 23, 49
Новиков П. С. 202
Ньюэлл (ИемеИ А.) 21, 22, 24, 25, 48,
49, 125, 126, 168, 169
О’Бирн (О’Векпе Т. Н.) 127
Оре (Оге О.) 48
Таун (Томше О. М.) 125
Трейрис (Тгау18 Б.) 21
Тьюринг (Типп§ А. М.) 19*
Пейперт (Рарег! 8.) 19, 20
Питтс (РИ18 XV.) 20
Пойа (Ро1уа О.) 21
Поль (Рой! I.) 89
Правиц (РгачуИг □). 203
Путнам (Ри1пат Н.) 203
Рассел (РиззеП Р.) 170
Рафаэль (Раркае! В.) 89, 168, 232,
233, 243, 249, 250
Ригни (Р1§пеу Л. XV.) 125
Риш (Изей р. Н.) 126, 127
Роббин (РоЫйп Л.) 202, 203
Робинсон Г. (РоЫпзоп О. А.) 203,
234, 248, 250
Робинсон Дж. (РоЫпзоп Л. А.) 196,
203, 204, 248, 249
Розенблатт (РозепЫаН Р.) 20
Рой (Роу Р.) 49
Росс (Роза Р.) 89
Уитни (ХУИИпеу О.) 23
Уолдингер (ХУа1сНп§ег Р.) 233
Файке (Р1ке8 Р.) 48, 49, 233
Фалкерсон (Ри1кег8оп 6.) 49
Фейгенбаум (Ре1§епЬаит Е.) 9, 23
Фельдман (РеМтап Л.) 23, 49
Флойд (Р1оу<1 Р.) 48, 233
Фогель (Ро^е1 Ь.) 20
Форд (Роге! Ь., (г.) 49
Хант (Нип! Е.) 48
Харт Р. (Наг! Р.) 9, 89, 168, 250
Харт Т. (Наг! Т.) 169, 243, 249
Хэйес (Науез Р.) 203, 234, 248
Чёрч (Скигск А.) 202
Саймон (81топ Н.) 21, 25, 125, 168,
169
Селфридж (ЗеИпс^е О.) 19
Сиберз (81Ьегх Л. К.) 9
Симмонс (Знптопз Р.) 232
Слейджл (81а^1е Л.) 22, 23, 89, 107,
108, 125—127, 166—170, 232, 249
Соломонов (8о1отопоИ Р.) 23
Сэмюэль (§атие1 А.) 9, 89, 168—170
СэндуОлл (8апс1е\уа11 Е.) 22
Шапиро (Зйарио □.) 23, 89
Шеннон (Зкаппоп С.) 168
Шоу (811а XV Л.) 21, 25, 125, 168, 169
Шух (8с1ш11 Р.) 24
Эдвардс (ЕЛчуагсЬ □.) 169
Эндрюс (АпЛгечуз Р.) 243, 249
Эрбран (НегЬгапс! Л.) 190, 203
Эрнст (Егп81 С.) 22, 48, 126
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
аксиома 207
алгоритм динамического программи-
рования 89
— допустимый 70, 148
— недетерминированный 48
— унификации 195
— упорядоченного перебора 144
алфавитный вариант 194
альфа-бета процедура 157, 163
альфа-отсечение 163
атом 186, 194
атомная формула 174
бесконечное т-арное дерево 81
бета-отсечение 163
буква константная 173
— пропозициональная 173
вершина 31
— вывода 191
— достижимая 32
— дочерняя 31, 99
— заключительная 99
— закрытая 70
— «И» 99
— «ИЛИ» 98
— корневая 132, 238
— концевая 142, 238
— начальная 32, 52, 99
— неблагоприятная 189
— незакрытая 70
— неразрешимая 100, 129
— открытая 70
— разрешимая 129
— родительская 31, 99
глубина вершины 59, 63, 134, 138
— граничная 59
— опровержения 199
— подинтегрального выражения 167
глубинное отношение 89
грамматика 39-
граф 31
— доказательства на основе резоль-
венций 238
— «И/ИЛИ» 95, 98
— направленный 31
— перебора 130
дерево 53, 63
— игры 123
— «И/ИЛИ» 125
— замкнутое 189
— оптимальное 141
— перебора 55, 132
— пропозициональное 125
— решения потенциальное 143
— семантическое 187
дизъюнкция 178
доказательство 180
дуга 31, 99
— невозвратная 50
задача об обезьяне и бананах 45, 118,
225
— о восьми ферзях 50, 103
— *— коммивояжере 23, 37
-----кувшинах 50
-----миссионерах и людоедах 90
----- перевернутом маятнике 43
-----пирамидке 91
-----скользящих прямоугольниках
90
— получения ответа на вопросы 232
— распределения 41
— символического интегрирования
— синтаксического анализа 39
— управления 43
игра в восемь 30
----- пятнадцать 13
— гоу 170
— Гранди 123
— калах 166, 170
— Кьюбик 171
— «последний проигрывает» 128
— тик-так-ту 155, 158—160
— шахматы 169
— шашки 170
игры 122
индивидуальные переменные 177
интерпретация 175
исчисление предикатов 172
квантор всеобщности 178
— существования 179
классическая логика 202 контроль внимания 168 конфигурация начальная (3 — целевая 13 конъюнкция 177 корень дерева 53 перебор в глубину 53 — полный 53 — слепой 53 — упорядоченный 65 — этапами 83 персептрон 20 поддержка 243 подзадача 16
литерал 184 логическое следование 180 лоза 238 подслучай 237 поиск (перебор) 15 — в глубину 135 потомок 32
макрооператоры 45 матрица 183 метод ветвей и границ 22 — перебора в глубину 59, 63, 131 — полного перебора 53, 62, 131, 132 — проб и ошибок 7, 16 — равных цен 57, 62 — таблиц истинности 176 множество рассогласования 195 — унификации 209 — унифицируемое 194 — целевое 32 модель 111, 175, 189, 244 правила переписывания 28, 30 — прерывания перебора 161 правильно построенная формула (п. п. формула) 172, 174 предложение 39, 181, 184 — базовое 238 — выведенное 197 — исходное 196 — положительное 246 предположение 207 — о непротиворечивости 74 предок 32 префикс 183 принцип резольвенций 172 приписывание значения 175 проблема системы отсчета 231
невыполнимость (неудовлетвори- мость) 181 неразрешимость 180 нормальная форма конъюнктивная 184 предваренная 183 программа недетерминированная 34 — Мэк Хак 170 программирование с обратным сле- жением 89 продукция 28 прослеживание в обратном направле- нии 154
обращенная величина 154 —.— предварительная 161 общезначимость 179 означивание 186 оператор 14 — ключевой 116 — наследования 32 — недетерминированный 33 — построения дочерних вершин 101 — префиксный 27 — присваивания 33 ВСЕ 101 ВЫБОР 34, 101 — сведения задачи к подзадачам 96 описание дочернее (результирующее) 96 основные промежуточные состояния 115 ответное утверждение 208 отфильтровывание предшествующих вершин 239 оценочная функция 64, 65, 139 •— — статическая 154 пространство состояний 14 высшего уровня 122 процесс опровержения 198 процедура минимаксная 154 — разметки разрешимых и неразре- шимых вершин 130 путь 32, 140 — оптимальный 68 различия 117 разрешимость вершины 99 — пары предложений 197 раскрытие вершины 52, 130 ребро 31 редукция задачи 16 резольвента 192, 197 резольвенция 197 резолюция 172 решающая последовательность 52 решающий граф 100 решение задач 11 сведение задачи к подзадачам 91 семантика 172, 175
синтаксис 172, 173
слияние 243
состояние начальное 14
— целевое 14
состояния-вехи 96
стоимость 140
— дуги 32
— максимальная 140
— оцененная 141
— пути 32
— суммарная 140
стратегии комбинированные 247
стратегия модельная 246
— наименьшего числа компонент 247
— очищения 236, 237
— поддерживающего множества 243
— предпочтения одночленам 247
— упорядочения 236, 247
— упрощения 236
— АЕ-формы 241
схема для описания состояний 45
таблица истинности 176
тавтология 208, 236
терм 174 ‘
тест Тьюринга 19
указатели 52, 130
универсальный решатель задач 21, 22
универсум Эрбрана 185
унификатор 194
— наиболее общйй (простейший) 195
унификация 193
упорядочение динамическое 165
— совершенное 164
упорядочение фиксированное 165
уровень граничный 248
— дерева 148
— опровержения 199
фактор 196
— эффективного ветвления 86
функция качества 168
— Сколем а 182
— стоимости 57
целенаправленность 85
частный случай константный 185, 194
---«общий» 196
--- подстановочный 193
эвристическая информация 63
— сила 64, 77
— функция 70, 141
эвристические методы поиска 64
эвристический поиск 7
элементарная задача 16, 91
эрбрановская база 186
V-ветвление 35, 103
АЕ-форма 239
саг 220
сс!г 220
сопз 220
е-значения 166
Л-опровержение 246
ОГЛАВЛЕНИЕ
Предисловие редактора перевода ..................................... 5
Предисловие . ................................................ . . 7
Глава 1. Введение ..................................................11
1.1. решение задач и искусственный интеллект....................И
1.2. Головоломки и игры как примеры задач......................12
1.3. Состояния и операторы................................... 14
1.4. Сведение задачи к подзадачам..............................16
1.5. Использование формальной логики при решении задач .... 17
1.6. Два составных элемента процесса решения задач: представление
и поиск (перебор) ............................................ 18
1.7. Библиографические и исторические замечания...............19
Задачи....................................................... 24
Глава 2. П редставление задач в пространстве состояний..............26
2.1. Описания состояний........................................26
2.2. Операторы ................................................27
2.3. Целевые состояния.........................................30
2.4. Запись в виде графа.......................................31
2.5. Представление пространств состояний посредством недетермини-
рованных программ..............................................33
2.6. Некоторые примеры представлений задач.....................36
2.7. Выбор «хороших» представлений.............................44
2.8. Библиографические и исторические замечания ‘ 48
Задачи ....................................................... 49
Глава 3. Методы поиска в пространстве состояний ....................52
3.1. Процессы поиска на графе..................................52
3.2. Методы полного перебора...................................53
3.3. Метод перебора в глубину..................................59
3.4. Изменения при переборе на произвольных графах.............62
3.5. Обсуждение эвристической информации ......................63
3.6. Использование оценочных функций...........................65
3.7. Оптимальный алгоритм перебора.............................68
3.8. Допустимость алгоритма Л*.................................70
3.9. Оптимальность алгоритма 4*................................73
3.10. Эвристическая сила функции П.............................77
3.11. Важная роль функции ......................................80
3.12. Использование других эвристик.............................83
3.13. Критерии качества работы методов перебора.................85
3.14. Библиографические и исторические замечания................88
Задачи .........................................................90
Глава 4. Представления, допускающие сведение задач к подзадачам . 91
4.1. Пример представления, дающего сведение задачи к подзадачам 91
4.2. Описание задач........................................... 95
4.3. Операторы сведения задачи к. подзадачам...................96
4.4. Описания элементарных задач...............................97
4.5. «И/ИЛИ» графы.............................................98
4.6. Представление «И/ИЛИ» графов с помощью недетерминирован-
ных программ 101
4.7. Примеры сведения задачи к совокупности подзадач .... 105
4.8. Механизмы планирования при сведении задач к подзадачам . .115
4.9. Ключевые операторы.......................................116
4.10. Различия .............................................. 117
4.11. Пространства состояний высшего уровня...................121
4.12. Игры ...................................................122
4.13. Библиографические и исторические замечания..............125
Задачи....................................................... 127
Глава 5. Методы поиска при сведении задач к совокупности подзадач . .129
. 5.1. Процессы перебора (поиска) на графах типа «И/ИЛИ» .... 129
5.2. Метод полного перебора................................. 132
5.3. Поиск в глубину..........................................135
5.4. Перебор на графах типа «И/ИЛИ»..........................1'37
5.5. Стоимости деревьев решения...............................139
5.6. Использование оценок стоимости для прямого перебора . . .141
5.7. Алгоритм упорядоченного перебора для деревьев типа «И/ИЛИ» 144
' 5.8. Допустимость алгоритма упорядоченного поиска (перебора) . . 148
5.9. Выбор вершины в т0 для очередного раскрытия ....... 150
5.10. Модификации ............................................152
5.11. Минимаксная процедура при переборе на игровых деревьях . . 152
5.12. Альфа-бета процедура....................................157
5.13. Эффективность перебора при альфа-бета процедуре.........163
5.14. Комбинированные альфа-бета процедуры и. процедуры упорядо-
чения ........................................................ . 164
5.15. Возможное .улучшение методов, основанных иа минимаксе ... 166
5.16. Библиографические и исторические замечания..............167
Задачи ......................................................170
Глава 6. Доказательство теорем в исчислении предикатов............172
6.1. Исчисление предикатов как язык для решения задач ..... 172
6.2. Синтаксис...............................................173
6.3. Семантика ...............................................175
6.4. Переменные и кванторы....................................177
6.5. Общезначимость и выполнимость............................179
6.6. Предложения .............................................181
6.7. Универсум Эрбрана........................................185
6.8. Эрбрановская база....................................... 186
6.9. Построение семантического дерева.........................187
6.10. Неблагоприятные вершины.................................189
6.11. Вершины вывода..........................................191
6.12. Унификация .............................................193
6.13. Резольвенты ............................................196
6.14. Принцип резольвенции ......................... . ' . 198
6.15. Непротиворечивость и полнота резольвенции...............201
6.16. Библиографические и исторические замечания.............202
Задачи........................................................204
Глава 7. П рименения исчисления предикатов к решению задач .... 205
7.1. Исчисление предикатов при решении задач.................205
7.2. Пример .................................................206
7.3. Процесс извлечения ответа.............................. 209 '
7.4. Предположения, содержащие переменные, относящиеся к кван-
тору всеобщности .............................................214
7.5. Пример автоматического написания программы..............219
7.6. Использование исчисления предикатов при решении задач в про-
странстве состояний...........................................224
7.7. Одна формализация для решения задач в пространстве состояний 228
7.8. Библиографические и исторические замечания ........ 232
Задачи..................................................... 234
Глава 8. Методы поиска доказательства в исчислении предикатов . . . 236
8.1. Стратегии перебора..................................... 236
8.2. Стратегии упрощения.................................... 236
8.3. Стратегии очищения..................................'. . 237
8.4. Формы доказательства с отфильтровыванием предшествующих
вершин........................................................238
. 8.5. Стратегия поддерживающего множества.................... 243
8.6. Более ограничительные стратегии.........................243
8.7. Модельные стратегии.....................................243
8.8. Л-опровержения .........................................246
8.9. Комбинированные стратегии...............................247
8.10. Стратегии упорядочения . ...............................247
8.11. Библиографические и исторические замечания..............248
Задачи....................................................... 250
Список литературы.................................................252
Именной указатель.................................................263
Предметный указатель..............................................265
УВАЖАЕМЫЙ ЧИТАТЕЛЬ!
Ваши замечания о содержании книги, ее оформлении,
качестве перевода и другие просим присылать по
адресу:
129 820. Москва, И-.110 ГСП
1-й Рижский пер., д. 2,
Издательство «Мир».
Н. Нильсон
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
Редакторы А. С, Попов и Л. Б. Штейнпресс
Художник А. И. Гольдман
Художественный редактор В, И. Шаповалов
Технический редактор Л. П. Бирюкова
Корректор В. С. Соколов
Сдано в набор 18/1 1973 г. Подписано к пе-
чати 27/У1 1973 г. Бумага тип. № 3 60 Х90’/1б=8,50
бум. л. 17 усл. печ. л., 16,93 уч.-изд. л.
Изд, № 1/6792. Цена 1 р, 17 к. Заказ № 493
ИЗДАТЕЛЬСТВО «МИР»
Москва, 1-й Рижский пер., 2
Ордена Трудового Красного Знамени
Ленинградская тйпография № 2
имени Евгении Соколовой
зСоюзполнграфпрома при Государственном
комитете Совета Министров СССР
по делам издательств,
полиграфии и книжной торговли
г. Ленинград, Л-52, Измайловский
проспект, 29
У НИХ ЛИШЬ ДЛЯ БОГАТЫХ ИЗОБИЛИЕ.
А МЫ СТРЕМИ ИСЛ К ИЗОБИЛИЮ ДЛЯ ВСЕХ