Книга
Книга
Глава 1 ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
В области искусственного интеллекта основными проблемами являются поиск и представление знаний. Цель исследований при этом состоит не только в разработке новых теоретических построений, но и в создании для ЭВМ соответствующих программ наиболее общего характера.
В начале главы мы кратко опишем состояние области традиционной информатики, затем покажем, каким образом исследования в области искусственного интеллекта выделились в самостоятельное научное направление.
Информатика и искусственный интеллект
Термин «информатика» используется исследователями в двух различных значениях. Во-первых, информатика рассматривается в качестве основы для моделирования и, во-вторых, как инструмент для непосредственной проверки гипотез (ЭВМ.— прекрасное средство тестирования идей).
Информатика и искусственный интеллект имеют тесные взаимосвязи с лингвистикой, психологией и логикой, которые изучают явления, относящиеся к познанию, пониманию и умозаключениям. Эти связи носят взаимный характер: с одной сто роны, сегодня лингвисты, психологи, специалисты в области математической логики переводят в программы те новые модели, которые они разрабатывают (точно так же, впрочем, как математики, биологи, исследователи в области медицины), а с другой — исследователи в области искусственного интеллекта изучают эти модели и пытаются воссоздать на их основе логику эффективных методов решения задач.
Особенно тесные взаимосвязи имеются между искусственным интеллектом и науками о познании. Это обусловлено тем, что единственным устройством для разумны* рассуждений, которое нам доступно, является наш мозг, причем непосредственное исследование мыслительных процессов, протекающих в нем» практически невозможно. Использование ЭВМ в качестве материальной основы искусственного интеллекта позволяет как бы изнутри взглянуть на подобные процессы.
Впервые после фундаментального пересмотра картины мирз, связанного с именами Коперника и Дарвина» разработка
методов искусственного интеллекта возвращает нас к вопросу о месте человека В природе. По существу впервые оспаривается исключительность разума.
Искусственный интеллект как наука
Искусственный интеллект как наука насчитывает уже около 30 лет. Задачей этой науки является воссоздание с помощью искусственных устройств (в основном с помощью ЭВМ) разумных рассуждений и действий. При этом возникают трудности двух типов:
В большинстве случаев, выполняя какие-то действия, мы сами не осознаем, как мы это делаем. Нам неизвестен точный способ (илй алгоритм, как говорят специалисты), как именно происходит понимание текста, узнавание лица, доказательство теоремы, выработка плана действий, решение задачи и т. п.
ЭВМ. априори далеки от человеческого уровня компетентности: до начала любой их работы необходимо составить соответствующие программы. Однако в действительности языки программирования дают возможность выражать только весьма элементарные понятия.
Следовательно, методы искусственного интеллекта представляют собой экспериментальную научную дисциплину. Под экспериментом в данном случае понимается проверка и уточнение моделей (представляющих собой программы для ЭВМ.) на многочисленных примерах — наблюдениях над человеком (в том числе и над самим исследователем) с целью раскрыть эти модели и лучше понять функционирование человеческого разума.
Ниже мы уточним определение области искусственного интеллекта. Затем мы поговорим об истории этой новой научной дисциплины и в заключение рассмотрим современные методы и перспективные направления исследований в области искусственного интеллекта.
L3. Области применения искусственного интеллекта
Всякая задача, для которой неизвестен алгоритм решения, априорно относится к искусственному интеллекту. Под алгоритмом понимается вся последовательность заданных действий, которые хорошо определены, выполнимы на современных ЭВМ, причем решение задачи должно получаться в приемлемое время (порядка минуты или часа). Так, например, неизвестен алгоритм для игры в шахматы. И хотя эта игра имеет конечное число ситуаций, рассмотрение их всех потребовало бы тысячелетий. Аналогичным образом не существует общего алгоритма медицинской диагностики, составления резюме текста или перевода его на иностранный язык.
К сфере искусственного интеллекта относятся те весьма различные области, где мы действуем, не имея абсолютно точного метода решения проблемы, и которые обладают в общем двумя характерными особенностями:
в них используется информация в символьной форме: буквы, слова, знаки, рисунки. Это отличает область искусственного интеллекта от областей, в которых традиционно компьютерам доверяется обработка данных в числовой форме;
в них предполагается наличие выбора; действительно, сказать, что не существует алгоритма, это значит сказать, по сути дела, только то, что нужно сделать выбор между многими вариантами в условиях неопределенности, и этот недетерми- низм, который носит фундаментальный характер, эта свобода действия являются существенной составляющей интеллекта.
Первой проблемой, с которой сталкиваются исследователи в области искусственного интеллекта, является проблема восприятия информации. Возможности сенсорных и исполнительных механизмов, присущих человеку, в области зрения, манипулирования, восприятия вкуса и запаха, а также в понимании и воспроизведении речи еще не достигнуты в современных технических системах. Рассмотрим отдельные направления, где находят применение методы искусственного интеллекта. t
Восприятие и распознавание образов
Любая система обработки информации получает исходные данные от своих органов восприятия. Из наших пяти органов чувств несомненно самое важное место занимает зрение. Техническими аналогами глаза сегодня являются телекамеры и лазеры, работа которых непосредственно связана с программами распознавания изображений и анализа сцен. Микрофоны представляют собой воспринимающие органы технических слуховых систем. Область обработки поступающих сигналов известна под названием ^распознавание образов". Распознающая система является необходимой частью любой автономной системы обработки информации. Однако этим еще не решаются задачи, возникающие в области искусственного интеллекта, поскольку совсем недостаточно того, чтобы исходная информация была закодирована и занесена в память. В первую очередь возникают проблемы понимания и логического рассуждения, которые являются специфическими для искусственного интеллекта.
Математика и автоматическое доказательство теорем
В искусственном интеллекте особое значение придается символьной, а не числовой информации. Соответственно и первыми областями, в которых работали исследователи искусственного
интеллекта, стали математика и различные игры. Обе эти сферы оказались хорошими областями приложения методов искусственного интеллекта в силу того, что связанные с ними задачи и проблемы хорошо формализованы, а, кроме того, сами эти области являются примерами высших достижений человеческого разума.
Первые программы автоматического доказательства теорем появились в 1957 г., т. е. 10 лет спустя после появления первых ЭВМ. Вначале эти программы были достаточно просты, но затем все более и более усложнялись. Уровень человека средних способностей был ими быстро превзойден, однако уровень хорошего математика не достигнут до сих пор. В процессе создания таких программ были изучены более глубоко и получили дальнейшее развитие теории доказательств и эффективных методов их построения. Более того, формальные разделы математики, например такие, как математическая логика, оказались необходимыми для таких важных приложений, как робототехника, решение задач, поиск информации в базах данных. Математика и автоматическое доказательство теорем остаются и сейчас одним из основных направлений приложения методов искусственного интеллекта.
Игры
Как и формальные системы в математике, игры, характеризующиеся конечным числом ситуаций и четко определенными правилами, являются хорошей сферой приложения дедуктивных методов. Вот почему они были и остаются до сих пор предпочтительными объектами исследований в искусственном интеллекте. В этой области уровень среднего игрока также был легко превзойден, но уровень чемпиона мира еще не достигнут. Неожиданно оказалось, что возникшие трудности были те же, что и в математике, и во многих других областях. Эти трудности связаны с тем, что, играя, человек использует весь объем знаний, который он накопил за свою жизнь. В азартных играх, подобных покеру или нардам, где большое значение имеет расчет вероятностей, программы работают великолепно.
Решение задач
Отметим, что понятие “ретиение” в данном случае используется в самом широком смысле. Речь идет скорее о постановке, анализе и представлении конкретных ситуаций, чем о самом решении. На сегодняшний день достижения в этой области носят ограниченный характер. Это обусловлено тем, что, хотя многие хорошо решаемые задачи уже решены, остается широкое поле проблем, требующих специального изучения.
Речь идет о задачах, встречающихся в повседневной жизни, в исследовании операций или в математике, для решения которых требуется изобретательность и способность к обобщению. В частности, роботы должны быть способны решать такие задачи, решение которых мы получаем непроизвольно, например встать на что-нибудь, чтобы достать некоторый предмет, или зажечь свет, чтобы лучше видеть.
Понимание естественного языка
В области "понимания естественного хзыка” исследователи интересуются анализом и генерацией текстов, их внутренним представлением, выявлением знаний, необходимых для понимания текстов, т. е. синтаксических, семантических, прагматических знаний. Эти проблемы в данной книге не рассматриваются. (См. работу: Pitrat J. (1985): Textes, ordinateurs et comprehension. Eyrolles.)
Следует отметить, что результаты и социальные последствия исследований в области искусственного интеллекта скоро приобретут важное значение. Многие научные дисциплины окажутся непосредственно взаимосвязанными: психология (человеческий мозг остается обязательным объектом исследования в искусственном интеллекте), логика, лингвистика, биология (модели передачи информации с помощью генов), информатика (самоорганизующиеся системы, поиск в базах данных, автоматическое программирование), медицина (помощь в диагностике) и особенно, может быть, теория образования и обучения во всех научных дисциплинах (уровень детализации, достигаемый в программах искусственного интеллекта, выявляет недостатки традиционного образования и делает очевидными пробелы преподавания).
Историческая справка
Электронные вычислительные машины, даже если бы они не были необходимы для создания и испытания моделей искусственного интеллекта, являются замечательным средством исследования, и именно с ними связан взлет исследований по искусственному интеллекту. В 1954 г. А. Ньюэлл задумал создать программу для игры в шахматы. К. Шеннон, отец теории информации, уже предложил пригодный для этого метод. А. Тьюринг, один из первых специалистов в области информатики, уточнил этот метод и промоделировал его вручную. В корпорации Рэнд Дж. Шоу и Г. Саймон объединились в работе по проекту Ньюэлла. Их поддержал коллектив психологов из Амстердама (руководитель А. де Гроот), который изучал стиль игры
крупных шахматистов. Язык программирования, специально созданный этой группой, предназначался для того, чтобы в машине было легко манипулировать информацией в символьной форме, работать с системой указателей и обрабатывать списки. Это был язык программирования ИПЛ1 (1956), явившийся предшественником языка Лисп (J. Mac Carthy, I960). Первой программой искусственного интеллекта стала программа uЛогик —Теоретик", предназначенная для доказательства теорем в исчислении высказываний. Ее работа была впервые продемонстрирована 9 августа 1956 г.
Программа для игры в шахматы NSS (Newell, Shaw, Simon) была создана в 1957 г. Ее структура и структура программы “Логнк ——Теоретик", представление о ''желаемых ситуациях" и "эвристиках^ (правилах, которые позволяют сделать выбор при отсутствии точных теоретических оснований) привели позже к концепции Универсального Решателя Задач. Эта программа, анализируя различия между ситуациями и конструируя цели, хорошо решает головоломки типа "Ханойская башня” или вычисляет неопределенные hhtci ралы.
Специалисты в области информатики начинают интересоваться непосредственно искусственным интеллектом, и некоторые уже пишут ставшие затем знаменитыми статьи, как, например, Дж. Маккарти, М. Минский, Г. Саймон. Создаются новые программы. Дж. Гелернтер (Gelernter, I960) показывает, что его программа доказательства теорем из школьной геометрии может работать лучше, чем ее создатель! Чтобы доказать, что треугольник АВС, у которого два угла у основания (углы при вершинах В и G) равны, является равнобедренным, программа вместо классического доказательства из учебников, заключающегося в построении высоты, опущенной из вершины А на основание,, просто применяет теорему о равенстве треугольников АВС и АСВ\ Результат очевиден...
Программа ЕРАМ (Elementary Perceiving and Memorizing Program — элементарная программа для восприятия и запоминания) задумана Е, Фейгенбаумом для моделирования психологических ситуаций.
Программы, работающие с запросами на естественном языке, были созданы давно, найдя применение при поиске информации в базах данных. Например, программа БЕЙСБОЛ (Green et al. 1961) отвечала на вопросы о результатах прошедших бейсбольных матчей, а программе СТЬЮДЕНТ (Bobrow, 1964) было доступно решение алгебраических задач, сформулированных на английском языке.
Весьма большие надежды возлагались исследователями на работы в области машинного перевода. В этой сфере продол-
жают работать большие группы исследователей. Они ориентируются прежде всего на использование синтаксического анализа и информацию, получаемую из словарей (метод ключевых сл&в). И хотя этого недостаточно, как было доказано в сообщениях Дрейфуса (Dreyfus, 1972) и Лайтхилла (Lighthill, 1973), тем не менее исследователи потратили годы до того, как осознали, что автоматический перевод не является изолированной проблемой и требует для успешного осуществления наличия такого необходимого этапа, как понимание.
Новый подход в формальной логике, основанный на приведении рассуждений к противоречию, появился в 1965 г. (Дж. Робинсон). Этот подход позволяет формализовать многие задачи и дать их машинную интерпретацию. Его успешно использовали для доказательства теорем (Слейгл, Грин, Ковальский) и верификации программ (Кинг, Уолдингер). Этот же подход послужил отправной точкой при создании оригинального языка программирования — языка Пролог, который обладает мощностью логики первого порядка и был создан А. Колмрауе- ром в 1971 г. (гл. 3).
Исследования в области искусственного интеллекта сопровождаются разработкой языков программирования новых поколений и созданием все более изощренных систем программирования. Это дает возможность при разработке программ для ЭВМ использовать наши обычные методы рассуждения и обычный словарный запас. Более того, языки программирования Лисп, Пролог, PLANNER, QA4 (называем здесь только наиболее важные из них) позволяют с помощью концепций цели и утверждения моделировать и формализовать логический вывод в решении задач; языки MACSYMA и REDUCE позволяют производить формальные манипуляции с математическими выражениями; язык TMS позволяет осуществлять управление при ненадежных сведениях и проверять соответствие последних Друг другу.
Описанные выше результаты начинают использоваться в робототехнике при управлении работой неподвижных или мобильных роботов, действующих в реальном трехмерном пространстве. При этом возникает проблема создания искусственных органов восприятия. В системах технического зрения воспринимающим устройством служит телекамера, а при распознавании зрительных образов все большую роль играют методы анализа зрительных сцеи, связанные с определением очертаний предметов (Гузман, Уолц, Уинстон), а также выявлением предметов, т. е. частично скрытых другими предметами, находящимися на первом плане. Качество решения подобных задач с тех пор все время повышается.
До 1968 г. исследователи работали в основном с отдельными 4<микропространствамип: они создавали системы, пригодные для таких специфических и ограниченных сфер приложения, как игры, евклидова геометрия, интегральное исчисление, "мир ку- биков”,обработка коротких фраз с небольшим словарным запасом. Почти во всех этих системах использовался один и тот же подход ——упрощение комбинаторики, базирующееся на уменьшении необходимого перебора альтернатив на основе здравого смысла, применения числовых функций оценивания и различных эвристик. Обычно исследователь ограничивается только этими средствами, однако к настоящему времени уже реализованы десятки систем в различных областях применения, которые по уровню начинают соперничать с человеком. Примерами таких систем могут служить так называемые *(игровые микрокомпьютеры", ориентированные на такие игры, как шахматы, игра го и некоторые азартные карточные игры. Однако экспертам предстоит судить, насколько велики достигнутые здесь успехи.
Заключение
В начале 70-х годов произошел качественный скачок в исследованиях по искусственному интеллекту. Это объясняется двумя причинами.
Во-первых, все исследователи постепенно осознали, что всем ранее созданным программам не хватает самого важного—• глубоких знаний в соответствующей области. Различие между экспертом и обыкновенным человеком состоит в том, что у эксперта имеется опыт в данной области, т. е. годами накопленные знания. Поэтому для существенного улучшения результатов работы какой-либо программы искусственного интеллекта требуется не просто усовершенствовать эвристики или какие-то числовые коэффициенты, с которыми работает программа, а напротив, необходимо использовать в ней методы логических рассуждений и накопленные в опыте знания, представленные в символьной форме.
Во-вторых, возникает конкретная проблема: как передать эти знания программе, если ее непосредственный создатель ими не обладает. Ответ ясен — сама программа должна их выделять из данных, получаемых от эксперта. Исследователи столкнулись с необходимостью снабдить системы искусственного интеллекта возможностями, которых нет в обычных языках программирования, а именно: программы искусственного интеллекта должны уметь сами собирать информацию (например, информацию такого типа: "Париж, 10 февраля, погода хоро-
шая”),хранить эту информацию и использовать только при наличии достаточных оснований. В данном случае имеется разграничение между заключением о каком-то факте и использованием этого факта. В противоположность этому обычный язык программирования позволяет выражать только выполнимые задания или указания.
Отмеченная особенность является существенно важной, так как эксперт обеспечивает систему отдельными изолированными фактами, не зная заранее, в какой момент она решит принять их во внимание.
Исследования по решению задач и пониманию естественного языка объединяет одна основная проблема ——представление знаний.
К 1970 г. было создано множество программ, основанных на этих идеях. Первая из них — программа DENDRAL. Она предназначена для порождения структурных формул химических соединений на основе информации, поступающей от масс-спектрометра. Программа была разработана в Станфорде при участии нобелевского лауреата Д. Ледерберга. Эта программа набиралась опыта в процессе собственного функционирования. Экспертом в нее было заложено много тысяч элементарных фактов, представленных в виде отдельных правил. Рассматриваемая система явилась одной из первых экспертных систем, и результаты ее работы поразительны. В настоящее время система поставляется потребителям вместе со спектрометром.
Разумеется, представляется идеальным, когда программа сама выводит используемые правила логических заключений, основываясь на полученном опыте, т. е. обучается. Именно это было реализовано группой DENDRAL в Стэнфордском исследовательском институте. В программе METADENDRAL используется несколько общих правил, позволяющих отсекать неперспективные варианты при рассмотрении возможных фрагментов структур соединений. Кроме того, в процессе работы программа сама выводит и последовательно уточняет частные правила построения структурных формул. Вначале это делается для отдельных связей химического соединения, а затем строится структура всего соединения. Это особенно удобно для малоизвестных групп химических соединений и позволяет использовать данную систему при редактировании соответствующих публикаций в международных периодических изданиях в области химии.
Терри Виноград разработал систему SHRDLU (1971), которая моделирует робота, манипулирующего кубиками. С роботом можно говорить по-английски. Система интересуется не только синтаксисом фраз, но и правильно понимает их смысл, благодаря семантическим и прагматическим знаниям о своем
"мире кубиков". Она умеет устранять двусмысленности, понимает метафоры, проверяет свои поступки и дает отчет о сЬоих действиях. В конечном счете она показывает в реальных условиях, что все это стало возможным благодаря хорошей программе, которая управляет действиями такого робота.
Число исследователей, посвятивших себя целиком искусственному интеллекту, составляет во всем мире несколько сотен, но достигнутые ими результаты касаются каждого из нас. Об этих результатах много говорят средства массовой информации, и нередко можно услышать о "роботах'1 будущего. На самом деле необходимо хорошо представлять себе, что эти исследования являются долгими и трудными, так как в отличие от искателя чудодейственных рецептов исследователи в области искусственного интеллекта пытаются постепенно воссоздать и ввести в ЭВМ опыт и знания специалистов всех областей знания.
В общем случае эта информация отсутствует и нужна длительная работа с экспертом, чтобы выявить все, что было неосознанно отобрано и запомнено им за время своего совершенствования в какой-то конкретной области деятельности. Для решения этой проблемы разработаны специальные языки и системы представления информации. Но для ее решения необходимо также собрать больше информации, чем ее содержится в каком-либо словаре или энциклопедии. Эта задача не является невыполнимой, так как уже разработаны соответствующие методы и устройства. Кроме того, она увлекательна, так как позволяет узнать много нового о самом человеке и его разуме — ибо в действительности именно человек является основным объектом изучения, и можно быть уверенным, что когда эта задача будет решена, программы искусственного интеллекта будут иметь самостоятельную ценность независимо от современных компьютеров.
Глава 2
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ
Введение
Смысл слова задача как синоним слову проблема происходит от значения греческого слова “баллейн" — бросать * (задача——"объект, брошенный впередп). Это слово на французском языке (probleme) родственно таким словам, как бал (bal), парабола (parabole), гипербола (hyperbole), символ (symbole), шабли (chablis). Помимо обычных задач, с которыми мы сталкиваемся ежедневно, имеется другой тип задач, с которыми мы знакомимся еще в начальной школе. Их существенной характеристикой является то, что они "полностью определены”, т. е. четко описаны на подходящем каждому случаю языке. Чаще всего это язык математики. Способность к более или менее глубокому пониманию этого слова, связанных с ним “правил .игры”,его неявных указаний могут привести к разделению учеников на "физиков” и <4лнриков,т. Цель второго раздела данной главы ——показать, что этот вопрос не так прост и человечество потратило тысячелетия на то, чтобы после множества попыток создать концепции, используемые сегодня, и этот процесс еще не закончен.
К сожалению, большинство задач, с которыми встречаемся мы в реальной жизни после завершения школьного образования, не являются полностью определенными. Чаще всего они описаны только частично и формулируются не нами, а кем-то другим, кто использует различные средства передачи информации, различные представления окружающей реальности: голос и интонацию, жесты, рисунки. Основным средством передачи информации при этом служит естественный язык. Однако с точки зрения решения задач он обладает четырьмя существенными недостатками: естественный язык неполон, избыточен, неоднозначен и неточен.
Естественный язык
Очевидно, что большая часть информации в обычном диалоге не выражается определенно и ясно. Обычно предполагается, что оба собеседника одинаково хорошо знают тему разговора. Однако, если эта гипотеза не подтверждается, становится возможной полностью ошибочная интерпретация его
содержания. Применение так называемых технических требований, в которых используются строгие спецификации; помогает устранить данный недостаток естественного языка.
' В естественном языке избыточность часто используется для того, чтобы отметить важность определенных моментов задачи, но при этом ничего не говорится о том, что настоящие трудности при решении задачи связаны именно с этими моментами.
Язык существенно неоднозначен (без этого нам было бы просто невозможно общаться). Однако неполнота и неоднозначность могут привести к полностью ошибочной интерпретации. Наконец, обычный язык является грамматически некорректным и парадокс состоит в том, что это самый несущественный недостаток естественного языка.
Постановка задачи
Поставить задачу означает прежде всего понять условия задачи (т. е. удалить неполноту, избыточность и неоднозначность) или, другими словами, найти соответствующее представление. На этой стадии часто используется другой тип представления, сильно отличающийся от языка,—— графическое представление. Зрительная система человека является великолепным средством сбора и обработки информации. На самом деле задача понята только тогда, когда найдено такое представление, в котором все элементы задачи представлены без избыточности и многозначности. В этом случае пространство поиска решений хорошо определено и чаще всего основная трудность решения уже выявлена. При этом прагматика и семантика задачи представлены в основном в формализованном виде. Задача становится одновременно и более абстрактной, и более строгой. В этом случае говорят о задаче в замкнутой форме или。замкнутой формулировке задачи.
Задачи в замкнутой форме
В наиболее общем виде условия задачи математически могут быть записаны следующим образом:
Найти в заданном множестве X точки х, удовлетворяющие множеству заданных ограничений К(х).
Примером такой постановки может служить сформулированная в неявном виде задача Бине: “из множества целых натуральных чисел х выбрать такие числа, которые удовлетворяют уравнению х3 + 84 = 37х”.
Примечания. 1. Задание пространства X означает в общем случае одновременное (но неявное) задание структуры X и раз-
решенных операций над X. Знание X является определяющим в исходных данных.
Первоначально полученную замкнутую формулировку задачи можно в общем случае снова перемести в другую форму, чтобы с учетом ограничений К (尤)уменьшить пространство X и улучшить таким образом лредставление задачи. Задача решается именно в процессе последовательных изменений представлений, причем последняя замкнутая формулировка дает непосредственно решение задачи.
Существуют два .основных варианта представления задачи в замкнутой форме.
Вариант 1
Пространство содержит исходное состояние SO, заданы конечное состояние S1 и конечный перечень операторов ОаЬ, кото
рые позволяют перейти от одного состояния Sa к другому со-
Здесь операторы ОаЬ имеют следующий смысл: переход из одного состояния в другое производится последовательным перемещением занумерованных фишек на пустое место. Замкнутая формулировка задачи в рассматриваемом варианте имеет вид
X = (Последовательность операторов).
Решение 尤 есть на самом деле определенная последовательность
尤= (0аЬ, О&с, ..., 0/и, Ouv), где Sa = SO, Su = SI.
Множество ограничений К(尤)выражается в правиле следования операторов, причем конечное состояние для оператора является начальным состоянием для последующего.
Вариант 2
Здесь речь идет о классической формулировке задачи на доказательство в математике:
Получить C(x)t исходя из Н (х).
Примером задачи в такой постановке является следующая задача:
Показать, что для всех п, nwN
Этот вариант сводится к предыдущему, если положить SO = =Н(х) и S1 = C(%). Существенное отличие состоит, однако, в том, что операторы, перехода от одного состояния к другому не заданы. Искусство математика как раз и заключается в том, чтобы отыскать те операторы, которые окажутся полезными для данного условия задачи. Часто конечное состояние С(х) вовсе не задано. Тогда наша задача формулируется следующим образом: "Рассчитать X 戸” и становится совсем неопределенной, так как критерий остановки процесса решения оказывается субъективным. Обычно ожидается, что в процессе решения задачи результатом будет выражение <4более простое11, чем начальное. Однако простота выражения также не является строго определенным понятием с математической точки зрения.
Общий подход к решению задачи
Подход человека к решению задачи включает семь основных этапов:
Выяснение смысла условий задачи.
Первые выводы из условий задачи.
Проигрывание ситуации.
Обдумывание.
Выбор наилучшего представления ——поиск замкнутой формулировки задачи.
Частичное (возврат к этапу 2) или общее решение задачи.
Проверка и обобщение решения.
Этап 1 существенно зависит от наших органов восприятия (слуха и зрения). Более того, поскольку человек обычно обладает ограниченными способностями к немедленному запоминанию, необходимо длительное осмысление условий задачи. На этапе 2 используются накопленные человеком знания, чтобы, во-первых, восполнить недостающую в условиях задачи информацию, и во-вторых, заменить длинные словесные фразы, содержащиеся в условиях задачи, на более подходящие и удобные для преобразований представления (такие, например, как рисунки, графы, алгебраические выражения).
Отметим, что уже начиная с 1962 г. простые программы, основанные на использовании ключевых слов, были способны ре-
шать несложные задачи из области физической кинетики (Bobrow, 1962) и теории вероятностей (Gelb, 1964).
Этап 3 является по крайней мере для человека основополагающим. Речь идет прежде всего о том, чтобы, возвращаясь к этапам 1 и 2, удостовериться, что ничто не пропущено и нет существенной ошибки в интерпретации условий задачи. Во вторую очередь речь идет о том, чтобы определить, в чем же состоит сложность задачи.
Этап 4 также является основным. На этом этапе необходимо очистить нашу память от "фактов-паразитов”, связанных с первоначальной формулировкой задачи, и иайти лучшие операторы для новой замкнутой формулировки задачи. Отметим, что на этом этапе нередко практикуется, следующий прием: на время отвлекаются от задачи и занимаются чем-нибудь другим. Мы по своей природе настолько программируемы, что забывание является часто единственным способом автоматически прогнать из памяти старые идеи и создать условия для возникновения нб'вых. ^Отвлечение'" от задачи является прекрасным методом ее решения. .
На этапе 5 достигается формулировка задачи в замкнутой форме, т. е. ей придается полный, однозначный и безизбыточ- ный вид. Трудность решения задачи на этом этапе можно оценить более точно, исходя из размера пространства поиска X, сложности. ограничений ^(x) и числа разрешенных операций. На этапе 6 почти всегда удается получить наилучшее представление благодаря малому пространству поиска. После того как новая замкнутая формулировка задачи получена, цикл решения можно повторить снова, начиная с этапа 2.
На этапе 7 процесс решения задачи заканчивается. Затем полезно вернуться к первому этапу, чтобы обсудить решение с заказчиком, удостовериться в адекватности решения исходной формулировке, проверить, как ведет себя полученное решение в предельных точках, а также оценить степень влияния существенных входных параметров на результат. Интересно исследовать общность использованного подхода, рассмотрев такие вопросы: 1
Можно ли обобщить данную задачу, сохранив используемый метод решения?
Существуют ли другие задачи, к которым может быть успешно применен тот 施е метод решения?
Существуют ли другие методы решения для той же задачи?
Проиллюстрируем проблемы, типичные для первого и второго этапов решения задачи, рассмотрев ситуации, представленные на рис. 2.1—24
Пример с фигурой, изображенной на рис. 2.1, хорошо известен. Изображенная здесь фигура может рассматриваться какПример с фигурой, изображенной на рис. 2.1, хорошо известен. Изображенная здесь фигура может рассматриваться какРис. 2.3.Рис. 2.3.Рис. 2.1.
Пример с фигурой, изображенной на рис. 2.1, хорошо известен. Изображенная здесь фигура может рассматриваться как
Пример с фигурой, изображенной на рис. 2.1, хорошо известен. Изображенная здесь фигура может рассматриваться как
Рис. 2.3.
Рис. 2.3.
Рис. 2.4.Рис. 2.4.куб с передней гранью, расположенной внизу слева, или же, наоборот, как куб, в качестве передней грани которого рассматривается грань, расположенная справа вверху (в предыдущем рассмотрении она была задней). Этот пример доказывает, что наша зрительная система постоянно осуществляет интерпретацию изображения. Это становится более очевидным при рассмотрении рис. 2.2. Поворачивая рисунок, можно попеременно видеть в нем то дом, то пляжную кабинку, то брусок, срезанный “в угол” с одного конца. На рис. 2.3 требуется провести
Рис. 2.4.
Рис. 2.4.
через каждую из 9 точек ломаную линию, не отрывая карандаша от бумаги так, чтобы получилось не более 4 линейных фрагментов. Если при решении этой задачи пытаются провести ломаную прямую внутри квадрата, состоящего из девяти точек, то решения найти невозможно. Однако приведенная формулировка задачи на самом деле не накладывает такого ограничения. (Решение задачи показано на рис. 2.5.) Что касается задачи на рис. 2.4, где требуется построить 4 равновеликих треугольника, используя для этого 6 спичек, то 2 лишних ограничения, которые мы, как правило, подразумеваем, и которых нет в условиях задачи, должны быть сняты, чтобы отыскать решения. Другими словами, спички могут пересекаться и решение не обязательно должно быть плоским. Теперь легко находятся два
решения задачи: одно в плоскости (рис. 2.6), другое решение — объемное (рис. 2.7).
Следующий пример касается задачи, сформулированной на обычном разговорном языке.
“Один жестокий король заточил в подземелье молодую девушку за то, что она не захотела выйти за него замуж. Истек
год заключения, но девушка не отказалась от своего решения. Тогда король приказал вывести ее во двор замка и предложил ей следующее. Король выберет среди камешков двора два (черный и белый) и спрячет один в правой руке, а другой в левой. Если девушка выберет руку, в которой окажется белый камешек, она будет освобождена, но если в руке окажется черный камешек, девушка выйдет замуж за короля.
Девушка приняла эти условия с большой тревогой, которая переросла в ужас, когда девушка заметила., что король поднял с земли только черные камешки! Как же ей поступить?"
При формальном подходе задача, поставленная таким образом, не имеет решения. Однако на самом деле нарушение королем условия задачи о выборе из двух камешков разного цвета обернулось против него. Девушка выхватила один камешек из рук короля и как бы нечаянно уронила его на землю, где его нельзя было отличить от других таких же камней. “Ах, извините меня, — воскликнула девушка, — но теперь по цвету того камешка, который остался у Вас, Ваше Величество, мы определим цвет того камешка, что решит мою судьбу.” И так как это был черный камешек, то девушка стала свободной.
Эти простые примеры показывают, что первый и второй этапы решения задачи в общем случае частично перекрываются. Отсюда, в частности, вытекает, что задача в том виде, как • она "понята”,не имеет решения, и только отыскивая решение, выделяют истинную задачу, устраняя лишние ограничения.
Другой, но относительно часто встречающийся случай, когда мы не можем в явном виде представить условия задачи, относится к решениям типа “все или ничего". В этом случае решение возникает мгновенно после внутренней подсознательной работы. В качестве примера приведем следующую задачу.
^Допустим Вы одни в пустой комнате, где имеются два идентичных железных бруска, один из которых намагничен, а другой一 нет. Необходимо определить, какой из брусков намагничен, Бруски тяжелые, твердые, прочные. Ничего другого у Вас не имеется”.
Такое условие является единственным в своем роде. Мы обезоружены. Число операторов, т. е. возможных действий,
Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.S + b), используемые при доказатель-S + b), используемые при доказатель-
Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.
Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.
S + b), используемые при доказатель-
S + b), используемые при доказатель-
крайне невелико. Велико искушение опустить руки и признать, что задача не имеет решения. Поразмышляйте еще немного прежде, чем прочтете следующее: решение задачи существует, и оно очень простое.
Ситуация несколько похожа на предыдущую. Проблема в том, чтобы "разорвать*' симметрию. Но в данном случае решение должно* основываться на знании физики и на том, что единственными предметами, доступными для манипуляций, являются эти два бруска. Магнитное притяжение проявляется совершенно симметрично в отношении обоих брусков, за исключением единственного места, а именно середины намагниченного бруска. Этот участок не намагничен. Достаточно приставить конец одного из брусков, например бруска А, к середине другого бруска В, и если притяжения не происходит, намагничен брусок В, а если бруски притягиваются, намагничен брусок Л.
Третий этап, связанный с проигрыванием ситуации, является наиболее важным в начале решения. Прежде всего покажем на
очень простом примере, как уже этот этап может помочь найти интересные решения.
Например, как доказать теорему Пифагора, используя линейку и экер (прямоугольный чертежный треугольник)? Естественной является мысль рассматривать экер в качестве прямоугольного треугольника из теоремы, где а и b — его катеты, а с ——гипотенуза. Чтобы возникла величина (а + Ь) на чертеже, надо расположить экер вдоль линейки двумя различными способами. Полученные в результате построения два квадрата равной площади со стороной (а + Ь) показаны на рис. 2.8. Площадь S большого квадрата по построению равна (а + Ь)2, и если Т есть площадь треугольника, то площадь S правого большого квадрата равна 4T + с2, а площадь S равного ему левого квадрата равна 4r + а2 + Ь2, что доказывает теорему.
Пример полного решения задачи
Рассмотрим пример, в котором охватывается весь процесс решения от первых этапов до получения замкнутой формулировки задачи и ее последующего решения.
. "Пусть имеется шахматная доска, каждая сторона которой содержит 100 клеток. Все 10000 полей доски заняты черными шашками. В нашем случае разрешенными ходами являются ^модификации", т. е. операции замены в каком-то ряду (строке или столбце) всех шашек ряда черного цвета на белые и белых на черные. Спрашивается, можно ли за конечное число хоДов получить 1990 белых шашек, начиная с позиции, когда все шашки были черными?п
На обычном языке это условие задачи легко формулируется и понимается. Однако, во-первых, ответ на поставленный вопрос не возникает сам по себе, а во-вторых, "проигрывание си- туации'1 затруднительно, так как доска размером 100X10。не является обычной. Чтобы уловить смысл задачи и сделать некоторые первоначальные заключения, т. е. создать очевидные представления условий, естественно рассмотреть задачу с уменьшенными параметрами, например использовать доску размером 4X 4 или в качестве доски использовать абстрактный квадрат со стороной неопределенной длины.
Первый вывод заключается в том, что как только сделан первый ход, то тут же появляются и белые шашки. Этот общий вывод устраняет странность, бросающуюся в глаза при знакомстве с условиями задачи. Дело в том, что в них говорится о белых шашках, хотя речь вести о них имеет смысл, только начиная со второго хода. Другие заключения появляются после того, как будут проведены несколько партий на модели доски.
Порядок следования этих заключений-выводов определяется индивидуальными особенностями человека, решающего задачу.
Если дважды подряд модифицируют один и тот же ряд, исходная позиция не изменяется.
торая и не изменит цвета приторая и не изменит цвета приРис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.Рис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.Порядок ходов при модификациях безразличен. Это определяется тем, что разные строки, как и столбцы, не имеют между собой общих шашек. У пересекающихся строки L. и столбца С; имеется только одна общая шашка на их пересечении, ко- "одновременной" модификации строки и столбца, тогда как остальные шашки этих строки и столбца изменят цвет на противоположный.
торая и не изменит цвета при
торая и не изменит цвета при
Рис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.
Рис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.
Отметим, что данный вывод о независимости результата от порядка ходов-модификаций, являясь практически очевидным для взрослых, не является таковым для детей, Он соответствует четвертой стадии развития интеллекта (по Пиаже) и не формируется обычно ранее десятилетнего возраста.
После того как сделан ход, номер ряда не является существенным, так как в задаче важным является лишь число шашек того или иного цвета, а не место их расположения на доске.
На основании двух первых заключений можно сделать вывод, что порядок ходов в задаче не является существенным и результирующее состояние ряда то же при 2п Ч- 1 ходах, что и при одном ходе-модификации. Аналогичным образом, состояние ряда одинаково как при 2п ходах, так и при 0 ходах.
На основании третьего вывода можно строки, которые были модифицированы один раз, перенести в верхнюю часть доски, а столбцы, которые также были модифицированы один раз, перенести в левую часть доски. Таким образом, доска окажется 'разбита на четыре зоны, которые показаны на рис. 2.9. Прямоугольные зоны на доске слева вверху и справа внизу заполнены черными шашками, причем одни из них перевернуты дважды, а другие ни разу. Прямоугольные зоны слева внизу и справа вверху заполнены белыми шашками, причем они все перевернуты по одному разу.
Число строк L в верхних и число столбцов С в левых прямоугольниках соответствуют рядам шашек, модифицированных один раз.
Представленная на доске позиция обладает симметрией относительно строк и столбцов. Если (厶,С)—решение задачи, то и (С, L), полученное вращением позиции на 90°, также будет решением.
Рассматриваемая позиция обладает еще и центральной симметрией. Если (厶,С) ——решение, то и (100 ——С, 100 —— 厶) также будет решением задачи. Это свойство уже менее очевидно, чем предыдущие.
Примечание. Ниже приведены некоторые рассуждения, которые не являются доказательством. В данном случае формализация условий задачи затруднена, так как описанные на обычном языке они носят неполный и неоднозначный характер. Именно поэтому необходим переход (и это общий необходимый этап для всех задач) к замкнутой форме условий задачи, где все четко определено н согласовано.
Теперь сформулировать эти условия уже легко. В задаче величины 乙 и С являются целочисленными. С их помощью подсчитывается число модифицированных рядов. Так число белых шашек составит: вверху — L X (Ю0 — С) и внизу — С X X (100 ——L). В результате замкнутую формулировку задачи можно записать в виде
100 (Л + С) — 2LC = 1990. (2.1)
Очевидно, что никогда нельзя получить нечетное число белых шашек. На этом этапе для получения нового, более общего представления о задаче целесообразно ее несколько обобщить. Ее можно сформулировать так: путь р — середина доски и п — число, равное половине заданного числа белых шашек. Тогда, если разделить на 2 обе части равенства (2.1) и использовать для записи обозначения р н м, получим
p(L + C) — LC = n. (2.2)
Итак, во-первых, трудности решения задачи связаны с целочисленным характером уравнения (2.2); во-вторых, равенство (2.2) напоминает уравнение конуса: (ху ——ах — by ——с = 0); в-третьих, решение этого уравнения затрудняется тем, что в него входят как линейные члены р(Л + С), так и квадратичные —LC、
Оба последних заключения по поводу уравнения (2.2) можно резюмировать следующим образом. Так как конус обладает двумя осями симметрии, используем этот факт и сделаем равенство (2.2) более компактным и удобным для последующего применения. В этом случае можно исключить линейный член из равенства (2.2). Сделаем замену переменных, положив
厶= / +。,С = с +。. В результате получим
р (I -\- с -\~ 2а) — (/ + о) (с + а)=几,
2ap + р (/ + с) — а (/ + с) ■— 1с — а? = п.
Положив а — pt добиваемся того, что в равенстве останутся только квадратичные члены. Такая замена, вообще говоря, не является произвольной, так как на самом деле она отражает тот факт, что распределение шашек по цвету на доске является симметричным по отношению к центру доски. Теперь замкнутая формулировка условий задачи приобретает новую форму
1с = р2- п,(2.3)
где / = L — р, с — С — р.
Выражение (2.3) определяет представление условий задачи в трехмерном пространстве, причем слева и справа от знака равенства находятся целые числа. Целое число, стоящее в правой части, на самом деле известно:
户一孔=50 * 50 — 1990/2 = 1505.
Для существования решения необходимо, чтобы число 1505 было разложимо на простые множители, сопоставимые с размерами доски. Итак, мы имеем 1505 = 5 X 7 X 43, а так как р = —50, то —50 W / W +50, —50 W с W +50.
В данном случае существуют два решения, удовлетворяющих этим условиям. Первое решение
/ = 5X7, с = 43,
厶= 85,С = 93 (л наоборот).
Второе решение
/ = —35, с = —43,
厶=15, С = 7.
Таким образом, имеются два варианта получения на доске 1990 белых шашек.
С другой стороны, существуют такие числа для белых шашек, получение которых невозможно. Например, если 孔=1984, имеем р2 — п = 2500 — 992 = 2X2X 13 Х29, и тогда одна из двух величин ——либо /, либо с ——превышает число 50, что недопустимо ни для одного решения задачи.
Наконец, имеется особый случай, когда либо 厶 либо с равно нулю, т. е.厶 или С равно 50. Это вырожденный случай, и каково бы ни было здесь значение другой неизвестной, единственное число, которое удовлетворяет условиям задачи, будет п — ="2 = 2500.
Все задачи этого класса могут быть решены одни众 и тем же методом (включая сюда и задачи не только на квадратной, но и на прямоугольной доске). Что касается других методов решения задач с условиями типа (2.1), т. е. в целых числах, то мы найдем их в гл. 3 и 6.
Следующий раздел главы взят из книги Д. Пойа “Как решать задачу” (George Poiya, How to solve it, 1956).
Что нужно сделать, чтобы решить задачу?
. Понять задачу.
Что является неизвестным? Каковы исходные да'нные? Каковы условия задачи?
Можно ли удовлетворить условиям задачи? Достаточно ли заданных условий для отыскания неизвестной? Являются ли условия задачи недостаточными, избыточными или противоречивыми?
Сделайте рисунок. Введите соответствующие обозначения.
Выделите отдельные части условия задачи. Можете ли вы их сформулировать?
2 Составить план решения.
Определите взаимосвязь между исходными данными и неизвестной.
Возможно, вам следует рассмотреть какие-то дополнительные задачи, если не удается непосредственно найти эту взаимосвязь.
В конце концов вы должны получить план решения.
Вы уже встречали эту задачу? Или, может быть, вы встречали похожую задачу?.
Может быть, вы знаете задачу, связанную с этой? Известна ли вам какая-нибудь теорема, которая может быть полезной?
Рассмотрите искомое и попытайтесь вспомнить задачу, которая вам уже известна и в которой отыскивалось то же сй- мое или нечто подобное.
Перед вами задача, которая связана с рассматриваемой и которую вы уже решали. Можете ли вы использовать результаты, полученные при ее решении? Можете ли вы воспользоваться использованным методом решения? Может быть, следует ввести какой-то дополнительный элемент, чтобы воспользоваться этим методом?..
Могли бы вы сформулировать задачу по-другому? Смогли бы вы дать еще одну формулировку задачи? Обратитесь мысленно к определениям.'
Если вы не можете решить задачу, которая вам предложена, попытайтесь решить задачу, связанную с ней. Не можете ли вы припомнить задачу, которая была бы связана с вашей, но была бы разрешима? Более общая или более частная задача или аналогичная вашей? Смогли бы вы решить часть задачи? Оставьте только часть условий, необходимых для другой части задачи. В какой мере может быть теперь определена неизвестная, как можно ею варьировать? Можете ли вы извлечь из данных что-то полезное? Не приходят ли вам на ум другие данные, которые могли бы помочь определить неизвестную? Можете ли вы изменить неизвестную, или исходные данные, или и то и другое, если это необходимо, так, чтобы новая неизвестная и новые данные лучше соответствовали друг другу?
Вы использовали все исходные данные? Вы использовали условия задачи в полном объеме? Вы учли все существенные стороны задачи?
Выполнить план.
• Выполняя принятый план решения, проверяйте каждый его этап, каждый элемент последовательно один за другим. Очевидно ли вам, что этот элемент плана корректен? Можете ли вы доказать его корректность?
Проверить полученное решение.
Можете ли вы проверить полученный результат? Можете ли вы проверить проведенные рассуждения?
Можете ли вы получить результат, отличающийся от уже полученного? Можете ли вы это понять с первого взгляда?
Можете ли вы воспользоваться полученным результатом или методом решения для какой-нибудь другой задачи?
Из истории развития и преподавания математики
Собственно математике предшествует длительная предыстория порядка четырех тысяч лет. Высшие животные и совсем маленькие дети воспринимают в окружающем мире две основные абстрактные сущности: число и форму. Таким образом, арифметика и геометрия длительное время были двумя отдельными фундаментальными науками. В древности различение чисел человеком не было вполне ясным и точным. В первобытных обществах человек не различал две совокупности, содержащие почти равные количества элементов. Он едва умел считать: один, два, много. В латыни понятие “много” обозначается словом tres, продолжающем и сейчас жить во французском языке в виде слова trois (три)!
Звездные миры были замечены наблюдателями, принадлежавшими к самым древним цивилизациям, которые постоянно наблюдали скопления звезд на небе. Мы знаем также, что шумеры Урука и Ниппура еще три тысячи лет тому назад уже пользовались лунным календарем. Им пришла идея представлять числа с помощью символов. При этом Луна обозначала единицу, а другие небесные объекты ——последующие числа. Необходимость делать расчеты и затем записывать их результаты привела к использованию более удобных обозначений. Вертикальной или наклонной чертой стали обозначать единицу в Финикии, Сирии, Древней Греции, Южной Аравии, Индии. Совокупности из пяти, десяти или двадцати единиц стали обозначать специальными символами, образованными от их названий. Все это были аддитивные системы счисления, т. е. закодированное ими число представляло собой сумму записанных символов.
В Вавилонии была изобретена своя 60-ричная система счисления. Ее основные символы имели значения 1, 10, 60, затем 600, 3600, 36 000 и т. д. Эта система используется и в наши дни, в. .частности в астрономии для определения мер времени и угловых мер. Многие народы использовали идею представления чисел при помощи букв своего алфавита. Стали придавать особый смысл определенным числам, что породило кабалистические вычисления. Число, соответствующее какой-либо букве, становится функцией положения буквы в слове. Стала ощущаться необходимость в обозначении понятия “ничего”. Происхождение нуля до сего времени остается неясным. Можно считать установленным, что в индийскиих текстах шестого века нуль обозначался точкой. В астрономических записях древних греков нуль обозначался буквой О, являвшейся начальной буквой греческого слова ovSev, обозначавшего “ничего".
Современное написание цифр нашей десятичной системы счисления пришло к нам из Западной Индии через арабов. Только в 13 в. эти цифры проникли в Италию через флорентийских купцов. Их использование стало повсеместным в 15 в. Следы истории их появления остались в словах **цифраъ и <(зеро” (нуль), которые происходят от арабского слова sifr (zero).
С изобретением книгопечатания (1440 г.) цифры принимают окончательную форму. Использование запятой в вещественных числах распространяется только в XVIII в. Четыре арифметических действия знали еще египтяне, но их представление часто было очень неудобным. Так, смежное расположение чисел обозначает сложение, а греческая буква 巾 — вычитание. Переписчики в средние века выработали окончательную форму
знака + из слова et (и). Знак — появился из обычая отделять в счетах чистый вес от веса тары с помощью горизонтальной черты. Отметим, однако, что Марсель Коэн в своей интересной книге “Великое изобретение— письменность и ее эволюция** пишет, что знаки + и ——появились как сокращения слов plus (плюс) и minus (минус). Современные знаки умножения и деления были введены в 17 в. Равенство обозначалось в Европе 17 в. знаком со, который использовался астрономами для обозначения созвездия Тельца. Одновременно для той же цели использовалось латинское слово aequalis. Оно сначала было укорочено до ае, а затем превратилось в знак =. Тогда символом 8 стали обозначать число 1000. Около 1660 г. Дж. Уоллес стал обозначать этим знаком бесконечность.
Мы рассказываем обо всем этом по двум причинам. Во-первых, чтобы показать, что человечество потратило многие тысячи лет для “приручения” числа, а наука и вовсе развивается только несколько веков. Математика возникла, не в один день, и ее детство еще недалеко от нас. Что же удивительного в том, если у какого-то школьника встречаются трудности в овладении предметом, когда человечество затратило так много времени, чтобы выработать представление чисел и операций.
Во-вторых, вопрос о представлении конкретных или абстрактных объектов является центральным для искусственного интеллекта. Дать представление чего-то означает прежде всего умение выделить из общей массы объект, выявить его важность и практическую ценность. Отсюда следует, что его свойства должны быть определены и переведены в форму, удобную для манипулирования с ним. Таким образом, дать представление означает понять. Если сегодня биология начинает объяснять представление наследственной информации в генах живых существ, то нейрологи и психологи еще далеки от того, чтобы дать объяснение тому, каким образом в нашем мозге закодированы и организованы наши знания. Не исключено, что исследования в области искусственного интеллекта дадут какие-то ответы на этот вопрос.
Уже во времена Евклида (третий век до нашей эры) геометры умели обозначать абстрактные объекты с помощью букв. Папус Александрийский (третий век), а затем Диофант (четвертый век) постепенно вводят подобные обозначения для неизвестных чисел. Франсуа Виет, докладчик в Государственном совете при Генрихе IV, в своем трактате uИскусство анализа" первым ввел систематическое использование такого буквенного представления и таким образом является праотцом современной алгебры. В сочинениях Виета встречаются, например, такие вы-
ражения:
Н in D \
« —尸 in Q,aequebitur Л 1十Q ,
Первые буквы алфавита (А и D) заменяют неизвестные величины, слово in стоит вместо знака умножения, линейная форма записи выражений еще неизвестна. В современных обозначениях это выражение выглядит так
ау 一 by匕* уау 一 by匕* у=х.=х.
ау 一 by匕* у
ау 一 by匕* у
=х.
=х.
Вист уже умеет оперировать с такими выражениями. Например, он выводит из предыдущего выражения следующее: “(齐 + D) так относится к (Н — F), как D к 4‘. Это дает ему возможность решать уравнения. .
Декарт в XVII в. нормализует и расширяет этот формализм. Он ввел в обращение наши знаки операций +,——,*, / и предложил употреблять последние буквы алфавита для обозначения неизвестных. Символ % пришел к нам от арабов (от слова says, обозначающего какой-то предмет, нечто). Именно Декарт отказался от использования классических обозначений, пришедших из греческого и древнееврейского письма, в пользу современных обозначений. Наконец, Декарт объединил науки о числах и фигурах, заложив основы аналитической геометрии, и тем самым установил глубокое единство математики, которое было еще углублено в последующие века.
Индексы и показатели появляются довольно поздно. Так Эйлер (1707——1783) использует выражение х * х * х для х3, и только Эварист Галуа (1811——1832) первым начинает пользоваться индексами. Но еще Жордан и затем сам Гильберт в начале нашего века нс приняли этого новшества и продолжали писать в тяжелой и неудобочитаемой манере, когда порядок букв в алфавите играл роль неявной индексации. Функциональные символы были введены Лейбницем и Иоганном Бернулли. Знак суммирования Z бььл введен Эйлером.
Введение обозначений для функций проходило не без трудностей, причем единогласия в этой области не имеется еще и 乃о сих пор. Постоянно смешиваются сама функция / и ее значение в точке /(х). Часто пишут Т + a(f(x)) вместо Т + а([). Производная почти- всегда смешивается с ее значением. Эта ошибка вызывается принятыми обозначениями. Еще более во
пиющими являются такие ошибки в случае частных производных. Проблема обозначений усложняется,' когда требуется
рассматривать выражение как функцию от одной из его составляющих. Так, в физике или механике пишут(/(/), рассматривая у как функцию времени, а затем записывают у(х), рассматривая ее как функцию положения, и наконец, просто у как функцию вообще.
Такие обозначения являются неприемлемыми из-за их непоследовательности и сложности для начинающего. Но, с другой стороны, проблема усложняется тем, что невозможно ввести свой символ для каждой функциональной зависимости.
Черч и Карри в 1950 г. предложили Х-запись: символы Хх перед каким-либо выражением трансформируют его в функцию от х. Таким образом линейная функция от х записывается в виде Хх(ах + 6). Это представляет собой весьма элегантное решение проблемы. Здесь лежит начало языка программирования Лисп, созданного Маккарти в 1960 г. Символическая логика и язык теории множеств возникают очень поздно. В 1891 г. Пеано ввел знак принадлежности 三.Включение обозначается как ос или V, и затем позже Хаусдорф вводит в 1920 г. обозначение и. Именно это обозначение сегодня является предпочтительным. После различных попыток ввести собственные обозначения сегодня снова наиболее распространенными для обозначения пересечения, объединения и импликации являются обозначения Пеано П» U, 口・ Последний символ является обратным к символу включения. Так, если Е и 尸,,то (х 三 £) п 口(%三尸).Гильберт пользуется стрелкой для обозначения импликации. Такое обозначение совпадает с обозначением отображения в теории множеств и со знаком переписывания. Школа Бурбаки предпочитает для импликации знак =>, который широко используется сегодня. Что касается нас, то мы предпочитаем, как и логики, пользоваться обозначениями Пеано.
Чтобы сделать наглядными логические рассуждения, Эйлер использовал идею диаграмм типа кругов, отражающих множества и получивших название диаграмм Венна (1834—1923). Льюис Кэрролл (1882—1898) предложил другой тип диаграмм, которые сохраняли свойства сопряженности между множеством и его дополнением. Это нашло применение в булевой алгебре.
Под влиянием символов U и f] логические ИЛИ и И стали обозначаться соответственно V и А.
Отрицание иногда обозначается знаком ——,иногда чертой сверху или знаком 〜 (тильда). Так как все эти знаки имеют и другое значение, то Хейтинж предложил в 1937 г. использовать для обозначения отрицания знак П, который принят в этой книге.
Квантор существования 3 был также введен Пеано. Рассел и Уайтхед (1903) дополнительно ввели еще квантор всеобщно-
сти, для обозначения которого они просто заключали переменную в скобки. Только гораздо позже (в 1920 г.) был введен для него знак V. Г. Фреге (1848——1925) ввел знак утверждения, для которого он использовал обозначение Н. Так, выражение означает “по /Г'.
Группа французских математиков, публикующая свои труды в виде монографий "Элементы математики" под псевдонимом Никола Бурбаки, как бы "узаконила” использование значительного числа таких символов и ввела в свою очередь еще ряд новых символов (среди них уже упоминавшийся знак 今,обозначение С для дополнения множества и многочисленные обозначения в теории групп). Эти монографии, переведенные на многие языки мира, сделали многое для стабилизации обозначений, манеры и стиля современной математики. Однако постепенно формальный язык стал сильно отличаться от обычного языка. Там, где в обычном языке встречаются "разделители" (союзы) “и”,“или”, “так как", математик предпочитает использовать такие группирующие символы, как круглые, квадратные или фигурные скобки и горизонтальные черточки. Символ равенства, обозначающий идентичность двух объектов, предпочитают использовать в качестве разделителя. В результате между обычным языком и языком математики образовалось определенное смешение способов выражения. Поэтому очень наивно выглядят некоторые математические выражения, например “для всякого у — ах + Ьп, в котором символ у может иметь двоякий смысл. На самом деле это выражение следовало бы записать так: Vy, у = ах + bt тогда как предыдущую запись, строго говоря, надо прочитать так: каково бы ни было равенство типа у = ах -\- Ь.
На практике часто путают обычное значение знака =. описанное выше, и его роль в качестве оператора присваивания. Таким рбразом, идентичность, выражаемая с помощью знака равенства, например такая, как (а ——Ь)2 = а2 ——2аЬ + 挑,является таким же правилом переписывания, как % + 0f 0 или х-1 х. Знак = служит также для задания определений, например в выражении tgx = sinx/cosx, и, кроме того, еще и для ввода сокращенных обозначений. Например, положим и = =(ах + 匕)/(炉 + 1) или а/, х" = (— & ± VА)/2, где правая часть используется в виде самостоятельного блока.
Другой тип неопределенности, присущей обычному языку, встречается и в математическом языке. Например, когда определяют какую-то группу G, вначале постулируют, что для всех g н3 G существует е, такое, что ge — g и eg == g. И затем продолжают: Vg, gwG, mg? g-i eG, gfg = e, ggT=e. Тут, однако, имеется некоторая неоднозначность математического
языка, связанная с тем, что переменная с, существование которой определяется вначале, не имеет никакого отношения к переменной е из второй половины определения, хотя для их обозначения использована одна и та же буква е. Такого рода неоднозначности не могут не вызывать определенных затруднений у тех, кто разрабатывает системы автоматического доказательства теорем.
В связи со сказанным выше любой перевод с обычного языка на язык математики должен производиться с осторожностью. Например, во фразе на французском языке uUn triangle rectangle est un triangle qui a un angle droit" (Прямоугольный треугольник ——это треугольник, в котором один угол прямой), трижды встречается неопределенный артикль un (всочетаниях со словами ^прямоугольный треугольник", “треугольник" и “прямой угол''). Однако если в первом случае артикль имеет смысл универсальности (любой прямоугольный треугольник), то в третьем случае он употреблен в смысле существования (т. е. иимеется, существует именно прямой угол'5). Глаголы “быть, есть, является” служат иногда признаком того, что вводится какое-то определение, иногда признаком какого-то свойства, а иногда признаком принадлежности.
Союз “или” используется иногда в качестве “или исключительно" (например, белое или черное), а иногда как “или вклю- читeльнo^^ (например, много или мало), что соответствует двум различным понятиям в математике.
Уже на ранних этапах обучения детям говорят о таких псев- доматематичсских выражениях, как: "два на два дает четыре51 и “больше на меньше даст меньше”. Этот тип необъясняемого рискованного приравнивания часто вызывает у детей непонимание, из которого потом возникают неожиданные следствия. Например, учитель спрашивает: tlКакое целое следует после /г?” И ученик отвечает: “О”. “Пусть целое q'\ uHon, — прерывает себя ученик, — и^ не есть целое число, это буква”... Или, например, такое упражнение: «Укажите множество значений х алфавита, таких, что х есть гласная'*. Но каков же должен быть ответ? Что это множество пустое, так как х есть согласная?..
Таким образом, перевод условий задачи с естественного языка на формализованный является непростой задачей. Этот первый этап решения присутствует в каждой научной дисциплине: алгебре, геометрии, математическом анализе, химии, физике. Специалисты по исследованию операций, которым постоянно приходится описывать на формализованном языке сложные ситуации, назвали этот процесс моделированием.
Однако и язык математики не лишен условностей, связанных с тем, что часть информации не задается в явном виде, а
подразумевается. Значение символов часто неявно содержится в самих символах. Например, “неизвестные” обозначаются буквами х, у, z; целые величины обозначаются обычно буквами I, /,电 厶 m, и, р, q; для вещественных величин используются буквы г, s, /; угловые величины обозначаются буквами греческого алфавита а, р, 0, Ф; для функций используются символы 力 g,九;множества обозначаются прописными буквами. Некоторые буквы, такие, как е, g, i, л, зарезервированы для обозначения специальных величин. Кроме того, язык математики воспринял и некоторые недостатки естественного языка. Так, например, 'Труппа Ли” не имеет отношения к группам. Поэтому учащийся должен уметь читать между строк и понимать с полуслова.
Теперь посмотрим, что требуется от учащегося, и какова история преподавания математики.
Греческие “山колы” времен Сократа (пятый век до нашей эры), Платона и Аристотеля (четвертый век до нашей эры), Евклида (третий век до нашей эры) справедливо знамениты. иЭлементы геометрии" Евклида долго оставались образцом строгости и ясности изложения. Около 290 г. Папус Александрийский опубликовал свою ^Математическую коллекцию", а около 370 г. Диофант опубликовал свою “Арифметику". После оригинальных и важных достижений древних греков Европа пережила долгий период застоя точных наук. И только итальянское Возрождение дало новый толчок как исследованиям, так и преподаванию наук.
До этой эпохи занятия математикой были прерогативой элиты. Ею занимались в философских кружках и светских салонах. Впрочем именно учитель философии преподавал математику в колледжах. Кроме того, техникой счета занимались также в некоторых специальных учебных заведениях ——школах архитектуры, астрономии, навигации, военного искусства.
Великая французская революция, осуществив реформу школы, поставила преподавание точных наук на тот уровень, который в основном сохранился до наших дней. Тогда же была введена и метрическая система. В 1794 г. Лаканаль и Монж основали Политехническую школу. В 1808 г. в Сорбонне была организована кафедра трансцендентальной математики. (Сор- ^боина с момента своего основания в 1227 г. Робером де Сорбо- ном была теологическим колледжем.) С тех пор учебные программы лицеев и колледжей рассчитаны на тех, кто претендует на поступление в Политехническую школу и Парижский университет.
Итак, учащимся преподают математику по программе, а не учат математическим навыкам и умениям. Очень малое число авторов интересуется феноменом открытия, методами
“активного" обучения, индуктивными рассуждениями, изучением способов мышления, эвристикой в педагогике (здесь речь идет о том, чтобы заставить ученика самого открыть то, чему его хотят научить), дидактикой научных дисциплин (от греческого “преподавать”, здесь речь идет об изучении самого преподавания как явления в его познавательных аспектах и с точки зрения техники преподавания, а также об оценке этого явления во всех его сложностях).
Селестен Френе создал в 1940 г. школу нового типа, в которой основное внимание уделялось педагогике сотрудничества и группового обучения.
Имеется очень мало публикаций, в которых математики объясняли бы, как именно они пришли к какому-то важному результату. Можно даже сказать, что традиционное редактирование математических текстов все сделало для того, чтобы скрыть самые первые индуктивные шаги к будущему результату. Рассуждение по большей части представляет собой обратное тому, что первоначально подразумевалось. Доказательство представляет собой очищенную аргументами эвристику. Первоначальные представления изменены и закодированы путем использования математических обозначений, и наконец, введенные объекты получают окончательный вид. Педагоги сегодня великолепно осознают эти проблемы, но решить их не просто. Создание “современной” математики было попыткой, хотя и не вполне успешной, решить некоторые из этих проблем. В искусственном интеллекте исследователи из разных сфер деятельности интересуются как раз этим эвристическим этапом.
Представления
Наш мозг воспринимает не окружающую реальность, а модель этой реальности, которая формируется с помощью наших органов восприятия: зрительной, слуховой, обонятельной, вкусовой и тактильной системами. Затем эта модель получает представление в нервной системе с помощью нейронов и их синапсов. Нам почти неизвестен физиологический механизм, с помощью которого информация кодируется и запоминается и как осуществляется доступ к ней. Согласно К. Лоренцу это представление является визуальным отображением реальности. У приматов необходимость в интеллекте возникла потому, что они были принуждены, чтобы выжить во враждебном мире, “планировать” свои действия и поступки, "размь【山лять". Многочисленные следы этого преобладающего влияния отношений с окружающим миром на нашу систему мышления сохранились в лексике современного языка, например: видеть, схватить, по-
нять; уровень, план, глубина; очевидный,, скрытый, темный. Это тот вид лексики, который связан с абстрактными понятиями и служит для их выражения. Несмотря на то что способность к абстрактному восприятию является свойством именно человека, тем не менее это свойство не является врожденным. Ребенок вырабатывает в себе эти абстрактные понятия постепенно, шаг за шагом, постигая физические инварианты только после долгого ученичества. Согласно Пиаже, способность к внутреннему представлению о весе или объеме объектов формируется у человека к 13——14 годам. Недостатком при этом является только то, что мало-помалу это абстрактное представление о мире ведет индивидуума к чистому абстрактному мышлению, уже независимому от всякой опоры на окружающее и отделенное от любого немедленного действия.
В заключение отмстим, что представления, которые мы используем, когда речь идет о печатных и рукописных текстах, гравюрах, нотных записях, математических формулах, рисунках, фотографиях, являются существенно графическими. Особую роль среди них в этой книге играют те, что связаны с математическими формами записи и обозначениями.
Математическая форма записи
Все обычные системы записи содержат, с одной стороны, символы, представляющие объекта, и, с другой стороны, символы, представляющие операторы, позволяющие связывать объекты между собой. Так, в выражении х + ^——1 х, у являются объектами, а знаки + и — операторами. Операторы могут связывать некоторое множество объектов (например, операторы 十 и —), два объекта (бинарные операторы *,厶 U, П, V, А), а также относиться к одному объекту (унарные операторы V , log, sin). Операторы типа “если ... то, ... иначе ("если да ... то, ... если нет ...”) встречаются в языках программирования. В общем случае правильно построенное выражение или терм представляет собой n-арный оператор вместе с п объектами. По отношению к n-арному оператору говорят также, что его вес равен и.
Правильно построенное выражение само может рассматриваться как новый объект, который в свою очередь может быть связан с другими объектами с помощью какого-то оператора, следуя тому же закону образования выражений, что и ранее. В результате мы получаем терм ——n-арный оператор вместе с /г термами. Такое определение терма через-другие термы называется рекурсивным. Оно имеет смысл только тогда, когда априорно существуют исходные термы, являющиеся объектами%
Среди этих исходных объектов в общем случае некоторые могут быть заменены другими объектами или даже термами (переменные), а другие — не могут быть заменены (константы). Так, в тригонометрическом выражении sin2 х + cos2 х = 1 % может быть заменен любым термом, чего нельзя сказать ии。символах 1 и 2, ни о символах sin и cos. Эти понятия будут уточнены в гл. 3 при рассмотрении формальных систем.
Линейные формы записи
Книгопечатание привело математиков к тому, что они стали записывать свои формулы в виде линейной строки, читаемой слева направо в европейском мире. В этой форме записи, называемой линейной, существуют три возможности расположения оператора: впереди или позади термов, которыми они управляют, или же между ними. Находят применение все эти три формы записи, но они не являются равнозначными.
В наиболее общей форме записи, называемой инфиксной (или нефиксированной формой), операторы расположены среди термов и, чтобы облегчить чтение, приходится добавлять новые символы — скобки: (),[],{}, которые не входят в основной набор символов. Они не очень удобны при письме, и ими пользуются, только чтобы устранить неоднозначность или разделить на части слишком длинное выражение; Кроме того, для устранения неоднозначности условились об определенной иерархии применения операторов. Например, в алгебре выражение а —方 + c будет интерпретироваться как (а—.6) + с, а не как а—(方 + c). Свойства ассоциативности и коммутативности некоторых операторов (и особенно операторов + и *) неявно подразумеваются в обычном математическом анализе. Например, пишут 2 * х * г/, или х * 2 * г/, или г/ * х * 2, причем чаще всего оператор умножения * при записи формул опускается. Однако фантазия математиков идет дальше, и, например, унарные операторы записываются на трех уровнях. Основные варианты записи таковы: sin Л, В, С\ dD/dt, £*,戶,G‘,| G|. Знак — является одновременно унарным и бинарным оператором. Следовательно, обычная нефиксированная форма записи выражений далека от определенности и строгости.
В математической логике предпочтительной является префиксная форма записи. Каждый оператор в этом случае записывается перед термами, которыми он управляет. Таким образом, обычная запись “尤 оператор у” приобретает вид “оператор причем запись “оператор z” не изменяется. .
В этой форме записи любые скобочные системы становятся ненужными, а лаконичность и определенность формы записи с
расположением оператора в начале каждого терма делает ее (после некоторой тренировки) весьма удобной для использования.
Выражение (р n д)二)р, записанное в инфиксной форме, получает в префиксной форме вид nnpgp.
Выражение (Г)
log(9 + vV — b/sin x)
будет выглядеть так.
Ibg + У V — f 碎/b Sin %.
Основная теорема префиксной формы записи. Последовательность S символов является правильно построенной в форме польской префиксной записи, если и только если:
ранг (S) = —1;
ранг (подпоследовательности слева от S)>0, причем ранг (оператора) = вес (оператора) — 1, ранг (пустой последовательности) = О, ранг (п-го символа) = п — 1, ранг (переменной) = ранг (константы) = — 1, ранг (S1 соединенной с S2) = ранг (S1) + ранг (S2).
Доказательство этой теоремы проводится по индукции на множестве символов S. Важным следствием этого результата является возможность построения алгоритма для отыскания в заданном выражении места, где заканчивается терм, который начинается в заданной позиции.
Так, например, для идущей ниже последовательности символов (Г) (с соответствующими им рангами) имеем для терма, который начинается стрелкой, его окончание на знаке 2:
log+УV—个у2/6sinх'.
О1ОО1 220100—1
个10—1
Заметим, что запись в инфиксной форме, если она дополнена скобками, может рассматриваться как префиксная запись и поддается верификации с помощью описанной выше процедуры. При этом открывающая скобка рассматривается как бинарный оператор, а закрывающая скобка — как константа. Другие ранги остаются при этом неизменными. Тогда, например, выражение с бинарным оператором будет выглядеть так:
(а бинарный-оператор 6)
1 010 —1
В суффиксной (или постфиксной) форме записи оператор помещается сразу после соответствующих термов и выражение “% оператор у" будет записано как “冲 оператор", а выражение “оператор z” запишется как “z оператор".
Выражение (Г) в суффиксной форме записи выглядит так:
У 9 2 t Ь х sin / — “+ log
Эта форма записи удобна, в частности, когда хотят оценить, т. е. вычислить, представленное выражение; например, при машинных вычислениях или при компиляции языков программирования формулы, введенные в инфиксной форме, переводят в постфиксную форму. В такой форме записи при прочтении выражения слева направо удается вычислить его значение за один проход (рис. 2.10а).
уу2 个Ь х sin /——“i + log
12 个
180 f/2
—>—1
г —80
г 81
г 9
->10
今 I =1 I Рис. 2.10а.
Нелинейные формы записи
При типографском способе печати линейная форма записи в виде строк не дает наглядного представления о структуре выражений. Все символы выглядят равнозначными, хотя известно, что некоторые из них являются терминальными (переменные и константы), а другие нет. Если быть точным, то следует отметить, что каждый оператор управляет заданным числом известных термов. Чтобы отразить этот факт, используются представления выражений в форме чертежей или диаграмм. Примеры таких графических схем (графов) представлены ниже:
Бинарный операторБинарный операторп^суэньш операторп^суэньш оператор
Бинарный оператор
Бинарный оператор
п^суэньш оператор
п^суэньш оператор
tn
Графы такого типа получили название деревьев. Они хорошо соответствуют нашим зрительным представлениям, напри-
мер, о таких выражениях, как выражение (Г), граф которого представлен на рис. 2.106.
Следует отметить тот факт, что такая форма записи содержит и три другие формы записи:
префиксная форма выявляется при просмотре дерева
сверху вниз и слева направо при записи символов в том порядке, в котором они при этом встречаются;
постфиксная форма образуется прн просмотре дерева в последовательности, обратной предыдущей;
инфиксная скобочная форма записи образуется при проекции дерева на горизонтальную ось, причем символы каждого последующего Рис. 2.106. Представление выраже- уровня заключаются в нн兄(Г) в виде дерева, скобки.
Как уже отмечалось выше, ценность представления определяется тем, насколько удобно его обрабатывать. В математике основными процедурами обработки являются следующие: подстановка одного терма вместо другого, группировка (объединение) двух термов, удаление терма. Все эти операции соответствуют очень простым операциям с соответствующим деревом, построенным для данного выражения, перемещению (перестановке) какой-либо ветви, локальной модификации терминальных символов — листьев, удалению какой-то ветви. Вместо этого при обычной инфиксной записи мы переписываем вручную построчно все выражение целиком.
Машинное представление выражений
Память ЭВМ характеризуется большим объемом и высокой скоростью обращения к ней, что позволяет избежать ограничений, присущих возможностям человека, передав ЭВМ обработку структур типа дерева. При этом каждому символу какого- либо выражения соответствуют трн определяющие его характеристики: собственно имя символа, имя символа-исынап, расположенного слева от основного символа, и имя символа-4<брата0, расположенного справа. “Сыновьями” являются первые символы соответствующих термов. Множество имен символов выражения последовательно образует столбец таблицы S, множество имен "сыновей” дает столбец G таблицы, а множество имен “братьев” ——столбец D. Все три столбца, объединенные
в таблицу, охватывают все множество выражений, предназначенных для обработки заданной программой, причем их количество может быть весьма значительным. Идея машинного представления выражений иллюстрируется рис. 2.10в. Надо отмстить, что представленные на рис. 2.10в элементы а н 6 сами могут быть деревьями. Поэтому соответствующие им элементы столбцов G и D не есть сами а и 6, а являются лишь ссылками (их называют указателями или индексами) на места, где находятся а п Ь.
УG刀Оператора.bУG刀Оператора.b
У
G
刀
Оператор
а.
b
У
G
刀
Оператор
а.
b
Рис. 2.10в. Машинное представление' выражения (Т).
Если соответствующие элементы столбцов G н D на уровнях а и 6 не пусты, они позволяют продолжить просмотр дерева.
Терминальные вершины дерева или листья, являющиеся переменными или константами, не имеют ^сыновей". В этом случае соответствующее значение G равно пустому символу 0.
Таким образом, для данного индекса t имеем
S ⑴=имя символа;
G(i) == индекс “сь1на" слепа от s(i) в столбце S;
D(i) = индекс “брата” справа от s(i) в столбце S.
При такой форме записи ничто не обязывает к тому, чтобы символы, следующие друг за другом, в каком-то выражении вновь встречались в порядке возрастания индексов, так как на самом деле единственно важным является просмотр выражения, задаваемый столбцами G и О.
Множество столбцов таблиц S, G, D образует списковую структуру, которая удобна для обработки символов на ЭВМ. Уже встречавшееся нам выражение (7)
\og(y + у2 — blsm х)
представлено на рис. 2.11 в виде списка.
Замечания
Само выражение маркируется заголовком списка, т. е. индексом его первого символа в снстсме S, G, D. Следовательно, в нашем примере выражение (Т) будет обозначено числом 112.
Чаще всего в столбце S содержится на самом деле не имя символа, а индекс, который отсылает к специальному машинному словарю, используемому программой..
Такое представление удобно, если приходится работать с операторами, степень которых (порядок оператора) выше двух, н с операторами переменной степени. Например, оператор + может быть записан как -\-xyzt вместо х + у 十 之 十 £
• • *
log
ИЗ
0
+
119
0
У
0
121
*
140
218
135
0
—
136
0
个
255
137
/
138
0
b
0
139
sin
140
0
к
0
0
У
0
256
2
0
0
•..
t
433
0
—
431
0
/
434
0
л
0
436
4
0
0
112
113
119
120
121
136
136
137
138
139
140
255
256
431
432
433
434
435
Рис. 2.11. Списковое представление выражения (Г).
■ 4. При использовании рассматриваемого представления выполнение фундаментальной операции замещения переменной термом (операции подстановки) существенно облегчается. Например, допустим, что в выражении (Т) нужно заменить * на (2 — л/4). Последний терм уже присутствует в списке, представленном на рис. 2.11, например, с индексом 432. В этом случае для выполнения подстановки достаточно изменить номер слева от 尤,т. е. G (139), и положить G (139) = 432. В этом случае указатель 140 становится ненужным, так как он не соответствует никакому элементу в G или D.
Не запрещается нескольким различным указателям номеров соответствовать одному и тому же элементу списка, но это тем не менее не рекомендуется.' Например, если у должно быть в свою очередь заменено на (/ — л/4), желательно повторно записать этот терм, чтобы отдельно выполнить две подстановки у в (Г), так как необязательно, чтобы последующая обработка замещаемых 尤 и у была бы идентичной.
Иногда списки забиваются узлами, ставшими ненужными, поэтому для помещения в них новых триплетов предварительно запускают программу-чистильщика — “сборщик мусора”.
2.10, Использование графических моделей в области искусственного интеллекта
В искусственном интеллекте интересуются автоматической обработкой информации, связанной с такими ситуациями, для которых неизвестен заранее алгоритм решения. В данной книге особое внимание уделено трем областям приложения методов искусственного интеллекта: автоматическому доказательству теорем; машинному решению задач; пониманию машиной фраз естественного языка. Особый интерес при этом вызывают способы представления и использования знаний. Ведь если какое- то поведение и заслуживает наименования “разумного”, то лишь потому, что при этом используются гибкие представления, обобщенные схемы, разумные абстракции, точно отражающие окружающий нас мир.
Представление знаний при автоматическом доказательстве теорем
В математике, как и в других областях, мы встречаемся с двумя уровнями представлений. К первому уровню относится представление объектов, с которыми производятся те или иные манипуляции (математические понятия, формулы, выражения). Ко второму уровню относится представление знаний об этих объектах (отношения, теоремы, методы доказательства).
Рассмотрим представление объектов, например, в геометрии. В ней фундаментальную роль играют представления объектов в виде геометрических фигур. Программы, доказывающие теоремы в планиметрии, реализуют в машине с помощью графов наши обычные построения, проводимые с помощью циркуля и линейки.
В представлении знаний существенным является то, о чей не говорится в учебниках по математике и на лекциях, а именно
Форматное^нитрен^ее
условиедоказательство
Внешне пред-, “
стабление■.
Перевод (1)'1(3) Перевод.
Внутреннее»—— ]][
лредстабтние(2)
Заключение
Рис. 2.12. Роль представления в математике.
каким образом и 汇仪汇 находят доказательство. На самом деле способ действий математика включает три различные фазы (Пастр, Пойа, Мериалдо): 1) понять теорему, заданную на формальном языке, т. е. перевести ее в некоторое внутреннее представление; 2) доказать теорему в этом внутреннем представлении, используя для этого все накопленные и адаптированные к этому внутреннему представлению знания; 3) перевести найденное еще неполное доказательство в строгое математическое доказательство, вновь введя символическую формализацию обычного математического языка. Роль представления в математике графически иллюстрируется рис. 2.12. Прежде чем переходить к примерам доказательств, отметим роль, которую играет в доказательстве теорем “хороший рисунок”.
Роль рисунка, чертежа, правильно отражающего условия теоремы, определяется тем, что он представляет собой прежде всего квинтэссенцию используемой информации, отражает наиболее существенные ее аспекты, связанные с доказательством. Так, например, два элемента хну могут быть связаны в условии теоремы многочисленными бинарными отношениями Ri, R2, ..., Ra На схеме, приведенной ниже.
дается графическое представление записи: lixR\y А %&у А... …A%RW (Банди, Пастр). При представлении простых алгоритмов обработки графические схемы могут быть использованы для эффективного отображения последовательности выводов (дедукций). Для транзитивного бинарного отношения R, например =или и или использование графического представления позволяет перевести выражение xRy A yRz в форму к 宀一У 口一 z, из которой непосредственно получается х —^-z. При этом для получения доказательства в более компактной форме зрительно ^очевидные^ этапы могут быть опущены. Использование при доказательстве чертежа или рисунка часто позволяет отсекать ложные подцели. Если какое-либо свойство не находит подтверждения на чертеже, оно наверняка является ложным, и бесполезно терять время на попытку установить его. Более того, графическое представление помогает открытию. Если какое-то свойство проверено на. чертеже, можно предугадать доказательство соответствующей теоремы. Мы все используем этот способ при геометрических доказательствах. Чертеж полезен при определении симметрии переменных и является помощником в непосредственном выявлении эквивалентных ситуаций. Кроме того, наличие чертежа позволяет легко вводить в случае необходимости новые удобные элементы доказательства что широко используется в геометрии.
Отметим в заключение, что графические представления в виде чертежей, рисунков, схем и связанные с ними алгоритмы обработки информации позволяют в удобной форме получить представление о структурах связанных с ними концепций, т. е. об их семантике, тогда как перечисление их формальных свойств, что обычно характерно для учебников и монографий, описывает только их синтаксис.
Рассмотрим несколько примеров графических представлений. На рис. 2.13, а и б приведено представление множеств в топологии (Мериалдо). Точки, обозначенные на рисунках цифрами, называются атомами. Каждый атом является представителем, подмножества, которому он принадлежит. Если атом соответствует пустому подмножеству, он удаляется. Таким образом, отношения принадлежности, включения, равенства представляются и запоминаются в сжатом виде. Кроме того, по диаграммам Венна легко составить простые алгоритмы, которые, основываясь на этом представлении, позволяют добавлять множество, получать пересечение множеств, приравнивать их, проверять правильность включения, определять дополнение множества.
Так, утверждение, что множество В включено в множество 4 тогда и только тогда, когда для каждого ребра, связываю-
щего вершину В с атомом г, существует ребро, связывающее также и вершину Л с атомом г, представлено на рис. 2.13, б.
Теперь рассмотрим теорему 71, но прежде сделаем некоторые определения: запись Д обозначает замыкание множества А
б
Рис. 2.13. Графические представления множества в топологии (а) и машинное представление диаграмм Венна (6).
(наименьшее замкнутое множество, содержащее множество Л), а запись Л* обозначает границу множества А (А* — Ап [Л).
Теорема Т1: ^4 * — (Л — A) U ([Л П А).
Программа при доказательстве теоремы использует граф, оперируя, таким образом, только множествами. Все множества, используемые при этом, построены в соответствии с заданными
Рис. 2.14. Построение множеств [力 и [Л.
определениями. Например, построение множеств [Л и [Л показано на рис. 2.14. Затем программа конструирует множество Л* = Ап [Л, пусть на рис. 2.14 это атомы 2 и 4. Аналогичным образом 貞一А = {2} и [А р Л == {4}, что и доказывает теорему.
Конечно, программа не испытывает затруднений с доказательством, что может случиться с человеком при увеличении числа имеющихся множеств. Это связано с тем, что все отношения между множествами отражены в графе и это значительно упрощает доказательство. Более сотни теорем из области
теории множеств и топологии были доказаны этой программой за время 〜1 с на ЭВМ типа ИБМ 4331.
Теперь рассмотрим пример из области геометрии (Buthion, 1979). “Задана окружность (С) и две точки Л и В вне окружности. Построить прямую (Q), проходящую через точку Л, которая пересечет окружность (С) в точках С и Dt находящихся
Рис. 2.15. Пример задачи с геометрическим построением.Рис. 2.15. Пример задачи с геометрическим построением.на равных расстояниях от заданной точки В". Для нас практически невозможно решить эту задачу, не построив чертеж. Мы предполагаем, что задача решена и строим соответствующий чертеж, как показано на рис. 2.15. Программа будет делать то же самое. Она называет и строит необходимые элементы: прямую (D), находит точку / — середину отрезка CD. На самом деле в программе чертеж представляется в виде таблицы, где на
Рис. 2.15. Пример задачи с геометрическим построением.
Рис. 2.15. Пример задачи с геометрическим построением.
ходятся имена элементов, отражена их сущность, их "степень свободы", их возможные “представления”. Степень свободы элемента есть скаляр, который показывает, является ли элемент полностью известным, частично известным (здесь это прямая (Q), которая должна пройти через точку А) или совсем неизвестным. Представителями прямой являются все точки, принадлежащие ей. В начале решения строка таблицы будет
выглядеть так
(А) Прямая1В, /
(Имя) (Сущность) (Степень свободы) (Представители)
Теперь задача заключается в том, чтобы полностью определить (Q). Программа рассматривает равнобедренные треугольники COD и BCD. В этих равнобедренных (по построению) треугольниках, имеющих общее основание — хорду CQ, отрезки 01 и BI являются медианами и высотами, пересекающими хорду CD в одной и той же точке / под прямым углом, принадлежащей отрезку ВО, являющемуся частью прямой (АА‘). Таким образом, задача решена. В таблице программа отражает этот факт с помощью следующей строки:
(А) ПрямаяО(А‘),В, /, О
(Имя) (Сущность) (Степень свободы) (Предсгавнтели)
Теперь рассмотрим пример на свойства функций (D. Pastre, 1978). Около 150 теорем элементарной теории множеств об образах и прообразах, функциях, конгруэнтностях, отношениях порядка, порядковых числах были доказаны программой DATE, которая работала почти как математик, и, в частности, ею была доказана приводимая ниже теорема Т2.
Теорема Т2. Пусть имеются три отображения ,: 4 f В, g:B~> С, h : С-^ At Если из трех функций 財=九。纟。厶 局=
Рис. 2,16. Пример графического построения, используемого программой DATE для доказательства теоремы Т2.
=/。九。纟,力3 = g。,。九 две какие-либо функции являются сюръективными, а третья ——инъективной, то /, g и Л являются биективными.
Программа в процессе этого доказательства должна, в частности, показать, что если 力i есть инъекция и если ^2 и А3 — сюръекции, то функция 九 является сюръекцией. Чтобы выполнить это доказательство (оно самое трудное среди шести отдельных доказательств, составляющих доказательство теоремы Т2 в целом), программа использует чертеж, приведенный на рис. 2.16.
Отправляясь от какого-то элемента хь принадлежащего множеству Л, нужно отыскать элемент х, принадлежащий множеству С, такой, что 九(%) = %ь Программа, используя чертеж, проводит построение точек х2, %з, %% таких, что %2 = f(%i), %з = =g(%2), %4 =无;%з)・ Известно, что k3 — g °f °h, является сюръекцией и, следовательно, существует элемент %з из множества С такой, что 左з(%5)= %з・ Затем программа DATE строит точки и %7, связанные с точкой л:5 соотношениями хе = h(xs) и x7 = f (%6)•
Теперь из построения следует, что, с одной стороны, g(%7)— х3, а с другой стороны, 也(%6)=^i(%i) =%4・ Однако так как 財 по предположению является инъекцией, следовательно, обе точки с необходимостью совпадают (точки 制 и 尤). Наконец, строится точка х5} удовлетворяющая соотношению 九(%5)= %ь что и требовалось доказать.
Описанные выше три примера показывают различные роли, которые играют графические представления при разумных рассуждениях, и особенно то, как их использование дает возможность ввести естественным образом новые объекты.
Графические представления в решении задач
Общим методом решения задач является разбиение задачи на подзадачи (метод сведения к подзадачам), которые совместно удовлетворяют требуемым условиям. Задача считается решенной, когда каждая из подзадач в отдельности решена. Однако для решения отдельной подзадачи может быть использовано множество методов, причем каждый из них порождает
Узел ИЛИУзел ИЛИSB11 SB12 ... SBIpSB11 SB12 ... SBIpРис. 2.17а, Схема сведения задачи к подзадачам.Рис. 2.17а, Схема сведения задачи к подзадачам.
Узел ИЛИ
Узел ИЛИ
SB11 SB12 ... SBIp
SB11 SB12 ... SBIp
Рис. 2.17а, Схема сведения задачи к подзадачам.
Рис. 2.17а, Схема сведения задачи к подзадачам.
новую подзадачу. Поэтому достаточно решить какую-нибудь одну из этих новых подзадач, чтобы решить и ту подзадачу, которая их породила. Этот процесс имеет типичную древовидную структуру, и в этом случае принято говорить о дереве И—ИЛИ (оно показано на рис. 2.17а). Эта схема позволяет наглядно представить процесс эффективного поиска решения человеком или машиной. В предельном случае (идеальном, но редко встречающемся) дерево вырождается в единственную ветвь, и в этом случае поиск становится линейным, без проверок других ветвей. В этом случае говорят об алгоритме.
Представления объектов в виде графов используются, например, в исследовании операций, где рассматриваемые объекты по своей природе являются графами, например в задаче
отыскания оптимального способа доставки почты во Франции, которая связана с наличием реальной почтовой сети. При этом исходными данными задачи являются графы железнодорожной.
dtdtРис. 2.176. Граф последовательности работ.Рис. 2.176. Граф последовательности работ.(S1)(S1)Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.(S2)(S2)
dt
dt
Рис. 2.176. Граф последовательности работ.
Рис. 2.176. Граф последовательности работ.
(S1)
(S1)
Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.
Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.
(S2)
(S2)
автомобильной или авиационной связи между селениями. Другим примером может служить задача минимизации общего времени выполнения какого-то множества работ при условии, что наложены ограничения относительно последовательности их выполнения во времени. В этом случае удобно использовать ориентированные графы (например, в методе ПЕРТ), которые отражают эти ограничения. На рис. 2.176 представлен граф (S1), показывающий, что работа 7\ продолжительностью di должна быть завершена до того, как начнет выполняться работа Т» На рис. 2.17в показан граф (S2), означающий, что работы 7\ и 72 являются взаимно исключающими и вместе не могут быть выполнены. Тут проявляется существенное свойство любого математического моделирования: одна и та же модель может представлять различные задачи. Задачи, где присутствуют только ограничения типа (S2), эквивалентны задаче о раскраске графа. Задачи, где имеются только ограничения типа (S1), эквивалентны отысканию пути максимальной длины на графе.
Графические представления в задачах на понимание естественного языка
Первые исследования проблемы понимания естественного языка основывались на синтаксическом анализе предложений и последовательном изучении слов. В качестве основной цели при этом выдвигались автоматический перевод и автоматическая обработка документов. Сегодня исследователи убеждены, что этого недостаточно и для понимания текста программы необходимо обеспечивать семантической информацией типа той, что находится в словарях, а также значительным объемом
информации прагматического типа, описывающей мир, в котором мы живем, наше поведение в нем и наши поступки.
Первые контекстно-свободные грамматики Хомского были легко представимы с помощью правил переписывания. Вскоре появилась необходимость в разрешении относительных двусмысленностей, например в местоимениях, и во временной приостановке процесса анализа фразы на данном уровне, чтобы
GI2 *"»f Ве^шинна 卜”-》[ _Gi i ]— ■» з/«е№иГ\^ » 否以”uqci\ a * x
Рис. 2.18a. Граф считывания данных.
перейти на низший уровень анализа и затем снова вернуться к прерванному анализу.
Графы переходов или ATN (Augmented Transition Networks——расширенные сети переходов) в настоящее время обычно используются для одновременного синтаксического и семантического анализа предложений. Вершины этих графов представляют собой слова из одного и того же^семантического семейства, либо графы, из чего и вытекает существенно рекурсивный характер такого представления. Так, программа Б. Ши- шечи (В. Chichetchi, These Zeme cycle, Paris, 1979) понимает задачи по электричеству, используя транзитивные графы при считывании исходных данных (рис. 2.18а). Например, программа распознает такую фразу: «Частота напряжения / составляет 50 Гц». Очевидно, что определенные слова важны для понимания, а другие могут быть опущены в тексте (например, герц), без изменения при этом результата анализа фразы. Любая фраза, соответствующая определенному пути на этом графе, заранее пригодна. При этом элемент 心11 сам является графом различных возможных описаний характеристик электрического тока и представлен на рис. 2.186. Такой граф позволяет автоматически распознавать, например, не только предложение ^напряжение / равно 10 В”,но и фразу: ^Эффективное значение переменной разности потенциалов составляет 80 В и сила тока — 5 Al По мере распознавания текста такой системой он переводится во внутреннее представление, которое обобщает все специфические сведения, содержащиеся в обрабатываемом тексте. Это внутреннее представление часто называют «семантической сетью» (Симмонс, Кордье, Лопес). Сеть, которая вначале пуста, непрерывно увеличивается, модифицируется, корректируется в процессе анализа. Она может содержать как точные сведения, так и сведения просто вероятные или у слов-
初1т必ddp U 弊iw UwEra"毎仆応^
Рис. 2,186. Граф описаний характеристик электрического тока.
Рис. 2.18в. Семантическая сеть с разбиениями.
ные. На рис. 2.18в дан пример машинного представления трансформатора в программе (М. Lopez, 1979).
Определенные вершины графа сгруппированы в блоки, которые выделены рамками, объединяющими концептуальные совокупности или связанные подмножества сведений.
Изменение представлений
Поиск хорошего представления в ходе решения задачи является почти всегда необходимым этапом на пути к решению. Существует множество задач, когда мы пользуемся прежде всего зрением и руками для выработки единственного исиюми- нутного” (непосредственного) представления об окружающем мире, таком, каким мы его воспринимаем непосредственно в данный момент. В этом случае нет необходимости ни в какой абстрактной модели задачи, но в свою очередь это ведет к бесполезным попыткам и поискам “на ощупь” обобщения идеи, решения, которое могло бы быть использовано при решении других задач.
Задача о четырех шахматных коиях
Шахматная доска и передвижение фигур на ней зачаровывало многих авторов. На основе шахмат созданы многочисленные головоломки. В данном случае речь идет о том, чтобы за минимальное число ходов изменить на противоположное положение двух черных и двух белых коней. В задаче используется шахматная доска размером 3X3. Исходная позиция задачи о
Рис. 2.19а. Исходная позиция в задаче о четырех копях.Рис. 2.19а. Исходная позиция в задаче о четырех копях.четырех конях представлена на рис. 2.19а. Кони "ходят" (перемещаются по доске) привычным образом: на одно поле горизонтально и на два — вертикально за ход либо, наоборот, на два поля горизонтально и на одно — вертикально.
Рис. 2.19а. Исходная позиция в задаче о четырех копях.
Рис. 2.19а. Исходная позиция в задаче о четырех копях.
При знакомстве с задачей нашим первым побуждением является сделать несколько
■ А8СDЕГGН1■ А8СDЕГGН1Рис. 2.196. Обозначение позиций и ходовРис. 2.196. Обозначение позиций и ходовпопыток по перемещению коней на настоящей шахматной доске, но интуитивно мы понимаем, что имеется слишком много вариантов получения конечной позиции, причем при таком подходе плохо используется симметрия, присущая этой задаче. Пытаясь промоделировать
■ А
8
С
D
Е
Г
G
Н
1
■ А
8
С
D
Е
Г
G
Н
1
Рис. 2.196. Обозначение позиций и ходов
Рис. 2.196. Обозначение позиций и ходов
условия задачи на уровне какого-то более общего представления, первое о чем мы вспоминаем, это декартова система координат. Однако такое представление имеет существенный недостаток, связанный с трудностью записи перемещения фигур на величины, равные, большие или меньшие единицы или большие или меньшие двух. Однако такие перемещения очень важны в нашем случае и именно они-то и должны быть представлены в удобной форме. Сама по себе шахматная доска почти не играет в задаче существенной роли; и ее физическое представление является только внешней поддержкой решения задачи, так как на самом деле единственно существенным является учет, связей между ходами, сделанными при переходе от позиции к позиции (вспомним, например, кубик Рубика). Отсюда вытекает, что следует дать имена, т. е. свои обозначения различным
позициям, как, например, на рис. 2.196. Теперь мы знаем, что черный конь может переместиться на поле Л за один ход с поля И или поля F. В свою очередь на поле Н конь сможет попасть либо с того же поля Л, либо с поля С, на поле С ——с поля D、на него — с поля /, на поле / ——с поля В, на него ——с поля G и, наконец, на G — с поля F, начиная с которого конь сможет вновь попасть на поле А. Этот маршрут в виде окружности, проходящей в
Рис. 2.20. Путь коня с поля А. Рис. 2.21. Решение задачи о четырех копях.
указанном порядке через все позиции, изображен на рис. 2.20. Представление, получаемое с помощью этой диаграммы, наглядно и удобно для использования. На рисунке не представлено поле 巨,но это соответствует реальной ситуации, так как данное поле не участвует в задаче — ни при каком ходе коня ни в одной позиции оно недостижимо. Все другие ситуации отражены, и это позволяет использовать ту же кольцевую диаграмму и для других коней.
Новая формулировка задачи теперь состоит в том, что нужно так переместить по этой окружности черных коней на Л и С, а белых коней на G и /, чтобы за один ход конь перемещался на одну позицию справа или слева по окружности. Решение задачи теперь практически очевидно: достаточно лишь повернуть на полоборота по окружности весь ансамбль фигур так, чтобы С попало на G, Л — на /, G — на С и С — на Л. Это вращение, которое соответствует четырем ходам каждого коня, или шестнадцати ходам всех фигур, дает решение задачи — минимальное число ходов для изменения исходной позиции на противоположную (рис. 2.21).
Язык Лисп
В задачах искусственного интеллекта возможность машинной манипуляции с символами настолько важна, что уже в 1956 г. Ньюэлл, Шоу и Саймон разработали язык программиро-
вания ИПЛ, с помощью которого можно было обрабатывать списки. ИПЛ является одним из предшественников языка программирования Лисп (LISP — List Programming), разработанного Дж. Маккарти в 1960 г.
Среди языков программирования Лисп занимает особое место. Наиболее популярным он стал в среде специалистов по искусственному интеллекту в США, где в качестве стандартного получил распространение его диалект COMMONLISP [G. L. Steel, 1984].
К сожалению, этот язык пока не получил широкого распространения в информатике в целом {). К его достоинствам специалисты относят точность, определенность, лаконичность и удобство в работе. Лисп ——хорошее средство для представления древовидных структур (о которых уже говорилось выше), которые в свою очередь служат основой символьной обработки, составляющей базу большинства программ в области искусственного интеллекта. Именно поэтому подавляющее большинство программ искусственного интеллекта составлено на языке Лисп.
Следует однако отметить, что в настоящее время инструментарием для обработки списков обладают и такие развитые языки программирования, как Фортран, ПЛ/1, Паскаль, Ада и др.
Основные элементы языка Лисп
Синтаксис
Выражения языка Лисп называются также S-выражениями. Такое S-выражение представляет собой либо атом, либо список.
Атом представляется каким-либо алфавитно-цифровым именем (т. е. в сущности числом). Список представляет собой некоторую внутреннюю часть, заключенную в скобки.
Синтаксис языка Лисп в форме Бэкуса —— Наура определяется следующим образом:'
(S-выражение):= (атом)
:—(список)
(список):— ((внутренняя чаегь))
')В пашей стране с Лиспом знаком лишь довольно узкий круг специалистов, работающих в области искусственного интеллекта. Это отчасти объясняется отсутствием хороших современных учебников. Издательство «Мир» готовит перевод учебного руководства по одному из наиболее распространенных в настоящее время диалектов языка Лисп ——COMMONLISP, используемому как на микроЭВМ, так и на больших ЭВМ и рабочих станциях.— Прим. ред.
(внутренняя часть) :—(пусто)
:=(S-выражение)
:—(S-выражениеХвнутренняя насть〉
(пусто):=
(атом):= цепочка алфавитно-цифровых
символов без пробелов или специальных символов (,),;,.,.
Таким образом, всякое S-выражение представляет собой набор атомов и списков, например:
((КОРОЛЬ ФЕРЗЬ) ((ЛАДЬЯ) (СЛОН)) ПЕШКА).
Элементарные функции
Как и во всех языках программирования, некоторые предварительно определенные атомы являются функциями, аргументы которых представляют собой следующие за ними S-выражения. В свою очередь аргумент сам может быть функцией, которую нужно вычислить. При этом надо иметь возможность определить, что представляет собой данный элемент — значение выражения L или же символьное имя L какого-то S-выражения. В первом случае перед выражением ставится апостроф, например или же пишут в развернутой форме: (QUOTE L). Апостроф запрещает вычисление следующего за ним S-выражения, которое воспринимается программой в этом случае без изменений. -
Для задания выражения используется функция SETQ:
(SETQ 〈атом〉 ^-выражение» ->(S-выражение),
где значение S-выражения не вычисляется. Стрелка в данном случае означает “выдать в качестве величины". В общем случае всякое S-выражение, поступающее в машину, тут же вычисляется. Так, например, при использовании апострофа имеем
(SETQ G 'F)fF.
Кроме этого, функция SETQ связывает полученный при ее применении результат с атомом:Е
Две фундаментальные функции CAR и CDR позволяют осуществлять обработку списков, если последние не пусты. Функция CAR определяется следующим образом: (CAR 7<непустой список>) ~> первое подвыражение списка. Ниже приводятся примеры использования функции CAR:
(CARЛ(Л В С))-> Д
(CARTG4) В)^(А)
(CAR М) --> ошибка; А не есть список.
(CAR z( )) ошибка или NIL (в зависимости от используемого диалекта Лиспа).
Функция CDR определяется следующим образом:
(CDR '〈непустой список>>) -^-список, составленный из того дополнения из внутренней части, которое осталось бы при применении к исходному списку функции CAR.
Примеры использования функции CDR:
(CDR '(力 В С))—仍 С)
(CDR《4) В) —(В)
(CDR'Z) —( ); по соглашению
(CAR (CDR (А В С))
>(В С)
>В
Не совсем обычные обозначения функций CAR и CDR сложились исторически в процессе первой реализации языка Лисп на ЭВМ типа ИБМ 7094, они являлись относительными адресами регистра и декремента регистра. Наличие в языке этих двух функций и разнообразных их сочетаний является очень удобным при программировании задач искусственного интеллекта. Для этого, в частности, используются следующие сокращенные формы записи:
(CADR S)三(CAR (CDR S))
(CADRZ(4 В С)) >B
(CADDAR S) = (CAR (CDR (CDR (CAR S)))).
В Лиспе имеется функция CONS, действие которой противоположно действию функций CAR и CDR. Она определяется следующим образом:
(CONS (s-вьтражение) (список)) список
Пример действия функции CONS:
(CONSS'g)f (Z В С).
Второй аргумент функции CONS может быть пустым списком (),который может также обозначаться как NIL. Например: (CONS 勿 NIL) f ⑷...
В общем случае, каково бы ни было выражение S, имеем (CONS (CAR S) (CDR S)) =S.
Ниже рассмотрено обычное машинное представление объектов и алгоритм вычисления (оценивания) значений выражений в Лиспе.
Машинное представление и оценивание выражений
Для интерпретатора программ на языке Лисп ячейки памя* ти ЭВМ сгруппированы попарно, и каждая из них содержит указатель, который на рисунках изображается стрелкой.
Рис. 2.22.
Рис. 2.23. Пример графа.
Ф )1
Рис. 2.24.
На рис. 2.22, а показана некоторая ситуация, а на рис. 2.22,6 соответствующая ей физическая реализация. Два указателя на схеме играют роль первого указателя-исынап и первого указа- теля-“6рата”. Например, команда (SETQ L1 '(48)) создает структуру, показанную на рис. 2.23. При этом используются следующие соглашения: отсутствие указателя обозначается символом 3; атомы обрабатываются отдельно (для указания на них используется специальный маркер).
Рис.
2.25.
Рис.
2.26.
L3
L2
I2( I3( I
Ф
)1
Рис.
2.27.
с
А
в
)3
L4
(ES「RANS)
(TOUT) (ЕТ RECtPR0QJEMENC )
((TOUT (EST WS) (TOUT) ) (ET RECIPROQUEMEN7)
1 2
3
Рис. 2.28.
)5
)
4
L7
=((TOUT
3 44 2 5
CAR некоторого S-выражения есть то, первый “сын”.
CDR некоторого S-выражения есть то,
на
на
что указывает
что указывает
первый “брат”, взятый из внутренней части выражения и заключенный в скобки.
Чтобы определить выражение по его схематическому представлению, нужно просмотреть представление, следуя указателям, расположенным слева, на наибольшую глубину и затем по правым указателям (внешний просмотр). При записи выражения каждой стрелке, не заканчивающейся на атоме, соответствует открывающая скобка, а каждому символу — закрывающая скобка и каждому атому — сам атом. Таким образом, приведенная на рис. 2.24 схема соответствует списку L2: ((А) (В)). Кроме того, интерпретатор постоянно ведет список свободных ячеек, предназначенных для заполнения. На рис. 2.25 это представлено схематически, где головная ячейка обозначена символом d.
Так, например, задание списка (SETQ L3 (CONS 'С L2)) соответствует перемещению указателя d от предыдущей заданной отметки, если атом С не существует, и его образованию либо помещению указателя “брата” С в голову списка 2 (рис. 2.26).
Схема образования списка L3 представлена на рис, 2.27, где L3 — это (С ⑷(В)).
Другой пример представления списка показан на схеме, соответствующей списку L4, включающему списки 厶5, L6, L7, L8, L9 (рис. 2.28).
Вычисление значения списка
Ниже приведен пример вычисления значения в языке Лисп е помощью функции EVAL, когда используется внутреннее представление в Лиспе, в котором скобки не применяются. В языке Лисп выполнение какой-либо команды (которая сама является выражением) означает просто вычисление значения соответствующего входного выражения. Оно просматривается программой в ■ последовательности, задаваемой указателями- Мсыновьями", а затем учитывается последний из встреченных указателей-ибратьевм. После этого учитываются указатели- "сыновья”,связанные с этим последним, и так далее, пока не улучается окончательное значение выражения. Затем вычисление повторяется снова, охватывая выражения более высокого доовня, и так до тех пор, пока не будет определено значение всего исходного выражения. Те части всего выражения, которые ожидают (в процессе всего оценивания) вычисления значений нх аргументов, называются иногда ^квазарами".
Процедура EVAL(S)t где S-выражение языка Лисп во внут^ реннем представлении.
EVAL (S)
Если S есть атом
ТОГДА возврат ^-.значение S
ИНАЧЕ ЕСЛИ SIr QUOTE
ТОГДА возврат <-S2
ИНАЧЕ S1 с необходимостью есть функция иначе ошибка
ЕСЛИ S1 указывает на специальную обработку:
;не оценивать определенные аргументы
;и/или принять определенное число ;аргументов
;принять определенное число переменных, например, для AND, ;RPLACA...
ТОГДА выполнить эту обработку
ИНАЧЕ применить EVAL ко всем элементам
S2 последовательно и затем рекурсивно использовать их иайдениые значения.
Окончательно:
возврат Si (EVAL (S2))
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ
Здесь учитывается, что % эквивалентно выражению (QUOTE 厶).S1 означает первого “сына” для выражения S, а S2 — элементы выражения S, представляющие собой множество “братьев” выражения SL
Необходимо отметить, что в языке Лисп любая программа сама по себе является S-^ыражением. В частности, в Лиспе данные имеют ту же структуру, что и программы, и также являются выражениями. Результат выполнения программы в Лиспе также является программой. Соответственно этому S-выражение в Лиспе является программой. Это свойство языка Лисп позволяет создавать программы, которые могут перестраивать сами себя.
Так как для функции EVAL целые (например, —4) и вещественные (например, 3.1416) числа, а также пустой список NIL и символ Т (истина) являются «одновременно их собственными значениями, то перед ннмн апостроф не ставится.
• Примеры вычисления значений выражений:
(CAR '(4))f А
(CDR <A))f NIL
(CAR ошибка
;по соглашению.;внимание!;апостроф запрещает ;вычисление.;Я должно быть;функцией.применена дважды:;по соглашению.;внимание!;апостроф запрещает ;вычисление.;Я должно быть;функцией.применена дважды:(CDR \4)f NIL
;по соглашению.
;внимание!
;апостроф запрещает ;вычисление.
;Я должно быть
;функцией.
применена дважды:
;по соглашению.
;внимание!
;апостроф запрещает ;вычисление.
;Я должно быть
;функцией.
применена дважды:
(CAR <(4)))f ⑷
(CDR 储(8C)))f g)
(CAR '(CDR(/BC)))f CDR
(CAR (CDR (X В C)))-> ошибка
Функция (SETQ а (SETQ В Я в (EVAL 4)Функция (SETQ а (SETQ В Я в (EVAL 4)(CAR (CAR (CDR (CDR '“А В) C (D E))(CAR (CAR (CDR (CDR '“А В) C (D E))EVAL может быть ^В)^В 'C)f С
Функция (SETQ а (SETQ В Я в (EVAL 4)
Функция (SETQ а (SETQ В Я в (EVAL 4)
(CAR (CAR (CDR (CDR '“А В) C (D E))
(CAR (CAR (CDR (CDR '“А В) C (D E))
;далее более сложные.
;случаи.
4 3 2 1
;удаляются скобки, удаляется 品
;удаляются скобки^ возврат S1
;аналогично
♦ D
(CAR (.CAR (CDR 4CDR ((А В) С ( D Е ))))))
;morw canoe ^/р(х^сениея но с изЕб^нкзм похоже-- I ; нием аггостродза- так vmo последнее CDR 啦сь 竹
(((А В) С (D Е)))
((АВ) С <D Е)
—(А В)
(CAR(CARR (CDR ((А В) С (D Е))))))
(CAR
(CAR
.;теперь выражение после сиюстр冲口 seem ;(рорку tCDRx) ик нему применяют
♦ ошибка,次《附 /сак <рункдия CAR определена толоко 必耳 списка
Сдвигая апостроф еще на позицию, имеем (CAR '(CAR (CDR (CDR (Л B)C(D £)))))-> CAR.
Другие функции Лиспа
Предикаты (принимают значения Т или NIL)
(АТОМ (S-выражение)) -> Г, если и только если значение S- выражения есть атом или имя функции, иначе NIL.
Например:
(ATOM М) f Г
(ATOM NIL) f Г
(ATOM ’CAR) 一 Г
(АТОМ '(4 В)) f NIL
(NULL (S-выражение)) -> Г, если и только если значение выражения есть NIL, иначе NIL.
Например:
(NULL (CDR〈ATOM)) —Т
(EQUAL (S-выражение 1) (S-выражение 2〉)f Т, если и только если значения обоих выражений равны.
(EQ (S-выражение 1) (S-выражение 2)) -> Г, если и только если значения обоих выражений равны.
(EQ (S-выражение 1) (выражение 2)) -> Г, если и только если значения обоих выражений одинаковы и представляют один и тот же физический список (т. е. размещены в одном и том же месте памяти).
Например:
(EQUAL <4 В) <4 B))f Т; тогда как
(EQ f(A В)〈才 В)) -> NIL; так как список (Л 5) создан дважды, в двух различных местах.
(AND (S-выражение)*);указано некоторое число
аргументов, которые вычислены слева направо; если при этом встречено NIL, возвращается значение NIL, иначе значение последнего выражения.
(OR (S-выражение)*);в отличие от предыдущего, если
при просмотре встречается значение, отличающееся от NIL, оно возвращается, иначе NIL.
(NOT (S-выражение)) -> Г, если и только если значение выражения есть NIL.
Функции
Выбор между несколькими возможностями осуществляется в Лиспе с помощью функции COND, которая записывается в виде
(COND (⑴〉《1》
(〈⑵〈唠) 《勿〉〈⑺)
Символы f указывают на выражения, относящиеся к проверяемым условиям, а символы г указывают на выражения, относящиеся к результатам. Значения выражений 九 вычисляются в порядке возрастания индексов. При этом, как только встречается какое-то выражение И со значением, отличающимся от NIL, функция COND вычисляет соответствующее значение 乃 и возвращает значение последнего выражения из 儿 Если все И имеют значение NIL, оно является окончательным значением COND. Некоторые ri могут отсутствовать. В этом случае, если ti является первым f, значение которого отличается от NIL, возвращается значение Н.
Функции построения списков
Две функции APPEND и LIST так же, как и функция CONS, формируют списки. Функция APPEND определяется следующим образом: (APPEND <список 1> <Ссписок 2> ...<список 几;)一список, образованный из списков 1, 2, ...» /г, из которых удалены скобки первого уровня. Например:
(APPEND <4) NIL <®(C)))f (4 (В) (С)).
Функция LIST определяется следующим образом:
(LIST <5-выражение 1>. <5-выражение 2> .„<5-выражение п>)-^(S-выражение 1 S-выражение 2 ... S-выражение п).
В данном случае скобки остаются. Кроме того, в отличие от функции APPEND эта функция позволяет использовать в качестве аргументов также и атомы, например:
(LIST 修)NIL,(仍)(C)))f (伊)NIL ((В) (С)))
(LIST 2 NIL)f (4 NIL).
В следующих разделах будут приведены синтаксические определения еще нескольких функций, позволяющих строить списки в языке Лисп.
функция LENGTH:
(LENdTH <5-выражение>) -> число “братьев" первого уровня в S-выражений. Например:
(LENGTH《4 В) С (D)))->3.
Функция REVERSE:
(REVERSE <5-выражение>>) -> строит S-выражение из “братьев” первого уровня исходного выражения в обратном порядке. Например:
(REVERSE <4 (В С) С))-> (О (В С) Л).
Функция SUBST (функция подстановки):
(SUBST <5-выражение 1> <5-выражение 2、<5-выраже- ние 3>)^- результат замещения выражением 1 всех вхождений выражения 2 в выражение 3. При этом выражение 2 должно быть атомом. Например:.
(SUBST М ZB <4 В С)) —(4 4 С).
Функция MEMBER:
(MEMBER (атом) (список)) -> NIL, если и только если исходный атом не появляется в качестве “брата” первого уровня в исходном списке. Например:
(SETQ М '(4 В (С D) £))*
(MEMBER fF M)f NIL
(MEMBER ZC M)f NIL
(MEMBER 'B M)f (8 (C D) E)
Функция RPLACA:
(RPLACA (список) (5-выражение)) -> замещает CAR списка на указанное выражение. Например:
(SETQ G X В С))-> (4 В С)
(RPLACA (CDR G),D)*D С)
Следует отметить, что функция RPLACA производит такое же действие и на исходный список: G~^ (A D С).
Функция RPLACD является симметричной по отношению к функции RPLACA. Она воздействует на CDR своего первого аргумента.
Числовые функции
При записи числовых функций всегда используется форма префиксной польской записи. Ниже приводятся числовые функции, смысл которых очевиден.
(PLUS 2 3) f 5; функция может иметь несколько аргументов
(PLUS 1 2 3 4 5)-> 15
(DIFFERENCE 5 2) — 3
(TIMES 4 5)f 20
(QUOTIENT 8 2)f 4
(MAX 5 8 7 6) f 8
(MIN 5 8 7 6) —5
(ADD1 6)f 7
(SUB1 7) —6
(SQRT 16) — 4
(EXPT 2 3) —8
(MINUS 3)f—3
(ABC —3)f 3
(MAX (MIN 2 4 6) (MAX 3 5 2))f 5
(ATOM (PLUS 1 2 3))т T, так как аргумент, являющийся выражением, имеет значение 6, которое является атомом.
Ниже приводятся три предиката с числовыми аргументами.
(LESSP ^l %2)f 7\ если и только если ^l V N2.
(GREATERP ^1 jV2)->Т, если и только если Nl > N2.
(ZEROP Nl) fT, если и только если NI = 0.
Функция REMAINDER определяется так:
(REMAINDER ^l А^2) остаток от деления N1 на N2.
Если в приведенных выше выражениях ^l и N2 не являются числовыми, выдается сообщение об ошибке. В Лиспе предусмотрена возможность проверки того, является ли данное выражение числом:
{NUMBER? (S-выражение)) т 71, если и только если значение выражения является числом.
Итераций: MAPCAR и APPLY
(MAPCAR ^функция) (S-выражение)) — выражение, образованное применением первого аргумента (который должен быть функцией, известной системе) ко всем элементам заданного выражения. Например: (MAPCAR <ADDY (4 8 3))f (5 9 4).
Исходная функция должна быть функцией одного аргумента, чтобы была возможность ее соотнесения с w братья ми**
первого, уровня исходного выражения,
(APPLY '〈функция〉(S-выражение).) ->здесь исходная функция применяется к указанному выражению. Например:
(SETQ 4 <4 5 8 l))f (4 5 8 1).
(APPLY 'PLUS /)—18・
В последнем примере необходимо использовать указанную функцию присваивания, так как без нее проверка функции (PLUS А) даст на выходе ошибку, поскольку PLUS требует числового аргумента.
Две описанные выше функции, называемые итерациями, позволяют элегантно и просто переносить действия любых функций на элементы списка.
Лямбда-функция. Определения и свойства
Определение лямбда-функции
Лямбда-запись, предложенная Черчем в 1930 г., позволяет в Лиспе локально использовать какую-либо функцию, не давая ей собственного имени. Лямбда-функция определяется следующим образом:
((LAMBDA (X) (5-выражение 1)) (S-выражение 2)) ->значение (5-выражения 1), в котором все вхождения X замещены значениями <5-выражения 2>, где X ——переменная, S-выражение 1 — тело лямбда-функции, S-выражение 2 — аргумент.
Примеры использования лямбда-функций:
((LAMBDA (X) (EQUAL X ЖАРАНДАШ)) ’КАРАНДАШ)-"
(MAPCAR "(LAMBDA (/) (TIMES / / /)) z(l 2 3 4)-> f (1 8 27 64).
Отметим, что во втором примере обязательным является использование апострофа перед лямбда-функцией.
Свойства, связанные с атомами. Функции PUTPROP и GET
Таблицы и индексы не имеют смысла в языке Лисп. Чтобы говорить о некоем свойстве, связанном с каким-то объектом, и о его значении, используют функцию PUTPROP: (PUTPROP (атом 1) (список) (атом 2)).
Эта функция “связывает” свойство, выраженное именем атома 2, с объектом, представленным атомом 1, и с конкретными значениями свойства, представленными в исходном списке. Например:
(PUTPROP 'ПЬЕР 7ЖАН ЖАК) 'ДЕТИ) -> (ЖАН ЖАК).
В этом примере рассматриваемая функция физйчески связывает (с помощью указателей) объект ПЬЕР нерез свойство ДЕТИ со значениями этого свойства, а именно: детьми Жаном и Жаком.
Чтобы узнать, обладает ли объект данным свойством, используется функция GET:
(GET (атом 1) (атом 2)) -> значение свойства, задаваемого атомом 2 в точке, определяемой атомом 1, если оно существует; иначе NIL. Например:
(GET 'ПЬЕР 力ЕТИ) —(水АН ЖАК).
Создание новых конструкций в языке Лисп
В языке Лисп имеется возможность создавать новые функции. Для этого используется функция DEFUN: (DEFUN <атом> (〈pl〉<р2> ... <рп>)〈5、внраженне〉),где атом представляет собой имя функции, которую хотят создать, Pi, ..., рп ——формальные параметры или связанные переменные, а (5-выражение) представляет собой тело функции.
В качестве первых простых примеров построим две уже известные функции, как если бы их в системе не было.
(DEFUN LONGUEUR 亿)
(COND ((NULL 厶)0) ; если /, есть NIL, то 0
(Г (ADD1 (LONGUEUR (CDR £))))))
;иначе добавляется 1 и удаляется CAR.
;так может быть воссоздана функция ;LENGTH
— LONGUEUR; система возвращает имя функции.
Также просто задается функция REVERSE, которая изменяет на обратный порядок следования “братьев” первого уровня:
(DEFUN REVERSE (S)
(COND ((NULL S)S); если А есть NIL, то S
(T (APPEND (REVERSE (CDR (5)) (LIST (CAR 5))))))) -> REVERSE
Теперь построим функцию UNION — функцию объединения двух множеств, представленных списками, состоящими
только из атомов:
(DEFUN UNIQN (£ 户);результат будет помещен в F
(COND ((NULL Е)戶)
((АРР (CAR E)F) (UNION (CDR £)尸))
;если первый элемент е нз Е уже
;принадлежит 戶,то продвигаются
;дальше в Е.
;АРР — функция, которую предстоит
;еще построить;
;иначе нужно добавить с к 尸 и
;продолжить аналогично
;предыдущему.
(Т (UNION (CDR Е) (CONS (CAR Е)尸)))) —UNION
Построим функцию двух аргументов АРР:
(DEFUN АРР (Л X); • Атом 力 имеется в X?
(COND ((NULL X) NIL) ; нет, если множество X
;пусто
((EQUAL Л (CAR X)) Т) ; да, имеется
;иначе погружаются
;дальше в мно-
;жество X
(Т (АРР Л (CDR X)))))
f АРР
Например:
(UNION \А ВС D £) ” U В Q У)) f (Е С A Z U В D Y)
Теперь построим функцию Р1Л|Р для определения списка элементов последовательности uiy которая задана следующим образом:
(〃"2, если ип четное, 〃"+1 — ( иначе 3% + 1.
(DEFUN PIMP ⑷
(PRINT и) ; печатаются последовательные значения
(COND ((EQUAL u 1) NIL); останов, если и = 1
(ZEROP (REMAINDER а 2)) ; случай
;четного и:
(PIMP (QUOTIENT u 2)))
(Г (PIMP (ADD1 (TIMES u 3))))))
f PIMP
Например:
(PIMP 17)f 17 52 26 13 40 20 10 5 16 8 4 2 1.
Опишем функцию FILTRE, или uсопоставление с образ- цомп, которая сравнивает две цепочки символов F (по форме) и Е (по содержанию). Эта функция является частным случаем алгоритма унификации, рассмотренного в гл. 3.
Символы нз F н 力 сопоставляются по одному слева направо. Если они идентичны, процесс продолжается. Однако некоторые символы из 尸 могут быть специальными символами, например +, *, и желательно, чтобы, напрммер, с символом + из 尸 были бы сопоставимы любые символы Е. Тогда функция FILTRE будет давать например, (FILTRE,(А + С, Г(А В С)) ^Т.
Символом * из 户,например, должно сопоставляться некоторое число символов из Е, например:
(FILTRE f^CY (Л 8 C))f Т.
Тогда функция FILTRE определяется следующим образом:
(DEFUN FILTRE (尸 Е)
(COND ((AND (NULL 戶)(NULL E)) T) ; F и Е пусты ((OR (NULL 尸)(NULL E)) NIL); одно из мно-
;жеств пусто
((OR (EQUAL (CAR 戶)(CAR £)
(EQUAL (CARFY + )); случай .
;С СИМВОЛОМ +
(FILTRE (CDR 戶)(CDR E)))
((EQUAL (CAR F) z*) ; случай с символом * (COND ((FILTRE (CDR F) (CDR £)))
((FILTRE 戶(CDR £)))))
(T NIL))) ; иначе неудача
f FILTRE
В последней функции COND части, относящиеся к результату, пусты. В этом случае, как известно, результатом является часть самого теста. В одном случае символ обработан аналогично символу +, а в другом осуществляется переход в £ к следующему символу, не сдвигаясь в F, и затем вновь происходит обращение к функции FILTRE. Это означает, что * как бы “а6・ сорбировала" данный символ. Рассмотрим пример работы
функции FILTRE:
(FILTRE ('(* В К + М * Z) \В АО В А В К L MY Z)) —Т
Форма LET позволяет воздействовать на значения идентификаторов, которые затем используются в качестве аргументов выражений. Функция LET помогает отказаться от многократных расчетов одних и тех же величин. Она задается следующим образом:
(LET (имя 1 5-выражение 1)
(имя 2 S-выражение 2)
(имя и S-выражение п))
(выражения)*) -> значения выражений, имена которых были заменены значениями исходных выражений.
Ниже дан пример использования LET:
(DEFUN PGCD N\ У2)
(LET ((M (REMAINDER AH У2)))
(COND ((ZEROP M) 22)
(T (PGCD ^2 M))))))
Функции FEXPR и MACRO
Функция FEXPR не вычисляет значений своих аргументов. Ее синтаксис задается следующим образом:
(DEFUN (имя функции) FEXPR (параметр) (тело)).
Ниже дается пример использования этой функции:
(DEFUN ПЕЧАТАТЬ FEXPR (Р) (PRINT Р)) ПЕЧАТАТЬ
(ПЕЧАТАТЬ ЭТУ ФРАЗУ)
->(ЭТУ ФРАЗУ)
К функциям типа FEXPR относятся функции QUOTE, SETQ, COND.
Функция типа MACRO сначала производит интерпретацию тела функции, после чего вычисляется ее значение. Эта функция используется следующим образом:
(DEFUN (имя функции) MACRO (посредством) (гело)).
В качестве примера рассмотрим построение классической процедуры ЕСЛИ ... ТО …ИНАЧЕ. При этом в качестве параметра будет список: (ЕСЛИ ПРОВЕРКА ДЕЙСТВИЕ 1 ДЕЙ-
СТВИЕ 2). Так как выражения ПРОВЕРКА, ДЕЙСТВИЕ 1, ДЕЙСТВИЕ 2 неизвестны при вызове, используется функция подстановки SUBST, чтобы надлежащим образом ввести эти выражения в функцию COND, значения которой будут вычисляться: .
(DEFUN ЕСЛИ MACRO ((SUBST (CADR X)(SUBST (CADDR X)(SUBST (CADDDR X) 7COND->ЕСЛИ((DEFUN ЕСЛИ MACRO ((SUBST (CADR X)(SUBST (CADDR X)(SUBST (CADDDR X) 7COND->ЕСЛИ('ПРОВЕРКА/ДЕЙСТВИЕ 1"ДЕЙСТВИЕ 2(ПРОВЕРКА ДЕЙСТВИЕ 1)ДЕЙСТВИЕ 2))))))'ПРОВЕРКА/ДЕЙСТВИЕ 1"ДЕЙСТВИЕ 2(ПРОВЕРКА ДЕЙСТВИЕ 1)ДЕЙСТВИЕ 2))))))
(DEFUN ЕСЛИ MACRO (
(SUBST (CADR X)
(SUBST (CADDR X)
(SUBST (CADDDR X) 7COND
->ЕСЛИ(
(DEFUN ЕСЛИ MACRO (
(SUBST (CADR X)
(SUBST (CADDR X)
(SUBST (CADDDR X) 7COND
->ЕСЛИ(
'ПРОВЕРКА
/ДЕЙСТВИЕ 1
"ДЕЙСТВИЕ 2
(ПРОВЕРКА ДЕЙСТВИЕ 1)
ДЕЙСТВИЕ 2))))))
'ПРОВЕРКА
/ДЕЙСТВИЕ 1
"ДЕЙСТВИЕ 2
(ПРОВЕРКА ДЕЙСТВИЕ 1)
ДЕЙСТВИЕ 2))))))
2ЛЗ. ГрафыОбобщение виде деревьев ство объектов2ЛЗ. ГрафыОбобщение виде деревьев ство объектов
2ЛЗ. Графы
Обобщение виде деревьев ство объектов
2ЛЗ. Графы
Обобщение виде деревьев ство объектов
Выражение (SUBST х у z) производит подстановку х вместо каждого у в выражении 2. Отметим, что каждое использование функции SUBST оказывает воздействие на всю последовательность действий программы. Определенная выше функция MACRO сама производит трансформацию своей собственной программы.
символического представления выражений в приводит к понятию графа. Граф G есть множе- х (называемых вершинами), на котором задано
Рис. 2.29. Пример графа.
бинарное отношение. Это множество обозначается следующим образом: G = (X, 7?). Отношение R задается множеством пар вершин, которые оно связывает. Например:
Х = {1, 2, 3, 4, 5}
R={(1, 1), (1, 2), (1, 3), (1, 4), (2, 4), (3, 4),(3, 5)}
Если отношение R симметрично (что предполагается для графа, представленного на рис. 2.29), пары вершин из R не ориентированы и называются ребрами. В противном случае
порядок расположения вершин мнив паре (и, и) из/?является существенным, и такие пары вершин называются дугами. Наиболее естественной интерпретацией графа представляется схема связей между точками, например телефонная или дорожная сеть (в общем случае являются неориентированными), или электрические сети (являются ориентированными в случае использования постоянного тока). .
Определения
Граф G,= (У, У) называется частичным (или партитивным) графом графа G = (X, U), если и только если У = X и V и U. Он является подграфом, если и только если У и X н если V = =U — W\ причем W = {(vt w)t где о w (X — У) или w 曰 w (X— У)}. В этом случае из G удалено некоторое множество вершин вместе со всеми инцидентными им дугами. Если и = = (%, у) принадлежит U, то х называется начальной вершиной и, а у ——конечной вершиной и и соответственно х есть вершина, предшествующая вершине у, а у — вершина следующая за %. Степенью вершины называют число соседних с ней вершин, т. е. число вершин, которые являются предшествующими и последующими по отношению к рассматриваемой вершине.
Путем от вершины а к вершине b на графе G = (X, U) называют конечную последовательность вершин графа G (s, 仃2,•. -, с”), такую, что ci = а, сп = Ь и Vi(cit c(-i) принадлежит U. Если G является неориентированным графом, достаточно, чтобы в приведенном выше определении либо пара (с(, c『_i), либо пара (d, Q)принадлежала U; тогда говорят о цепи от а к Ь.
Контуром (циклом) называют путь, который заканчивается на своей начальной вершине (а 三 Ь).
Если для каждой пары вершин а и Ь из G существует цепь от а к Ь, то граф G называют связным (или сильно связным, если существует путь).
Использование графов позволяет представлять многочисленные различные ситуации (в том числе, уже упоминавшиеся выше различные сети). С их помощью можно моделировать основные формы связи и подобные им отношения, материальные или информационные потоки, химические формулы, символьные выражения в общем случае, так как деревья являются частным случаем графов (графики функций в математическом анализе также являются частным случаем, поскольку они являются графическими изображениями множеств точек (%, /(%)).
В гл. 4, 5 и 8 рассмотрены многочисленные примеры полезности использования графов и их больших возможностей при моделировании.
Глава 3
ФОРМАЛЬНЫЕ СИСТЕМЫ
Введение
В формальной логике разрабатываются методы правильных рассуждений, представляющих собой цепь умозаключений в логически последовательной форме. Рассуждения в ней изучаются с точки зрения формы, а не смысла, и с этой целью в обычных рассуждениях выделяются определенные элементы, которые могут замещаться в них произвольным образом какими-то другими элементами. Например, в хорошо известном силлогизме (обычно приписываемом Аристотелю, но в действительности принадлежащему Г. Оккаму (1349 г.))
“Людн ——смертны, Сократ ——человек, следовательно, Сократ смертен''
в обоих случаях вхождения слов uчеловек (люди)", “смертен (смертны)“Сократ” могут быть заменены любыми другими словами и при этом само рассуждение останется формально допустимым. Таким образом, уже простая замена таких слов в рассуждениях символьными обозначениями позволяет строить обобщенные суждения на основе подобных рассуждений. Так, в, приведенном примере абстрактная модель этого рассуждения принимает следующий вид:
“Если все х суть у и если z есть х, то z есть у”.
В силлогистике, создателем которой был Аристотель, как раз и начали систематически применяться такие замещающие символы, позднее получившие название переменных (впервые они встречаются в “Органоне”).
Однако при формальном описании рассуждений, подобных тем, что встречаются в обычном языке, недостаточно введения одних только переменных. В 9ToM случае возникает необходимость в словах типа “вели, тогда, или, и, так как, следователь- но”,а также в таких глаголах, как “есть, принадлежит, влечет, следует", которые играют фундаментальную роль в рассуждении. Это фундаментальные элементы представляют собой слова——связки формального рассуждения и не допускают никаких замен. Например, рассматриваемый нами силлогизм тут же разрушается, если заменить в нем второе по порядку следования Иеслим на “нлн”. Такие фиксированные, незаменяемые элементы называются операторами.
Отметим, что в обычном языке союз «или》может принимать различные значения. Иногда он означает «или то или другое, или и то и другое вместе» (это или вклюштельное), а иногда «или» означает «одно из двух — либо то, либо другое》(это или исключительное). Аналогично глагол “есть, является'1 означает иногда включение, иногда равенство, а иногда принадлежность. В связи с этим возникает необходимость использовать различные символы для обозначения и отражения различных значений и оттенков подобных слов.
Одна из задач формальной логики ——выявление неоднозначностей и изучение отдельных этапов рассуждений или выводов, когда шаг за шагом строго доказывается их правильность вне зависимости от используемой интерпретации и не остаются неясности ни на одном этапе.
Став составной частью философии и имея в числе своих создателей таких великих ученых, как Аристотель, Авиценна, Абеляр, Кант, Лейбниц, формальная логика с течением времени приобретает все более математический характер. Благодаря результатам, которые были получены в этой области Д. Венном, Г. Булем, А. Морганом и затем стали использоваться в других научных дисциплинах, начинает осуществляться мечта Лейбница о разработке и практической реализации универсальной символики. Однако здесь необходимо отличать формализованные рассуждения от аргументации, используемой людьми в устной или письменной обычной речи, хотя первоначально логика была теорией правильной аргументации.
Лишь начиная с трудов Г. Фреге, затем Г. Пеано и, наконец, с монументального труда Б. Рассела и А. Уайтхеда «Основания математики» (1913 г.), формальная логика полностью отделилась от разговорного языка и выделилась в самостоятельную дисциплину, базирующуюся на собственной знаковой системе. При этом возникли новые и серьезные проблемы, в частности следующие: •
Не приводит ли к порочному кругу идея изучения на формальном уровне с. помощью собственных формализмов самой формальной логики?
В какой степени допустимо распространение математических методов на логику?
Каким образом переходить от логического символизма, свободного от смысловогр содержания, к конкретной интерпретации, связанной с той или иной предметной областью?
Интересно отметить, что уже начиная с времен Древней Греции “Начала" Евклида считались примером строго дедуктивного рассуждения. И лишь только в 1882 г. М. Паш сформулировал в явном виде несколько фундаментальных гипотез, кото-
рые до этого времени только подразумевались (например, утверждение о том, что между двумя любыми несовпадающими точками всегда найдется третья точка, отличная от первых двух).•
В 1895 г. Д. Гильберт предложил программу построения всей математики на основе ограниченного числа аксн。弘 Однако в 1931 г. К. Гедель своей знаменитой фундаментальной теоремой показал, что такая программа неосуществима. Он также указал на внутренние ограничения теории формального вывода и вообще формальных систем.
Важность подобного подхода, связанного с теорией теории или метатеорией, отмечается на протяжении всей книги.
Определение формальной системы
Формальная система представляет собой совокупность чисто абстрактных объектов (не связанных с внешним миром), в которой представлены правила оперирования множеством символов в чисто синтаксической трактовке без учета смыслового содержания (или семантики).
Формальная система определена, если:
Задан конечный алфавит (конечное множество символов).
Определена процедура построения формул (или слов) формальной системы.
Выделено некоторое множество формул, называемых аксиомами.
Задано конечное множество правил вывода, которые позволяют получать из некоторого конечного множества формул другое множество формул. Эти правила могут быть представлены в виде
Ui и U2 H ... Up->Wi и W2 и ... Wni
где Ui и Wj ——формулы формальной системы, а стрелка f читается как “влечет” или “следует”.
2.1. Дополнительные определения.
Формальную систему иногда называют также аксиоматикой, или формальной теорией, или еще проще — множеством формул.
Алфавит, который заранее предполагается конечным, иногда называют словарем. При этом в нем различаются константы, переменные и операторы (примеры в разд. 3.2.3).
Способ построения формул (п. 2 определения формальной системы) определяет конкретную синтаксическую конструкцию
формул т или грамматику формул, которые представляют собой правильно построенные последовательности символов. В отличие от этого в п. 4 определения формальной системы заданы разрешенные правила вывода формул друг из друга.
Формальное доказательство (или просто доказательство) определяется как конечная последовательность формул М2,...» Mr, такая, что каждая формула М» либо является аксиомой, либо при помощи одного из правил вывода выводима из предшествующих ей формул Mh где j V i.
Формула / называется теоремой, если существует ' доказательство, в котором она является последней, т. е. Mr ^ /. В частности, всякая аксиома является теоремой. Если t есть теорема, то этот факт кратко обозначается так: Н/.■
Правила вывода (п. 4 определения формальной системы) называют, также правилами словообразования или правилами вывода заключения. В принципе они позволяют определять, является ли данная формула теоремой данной формальной системы. Отметим также, что в соотношении
{теоремы} с: {формулы} с: {цепочки символов из алфавита}
включение множеств является строгим.
Различают два типа правил вывода: 1) правила, применяемые к формулам, рассматриваемым как единое целое (в этом случае их называют продукциями, правилами продукций или продукционными правилами); 2) правила, которые могут применяться к любой отдельной части формулы, причем сами эти части являются формулами, входящими в формальную систему. В этом случае говорят о правилах переписывания. Так, в обычной математике следующее правило вывода:
х < у и у <z влечет х < z
применяется к формуле как к целому (в данном случае к предложению математического анализа)——это продукция (с двумя антецедентами, или посылками). Слово “влечет” для краткости при использовании продукции часто заменяется стрелкой
В отличие от предыдущего правило 尤一х Н 0 имеет смысл при любом виде входящего в него в качестве подвыражения х. Оно является правилом переписывания, и в этом случае для обозначения слова “введет” используется специальная стрелка
Разумеется, и продукция, и правило переписывания имеют только одно направление вывода ——слева направо. Правило переписывания действует в обоих направлениях, если только заданы два правила: а*—>й иИначе при использовании
одностороннего правила переписывания как двустороннего
в рассуждениях может получиться порочный круг (что часто случается с детьми).圻
Замечание. Множества, указанные в пп. 3 и 4 определения формальной системы, не обязательно должны быть конечными: достаточно, чтобы они были рекурсивно перечислимы. Однако в последующем изложении мы будем предполагать, что они являются конечными.
Правило подстановки
Правило подстановки пригодно для использования в любой формальной системе. Чтобы применить правило вывода к какой-нибудь формуле М, принадлежащей к некоторой формальной системе, надо совместить Левый элемент правила Q с М. Это осуществляется при помощи подстановок в Q и/или в М. Подстановка заключается в замещении всех вхождений какой- либо переменной на формулу из формальной системы, которая не содержит этой переменной.
3. Примеры формальных систем
Пример 1. Формальная система (JP)
Алфавит 三{а, Ь, □}.
Формулы: символ или какая-либо последовательность символов а или Ь, или □.
Одна аксиома: а □ а.
Одно правило вывода: Ci □ с2 f bci □ be?.
Принято, что в этом правиле вывода символы q и 方 означают какие-то последовательности символов а или 力 формальной системы (JP) и могут быть замещены любыми последовательностями символов а или Ь.•
Символы с и с? не являются символами формальной системы (JP). Они служат только посредниками для формализации правил вывода. Учитывая способ образования формул не- замещаемые символы а н b называют константами, а незаме- щаемый символ □——оператором.
Из определения данной формальной системы непосредственно вытекает следующий способ получения допустимых формул, т. е. формул, выводимых согласно правилу п. 4 определения данной формальной системы: достаточно рассмотреть лишь все комбинации, получаемые при последовательном применении правила 4 к аксиоме 3 нашего примера. В результате мы имеем
а □ а
b а ЦУ а b
b b а П a b b
ЬЬЬаПаЬЬЬит. д,^
Очевидно, что, например, выражение baab □ abba не могло бы быть допустимой формулой в данной формальной сйётеме. Мы еще вернемся к рассмотрению этой системы в разд. 3.5.
Пример 2. Формальная система (DH)
Бaх--Бaх--Д. Хофштедтер в своей объемистой книге иГедель, Эшер,
Бaх--
Бaх--
золотой венок вечности11 прослеживает проявление идеи
рекурсии и автоморфизма в логике, теоремах Геделя, информатике, странных рисунках Эшера, .фугах, канонах и экспромтах Баха. Приводимая ниже формальная система (DH) взята из
первой главы этой книги:
Алфавит: М, /, U.
Формулы: любая последовательность символов данного
алфавита.
Одна аксиома: ML
Правила вывода:
правило 1: ml mIU (продукция);
правило 2: Мт -> Мтт (продукция);
правило 3: III и—> U (правило переписывания);
правило 4: UU ь^ (правило переписывания).
То, что правило 1 является продукцией, означает в данном случае, что оно применяется только, если последняя буква теоремы есть /. В этом случае, например, из теоремы MIUMIUMI выводится теорема MIUMIUMIU. Отметим, что символ m не принадлежит символам данной формальной системы, а просто играет роль некоего слова.
Правило 2 позволяет из теоремы MUI вывести теорему MUIUI при условии, что MUI является теоремой. Правило 3 позволяет, например, сделать переход от теоремы MUIIIUM к теореме MUUUM. Последнее правило 4 указывает, что всякая цепочка из двух рядом стоящих символов U может быть просто удалена из теоремы. Например, теорема MUUUUMM равнозначна теореме МММ. Ниже приводятся примеры использования правил вывода данной формальной системы:
а) М/
(аксиома);
б) МП
(правило 2 применено к а);
в) МНИ
(правило 2 применено к б);
г) MIIIIU
(правило 1 применено к в);
д) MIUU
(правило 3 применено к г);
е) М/
(правило 4 применено к д).
Читателю предлагается; нсцользуя правила вывода дайной формальной системы, решить задачу, предложенную Д. Хоф- штедтером: получить теорему MU из исходной аксиомы данной формальной системы.
Разрешимость и интерпретация формальных систем
Разрешимость
Первым вопросом, который возникает при задании формальной системы, является вопрос об инверсии, т. е. о том, возможно ли, рассматривая какую-либо формулу формальной системы; определить, является ли она доказуемой или нет. Другими словами, речь идет о том, чтобы определить, является ли данная формула теоремой или не-теоремой и как это доказать. В математике предполагается, что при задании формальной системы существует хорошо определенный способ действий, который за конечное число шагов позволит получить ответ на данный вопрос. Такой способ, если он существует, называется процедурой решения, а соответствующую формальную систему называют разрешимой. Однако основная трудность заключается в том, что такие процедуры существуют далеко не всегда, даже для таких простых и фундаментальных теорий, как исчисление предиктов первого порядка (разд. Д5). Причина этого состоит в следующем. Даже если применять працила словообразования (т. е. правила построения формул, правил^ вывода) последовательно ко всем возможным объектам формальной системы и формальная система такова, что Имеется принципиальная возможность полного перечисления ее теорем (даже при бесконечном их числе), то все же не существует ни^ако^б подходящего способа в общем случае, чтобы перечислить все не-теоремы,
В данном случае эту проблему Нельзя решить и с помощью комбинаторных методов, так как если после какого-то числа проведенных операций еще не получено определенного ответа на вопрос о характере рассматриваемой формулы,, то нет возможности определить причину этого:, то ли рассматриваемая формула не является теоремой, ТО ли сама формальная система не является разрешимой. Поэтому говорят, что множество теорем формальной системы необязательно является рекурсивно перечислимым.
Интерпретация
Формальные системы являются не просто игрой ума, а всегда представляют собой мидель какой-то реальности (либо конкретной, либо математической).
Интерпретация представляет собой распространение исходных положений какой-либо формальной системы на реальный мир. Интерпретация придает смысл каждому символу формальной системы и устанавливает взаимно однозначное соответствие между символами формальной системы и реальными объектами. Теоремы формальной системы, будучи однажды интерпретированы, становятся после этого утверждениями в обычном смысле слова, и в этом случае уже можно делать выводы об их истинности или ложности.
Отметим, что речь идет о замыкании или логическом завершении понятия математического подхода. Вначале математик изучает реальность, конструируя некоторое абстрактное представление о ней, т. е. некую формальную систему. Затем он доказывает теоремы этой формальной системы. Вся польза и удобство формальных систем как раз и заключаются в их абстрагировании от конкретной реальности. Благодаря этому одна и та же формальная система может служить моделью многочисленных различных конкретных ситуаций. Наконец, он возвращается к исходной точке всего построения и дает интерпретацию теорем, полученных при формализации. Необходимо, конечно, чтобы для данной формальной системы всегда существовала по крайней мере одна интерпретация, в которой каждая теорема данной формальной системы была бы истинной.
Конкретная формальная система является тем более интересной, чем больше существует для нее различных интерпретаций. В таком случае наличие даже какого-то одного формального доказательства уже обеспечивает получение различных конкретных результатов. В современной математике большой интерес вызывают формальные системы самого общего характера, которые исследуются в теории категорий и теории моделей.
Доказательство и истинность
Из приведенных выше определений существует уже по построению глубокое различие между концепциями доказательства и истинности. Эти понятия относятся к двум различным областям. Априорно ничто не гарантирует, что всякое утверждение, истинное в обычном смысле слова, соответствует какой- то доказуемой формуле. Ведь не только то истинно, для чего у нас есть доказательство!
На самом деле имеются четыре варианта взаимоотношений между доказательством и значением истинности, поскольку формула, с одной стороны, может быть теоремой (обозначается
символом Г на схеме, изображенной на рис. 3.1) либо не-теоре- мой (AZT), а с другой стороны, ее интерпретация может быть истинйой (V) либо ложной (尸).
Первый вариант (Т, У), когда интерпретация истинна, не представляет проблемы. Если формула доказуема и соответствует определенной интерпретации, значение которой ложно, то такая интерпретация просто не представляет интереса. Вариант
Рис. 3.1. Четыре класса сочетания теорем (Т) и не-теорем (NT) и значений истинности ИСТИНА (V) и ЛОЖЬ (F).
(Л F) исключается из рассмотрения и может использоваться для определенной корректировки рассматриваемой формальной системы таким образом, чтобы с ней остались связанными только те интерпретации, значения которых истинны для всех теорем системы. Теперь рассмотрим варианты (NT, V) и (NT, F), соответствующие не-теоремам. Что касается варианта 4, то весьма желательно, чтобы значение “ложь” было бы присвоено всем не-теоремам; однако это не всегда1 возможно (разд. 3.4.1). Тем не менее наиболее часто используемые формальные системы относятся именно к этому случаю, как, например, логика высказываний (которую называют также пропозициональной логикой или исчислением высказываний). Логика высказываний рассмотрена в разд. 3.4.
Наиболее сложным является вариант〈NT、V), когда не всегда можно избежать трудностей, заключающихся в том, что могут существовать не~теоремы данной формальной системы, которые в определенных интерпретациях являются истинными, причем такие интерпретации часто оставляются для рассмотрения. В качестве примера назовем знаменитое утверждение Ферма: “Для всякого целого 九 > 2, уравнение в целых числах хп уп = 2П не имеет решения''. Вполне возможно, что оно является истинным в обычной интерпретации, где используемые
символы имеют обычный арифметический характер. Это утверждение проверено с помощью ЭВМ, на которой оно просчитано до значений п = 10 000. Однако остается возможность того, что оно недоказуемо в существующей арифметической аксиоматике. Еще более неприятным является тот факт, что (как показано в разд. 3.6) существуют формальные системы, в которых класс формул(NT, V) не является пустым ни при какой интерпретации!
Сюда относится и проблема наличия ограничений формализмов. Одни из них связаны с формой представления (записи) интерпретации, в то время как другие ограничения от этого не зависят. Однако во всех случаях существует одна и та же проблема: исходя из аксиом и правил вывода, во-первых, как сделать хороший выбор исходных из них для быстрого получения доказательства конкретной формулы в качестве теоремы и, во- вторых, как доказать, что некая формула недоказуема в данной формальной системе? В общем случае проблема, поставленная таким образом, является неразрешимой.
Зная, что комбинаторные методы в нашем случае неэффективны, мы будем подходить к проблеме исследования формальных систем со строго формальной точки зрения, что позволит получить результаты, выявляющие формальные свойства формальных систем. В свою очередь это позволит значительно усовершенствовать и сами комбинаторные методы. Например, если в данной формальной системе не употребляется какая-то константа (например, А) ни в аксиомах, ни в правилах вывода, то она не может появиться и ни в одной теореме. Другим подобным примером является следующий: если никакое правило вывода данной системы не порождает формулы, более длинной (т. е. содержащей большее чцсло символов), чем теорема, к которой оно применяется, то всякая теорема большего размера, чем аксиома, может быть удалена из рассмотрения. В этом случае всегда можно получить результат за конечное число шагов, так как дерево поиска уменьшено в этом случае до конечной величины &L", где L ——число символов в алфавите, а 几—— длина доказываемой формулы.
Фундаментальная важность такой метатеории показана ниже при рассмотрении двух введенных ранее формальных систем, а также двух классических формальных систем: логики высказываний и исчисления предикатов первого порядка. Именно такой подход позволил трем великим математикам Черчу, Геделю и Тарскому получить к 1930 г. весьма общие результаты, относящиеся к формальным системам. Эти результаты рассмотрены в последующих разделах данной главы.
Примеры формальных доказательств
Пример 1. Формальная система (JP)
Эта система определена в разд. 3.2.3 °. В ней в качестве аксиомы и правила вывода определены
1 а □ а
б □ с「Ьс\ □' Ьс2
Теоремы в этой системе получаются следующим образом:
Ьа □ ba, bba □ bba, bbba □ bbba,...
Очевидно, что теоремы здесь совпадают с формулами вида
b Ьа □ b Ьа,
где символ b повторяется по р раз до и после символа □. В сокращенном виде это может быть записано
Ьра □ 6Q,
где по соглашению выражение 加 обозначает р-кратную конкатенацию Ь, причем bQ соответствует пустому символу. Это наше соглашение уже вводит фактически метаобозначение, поскольку возведение в степень не является операцией исходной формальной системы.
Отметим, что при рассмотрении этой формальной системы необходимо использовать систему более высокого уровня — формальную арифметику.
Замечание. Необходимость различать язык и метаязык возникает в ситуациях, когда естественный язык выполняет одновременно две различные функции:
указание соответствующего фрагмента в произведении;
определение на языке грамматики этого же языка.
Это различие является фундаментальным для информатики, где специальные программы (компиляторы) предназначены для преобразования на язык другого уровня исходных программ.
Определение какого-либо языка программирования в форме Бэкуса ——Наура задает формальную систему, которая определяет допустимые выражения этого языка:
(Программа):= (Команда)((Программа) (Команда)
11 На самом деле данная система несколько отличается от системы в разд. 323, к которой автор еще вернется в разд. 3.5. — Прим. ред.
Эта запись означает, что программа представляет собой команду или программу с последующей командой:
(Команда) := "〈Комментарий〉[(Строка) |(Метка)
I (Метка) (Строка)
(Комментарий) := Пусто |(Буква) (Комментарий)
и т. д. Таким образом, все символы между угловыми скобками последовательно определены.
Построим процедуру решения для формальной системы (JP): подсчитывается число р ——число вхождений символа Ъ в головной части формулы ——кандидата в теоремы, затем проверяется, является ли символ, который следует за 6, символом а, следующий за ним ——символом □, и затем проверяется, следует ли за этим символом- □ вновь р символов b и после них последний символ а. Если проверяемая формула удовлетворяет этим условиям, она является теоремой. В противном случае она есть не-теорема.
Теперь введем две интерпретации системы (JP).
Первая интерпретация. Условимся, что символ а представляет нуль, символ Ь обозначает последующее целое число за числом, стоящим справа от него на множестве целых чисел, и символ □ обозначает знак равенства. Тогда аксиома интерпретируется как ;0 — 0 и является истинной. Последовательность теорем отображается последовательностью равенств 1 = 1,2 = =2, ..., р = р, которые все истинны. В противоположность этому формула 1 =2, которая не вытекает из- интерпретации какой-либо теоремы, является для нас очевидно ложной. (Эта формула следует из не-теоремы Ьа □ bba.) Таким образом, имеется корректная интерпретация системы (JP) в обычной арифметике с полным соответствием Т ^~> V и NT ^~> 尸.При этом клетки 2 и 3 на рис. 3.1 являются пустыми.
Вторая интерпретация. Теперь пусть а обозначает предложение: “Сократ смертен", знак □ — идентичность двух предложений, и символ b означает отрицание. Тогда аксиома формулируется следующим образом:
“Сократ смертен” идентично uСократ смертен", что рассматривается нами как истинное выражение.
Первая теорема Ьа □ Ьа приобретает следующую форму: uСократ бессмертен" идентично “Сократ бессмертен”, что истинно. (Отметим, что на самом деле здесь не имеет значения то, был ли Сократ смертен или нет, так как оба предыдущих выражения утверждают только, что ложь идентична лжи, а истина — истине.)
Рис. 3.2. Дерево ветвлений для MU.
Но для формулы bba □ а, которая является не-теоремой в (JP), соответствующее выражение формулируется следующим образом: uотрицание того, что Сократ бессмертен, идентично тому, что Сократ смертен”. Это выражение также истинно в противоположность тому, что имелось в первой интерпретации. В этой интерпретации третий класс (NT, V) (рис. 3.1) уже не пуст и рассмотренное выше последнее выражение никогда не будет интерпретацией какой-либо теоремы из (/Р).
■ Пример 2. Формальная система (DH) .
Формальная система (DH) (рис. 3.2) имеет следующие правила вывода:
ml
Mm Mmm,
〃/f U,
UU 一
С учетом поставленной выше задачи вопрос заключается в том, является ли формула MU теоремой в системе (DH), выводима ли она из аксиомы ML Проведем формальное исследование системы (DH) на метауровне.
Прежде всего очевидно, что в системе (DH) могут порождаться только формулы, начинающиеся с символа М. Действительно, оба правила — продукции 1) и 2)—не изменяют начало слов. С этой точки зрения MU может являться теоремой. Впрочем, для достижения цели необходимо устранить пб крайней мере один символ 7, уже 'имеющийся в аксиоме. Для этого можно использовать только правила 2 и/или 3, так как правила 1 и 4 оставляют неизменным число символов в формуле.
Правило 3 уменьшает общее число символов / на 3 единицы, а правило 2 напротив, каждый раз удвцивает это число. Следовательно, правило 2 создает только четные числа символов /, тогда как правило 3 уменьшает их только на 3 единицы. Таким образом, чтобы получить число символов /, равное нулю, нужно применить правило 3 к формуле, содержащей число символов /, кратное трем, причем их должно быть только 3 до последнего применения правила- 3. А так как правило 2 порож-
Рис. 33 Схема возможных переходов системе DH при использовании правил 2 н 3.
дает только четные числа символов /, то оно не сможет породить такие формулы. Следовательно, MU не является теоремой формальной системы (DH),
Отметим, что для получения этого результата снова был использован результат из другой формальной системы ——формальной арифметики (и это не случайно), состоящий в следующем: для того чтобы число 2々 делилось на 3, необходимо, чтобы на 3 делилось и число А, так как числа 2 и 3 не имеют общих делителей. А так как правила 2 и 3 не могут порождать число символов /, кратное трем, и в аксноме не содержится число /, кратное трем, то невозможно и получение таких формул.
Приведенные выше рассуждения можно более кратко и просто представить с помощью новой формальной системы, моделирующей правила 2 и 3 системы (DH) :
Аксиома? I = 1 (чис^о символов / в аксиоме (DH));
Правило 2: i = ■» (результат действия правила 2);
Правило 3: if i — 3 (результат* действия правила 3).
Необходимо определит^ можно ли в этой системе получить i = 0. Нельзя получить формулы с числом символов /, кратным трем. Формулы типа М, MU0; MIIIU... не могут быть теоремами в (О//). На рис. 3.3 показаны возможные переходы между формулами в системе (DH) при использовании правил 2 и 3.
Полученную формальную систему над i можно упростить с помощью схемы, показанной на рис. 3.2, где возможными возвратными шагами являются только шаги с уменьшением на 3 единицы за шаг имеющегося числа единиц 1. Действия по модулю 3 отражают этот существенный факт. При / = i по мо-
дулю 3 (второе изменение первоначального представления), так как правило 3 оставляет / неизменным и так как 2, по модулю 3 равно (2i —* i) по модулю 3 и равно —j, то получаем новую 巾ормаль电ю систему над /:
Аксиома: j = 1;
Правило 3: / = —/.
Необходимо определить, можно ли в этой формальной системе получить / = 0.
Очевидно, что получение MU в системе (DH) не может быть осуществлено, поскольку j не могут попеременно принимать значения +1 и —1.
Исчисление высказываний
Эта формальная система, которую называют также логикой высказываний или пропозициональной логикой, определяется следующим образом.
Алфавит:
Пропозициональные буквы р, % г, s,力 …;
Логические операторы ~1, п (читаются соответственно “не” и uвлечет, следуетп);
Скобки (,);.
Построение формул (или пропозициональных форм):
Любая пропозициональная буква суть формула.
Если /и есть формула, то и (加)также является формулой.
Если /и есть формула, то и ~|т также является формулой.
Если "Zi и /и? являются формулами, то и выражение ш\ п 加2 также является формулой.
Аксиомы:
(А1) (/и】п (加2 п加)・
(А2) (mj n (m2 n /Из)) n ((加【n /и2) n (mx n mJ).
(АЗ) (Г/и2 n「M|) n (加1 n 他2).
Здесь /Иь 加2,7"з являются пропозициональными формами или формулами.
Одно правило вывода (правило модус поненс, или правило отделения):
Если ш\ и (加1 п /и?) суть теоремы, то 加2 есть следствие гп\ (т. е. /и? выводимо из /и».
Формально это правило записывается следующим образом:
(/и) и (mi n m2) —* т2.
Начиная с момента создания этой формальной системы, использовалась ее интерпретация, моделирующая рассуждения
обычной логики, где буквы рассматриваются в качестве выражений. Так, в частности, в этом смысле оператор ~| является отрицанием, а оператор п —— логической импликацией. Надо отметить, что в исчислении высказываний ни аксиомы, ни единственное правило вывода не используют специальных пропозициональных букв. Поэтому последние являются полностью взаимозаменяемыми, так что если, например,
(р n 口 g) n (г n s), то н 1 « п ~| s) n (q п г).
В исчислении высказываний разрешено вводить любые новые пропозициональные буквы, называемые свободными переменными, В этой системе не имеется констант. В ней могут использоваться другие символы, кроме заданных выше, например логическое Я, обозначаемое символом А. Такие символы могут быть определены в рамках данной формальной системы: Ш\ А /и2 по определению эквивалентно формуле И (пг\ =э /иг). Логическое ИЛИ、обозначаемое символом \/^определяется аналогично: ш\ V т2 эквивалентно формуле П (~mi А 口恤).Логическая тождественность или эквивалентность, обозначаемая символом s, определяется следующим образом: Ш\ 三加2 по определению эквивалентно формуле (g п 恤)/\ (/и2nm 1).
Рассматривая эти определения с общей точки зрения, можно заключить, что они обогащают первоначально введенную формальную систему, которая отражает обычные законы дедуктивного мьниления. В частности, можно отметить, что три закона логики, сформулированные Аристотелем, в рассматриваемой формальной системе являются строго доказуемыми.
К этим законам относятся следующие:
— закон тождества, или (р п р);
—закон исключения третьего, или (р V Пр);
—закон противоречия, или ~1 (р А ~ р).
Последний закон гласит;, что никакая теорема не может одновременно являться и теоремой, и не-теоремой.
В качестве примера доказательства в исчислении высказываний приведем доказательство приведенного выше закона тождества: “Для всякого р выполняется р п р”. Формула.
(р п ((р n р) n р))(Т1)
является аксиомой и, следовательно, теоремой (Т1). Она соответствует аксиоме (Л 1), где формула /и2.представлена цепочкой символов (р п р), а формула ш\ — цепочкой из одного символа р. Аксиома (/2) позволяет представить в качестве теоремы следующую формулу:
(9 п ((р n Р)n Р)) п (9 n(Р n р)) n (р n Р))),(Т2)
где (р п р) соответствует 加力 а р —加i и m?.
Теперь первая формула построена: теорема (Т1) суть пер-< вая часть, заключенная в скобки в (Т2). Правило модус поненс утверждает, что
i(pn(pnp))n(pnp)).(ТЗ)
Итак, сама формула (рп(рпр)) в соответствии с аксиомой (Д1) при подстановке р вместо Ш\ и /и2 представляет собой теорему. Правило модус поненс» примененное еще раз, приводит к теореме (Т4)
1(р П р).■■(Т4)
Эта формула уже точно выражает закон тождества.
Другие основные теоремы доказываются аналогично в несколько этапов:
Р ^ П П Р;
□ (р V 力三(Ip A ~1 g);
.(P 口 <7)м (】P V q).
Теорема (p n g)三(~]p V q) утверждает, что доказательство формулы (р n q) эквивалентно доказательству формулы (Пр V q). Это принцип рассуждения от противного (см. принцип резолюцин в разд. 3.10)..
Для исчисления высказываний могут быть получены некоторые метатеоремы так же просто, как и для формальных систем (")и (DH). Таким образом,
pf寸P;
(р 〃 q) — р A %
(png) u (gnr)f (pnr).
Отметим, что в этих последних варажениях "“” относится к элементам металингвистики и не является формулой исчисления высказываний. Это то же самое "н\ которое проявлялось в определении правила модус поненс. Символ в частности, не есть то же самое, что символ Л в исчислении высказываний, так (png) “ (q n г) означает на самом деле, что имеются две теоремы (р n д) н (q п г).
; Такие теоремы, полезны и даже необходимы для упрощения доказательств. В частности, они позволяют создавать новые правила вывода. В качестве примера доказательства метатеоремы рассмотрим теорему (р n (gnr)) n (q 二)(pnr)), которая является тривиальной в исчислении высказываний для пропозициональных букв pt q н г. Ниже доказан аналогичный, но более сильный результат, который значим для некоторых
формул Р, Q и R в исчислении высказываний. На самом деле будет доказано новое правило вывода
(Pn(QnR))-(Qn(PnR)).
Предположим, что (Р n (QnR)) является теоремой, которая уже доказана в исчислении высказываний. Поставим ей в соответствие левую часть аксиомы (/2), подставляя Р вместо mb Q вместо m2, R вместо /Пз・ Тогда по правилу модус по- ненс получим
(PnQ)n(PnR).
Обозначив формулу mi в аксиоме (Л 1) как У, получим теорему (Уп(/ипУ)), где т — какая-то формула. Так как У является теоремой, еще одно применение правила модус поненс позволяет вывести (т п У) либо
Теперь, подставив, в аксиоме (42) m вместо g, (Р n Q) вместо m2 H (Р n R) вместо /и3 и применив в третий раз правило модус поненс, находим (/и п (夕 n Q)) n (zn n (Р n R)).
Заменим формулу m на формулу Q и получим в левой части этого выражения снова аксиому (XI). Применив в последний раз правило модус поненс, получаем
(Q n (Р n R)),
что доказывает новое правило вывода или метатеорему в исчислении высказываний, т. е. дает новый способ построения теорем типа
(Pn(QnR))f (Qn(PnR)),
где Р, Q н R — формулы исчисления высказываний.
Важные замечания об обычных способах записи формул.
Из-за недостатков, присущих нашему обычному языку, общепринятой является запись теорем в краткой форме: Н 今 С (гипотеза имплицирует заключение) вместо того, чтобы использовать корректную форму записи (" н " п С) С
Символ uдвойная стрелка'* (今)обычно используется для обозначения некой конкатенации логического оператора п исчисления высказываний и оператора =>, принадлежащего метауровню описания этой формальной системы, который уже включает правило модус поненс. '
Много исследований, связанных с исчислением высказываний, было проведено начиная со времен Аристотеля. В 1910 г. Уайтхед и Рассел дали, наконец, строгое формальное представление исчисления высказываний, а также доказали значитель-
ное число теорем, связанных с ним. Интересно отметить, что в их работах исчисление высказываний строилось не на трех, а на четырех аксиомах. Позже Ж. Лукасевич показал, что одна из аксиом является лишней, так как может быть выведена из трех остальных. Выше была описана именно эта форма задания исчисления высказываний с уменьшенным числом аксиом. При экономном подходе исчисление высказываний может быть построено таким образом, чтобы в нем использовался один оператор вместо двух, как определено выше. Таким оператором является “штрих Шеффера" (или дизъюнкция отрицаний), который обозначается вертикальной чертой и определяется следующим образом;
pIlCР)V (Пд)・
Символ I интерпретируется как несовместность высказываний. Ж. Нико, основываясь на использовании этого единственного оператора — связки, показал в 1917 г., что исчисление высказываний может быть построено на единственной аксиоме:
⑺⑷ г))丨(s|(s|s))l(("g)l((p|/)l(pW
Показано, что формальная система, использующая эту единственную аксиому и единственный оператор, порождает те же теоремы, что и первоначальное исчисление высказываний.
Интерпретация исчисления высказываний
Вполне строго и в достаточно общем виде интерпретация исчисления высказываний может быть дана следующим образом. Пусть В — множество, состоящее из двух элементов 0 и 1, т. е. В = {0, 1}, где 0 и 1 представляют собой значения ^истинно'' и “ложно”;
с — дополнение Множества В в В, определяемое выражением с(х) = 1 — X;
и (как имеющее значение истинно) —В * В в В, при условии ЧТО V (х, у) = 1 <=> (尤=0 н у = 1).
Пусть теперь ф означает применение множества пропозициональных формул в В, обладающее двумя следующими свойствами:
中 П Р)= с (中(р)),
屮(pnq) = 0®S),屮 0?))・
Из второго равенства следует, что здесь возможно, противоречие с интуицией: если(р(〃)имеет значение 1 и ^(q) имеет значение 0, то ф(р =э ^) = v(l, 0) равно нулю. Иначе говоря,
выражение ложь о истина является истинным, т. е. из ложной посылки следует истина.
Формула т исчисления высказываний называется тождественно-истинной или тавтологией, если и только если при любых значениях составляющих ее элементов выполняется (р(/п) = 0.
Легко проверить, что три аксиомы, входящие в определение логики высказываний, суть тавтологии. Рассмотрим это на примере аксиомы (Л 1):
Ф (团1 n (m2 n mJ) = V (ф (/?:]), ф (тх n т2))= (ф (^i), 乂中(初 中(叫))).
Следовательно, при /п = (/и】n (zn2nm2)):屮(м)=0, если (p(zni) = 1 или если и(屮(加2), <Р(加J) — 0. Если (p(mi) = 1, то <p(m) равно 0. Если теперь 屮(俏1) = 0, то (по определению и) и(屮('孔2), 0) не может равняться 1. Таким образом, для любой интерпретации <р аксиома (Л 1) имеет значение 0 (истина) и, следовательно, является тавтологией.
Более того, если (mJ и (mi n т^) суть тавтологии, то поскольку ф(ги1 гэ т2) = у(ф(/И1), <р("%2)) = и (0, Ф(^2)) = 0 по предположению и 屮(加2)не может иметь значение 1, то т2 также суть тавтология. Это свидетельствует о связи правила модуса поненса со всеми интерпретациями. Продолжая эти рассуждения для более сложных формул, приходим к метатеореме 1:
Всякая теорема исчисления высказываний является тавтологией.
Определенный выше класс интерпретации делает исчисление высказываний изоморфным классической алгебре Буля с ее двумя операторами V и А и понятием дополнения, что позволяет установить весьма важную метатеорему 2:
Всякая тавтология суть теорема исчисления высказываний.
Эти метатеоремы в качестве непосредственного следствия имеют вывод о разреигимости исчисления высказываний.
Разрешимость исчисления высказываний
Пост доказал в 1921 г. следующую теорему:
Формула 尸 доказуема в исчислении высказываний, если и только если она является тождественно-истинной, т. е. истинной при всех интерпретациях исчисления высказываний.
Таким образом, исчисление высказываний характеризуется:
непротиворечивостью, т. е. / и ~\t не могут быть одновременно выводимы;
полнотой, т. е. теоремы точно соответствуют тождественно-истинным формулам;
pa3peiuuM0CTbK)t т. е. существует процедура решения.
Действительно, теоремы исчисления высказываний являются тавтологиями, т. с. высказывания принимают значения истинности, равные ИСТИНЕ, всякий раз, когда значения истинности ИСТИНА (0) или ЛОЖЬ (1) принимает все пропозициональные переменные, входящие в них.
Таблицы истинности элементарных операторов определяются в соответствии с интуитивной интерггретацией. Ниже приведены таблицы истинности для операторов -i и п
р10Пр01р10Пр01р1100g1010png0010р1100g1010png0010
р
1
0
Пр
0
1
р
1
0
Пр
0
1
р
1
1
0
0
g
1
0
1
0
png
0
0
1
0
р
1
1
0
0
g
1
0
1
0
png
0
0
1
0
В определенной таким образом интерпретации исчисления высказываний выражение р п q имеет значение “ложь" только тогда, когда р истинно, a q ложно. Это выражение (卩 ng) эквивалентно выражению Пр V q. Обычная интерпретация символа п как импликации достаточно неудачна, поскольку выражения png н ~\р V q являются истинными, лишь если р ложно (как говорится, из ложного можно вывести все, что угодно), а в обычной речи с этим связывается вывод о чем-то плохом, из-за чего возникают недоразумения..
Хорошо известный метод таблиц истинности бнл строго обоснован в 1932 г. Постом: для того чтобы формула исчисления высказываний была теоремой, необходимо и достаточно, чтобы при интерпретации она принимала значение 0 (истина), каковы бы ни были значения пропозициональных переменных, входящих в нее.
В табл. 3.1 приведен пример доказательства на основе использования таблиц истинности.
Следует отметить, что в общем случае такое соответствие между теоремами и истинностными интерпретациями вовсе не является обязательным и рассмотренная выше формальная система (JP) является примером этого.
Фундаментальный вывод, состоящий в том, что исчисление высказываний является разрешимой формальной системой^ представляет собой теорему уже уровня метасистемы, которую
р
g
г g 口 г
png
pnr
<g nr)n(pnr)
(p =)g )=)((g n r )n (p n r))
0
• 0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
следовало бы построить. Чтобы строго установить этот результат, необходимо использовать рекуррентные рассуждения в строго формализованной форме на все более и более высоких уровнях. Построение этой последовательной мета-мета-... и т. д.- формальной системы мы здесь не приводим.
Этот результат Поста представляет особый интерес, так как он выявляет адекватность исчисления высказываний классическим логическим рассуждениям, а также понятиям обычного языка. Он утверждает, что мышление и его выражение с помощью языка формализуемы (по крайней мере частично) и представимы в краткой форме с помощью чисто символьных схем и представлений. Именно в этом ожидались наибольшие трудности в программе формализации математики, предложенной Гильбертом (1885 г.). И хотя данный этап был ипройденм с достаточной строгостью и элегантностью, в дальнейшем в теории чисел возникли серьезные трудности.
Исчисление предикатов первого порядка
Уже упоминавшийся внше силлогизм “Люди смертны...0 не может быть представлен с помощью исчисления высказываний. Действительно, для его формализации необходимо ввести квантифицированную переменную "человек”, причем множественность, отражающаяся в перрой посылке силлогизма, указывает на ее универсальность'. “Всякий х, который обладает свойством “человек”, смертен'1.
Чтобы выразить этот силлогизм в формализованном виде, необходимо использовать более мощную формальную систему, чем исчисление высказываний. В данном случае высказывания р, q, г, ... уже не могут, как выше, рассматриваться в качестве неких однородных целостностей, и поэтому становится необходимым рассмотрение каких-то свободных параметров, связан-
ных с ними, называемых индивидными, или предметными переменными. Первая посылка нашего примера в формализованном виде записывается так:
(Vr) (человек (х) п смертен (尤)),
где х является квантифицированной или связанной переменной, а выражения "человек" и “смертен" являются предикатами, где сами предикаты первого порядка не квантифицированы. Фор- • мальная система, соответствующая изложенным выше требованиям, получила название — исчисление предикатов первого порядка (или исчисление предикатов).
Определение исчисления предикатов первого порядка.
Алфавит:
• • • • • 6• • • • • 6константы: a, b, с, d,
• • • • • 6
• • • • • 6
индивидные переменные: /, и, и, w, х, у, 2,...;
предикаты: А, В, С, О,二.; логические операторы: ~~'!» п; квантор всеобщности: V (читается “каково бы ни
Построение формул:
формулы исчисления предикатов образуются аналогично формулам исчисления высказываний и, кроме того,
каждому предикату приписывается вес 々:выражение А (%1,汇2, •..,尤内) является формулой, если и только если вес Л равен 抬
выражение ((Vxi) Л (xj,尤2,...,尤Q) представляет собой формулу, в которой X] есть связанная переменная, a %f свободные переменные при i А 2.
Аксиомы:
имеются все три аксиомы (Al), (А2), (АЗ) исчисления высказываний; а также аксиомы:
(А4): ((V/) В (/)) =э В (w) («спецификация»)
(A5): (m)(恤 n /通 п(д П (V/)恤),
где /П1 и ш^ суть формулы, а ^ не является свободной переменной в
Правила словообразования:
(mJ и (勿 п 恤)g (модус поненс) М)皿 (обобщение),
где £ — свободная переменная в g.
Аксиома (Л4), которую называют аксиомой спецификации, очень важна. Она утверждает, что переменная f не содержится свободно в переменной и. Переменная и в этом случае становится свободной переменной. Так же как и в исчислении высказываний, в исчислении предикатов вводятся дополнительные
символы V, А и =. Отметим, что известный квантор существования (читается “существует, найдется”) выражается через квантор всеобщности и другие операторы так:
(Эх)В(х)^П((Ух)-ПВ(х)).
Всякая формальная система, которая имеет в качестве своих аксиом приведенные выше пять аксиом исчисления предикатов, называется формальной системой первого порядка.
Многочисленные обычные теории такого рода являются по существу вариантами исчисления предикатов первого порядка, дополненного одной или несколькими аксиомами и/или правилами словообразования.
Термин “система или теория первого порядка'* означает, что в их формулах действие квантора может распространяться только на предикатные переменные и внутренние символы в формулах. К системам второго порядка относятся такие формальные системы, в которых действие кванторов может распространяться и на сами предикаты. В формальных системах более высокого порядка действие кванторов может распространяться на предикаты от предикатов и т. д.
Пример доказательства s исчислении предикатов первого порядка.
Каков бы ни был предикат D с весом, равным двум, выполняется следующее:
(Уу) (Vx) D (х, у) n (Vx) (Vz/) О (х, 4).
-В самом деле, согласно аксиоме спецификации (44), положив t — у, получим, используя левую часть теоремы, что необходимо доказать следующее:
dy)^x)D(x, y)n(Vx)Q(x, у).
Теперь, положив уже t = х, получим
(Vx) D (х, у)п D (х, у).
Используя последнее правило словообразования в определении исчисления предикатов, получаем
。(X, у)=> (打)。(х, у)
(办)D (х, у) => (Vx) (Vz/) D (х, у).
Так как. метатеорему (4 п 8) 〃(8 ±)С) (4 n С) можно доказать как в исчислении высказываний, так и в исчислении предикатов, то, полагая В = D (х, у), получим
(Vz/) (Vx) D (х, у)二)(Vx) “刘 D (x, y).
Что и требовалось доказать.
Аналогично могут быть доказаны и приведенные ниже следующие важные теоремы исчисления предикатов:
(Эу) (Vx) D (х, у) => (Vx) ®у) D (х, у);
"Л ((S) (Vy) D (х, у))三(3%) (Э^)(П D(x, у));
П ((Эх) (3z/) D (х, у))三(Vx) (Vg) (Т D (х,加);
(Vx)/)(r)=)(3x)D(x).
Первая теорема Геделя: о "полноте'' исчисления предикатов (1930 г.)
В исчислении предикатов первого порядк-а все теоремы являются логически общезначимыми формулами, т. е. являются истинными во всех интерпретациях.
Эта теорема в исчислении предикатов аналогична теореме Поста в исчислении высказываний. Однако в отличие от теоремы Поста теорема Геделя в исчислении предикатов не приводит к эффективной процедуре решения. Более подробно этот вопрос рассмотрен в разд. 6.3.
Формальная арифметика
В этом разделе описывается формальная система, которая была .разработана Пеано и которая является расширением исчисления предикатов. Она известна под названием формальная арифметика, или теория чисел.
В формальной арифметике по сравнению с исчислением предикатов дополнительно вводятся одна константа, четыре оператора и девять аксиом. Этой новой константой является 0 (нуль).
Дополнительные операторы:
и ——операция “непосредственно следующий'* (например, для числа п это число (п + 1)); а(0) = 1;
-]“плюс”, оператор сложения;
* — "умножить на”,оператор умножения;
=—“равно”,оператор равенства, играющий особую роль среди новых аксиом.
Оператор и имеет вес, равный единице, а три остальных оператора имеют вес, равный двум.
Ниже даны девять новых аксиом, в которых х, у> z обозначают любую последовательность символов формальной арифметики, не содержащую знака равенства:
(Аб): (Vx) х + 0 = х
(А7): (Vx) х * 0 = О
(А8): (Vx) ~] (о (х)) = 0
(А9): (Vx) (Vz/) х + а(у) = а(х + у)
(АЮ): (Vx) (Vz/) x*s(y) —х*у-\-х
(AH): (\f x) (\f у) (о (x) = а (у)) ^ (x = у)
(А12): (Vx)(Vz/)(x = z/) =э (о (x) = <т (у))
(A 13): (Vx) (Vz/) (Vz) (x = y) n ((x = z) n 匂=z))
(A14): (A (0) a (Vu) (Л (u) => A (o (“)))) =>(Vu)X (u) для всякой формулы Л (и) данной формальной системы.
В последней аксиоме формализуется рекуррентное рассуждение, называемое принципом формальной или математической индукции. Многие классические результаты не вошли в явном виде в эту систему аксиом и должны быть специально доказаны, как, например, свойство (х = у) п (у — х), или в обычной форме записи: (х + //) = (у + х).
Формальная арифметика играет исключительно важную роль в математической логике.
Выше говорилось, что метатеоремы, используемые в формальных системах (JP) и (DH) (разд. 3.2.3), могут быть получены в рамках формальной арифметики. Теперь установим более четко взаимоотношения между этими двумя простыми формальными системами и формальной арифметикой.
Напомним, что система (JP) определяется одной аксиомой (А): a □ а, и одним правилом вывода (П): mi □ m^ -> bm\ □ □ bm2i где "к и т2 представляют собой какие-либо цепочки символов а и Ь.
Символы а, Ь, □ этой системы являются ничем иным, как кодами, в качестве которых могут быть использованы любые другие символы и, в частности, цифровые символы 1, 2, 3. В этом случае аксиома (Л) выглядит, как 131, а правило (П) выразится следующим образом: если формула, включающая 团【 с последующей цифрой 2 с последующей т2» является теоремой, то и формула, состоящая из 2, за которой следует ть затем 3, затем 2, затем т2, также является теоремой.
Операция "следует за” (“с последующим", ибыть сопровождаемым”) имеет соответствие в формальной арифметике. В обычной арифметике, чтобы построить число х, за которым следует число у、 используя десятичную форму представления, достаточно умножить х на соответствующую степень числа 10 и прибавить у. Более строго это записывается так: если у состоит из п цифр, т. е. представляет собой число
л — 1
Е io'*cG),
где число с(п— I) не есть нуль, то в этом случае ичисло х с последующим у” есть не что иное, как число 10л*х + у. Чтобы получить результат от применения правила (П) к этой форме, начиная с правого его конца
他2 = X 10f * d (f),
строят число 10^*2 и добавляют m2. Таким образом, получается число, содержащее (n2 + 1) цифр. Наконец, чтобы построить формулу 3, сопровождаемую 2т2, добавляют 3*10®*' к предыдущему числу.
Чтобы получить формулу 2, сопровождаемую mb начиная с 团[=£ 10z * е (f), добавляют 10п* * 2 к т】.
£ = 0
Наконец, чтобы получить «2mj32m2», добавляют(2*10” + g), умноженное на 10侬+2, к числу 3 * 10П2+1 + 2 * Ю"2 + т2. В общем случае правило (〃) -может быть выражено в форме арифметизированного дополнения (НА):
Если имеется теорема
т^ ЮПг+1 + 3* 10П2 + т2,
где числа т\ и m2 содержат соответственно п】и Пг цифр, пусть это будут
九1 - 1И2- 1
S = Z 10‘*e(i) н 恤=X 10‘*d(i), i=li=l '
то является теоремой и выражение
(2 * 10Л1 + mJ * 10na+2 + 3 * U-i + 2 * 10fl2 + m2.
Таким образом, начиная с теоремы 2213221 при /ь =九2 = 3, с помощью правила (ПА) порождают теорему
(2* 103 + 221)* 105 + 3 ^= 104 + 2 * 103 + 221,
или
222 100 000 + 30 000 + 2000 + 221,
или же 222132221.
Таким образом, исследование системы (JP) полностью сво* дится к исследованию подсистемы формальной арифметики.
Этот же метод может быть использован и для системы (DH). Закодировав символы М, /, U соответственно через 2, 1, 0, по-
лучаем аксиому в виде: 2 1. Правило (ПЗ): III >—^U, например, тогда записывается так:
«Если (叫 * 10"'+з + 111 * 10П! + т2) является теоремой (т2 содержит н2 цифр), то будет теоремой п выражение Ш] * to”"】+ т2».
Таким образом, теперь система (DH) также “погружена” в формальную арифметику.
При таком подходе доказательство теорем и метатеорем в формальных системах (JP) или (DH) сводится, следовательно, к доказательствам в формальной арифметике. Разумеется, на этой стадии имеется возможность для каждой арифметизированной формальной системы дать интерпретацию в самой формальной арифметике. Таким образом, в арифметизированной системе (JP) 1 интерпретируется как 1, 2 интерпретируется как uпоследующее число''; 3 интерпретируется как =.
В этом случае, исходя из теоремы 222132221, получаем “нстннное” выражение и в обычном смысле: 4 = 4. Таким образом, кольцо замкнулось. Этот тип рассуждений приводит ко второй теореме Геделя.
Вторая теорема Геделя (1931 г.): неполнота арифметики
Арифметизацию можно выполнить для любой формальной системы. В частности, можно закодировать с ее помощью и такие формальные системы, как исчисление высказываний и исчисление предикатов первого порядка, а также и саму формальную арифметику! Доказательство Геделя навеяно этим автоморфизмом, который установил в формальной арифметике своего рода вариант “парадокса” лжеца. Этот парадокс происхождением обязан Эвбулиду (диалектику), принадлежавшему к Мегарской школе (4 век), основанной Евклидом Сократиком. Парадокс формулируется следующим образом:
иЭпименид говорит: uКритяне ——лжецы",
Однако Эпименид сам критянин..
Такого рода высказывание использовалось критиками аристотелевой логики. Оно не имеет формы силлогизма и широко обсуждалось в античной Греции стоиками и их комментаторами. На самом деле эта фраза вовсе не является парадоксом, поскольку если принять гипотезу, что Эпименид — лжец, то ведь и то, что он говорит, является ложью. Если к рассматриваемому высказыванию применить отрицание, то получим в результате высказывание: uСуществует критянин, который не лжет'*. Это последнее высказывание уже ничему не противоречит. (Классической ошибкой является плохая формулировка отрицания и затем выведение из нее “парадокса”.)
В последующем в течение длительного периода времени в логике не было получено новых фундаментальных результатов, пока Лейбниц и затем уже современные логики, которые вновь исследовали результаты древних авторов, не систематизировали их и не ввели в логику математические методы. В результате этого появилась вторая теорема Геделя: “В формальной арифметике существуют формулы т, такие, что ни т, ни Пт не являются доказуемыми».
Доказательство этой теоремы в данной книге следует в основном доказательству Ж. Ладриера, приведенному в книге «Внутренние ограничения формализмов» (Nauwelaerts et Gauthier Villars, 1957 г.), и подходу Д. Хофштедтера, Однако вначале приведем результат, который недавно был получен на основе идей К. Геделя. Речь идет о методе 44диагонали,) (или диагональном рассуждении) Кантора, который в 1873 г. показал, что множество действительных чисел не может быть перенумеровано с помощью целых чисел. В процессе доказательства Кантор ограничился рассмотрением действительных чисел, заключенных в промежутке между нулем и единицей. Его идея состояла в том, чтобы построить бесконечный список L из таких чисел в виде десятичных дробей и в предположении, что этот список может быть пронумерован. Список L выглядит следующим образом:
Q,а\b\с\d\...
О,а262с2d2…
О,bnспdn...
Сформируем теперь число 6(厶)такого же типа, которое однако наверняка нс является частью данного списка. Для этого достаточно в качестве значения ^-го. разряда этой десятичной дроби принять увеличенное на единицу значение ^-го разряда дроби, находящейся в 月-й строке списка L. В результате такого построения мы получаем действительное число
О, (а 1 + 1) (Ь2 +1) (сЗ+1)...(月月+1)
которое, однако, по построению и в силу свойств использованных при этом десятичных дробей, отличается от любого числа, входящего в список L. Таким образом, доказательство возможности перечисления с помощью натуральных чисел всех действительных чисел не может существовать. Отметим, что идея доказательства состоит в том, чтобы “заставить” один и тот же номер 月 одновременно выполнять две роли. Действительно, при
построении нашего диагонального числа номер k использовался одновременно и как индекс (вертикальныйj действительного числа в списке L, и как номер позиции (горизонтальный) какой-то цифры в десятичном представлении числа. Из такого использования “диагонального” 々 и родилось доказательство Кантора.
Существует другой парадокс, связанный с методом диагонали Кантора, который в большей степени приблизит нас к подходу Геделя.
Этот парадокс получил название парадокса Ришара (1907). Он в отличие от парадокса Эвбулида связан не с понятием истинности, а с понятием определения. Рассмотрим, как определяются на обычном языке натуральные числа. Каждое такое число может быть однозначно описано ■ с помощью конечного множества символов: букв, цифр, знаков препинания. Одно н то же число может иметь несколько различных определений. Договоримся, что в качестве определения данного числа будет использоваться наиболее короткое (т. е. содержащее наименьшее число символов) из всех его определений.
Теперь рассмотрим подмножество С целых чисел, определенных менее 100 символами. Это подмножество С является конечным, поскольку существует лишь конечное число комбинаций, которые можно составить из конечного множества символов. Однако, поскольку множество всех натуральных чисел является бесконечным, существуют целые числа, которые не принадлежат подмножеству С. Пусть число г является наименьшим среди них. Тогда можно дать следующее определение для натурального числа г: uнаименьшее натуральное число, которое не может быть определено, используя менее 100 символов”. Однако именно это определение и сделано в предыдущей фразе с использованием менее 100 символов. В этом и заключаются противоречие и парадокс, связанный с “зацнклнваннем” определения.
Первый этап доказательства Геделя состоит в эффективном кодировании числами всех условий, входящих в определение формальной арифметики. Построение ипарадоксального), условия приведет в конце концов к знаменитой второй теореме Геделя: “Система формальной арифметики содержит некоторое выражение е*, такое, что ни е* и ни ~1е* не являются доказуемыми в формальной арифметике".
Структура доказательства теоремы Геделя о неполноте арифметики
Идея доказательства заключается в том, чтобы построить такое выражение, которое свидетельствовало бы о своей собст-
венной недоказуемости. Такое построение может быть выполнено в три этапа:
первый этап ——установление соответствия между формальной арифметикой и множеством целых чисел (гедели- зации); ■
второй этап ——построение некоторого специального свойства А (х), о котором неизвестно, является ли оно теоремой формальной арифметики или нет;
третий этап ——подстановка в 4(尤)вместо х определенного целого числа, связанного с самим А (х), т. е. замещение этими числами всех х в X (х).
'Первый этап. Геделизация формальной арифметики
Формальная арифметика может быть арифметизирована (т. е. геделизирована) следующим образом: каждой ее теореме ставится в соответствие некоторое число. Однако так как всякое- число также является теоремой, то всякая теорема может рассматриваться, с одной стороны, в качестве теоремы формальной арифметики, а с другой ——как теорема над множеством теорем формальной арифметики, т. е. в качестве метатеоремы, соответствующей доказательству некой теоремы.
Таким образом, можно сделать вывод, что система формальной арифметики содержит также и свою собственную метасистему. -
Теперь более конкретно и подробно изложим полученные результаты. ,
Во-первых, мы можем связать с каждым символом и формальной арифметики специальное кодовое обозначение, называемое в данном случае геделевым номером G(〃).
Во-вторых, каждой последовательности символов U мы ставим в соответствие тот же геделев номер G(U) с помощью некоторой функции композиции 厶 Пусть G(U) =f(G(必)),где (ui) представляют собой последовательности символов, которые образуют U.
В-третьих (и это существенно), каждому доказательству А* последовательности аксиом и правил подстановки (или правил замещения) ставится в соответствие число G(A) = f(G(S)), где (U/) обозначает последовательность теорем, используемых при доказательстве А.
Таким образом, всякому доказательству А 8 формальной арифметике соответствует некоторое число — еао геделев номер G(A). Всякое рассуждение формальной ариметики преобразуется в вычисления на множестве натуральных чисел.
Итак, вместо того чтобы производить манипуляции с символами, теоремами, доказательствами, можно воспользоваться
вычислениями на множестве целых чисел. Всякое выражение, подобное, например, следующему: *7 — доказуемо в ф°Рмаль' ной арифметике1*, теперь соответствует определенному числу, которое будем обозначать как Dem(t).
Сформулируем следующее положение.
Формальная метаарифметика содержится в множестве натуральных чисел, а оно само содержится в интерпретации формальной арифметики.
Эта ситуация с формальной арифметикой напоминает ситуацию с естественным языком: ведь нам ничто не мешает использовать его и для того, чтобы формулировать на нем основные его понятия и правила.
Надлежащий выбор функции f позволяет осуществить однозначный переход от А к G(A), т. е. присвоить два разных числа- номера двум различным доказательствам. Например, можно так выбрать геделевы номера, чтобы каждому символу алфавита формальной арифметики соответствовало свое простое число, как показано, например, в табл. 3.2. Каждая формула U (со- Таблица 3.2
и =0*4-1 о =?~| V А V и () х у
G ⑷2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 ...
стоящая из q символов (也)с i, изменяющимся от 1 до q) в свою очередь кодируется последовательностью, состоящей из q первых простых чисел, т. е. числом
G (U) = 2е(%)* 3е("2)* 5е(%)* ... * Р:(%),
где Pq — g-e простое число.
В свою очередь доказательство, т. е. последовательность из г формул Ui, 6^2, .. ., Ur, будет закодирована аналогичным образом числом .
G (А) = 2е(%)* 3气%)* 5°(%) * 呼《,).
И наоборот, благодаря такому способу построения номеров становится возможным, исходя из некоторого числа, с помощью разложения его на простые множители (в силу единственности разложения натуральных чисел в произведения степеней простых чисел) возвратиться за два шага к показателям степени G(〃i), т. е. к примитивным символам формальной арифметики. Конечно, это имеет в основном лии!ь теоретическое значение, так как номера G (А) быстро становятся слишком большими
для того, чтобы ими можно было манипулировать. Однако следует отметить, что существенным является принципиальная возможность этой операции.
Пример. Пусть задано число Т, соответствующее некоторому доказательству и представляющее собой произведение простых чисел:
2^98 102 7125 *253 * 3I 981 027 125*2"
Это разложение означает, что доказательство теоремы содержит два этапа: один соответствует числу 1981027125 * 253, а другой —числу 1981027125 * 2]1. Разлагая снова на простые мно жители каждое из этих чисел, получим
253 * З5 * 53 * 72 * 1 13 и 211 * 35* 53* 72* И3.
Из таблицы кодирования алфавита формальной арифметики (табл. 3.2) находим, что нашим геделевым номерам для Этих двух чисел
5, 3, 2, 3 и 11, 5, 3, 2, 3
будет соответствовать следующее доказательство;
Из формулы х*0 = 0 следует формула 1*0 = 0.
Таким образом, в метаарифметике получено значение исходного числа из формальной арифметики.
Второй этап. Лемма Геделя
Всякому числу Т, связанному с доказательством, соответст' вует теорема /, доказуемая в формальной арифметике u Гед ели- зированную'1 формальную арифметику называют арифметизированной формальной арифметикой. Поскольку каждая аксиома и каждое правило арифметизированной формальной арифметики соответствуют какой-нибудь арифметической операции, то с помощью Систематизированной проверки можно определить, соответствует ли данное число 7 доказательству какой-то теоремы f. Числа Т и f образуют в этом случае пару сопряженных чисел. Выражение “Т и f являются сопряженными11 Представимо внутри самой арифметизированной формальной арифметики. Это означает, что существует геделев номер D(T, Е), который выражает в цифровой форме это утверждение.
Мы подошли к критическому пункту доказательства Геделя. Пусть Л является выражением арифметизированной формальной арифметики, которое содержит какую-то свободную переменную. Вместо нее можно сделать подстановку какого-нибудь терма. В частности, можно заменить выражение А самим выражением 4 В этом случае номер-выражение 4 выполняет одновременно две различные роли (см. выше построения
Кантора и Ришара): оно одновременно является истинным выражением для подстановки и результирующим термом. Эту специальную подстановку будем обозначать как S*. Так формула 5* (А, и) означает, что число и есть геделев номер, получаемый при выполнении подстановки -* к выражению Л:
S* (Л, «)<=>« есть ”* в 4'
Затем Гедель строит выражение (о котором неизвестно, представляет ли оно собой теорему или не-теорему), в которое вводит эту подстановку. Выражение имеет следующий вид:
П((ЗГ) (3/)2)(Л /)八 S* (尸,n)).
Третий этап. Завершающая подстановка
В арифметизированной формальной арифметике это выражение представлено в цифровой форме. Пусть Е ——его геделев номер. Так как выражение е содержит свободную переменную 尸,то мы имеем право выполнить подстановку -* над е, замещая 尸 числом £ и обозначая /*-замещение Е:
1(0T)(m)D(T, Z)AS*(E, /).
Это второе выражение обозначим через е*, а его геделев номер через Е. Дадим интерпретации выражения е*.
Первая интерпретация. Не существует такой пары (Т, /), для которой одновременно выполнялось бы следующее: с одной стороны, Т — номер арифметизированного доказательства теоремы /, арифметизированной ею самой, а с другой — было бы S*(E, f), т. е. *7 есть "-замещение Е”. Но так как S* есть такое же преобразование, как и другие, то оно представимо в термах +, *, /, ... и в их кодовых обозначениях ——геделевых номерах и, следовательно, такой номер существует. Тогда, возможно, номер Т не существует.
Вторая интерпретация. Не существует арифметизированного доказательства Т теоремы t, которое было бы *-замещением Е. Итак, если не существует доказательства, то потому, что t само по себе не является теоремой. Отсюда вытекает третья интерпретация.
Третья интерпретация. Выражение, для которого геделев номер есть *-замещение £, не является теоремой арифметизированной формальной арифметики. Но в этом и заключается противоречие, так как по построению именно само е* является *-замещением Е и номер t есть не что иное по построению, как сам номер £. Отсюда вытекает последняя интерпретация е*.
Четвертая интерпретация, е* не является теоремой арифме-
тизированной формальной арифметики, т. е. выражение е* просто утверждает, что “Я не есть теорема".
Следовательно, возможно одно из двух:
либо е* является теоремой, но тогда формальная арифметика противоречив^ так как одновременно е* и ~|е* являются доказуемыми;
либо е* является не-теоремой. Тогда нет противоречия, но зато то, что утверждает выражение е*, является истинным, но недоказуемым! Следовательно, в формальной системе существует зона недостижимой истины. После доказательства того, что Пе* недоказуемо, приходим к следующей формулировке второй теоремы Геделя.
Вторая теорема Геделя (1931 г.):
Если формальная арифметика непротиворечива, она является неполной.
Класс f • не пусто, выражений f<eразреши мыКласс f • не пусто, выражений f<eразреши мы>七> It>七> ItL j: теорема ^~ f: не-теоремаL j: теорема ^~ f: не-теоремаКласс 2: 罔сто "。непро- тиборечивостиКлассы Зи 4 симметричные (обладают овоисгивот полноты)Класс 2: 罔сто "。непро- тиборечивостиКлассы Зи 4 симметричные (обладают овоисгивот полноты)
Класс f • не пусто, выражений f<eразреши мы
Класс f • не пусто, выражений f<eразреши мы
>七
> It
>七
> It
L j: теорема ^~ f: не-теорема
L j: теорема ^~ f: не-теорема
Класс 2: 罔сто "。непро- тиборечивости
Классы Зи 4 симметричные (обладают овоисгивот полноты)
Класс 2: 罔сто "。непро- тиборечивости
Классы Зи 4 симметричные (обладают овоисгивот полноты)
Рис. 3.4. Вторая теорема Геделя.
Это, в частности, для нашего случая означает, что существует по крайней мере одно выражение е*, такое, что как е\ так и не являются теоремами.
Как и в естественной интерпретации формальной арифметики (в которой символ —I соответствует отрицанию), строго постулируется “либо е* есть ИСТИНА, либо е* есть ЛОЖЬ (т. е. Пе* есть ИСТИНА)'\ т. е. постулируется непротиворечивость. Отсюда следует, что формальная арифметика не является полностью доказуемой, и в формализации существуют пробелы. Этот вывод распространяется на все те формальные системы, которые содержат аксиомы формальной арифметики. Таким образом, понятие истинности не является полностью формализуемым, и непротиворечивость какой-то теории не может быть
доказана в рамках этой теории. На рис. 3.4 эта ситуация отображена в виде схемы.
Замечание. Выше представлена только схема доказательства, которое одновременно является необычным, строгим и фундаментальным. Отметим, что если добавить к исходным аксиомам формальной арифметики аксиому е* или аксиому Пе* (как в других случаях, например для получения неевклидовой геометрии), то на самом деле это не сняло бы проблемы. Просто тем же способом было бы найдено выражение е**, которое недоказуемо.
Теоремы ограничения в формальных системах
Вторая теорема Геделя была первой теоремой ограничения и произвела огромное впечатление одновременно и на математиков, и на философов. Она не бы.та единственной теоремой ограничения. Ниже мы приведем еще две теоремы ограничения (Тарского и Черча), имеющие большое теоретическое и практическое значение.
Теорема Тарского (1935 г.)
Существуют формальные системы, для которых всякая интерпретация приводит к выражениям одновременно истинным и недоказуемым.
Эта теорема является парной (относительно интерпретаций) ко второй теореме Геделя. В сжатом виде она формулируется так: “то, что истинно, всегда недоказуемо'1 или же ^понятие истинности неформализуемо^. Теорема говорит, что в каждой интерпретации существует по крайней мере одна формула, всегда интерпретируемая как ИСТИНА, которая однако не является теоремой данной формальной системы.
Теоремы Геделя и Тарского вводят в рассмотрение интерпретации. Для теоремы Тарского это очевидно, но и результат Геделя базируется на использовании символа отрицания ~| в его обычном значении и постулата непротиворечивости (т. е. невозможности одновременного выполнения в системе f и П/, в противном случае легко доказывается, что всякая формула системы является теоремой; однако подобные формальные системы почти не представляют интереса);
Теорема Черча (1936 г.)-
Исчисление предикатов первого порядка неразрешимо.
Следовательно, существуют неразрешимые формальные системы. Иначе говоря, для некоторых формальных систем невоз-
можно построить системы процедур, позволяющих отличать' теоремы от не-теорем. Такие системы называются неразрешимыми, или говорят, что они не являются рекурсивно перечислимыми. Конечно, хотелось бы обойтись без таких формальных систем, но это невозможно, тем более, что уже исчисление предикатов первого порядка, как показал Черч, является неразрешимым. Тем более неразрешимой является более мощная формальная система, представленная в uОснованиях математики" Рассела и Уайтхеда. Тарский показал также, что теории групп, колец и тел являются неразрешимыми, а проективная геометрия в пространстве вещественных чисел и теория вещественных ?;|минутых тел являются разрешимыми. Кроме того, доказано, что исчисление предикатов первого порядка является полуразрешимым, т. е. для выражений t, которые эффективно являются теоремами, имеется конечная процедура, которая их доказывает. Все эти доказательства основываются на определении процедур решения. Черч идентифицировал понятие эффективной или вычислимой процедуры, т. е. алгоритма, или функциональной рекурсивной процедуры (“тезис” Черча).
Независимо от других в 1937 г. Тьюринг формализовал идею вычислительной машины и свел проблему разрешимости к проблеме останова идеальной вычислительной машины (см. разд. 5.11). Оба подхода оказались в результате идентичными, и было показано, что в общем случае не существует ни рекурсивной функции, ни машины Тьюринга, с помощью которых можно было бы определить, является ли какая-то заданная формула теоремой (или не является) в данной формальной системе (или в данном ^языке1'). В частности, неразрешима проблема останова программы, выполняемой на машине Тьюринга.
Семейство теорем ограничения подобно принципу неопределенности Гейзенберга в физике, установленному несколькими
■ годами ранее (1927 г.) в квантовой механике. Согласно этому принципу, некоторые физические величины связаны между собой таким образом, что хотя не существует ограничений на точность измерения каждой из них, тем не менее точность их совместного измерения ограничивается значением постоянной Планка. Произведение погрешностей измерения этих двух величин не может быть меньше этой постоянной.
Некоторые философы и специалисты по теории информации, как, например, Ж. Лука, Е. Нагель и Д. Ньюман, пытались применить теоремы ограничения к проблемам обработки символьной информации на ЭВМ. Основываясь на этих теоремах, они сделали, на мой взгляд, несколько преждевременный вывод о превосходстве интеллекта человека над машиной. Подобные
аргументы до сих пор используются, чтобы дискредитировать все исследования по искусственному интеллекту. На самом деле результаты, полученные Геделем, Тарским и Черчем, говорят только о том, что некоторые задачи неразрешимы средствами современной математики. Эти ограничения относятся к людям в той же степени, что и к ЭВМ, так же касаются математиков, как и машинных программ. И тем не менее это не привело начиная с 1930 г. когда эти теоремы были доказаны, к свертыванию математических исследований (наоборот, к их расширению). Некоторые задачи решить невозможно, но зато другие задачи заслуживают того, чтобы их решили. Кроме того, знание задач, которые являются трудноразрешимыми, открывает новые пути для поисков. Гипотезы Гольдбаха, великая "теорема” Ферма по-прежнему еще не классифицированы (не определено, являются ли они доказуемыми или неразрешимыми). Вторая задача Гильберта, сформулированная наряду с 22 другими в 1905 г. (найти метод решения для произвольного уравнения в целых числах) была снята с повестки дня в 1970 г. Матиасевич доказал ее неразрешимость.
Знаменитая проблема четырех цветов (раскрасить географическую карту, используя только четыре различных цвета, причем так, чтобы любые две соседние страны имели различные цвета) (гл. 5) была разрешена с помощью ЭВМ в 1976 г. Аппелем и Хакеном спустя более 120 лет после того, как она была поставлена Ф. Гутри.
,Если задача вам кажется очень трудной, удостоверьтесь сначала, что она не относится к одному из известных случаев неразрешимости, и если это не так, то не отказывайтесь от нее слишком быстро!
В заключение приведем формулировки теорем ограничения: Возможны формальные системы, 8 которых
существуют формулы т, такие, что ни т, ни Пт не являются доказуемыми (теорема Геделя);
во всякой их интерпретации найдутся выражения, истинные, но недоказуемые (теорема Тарского);
не существует алгоритма, чтобы отличать теоремы от не-тео- рем (теорема Черча).
Алгоритм унификации
Описываемый ниже алгоритм предназначен для ответа на вопрос: “Как применить теорему к выражению?" Этот алгоритм не зависит от формальной системы, в которой применяется. Для заданных теоремы и выражения алгоритм выполняет в строгой последовательности двойной проход в предварительно опреде-
ленном порядке. Его сложность линейно зависит от общего числа замещаемых переменных в теореме и выражении. В неявном виде этот алгоритм уже использовался в предыдущих разделах при некоторых доказательствах в различных формальных системах.
Данный алгоритм, разработанный в 1966 г. Ж- Питра и независимо от него Дж. Робинсоном, играет фундаментальную роль в искусственном интеллекте.
Задача
Для данной теоремы Т в форме правила переписывания или продукции с антецедентом вида
Я а С(Г)
(гипотеза) влечет (заключение)
и некоторого выражения Е необходимо проверить, можно ли сделать Н и Е полностью идентичными, т. е. унифицировать Н и Е путем последовательных подстановок свободных переменных в " и £\ Подстановки, выполненные в С, дают новую форму выражения Е в результате применения теоремы Т (с использованием правила модус поненс).
Примеры унификации
Пусть алгебраическое тождество
(0+厶)2 =犀 + 2功 + ь2(/1)
рассматривается в качестве удобного сокращенного представления правила переписывания: “Если какое-то выражение является квадратом суммы двух термов, его можно переписать в виде суммы квадрата первого терма, удвоенного произведения обоих термов и' квадрата второго терма”.
Пусть, кроме того, имеется выражение
х2+(// +V3)2.(Е1)
В данном случае легко увидеть совпадение выражений в скобках в (/1) и (Е1): подстановка у вместо а н “3 вместо b позволяет унифицировать (у+“3) и левый член тождества (〃)•
Аналогично известное правило переписывания
sin2u + cos2 u 1(/2)
применяется к выражению
sin2 Зх + cos2 Зх,(Е2)
чтобы показать, что последнее также дает единицу (/2). Но унификация с тем же правилом (/2) не получается, если взять выражение
sin2 Зх + cos2 х.(£3)
Унификация также невозможна при использовании выражения
cos2 3% + sin2 3居(Е4)
так как в этом случае требуется коммутативность относительно знака +• Это затруднение можно устранить с помощью использования правила
。+ bb + а,
предварительное применение которого к выражению (Е4) позволяет затем выполнить унификацию выражений (£2) и (/2).
.3. Предыдущие примеры представляли собой простейшие случаи унификации. Однако далеко не всегда так просто. В общем случае возникает проблема выбора подстановок: ведь может существовать множество различных способов для получения совпадения подстановок двух формул, причем некоторые способы дают формулы, выводимые из какой-либо более общей формулы. Так, пусть в исчислении высказываний выражение является теоремой, вытекающей из первой аксиомы исчисления высказываний:
(р п (д п р))(£5)
и пусть имеется метатеорема
((PnQ)nR~ (QnQ.(П)
Ниже показаны те возможные "естественные5' подстановки, которые, однако, нс являются оптимальными. Они приведут к правильному результату ——частному выражению, которое, однако, не представляет большого интереса. Вспомним “правила игры'*: в исчислении высказываний пропозициональные буквы р,仇 г... и формулы Р, Q, R…являются свободными переменными. Все появления какой-либо переменной могут быть замещены термом, не содержащим замещаемой переменной. Чтобы привести к совпадению выражения (Т1) и (£5), можно вначале сделать пробные шаги. Так, подстановка, преобразующая Q в q в выражении (71), даст
((Р nq)n R)f(qn R).(Е6) {Q/q}
Изменим р в (£5) на Png так, чтобы унифицировать начальные символы выражений (Е5) и (Е6)
(Р п q) п (q п (Р п q》.(£7) {р/Р =)q}
Получим совпадение между (£5), в которой сделана подстановка, и левым членом теоремы (Т1), в которой также выполнена подстановка. При этом имеется еще резервная возможность изменения R на величину (е n (Png)). Правый член выражения (Е6), как и в предыдущих примерах, дает искомый результат:
(qn(<7n(Pn<7))).(Е8) {R/(q =)(Р => q))}
Однако, ниже мы увидим, что алгоритм унификации без всяких пробных шагов дает нужный результат
(р п (q п (Р п q》).■(Е9)
Очевидно, что последнее выражение представляет собой наиболее общий результат. Предыдущий результат соответствовал частному случаю р = q.
Ниже описан оптимальный алгоритм унификации, который представляет особый интерес, так как, с одной стороны, дает прямой систематический метод приведения к совпадению двух каких-либо формул с помощью подстановок в них, а с другой — эти подстановки, полученные без полного перебора, носят наиболее общий характер.
Идея алгоритма
Выражение Е и теорему Т будем просматривать параллельно и на одну и ту же глубину. Выполним только те унификации, которые необходимы. Если удастся в конце концов прийти от гипотезы " к теореме Т, унификация окажется успешной и результат находится в выражении С, модифицированном с помощью тех же подстановок. Иначе неудача.
Во всяком выражении только свободные переменные являются замещаемыми, т. е. те переменные, которые не являются квантифицированными (на ' них не распространяется действие кванторов V или 3). Единственно разрешенными подстановками являются такие, которые замещают свободную переменную х из £ или " термом t из Е или Н. Имеется только одно ограничение: терм / сам не должен уже содержать переменную х. Поэтому, чтобы избежать всякой неоднозначности и неопределенности, в первую очередь проводится “разделение
имен” переменных из Е или Т, каковы бы нн были их начальные имена.
Подстановки выполняются только по необходимости. Символы, которые не являются переменными, не могут замещаться. К таким символам относятся либо операторы (наирнмер, +, *, n, sin...), либо константы (например, 1, 2, ...). Естественно, такие символы должны находиться на аналогичных позициях в £ и Я, иначе невозможна никакия унификация.
Фундаментальная идея, лежащая в основе алгоритма, связана с процедурой просмотра выражения: вначале основной оператор, затем каждый из подтермов, которыми он управляет, начиная, например, с самого левого. Каждый подтерм при этом просматривается параллельно: основной оператор, подтерм и так далее до переменной или константы. Удобным для этого является представление выражения в виде дерева (рис. 3.5).
Рис. 3.5. Представление выражения хг + (х + УЮ2 и порядок его просмотра в соответствии с алгоритмом унификации.
Порядок просмотра носит префиксный характер: каждый символ обрабатывается в той последовательности, в которой он встречается при спуске по дереву сверху вниз и слева направо (в порядке номеров, показанных на правой части рис. 3.5).
Используя этот порядок просмотра (вначале вглубь), для задания последовательности просмотра введем -индексы е и 九: е ——индекс текущего символа в выражении £ и 九——индекс текущего символа в выражении Н.
В общем случае принцип рекуррентности формулируется следующим образом: пусть все символы в выражениях Е и Н совпадают вплоть до символов с индексами е и 九,не включая их; попытаемся привести к совпадению символы с индексами е и h соответственна в Е и Н. Имеются четыре возможных варианта ситуаций, при которых каждый из символов с индексами е и й соответствует (либо нет) какой-то замещаемой переменной. Если подстановка должна быть сделана, она выполняется с помощью определенной процедуры, называемой SUB. Ниже описана эта процедура подстановки.
Процедура подстановки
Процедура подстановки SUB работает со следующими данными: V ——наименование переменной, которая должна быть замещена; f — терм, который подставляется вместо этой переменной; е, Л —— индексы. После выполнения подстановки достигается совпадение выражений Е и Т, включая термы с индексами е и h. Текст процедуры представлен ниже. Выделенные- курсивом наименования соответствуют элементарным функциям, которые здесь не рассматриваются подробно, так как их выбор определяется конкретным способом выполнения процедуры. Значения индексов е и 九 изменяются вне процедуры подстановки.
Процедура SUB
ДАННЫЕ: и, /, % А (свободная переменная, терм, индекс в выражении £, индекс в выражении ").
РЕЗУЛЬТАТЫ: ЛОЖЬ, если подстановка невозможна, иначе
ИСТИНА и новые значения £, Т, е, й.
SUB —ИСТИНА.
ПРОСМОТРЕТЬ /, начиная с начала
ЕСЛИ текущий-символ — v ТОГДА SUB <—ЛОЖЬ ВОЗВРАТ (случай неудачи 1)
КОНЕЦ БЛОКА если
КОНЕЦ ПРОСМОТРА
е -«- индекс-терм-текущий-терм-начинающийся в е h -«- индекс-терм-текущий-терм-начинающийся 8 й {Обработанные части в £ и // не представляют больше никакого интереса, и, следовательно, нет необходимости в просмотре вплоть до индексов е п ht так как начальные части Е и Н совпадают.}
Рис. 3.6. Представление выражения f 三 + “3.
ПРОСМОТРЕТЬ Е, начиная с е
ЕСЛИ текущий-символ = и ТОГДА заместить текущий-символ на /.
.КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ ПРОСМОТРА .
ПРОСМОТРЕТЬ Т, начиная с й
ЕСЛИ текущий = символ = и ТОГДА заместить текущий-символ на /.
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ ПРОСМОТРА
Занести в память подстановку (и, /)
КОНЕЦ ПРОЦЕДУРЫ SUB
Пример подстановки
Если в предыдущем выражении (рис. 3.5) переменную % желательно заменить выражением (У + «3), процедура выпол-
Рис. 3.7. Новый вид выражения К после подстановки.Рис. 3.7. Новый вид выражения К после подстановки.Конец процедуры SUB: х жений, которая необходимаКонец процедуры SUB: х жений, которая необходиманяется следующим образом:
Рис. 3.7. Новый вид выражения К после подстановки.
Рис. 3.7. Новый вид выражения К после подстановки.
Конец процедуры SUB: х жений, которая необходима
Конец процедуры SUB: х жений, которая необходима
и = х, Z = y+«3,
е = 3, Л = 1.
ПРОСМОТР /: возможная подстановка (рис. 3.6);
с 4 индекс следующего терма в Е;
无*-5 индекс следующего терма в Я;
ПРОСМОТР Е, начиная с е: текущий символ 尤 встречается снова при индексе 7 и замещается термом Л Результирующее выражение показано на рис. 3.7.
ПРОСМОТР Т: в данном случае нет объекта для просмотра, амещен только в той части выра- ня унификации в предположении.
что начальные их части уже унифицированы. Ниже описан сам алгоритм унификации..
Тело алгоритма унификации
Процедура УНИФИКАЦИЯ
ДАННЫЕ: Е (выражение) Т = (Н, С) теорема-(гипотеза, заключение)
РЕЗУЛЬТАТ: ИСТИНА и новое Е = новое С со списком выполненных подстановок, если унификация прошла успешно.
ЛОЖЬ иначе
е <- начальное-выражение (Е)(5 (е) — символ из е в Е)
й <- начальное-выражение (Н)(5 (А) — символ из А в //) ПРОСМОТРЕТЬ параллельно Е и 〃,начиная с е и 儿 ПОКА й ^ конец-выражения (Я)
ЕСЛИ 5 (е) =# s (А) ТОГДА
{Если равенство уже имеется, то продолжают прямой просмотр}
{Вначале оба случая, когда символ из е является оператором: константы рассматриваются как операторы} ЕСЛИ 5 (е)-оператор ТОГДА
ЕСЛИ 5 (й)-оператор ТОГ ДА
унификация <- ЛОЖЬ;
ВОЗВРАТ;
{случай неудачи 2}
ЕСЛИ НЕТ / терм-дебютант из е в £;
{s (А) является свободной переменной, в которой замещается терм /} SUB fs(/z), /, е,无).
КОНЕЦ БЛОКА ЕСЛИ
ЕСЛИ НЕТ {случай, когда символ из е является переменной}
ЕСЛИ 5 (й)/оператор ТОГДА SUB (s (ft), s(e), e, ft) {переменную заменитьна переменную: простое изменение одного из наименований}
ЕСЛИ НЕТ / <- терм-дебютант из 无 в ";
SUB (s(e),f,e,/z)
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ БЛОКА ЕСЛИ
ЕСЛИ SUB = ЛОЖЬ ТОГДА УНИФИКАЦИЯ ЛОЖЬ; 'ВОЗВРАТ;
КОНЕЦ блока если
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ
УНИФИКАЦИЯ + ИСТИНА
ВОЗВРАТ; Список выполненных подстановок.
{Новое выражение Е представляет собой заключительную часть С теоремы Г, в которую делались подстановки].
КОНЕЦ УНИФИКАЦИИ
Завершение работы алгоритма унификации
Процедура завершается, когда доходят до конца выражения Я. Выражение £ может иметь больший размер, чем выражение ", если теорема Т представляет собой правило переписывания. Поскольку правые ветви деревьев, представляющих выражения Ей//, могут разрастаться, необходимо показать, что процесс на самом деле завершен.
Известно, что в начале процесса число переменных, замещаемых в выражениях Ей", является конечным. С одной стороны, во время выполнения процедуры не создается новых переменных, а с другой, каждая подстановка, которая замещает переменную термом, не содержащим ее, приводит к уменьшению общего числа обрабатываемых переменных. Следовательно, алгоритм унификации является сходящимся при числе подстановок, большем или равном первоначальному числу свободных переменных з Е и Н.
Приведем примеры работы алгоритма.
Е^а-\~ b I Случай неудачи 2:
Т = х*у — у*х J операторы не унифицируемы
£ ^ sin2а + cos2 а I Аналогично предыдущему
Т 三 sin2x + cos?% — 1 ) (операторы — константы)
3)七三 log “q ——log “2 * q I Случай неудачи 1
T三% —%->0J (в процедуре SUB)
Вначале выполняется подстановка log “а вместо х. Выражение Т принимает в результате новый вид:
log、/q — log д/q f 0.
Таким образом можно унифицировать функции log и “ , но затем необходимо сделать подстановку 2 * а, а это запрещено (случай неудачи 1 в процедуре SUB).
Рассмотрим вновь пример из исчисления высказываний,
который уже встречался нам выше:
Е 鼻(р п 匂 п р»
T#(PnQ)nR)-> (QnR).
При этом будем использовать для наглядности древовидную структуру представления выражений (рис. 3.8——3.10).
Два первых символа в выражениях Ей" являются одним и тем же оператором п: продвигаются вперед по обоим деревьям. В Е встречается какая-то переменная (пусть это будет р), тогда как в Н знак 二)указывает на начало некоторого терма 力 Следовательно, нужно изменить р в 力 где t есть поддерево (рис. 3.9).
Рис. 3.8. Унификация в исчислении высказываний.
Р /、Q
Е』 人Г *
(2) •П.
Р Q•
(Выражение)(Ги/ютеза)
Рис. 3.9. Унификация (продолжение). Уже исследованные символы представлены точками.
Ло^стано^/ссс 土 6 R,力?: q приводит к забершению гуюснотра Н и &е
'X/\
Рис. 3.10. Унификация (окончание).
人入 R Q . R
(Заключение)
入 /\
Р0.
⑵人 ⑵人入 Р >> R Q R
/\Заключение (C)
q P p Q Гипотеза 切
В выражении Е встречается связка в той позиции, в которой в выражении Т встречается Р. На рис. 3.10 показан дальнейший ход унификации.
Как видно из рис. 3.10, унификация в данном случае прошла успешно. Выражение Е преобразуется в выражение F:
(Q n (е n (Р n Q)))
при помощи подстановок р/尸 n Q и R/q о (尸 nQ). Другими словами, выражение Е и часть гипотезы Н теоремы Т приведены к виду
(PnQ)n(Pn(PnQ)),
чтобы получить выражение F. В результате нормализации, исходя из выражения Е и теоремы Г, приходят к результату
(р П д) П (г П S П 9))(<7 (г => (р о q))).
Левый член этой продукции является наиболее общей теоремой, какую только можно получить, исходя из Е и Г. Отметим для сравнения, что результат, полученный в разд. 3.7.1 в итоге пробной попытки, является лишь частным случаем.
Незамсщаемые переменные
До сих пор предполагалось, что переменные в выражении £ и в теореме Т играют одну и ту же роль, однако это не всегда так. Действительно, какова бы ни была рассматриваемая формальная система, уже по определению переменные теоремы являются во всех случаях замещаемыми. Это вытекает из того, что с самого начала предполагается, что эти переменные являются универсально Г-квантифицированными и становятся свободными в силу аксиомы спецификации. Однако часто встречаются и ситуации, когда ипеременные>, в Е 凡с являются замещаемыми.
Случай, когда s(e) является переменной из Е, а 用 обозначает начальную часть терма, соответствует ситуации, представленной в третьем примере унификации, когда она невозможна (последняя подстановка недопустима в процедуре подстановки: случай неудачи 3). Это отражает тот факт, что переменные в Е в противоположность переменным, входящим в теорему, не всегда являются свободными, даже если сами кванторы удалены в процессе записи, ведь в общем случае с выражением производятся определенные манипуляции при его вычислении или оценке. (Например, в выражении Зх2 + 4х —- 6 = 0 переменная х не является свободной и любая подстановка на место % является недопустимой.) Следовательно, фигурирующие в них пере-
менные становятся в результате все более ограниченными (связанными) и их нельзя законным образом замещать каким-либо термом. В частности, возможно, что различные '"переменные" становятся взаимозависимыми.
Переменные любой теоремы являются свободными (или немыми) переменными. Напротив, в общем случае переменные какого-то выражения являются связанными. В этом случае говорят о полуунификаций, или фильтрации. Так, в алгебре правило приведения
Т 三 q + (6 — а) > Ь
является вполне допустимым. Когда же пытаются его применить к какому-то текущему выражению, например
то первая подстановка, когда а замещается на х, является допустимой. Теорема Г переходит в 71:
Т1% + (6 — х) 1> Ь.
Однако вторая подстановка, при которой переменная у замещалась бы термом (Ь ——х), здесь в принципе недопустима, так как, например, при решении какой-то системы уравнений относительно неизвестных % и у эта система связывает иперемен- ные" х и у между собой. (Если, однако, желательно выполнить эту подстановку, то следовало бы ввести преобразование
(у заменяется на 6 — х)
в качестве условия, связывающего переменные хну, для всей последовательности решения задачи. При помощи этого условия выражение Е может быть сведено к переменной &, остающейся свободной.)
Рассмотрим более конкретный пример.
В поле вещественных чисел правило переписывания, приведенное ниже, является допустимым:
ez*ezi~> е22.(Г)
Это правило может быть использовано для упрощения следующего выражения:.
外一3*?2~3 =豈(R)
Первая подстановка заменяет г на х — 3 в теореме Т, которая принимает вид
е用 一з *з ] а (х一з)
Вторая подстановка замещает % на 2yB теореме Т; унификация является успешной и заключительная формула теоремы
Т имеет вид
^2(2у-3).
Однако здесь неявно использовано дополнительное условие х = 2у при последней подстановке.
В свою очередь при решении уравнения (R) мы получаем ?2(2у—2)= ^2 либо у = 2 (и, следовательно, х — 4). Однако на самом деле выражение (R) может быть решено непосредственно без использования теоремы (Т), и тогда е*+2у-8 = ?2 Лнбо х Н~ 2// — 8.
Очевидно, что здесь получено общее решение для выражения (R), тогда как решение, полученное раньше при унификации, представляло собой только частные случаи.
Здесь символы х и у, связанные между собой равенством (R), не являются переменными, замещаемыми в обычном смысле. Если, однако, требуется заменить их термами, необходимо ввести соответствующие условия и впоследствии проанализировать полученные решения.
При унификации нужно с осторожностью относиться к таким ложно свободным переменным, которые естественным образом появляются в исследуемых выражениях. Такого рода переменные принято называть неопределенными. Они могут быть замещаемыми только при условии последующей проверки допустимости. Без такой предосторожности при использовании алгоритма унификации легко получаются ложные заключения.
Реализация алгоритма унификации
Алгоритм унификации с учетом сделанных выше замечаний может быть использован в различных областях математики: алгебре, арифметике, тригонометрии, логике, дифференциальном и интегральном исчислении. Без особых сложностей алгоритм унификации может быть обобщен для правил вывода (порождающих правил) с многими антецедентами Н1 и "2 и... Н—С.
При унификации этот алгоритм применяется к каждой теореме рассматриваемой предметной области; при заданной теореме он применяется к каждому подвыражению исследуемого при этом выражения. Ниже представлена общая форма процедуры доказательства.
Общая процедура доказательства
ПРОЧЕСТЬ {т — множество допустимых продукций или правил переписывания в данной предметной области; т представляет собой данные, связанные с процедурой в самом общем смысле}.
ПРОЧЕСТЬ {е= исследуемое выражение}.
ПОВТОРИТЬ ДЛЯ каждой теоремы Т из %
ПОВТОРИТЬ ДЛЯ каждого подвыражения Е из & УНИФИКАЦИЯ (Е, Т)
КОНЕЦ ПОВТОРИТЬ НАД Е
КОНЕЦ ПОВТОРИТЬ НАД Т
ЗАПИСАТЬ е {е = выражение, модифицированное в соответствии ст}
Выполнение процедуры прекращается, когда уже никакая теорема не может быть применена ни к какому подвыражению. Приведенное выше описание процедуры представляет собой только ее принципиальную схему, которая может быть и неэффективной, если множество т теорем является достаточно большим. Определенные правила при этом могут иметь более высокий логический приоритет, чем другие. Более того, порядок применения теорем не является безразличным в смысле окончательного результата е, который в общем случае может зависеть от этого порядка. Если желательно изменять е так, чтобы при этом достигалась какая-либо заданная заранее цель, то необходимо проведение сравнительного исследования различных порядков применения теорем в т и/или выбора позиций различных выражений Еве. Следовательно, необходимо разумно управлять этим процессом в соответствии с функцией цели и контекстом общей процедуры унификации.
При этом возникает фундаментальная проблема: описанная общая процедура может оказаться бесконечной. В частности, возможна ситуация, когда т будет содержать, например, два таких правила:
х — ХН->О И От"% — X.
На самом деле то же явление зацикливания может порождаться и одним единственным правилом, таким, например, как
ИЛИ•
х ^у у * X.
Правило такого типа вызывает бесконечные преобразования двух термов из е, следующих друг за другом, напримерл
при таком наборе правил:
и к (v/w) (и * и)/ш,
tg£f sin x/cosx,
(u * v)/u b—> 乜, sin x t—> cos x * tg x, где происходит зацикливание по выражению sin х.
Проблема зацикливания решается с помощью двух специальных процедур: процедуры нормализации для выражения и процедуры запрета для теорем.
Нормализация основывается на том, что определенные правила применяются только при наличии определенного условия, которое запрещает повторное применение правила вывода; иначе это может привести к потере полученного перед этим результата. Таким образом, например, теорема коммутативности для оператора умножения у * х * у будет применяться к выражению, содержащему % и у только тогда, когда масса переменной 尤 будет меньше массы переменной у. Здесь масса переменной представляет собой числовую функцию, характеризующую желаемый порядок следования переменных, входящих в рассматриваемое выражение. В этом случае выражение записывается в виде, например, 2 * а, а не в виде а •» 2, или %4y2之,а не 2%4y2.
Применение запрета. При ничем не ограниченном использовании некоторых порождающих правил возможны не только полезные, но и нежелательные преобразования, в частности, это может быть связано с унификацией текущего выражения. Так, например, совместное использование правил % ——х ь-^ 0 и 0—^ 尤一х должно быть запрещено. Аналогичным образом при использовании правила tg х sin x/cos х должно быть запрещено использование двух правил инверсного перехода от синуса и косинуса к тангенциальным термам:
sin х •—> tg х * cos х и cos х sin x/tg х.
Возможен случай, когда применение некоторых правил оказывает влияние и на использование каких-то других правил, применение которых до этого было запрещено. Это тот случай, когда в результате применения некоторого правила структура рассматриваемого выражения изменяется в такой идостаточ- ной" степени, что вероятность возврата к предшествующему состоянию становится несущественной.
Необходимо отметить, что имеется еще один способ устранить зацикливание. Он заключается в том, чтобы каждый раз проводить апостериорную проверку получаемого выражения на
совпадение с выражениями, уже полученными ранее. Однако такой способ устранения зацикливания требует больших затрат.
Используя две процедуры——нормализацию и запрет-разрешение, алгоритм унификации осуществляет автоматически формальные преобразования выражений. '
Таблица 3.3. Правила переписывания для упрощения алгебраических выражений■
0123456789012345677ттттттттгчг44口ч7 7 7 7 у 7 70123456789012345677ттттттттгчг44口ч7 7 7 7 у 7 7—О I> о
01234567890123456
77ттттттттгчг44口ч
7 7 7 7 у 7 7
01234567890123456
77ттттттттгчг44口ч
7 7 7 7 у 7 7
О + % I—> %
О * % I> о
1 * % I—> X
—(一х) I— > %
■ x * (—у) I-—> (—%) * у
—(% * //) > (—6 * у
% * (y * (一之))f-> (—灯 *(у*z)2 * (% + у) 1~~> N * % + N * у
X + ( —X)I一> 0
x -卜 x I> 2 * %
Cl * % + C2 * % I> (Cl + C2) * xx * (y/%) I> уx * (yl力 h-^ (% * y)/z(x/z) + (у/之)(% + у)/之%/l I> %%〃 I-> 1
В табл. 3.3 представлено множество правил переписывания, позволяющих выполнять в машине все обычные правила преобразований алгебраических выражений для их упрощения. В этих правилах С1 и С2 обозначают константы, свободные переменные обозначаются буквами х, у, г. Предполагается, что для записи выражений в правильной единообразной форме используются следующие соглашения о массе переменных: константы всегда помещаются перед переменными,——% ——после +尤,х перед ^ и т. д.
Примеры использования унификации
Ниже приведены примеры использования больших возможностей, предоставляемых алгоритмом унификации во многих областях практической деятельности человека.
Проблемы аналогии
В настоящее время хорошо известны различные тесты на уровень интеллектуального развития, которым подвергаются Претенденты на ту или иную работу. К ним относится и тест
с использованием семейства геометрических фигур, представленных на рис. 3.11. Требуется найти среди фигур 1——3 нижнего ряда рис. 3.11 такую фигуру х, которая бы соответствовала условию: фигура С так соотносится с этой фигурой х, как фигура А с фигурой В. Таким образом, следует определить, какая
в
2
Рис. 3.11. Геометрические тесты.
аналогия существует между фигурами Л и В, с одной стороны, и фигурами Сих ——с другой. Другими словами, речь идет о том, можно ли унифицировать фигуру С с левой частью “теоремы” А В. Затем предусматривается проверка результата унификации на соответствие одному из трех предлагаемых ответов.
Однако что означает здесь Л -> В? Фигура Л может быть описана просто как совокупность форм, связанных между собой некоторыми отношениями (так же как в алгебре формулы представляют собой совокупности переменных, связанных между собой с помощью арифметических операций). Таким образом, фигура Л может быть описана следующим образом:
Л ^ (точка, треугольник, прямоугольник) И (прямоугольник ВНУТРИ треугольника) .
И (точка ВНЕ . треугольника)
И (точка ВНЕ прямоугольника)
Слова, выделенные прописными буквами, обозначают здесь отношения, смысл которых очевиден. Аналогичным образом по-
лучаем для фигуры В:
В = (прямоугольник, треугольник) И (прямоугольник CJIEBA-OT треугольника)
И (прямоугольник ВНЕтреугольника)
Кроме того, приняв за начальное значение размеры фигур Л, следует дополнить описание В указаниями на размер его фигур относительно А:
И (РАЗМЕР прямоугольника — 2)
И (РАЗМЕР треугольника = 1)
Теперь теорема Т есть не что иное, как (описание А)-> (описание В), или Л 三(точка, треугольник, прямоугольник)
И (прямоугольник ВНУТРИ треугольника)
И (точка ВНЕ треугольника)
И (точка ВНЕ прямоугольника).
В 三(прямоугольник, треугольник)
И (прямоугольник СЛЕВА-ОТ треугольника)
И (прямоугольник ВНЕ треугольника)
И (РАЗМЕР прямоугольника — 2)
И (РАЗМЕР треугольника = 1)
Подобным образом получаем описание фигуры С:
С = (окружность, треугольник, точка)
И (точка ВНЕ треугольника)
И (треугольник ВНУТРИ окружности)
И (точка ВНЕ окружности).
Задача заключается в следующем:
Можно ли унифицировать описание Л с описанием С?
Представим основные этапы алгоритма унификации для данного случая. Отметим, что здесь порядок подвыражений не является существенным: какое-то отношение из Л может унифицироваться с каким-то отношением из С независимо от того, в каком порядке они появляются в описаниях соответствующих фигур. Более того, как это обычно принято, изменим наименования переменных из Л и В с тем, чтобы выполняемые подстановки носили наиболее общий характер в Т. В рассматриваемых фигурах некоторые переменные в Я и С по воле случая имеют одни и те же наименования, хотя в действительности не имеется никаких оснований для того, чтобы “треугольники'' из 4 и В были бы в обязательном порядке как-то связаны с “тре、 угольником17 из С. Теперь описание теоремы Т 三(А—>В)
принимает следующий вид:
/三(a,瓦С)И (с ВНУТРИ Ь)И (а ВНЕ Ь)И (а ВНЕ с)/三(a,瓦С)И (с ВНУТРИ Ь)И (а ВНЕ Ь)И (а ВНЕ с)8 三(% b)
/三(a,瓦С)
И (с ВНУТРИ Ь)
И (а ВНЕ Ь)
И (а ВНЕ с)
/三(a,瓦С)
И (с ВНУТРИ Ь)
И (а ВНЕ Ь)
И (а ВНЕ с)
И (с СЛЕВА-ОТ Ь)
И (с ВНЕ Ь)
И (РАЗМЕР с = 2)
И (РАЗМЕР Ь=1)
Отметим, что эти новые описания сделаны в соответствии с гипотезой, что формы объектов из Л и В не учитываются и существенным являются лишь взаимные отношения между ними.
Начнем унификацию описаний из Л и С в том порядке, как они расположены в С. Отношение uточка ВНЕ треугольника" может рассматриваться как идентичное следующему отношению: “а ВНЕ Ь”,которое в применении к Л читают так: а есть точка, b есть треугольник. На этой стадии мы знаем, что существует другая возможность, связанная со вторым случаем вхождения отношения ВНЕ в Л и с тем фактом, что порядок рассмотрения подвыражений не играет роли. Такой возможностью является унификация подвыражения uточка ВНЕ треугольника" в С с подвыражением “а ВНЕ с" в А, Рассмотрим вначале первый случай. Подстановки, описанные выше, приводят к новому описанию А:
” Л 三(точка, треугольник, с)
И (с ВНУТРИ треугольника)
И (точка ВНЕ треугольника)
(унифицировано с первым отношением из С)
、И (точка ВНЕ с)
Следующее отношение в С: "треугольник ВНУТРИ окружности”. Здесь имеется единственная возможность унификации, связанная с отношением “с ВНУТРИ треугольника" описания Л. Но мы встречаемся с третьим случаем неудачного применения алгоритма унификации: для идентификации этих двух выражений нужно, с одной стороны, изменить с в треугольнике, что можно сделать; но изменить таким же образом треугольник внутри окружности нельзя, так как это запрещено, как уже указывалось в 3.4.3. Последний запрет связан с тем, что переменные в выражении (в данном случае в выражении с) не могут считаться независимыми. Таким образом, Окружность и Треугольник не являются унифицируемыми, так как они взаимоне- зависимы в С и играют фактически роль констант. Поэтому остается только попытаться использовать упомянутую выше вторую возможность для унификации:
унифицировать “тоика ВНЕ треугольника'1 в С
с выражением “о ВНЕ с” в 4
Для этого замещают точку на а и треугольник на с. —— Тогда теорема Т ^ (А-^ В) приобретает следующий вид:
{Л ^ (точка,匕,треугольник)И (треугольник ВНУТРИ Ь)И (точка ВНЕ Ь)И (точка ВНЕ треугольника)*{Л ^ (точка,匕,треугольник)И (треугольник ВНУТРИ Ь)И (точка ВНЕ Ь)И (точка ВНЕ треугольника)*'В ^ (треугольник, Ь)И (треугольник СЛЕВА-ОТ Ь)И (треугольник ВНЕ Ь)И (РАЗМЕРтреугольника ===2)к И (размер b= 1)'В ^ (треугольник, Ь)И (треугольник СЛЕВА-ОТ Ь)И (треугольник ВНЕ Ь)И (РАЗМЕРтреугольника ===2)к И (размер b= 1)
{Л ^ (точка,匕,треугольник)
И (треугольник ВНУТРИ Ь)
И (точка ВНЕ Ь)
И (точка ВНЕ треугольника)*
{Л ^ (точка,匕,треугольник)
И (треугольник ВНУТРИ Ь)
И (точка ВНЕ Ь)
И (точка ВНЕ треугольника)*
'В ^ (треугольник, Ь)
И (треугольник СЛЕВА-ОТ Ь)
И (треугольник ВНЕ Ь)
И (РАЗМЕРтреугольника =
==2)
к И (размер b= 1)
'В ^ (треугольник, Ь)
И (треугольник СЛЕВА-ОТ Ь)
И (треугольник ВНЕ Ь)
И (РАЗМЕРтреугольника =
==2)
к И (размер b= 1)
Звездочкой отмечено отношение, которое уже унифицировано.
Следующим отношением в С является отношение 'Треугольник ВНУТРИ окружности". Это отношение идентифицируется единственным образом с подвыражением ^треугольник ВНУТРИ Ь” с помощью подстановки теперь уже окружности вместо Ь. В результате получаем следующий вид теоремы Т:
Д 5^ (точка, окружность, треугольник)И (треугольник ВНУТРИ ок- ■ ружности)И (точка ВНЕ окружности)I И (точка ВНЕ треугольни- (ка) *Д 5^ (точка, окружность, треугольник)И (треугольник ВНУТРИ ок- ■ ружности)И (точка ВНЕ окружности)I И (точка ВНЕ треугольни- (ка) *f В 曰(треугольник, окружность) j И (треугольник СЛЕВА-ОТ окружности)И (треугольник ВНЕ окружности)И (РАЗМЕР треугольника —2) И (РАЗМЕР окружности — 1)f В 曰(треугольник, окружность) j И (треугольник СЛЕВА-ОТ окружности)И (треугольник ВНЕ окружности)И (РАЗМЕР треугольника —2) И (РАЗМЕР окружности — 1)
Д 5^ (точка, окружность, треугольник)
И (треугольник ВНУТРИ ок- ■ ружности)
И (точка ВНЕ окружности)
I И (точка ВНЕ треугольни- (ка) *
Д 5^ (точка, окружность, треугольник)
И (треугольник ВНУТРИ ок- ■ ружности)
И (точка ВНЕ окружности)
I И (точка ВНЕ треугольни- (ка) *
f В 曰(треугольник, окружность) j И (треугольник СЛЕВА-ОТ окружности)
И (треугольник ВНЕ окружности)
И (РАЗМЕР треугольника —2) И (РАЗМЕР окружности — 1)
f В 曰(треугольник, окружность) j И (треугольник СЛЕВА-ОТ окружности)
И (треугольник ВНЕ окружности)
И (РАЗМЕР треугольника —2) И (РАЗМЕР окружности — 1)
Последним замещаемым в С отношением является отношение “точка ВНЕ окружности". Оно непосредственно идентифицируется со вторым отношением из А. Если применить к выражению С теорему Т 三(/f В), т.巳 произвести те же преобразования в С, которые позволили перейти от А к В, то получим описание выражения D, которое представляет собой выражение В, преобразованное подстановками, позволившими унифицировать Л и В, т. е. а/точка, fe/окружность, с/треугольник.
D 三(треугольник, окружность)
И (треугольник СЛЕВА-ОТ окружности)
И (треугольник ВНЕ окружности)
И (РАЗМЕР треугольника = 2)
И (РАЗМЕР окружности = 1)
Указанные здесь размеры взяты по отношению к размерам пер- воначальной фигуры, пусть в данном случае этой фигурой бу^ дет С. Теперь остается определить, возможно ли идентифицирО' вать это описание с одной из фигур, предложенных в качестве варианта ответа. Эта задача снова связана с унификацией, поскольку речь идет об унификации двух описаний (вне зависимости от порядка отношений). Этот последний этап является тривиальным в данном случае, поскольку иа самом деле здесь нет никакой разрешенной подстановки по той же причине, что
и в случае с “переменными" из выражения С. Правильный ответ: третья фигура справа в нижнем ряду на рис. 3.11.
Отметим, что результат можно было получить гораздо быстрее, если учесть, что А и С содержат только по одному отношению типа “х ВНУТРИ у”. Начав с унификации этих отношений, мы получим следующее: С заменим на треугольник, а b —— на окружность. Затем делаем замену а на точку и получаем результат.
Замечания по задачам типа геометрических тестов
Часто мы неосознанно используем неявную процедуру унификации при ответах на тесты, подобные тем, что описаны в разд. 3.8.1. Однако этим не исчерпываются проблемы зритель-' кого восприятия. Во-первых, человеческий глаз вместе со зрительной системой в целом является уникальным устройством обработки информации, преобразующим, в частности, рисунки в такие геометрические описания, когда они становятся простыми и легкими для узнавания. Так что проблема машинного зрения состоит вовсе не в том, чтобы снабдить ЭВМ одной или двумя телекамерами, а в том, чтобы научиться распознавать образы.
Во-вторых, совсем неочевидно (хотя это неявно предполагается в предыдущем разделе), что существует некоторое стандартное описание объектов и отношений. Одно .и то же отношение может быть описано различным образом, например:
€tтреугольник СЛЕВА-ОТ окружности" или
“окружность СПРАВА-ОТ треугольника".
То же явление обнаруживается каждый раз, когда отношение допускает использование инверсного варианта, например ВНУТРИ и ВНЕ, ВВЕРХУ И ВНИЗУ. Это приводит к необходимости специальных изменений внутри самого алгоритма унификации, чтобы можно было определить все возможные подстановки. Иными словами, кроме того, что сами выражения могут быть громоздкими, еще и число эквивалентных описаний (которое растет экспоненциально) может быть очень большим.
С этим связан вопрос об эффективности алгоритма унификации и релевантности описаний. При этом возникает проблема слишком подробной информации, так как всегда можно сделать более подробное описание на использованном нами символическом языке. Начальный этап соответствует в действительности более точному описанию рисунка на бумаге. Так, к описанию фигуры А можно добавить, что точка расположена не просто вне треугольника, но также и слева и сверху от него. В фигуре С, наоборот, точка находится на среднем уровне справа.
画回回
画回回
因因?
盟图困
因舐二
Рис. 3.12. Тесты Каттели.
0□00□И
q.bоае
ssss®в
abсdе
围囘固庚]回画 図囤闊四图圆 □ □□□□□ 回回回I□◎回 ct b c ct ef
й0000□
回回回回匿)日
Таким образом, унификация не может выполняться точно. Чтобы она прошла успешно, необходимо перемещаться внутри опи* сания, как это было сделано в нашем примере. В этом случае информация, которая описывает более точно относительное положение точек, не рассматривается в качестве релевантной, что подтверждается впоследствии тем, что точки из Л и С исчезают из конечного описания в В и D.
Третье замечание относится к языку описания.. Он не задан и не является общим для всех, каким, например, может быть обычный математический язык. Он не является ни очень
11Ш
匿
ы
三
Г
戶
mu
盟
A
屮
国图2
2 №7
KI
嘴
留
7
0
产
弋
Хороший наборХороший наборХороший нс150PП^оссоО наборХороший нс150PП^оссоО набор
Хороший набор
Хороший набор
Хороший нс150PП^оссоО набор
Хороший нс150PП^оссоО набор
Рис. 3.13. Несколько задач М. Бонгарда.
3
7
16
35
74
и
О
Т
0
С
4
7
11
14
1741?
691
602
513424
335
?
4
5
в
4
3444?
13
50
27
26
55
14111в?
В
Е
1
N
I
Н£2амз5аб
Рис. 3.14.
строгим, ни очень формализованным. Поэтому словарь отношений между объектами должен быть эффективно расширен, чтобы могли быть приняты в учет и другие характеристики: ТИП-ЛИ- НИЙ (сплошные, штриховые, пунктирные...);
ЦВЕТ (белый, черный, серый,...);
ОРИЕНТАЦИЯ (например, по отношению к оси симметрии).
Используя эти расширения языка, сложные фигуры могут исследоваться автоматически, как, например, серия тестов Q1 Каттели (рис. 3.12).
Тесты, использующие различные последовательности чисел, букв или домино, часто являются более трудными, так как, во-
первых, обычно не предлагается никаких вариантов ответов и, во-вторых, в общем случае допустимым является большое число унификаций и, следовательно, может быть множество логически приемлемых ответов.
На рис. 3.13 показано несколько задач советского ученого М. Бонгарда. Требуется определить принцип, по которому каждая группа из 12 фигур разделена на две части: “плохую” справа и “хорошую” слева.
На рис. 3.14 приводится пример другого набора тестовых задач. Необходимо определить все множество данных (т. е. следующий неизвестный элемент), используя каждый раз их ограниченное исходное число. Форма задания таких тестов всегда имеет вид UIU2f U3f..? При этом надеются ограничить двусмысленность и неопределенность задачи, давая возможность отфильтровывать возможные преобразования, оставляются только те варианты построения членов заданной начальной последовательности, которые успешно работают на всех этапах от члена U1 до UL В конце концов остается выбор уже только между несколькими возможностями. В действительности всегда существует бесконечное число кривых, которые можно провести через конечное число заданных точек (здесь точки играют роль исходных заданных значений, а кривые представляют собой законы преобразования исходных значений в последующие). К этому же типу относятся тесты, приведенные на рис. 3.13. По этой причине критикуются сейчас (и критиковались раньше) все эти тесты на определение "коэффициента умственного развития”. В действительности, чтобы выделять законные преобразования, необходимо в конечном счете ввести критерий “простоты'', который совершенно субъективен.
Использование алгоритма унификации при автоматическом доказательстве теорем
Теперь мы можем составить эффективные программы для доказательства каких-либо теорем в простых формальных системах: ниже мы воспользуемся банком пробных задач для тестирования программ, которые возникают при использовании принципа резолюции (разд. 3.9) или в экспертных системах (гл. 7).
Однако остается проблема, которую надо решить, чтобы перенести на ЭВМ алгоритм унификации: необходимо отсечь от дерева поиска те его части, которые ведут к бесконечным Процедурам.
Метод Сиклосси и Маринова
Некоторые правила переписывания при их применении дают, в частности, такую правую часть выражения, к которой снова применимо то же правило. Такие правила будем называть экстенсивными. Очевидно, использование таких правил порождает бесконечное множество формул, поэтому их применение должно быть как-то ограничено. Например, в исчислении высказываний правило pi—>~1Пр является экстенсивным. Программа может определить сама, используя алгоритм унификации, является ли выполняемое правило экстенсивным или нет.
Правила типа х + у^—^у + х, будучи применимы последовательно дважды к одному и тому же выражению, оставляют его в результате неизменным. Такие правила не могут приводить к бесконечной процедуре поиска, и они являются на самом деле только псевдоэкстенсивными. Сиклоши и Маринов предложили рассматривать экстенсивные правила только тогда, когда обойтись без них невозможно. Эти правила в таком случае применяются не более одного раза для уровня текущего поиска, а полный поиск по всем другим правилам отсекается. Благодаря такому подходу они получили в 1971 г. гораздо лучшие результаты, чем при ручном способе решения. Ниже приводятся два примера доказательства, в которых используется эта простая эвристика (не зависящая от рассматриваемой области) для отсечения экстенсивных правил.
Пример 1. Исчисление высказываний
Пусть заданы шесть правил вывода:
р 八 q — q А р
р 八(9 八 г) — (р 八 q)八 г
p Np n q) — q
4: 口q 八(pnq)i】p
5: 口 F p —p
6: p —
и одна теорема, которую нужно доказать:
(s=3-]/)A^ns.
В первый момент используется экстенсивное правило 6. Поиск проводится таким образом, что к уже встречавшимся ранее выражениям правила вывода больше не применяются и они помечаются в качестве ^мертвых^. Заключение доказываемой теоремы используется только в качестве условия остановки — сам поиск проводится перебором вслепую.
Дерево поиска показано на рис. 3.15. На нем узлы занумерованы в порядке их получения в процессе доказательства теоремы. Процесс идет вначале в ширину: выполняются все возможные преобразования на одном и том же уровне для того же самого выражения и лишь потом осуществляется переход на следующий уровень.
С исходным выражением Н (узел 1) может быть унифицировано в данном случае только правило 1. Затем, несмотря на
b \пра6ило 4
8: Г s
Рис. 3,15. Порождающее дерево для теоремы (s n ~~j f)八八> ~~j s.
повторные задания выражения Я, правила 2 — 5 уже не могут быть к нему применены. Тогда в действие вступает правило 6, применяемое поеледов а тел ь но ко всем элементам исходного выражения ", образуя самостоятельный уровень. Таким образом, правило 6 унифицируется тремя различными способами с //, образуя при этом три новых выражения (узлы 2 ——4), к которым применяется в свою очередь правило 1. Последующее применение правила 4 приводит процесс к успешному завершению доказательства в случае узла 7 (рис. 3,15).
В приведенном доказательстве для простоты выполнены не все унификации. Прежде всего пропозициональные буквы из гипотезы доказываемой теоремы не рассматривались в качестве замещаемых переменных (полуунификация). Кроме того, не рассматривалось применение правила 6 к выражению (s п п И/) A t, взятому как целое.
Пример 2. Элементарная теория групп
Заданы 6 правил вывода:
а + 力 b + а
а + (b +с) 1" (а + Ь) + с
(а + b) — Ь г->а
а I> (а + Ь) — Ь
(ск — b) + с 1~> (ск + с) — b
(@ + Ь) — с f (а — с) + fe
С их помощью необходимо доказать следующую теорему:
(а + Ь) + с 1^ а + (Ь + с).
Попытайтесь доказать эту теорему самостоятельно. Так как данная алгебра весьма ограниченна по сравнению с той, которую мы знаем, наша обычная стратегия в этом случае не приводит
.3; с + (Ь + а>4: (с + а) * b
S2 JS1 |—:j SI
5: (с * b) > а6: (а * с) + b 7: Ь * (с * а).
I I s, s, I .
Э: (b * с) * a 9: a ♦《с * b) 10: b * (a «- c)ls,
Рис. 3.16. Порождающее дерево для теоремы (а + 〃)+ с 1> а + (6 十 с).
к успеху и продвижение вперед идет с большим трудом. Правило 1 полагается системой псевдоэкстенсивным, а правило 4 —— экстенсивным. Впрочем, система будет неявным образом использовать следующую метатсорему: поскольку правило 4 не действует, могут применяться только правила 1 и 2. Решение получается за 11 шагов, причем используются только правила 1 и 2. Ход решения представлен на рис. 3.16.
При тех же правилах вывода доказательство более интересной теоремы
(Q,+ С)— (Ь + С)1―> Q — Ь
требует уже 351 шага или нескольких секунд работы процессора ЭВМ.-.
С помощью программы, описанной выше, не были получены какие-то важные результаты в математике, однако в отличие от многих других систем автоматического доказательства (и в этом заключается ее основное отличие от них) эта программа может находить новые теоремы —достаточно лишь дать ей возможность двигаться в обратном направлении. Она выявляет большие возможности ЭВМ в обработке символьной информа-
ции: самые длинные доказательства требуют всего лишь нескольких секунд машинного времени.
В тех случаях, когда проблемы символьного доказательства не являются основными (например, в системах автоматизации программирования), создаются просто хорошие подпрограммы. Кроме того, чтобы доказать промежуточные результаты в той области математики, которая не является основной для системы автоматического доказательства, поступают, например, следующим образом: математик, специализирующийся в топологии, получает необходимый результат, работая традиционным образом с литературой.
Усовершенствование метода Сиклоши и Маринова связано с сохранением разбиения на два класса задаваемых правил вывода: с одной стороны, на ''обязательные11 правила, соответствующие нормализации ——упрощению выражений, а с другой стороны, на uнеобязательные'' правила (в частности, экстенсивные, t<onacHbie,' для использования). Это разбиение позволяет, впрочем, усовершенствовать сам процесс вовлечения в доказательство этих uнeoбязaтeльныx,, правил. Ниже приведены два доказательства теорем, в которых используются эти идеи.
385, Решение тригонометрических уравнений.
Процедура PRET (М. Grandbastien, 1974)
Исходные условия в данном случае задаются в следующем виде:
Р (trigo (х)) = константа,
где 尸(trigo (х)) обозначает полином от тригонометрических функций (sin, cos, tg, etg) переменной %. Чтобы решить эти уравнения, программа уже заранее должна быть знакома с решением двух типовых случаев
(trigo (%)=,%(Bl)
I a cos (х) + b sin 北=с.(B2)
Отметим, что здесь следовало бы подумать о сведении решения заданного уравнения к решению уравнения относительно новой переменной f, где t = (tg x)/2N.介 означает наибольший общий делитель знаменателей в Р. Можно попробовать выполнить замену f = 及 по формуле Эйлера. Однако в обоих случаях степень результирующего уравнения в общем случае получится слишком высокой для того, чтобы оно могло быть алгебраически разрешено.
Однако смысл такой замены переменных заключается в том, чтобы показать идентичность этих уравнений с точки зрения
тригонометрии, а не для того, чтобы их решить. Когда речь идет об идентичности, то в действительности достаточно лишь показать, что некий полином равен нулю.
Процедура PRET основывается на выборе цели (в данном случае В\ или В2) и достижении ее всеми возможными средствами.
a In* х = 1“
1/2 (1 + cos 2х) = 1/4sin х " * 1/2
сое" х » 3/4 сое* x-cos 2х = 1/4
Рис. 3.17. Узел ИЛИ в схеме доказательства.
《8ln x)(l- 2cosx) = Q
eln X = О1 - 2.сое X я О
Рис. 3.18. Узел И в схеме доказательства...
Общая последовательность действий представляет собой итерацию из трех шагов:
Шаг 1. Использовать обязательные правила, если это возможно.
Шаг 2. Использовать какое-то необязательное правило, подобранное соответствующим образом.
Шаг 3. Выделить среди рассматриваемого множества выражений наиболее подходящее выражение.
Вернуться к шагу 1.
Каждый из этих трех шагов рассмотрен ниже более подробно. Вначале рассмотрим подробнее выполнение шага 3. По построению последовательность поиска представляет собой древовидную структуру, причем каждое исследуемое выражение порождает несколько дочерних. Если каждое из этих дочерних выражений было порождено различным правилом, начиная с предшествующего материнского выражения, то такая связь между ними обозначается как ИЛИ, и чтобы решить исходное уравнение, необходимо и достаточно решить одно из эквивалентных дочерних уравнений (рис. 3.17).
Если исходное материнское выражение представляет собой произведение нескольких выражений-сомножителей (в левой части), а правая часть уравнения - представляет собой нуль, приходится решать отдельно уравнения для каждого из сомножителей. В этом случае порождаются подзадачи, причем связь такого рода обозначается как И (рис. 3.18).
На каждом шаге решения необходимо выбрать выражение, которое будет обрабатываться программой. Этот выбор производится с помощью функции оценивания из дочерних выражений последнего узла ИЛИ, причем программа оставляет выражение с наименьшей степенью сложности. Для всякого выражения е сложность С(е) определяется следующим образом:
С(е) = (число сомножителей первого уровня) + (число различных аргументов) + (сумма степеней, отличных от единицы).
Эта оценка является довольно простой, но достаточно эффективной, так как С(е) возрастает очень быстро, если выбрано неудачное выражение, что приводит к отсечению соответствующей ветви решения. В этом случае программа переходит к другому узлу е, до тех пор пока оценки дочерних выражений не получатся достаточно малыми.
На шаге 2 запускаются в действие необязательные правила вывода (НП). Эти правила являются упорядоченными и применяются везде, где только возможно. Данные правила представляют собой правила переписывания. Полный перечень этих правил приведен в краткой форме записи в табл. 3.4, где trigo обозначает обратную тригонометрическую функцию. Совокупность необязательных правил была определена экспериментально——отбирались те правила, которые либо не всегда применимы в тригонометрии, либо порождают более сложные выражения (правило g), либо удаляют нас от конечной цели (например,
Таблица 34 Перечень необязательных правил вывода в тригонометрии
trigo u ± trigosin 2хcos 2хsin и sin иcos и cos оtrigo (и + в)trigoa иsin2 иcos3 иtrigo (—u) trigo (л 土 и) trigo (л/2 土 и) trigo (冗/4 土 и)trigo (2x)Л) sin^ xsin x cos xi) tga/) sin u/cos u左)cos2atrigo u ± trigosin 2хcos 2хsin и sin иcos и cos оtrigo (и + в)trigoa иsin2 иcos3 иtrigo (—u) trigo (л 土 и) trigo (л/2 土 и) trigo (冗/4 土 и)trigo (2x)Л) sin^ xsin x cos xi) tga/) sin u/cos u左)cos2aи I~~> 2 trigo (u + u)/2 trigo (u ± u)/2 I一> 2 sin x cos x
trigo u ± trigo
sin 2х
cos 2х
sin и sin и
cos и cos о
trigo (и + в)
trigoa и
sin2 и
cos3 и
trigo (—u) trigo (л 土 и) trigo (л/2 土 и) trigo (冗/4 土 и)
trigo (2x)
Л) sin^ x
sin x cos x
i) tga
/) sin u/cos u
左)cos2a
trigo u ± trigo
sin 2х
cos 2х
sin и sin и
cos и cos о
trigo (и + в)
trigoa и
sin2 и
cos3 и
trigo (—u) trigo (л 土 и) trigo (л/2 土 и) trigo (冗/4 土 и)
trigo (2x)
Л) sin^ x
sin x cos x
i) tga
/) sin u/cos u
左)cos2a
I~~> 2 cos2 x — 1
i~> 1/2 (cos ® —。)一 cos (u +。)) I~~> 1/2 (cos (u — v) + cos (u -j-亦 I一> f (trigo u, trigou)
I~>f (trigo au) i~> 1/2(1 + cos 2u) i―> 1/4 (cos 3〃 + 3 cos u) if (trigo ⑷) if (trigo (u)) i—(tngo(zz)) if (trigo («)) 1 f (tg x) f—> 1 — cos2 X 1~> 1/2 sin 2x i一> sin u/cos a
Ql/(l+tl 幻
правило с), либо формируют экстенсивные комбинации (правила i и /) (табл. 3.4).
Шаг 1 на самом деле состоит из трех отдельных шагов. В первую очередь программа пытается, если это возможно, упростить задачу, сведя ее к подзадачам путем разложения на множители и создания узла И. Если это не удается сделать, программа пытается упростить выражение путем замены переменной, приводя его к выражению, в котором имеется только одна переменная или единственная обратная тригонометрическая функция. Если ничего из этого сделать не удается, исходное выражение стандартизируется путем унификации с помощью обязательных правил (ОП) вывода в заданном порядке. Эти правила сведены в 10 групп, приведенных ниже в перечне обязательных правил вывода (табл. 3.5).
С помощью программы PRET более ста примеров были решены за несколько секунд на ЭВМ СП 10070.
Приведем два подобных примера.
Таблица 35 Перечень обязательных правил вывода
Развитие (правило переписывания):
(а + Ь)п -> сумма.
Подавление радикалов (продукция):
“а = с f а = с"
Преобразование суммы в произведение:
sin zz + sin и -> 2 sin ((〃 + и)/2) cos ((以——u)/2).
Разложение на множители (правило переписывания):
'ап — bn i~> (а — 6) (полином).
Удаление котангенса, если в выражении имеется только один аргументctg х ~> 1/tg х.
Удаление тангенса, если в выражении имеется только один аргумент tg х I* sin x/cos х.
Если синус и косинус в выражении появляются с нечетными степенями, то производится деление на cosa х с целью получения выражений
(Р (tg #) = 0) V (Р (cos х) = 0).
Если синус и косинус встречаются в выражении с четными степенями, то с целью получения выражения P(tg х) = 0 применяется правило
sin2 х к—> 1 — cos2 х.
Если выражение е симметрично относительно синуса и косинуса, то
X I一А X + л/4.
Если в выражении встречаются члены, имеющие знаменатели, то привести все выражение к общему знаменателю.
Пример 1
(I)(I)«3 tgx — 4 sin2x = 0
(I)
(I)
Здесь невозможны ни разложение на множители, ни замены на стандартные переменные. Однако можно применить обязательное правило f:
(Н)(Н)(П1)(П1)“丁瑞^Tsid — O.
(Н)
(Н)
(П1)
(П1)
Применение ОП(/) дает при cos х =# О
«3 sin х — 4 sin2xcosx = 0.
Теперь исходное выражение преобразовано и программа возвращается к шагу I, производя разложение выражения (III) на множители, вынося sin х за скобки:
sin х («3 — 4 sin х cos %) = 0.
Это выражение приводит к двум задачам типа И:
sin х = 0,(IV)
которая тривиальна, и
(V)(V)«3 —4 sin х cos х = 0.
(V)
(V)
Это последнее выражение становится текущим. Для него использование обязательных правил ничего не дает, но применение (НП) (й)и
к подвыражению
sin х cos х 1/2 sin 2х1”
ivv
VI приводит к выражению, дающему реше
Рис* 3.19. Дерево решение для уравнения “3 tg х — 4 sin2 х = 0.Рис* 3.19. Дерево решение для уравнения “3 tg х — 4 sin2 х = 0.ние задачи:
Рис* 3.19. Дерево решение для уравнения “3 tg х — 4 sin2 х = 0.
Рис* 3.19. Дерево решение для уравнения “3 tg х — 4 sin2 х = 0.
sin 2% = “3 /2.
На рис. 3.19 показано дерево решения для выражения
«3 tgx — 4 sin2x = 0.
Пример 2
(I)(I)sin (孔 + 1)% + sin (n — l)x — sin 2x = 0
(I)
(I)
Никакое обязательное правило не пригодно для выражения (I). Необязательное правило (а), напротив, приводит нас
к выражению
(П)(П)2 sin nx cos % — sin 2% = О,
(П)
(П)
сложность которого составляет 4 + 3 + 0 = 7, тогда как сложность исходного выражения (I) была равна 3 + 3 + 0 = 6.
В действительности то же правило (а) применяется также для группирования не только к термам 1 и 2 выражения (I), но
Рис. 3,20. Дерево решения для уравнения sin(n+l)x + sin( — 1)х ——sin 2尤=0.Рис. 3,20. Дерево решения для уравнения sin(n+l)x + sin( — 1)х ——sin 2尤=0.
Рис. 3,20. Дерево решения для уравнения sin(n+l)x + sin( — 1)х ——sin 2尤=0.
Рис. 3,20. Дерево решения для уравнения sin(n+l)x + sin( — 1)х ——sin 2尤=0.
также к термам 1 и 3 или 2 и 3. Таким образом, программа одновременно порождает еще выражения (III) и (IV), имеющие ту же степень сложности, равную 7:
2 sin ' ^丄 % cos •^^ % + sin (n — 1)汇=0,(III)
2 sin % cos n 1 x + sin (n + 1) x = 0.(IV)
Теперь программа применяет необязательное правило (b) к исходному выражению, получая выражение (V), степень сложности которого составляет 5 + 3 + 0 = 8:
sin (孔 + 1) % + sin (n — 1) х — 2 sin x cos x — 0.(V)
Программа затем обращается к выражению с наименьшей степенью сложности — пусть это будет выражение (II). Теперь необязательное правило (Ь) применяется снова и приводит к выражению
sin пх cos х —- 2 sin х cos х = О,(VI)
которое тут же разлагается на множители
cos х (sin пх — sin x) = 0.(VII)
Из этого выражения порождаются две подзадачи (VIII) и (IX) (рис. 3.20). Обязательное правило (с) преобразует разность (IX) в произведение
sin nx ——sin x — 2 sin ——2x cos ——尤, (X) и задача, таким образом, в общем, решена. Дерево для нее приведено на рис. 3.20.
Решение арифметических задач.
Процедура PARI (D. Bourgoin, 1978)
Математические знания в программе PARI сконцентрированы в специфических модулях. Общая идея решения задачи состоит в том, чтобы выбрать одну из задач, имеющую решение, и затем сделать все возможное для того, чтобы свести исходную задачу к ней. Программа решает задачи с целочисленными переменными, используя шесть модулей, которые могут обрабатывать определенные подзадачи. Г1оследние играют роль усовершенствованных обязательных правил вывода.
{Модуль /〉: произведение = константа. Этот модуль использует разложение числа на простые множители или делители, например:
ху = 5今(х = 5, и=1) ИЛИ (у = 5, %=1).
^Модуль 2〉: конгруэнтность. Модуль делает заключения о простых равенствах, основываясь на разложениях небольших чисел (2, 3, 5, 7, 11), чисто комбинаторным способом. Этот модуль выводит необходимые условия, которым должны удовлетворять неизвестные величины, например
5х — 2// + 1 =>х есть нечетное число.
《Модуль 3〉: делимость. Этот модуль делает заключение о делимости, основываясь на фундаментальной лемме Гаусса: “Если а есть взаимно простое число с b и делится на произведение Ьс, то а делится на с”,например
делится на 7乞今3 делится на 2.
^Модуль 4〉: равенство. Этот модуль умеет находить частные решения простых уравнений путем последовательных испытаний (идеальным случаем здесь было бы использование непрерывных (цепных) дробей), например
7х — 5y = 11 имеет место частное решение 尤=3 и у = 2.
{Модуль 5): обобщенное евклидово деление. Модуль рассчитывает частное и остаток от деления полинома на полином, например
(х2 — 2х + 1) деленное на (х — 3) дает
(х2 -2х + 1) = (х-3)(х+1) + 4.
{Модуль 6): индукция. Этот модуль умеет находить, исходя из начального значения и рекуррентного отношения, формальное выражение для общего члена последовательности, например
= 3〃 也_[ + 4; щ — Ьа^ип = Зл-1 (5а + 2) — 2.
Эти модули используются в сервисных программах для нормализации выражений, выполнения подстановок, сообщения о результатах, найденных в текущих соотношениях. Конечной целью всей программы является отыскание решения в явном виде либо в полной форме, либо в форме простого условия, характеризующего решение, либо описание доказательства того, что решения не существует.
На каждом этапе решения адекватность каждого из модулей текущей задаче проверяется с помощью игры шести триплетов. Каждый из них для каждого из шести модулей измеряет реле-, вантность модуля, трудность его применения (которая оценивается по числу переменных и максимальным степеням) и результирующие ожидаемые издержки, связанные с последующим продолжением решения задачи в этом случае. Имеются точные критерии, позволяющие решать, какой из триплетов выбрать и, следовательно, какой из модулей применить.
Ниже приводятся три примера решений с использованием метода PARI.
Пример 1. Найти два простых числа р и q, таких, что
р2 = 8g + 1.
Модуль “делимость” лучше всего соответствует заданным условиям. Он “считает”, что имеется уравнение относительно Q, и формирует новое условие делимости:
р2 ——1, т. е. 8 деленное на (р?——1).
Модуль "конгруэнтность" не дает здесь ничего нового (р,и q уже известны как нечетные числа, так как они являются простыми числами). Но тот же модуль становится теперь наилучшим кандидатом для прямого исследования начального условия и конгруэнций по модулю 3, порождая выражение
(р по модулю 3)2 = 2(, по модулю 3)+1.
Если р w 0 по модулю 3, то р, являющееся простым числом, может быть только равным 3; отсюда следует
= 8q + 1 и при q —{.
Получаем решение р = 3, g = L
Если р ^ 1 по модулю 3, то конгруэнтное уравнение принимает вид
— 2 ((/ по модулю 3)+1;
пусть 夕三0 (по модулю 3), т. е. q = 3 (как простое число), тогда
р2 = 8 ・ 3 + 1 и р .= 5,
но это противоречит предположению, что р 三 1 по модулю 3. Если р 三 2 по модулю 3, то получаем
4 = 2(« по модулю 3) + 1;
пусть снова q 曰 0 (по модулю 3) и, следовательно, g = 3, тогда
р2 = 25 й р = 5, что в данном случае удовлетворяет предположение р = 2 по модулю 3.
Итак, задача имеет два решения: (3; 1) и (5; 3).
Пример 2. Найти целые положительные х и п, такие, что
5炉—6炉 + 7х + 8 _
X2 - Зх + 4=九・
Для заданной задачи наиболее пригоден модуль «евклидово деление», в результате применения которого получаем тождество•
5х3 - 6炉 + 7% + 8 = (х2 - 3% + 4) (5% + 9)+ 14х-28.
Трехчлен (х2 — 3% + 4) должен быть общим делителем обеих частей этого тождества и, следовательно, должен делить и 《остаток》 (14% — 28). Модуль «делимость» формирует здесь новое условие:
х2 —Зх + 4]14х-28, к которому снова применяется модуль “евклидово деление" для получения нового тождества
14 (х2 — 3% + 4)曰(14х — 28)优一1) + 28.
Трехчлен (%2 —3% + 4) должен снова делить обе части этого тождества, и, в частности
х2 — Зх + 4 128;
пусть 々(力2 — 3% + 4) = 28, где k — целое число. Модуль ипро- изведение = константап играет здесь роль ключа для проверки значений ^ = ±1, ±2, ±4, ±7, 士 14, ±28. Программа выполняет решение 12 уравнений второй степени, соответствующих этим 12 возможным значениям k, например
^ = + 14 дает х2 — Зх + 4 = 2, т. е. х — 1 и х = 2;
々 = +7 дает х2 — Зх = 0, т. е. х = 0 и х = 3.
Множество решений в целом представляет собой набор чисел 0, 1, 2, 3, 5. Но это еще не есть заключение, получаемое программой, которая знает, что пока получена только последовательность эквивалентных значений, а не последовательность необходимых условий. Для получения последних необходимо проверить, удовлетворяет ли каждое полученное решение исходному выражению. При проверке отсекается решение х = 3, и окончательными решениями задачи будут числа 0, 1, 2 и 5.
Пример 3. Найти все целые п, такие, что
£2i = n(n+ 1).(I)
/ = 1
Здесь используется модуль <<индукциям. Вначале он проверяет условие задачи (I) для случая п = 1:2 — 1(1 + 1). Затем он делает в условии (I) подстановку (п + 1) вместо п, чтобы попытаться доказать, что оно не теряет силу при переходе от л к (n+ 1). Отдельно взятый общий член ряда условия (I) порядка 5+ 1) будет иметь вид
S2i + 2(n+ !)? = («+ 1)((» + 1) + 1).
Используя теперь (I) в качестве правила переписывания, получим
п(п+1)+ 2(п+ 1) — (п+ 1)5 + 2),
или, после сокращения (м+ 1) в обеих частях этого равенства в силу того, что (孔+ 1) есть целое число, получаем тривиальное равенство.
п + 2? = п + 2.
Таким образом, первоначальная теорема доказана по индукции.
Несколько задач, решенных программой PARI
Найти а и &, такие, что а|b и а\ (Ь +1).
2. Доказать тождества: п2. Доказать тождества: п2 ⑵-1)2 =
2. Доказать тождества: п
2. Доказать тождества: п
i== 1
n
/г(2гг— 1)(2гг+ 1)/г(2гг— 1)(2гг+ 1)33S 4(i+ 1)(,+ 3)«+5)=九(九+ l)(n2+ 13n4-52) + 60n. t = l
/г(2гг— 1)(2гг+ 1)
/г(2гг— 1)(2гг+ 1)
3
3
XF = (Xi), t=l \i=l /
也产(n + 1) (2/z + 1) + Barn 仇 + 1) + Gna2 — 6 £ (a + irf = 0.
j % = 3a + 2;
Пусть задана последовательность s —0
Показать, что n-й член этой последовательности может быть записан как ип = abn.,
Решить относительно переменной 2 следующую систему уравнений:
2х3 + %у + 7 = 0,
р (100 — g) + g (100 — р) = 1978,
%2 + 8z = 3 + 2у2.
Для. каких значений х выражение (х2 + 8kx — З^2) делит без остатка выражение (4х4 + 35々炉十 5^2х2 — 65^з% -j- 2i^)?
Доказать конгруэнтность следующих выражений: (10^ + + 7)10 +1 三 0(10), (6山 + 1)・26也” + 1 = 0(3).
Показать что 5?厶 и 25я имеют одинаковые остатки при делении их на 7.
Найти значение х, такое, что 5|4х2 + 1 и 13|4х2 + 1.
Доказать, что если р и 8р2 — 1 есть взаимно простые числа, то число 8P2— 1 является составным.
Показать, что равенство р2 + ^2 = г2 -|- s2 + /2 не имеет решения в числах р, д, г, s, /, взаимно простых с числом 2 и -превосходящих его.
Определить все целые п(п ^ IN), такие, что 6 чисел 5+1), 5 + 3), (п + 7), (п + 9), (п+ 13), (п+ 15) будут взаимно простыми.
Все программы, описанные выше, обеспечивали получение доказательства только уже предложенной теоремы или нахождение решения заданной задачи. Действия математика совсем другие: оя не знает заранее теорем, которые он ищет, и он не имеет никакого априорного критерия остановки. Математика
ведет в поиске его "ннтунцня" или тот род знания высшего уровня, который позволяет ему одновременно и управлять своими поисками, и упрощать себе работу, опуская при поиске неинтересные детали. Иначе говоря, действия математика направляет некоторая метатеория.
Существуют программы, которые также эффективно используют метатеорию. Ниже описана первая среди них — программа Ж- Питра (1966 г.).
Программа Ж. Питра для исчисления высказываний
Иерархия метатеорий
Теорема представляет собой высказывание в некоторой формальной системе. Метатеорема является высказыванием о теоремах формальной системы и представляет двойной интерес.
Рис. 3.21. Дерево поиска (а) и линейный вывод (6).
С одной стороны, она позволяет сократить доказательства, избегая повторения классических промежуточных этапов и, более того, выполняя непосредственный переход от спуска по дереву (рис. 3.21,。). С другой стороны, метатеорема позволяет осуществить наилучший глобальный обзор поиска и сконцентрировать внимание на наиболее важных направлениях, не загружая память несущественными результатами.
Манипуляции с мататеоремами могут осуществляться с помощью формальной системы второго по отношению к исходному уровня. При этом необходимо использовать обозначения, отличающиеся от обозначений исходной системы для новых операторов. Так, модус поненс является правилом вывода, которое позволяет порождать теоремы и, следовательно, является также. метатеоремой. Эта метатеорема может быть записана следующим образом:
р, pnqfq,
т. е. если р есть теорема и если рп q есть теорема, то и ^ является теоремой. Здесь запятая и стрелка являются соответствующими аналогами в метаязыке для символов 'А и гэ и языка исходной системы.
Метатеоремы могут быть доказны в рамках исходной формальной системы. Так, мы уже доказали выше, что 2 исчислении высказываний из всякой теоремы вида
Pn(QnR)
можно вывести (используя правило модус поненс и подстановки) новую теорему
Q n (Р n R).
Этот результат, являющийся метатеоремой в исчислении высказываний и записываемый в виде
Pn(QnR)fQn(PnR), применим ко многим выражениям исчисления высказываний. Отметим, что удобным средством для создания метатеорем является использование в этих целях мета-метатеорем.
Например, высказывание "еслн из а можно вывести b и если из b можно вывести % то можно вывести с из а" является мета-метатеоремой, которая выражает транзитивность дедукции. (Это свойство является очень ценным в фундаментальных теориях). Чтобы это отразить, в записи для импликации и конъюнкции в метаязыке будем использовать новые символы ; и О>. Тогда предыдущая мета-метатеорема, о транзитивности дедукции запишется следующим образом:
а -> 力; b - 沪 с а с.
Вполне логично для таких порождающих мета-метатеорем, широко используемых математиками, создать некую общую программу. К сожалению, существуют важные мета-метатеоремы, применяемые только в какой-то данной формальной системе. Так, например, мета-метатеорема
q8 R f q
не является теоремой во всех формальных логических теориях. Действительно, нужно внести особый оператор самого языка —— символ п, который не обязательно существует во всех теориях.
В общем случае все мета-метатеоремы, в которых фигурируют операторы исходной формальной системы, являются узко специальными. Необходимо, следовательно, создать какое-то средство для доказательства мета-метатеорем. Для этого определяют мета-мета-метатеорию. На этом уровне достигается уже такая степень общности, которая сегодня достаточна для всех областей математики. Таким образом, выражение "Если
а, Ь-> с является метатеоремой, то ас» b f с является метаметатеоремой" представляет собой мета-мета-метатеорему универсальной пригодности.
Метатеории рассматриваемой программы
теорем, приведенных ниже:о, Ь -> с 0A b, а +са, а—>Ьо>а ->Ьв — аАаз а ->bа; а —Ь:」>力а > b; & > г :>> а —> са-> Ь; 6, с …a do》а, c--^dтеорем, приведенных ниже:о, Ь -> с 0A b, а +са, а—>Ьо>а ->Ьв — аАаз а ->bа; а —Ь:」>力а > b; & > г :>> а —> са-> Ь; 6, с …a do》а, c--^d8) а》b; & d • -> аС > с, d. -»Ь8) а》b; & d • -> аС > с, d. -»Ь■ Программа Ж- Питра работает в различных аксиоматиках исчисления высказываний. Она использует восемь мета-мета-
теорем, приведенных ниже:
о, Ь -> с 0A b, а +с
а, а—>Ьо>а ->Ь
в — аАа
з а ->b
а; а —Ь:」>力
а > b; & > г :>> а —> с
а-> Ь; 6, с …a do》а, c--^d
теорем, приведенных ниже:
о, Ь -> с 0A b, а +с
а, а—>Ьо>а ->Ь
в — аАа
з а ->b
а; а —Ь:」>力
а > b; & > г :>> а —> с
а-> Ь; 6, с …a do》а, c--^d
8) а》b; & d • -> аС > с, d. -»Ь
8) а》b; & d • -> аС > с, d. -»Ь
(комму гативноегь антецедентов) (у прощение)
(где в — переменная, не фигурирующая в а) (где V переменная, не фигурирующая в а) (модус поненс метатеории) (транзитивность дедукции, 1-я форма) .
(транзитивность дедукции, 2-я форма)
(транзитивность дедукции, 3-я форма)
Эти мста-метатеоремы используются математиками. Чтобы
иметь возможность доказывать другие мета-метатеоремы, программа содержит (《знает》) пять мета-мета-метатеорем. В них символ ! обозначает конъюнкцию, а символ О-О-* дедукцию (вывод) в мета-мета-метаязыкс. Ниже приведены эти метамета-метатеоремы ((МММ.) -теоремы);
а, b > сС-С^а- >>Ь -->с
а, b - > сс-о^ V >ао> V. Ь-^с
(переменная и не фигурирует ни в а, ни в Ь, ни в с)
а, b сС-Q-> с - > vC» а, b — v
а\ aQ~> Ь с 0-0 > b > с
а ->Ь\ а — 6с> % d - > еО~О-> с, d ->е
На рис. 3.22 приведены обозначения операторов конъюнкции (И) и импликации в языках различного уровня.
Приведенные выше выражения дают возможность быстро получить важные результаты в уже знакомых нам формальных системах. Онн также используются в программе в ходе работы алгоритма унификации, который приводит к совпадению различных (мета)*-теорем с соответствующими частями выражений,
Язык
М~язык
ММ-язык
М ММ-ЯЗЫК
И
А
/
1
Нмпликацазг
-*
О о>'
Рис. 3.22. Обозначения логических операторов в языках различного уровня.
приведенных выше. Так, например, когда в какой-то специальной теории доказана формула
Р, q Nq、
то третья МММ-теорема позволит нам вывести из нее следующую мета-метатеорему:
9 А 4 "О>(р, 9 f「)•
Чтобы программа могла создавать что-то новое, необходимо решить две фундаментальные проблемы:
Как отбирать интересные результаты?
Как выбирать контрольные задачи для испытания программы?
Отбор результатов
При использовании мета-, мета-мета- и мета-мета-метатеорем программа сталкивается с проблемой комбинаторного взрыва, связанного с необходимостью хранения большого количества информации. Для устранения этого недостатка были запрограммированы три общие идеи:
выражение считается тем более интересным, чем меньше символов оно содержит;
продукция считается тем более интересной, чем ближе антецедент к консеквенту (напомним, что продукция — это порождающее правило, т. е. (мета)*-теорема с одним или несколькими антецендентами);
лучше затратить время на отбор выражений для архива, чем терять его в бесполезных проверках выражений.
Продукции обрабатываются особенно просто. Необходимо принимать строгие меры, чтобы не хранить много различных версий некоторой наиболее общей формы, не производить за счет транзитивности дубликатов уже известных результатов. Например, если уже получено, что а-^b и & -> с, то не нужно хранить в памяти выражение а -> с, так как программа сама легко получит этот результат. В противоположность этому результаты, полученные при использовании продукций (которые
дают простой результат после значительно более сложных расчетов), всегда сохраняются.
Полезность какой-либо продукции оценивается в зависимости от того, что уже порождено, и тех выражений, которые могут быть еще произведены. Надо отметить, что результаты, которые могли быть отвергнуты вначале, затем сохраняются и аналогично результаты, отвергнутые как бесперспективные в одной системе, могут быть оценены как интересные в другой. Программа заносит в архив только наиболее простые продукции в данный момент, т. е. те продукции, которые содержат наибольшее число операторов и пропозициональных переменных.
Случай с теоремами является более сложным, так как если продукции уже по их определению состоят из антецедентов и консеквента, что позволяет легко производить сопоставление, то теоремы содержат лишь последовательности символов данного языка. Реальная полезность теоремы заключается в том, что она связана с возможными интерпретациями данной формальной системы. Поэтому связи между языком и метаязыком, возникающие в процессе проверки продукций какой-либо теоремы, рассматриваются только с этой точки зрения.
3.9.3. Выбор контрольных задач для испытания программы
При отборе и проверке результатов программа работает следующим образом. Вначале рассматривается результат, считающийся наиболее существенным. Ниже приводится описание последовательности рассмотрения этих результатов. Если это теорема, к ней применяются все продукции, у которых антецедент упрощает результат (т. е. увеличивает его полезность). Если рассматривается продукция, которая упрощает исходное выражение, ее применяют ко всем хранящимся в архиве программы теоремам и ко всем продукциям, которые усложняют исходные выражения, используя их в качестве антецедентов. Если это продукция, которая усложняет исходное выражение, она применяется к упрощающим продукциям, так же как и к продукциям с несколькими антецедентами. Выполняются не все возможные испытания и проверки продукций и теорем. Это связано с тем, что программа хранит наряду с каждым таким выражением комбинации, в которых оно уже участвовало. Поэтому такие операции не повторяются.
Из сказанного выше видно, что, несмотря на значительный объем проводимых испытаний, машинное время и память, занимаемая при этом, остаются в приемлемых пределах, так как не все результаты хранятся в памяти.
Результаты
Программа работает с шестью формальными теориями, построенными Расселом, Лукасевичем, Гильбертом, Бернеем и Шеффером. Она отыскивает все основные теоремы» причем иногда дает для иих оригинальные доказательства. При этом используются все заданные метауровни. Программа умеет работать и на уровне предположений: ей задается конкретное выражение и требуется его доказать. Используемые программой стратегии в этом случае мало отличаются от обычных. Она просто инвертирует свои продукции, чтобы перейти от предположения к аксиомам. Во всяком случае, программа преуспела в том, что смогла сама доказать некоторые теоремы, которые ее создатель не смог доказать. Приведем беспристрастное суждение об этом самого Лукасевича: "Нужно быть очень опытным и искусным в построении логических доказательств, чтобы суметь вывести из трех аксиом логики закон коммутативности (夕 n(g п г))п(д n(p п г)) или даже закон упрощения р n(q п р)". Программа Ж. Питра эффективно доказывает оба этих утверждения в рассматриваемой аксиоматике.
Пример доказательства
Аксиомы: Т1: (р n (g п г)) n ((р n g) n (р п г))
pn(gnp)■
(~]pZD~]q)-=>(qz^ р)
Продукция, Ml: р、(рп q) f q.
Продукция М1 вначале порождает две мета-метатеоремы благодаря МММ-теоремам, которыми располагает сама программа. Для удобства мы будем использовать при доказательстве форму нотации, принятую в программе (префиксную польскую запись), только лишь для теорем. Программа получает следующие первые результаты:
п pq р f q ММ 1 из All и I
ngrO*p, q f г ММ 2 из Ml и II
Например, ММ2 выводится из мета-мета-метатеоремы II и из Ml с использованием подстановки png для а, р для bug для & где запятая употребляется в том смысле, как она используется в мета-метатеореме I программы. Таким образом, получаем
(о —npg) 8(〃 g)
или nqro*p, g-»r, что дает ММ 2.
Рассмотрим теперь часть порождающего дерева, которое приводит нас в данном случае к интересной теореме:
Таблица 3.6. Доказательство теоремы ( 1 p :□ p) n p
2 3T T
1 4
TlM
+ММ1 +ММЛ +ММ1 +ММ2
pf ngp
nlp]dr ngp
n p n qr f n n pq n pr
n p n gr, n pq -» pr
М2
М3
M4
M5
2 2 w T T M
w 6
M M
+ + +
Продукция M5 порождает ММ--теорему: n p n qr an pg — n pr np—n“
первый антецедент Мб о pg, n гр f n rq
ММ3
M6
T4
M7
3
T
2T
о 14 8 9 2345678219
M4T4T5T6T6T1T7T7T8T2T9T1T1T3T1M1M1M1T4T1T1T1T1T1T1T1T1T1
+MM5 +MM4 +M9 +M10 + M4. +MM1 +MM5 +M9 +MM1 +M10 +MM1 +M14 +MM5 +M15 +MM4 + M9 +MM4 +M17 +‘M8 +МН +М20 +МЗ +М13 +М8 +М13 +М12 +М16 +ММ1 +М21 +мз
Продукция M7 порождает 二i pq a n qr ~> n pr n pq a n rp fn rq npnlg】r-》n pnrq о n pqr — n qr n p n qr f q n pr n p n n pqq n n p n pq n pq n pn qq ->n pq npnqnqrmpnqr n npg n nrp о rq о pg -> n n rp nrg n n pq n n qr n pr npq->nnqrn pr n n n pgr n gr n p n n qrs f n p n rs nnpnqrnqnpr n n p n qrs -> n n q n prs 6pn pq о n pqr > n ] pr n pqn pr
n 1 pg ~ n 1 g 二> rp n】p…n]gp nllPP n P11P nnpgnpllq n nlpg n]gp nnpn]grnpn]rg nnlpnlgpnlpq n n Ip n Igg n 7gp nlpn】qq->nlqp
nn'ppp
М.М-теоремы:
MM4
MM5 M8 M9 MIO T5 T6 MN M12 T7 M13 T8 M14 T9 M15 T10 M16 Til M17 M18 M19 M20 T12 T13 T14 T15 T16 T17 T18 M21 T19 T20
(~lpnp)np. Чтобы достичь этого результата только своими средствами (полностью автономно), программа строит 5 мета,- метатеорем, 21 метатеорему и 21 теорему, используя описанные выше процедуры. Отметим при этом важные результаты, полученные попутно в процессе общего доказательства,— это теоремы Т4, Т7, Т8, T9, Т11, Т12, Т13, Т15. Само доказательство теоремы в целом приведено в табл. 36 Другие теоремы, доказанные в данной аксиоматике и при других наборах аксиом, можно найти в работе (Pitrat, 1966).
Принцип резолюции и язык Пролог
Принцип резолюции
В 1930 г. Эрбран в докторской диссертации по математике предложил оригинальный метод доказательства теорем в формальных системах первого порядка. Общая идея метода состоит в том, чтобы получить некоторое заключение С, исходя из гипотез //1, Н2,, Нп, т. е. чтобы Доказать теорему Т、
Н\ \ Н2 N …NHttnC,
достаточно доказать противоречивость формулы F
〃1 A Н2A …А /МА
в которой отрицание заключения добавлено к исходным гипотезам. Такое доказательство может быть существенно проще прямого вывода. Для доказательства противоречивости формулы F достаточно показать, что F является не-теоремой, так как в ней содержится подвыражение вида (р А ~1 р). Эрбран предложил эффективный способ доказательства за конечное число подстановок в формулу F, когда исходное выражение Т является теоремой. Ниже эта проблема рассматривается более подробно.
Теорема Эрбрана
Доказательство противоречивости формулы F основывается на использовании отрицания. Теорема Эрбрана гарантирует, что существующее противоречие может быть всегда достигнуто за конечное число шагов, каковы бы ни были значения истин- йости, даваемые функциям^ присутствующим в гипотезах и заключениях.
Теперь приведем некоторые определения, которые потребуются нам в дальнейшем.
Для начала будем считать, что операции выполняются только над стандартными выражениями, представляющими собой дизъюнктивные формы С/, которые называются предложениями:
& =(厶1 V42 V ... V厶/》
Формула 尸 представляет собой конъюнкцию предложений: F = A&. Ниже мы увидим, что подобная стандартизация всегда возможна для формул первого порядка. Входящие в предложения & литералы L* не содержат символов Д, V, 3, или о.
Пусть Е представляет собой множество предложений, Go ——множество констант, появляющихся в £, и для всякого натурального числа i множество G( представляет собой объединение множества Gz_i и всех термов %(八 /2,...,厶幫々),где fk — функция mk аргументов-термов tj (/ = 1, 2, ..., mk) из G j Пусть
G(E)= 0 G,. i=0
Множество G (E) по определению является универсумом Эрбрана множества £. База Эрбрана В(Е) некоторого множества предложений Е представляет собой множество всех атомарных формул множества Е,冗 е. таких формул, каждая из которых содержит либо не более одного предиката, либо отрицания предиката. Доказательство теоремы Эрбрана состоит в построении такого дерева Д над элементами В(£), что
Е — корень дерева Л;
всякая вершина дерева 4 является подмножеством Е, случайным образом означенным;
всякий путь, исходящий из корня дерева, не может содержать одновременно р и ~1р, где р — какая-либо формула.
Ассоциировать (сопоставить) какое-то конкретное, значение истинности с формулами, построенными над В(£), означает просто выбрать какой-то конкретный путь на А. Противоречие выявляется, когда приведенное выше условие 3 уже не удовлетворяется. Теорема Эрбрана гарантирует, что это достигается всегда, когда Е невыполнимо (т. е. противоречиво). ”
Теорема Эрбрана (1930 г.). Необходимым и достаточным условием того, чтобы множество предложений Е было невыполнимым, является существование конечного противоречивого множества полностью означенных подформул из Е
Это множество может быть построено в виде дерева описанного выше типа с помощью простого метода, связанного со следующим фундаментальным результатом.
Теорема о резолюции- Пусть имеется формула 尸 1 в стандартной форме представления
e1 = &八g八...八(p V /")八.…八(一1 p V厶力八• • .八Cm,
и пусть имеется формула 尸2:
e2 =尸1八(厶V 4・).
Тогда если формула F2 противоречива, то и формула F1 также противоречива.
Доказательство. Для доказательства теоремы достаточно показать, что F1-+F2. Случай, когда Li = ср, является тривиальным, так как достаточно показать, что если £2 = L; противоречиво, то
Е1=р ^ПрУ Lf)
также противоречиво и Ck для 力# i и k ^ j не влияют на результат. Для логики первого порядка выполняется тождество
(п Д V ^) = (Д =э В) и, следовательно,
Е1 = р 八(рп 4)・
По правилу модус поненс и метатеореме р имеем q <-^* р Д(/ : :£1 匚厶八 что приводит к требуемому результату Л1 ~> F2.
В противном случае, когда 厶; 三 ср, доказательство аналогично, если учесть, что р = ~1 Пр:
Е1 = (р V &) А Т р либо
e Ш Р V厶)八 ” =(” n厶)八》
и, следовательно, снова El м L и Fl f 尸2.
В общем случае £1 имеет вид
Е1 Е (р V &) •八(П р V 4)
и, как и в предыдущем случае, получаем
р Y It L»n р и Г р Y J …р п L]
Следовательно,
£1 三(一)厶 n p) A (p n 4).
Используя теорему (a n 6)八(b n c)f。口 с, получаем
E1->I Lq L:
либо.
El f & V L/
и, следовательно, Fl f 尸2.
Таким образом, формула 尸2 выводима из формулы 尸 1 и предложение Li V Л; нового не добавляет, так как если 尸2 противоречиво, то противоречиво и F1. Более того, процесс последовательных “резолюций”, установленный таким образом, является полным, т. е. если формула Е противоречива, то резолюция докажет это противоречие за конечное число шагов, что как раз и гарантирует теорема Эрбрана.
Предложения & = (р V Ц) и & = (Пр V 厶) называются родительскими предложениями к предложению, называемому резольвентой L( V Lj. Разумеется, если предложения С^ и С; содержат переменные, что в общем случае имеет место в логике первого порядка, то с помощью процедуры унификации может быть найден общий литерал р. Несколько унификаций могут дать этот литерал как дерево формул, которое нужно построить, чтобы получить доказательство, т. е. противоречие.
Примеры резолюций
/) Исчисление высказываний. Пусть формула
Fl q s д ^ Л (р V ~1 ^) Л (П Р V s)
из четырех предложений представлена в виде следующей конъюнкции: С1 入 С2 八 СЗ/\ 匕4. Первая резолюция между С1 и С4 приводит к резольвенте С5 三 Пр. Вторая резолюция между С2 и СЗ даст С6 三 р. Это предложение С6, унифицированное с предложением С5, дает пустую резольвенту: следовательно исходная формула 尸1 является противоречивой. Иначе геворя, мы только что установили, добавив резольвенты к гипотезам, следующую теорему:
(/ Л (р V ~ <7)Л (П Р V s) =э s.
Логика первого порядка. Пусть даны х, у, z, f, v ——пять переменных, а, & и с — три константы, Р, Q и R — три каких-то предиката и следующее, выражение 尸1:
尸1三p(居 ")八 Q⑴八 R® 八(口P(a,z) V -1Q3) V 1Q(e)).
Унификация дает три подстановки и три возможные резольвенты, исходя из 尸1:
S = {^а, М* дает 尸2 = 口 Q (b) V 口 Q (。),
及={〃公 дает F2 =、P& z)VlQ(c),
S" = {〃c} дает *2 = [P(a, z) V~|Q(»・
В этом случае доказательство будет также завершено, когда L/ и Lj окажутся пустыми, т. е. когда внутреннее противоречие возникает при построении резольвенты. В данном случае это относится к F立 и второму предложению в F1. Подстановка S'〃 — {t/b} дает 尸3 = ~]Q(c), т. е. снова то же предложение, a S〃〃 = {t/c}——резольвента и F4 = (пустое предложение). Таким образом,尸 1 было противоречиво.
Практическая организация доказательств
по принципу Эрбрана
Если все предложения представлены в стандартной форме, т. е. в виде конъюнкций, то использование знака А становится лишним. Для порождения дерева достаточно хранить эти предложения, записанные непосредственно друг за другом. Во время выполнения резолюции предложение-резольвента добавляется к уже имеющимся (без изменения предшествующих предложений) так, чтобы сохранялись другие возможности подстановок, как это показано ниже. После выполнения подстановки S в верхнюю часть всего набора предложений помещается、элемент ^Q(b) V —lQ(c).
Каждое предложение хранится в единственном экземпляре. Кроме того, если резольвента С1 является менее общей, чем предложение С2, уже имеющееся в хранимом наборе, то она не сохраняется, ,т. е. если существует подстановка S, такая, что S-C2 = С1, то С1 отбрасывается. Таким является случай, когда Cl=Q(a), a C2 = Q(f). Порядок расположения предложений в наборе при их хранении не является существенным в силу коммутативности оператора А.
Число литералов в какой-то конкретной резольвенте равно сумме литералов в предложениях, предшествующих ей (предложениях-предках), уменьшенной на две единицы. Таким образом, оно возрастает, за исключением тех случаев, когда одно из «вух родительских предложений имеет не более двух литералов. Противоречие обнаруживается в конце концов с помощью двух унитарных родительских предложений, т. е. предложений с единственным литералом.
Приведение к нормальной конъюнктивной форме
Необходимо показать теперь, каким образом любое выражение логики первого порядка может быть преобразовано в конъюнктивную нормальную форму. Алгоритм такого преобразования состоит из шести основных этапов. .
Приведение к "преиексн。也” форме. На этом этапе пере^ водятся в головную часть все кванторы. При этой операции
необходимо сохранять порядок следования кванторов, так как коммутативность отсутствует. Боле того, квантифицированные переменные переименовываются в случайном порядке в соответствии со следующими теоремами:
(Q1 х) / (х) * (Q2 х) В (х) a (Q1 %) (Q2 у) (А (х) * В (尤)),
где Qi ——означает либо V, либо Зи* означает либо V, либо А. Аналогичным образом
(V%) [Р (х) п (Эх) 0(x)1 f (Vx) [Р (х) n 0у) Q (/•
Например, если исходная формула Е имела вид
(Vx) (Р (х) п (口勿(Р (У) V 1 R (а,匕")n (V z) (口 S (у, г)))), то после этого этапа она принимает следующую форму:
(Vx) (Зг/) (Уг) (Р (х) n ((Р 3) V 1 R (а, %, g)) n (「S (г/, z)))).
Удаление кванторов существования. Эта идея принадлежит математику Сколему (1927 г.). Она связана с тем, что всякая переменная, на которую распределяется действие квантора существования, в действительности является функцией переменных, на которые распространяется действие квантора всеобщности. Каждая из них в процессе сколемизации замещается новой функцией. Выражение Е в этом случае при y = f(x) принимает следующий вид:
(Vx) (Vz) (Р (х) n ((Р (f (х)) V「R (а, х, f (х))) n (1 S 仔(х), z)))).
Удаление кванторов всеобщности. Теперь все переменные, которые имеются, подвержены действию кванторов всеобщности. Кванторы можно опустить и выражение £ записывается следующим образом:
(Р (尤)п (伊(f (Х)) VIR^ X, f(x))) п (口 S (f (х), z))n.
Если к этому моменту еще остаются кванторы существования, они находятся в головной части выражения и могут быть устранены аналогично предыдущему.
Удаление символов п и ч->. Здесь используются 2 теоремы:
Л *-> В н-> (Д о В) А (В =)Д),
которые применяются столько раз, сколько необходимо. Наша формула в этом случае приобретает вид
Р (%) V (1 (Р (f (х)) V~]R(a,xtf (х))) V П 5 (f.(x), ?))).
Используются только три оператора: V, А, ~1.
■ 5) Уменьшение радиуса действия отрицаний. Теоремы
1(4 V8)f (I/八 18), ~](Л ДВ)->(ПД VHB) позволяют распространять действие оператора отрицания только на одиночные предикаты. Выражение Е имеет вид
(П А%) V (С Р (f(x)) A R (а,汇,f (х))) VnS(f(x), z))).
Перевод выражения s конъюнктивную форму. Этот этап предназначен для приведения формул к следующему виду:
С1 ДС2Д AQ А ДСп,
где предложения Ci содержат уже только связки. V и ~1. Для этого используются теоремы дистрибутивности
力 V 仍 V С) — 5 V В) Л (Л V С)
(XAB)VC-^(X VOA(B VC).
Теперь выражение Е записывается следующим образом:
В(Х)V((「P(f(x)) V 】S(f(x), z))A
Л(/?(а, х, f(x)) V】S(f(x), z)))).
И наконец, получим
(I р(%) V (「р(f G)) vns(f (x), z))) Л
八(1 P (工)V R (a, %, /(x)) V~1S(/ (x), z))・
В результате использования метода резолюции после удаления скобок, которые не имеют смысла в дизъюнктивных выражениях, набор предложений приобретает следующий вид
^1Р(х)у R (а, х, f (х)) V~lS(f (х), z), nP(x)VnP(fW)V~lS(Hx), г).
Необходимо отметить, что отдельные этапы в описанном выше алгоритме могут быть выполнены и в другой последовательности, чем это представлено в алгоритме. Например, кванторы могут удаляться в последнюю очередь.
Первым реализовал на ЭВМ идеи Ж- Эрбрана Дж. Робинсон в 1963 г.
Примеры доказательств с помощью принципа Эрбрана
Приведем полное доказательство, которое могло бы быть получено программной системой Робинсона. Допустим, что мы хотели бы доказать утверждение: “кисть является частью человека”. Для этого нам придется использовать понятия
бинарного предиката 4 и его свойства транзитивности. Запись Л (х, у) означает, что х является частью у, а свойство транзитивности предиката представляется выражением Д (х, у} /\А (у, z) п п<4 (尤,z). Последнее выражение может быть представлено в виде следующей дизъюнктивной нормальной формы, в которой используются обозначения, принятые в языке программирования Пролог:■*
—А(х, у) У — А(у, z) V + А (х, z),
где в дальнейшем —Р заменяет последовательность символов 尸,а +Р ——символ Р для всякого предиката 尸,что позволяет избежать символов V в предложениях.
В гипотезах в нашем примере используются четыре константы т, Ь, £, Л, обозначающие соответственно "кнсть”,“рука", “тело”,“человек”. Итак, в нашем случае к гипотезам Л (т, &), Л (&, /), Л (/, /г) добавляется отрицание заключения: —А (т, А). Таким образом, программа работает с пятью предложениями, неявно объединенными с помощью операции Д:
С1 — л (х, у) — А (у, 2)+ /(X, 2)
С2 + Л (т, Ь)
СЗ + Л (б, /)
С4 + / (/, Л)
С5 — Л (т, Л)
Мы дадим здесь те резолюции, которые позволяют наиболее быстро прийти к противоречию. (Найденное собственно программой эффективное дерево решения содержало на самом деле другие предложения и другие пути.) Итак, при решении задачи последовательно выполняются следующие резолюции:
ПодстановкиПодстановкиРезольвентаРезольвентаРодительскиепредложенияс номерамиунифицированныхлитералов
Подстановки
Подстановки
Резольвента
Резольвента
C5 + C1 -3C6 + C2C7 + C1 ・3C8 - 1 + СЗС9 + С4C5 + C1 -3C6 + C2C7 + C1 ・3C8 - 1 + СЗС9 + С4г/г//1{/1{ qг/г//1{/1{ qл длд -J二二6 7 8 9 1CCCCVл длд -J二二6 7 8 9 1CCCCV
C5 + C1 -3
C6 + C2
C7 + C1 ・3
C8 - 1 + СЗ
С9 + С4
C5 + C1 -3
C6 + C2
C7 + C1 ・3
C8 - 1 + СЗ
С9 + С4
г/г/
/1{/1{ q
г/г/
/1{/1{ q
л длд -J二二6 7 8 9 1CCCCV
л длд -J二二6 7 8 9 1CCCCV
Последняя резолюция в качестве результата имеет пустое предложение, что означает получение противоречия, и, следовательно, в данной системе аксиом теорема А (т. Л) доказана.
Рассмотрим теперь более сложный пример использования метода резолюции.
Пример. Если s какой-то группе квадрат любого ее элемент та равен нейтральному элементу группы, такая группа является коммутативной.
Для описания того факта, что некоторая композиция двух элементов данной группы по определенному закону приравнивается к третьему элементу этой группы, используется предикат I:
/ (х у, z), если и только если х, y — z.
Свойства нейтрального элемента группы е записываются следующим образом:
+ / (е, х, х) и + / (х, е, х).
Очевидно, что обе переменные х здесь являются независимыми, так как квантифицированы раздельно. Мы их будем записывать последовательно в виде х! и х2, чтобы не произошло путаницы в процессе унификации. Напомним, что еще до выполнения унификации и, следовательно, начала любой резолюции необходимо различным образом переобозначить переменные, которые первоначально были квантифицированы независимо в предложениях. Этот процесс называется разделением переменных.
Если i(y) обозначает сколемовскую функцию, которая дает инверсное значение какого-то элемента у, то мы имеем
+ / (i(9), У,е) и + / (g, i (力,е), но здесь также обе переменные у являются независимыми и их следует разделить.
Теперь нам необходимо выразить ассоциативность правила о среднем члене пропорции в соответствующих обозначениях. Это выполняется в два этапа. Вначале рассмотрим ассоциативность слева
X 3) i (ху) Z.(AG)
Располагая единственным предикатом равенства /, необходимо использовать промежуточный переход. Пусть ху = и, yz = V n XV ~ w — являются гипотезами, тогда выражение (Л G) имеет следующий смысл: при наличии этих трех гипотез имеется также и их = w. Этому выражению эквивалентно, предложение в дизъюнктивной нормальной форме
(4 А8ДС) пОЦАу-18VleVD,
Таблица 37. Доказательство коммутативности в группе, в которой V х 尤,尤=е, методом Эрбрана или методом резолюции
Cl+/(е, xl, %1)
С2+/ (%2, % %2)
СЗ+/(i(yi), yL е)
С4+ / (/, L (у2), 6)
С5+/ (хЗ,尤3, е)
С6一/ (х4, у4, 〃4) — / (у4, z4,。4) — / (尤4, t»4, a»4) + / (〃4, г4, a»4)
C7— / (x5, g5, w5) — / 储5, z5, t»5) — / (〃5, z5, a»5) + / j%5, t»5, a»5)
C8+/ (a,瓦 c)
C9一/ (A @, c)
ПодстановкиРезольвенты
C5+ C7.1C5+ C7.1{x5/x3, y5/尤3, 〃5/c}{x5/x3, y5/尤3, 〃5/c}C8 + C10.1 Cll.l + Cl C9 十 C74C8 + C10.1 Cll.l + Cl C9 十 C74{хб/a, 2/6/瓦 иб/с}{w7/b}{x5/6, u5/a, &5/c}{хб/a, 2/6/瓦 иб/с}{w7/b}{x5/6, u5/a, &5/c}с сссс ссс10101 2131 213C5 + Ci3.1C14.2T ClC15 + C6.4C5 + Ci3.1C14.2T ClC15 + C6.4{%3/瓦 y8/b, u8/e},9/d{〃4/b, z4/c, w4/a}{%3/瓦 y8/b, u8/e},9/d{〃4/b, z4/c, w4/a}4 5 64 5 6C12 + CI6.1C17.1 +C5C18 + C2C12 + CI6.1C17.1 +C5C18 + C2fxlO/a, glO/c} {хЗ/c, ull/e} {# 2/a}fxlO/a, glO/c} {хЗ/c, ull/e} {# 2/a}7 8 900Q7 8 900Q-/ (%6, z6, и6)-一/ (e,26,切6) +十 / (хб, иб, o»6)—/ (e, b,切7) + / (a, Q w7)十 / (@, c, b)一 I (b, y8, u8)—-/ 必8, z8,田一一/ (w8,?8, e)—/(Ь, г9, a) — / (e, z9, с)—/ (b, c, a)—Z (xlO; glO, b) ——/ (г/10, с, иЮ)—一 / (xlO, iHO, a)—/ (% c, ull) — / (a, fll, a)—/ (a, e, a)□-/ (%6, z6, и6)-一/ (e,26,切6) +十 / (хб, иб, o»6)—/ (e, b,切7) + / (a, Q w7)十 / (@, c, b)一 I (b, y8, u8)—-/ 必8, z8,田一一/ (w8,?8, e)—/(Ь, г9, a) — / (e, z9, с)—/ (b, c, a)—Z (xlO; glO, b) ——/ (г/10, с, иЮ)—一 / (xlO, iHO, a)—/ (% c, ull) — / (a, fll, a)—/ (a, e, a)□
C5+ C7.1
C5+ C7.1
{x5/x3, y5/尤3, 〃5/c}
{x5/x3, y5/尤3, 〃5/c}
C8 + C10.1 Cll.l + Cl C9 十 C74
C8 + C10.1 Cll.l + Cl C9 十 C74
{хб/a, 2/6/瓦 иб/с}
{w7/b}
{x5/6, u5/a, &5/c}
{хб/a, 2/6/瓦 иб/с}
{w7/b}
{x5/6, u5/a, &5/c}
с ссс
с ссс
10
10
1 213
1 213
C5 + Ci3.1
C14.2T Cl
C15 + C6.4
C5 + Ci3.1
C14.2T Cl
C15 + C6.4
{%3/瓦 y8/b, u8/e}
,9/d
{〃4/b, z4/c, w4/a}
{%3/瓦 y8/b, u8/e}
,9/d
{〃4/b, z4/c, w4/a}
4 5 6
4 5 6
C12 + CI6.1
C17.1 +C5
C18 + C2
C12 + CI6.1
C17.1 +C5
C18 + C2
fxlO/a, glO/c} {хЗ/c, ull/e} {# 2/a}
fxlO/a, glO/c} {хЗ/c, ull/e} {# 2/a}
7 8 900Q
7 8 900Q
-/ (%6, z6, и6)-
一/ (e,26,切6) +
十 / (хб, иб, o»6)
—/ (e, b,切7) + / (a, Q w7)
十 / (@, c, b)
一 I (b, y8, u8)—
-/ 必8, z8,田一
一/ (w8,?8, e)
—/(Ь, г9, a) — / (e, z9, с)
—/ (b, c, a)
—Z (xlO; glO, b) —
—/ (г/10, с, иЮ)—
一 / (xlO, iHO, a)
—/ (% c, ull) — / (a, fll, a)
—/ (a, e, a)
□
-/ (%6, z6, и6)-
一/ (e,26,切6) +
十 / (хб, иб, o»6)
—/ (e, b,切7) + / (a, Q w7)
十 / (@, c, b)
一 I (b, y8, u8)—
-/ 必8, z8,田一
一/ (w8,?8, e)
—/(Ь, г9, a) — / (e, z9, с)
—/ (b, c, a)
—Z (xlO; glO, b) —
—/ (г/10, с, иЮ)—
一 / (xlO, iHO, a)
—/ (% c, ull) — / (a, fll, a)
—/ (a, e, a)
□
что соответствует
—Цх, у, и) —I (у, Z, и) — / (х, и, w) + Z (и, z, w). (AG) Аналогичным образом выводится и ассоциативность справа / (х, у, 〃)一 / (乡,z, и) — I (и, z, з) + / (х, и, ш). (AD)
Заданное свойство описывается выражением
+ / (%, х, е).
Наконец, отрицание заключения записывается в виде (Vx) (VS (Vz) ((xg = z) п (/ = z)),
так как выражение
-1(А=>В)ь-^-](-|ДуВ)ь-*-|-|Дл7]В->Лл-]В
записывается в виде
(За) (3&) (Зс) (ab = с)八(Ьа 干 с).
Элементы а, Ь, с рассматриваются как три константы. Доказательство должно привести к выводу о невозможности их существования. Это отрицание представляется в виде двух предложений
+ / (a, R с) и — / (й, а, с).
Общая схема доказательства методом резолюции приведена ■ в табл. 3.7.
Анализ проведенных доказательств
Хотя приведенные доказательства не были вполне наглядными, тем не менее их легко перевести в обычную форму записи, начиная с заключения, например:
(Vg) m^y^ у ^h
6 柒力(рука не принадлежит человеку)
(Vg) Ьвцп у 書 h
f 若瓦Отсюда противоречие.
Множество других резолюций может быть выполнено, и много других путей ведет к пустому предложению. В общем случае выгодно иметь систему предложений с единственным предикатом, так как в этом случае увеличивается число возможных резолюций. Так, при рассмотрении второго доказательства можно обнаружить, что в конце концов оба предложения гипотез об инверсных i(x) не используются^ все этапы, содержащие резолюции с СЗ или С4, удалены. Программа, которая их не содержит, менее стеснена в выборе (например, необходимо более ста шагов, чтобы получить табл. 3.7). В доказательстве, отраженном в этой таблице, "первым существенным этапом является этап С12, который утверждает, что наряду с гипотезами имеется и выражение ас = Ь. Этот результат представляет собой лемму, поскольку затем поиск вновь начинается в новом направлении, чтобы получить
С13: ((Ьу— и) A (yz = a)) п (иг 干 с)
С16: ху — Ь^х (ус)干 а
С17: а (сс)耍 а.
Это приводит к противоречию, так как сс — е.
Отметим, что умножение слева на с использовалось иинтуи- тнвно” в этой резолюции.
Стратегии
Важной проблемой, связанной с проблемой ^комбинаторного взрыва" числа резолюций, остается проблема соответствующего выбора предложений и литералов для унификации. Этот выбор должен выполняться так, чтобы пустое предложение достигалось намскорейшим образом. В данном случае также не имеется общего метода. На каждом этапе конкретный выбор зависит от текущего контекста задачи. Однако некоторые стратегии выбора вне зависимости от текущего состояния процесса решения задачи, приводящие к ограничению числа возможных резолюций, все же разработаны. Пользуясь ими, важно не потерять полноты метода, т. е. гарантию получения хотя бы каким-то одним способом необходимого доказательства. Ниже мы приведем несколько таких стратегий. .
Стратегия унитарности. Одно из родительских предложений должно всегда иметь единственный литерал. Эта стратегия очевидно не является полной, так как если набор предложений не содержит предложения с единственным литералом, то работа программы заканчивается. Приведенные выше доказательства могли быть получены с помощью этой стратегии.
Стратегия исходных данных. В этом случае одно нз предложений является одной из гипотез или отрицанием заключения. Данная стратегия была использована в лервом примере доказательства методом резолюции.
Стратегия поддержки. Используются одно из родительских предложений и доказываемое заключение или одно из предложений, вытекающих из них. Систематически удаляются от результата резолюции, двигаясь от него в обратном направлении и пытаясь подняться по дереву решения к гипотезам, запрещая всякую резолюцию вне исходной системы. Эта стратегия является полной, но очень длинной, так как она опирается на структуру, которая не всегда является эффективной.
Линейная стратегия. Одно из предложений является предложением предшествующей резольвенты, а другое ——одним из ее “предков” или исходным предложением. Эта стратегия (улучшенный вариант стратегии исходных данных) является полной и одной из наиболее эффективных.
В литературе встречаются и другие стратегии. Следует отметить, что пересечение любых двух из описанных выше стратегий приводит к более ограниченному варианту, в частности результирующая стратегия может быть неполной, хотя исходные стратегии и были полными.
Теперь остается рассмотреть проблему выбора литералов. Они обычно выбираются вне родительских предложений, когда
возможны многочисленные унификации. В общем случае литералы задаются заранее и программы выбирают из них первую же пару, использование которой приводит к успешному результату. Когда нумерация литералов передана от «родителей» к резольвенте, получают стратегию, называемую стратегией замка (лок-стратегия), которая является полной и эффективной.
Преимущества и ограничения метода резолюции
Метод доказательства, основанный на принципе резолюции, представляет интерес, так как является систематическим. Большое число публикаций, трактующих вопросы "автоматического доказательства”, посвящено методу резолюции начиная со времени появления работ Эрбрана и реализации этой идеи Робинсоном в 1965 г. Невозможность определить эффективную стратегию решения для всех областей приложения приводит к следующему выводу: для заданного набора предложений либо доказательство получается очень быстро на ЭВМ, либо оно не получается вовсе. Однако эффективность программ резко падает с увеличением числа предложений. Проблема заключается в том, чтобы определить тот момент, когда надо остановить программу, поскольку при этом существуют две опасности: во-первых, взрывное увеличение числа предложений, а во-вторых, возможность преждевременного прекращения работы перед самым моментом получения решения.
Практическая значимость и оригинальность метода резолюции определяются его двумя свойствами, описанными ниже.
Управление движением по дереву И-ИЛИ, обычно необ' ходимое при всяком доказательстве, в данном случае отсутствует. Эту функцию выполняет стандартизованный набор предложений, причем может быть определена очень простая процедура обработки *'выбор + унификация1',
Гипотезы, предположение и промежуточные предложения играют здесь одну и ту же роль. Доказательства получаются при одновременном движении в двух направлениях: от гипотез к заключениям и от заключений к гипотезам, причем доказательство достигается, когда оба эти пути просмотра встречаются друг с другом (рис. 3.23).
Существенным недостатком метода является то, что уже по построению он предназначен только для доказательства теорем. Он не пригоден для того, чтобы изобретать или придумывать некоторые предложения, а затем уже доказывать их, как это обычно делает математик. К тому же, если предположение не является теоремой, резолюция может привести к построению бесконечного дерева решения. Таким образом, метод резолюции
интересен благодаря простоте и систематичности, но, к сожалению, применим только для ограниченного числа случаев (доказа-
Рис. 3.23. Схема получения доказательства методом резолюции.
тельство не должно иметь большую глубину, а число потенциальных резолюций не должно быть большим).
Язык Пролог н применение метода резолюции
Начиная с 1972 г. А. Кольмрауср разрабатывал со своей группой сотрудников в г. Марселе систему автоматического доказательства, построенную на базе логики первого порядка и методе Эрбрана ——Робинсона. Для задания какой-либо задачи системе в терминах предикатов пользователь системы применял язык Пролог, причем система автоматически выдавала ответ (если он существовал), используя для этого унификацию и метод резолюции. Таким образом, Пролог может рассматриваться как декларативный язык, где единственными входными данными является формальное определение задачи. Так как пользователь заинтересован в эффективном решении своей задачи, то для него важно получение этого решения в явном виде и с этой точки зрения доказательство, основанное на опровержении специальным образом сконструированного предложения, получаемого методом резолюции, не является для него достаточным. Поэтому в 1969 г. для устранения этого недостатка Грин предложил ввести в исходный набор предложений ttoтвeтный,, предикат, связанный с заключением:
口 заключение (х) V вывод (х), либо заключение (х) Д вывод (х),
чтобы система обеспечивала решение в явном виде и выдавала 尤 пользователю. Покажем теперь на примере, что дает использование языка Пролог.
Предположим, что требуется произвести вызов некоторого лица по телефону. Наши данные будут представлены в виде четырех предикатов Т, V, А ^ JJ (р, п), т. е. надо соединить по телефону лицо Р по номеру телефона 孔,/1 (х, /). Лицо х находится в месте /, Т (/, т), причем место / имеет номер телефона т. Предположим, что Пьер хочет навестить своего друга Жана.
Тогда V(y, z) означает, что лицо у посетило лицо z. Следовательно, мы имеем для начальной точки, что V —V (Пьер, Жан).
Теперь следует отразить полезные свойства используемых предикатов: если у посетило z и если z находится в е, то, следовательно, у также в е (предложение С2). Если Р находится в / и если / имеет номер телефона и, можно соединить по телефону Р с номером п (предложение С1).
В языке Пролог знаки V не используются внутри предложений, а отрицания, как обычно, обозначаются знаком ——.Пролог автоматически производит разделение переменных в ходе последовательных резолюций. Все предложения, относящиеся к одному и тому же заключению (и, следовательно, соединенные знаком +), должны следовать друг за другом. Пролог позволяет использовать только предложения хорновского типа, т. е. такие предложения, которые содержат по крайней мере один положительный литерал, причем он должен находиться во главе предложения. Приведенная ниже система предложений полностью удовлетворяет этим требованиям:
С1: + J (х, ш) — Л (х, /) — Т (/, ш), С2: + 4 (у, е) — V (у, 2)— А ⑵ е), СЗ: + Л (Жан, контора — Жан) С4: IV (Пьер, Жан)
С5: + Г (контора — Жан, 46-54-32-10).
С6: —/(Пьер, ") — вывод (")!
Обработав эти предложения. Пролог непосредственно дает ответ 4654-32-10.
Приводимые ниже резолюции понятны пользователю. В них используется стратегия поддержки и замка. Пролог развертывает исследуемое дерево вначале в глубину, выделяя единственное отрицательное предложение. Остальные предложения обрабатываются в их естественном порядке. Литералы систематически исследуются, начиная слева направо. Для новой резолюции предпочтительно используется последняя полученная резольвента:
С6 + С1.3 {х/Пьер, mgС7.1 +С2 {«//Пьер, е//}С8.1 + С4 {г/Жан}СЭЛ + СЗ {Z/контора — Жан}С6 + С1.3 {х/Пьер, mgС7.1 +С2 {«//Пьер, е//}С8.1 + С4 {г/Жан}СЭЛ + СЗ {Z/контора — Жан}С7: — А (Пьер, Z) — Т (Z, л) — вывод (л) С8■: — V (Пьер, z) — A (n, Z) —- Т (/, л)— —вывод (п)
С6 + С1.3 {х/Пьер, mg
С7.1 +С2 {«//Пьер, е//}
С8.1 + С4 {г/Жан}
СЭЛ + СЗ {Z/контора — Жан}
С6 + С1.3 {х/Пьер, mg
С7.1 +С2 {«//Пьер, е//}
С8.1 + С4 {г/Жан}
СЭЛ + СЗ {Z/контора — Жан}
С9: — А (Жан, /) — Т (/, п) — вывод (п) СЮ: — Т (контора — Жан, л) — вывод (л)
С10+ С5 S/46-54-32-10}С10+ С5 S/46-54-32-10}СП:— вывод (46-54-32-10)СП:— вывод (46-54-32-10)
С10+ С5 S/46-54-32-10}
С10+ С5 S/46-54-32-10}
СП:— вывод (46-54-32-10)
СП:— вывод (46-54-32-10)
Выходной предикат становится здесь единственным литералом, причем ответ печатается системой.•
Ответ, выдаваемый Прологом, может быть не только константой, но и формальной переменной, как, например, в следующем случае: если 尤 является “отцом” для “ и если z является “пепом” для у (С1) и все имеют “отцом” (С2). Кто является “отцом” некоего /?
Здесь исходные условия представляются в следующем виде:
С1:十 GP (г, у) — Р (х, у) Р (х, у)
С2: +Р(р (〃),〃)
СЗ: — GP(V, /) — вывод (и), что приводит к следующим резолюциям:
СЗ + Ct {z/u, y]t}С4 + С2 {#/р (〃),и//}СЗ + Ct {z/u, y]t}С4 + С2 {#/р (〃),и//}С4: — Р (#, Z) — Р (х, х) — вывод (и)
СЗ + Ct {z/u, y]t}
С4 + С2 {#/р (〃),и//}
СЗ + Ct {z/u, y]t}
С4 + С2 {#/р (〃),и//}
С5: — Р (и, р (/) — вывод (и)
С5 + С6 {и/р (〃),〃/р (/)}С6: — вывод (р (р (/)))
вывод: р (р (/))
В этих примерах обнаруживается богатство возможностей системы, а также возможность ее использования во всех пространствах, где деревья доказательства не слишком велики. Важной областью применения системы является реализация запросов к базе данных. В тех случаях, когда необходимо извлечь из базы показатели, имеющие желаемые атрибуты, язык логики обеспечивает необходимую мощность для языка запросов. Системы типа Пролога, получив запрос, тут же начинают отыскивать ответы на него без каких-либо специальных предварительных этапов. ■
Другой областью, где находит применение Пролог, является управление роботами. Здесь речь идет о роботах, которые способны решать задачи "в уме” и, исходя из этого, строить план действий. Тот же способ запоминания с помощью предикатов позволяет запоминать план, построенный с помощью резолюций. Робот может ходить, передвигать какой-то объект, влезать на ящик.
Пусть, например, Е(х, у, z, s) суть предикат, который имеет следующий смысл: “Робот ——х, ящик ——г, бананы ——у определяют состояние s”. Тогда
Af (xl, у\, si)——состояние, достигаемое роботом, переходящим от х1 к yl, выходя из состояния si;
Р(х2, у2, s2)——состояние, достигаемое роботом, передвигающим ящик от 尤2 к у2, начиная с состояния s2;
G(s3)——состояние, достигаемое роботом, взбирающимся на ящик, из состояния s3;
а, Ь, с—первоначальные позиции робота, бананов, ящика (состояние sO);
Л (s4) — предикат, отражающий тот факт, что робот может достать бананы из состояния $4.
Исходные предложения имеют следующий смысл. Робот может:
идти к ящику С1: +Е(с,协 с,М 亿с, s)) — £ (/, у, с, s)
двигать ящик С2: + £ (и,у, и,Р(х,и, и))) —— Е(х, у, х, w)
взобраться на ящик СЗ:+ Е(х, у,х, G (s)) — Е (х, у, х,s)
(первоначальное состояние) С4:-И Е (а, &, с, sO)
взять бананы С5: + Л (G (г)) — Е (&, G (г))
(отрицание цели) С6: — Л (w) — вывод (A (w))
Пролог легко решает это упражнение, но ему приходится сделать для этого 〜50 унификаций. Решение можно получить гораздо быстрее, используя для этого следующую стратегию: идти от цели, не используя дважды одно и то же предложение в какой-то ветви дерева, а используя только последнюю резольвенту и исходные предложения:
Родительские предложения
Подстановки
Резольвенты
С5 + С6
{侬/G⑶}
C7: — E(R b,瓦 G(z)) —
——вывод (И (G (z)))
С7 + СЗ
{x/bt у/瓦 z/s}
C8: 一 E(瓦 b,瓦 s) —
—вывод (A (G (s)))
С8 + С2
{u/b, у/瓦 s/P (r, b,叫}
C9: — E (x,瓦 x, w)—
—вывод (4 (G (P (x, 6,⑪))))
С9+С1
{尤/% у® 切/M (f, c, s)}
CIO: — E (/, b, c, s)—
—вывод (4 (G (P (c, b, Af (f.
С10 + С4
{f/Q, S/SO}
% s)))))
СП: — вывод (A (G (Р (с,瓦 М3 с, s0)))))
Начиная с исходной позиции, робот идет (Л1) от а к ящику с, который он двигает (Р) в 6 под бананы, и теперь ему остается только взобраться на него (G).
Глава 4
КЛАССИЧЕСКИЕ МЕТОДЫ
РЕШЕНИЯ ЗАДАЧ
Введение
Существуют четыре основных способа решения какой-либо задачи:
Применение явной формулы.
Использование рекурсивного определения.
Использование алгоритма.
Метод перебора, метод проб и ошибок и др.
Несомненно, первый способ является "нанлучтнм”: мы используем найденную и доказанную ранее формулу, которая во всех случаях дает решение поставленной задачи.
К подобному “лобовому” подходу сводится решение таких задач, как определение нулей квадратного уравнения, определение названия дня, соответствующего произвольной дате, определение силы тока в заданной электрической схеме. Собственно задача математики и состоит в том, чтобы найти явные формулы для решения как можно большего числа возможных задач. Если такая формула существует, сложность задачи оказывается связанной с эффективностью вычислений. По определению в формулу может входить только конечное число символов и операций, и это верно для любого числа параметров, включенных в эту формулу, т. е. для любой размерности п входной задачи. Следовательно, в этом случае сложность постоянна (не зависит от п) и равна 0(1). Мы предполагаем, что сложность любой операции (т. е. +,——,/, * и т. д.) не зависит от разряда чисел, над которыми она производится, т. е. сложность пропорциональна числу операций.
Примеры хороших алгоритмов
Пример L Подсчитайте сумму 孔 чисел натурального ряда.
Вы знаете соответствующую явную- формулу, обладающую постоянной сложностью: в ней используется одна операция сложения, одна операция умножения и одна операция деления:
£』(%*(" + 1))/2.
Пример 2. Подсчитайте сумму квадратов 孔 чисел натурального ряда.
Возможно, вы знаете и умеете доказывать, что
2 / = 5 * (% + 1) * (2% + 1))/6.
Пример 3. Подсчитайте сумму кубов " чисел натурального ряда.
Вы чувствуете, что перечень примеров можно продолжить... Но здесь у математики эстафету принимает информатика. Если только мы умеем определять конечный процесс вычислений, позволяющий прийти к решению, нас не испугает отсутствие эффективной формулы. В связи с заменой формулы на процесс возникает новый вопрос: через сколько этапов мы получим решение? Ответ на этот вопрос составляет цель данной главы.
Часто, исходя из условия задачи, мы располагаем неявной формулой подсчета, в которой решение определяется рекурсивно, постепенно. Так, сумма S(n) п. чисел натурального ряда определяется формулами
S 仇)—S (п —; 1) -{- ^ и S (1) = 1,
т. е. она описывается как процесс, легко представимый в хорошем языке программирования:
ПРОЦЕДУРА S(a): сумма п чисел натурального ряда eeЛИ几声1 ТО S⑷一S("-1)+几
ИНАЧЕ S ⑺一 1
КОНЕЦ "ЕСЛИ"
КОНЕЦ ПРОЦЕДУРЫ
Чтобы подсчитать S(5), система вызовет процедуру S с формальным параметром пу равным 5. Поскольку 5 #= 1, система знает, что для подсчета результата ей необходимо прибавить 5 к значению 5(4), которое она опять-таки должна вычислить. Она снова вызывает процедуру S. Кроме того, система записывает в стековую память, что, когда она будет знать значение S(4), она должна прибавить к нему 5, чтобы получить тот ответ, который от нее требовался вначале. Эту информацию мы можем представить в виде
+ I 5S(4)
Следующий вызов процедуры разворачивает подсчет S(4), и мы получаем
+5+4S(3)
и так далее вплоть до
+5+4+3+25(1)
При этом вызове процедуры, наконец, S⑴ может быть подсчитано по явной формуле: S(i)—1. Системе не надо больше заполнять стек, и теперь, чтобы получить ответ, она освобождает полученный стек в обратном порядке. Интуитивно мы видим, что описанный выше процесс эквивалентен итеративной схеме:
S ~ 0
ПОВТОРЯТЬ ДЛЯ,已 и, п]
IS—S+,
КОНЕЦ ЦИКЛА по 2
В обоих случаях сложность вычислений составляет О(п), поскольку число операций сложения, которое нужно выполнить в каждом из них, является величиной такого порядка. Если искать сумму квадратов п чисел натурального ряда, оба приведенных алгоритма легко модифицировать. В общем случае сумма чисел степени р требует п——1 операций сложения и п операций возведения в степень р.
Отсюда следует, что для решения тех задач, для которых неизвестны эффективные явные формулы, необходимо уметь строить алгоритмы приемлемой сложности. В частности, классическим и довольно удобным способом является использование с самого начала рекурсивной записи, которую часто легко осуществить и которая всегда кратка и элегантна. Если же сложность соответствующего алгоритма слишком велика, информатик должен последовательно, исходя из рекурсивной формулы, находить все более явные формулы и так до тех пор, пока не будет получен алгоритм вполне приемлемой сложности.
Замечание. Теоретическая сложность, о которой здесь идет речь, подтверждается совершенно реальной сложностью, ощущаемой человеком, работающим за терминалом. Так что усилия информатиков-теоретиков по понижению сложности алгоритмов решения некоторых распространенных задач вполне обоснованны..
Пример 4. Предположим, что мы хотим узнать 30-е число Фибоначчи. Это число определяется как 尸(30) с помощью
формул
f 尸(3 =尸("一 1)+尸("-2),
•尸⑵=1,
Числа Фибоначчи, введенные Леонардом Пизанским, сыном Бо- наччи (1540 г.), входят в описания некоторых процессов, происходящих в природе (например, процесса воспроизводства населения; число F(n) при этом является количеством людей в момент времени п), и в описания некоторых областей математики (в частности, в доказательство неразрешимости десятой теоремы Гильберта о решении диофантовых уравнений).
Явная формула. Формальное решение и подсчет общего члена последовательности путем поиска линейной комбинации решений в виде г", где г — нуль трехчлена х? — х——1, приводят к точному выражению (к формуле Бине)
尸⑺=[(1 + V^r-(1-"引门/(2" “引).
Но мы можем не знать этого подсчета. Кроме того〉эта формула относительно сложная. Для того чтобы убедиться в этом, достаточно подсчитать вручную 尸(3) или, тем более,尸(10). На самом деле задача даже полностью не решена, поскольку алгоритм использования формулы нужно еще уточнить. Осуществлять ли раскрытие внутренних скобок по формуле бинома? Как вести подсчет: формально ——с символом «5 или численно — с величиной 2,236068… и d десятичными знаками (и какое значение установить тогда для d)? Очевидно, что, хотя результат должен быть целым, он не будет таковым, пока мы остаемся в рамках конечной арифметики независимо от того, как мы считаем—на микрокалькуляторе или на большом компьютере. Следовательно, встает вопрос: до какого "соседнего” целого числа нужно округлять? Как быть абсолютно уверенным в результате?
Теперь рассмотрим два других подхода.
Рекурсивная форма, Для этой четко сформулированной задачи рекурсивное программирование является решением с непосредственной подстановкой:
ПРОЦЕДУРА 尸("): подсчет л-го числа Фибоначчи
ЕСЛИ ">2 ТО 尸仇)一尸@一 1) 十尸("_2)ИНАЧЕ 尸仇)—1
КОНЕЦ "ЕСЛИ"
КОНЕЦ ПРОЦЕДУРЫ
Но опять-таки, как и в первом решении, возникает одна сложность. Подобно тому как мы делали это при подсчете суммы чисел натурального ряда, смоделируем развертывание рекурсивного алгоритма в информационной системе. Начало построения стека для подсчета 尸(30) выглядит следующим образом:
И так ——вплоть до достижения одного из двух явно заданных результатов:
В этом конце стека удается осуществить успешные подстановки, и тогда система возвращается... к 尸(4), которое она снова разворачивает. Поскольку в любом случае единственные известные результаты (尸⑵ и 户⑴)равны 1, в конечном итоге система делает столько операций сложения, сколько единиц содержится в F(n). Так как 户(30) равно 832 040 и стек управления вызовом процедуры F является величиной того же порядка, то здесь непосредственный рекурсивный метод непригоден. Очевидно, что объем памяти и время, необходимые для работы этого алгоритма, совершенно неприемлемы. Поэтому нужно перейти от сложности, составляющей。(尸(дг)) (т. е., по сути дела, экспоненциально зависящей от и, которое входит в явную формулу), к более разумной сложности.
Итеративные алгоритмы. Чтобы уменьшить эту дорогостоящую из-за большой глубины рекурсивность и избежать многократного повторения одних и тех же расчетов, можно преобразовать приведенную выше рекурсивную схему в рекуррентную. Иными словами, мы расчленим задачу, предположив, что она решена до определенной точки, т. е. до некоторого значения / из п. Затем мы выведем из него 尸(j) по крайней мере еще для
одного значения /. Для этого выдвигается гипотеза рекуррентности. В нашем случае естественно предположить следующее. Пусть 尸(1),尸⑵,…,尸(,)уже получены. Начнем с,= 2. При этом задача решена полностью, когда i = n.
Если i,гг» приведенная в определении формула 尸(i+l) = =尸(力)+ 尸(£——1) позволяет распространить рекуррентную гипотезу на одну ступень дальше; следовательно, нам известны 尸(1),尸(2),...,尸(р,尸(i + 1). Более того, приведенная в определении формула показывает, что члены 尸(I),尸(2), ..., F(i—2) в данном рекуррентном соотношении не участвуют. Вся необходимая информация содержится в тройке [厶 尸(Q, F{i — 1)]. Пусть в соответствии с гипотезой эта тройка известна; тогда мы можем вывести из нее следующую тройку:
U + 1,尸 G+1),尸(切= М+1,尸⑺ + 尸 «—1), F(i)].
Тем самым мы упростили гипотезу рекуррентности и нашу схему подсчета. Итак, у нас есть искомый итеративный алгоритм. .
Оказывается, нам не нужно было запоминать вектор F[lt п] целиком, а достаточно было двух его значений. Назовем эти значения и и v: и соответствует 尸(Q; а и —尸(i—1). Тогда от тройки [i, и, v] мы можем перейти к тройке U+L 以 + и, и]
г <—z + 1 {новое значение 讣
{сохранение прежнего значения 以}
u<-u+ и {новое значение и по приведенной в определении формуле}
и―酬 {новое значение v = прежнее значение и = F (/)}
Начальные условия и тест остановки программ уже были указаны, так что полный алгоритм рассматриваемого третьего типа записывается следующим образом:
Процедура Фибоначчи: F (ri) 1;1;
{Рекуррентная гипотеза: [f, F(i) — u и F (/—1) = и] известны}
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА i 声 n
I+ 1; W — U> 以—以+u;
КОНЕЦ ЦИКЛА no i
РЕЗУЛЬТАТ u
<онец процедуры
Очевидно, что этот алгоритм имеет сложность порядка 0(汽) вместо прежней 。(尸(孔)).Для подсчета 尸(孔)необходимо совершить 孔——2 итерации, каждая из которых включает 1 тест остановки, 2 операции сложения и 4 присвоения значений. Таким образом, мы достигли приемлемой сложности и “хорошего”, т. е. полиномиального, вполне реализуемого алгоритма.
Разработка алгоритма не всегда столь проста: часто приходится манипулировать более сложными структурами, чем числа или обычные арифметические выражения. В следующем разделе рассмотренный выше« принцип развивается на более сложных примерах, для которых в конце концов удается получить полиномиальный алгоритм. Затем мы составим полный список “хорошо решаемых" на сегодняшний день задач. Однако для некоторых задач, по-видимому, невозможно найти хорошие алгоритмы. Этой проблеме посвящен разд. 4.4.
Пример 5. Произведите сортировку 孔 чисел с помощью сравнений.
В качестве чисел возьмем, например, регистрационные номера или индексы каталога. Операция сортировки неупорядоченных элементов чрезвычайно распространена в информатике. Сначала теоретически установим нижнюю границу сложности этой задачи. Разумеется, никакой явной формулы в привычном смысле этого слова здесь нет. Необходимо определить эффективный процесс упорядочения 孔 заданных чисел, например в перекрестном порядке. Чтобы осуществить это, нам нужно тем или иным способом сравнить числа попарно. Основная элементарная операция здесь ——тест на сравнение двух чисел: иЧто больше — а или 匕?" Итак, заметим, что подлежащие упорядочению л. чисел априори могут быть представлены на входе п! различными способами.
При этом t последовательно выполненных тестов позволяют различить на сбалансированном дереве высотой £ в лучшем случае 2’ ситуаций, каждая из которых соответствует одному из листьев (рис. 4.1).
Оказывается, что £ элементарных операций позволяют изучить не более чем 孔 чисел, где м такое, что
2'》献 (4.1)
Если перейти к логарифмам и использовать формулу Стур- линга, по которой 孔!=孔厶+1/2 при п~> оо, мы увидим, что нижняя граница сложности £ для сортировки методом сравнений составляет
(4.2)(4.2)/ = nlog2n.
(4.2)
(4.2)
Следовательно, чтобы рассортировать множество из п элементов, нам потребуется по крайней мере О (n log2 п) тестов.
Теперь рассмотрим, как действует элементарный алгоритм сортировки. При сортировке массива первой приходит мысль- выбрать наибольший элемент, поместить его в начало и затем
Рис. 4.1. Дерево тестов для сортировки массива.
проделать то же самое для оставшегося массива, т. е. действовать по схеме:
ПОВТОРЯТЬ ДЛЯ l《i《(M—1) {первые (i— 1) элементов рассортированы}
k<~ i
ПОВТОРЯТЬ ДЛЯ (г + 1)&/&孔
IЕСЛИ xk< Xj 70 j
КОНЕЦ ЦИКЛА no j
поменять xL и xk
КОНЕЦ ЦИКЛА по i
Внутренний цикл дает (n— 1) тестов при каждой итерации, т. е. всего (孔一1)十(孔一2)十 一.+2+ 1 = "("/ " тестов для 孔 подлежащих сортировке абсолютно произвольных чисел; следовательно, этот алгоритм обладает сложностью порядка О (л2) (рис. 4.2).
Однако этот метод можно улучшить. В приведенном алгоритме мы каждый раз теряем информацию, “забывая" результаты тестов сравнения, полученные на предыдущем этапе.
1
2
3
4
5
6
7
8
2。
7
84
75
45
78
30
9
к = 3
84
7
20
75
45
78
30
9
к = б
84
78
20
75
45
7
30
9
Рис. 4.2. Пример сортировки первого типа.
Сэкономить на количестве сравнений можно за • счет замены цикла ^повторить для『'на своего рода “турнир”: на некотором этапе мы сравниваем х; только с х; + 1, а затем “победителя” этой пары сравниваем с ^победителем'' соседней пары. Если на входе стоят числа 20, 7, 84, 75, 45, 78, 30, 9, то получится картина, приведенная на рис. 4.3.
Таким образом мы, с одной стороны, уменьшаем число тестов, необходимых для нахождения максимального элемента, а с другой, получаем сведения, нужные для продолжения поисков. Теперь высота дерева составляет log2 孔 (неравенство (4.1)). Следовательно, в худшем случае требуемое число операций в 孔 раз больше, чем число тестов, необходимых для изучения дерева из 孔 элементов, т. е. n log2 п. Согласно соотношению (4.2), по крайней мере по порядку величины сложность этой сортировки является оптимальной.
(В действительности для реализации этой сортировки на компьютере надо уточнить способ управления деревом, запоминающим числа, и способ осуществления обменов между рассортированными и нерассортироваиными элементами. Поскольку сначала дерево не задано, все это имеет значение. К дереву мы приходим постепенно, проходя через стадию "упаковки0 —
Рис. 4.3. Пример сортировки второго типа.
структуры, в которой во всех вершинах, подчиненных некоторому узлу, стоят числа, не превышающие число, расположенное в данном узле.)
Как бы то ни было, мы имеем, таким образом, пример нетривиальной задачи, для которой можно представить оптимальный полиномиальный алгоритм.
Пример 6. С задачей найти кратчайший путь из одной точки в другую мы сталкиваемся в жизни ежедневно: путешествуя на автомобиле, в метро, а также при решении некоторых математических головоломок. Возьмем в качестве примера граф, изображенный на рис. 4.4; требуется попасть из точки 1 в точку 6 по такому пути, чтобы сумма расстояний, указанных на каждом ребре, была минимальной.
〉Обычно говорят не о расстояниях между вершинами, а о стоимости ребер. По интуитивным соображениям полный пере』
бор всех возможных путей, ведущих из начальной вершины, в конечную, бесполезен. В самом деле, очевидно, что следует
ограничиться только элементарными путями, т. е. путями, кото
рые проходят через каждое ребро графарые проходят через каждое ребро графа(при условии, что стоимости положительны). Кроме того, естественно использовать итеративный процесс распространения минимальных путей, начиная с вершины 1. Начав с вершин, соседних с вершиной 1, т. е. связанных с ней только одним ребром, мы будем постепенно подсчитывать эти
рые проходят через каждое ребро графа
рые проходят через каждое ребро графа
не более одного разане более одного разапути так, чтобы в любой за- Рнс. 4.4. Задача нахождения крат- данный момент времени для чайшего пути.
не более одного раза
не более одного раза
любой заданной вершины мы
были уверены, что минимальное расстояние до вершины 1 известно точно и возвращаться назад не придется. Иначе говоря,
на каждом этапе множество вершин разделено на два подмножества S* и S, такие, что
для каждой вершины из S* известно минимальное расстояние до вершины 1;
Рис. 4.5. Доказательство алгоритма: путь w.Рис. 4.5. Доказательство алгоритма: путь w.для каждой вершины из S это расстояние неизвестно.
Рис. 4.5. Доказательство алгоритма: путь w.
Рис. 4.5. Доказательство алгоритма: путь w.
Вначале множество S* сводится к вершине 1. Переход некоторой вершины из подмножества S в S* произойдет тогда, когда мы сможем доказать, что никакой другой путь из еще непроверенных не окажется короче, чем уже известные пути. Так, в нашем примере из вершины 1 на первом шаге мы можем попасть в вершины 2 и 3; поскольку стоимость пути до вершины 3 строго больше стоимости пути до вершины 2, расстояние между вершинами 1 и 2 (оно равно 4) является минимальным независимо от того, какие неизвестные пути позволят нам вернуться из 3 в 2 (рис. 4.5).
Чтобы построить полный алгоритм, уточним и систематизируем приведенные рассуждения для графа с произвольными положительными стоимостями. Обозначим D* (/) расстояние между вершиной 1 и вершиной i, teS*; D(i) (на заданном этапе) наилучшее известное расегряние от вершины 1 до вершины Z, iwS; /(,,/) стоимость ребра (i, /). На любом этапе множества S* и S характеризуются следующим свойством:
Если i в S*, то D(i) = D¥ (z).
Если,陆 S*, то iwS н Q (i) = MIN [。优)十 / 伍,/)], k 至 S*, (fet i)三 U
где U—множество ребер графа.
D(i) является минимальным известным расстоянием от вершины 1 до вершины Z.
Итак, вначале S* = {1} при 0*(1) = 0 и D(i) = +оо для всех вершин, отличных от 1; таким образом, все они попадают в S.
Теперь мы, сохраняя введенные обозначения, обобщим представленную выше (для вершин 2 и 3) аргументацию и сформулируем следующее утверждение.
Утверждение. Пусть j ^ S, причем / такое, что D(j) является наименьшим из всех D⑴,где twS.
Тогда D(j) является минимальным расстоянием от 1 до /. Таким образом, для jwS: D (j) = MIN [Z) (f)] =>D(j) = D* (/), t. e. при этом условии (на каждом этапе ему обязательно удовлетворяет по крайней мере одно /) мы имеем право перевести / из S в S*.
Чтобы доказать это свойство, нам нужно доказать, что не существует более короткого пути из 1 в /, чем уже имеющийся путь с зафиксированной суммарной стоимостью Л)(/).
Рассмотрим путь w、ведущий из 1 в /. Пусть wi является частью w и идет из вершины 1 в первую из вершин, не принадлежащих S* (она обозначена через &); w2 является при этом дополнением к wi (см. рис. 4.5).
Общая длина w равна сумме длин путей wi и w^ Следовательно, по построению, длина ©【больше или равна D(k), которое в рассматриваемый период является минимальным расстоянием от 1 до k. Но, согласно нашему утверждению, которое нужно доказать, D(k) ^ D(j). Кроме того, длина пути g неотрицательна. Следовательно, длина w в целом не может быть меньше /)(/). Тогда вершина / переходит из S в S*. Таким образом, если число вершин равно и, этот процесс завершается после и——1 итераций и полученный алгоритм имеет следующий вид:
{Инициализация}{U —— множество ребер графа}
Of Z)(l); [2,3,...,几]—>S {n — число вершин графа} ДЕЛАТЬ Vf, iwS: ЕСЛИ (l,i)wU ТО,",i)f Q ⑴
ИНАЧЕ + оо-^D(Z)
{Итерация}
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА S,0:
{Определение выходной вершины} ВЫБРАТЬ j w S, такое, что D (/)= = MINQ(%
s — s — {/}
{Определение расстояний /)} ДЕЛАТЬ V/ jwS н (川)巨 U 。⑴+ MIN 出(i), D(j) + l(jti)]
КОНЕЦ ЦИКЛА
КОНЕЦ
Теперь развернем этот алгоритм на примере графа, приведенного на рис. 4.4.
• Инициализация:
123456
D
0
4
11
ОО
ОО
8
Итерация 1: S = (2, 3, 4, 5, 6); выходная вершина / = 2, MIN = 4,
$468 (2,⑵⑵⑵$468 (2,⑵⑵⑵wU и Q(3) = MIN[11, 4+ 5] = 9 w U н Z^4) = MIN[oo, 4 十 2] = 6, 三[/ 武 £)(5) = MIN [сю, 4+ 8] = 12, wU и Z^6) = MIN[oo, 4 + 7] = 11.
$468 (2,⑵⑵⑵
$468 (2,⑵⑵⑵
Итерация 2: S — {3, 4, 5, 6} и j — 4, MIN = 6,
(4, 5) wf; н Z^5) = MIN[12, 6十 1] = 7, (4, 6) wU н Z^6) = MIN [11, 6+ 10]= 11.
Итерация 3: S = {3, 5, 6} и / == 5, MIN = 7, (5, 3) w U н Q ⑶=MIN [9, 4 + 5] = 9, (5, 6)三。н Q (6) = MIN [II, 7 + 3] = 10.
Итерация 4: S = {3, 6} и j = 3, MIN = 9, (3, 6)wU н ZH3) = MIN[I0, 9 + 3] = 10.
Итерация 5: S={6} и / = 6, и затем КОНЕЦ.
Кратчайшему пути из вершины 1 в вершину 6 соответствует суммарная стоимость 10.
Можно заметить, что в приведенном алгоритме порядок перехода вершин нз S в S* зависит одновременно и от вхожде- ния/невхождения ребер во множество U, и от их стоимости: модификация стоимостей меняет порядок перехода даже без изменения графа. Кроме того, этот алгоритм выдает минимальные расстояния от вершины 1 до других вершин единым блоком (по крайней мере если мы не остановим работу алгоритма в момент, когда выбранная конечная вершина ——в нашем примере 6 ——вдруг перейдет в S* до его полного завершения, как это могло бы произойти). Наконец, мы можем оценить число элементарных операций, необходимых для выполнения этого алгоритма: поскольку ребро графа по определению связывает две вершины и на этапе выявления расстояний Q(i) анализируются две вершины (вершина, только что перешедшая в S*, и некоторая другая вершина из S), то в данном случае каждое ребро рассматривается только один раз. Если т ——число ребер графа, на этап выявления расстояний для всего множества итераций потребуется m сложений и 团 сравнений.
Кроме того, если множество S представлено характеристическим вектором, при выборе минимального значения Dn (/) для определения выходной вершины нужно |S| сравнений, т. е. на всем множестве алгоритма мы получаем £ (а —々),или п(п——1)/2 сравнений. Следовательно, предложенный алгоритм требует порядка (и2 + ^) сравнений и m сложений. Учитывая, что операции сравнения и сложения выполняются в сопоставимое время и что в любом графе по определению m п2 (поскольку ребро связывает две вершины), мы можем сказать, что данный алгоритм обладает сложностью О(п^). Этот алгоритм впервые был предложен в 1957 г. Моором, затем в 1959 г. Дейкстрой, а его варианты были разработаны Данцигом (I960), Уайтингом и Хиллиером (I960). .
Хотя мы рассматривали пример, в котором связи между вершинами, называемые ребрами, могут проходиться в обоих направлениях, иногда ситуация навязывает однонаправленность прохождения; такой граф называется' ориентированным. Направление прохождения связи обозначается в этом случае стрелкой, а ориентированная связь называется дугой. Все выводы, полученные выше, остаются в силе, поскольку направленность прохождения связи в рассуждениях не участвовала; достаточно определить U как множество дуг.
Если дуга (i, /) принадлежит множеству U, мы назовем i предшествующим /, a j — следующим за L
Пример 7. Задача упорядочения.
В мастерской по сборке автомобилей работа разбита на определенное число операций известной длительности. Эти операции должны следовать друг за другом во времени с учетом отношений логического следования, которые обусловлены физическими условиями. Информация, которой мы располагаем, сведена в табл. 4.1.
Таблица 4.1
ОперацияОперацияКодоперацииКодоперацииДлительностьв часахДлительностьв часахОтношения следованияОтношения следованияШтамповка корпуса Закрепление шассиУстановка коробки скоростей и мотораСборкаУстановка руляКабель и электропроводкаЗакрепление колесУстановка дверейОкраскаСтеклаОтделочные работы и оборудование салонаПроверка и контрольные измеренияШтамповка корпуса Закрепление шассиУстановка коробки скоростей и мотораСборкаУстановка руляКабель и электропроводкаЗакрепление колесУстановка дверейОкраскаСтеклаОтделочные работы и оборудование салонаПроверка и контрольные измеренияABC DEFGH1JK -LABC DEFGH1JK -L122 32511214 2122 32511214 2-А-в-R-cn^cD^n^p^K- X-А-в-R-cn^cD^n^p^K- XЕ-HLLЕ-HLL
Операция
Операция
Кодоперации
Кодоперации
Длительностьв часах
Длительностьв часах
Отношения следования
Отношения следования
Штамповка корпуса Закрепление шасси
Установка коробки скоростей и мотора
Сборка
Установка руля
Кабель и электропроводка
Закрепление колес
Установка дверей
Окраска
Стекла
Отделочные работы и оборудование салона
Проверка и контрольные измерения
Штамповка корпуса Закрепление шасси
Установка коробки скоростей и мотора
Сборка
Установка руля
Кабель и электропроводка
Закрепление колес
Установка дверей
Окраска
Стекла
Отделочные работы и оборудование салона
Проверка и контрольные измерения
ABC DEFGH1JK -L
ABC DEFGH1JK -L
122 32511214 2
122 32511214 2
-А-в-R-cn^cD^n^p^K- X
-А-в-R-cn^cD^n^p^K- X
Е-HLL
Е-HLL
Какова минимальная длительность сборки, если предположить, что в нашем распоряжении имеется квалифицированная рабочая сила, способная обеспечить параллельное выполнение операций там, где это возможно?
Для ответа на поставленный вопрос мы обозначим каждую операцию точкой и проведем между точками связи, соответствующие отношениям следования. Мы получим таким образом граф, причем на этот раз ориентированный (поскольку отношение “i предшествует является асимметричным и отражается дугой, ведущей от г к j). Кроме того, обозначим длительность операции х как стоимость соответствующей дуги. Добавив две фиктивные операции (а, отмечающую начало сборки, и(о, соответствующую концу работы), мн получим граф, приведенный на рис. 4.6.
Из этого графа видно, что по построению(о следует за операциями G, К н L. Кроме того, он содержит в сжатой и доступной форме всю информацию, необходимую для решения
поставленной задачи. Условия, связанные с отношениями логического следования (такие, как “С раньше Е\ “8 раньше С”, “4 раньше В”), выстраиваются в заданном порядке в цепочки; на графе им соответствуют различные пути (в нашем случае путь аАВСЕ). Найти минимальную длительность сборки озна-
Рис. 4.6. Ориентированный граф для задачи упорядочения.
чает то же самое, что определить на графе с заданными стоимостями, соответствующими продолжительности операций, путь от вершины а до вершины (о, обладающий максимальной суммарной стоимостью. Здесь нужно искать именно максимум: в этом случае все остальные пути обладают не более чем равной длительностью и поэтому максимум соответствует минимальной возможной длительности реализации множества операций.
Отметим, что, поскольку стоимости здесь по-прежнему положительны, а мы ищем максимум, то искомый путь мог бы оказаться бесконечным. Действительно это было бы так, если бы существовало подмножество дуг, такое, что
U1 *2),(%2, %з), •••,Up-1, %), где 巧, = /,
т. е. подмножество вершин, где мы могли бы ходить по кругу неопределенно долго. Такое подмножество вершин в теории графов называется циклом. Однако подобная ситуация в рассматриваемой задаче упорядочения невозможна: в самом деле, тогда получилось бы, что операция %】=хр является предшествующей по отношению к самой себе, а это в системе логически обусловленного следования было бы аномалией и соответствующая работа не могла бы быть выполнена.
Если учесть отсутствие циклов, рассмотренный в предыдущем разделе алгоритм можно улучшить. Поиск максимума, а не минимума, роли не играет. Мы снова ограничимся элементарными путями (т. е. будем брать каждую дугу не более одного раза). Основная идея остается прежней: вес 力(i), присвоенный произвольной вершине, постепенно уточняется с помощью соот-
ношения вида
/)(/)<-MAX [D (/) + /(/,办
пока он не перестанет меняться. Однако при специальном выборе порядка вершин можно свести процедуру к одному этапу Для графа, приведенного на рис. 4.6, максимальное расстояние от а до Я и В известно. Если мы знаем расстояние до В, то нам в свою очередь известны максимальные расстояния от а до Ct D и Н. Сравнивая。(〃)+/(〃,/) и I(D, /), можно определить максимальное расстояние от а до I и т. д. Вершины графа можно рассматривать также в таком порядке, чтобы мы попадали в произвольную вершину /, когда все предшествующие ей вершины уже проверены. Этот алгоритм может эффективно работать благодаря следующему свойству:
Свойство. Ациклический граф обладает по крайней мере одной вершиной, которой не предшествует никакая другая вершина; такая вершина называется корнем.
В самом деле, предположим, что это ие так, и отметим какую-нибудь вершину. По предположению 尤i не является корнем, и существует по крайней мере одна входящая в нее дуга (尤2, Xi). Теперь отметим вершину х2 и повторим разметку, начиная с 尤2・ Эта процедура задает, таким образом, бесконечную последовательность вершин (хь 尤2,尤з, • • •, %ь • • • )• Но поскольку число вершин в графе конечно, эта последовательность должна содержать повторяющийся цикл, что противоречит исходному предположению.
Данное свойство, позволяющее запустить алгоритм, мы будем использовать неоднократно: действительно, достаточно исключить из множества дуг U те дуги, которые выходят из предшествующего корня, чтобы затем определить новую, не имеющую предшественников вершину, максимальное расстояние которой от а может быть вычислено непосредственно. Докажем теперь более строгую теорему. .
Теорема. Граф ©=(Х, U) не имеет циклов в том и только том случае, если существует взаимно однозначное отображение V множества вершин X в интервал целых чисел от 1 до п, где п = \Х\ такое, что V (хь х2), (хь х2) е U: v(xO < v(x2).
Другими словами, с помощью взаимно однозначного отображения V мы можем перенумеровать все вершины так, чтобы все предшественники некоторой произвольно выбранной вершины имели меньшие номера.、
Во-первых, очевидно, что, если G включает цикл (Xi, %2,… • Xk)t мы не сможем построить подобного отображения, поскольку в противном случае, согласно предположению, имело бы
Рис. 4.7. Перестроенный граф для задачи упорядочения.
место соотношение:
V(X!)< V (W < • • • < V ⑺ < V (修),
что вообще невозможно.
И наоборот, если граф G не содержит циклов, существует корень, которому мы придадим номер 1: v(S) = 1. Теперь удалим из G эту вершину и все выходящие из нее дуги. Новый граф, полученный в результате такого удаления, очевидно, не содержит циклов: в нем есть корень с номером 2 и т. д.
Если бы в какой-нибудь момент существовала некоторая дуга (хь %2)из U, v(xi) Vw(尤2), где х2 — корень/ в то время как 尤 1 еще принадлежит остальной части графа, то получилось бы противоречие. Следовательно, функция v действительно существует, и у нас есть эффективное средство для ее построения.
Алгоритм построения функции классификации вершин
В этом алгоритме каждая дуга из множества U рассматривается только один раз, поэтому он обладает сложностью порядка 0{т). В соответствии с предложенной процедурой мы можем перестроить граф задачи упорядочения из нашего примера. На рис. 4.7 изображены множества У® называемые также пластами.
Инициализация:
р; XfT; 0 —々
Построение:
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА Т # 0:
{Yk — множество вершин, не имеющих предшественников}
ДЕЛАТЬ Vz, i^Yk:
p->v(Z); р 十 1 "Р
ДЕЛАТЬ j 巨 X,仇力三 U: Исключить (i,j) из U.
t -- y^ -> T;左 + 1 -> 左
КОНЕЦ ЦИКЛА
КОНЕЦ
Первый пласт, несомненно, а, второй — Я, третий ——В; дуги ВС, BD, ВН исключаются, и тогда С、D к Н принадлежат пласту У《.Дуги CG и СЕ, DF и DI и, наконец, HI исключены. Уб состоит из единственной вершины 尸;исключаем FJ и 尸К; следовательно, У7 состоит из J н К. Наконец, последние пласты 丫8 и Уэ составляют вершины 厶 и(о.
Замечание. Когда перед глазами имеется рисунок, нумерация не является обязательной; поэтому на рис. 4.7 мы ее опустили.
Теперь
мы
получаем:
/)*(1) =0; 0*(2) =0・
Затем: j =
3,
0*(3)
=0 + 1 = 1;
/ =
4,
”4)
=1+2 = 3;
/ =
5,
D* (5)
=1 + 2 = 3;
J =
6,
0*(6)
=1 + 2 = 3;
/ =
7,
。*⑺
= МАХ[3+ 1; 3 + 3] = 6;
/ =
8,
0*(8)
=3+2 = 5;
/ =
9,
『9)
=3 + 2 = 5;
/ =
ю,
£>•(10)
=МАХ [3 + 3; 5+ 2] = 7;
j =
и,
0*(11)
= МАх[б + 2; 7 + 5] = 12;
12,
0*(12)
=МАХ [6+ 2; 7 + 5]= 12;
13,
Д* (13)
= 12 + 1 = 13;
14,
。*(14)
= maX[5+1; 12 + 4; 13+2] = 16
Таким образом, длина максимального пути на графе для задачи упорядочения (рис. 4.6) составляет 16 единиц. Чтобы обнаружить путь, во время каждой итерации мы отмечаем предшествующую вершину, которая дала реальный максимум при подсчете D*. Идя в обратном направлении от со, мы снова берем эти данные и получаем в конце концов путь aABCEFK^
Использованный нами метод известен под названием метода потенциалов-, он был введен Бернардом Роем в 1960 г. Более распространенный, но более трудоемкий американский вариант метода для решения этой задачи называется методом PERT (Program Evaluation and Review Technique); он был разработан в NASA и в RAND в 1954 г.
Эти методы постоянно используются для реального решения конкретных задач, главным образом в строительной индустрии, а также в различных отраслях машиностроения (в автомобилестроении, кораблестроении и самолетостроении).
Помимо вычисления минимального срока выполнения проекта, эти методы позволяют получить список так называемых “критических" операций, т. е. операций, лежащих (при графическом представлении) на самом длинном из возможных путей. По определению всякое увеличение длительности любой из критических операций обязательно отразится на сроках поставок. Другим полезным следствием нашего алгоритма является информация о распределении в процессе сборки объема работ, выполняемых представителями различных профессий.
В перестроенном таким образом графе для определения максимального пути мы располагаем следующим тривиальным алгоритмом:
{Инициализация} А)* (1)0; D* (2)/ (1,2).
ПОВТОРЯТЬ ДЛЯ /, 3忘/《几 £T(j) —МАХ [£)*(£)+ 八£,力] j亿j)мu
КОНЕЦ ЦИКЛА
Действительно, новые численные обозначения таковы, что (», j) w U 今 i V /. Таким образом, все пути, приводящие в j, могут проходить только через вершины, номера которых меньше / и для которых D* уже вычислено. Пригодность алгоритма доказывается с помощью индукции по /.
Для каждого отдельного значения итерация требует j ——1 сложений и / ——2 сравнений, поэтому в конечном итоге в данном алгоритме используется п(п——1)/2, т. е. О(п2) элементар- ннх операций.
Нумерация v(x) вершин графа, иллюстрирующего рассматриваемый пример (рис. 4.6), приводится в следующей таблице:
Имя вершины
а
Л
8
С
D
Е
F
G
Н
К
L
G)
1
2
3
4
5
8
10
9
4
7 12
И
13
14
Наконец, поскольку в этом классе задач данные никогда не известны точно, для отслеживания критического пути и общей длительности в случае, когда длительности операций параметризованы и колеблются в заданных интервалах по известным вероятностным законам, были разработаны вспомогательные способы подсчета.
Подробное рассмотрение всех этих способов не входит в задачи данной главы. Здесь мы хотели показать на конкретных примерах суть алгоритмических действий: анализ задачи
Рис. 4.8. Семь мостов через Преголю: задача об эйлеровом цикле.
с целью се перевода в сжатую и удобную форму (граф); изучение в выбранном ограниченном пространстве новой задачи и проверку на к-аком-нибудь примере метода, основанного на простых идеях; обобщение, а затем оформление и доказательство .алгоритма.
Пример 8. Топологическая задача
Рассмотрим знаменитую задачу об ^эйлеровом цикле" на графе. Она состоит в том, чтобы узнать, существует ли на графе определенного вида (таком, как изображен на рис. 4.8) цикл, который проходит по каждому ребру только один раз и возвращается в исходную точку.
Разумеется, необходимым условием является связанность графа, т. е. существование цепочки ребер, позволяющей пройти из одной произвольно взятой точки графа в другую. Еще одно необходимое условие касается числа ребер, привязанных к каждой вершине: поскольку мы не можем дважды пройти по одному и тому же ребру, нужно, чтобы всякому входу соответствовал выход.
Чтобы 8 связанном графе существовал эйлеров цикл, в нем we должно быть вершин нечетной степени (степень ——число ребер, выходящих из данной вершины).
Как мы докажем ниже, это условие фактически является достаточным. Для ответа на вопрос о существовании эйлерова Цикла это условие предлагает полиномиальный алгоритм» и?
кроме того, для реального построения этого цикла в случае его существования оно дает алгоритм, совпадающий по порядку сложности с числом ребер на входе.
Необходимое условие. Оно является очевидным. Поскольку цепочка, проходящая через все ребра, входит в каждую вершину и выходит из нес, то для возвращения в исходную вершину нужно, чтобы все лежащие на нашем пути вершины имели четное число ребер.
Достаточное условие. Оно является менее очевидным. .
Мы будем рассуждать по индукции для т, где т — число ребер графа.
В соответствии с нашим предположением составим последовательно цепочку Ф, выходящую из произвольной вершины S. Чтобы быть уверенными, что мы не пройдем дважды по одному и тому же ребру, условимся вычеркивать из графа каждое пройденное ребро. Пока Ф ведет в некоторую вершину 尤,отличную от s, мы всегда можем продолжить цепочку по крайней мерс на одно ребро. В самом деле, в начальный момент каждая вершина обладает некоторым четным числом ребер и в текущей вершине 久 из этого числа обязательно сохраняется некоторое нечетносхчисло (т. с. по крайней мере одно ребро), потому что при каждом прохождении через данный пункт вычеркиваются два ребра.
Если мы нс можем продолжить цепочку Ф, это означает, что мы вернулись в s. Если в этот момент все ребра исходного графа были пройдены, теорема доказана. Если нет, то у нас осталось некоторое подмножество ребер, распределенных по нескольким связанным компонентам (здесь, разумеется, не рассматриваются компоненты, которые сводятся к изолированным вершинам).
Обозначим эти компоненты связности через Gb 仇,… ...,Gk. Поскольку с самого начала предполагалось, что граф G связанный, то цепочка Ф пересекается с каждой из этих компонент по крайней мере в одной точке. Пусть gi, ?2, ..., gk—- такие точки пересечения для каждой компоненты G(.
Так как при любом £ подграф G( является связанным и обладает по построению менее чем т ребрами и вершинами четных степеней, он допускает в соответствии с индуктивной гипотезой эйлеров цикл Ei. Исходя из этого соображения, мы строим, причем именно в указанном порядке, новую цепочку, включающую
цепочку Ф от вершины s до вершины g】;
эйлеров цикл £*{ в подграфе G【от вершины g{ до вершины gi;
цепочку Ф от вершины gi до вершины & и т. д. При этом мы все время остаемся уверенными в том, что с помощью цепочки Ф мы сможем вернуться из g^ в s, где s е G*. И наконец, доказательство, впервые проведенное Леонардом Эйлером в 1736 г., завершается утверждением того, что петля на единственной вершине образует эйлеров цикл.
Проверить приведенные необходимые и достаточные условия в каждой вершине нетрудно, причем суммарная сложность составляет О(п). Чтобы реально построить эйлеров цикл, запишем сначала процедуру Эйлера E(w), которая задает для произвольного графа эйлеров цикл с началом в вершине w.
Процедура Эйлера: £(⑵)
и<~ 叫 V Ф
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА и 耍切;
{Пусть (и,у) — первое, еще Не отмеченное, ребро, выходящее из вершины и)■
Отмстить (u.v)
Ф<~ Фи (u,V){продолжить цепочку Ф}
КОНЕЦ ЦИКЛА
КОНЕЦ ПРОЦЕДУРЫ Эйлера
Теперь легко записать полный алгоритм получения эйлерова цикла.
Следуя доказательству теоремы, мы будем строить цепочку, постепенно ее дополняя:
①―£(s) {Исходная цепочка]
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА в графе G существуют неотмеченные ребра:
{Пусть Л— вершина, расположенная одновременно па цепочке Ф и на неотмеченных ребрах} Провести конкатенацию цепочки, заданной с помощью процедуры Эйлера £ (Л) и цепочки Ф КОНЕЦ ЦИКЛА
■ В этом алгоритме процедура Эйлера £(ш) обрабатывает каждое ребро графа G не более одного раза. Следовательно, выбирая, как указано, подходящую вершину А, мы освобождаемся от реального построения связанных компонент. Тогда в худшем случае каждое ребро будет проверяться дважды. Сложность обобщенного алгоритма, таким образом, совпадает
по порядку величины с числом ребер исходного графа, т. е. составляет О(т). Итак, мы имеем прекрасный линейный алгоритм решения задачи Эйлера.
Замечание. Ниже мы рассмотрим задачу, близкую задаче Эйлера. Эту задачу изучал Гамильтон, и в его честь она получила название задачи Гамильтона; она состоит в поиске на произвольном графе цикла, проходящего на этот раз не через все ребра, а через все вершины (гл. 5, задача о коммивояжере). Оказывается, что эта новая задача вовсе не относится к тому же классу, что и предыдущая. Многие математики, в течение нескольких веков занимавшиеся задачей Гамильтона, так и не смогли построить для нее, как это удалось сделать для задачи Эйлера, хороший (т. е. полиномиальный) алгоритм.
Другими словами, мы не умеем решать обобщенную задачу определения цикла, проходящего через все вершины графа.
42 Список хорошо решаемых задач
(полиномиальные алгоритмы)
Итак, мы убедились, что всякий раз, когда для решения некоторой задачи нам известна явная математическая формула, сложность задачи оказывается постоянной (не зависящей от данных); разумеется, это случай идеальный.
В этот класс задач попадают, например, решение невырожденных систем линейных уравнений, подсчет заработной платы и большая часть классических задач из школьного курса физики, сводимых к системе уравнений.
Ниже мы дополним этот список рядом задач, требующих привлечения других типов данных.
Вначале напомним две последние задачи:
Рассортировать множество из 〃 чисел. (Сложность порядка О(п log 〃)•)」
Найти эйлеров цикл на графе из т ребер. (Сложность порядка О(т).)
Для других типов задач также были получены результаты, которые мы приведем без их доказательств.
Обнаружить в тексте длиной п некоторое слово. (Сложность п-О(п).)
Здесь речь идет о том, чтобы найти, например, в архиве все случаи вхождения одного или нескольких заданных слов ——дескрипторов или ключевых слов в библиографических ссылках. Очевидный алгоритм, включающий две петли на буквах текста, а затем на буквах слова, здесь непригоден, поскольку его сложность слишком велика (она составляет O(n X число букв в ело- ве)). Он был улучшен, и его сложность перестала зависеть от
длины искомого слова: в любом случае каждая буква текста анализируется только один раз. Это удалось осуществить путем “обмена пространства на время”: мы избегаем бессмысленных проверок, помещая в память слова в виде ^диаграммы пе* реходов”.
■ Построить покрывающее дерево минимальной стоимости (т — число ребер) и сложностью О(т log т) (Kruskal, 1956; Prim, 1957; Tarjan, 1977). .
Здесь речь идет, например, о построении в небольшом городе сети водоснабжения. Возможны некоторые сочленения, каждому соответствует своя стоимость строительства; каждая вершина (клиент) должна быть подключена к сети. Источник, подсоединенный к сети, обеспечивает необходимое давление воды в сети. Если водопровод проходит по всем точкам (“по・ крывающая^ сеть) и не образует циклов (“дерево''), к сети будут подключены все клиенты. Итак, нужно построить дерево с минимальной общей стоимостью сооружения сочленений. Оказывается, что в данном случае тривиальный алгоритм, состоящий в выборе ребра с минимальной стоимостью, не образующего циклов с уже отмеченными ребрами (и так до тех пор, пока не будут достигнуты все вершины), во-первых, дает оптимальное дерево, а, во-вторых, обладает минимальной сложностью.
Многие другие задачи из теории графов также решаются за полиномиальное число шагов. Перечислим главные из них.
■ Кратчайший путь на графе, состоящем из п вершин и ш дуг. (Сложность О(т n).) (Ford, 1965; Dijkstra, 1959; Dant- zig, 1960; Floid, 1962.) -
На заданном графе с проставленными стоимостями мы отыскиваем путь, связывающий два фиксированных пункта, для которого сумма стоимостей ребер минимальна. Обратная задача поиска максимального пути обладает той; же степенью сложности.
■ Связанные компоненты. (Сложность О ("?)•) (Tremaux, 1882; Tarjan 1972.)
Речь идет об определении подмножеств вершин (связанных компонент), таких, что две вершины, принадлежащие одной и той же компоненте, всегда связаны цепочкой дуг. Именно так мы определяем, например, в некотором проекте подмножества операций, не зависящих друг от друга.
■ Транзитивное замыкание. (Сложность О (п2).) (Nolin, 1964; Warshal, 1965; Roy, 1965.)
Для каждой вершины находим множество вершин, с которыми она связана. Алгоритм поиска аналогичен предыдущему.
Максимальное паросочетание. (Сложность O(n5/2).) (Berge, 1962; Edmonds, 1965; Gabovv, 1973; Bartnik 1978.)
На произвольном графе нужно найти максимальное подмножество ребер, не встречающихся друг с другом ни в одной вершине. Одна из теорем Клода Берже содержала необходимое и достаточное условие максимальности некоторого множества. Однако доказательство того, что это условие может быть проверено за полиномиальное время, удалось провести Джеку Эдмондсу уже позже. Кроме того, для любого немаксимального множества он предложил эффективное улучшение; в своей известной статье “Пути, деревья и лнстья" он придумал термин ихороший алгоритм" и продемонстрировал его значимость„
Задача о паросочетанин относится к многочисленным задачам класса распределений, или, иначе, к задачам дизъюнктивного упорядочения (операции, взаимно исключающие друг друга в пределах одного и того же интервала времени: организация смен экипажей, транспортных средств, расписаний рабочего времени).
Максимальный поток. (Сложность О(п3). (Ford и Fulkerson, 1950; Gondran и Minoux 1978.)
Речь идет о том* .чтобы пропустить между двумя пунктами максимальный 11 поток", если известно, что каждая дуга обладает некоторой максимальной пропускной способностью, превысить которую мы не можем. Эта модель используется для оптимизации загрузки судов, иногда поездов и самолетов.
Благодаря настойчивой работе исследователей с годами удалось достичь уменьшения степени сложности некоторых задач из теории графов. Приведем только один пример.
Проверка планарности графа. (Сложность О(п).)
Граф является планарным в том и только в том случае» если мы можем изобразить его на плоскости так, что его ребра имеют общие точки только в вершинах.
В 1930 г. для выполнения этого теста Куратовский предложил метод, сложность которого составляла О(п6). До 1970 г. было получено несколько полиномиа.п.ных методов понижающихся степеней сложности ——вплоть до О(п2). В 1970 г. Хопк- рофт и Тарьяи разработали метод сложностью порядка О(п log п), и наконец, в 1974 г., улучшая его, они добились минимальной сложности О(п).
Еще более необычно обстоит дело с задачами, для которых в течение продолжительного времени не было известно полиномиального алгоритма, и при этом никто не мог доказать ни того, что такого алгоритма не существует, ни того, что данная задача является необходимо сложной в силу эквивалентности
задачам этого класса. Именно, таким статусом долгое время обладало линейное программирование.
Линейное программирование.
Речь идет о решении в пространстве Кя системы линейных уравнений вида
/Х = Ь,
где Л — матрица размером m X ^ с заданными элементами; X — вектор, состоящий из п положительных действительных неизвестных, X е Rn; b ——вектор из т заданных свободных членов.
В случае необходимости множество решений X сокращается с сохранением тех решений, которые минимизируют какой-либо (также линейный) функционал вида сХ, где с——вектор с п заданными коэффициентами.
Такая формулировка позволяет моделировать огромное число задач большой размерности и большой значимости (в плане ожидаемой материальной выгоды), причем из различных областей: сюда относятся управление производством, доставка грузов, оптимизация перегонки нефти, производство и распределение электрического тока. Вот уже 25 лет линейное программирование способствует успеху в области исследования операций; оно принесло известность Г. Данцигу ——создателю метода, используемого сегодня для решения этого класса задач.
Однако алгоритм Данцига, называемый симплекс-методом, базируется на некоторой эвристике использования градиента (т. е. локального оптимума), если его достижение обеспечивается выпуклостью пространства поиска и может получиться так, что мы попадем туда только после того, как пройдем экспоненциальное (зависящее от m и п) число точек или итераций.
Итак, вот уже в течение 20 лет симплскс-метод, постоянно дополняемый и улучшаемый, используется ——и весьма эффективно!——во всем мире. Даже для задач большой размерности (например, т = 1000, п = 40 000) при теоретической сложности порядка О (nm) на практике отмечалась сложность порядка 0(歩).
Затем в 1979 г. Хачиян предложил для задачи линейного программирования полиномиальный алгоритм, существенно отличающийся от симплекс-алгоритма. И хотя он объясняет экспериментальный успех симплекс-метода, у него мало шансов "свергнуть'1 его с трона окончательно: при решении реальных задач симплекс-метод вполне пригоден.
Основное достоинство алгоритма Хачияна состоит в следующем: наконец,установлено,что некоторое семейство алгоритмов
вычислительной математики сходится с заданной точностью за полиномиальное число этапов.
Кроме того, алгоритм Хачияна завершает список полиномиальных, т. е. хорошо решаемых, задач: ведь в действительности они очень немногочисленны!
Разумеется, перечисленные выше задачи не исчерпывают всего многообразия формулировок для существующих частных случаев. Для некоторых задач (например, для проблемы изоморфности двух произвольных графов), как и для линейного программирования до открытия Хачияна, не существует полиномиального алгоритма, хотя их эквивалентность каким-либо экспоненциальным задачам не доказана.
Очевидно, что класс задач, не решаемых за полиномиальное время, намного больше, чем класс полиномиальных задач. Даже если не учитывать задач, для которых время подсчета заведомо должно быть экспоненциальным, у нас остается обширный загадочный класс, включающий задачи, теоретически допускающие полиномиальную сложность, но пока еще не имеющие хорошего алгоритма решения.
4.3. Классификация задач па степени сложности
Как показывает опыт, любое более или менее близкое знакомство с той или иной областью формирует у каждого из нас ^интуитивное пpeдcтaвлeниe^, о том, что одна задача является “более трудной1', чем другая. Это чисто субъективное понятие не может нас удовлетворить. Однако можем ли мы определить истинную сложность задачи?
Понятию сложности и классификации вытекающих из него задач посвящен этот раздел.
Сначала поговорим о различии между математикой и информатикой: в информатике недостаточно высказать утверждение о существовании некоторого объекта в теории и даже недостаточно найти конструктивное доказательство этого факта, т. е. алгоритм. Мы должны учитывать противоречия пространства и времени, навязываемые нам миром, в котором мы живем: необходимо, чтобы решение можно было вычислить, используя объем памяти и время, приемлемые для человека или машины.
Поскольку любой метод разрабатывают для решения нескольких однотипных задач с различными исходными данными, естественным критерием качества метода в целом является решение наихудшего из всех возможных случаев, допускающих применение рассматриваемого метода. Говоря конкретно, опре^ деляющим в конце концов является общее число элементарных
операций. Для наглядности нужно выразить это число через размерность входных данных решаемой задачи.
Таким образом, сложностью процедуры называется выраженная в виде функции от размерности входных данных верхняя граница числа операций, необходимых для выполнения этой процедуры.
Сложность задачи ——это сложность наилучшего алгоритма, известного для ее решения. Следовательно, она зависит от уровня развития методов решения. По существу здесь возникают два основных вопроса:
До какого состояния можно улучшать данный алгоритм? Известны ли для отдельных случаев методы оптимальной сложности? Каково число задач, которые хорошо решаются, т. е. задач невысокой степени сложности (например, п или п2, где п — размерность входных данных)?
Приводит *ли учет степени сложности к иной классификации задач и предлагаются ли какие-нибудь методы для перехода из одного класса в другой, от “трудно而” задачи к более “простой”?
Ниже будут даны ответы на эти два вопроса. Они показывают, что для решения многих задач uклассических" алгоритмических методов явно недостаточно и что перспективными являются исследования в области искусственного интеллекта.
Три класса задач
Самыми лучшими являются линейные алгоритмы, которые обладают сложностью порядка (а^п — Ь) и называются также алгоритмами порядка О(м) (где п ——размерность входных данных).
Такие алгоритмы реально существуют. Например, подсчет суммы чисел, состоящих из м】и Нг цифр, способом, с которым все знакомятся в начальной школе, требует подсчета не более 几1 + 也2 одноразрядных чисел и не более чем шах(пь 九2) запоминаний.
Перемножение двух одноразрядных чисел, прибавление числа и запоминание ——все это элементарные операции, которые может выполнить любая машина. Таким образом, данный алгоритм сложения в. целом имеет сложность порядка О(П)+ + 几2); при этом, разумеется, приведенное выражение показывает только порядок величины: постоянные факторы в нем не учитываются (вот почему исчезают подсчеты, связанные с запоминаниями). .
Другие хорошо известные алгоритмы ——деление, извлечение квадратного корня, решение уравнений второй степени■
в результате обобщения этой линейности попадают в первый класс ——класс полиномиальных алгоритмов.
Класс Р: полиномиальные алгоритмы
Мы называем ^хорошей'', или принадлежащей классу Р, задачу, для которой известен алгоритм, сложность которого составляет полином заданной, постоянной и не зависящей от размерности входной величины п степени.
Класс Е: задачи, экспоненциальные по природе
Экспоненциальной по природе считается задача, сложность которой не менее порядка 厂(где f ——константа или полином от п), например, в случае, когда число ожидаемых ответов уже само по себе экспоненциально.
К этому классу относятся задачи, в которых требуется построить все подмножества некоторого множества, все клики (т. е. полные подграфы) некоторого графа или же все поддеревья некоторого графа. Действительно, можно доказать, что число выходов в этом случае представляется в виде (полином от п)п. Имеются некоторые задачи со сложностью, которую можно описать формулой
2 k
2
2
где п ——размерность входной величины, т. е. зависит от данных.
К ним относятся задачи распознавания правильных выражений на языках, имеющих относительно несложные алфавиты и правила построения единиц.
Заметим, что при небольших значениях п экспоненциальный алгоритм может быть более быстрым, чем полиномиальный.
Однако различие между этими двумя типами задач велико и всегда проявляется при больших значениях п.
На практике существуют задачи, которые заранее не могут быть отнесены ни к одному из рассмотренных выше классов (ни к классу Р, ни к классу £), В их условиях не содержатся экспоненциальные исчисления. Однако для многих из них до сих пор не разработан эффективный (т. е. полиномиальный) алгоритм.
Задачи, ие попадающие ни в класс Р, ни в класс Е
К этому классу относятся следующие задачи:
Решение систем уравнений с целыми переменными (Dio- phante, 410).
Определение цикла, проходящего через все вершины некоторого графа (цикл Гамильтона) (Hamilton. 1870).
Существование среди заданных подмножеств некоторого избранного семейства, покрывающего данное множество.
Составление расписаний (и соответственно раскрасок), учитывающих определенные условия (и соответственно бинарные отношения).
Существование множества значений логических переменных, которые позволяют сделать значение произвольного заданного логического выражения ИСТИННЫМ (Cook, 1971).
Оптимизация пути коммивояжера через сеть городов.
Отбор файлов при запросе в информационный банк данных для получения информации с наименьшей стоимостью.
Размещение обслуживающих центров (телефон,' телевидение, срочные службы) для максимального числа клиентов при минимальном числе центров.
Оптимальная загрузка емкости (рюкзак, поезд, корабль, самолет) при наименьшей стоимости.
Оптимальный раскрой (бумага, картон, стальной прокат, отливки)» оптимизация маршрутов в воздушном пространстве, инвестиций, станочного парка.
Диагностика (болезни, поломки, дефекты печатных схем).
Этот список можно продолжить.
Проблема состоит в следующем: можем ли мы надеяться, что какие-либо из этих задач попадут в класс Р?
К сожалению, в настоящее время ни для одной из этих задач не найдено полиномиального алгоритма.
Более того, для всех перечисленных задач была доказана взаимная эквивалентность, т. е. если все-таки удастся представить для одной из этих задач хороший (т. е. полиномиальный) алгоритм, то все онн автоматически будут решены.
Наиболее удобный класс Р ——множество полиномиальных задач ——уже обсуждался выше в разд. 4.2, где мы отметили, что этих задач слишком мало: формальные задачи, которые люди сегодня умеют решать хорошо (т. е. алгоритмически и полиномиально), образуют весьма небольшое семейство. Все остальные задачи являются трудными и по определению относятся к области искусственного интеллекта.
Наконец, отметим, что, даже если для сформулированной на обычном языке задачи полиномиальный алгоритм существует, необходимость узнать это, сформулировать и смоделировать условия задачи так, чтобы ее можно было обработать
хорошим алгоритмом, опять приводит к неполиномиальной сложности.
Класс NP: недетерминированные полиномиальные задачи
4.4.1. Два семейства машин
Когда для решения задачи мы не располагаем ни явной формулой, ни рекурсивным выражением приемлемой сложности, нам остается два последних способа: построение действенного алгоритма подсчета или метод перебора. Если мы говорим, что сложность задачи полиномиальна, это означает, что в любом случае, не прибегая к перебору, мы достигнем решения за полиномиальное число шагов.
Абстрактной моделью такого полиномиального алгоритма является черный ящик, умеющий выполнять только заданное множество элементарных операций: +,——,*, /, ИЛИ, И, ЧИТАТЬ, ПИСАТЬ, ЕСЛИ... ТО.... ПОВТОРЯТЬ. В заданный момент этот автомат находится в строго определенном состоянии; за один шаг он совершает единственное действие, обусловленное этим состоянием. Затем он переходит в следующее состояние, и все начинается сначала. Такой автомат называется также детерминированной машиной Тьюринга (ДМ.Т).
Механизм перебора, т. е. продвижения на ощупь, .совершая предварительные попытки (а в некоторых задачах без этого обойтись нельзя), можно смоделировать с помощью другой, тоже весьма абстрактной, машины Тьюринга, называемой недетерминированной (НДМТ).
Помимо обычного набора инструкций в такой машине существует специальная инструкция uВЫБОР [Е]*\ которая создает столько копий текущего состояния, сколько существует элементов во множестве Е. По соглашению машина останавливается в тот момент, когда одна из возникших ее копий достигает инструкции КОНЕЦ.
Опишем на этом новом языке недетерминированные алгоритмы для двух простых задач.
Задача 1. Разрешимость логического выражения
Пусть дано логическое выражение Е. Оно включает символы V (ИЛИ), А (И), ~] (НЕ) и логические переменные %, (/2, ..., дп- Нам нужно так подобрать значения 次,чтобы при этих значениях выражение E((/i, q2, ..., qQ было ИСТИННЫМ. Например, если
E(W1 q2Vl 禽)A ⑨ V % V 伙)А(9з V П ^4)А (П 6), то подойдет множество (ЛОЖЬ, ИСТИНА, ЛОЖЬ, ЛОЖЬ).
■ Алгоритм для НДМТ запишется в следующем виде:
ПОВТОРЯТЬ ДЛЯ 4^[1,п]
力—BblBOP [ИСТИНА,ЛОЖЬ]
КОНЕЦ ЦИКЛА по i
ЕСЛИ e(6,例,・一"力 ТО УСПЕХ; кoНеЦ ИНАЧЕ неудача.
Итак, этот алгоритм создает 2" = 16 копий самого себя, и, в частности, двенадцатая копия приводит к успеху. В таком случае выражение £ называется разрешимым.
Задача 2. Раскраска географической карты в 3 цвета.
Речь идет о раскрашивании на плоской карте стран Рь Р?,Рп с помощью трех карандашей различных цветов, причем любые два граничащих друг с другом района должны быть раскрашены различно.
Недетерминированный алгоритм:
цвет (В)—1 {раскрасить страну так же, как смежные -страны}
ПОВТОРЯТЬ ДЛЯ У[1 川
ЕСЛИ Р\ смежна с 匕 ТО цвет (В) —&
<OHEU ЦИКЛА-по i .
ПОВТОРЯТЬ ДЛЯ k^[l,n] ДО ТЕХ ПОР ПОКА существуют нераскрашенные страны ЕСЛИ страну Pk можно раскрасить только в цвет /
ТО цвет (PR — j
КОНЕЦ ЦИКЛА по k
ЕСЛИ все страны раскрашены ТО КОНЕЦ
ИНАЧЕ: пусть Pmin — страна с наименьшим индексом, которую можно раскрасить либо в цвет 厶,либо в цвет /2: Цвет (Pmin)^-ВЫБОР [/г,/2]'
Видно, с какой легкостью НДМТ позволяет записывать алгоритмы перебора. Она освобождает программиста от какого бы то ни было управления возвратами. Все происходит так, как если бы копии текущего состояния, каждая нз которых в конечном итоге является продуктом детерминированной машины, работали параллельно, никак не затрагивая проблему технической осуществимости этого. Число таких детерминированных машин на самом деле произвольно. Поскольку это число
экспоненциально по природе, очень быстро п(х)исходит <*взрыв,' (см. два предыдущих случая).
Замечание /. В предыдущих случаях каждая отдельная копия является детерминированной, а число шагов ——следовательно, и сложность каждой копии — полиномиально (в двух предыдущих случаях оно фактически линейно). Если обобщить сказанное выше, всякий алгоритм, который может быть выполнен за полиномиальное время на недетерминированной машине Тьюринга, мы будем называть недетерминированным полиномиальным алгоритмом, или сокращенно NP. Следствие, которое непосредственно вытекает из этого определения, можно записать в виде
Р и NP,
т. е. множество задач, полиномиальных на ДМТ, входит в NPt поскольку ДМТ является частным случаем НДМТ.
Замечание 2. Для того чтобы перейти из NP в Р, нужно “совсем немного1'. Так, во второй задаче, если мы допускаем только два цвета, предыдущий алгоритм дает ответ (возможно или невозможно), не используя ту петлю, в которой фигурирует ключевая инструкция “BblBOP". Вывод о характере ответа достигается за О(п) шагов без какого бы то ни было возвращения назад: НДМТ сводится к ДМТ. В первой задаче множество возможных значений с самого начала ограничено двумя элементами. Однако в этом случае простота вычисления зависит от числа логических переменных внутри одной пары скобок. В самом деле, предположим, что их число не более двух и подлежащее оценке выражение приведено к нормальному виду
А 亿 V s^,
где г/ и Sj обозначают либо (/〃 либо ~1(7/. Поэтому, когда мы фиксируем значение первого терма, например в данной паре скобок —门,эта пара скобок может сразу принять значение ИСТИНА, и тогда мы перейдем к (i + 1)-й паре. Если получить решение на первом же шаге не удалось, вид второго терма, т. е. Sz, позволяет сразу, т. е. не прибегая к инструкции “ВЫВОР”, а исходя из условия, получить то значение, которое должна принять эта соседняя переменная. Если вплоть до f = п данный процесс распространения ограничений проходит успешно, алгоритм сразу выдаст ответ в виде вектора (屮,?2, • • •, Q«) ; в противном случае рассматриваемое выражение неразрешимо.
Итак, граница между классами Р и NP является, резкой, причем проходит она по очень близким значениям: п = 2 и п = 3.
Однако остается вопрос, являются ли недетерминированные машины заведомо более мощными, т. е. могут ли они решить больше задач, чем детерминированные, или же, бо^пее коротко, равны ли Р и NP?
ИИNPNPили.или.Р = PNР = PN
И
И
NP
NP
или.
или.
Р = PN
Р = PN
В настоящее время ответа на этот вопрос пока нет.
Список задач класса NP
В этот список попадают следующие задачи:
Разрешимость логического выражения.
Трехцветная раскраска графа.
Построение клики из k вершин на неориентированном графе.
Покрытые множеств: пусть давно семейство 尸 подмножеств Ei некоторого множества £; требуется найти подсемейство G из 尸,такое, что
У £■/ = У 已
Разбиение множества: то же условие, что и в предыдущем случае, но, кроме того, обязательно требуется
Et П £/ = Ф (для всяких £/, £}, принадлежащих G).
Существование гамильтонова цикла на неориентированном графе.
Задача о рюкзаке: для переменных х/, принимающих значения 0 и 1, найти решение уравнения
£q『尤/ = Ь (fly и b ——заданные целые числа).
В более общем виде это решение диофантова уравнения (т. е. уравнения в целых числах).
Разбиение на две части: пусть дано п чисел у, из множества N; требуется разбить их на два непересекающихся подмножества /1 и /2, таких, что
Е 力=X %
/ е/1/Е/2
Существование на ориентированном графе такого имеющего вид цикла маршрута коммивояжера, общая стоимость которого меньше заданного числа Ь.
Данный список можно продолжить: большая часть современных задач фактически относится к классу NP. Кроме того, не следует забывать, что названные задачи являются модельными. Каждой из них соответствует несколько реальных формулировок условий задачи, таких, как упорядочение операций; распределение персонала; оптимизация перевозок, ректификации, размещения предприятий; управление производством; проектирование в- области электроники или архитектуры.
Чтобы доказать, что некоторая задача из данного списка принадлежит классу NP, достаточно выписать недетерминированный алгоритм, который решает се с полиномиальной сложностью. Например, рассмотрим задачу существования на ориентированном графе G гамильтонова цикла со стоимостью, меньшей или равной Ь.
V{ 1 {Пункт отправления}
S<-{2,..., п} {Множество вершин, которые нужно
посетить}
стоимость <-О пи 1стоимость <-О пи 1{Обихая стоимость}
стоимость <-О пи 1
стоимость <-О пи 1
{Число уже посещенных городов}
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА преемник (^口)声 0: {Преемник (ил0) обозначает допустимое (не содержащее паразитных циклов) множество городов, в которые можно попасть из 味} fnc_i ВЫБОР (преемник (勿J) пи <- пи + 1 стоимость<— стоимость + стоимость (дуга (県一i,vnv))
КОНЕЦ ЦИКЛА
ЕСЛИ nv=-n И стоимость &Ь ТО успех: КОНЕЦ
ИНАЧЕ неудача
Каждая копия этого алгоритма действительно приводит к полиномиальному числу шагов, точнее и, причем независимо от значения Ь; следовательно, задача существования цикла стоимостью, не большей Ь, попадает в класс NP.
Замечание, Задача об оптимальном гамильтоновом цикле не попадает в класс NP, В самом деле, в качестве подзадачи в нее входит доказательство несуществования циклов, по стоимости превышающих Ь. Следовательно, к классу NP эта задача не относится. Она является дополнительной по отношению
к рассмотренной выше, так как теперь мы отыскиваем те циклы, которые не являются решениями той задачи. Однако нельзя утверждать, что если некоторая задача Q принадлежит классу NP, то и дополнительная к ней задача Q тоже входит в NP.
На первый взгляд такое положение не соответствует “нн- тунцнн”, поскольку в классе Р аналогичное утверждение является справедливым. Но перейти к дополнительной задаче в классе NP означает поменять местами в соответствующем недетерминированном алгоритме все случаи успехов и неудач. Для задачи Q конечный успех означает неудачу во всех ветвях исходного недетерминированного алгоритма. Следовательно, для получения ответа нужно подождать, пока закончат работу все ДМТ. Сложности суммируются, а поскольку число ДМТ не обязательно полиномиально, ничто не обеспечивает того, чтобы Q м NP при Q 三 ^P.
В частности, для задачи существования на графе G гамильтонова цикла стоимостью, не меньшей Ь, нам не удается написать соответствующий недетерминированный алгоритм; следовательно, данная задача не относится к классу NP и главным образом потому, что разность между Ь и реальной стоимостью некоторого гамильтонова цикла заранее может быть сколь угодно велика (она не ограничена полиномом, зависящим от числа городов, которые нужно посетить). Итак, задача об оптимальном маршруте коммивояжера не попадает в класс NP.
Из задач на оптимизацию в класс NP попадает только задача поиска существования решения с заданной стоимостью. В общем случае задача оптимизации в настоящее время не может быть отнесена к какому-либо классу.
Изучение задач типа NP
с помощью классов эквивалентностей
Сначала мы докажем, что задачи, имеющие различные условия, но относящиеся к классу NP, на самом деле эквивалентны.
Приводимые ниже определения позволят в первую очередь уточнить» что мы понимаем под эквивалентными задачами.
Определение 1. Задача Q сводится к задаче R тогда и только тогда, когда для всякого решения s задачи R существует функция g(s), которую можно вычислить полиномиально и которая является решением задачи Q.
Тогда Q является частным случаем R и можно записать:
Qf R
Это, кроме того, означает: если мы умеем решать R, то мы умеем решать и Q.
Определение 2. Если одновременно Q->R и R->Q, то мьг говорим, что Q н R эквивалентны.
Определение 3. Задача называется Л^Р-сложной тогда и только тогда, когда к ней сводима любая задача из класса NP.
Замечание. Утверждение, что задача является Л^Р-сложной, нс обязательно означает се принадлежность классу NP.
Полезность этого определения подтверждается следующей теоремой, которая служит исходным пунктом при установлении многочисленных отношений эквивалентности между задачами.
Основная теорема (Cook, 1971)
Задача разрешимости логического выражения является NP-сложной.
Итак, данная теорема утверждает, что решение любой задачи из класса NР (т. е. такой задачи, которую можно обработать на НДМТ за полиномиальное время) может быть получено из решения задачи разрешимости с помощью некоторой трансформации, которая тоже полиномиальна. Или, иначе, для решения произвольной задачи класса NP достаточно уметь решать задачу разрешимости:
Любая задача класса NP задача разрешимости.
Этот результат впервые получен Куком (1971 г.) в связи с изучением вопросов автоматического доказательства теорем и является более тонким математическим результатом по сравнению с классическими теоремами о неразрешимости в фор- малр^ных системах [Church, 1932; Godel, 1931; см. гл. 3].
При доказательстве этой теоремы, которое мы приведем ниже, нам придется уточнить формальную модель НДМТ.
Недетерминированная машина Тьюринга (НДМТ) состоит из считывающе-записывающей головки, регистрирующей ленты, разделенной на ячейки, в которых записаны символы о】,。2, или。广.Она характеризуется конечным множеством внутренних состояний 尸 и семью свойствами:
в каждый момент времени головка имеет доступ только к одной ячейке регистрирующей ленты;
в .любой момент времени каждая клетка содержит один символ;
в данный момент допускается только одно состояние;
изменять можно только ячейку, находящуюся под головкой;
остальные действия (перемещение головки, изменение внутреннего состояния, инструкция "BblbOP”)могут быть выполнены только с помощью функции Detw, определяющей машину М;■
исходным состоянием может быть любое возможное состояние;
конечным называется состояние, связанное с первым успехом (по отношению к последней неудаче).
Теперь, когда задана недетерминированная машина Тьюринга М, описываемая по предложенной выше схеме, и, помимо этого, задача Q произвольной размерности п, которую можно решить на этой машине, мы построим в явном виде логическое выражение Ем, q, такое, что
Em,q разрешимо <=>Q можно решить на М за полиномиальное время.
Важным моментом является то, что доказательство разрешимости выражения Ем. q можно проводить с помощью любого полиномиального алгоритма. “Q можно решить на М за полиномиальное время" означает, что существует по крайней мере одна последовательность состояний Оо, 8】,02, .. ., 0т, где
Qi е Defjvi (Oi-i) {б, — является изаконным ходом”};
Оо — исходное состояние;
От -— конечное состояние, причем т W р(п), где р — некоторый полином;
никакая другая законная цепочка состояний 90, &, ..., 0* не имеет больше чем р(п) ячеек, т. е. в ней не более р(п) шагов.
Выражение Ем, q, которое мы построим ниже, будет имитировать цепочку 0о, 0j, ..., 0/п. В него войдет ряд переменных. Каждое присваивание значений этому множеству 丿переменных соответствует не более чем одной последовательности законных состояний. И наконец, значение ИСТИНА данное выражение принимает тогда и только тогда, когда существует набор значений, который соответствует последовательности, приводящей к успеху.
Используем такие переменные, которые допускают точное описание рассматриваемой НДМТ; они бывают трех типов.
/亿 0) = 1 тогда и только тогда, когда считывающе-записы- вающая головка установлена на ячейку i в момент времени 0 (1 W i W 丸 1 W е W 九).
«(/, 9) = 1 тогда и только тогда, когда в момент времени 0 машина М находится в состоянии j, причем это состояние является единственным (1 W jwf, где f ——число возможных состояний из множества 户;1& 加).
u(i, А, 0) — 1 тогда и только тогда, когда в момент времени 0 t-я ячейка на регистрирующей ленте машины М содержит ft-й символ (1 ^ i ^ т, I W A W г и, наконец, 1 WB W /и).
Число символов г постоянно и не зависит от п, так что число введенных логических переменных составляет 〜т、т. е. является полиномом, зависящим от задачи, размерность которой на входе составляет п.
Теперь свойствам машины М 1 亠7 мы поставим в соответствие семь логических выражений (Д)——(G).
Головка проверяет одновременно только одну ячейку.
ve, 1 <e<m,
£ / (厶 e)= 1 и, следовательно, П £/亿 8)= i. i =10=1 1 = 1
Это выражение содержит m термов; следовательно, условие Л записывается с помощью т2 термов.
В любой момент времени в каждой клетке имеется только один уникальный символ.
V0, \^В^т,
Vz, 1 ^ z ^ m, i обозначает ячейку с номером 厶
Мы получаем £ и (г, k, 0) = 1.
也=】
Поскольку г не зависит от 孔,условие В записывается с помощью т2 термов..
М может находиться в данный момент только в одном состоянии.
ve, 1 <e<m,
Условие С записывается с помощью т термов, так как число состояний f не зависит от машины М.
На ленте может изменяться только ячейка, находящаяся под головкой.
Vt, i^i^m,
VA, 1 &У г,
V0, 1 式6 &g
(и & 財 8) = 1)什((/ 色 0) = 1) V (и & 比 8 + 1) = 1)),
т. е. если t-я ячейка находится под считывающей головкой машины Мив ней содержится символ 龙,то
либо головка считывает t-ю ячейку в момент времени 6;
либо в момент времени 0+1 f-я ячейка все еще содержит 月-й символ.
Это хорошо согласуется с условиями А и В. Условие D записывается с помощью О^т2) символов, поскольку г——константа.
Каждое новое состояние может быть получено только с помощью функции Def^, определяющей машину М, т. е. в момент времени 0:
ЕСЛИ t-я ячейка содержит символ /,
ЕСЛИ головка считывает ячейку i, а М находится в состоянии 財 ТО следующее состояние является одним из состояний Def^U,/, k).
Это утверждение типа 尤今 у мы будем записывать в виде ~1х V у или в данном случае после преобразования трех посылок:
(и Q,々,0) = 0) V (以(j, 0) = 0) V (/ 亿 0) = 0) V [f 亿財,8 + 1)= =1 A u(/z, e+l)^lA/(rz, 0+1)-1],
где l обозначает произвольное состояние из DefM(i, j, A).
Поскольку машина M является недетерминированной, для любой тройки (i, j,々) существует более чем одна тройка DefAf(t, /, А), но при этом таких троек всегда конечное число.
Таким образом, для фиксированных i, j н 々 независимо от п приведенное выше выражение имеет ограниченную длину. Поскольку число состояний f само является постоянным, условие Е записывается с помощью О(т2) термов.
Исходное состояние является законным, т. е. когда мы обозначаем с помощью индекса 1 состояние в момент времени 1, самая левая ячейка автоматически получает номер 1:
(〃(1, 1)=1)八(/(I, 1)=1).
Кроме того, ячейки с номерами от 2 до п + ^ содержат исходное условие Q, а другие — пусты, т. е. если пустой символ закодирован единицей, то
( А ®С,"1) = 1)Х 八 (u(i, I, 1) = 1)).
\2< i <n +1/\n+2<i<m/
Следовательно, условие 尸 имеет длину О(т).
尸三((〃,1, 1)=1)八(亿 1, 1) = 1)( A v(i, /;> 1)=1)Х \2^ i<n-l-I/
Xf А 。亿 1, 1) = 1).
Vi+2《j《m/
Свойство 7 утверждает, что в конечном счете существует искомое состояние А, представляющее собой успешное завершение работы алгоритма.
Допуская, что начиная с этого момента машина остается в данном состоянии (конкретно М будет находиться в состоянии А в момент времени т — р (п)), мы получим и (А, т).
Полное условие И для решения задачи Q с помощью машины М записывается в виде
H = A\fDNENFNG.
По построению данное условие выражается с помощью не более чем О(т3) термов, причем оно является выполнимым тогда и только тогда, когда машина М решает задачу Q. Действительно, если последовательность состояний 01, 02, ..., 0^ ведет к Од, тем самым определены те значения переменных & и, г, которые присваивают Н значение ИСТИНА. И наоборот, если значения переменных известны, через функцию DefM они соответствуют последовательности законных состояний.
Так как мы не накладывали на нашу недетерминированную машину М никаких ограничений, мы доказали, что любая задача, которую можно решить на М (любой язык, понимаемый машиной М), полиномиально сводима к задаче разрешимости логического выражения.
Класс TVP-полных задач
С помощью теоремы Кука для всех задач Q 三 NP одновременно устанавливается отношение сводимости "Q логическая разрешимость". Но отношение сводимости является транзитивным. Поэтому если нам удастся доказать, что логическая разрешимость сводима к некоторой задаче QH которая сама сводится к Q2, и т. д, то мы получим класс эквивалентных задач.
Это фактически заставляет уточнить границы класса III путем разбиения его на две части в зависимости от того, смогли ли мы доказать принадлежность/непринадлежность задачи классу NP.
Определение. Задача называется АтР-полной в том и только в том случае, если она является “Р-сложно宓 и попадает в класс NP.
Для лучшего понимания проблемы рассмотрим рис. 4.9.
Получение результата Р = NP сегодня кажется невероятным. Для большинства действительно сложных классических задач была доказана принадлежность к классу /vr-сложных. Но, что еще более удивительно, почти все они попадают в класс NP, т. е. являются Л^-полными, и, следовательно, в этом смысле
все они эквивалентны. Если бы мы научились решать одну из них за полиномиальное время, то мы бы смогли решить все задачи данного класса за промежуток времени того же порядка величины.
Напомним два других свойства А^Г-полных задач: мы не знаем, являются ли они неполиномиальными, и не знаем для их
NPn^-слолсмыеNPn^-слолсмыеNP-полныеNP-полные尺 ним сводится•NP-c〃^w“〃елюбая зада, чаиз NP尺 ним сводится•NP-c〃^w“〃елюбая зада, чаиз NPЗадали, которые ^WtW peLUUEb .3。палиномиась- aw время “а ДМТ Задали, которые молено решить за п(маномиабь~ ное время на НДМТЗадали, которые ^WtW peLUUEb .3。палиномиась- aw время “а ДМТ Задали, которые молено решить за п(маномиабь~ ное время на НДМТ
NPn^-слолсмые
NPn^-слолсмые
NP-полные
NP-полные
尺 ним сводится•NP-c〃^w“〃е
любая зада, ча
из NP
尺 ним сводится•NP-c〃^w“〃е
любая зада, ча
из NP
Задали, которые ^WtW peLUUEb .3。палиномиась- aw время “а ДМТ Задали, которые молено решить за п(маномиабь~ ное время на НДМТ
Задали, которые ^WtW peLUUEb .3。палиномиась- aw время “а ДМТ Задали, которые молено решить за п(маномиабь~ ное время на НДМТ
Прочиезадачи
Рис. 4.9. Пример сортировки первого типа.
решения детерминированного полиномиально ограниченного алгоритма.
Приведем для примера несколько доказательств эквивалентности.
Идея состоит в том, чтобы перевести задачу из одного класса задач в другой. Трудность заключается в том, что мы не умеем как следует решать основную задачу ——задачу логической разрешимости. Но принципы моделирования и преобразования условий могут успешно использоваться в конкретных случаях.
В действительности при изучении этих проблем никогда не следует упускать из виду, что даже если теоретическая принадлежность некоторой общей задачи Q к классу Д^-полных доказана, любая конкретная задача с уточненными данными может быть все~таки решена. Не является невозможным решение этой уточненной задачи за полиномиальное время. Единственное, что утверждает теория: для общего случая не существует единого полиномиального алгоритма.
Несколько доказательств эквивалентности задач
В настоящее время получено доказательство эквивалентности обширного семейства задач. Сводимость задач, о которых вначале было известно, что они принадлежат классу NP、к задаче Кука была доказана либо непосредственно, либо косвенно (с помощью транзитивности) с использованием дерева, изображенного на рис. 4.10.
Чтобы доказать, что задача Q является NP-полной, мы каждый раз должны доказывать, что:
Q попадает в класс NP;
Q является А^Р-сложной.
Однако, поскольку Кук доказал, что для всякого QwNP Q сводится к задаче разрешимости логического выражения, остается доказать, что логическая разрешимость сводится к Q. Иначе
Разрешимостьлогического ^ыра^сения
мощностью кмощностью кбпбоба- Покрытиебпбоба- ПокрытиеГамильтоновциклГамильтоновциклРазрешимость системы уравнений 6旧70m чиспав
мощностью к
мощностью к
бпбоба- Покрытие
бпбоба- Покрытие
Гамильтоновцикл
Гамильтоновцикл
Раскраска
Упорядочение
С К~ аштрасраен
Ла/ссинальная К-разрезка
Рис. 4.10. Доказанные отношения сводимости в классе ^P-пoлныx задач.
говоря, необходимо и достаточно построить полиномиальное преобразование, которое позволяет перейти от задачи разрешимости к задаче Q, причем это преобразование должно быть таким, чтобы любому7 решению задачи Q можно было поставить в соответствие некоторое решение задачи разрешимости логического выражения.
Сначала докажем, что задача разрешимости логического выражения—-даже гораздо более простого по форме, чем общий случай, рассматриваемый в теореме Кука,——является тем не менее эквивалентной задаче в общем виде.
Пример 1
Задача разрешимости логического выражения, приведенного к нормальной конъюнктивной форме (НК①),является МР-полной. *
Задача разрешимости логического выражения, приведенного к НК① и имеющего не более трех литералов в одном операторе, является А^Г-полной.
Некоторое выражение является приведенным к НК①,если оно записывается как логическое произведение (операция А) сумм (операция V) элементарных единиц, называемых лите-
ралами; каждый литерал — это либо 么 либо ~1д, где q обозначает логическую переменную. Выражение из условия Н в доказательстве теоремы Кука может быть приведено к НК①.В самом деле, если перейти от переменных, принимающих значение О и 1, к логическим (1 о ИСТИНА, 0^=> ЛОЖЬ), то суммы
2 /(/, е)= 1
могут быть записаны в виде
(V t (/, 0) л (П^(1, 6) V -|^(/, 0))у
(i R /{it *1丿
Первое заключенное в скобки выражение (или оператор) содержит информацию о том, что по крайней мере одна из переменных истинна; во втором операторе утверждается, что в каждой из |/|义(I 〃——1)/2 пар не могут быть истинными обе переменные одновременно.
Таким образом, условия А, В и С приводимы к НК①.Стандартизация условия D достигается благодаря тому, что во всех случаях осуществляется замена символа <^>:
尤<=^У заменяется на (Их V ;/) A (х V Пг/), т. е. на выражение, приведенное к НК①,общая длина которого а в худшем случае удваивается. Условия Е,尸,G приводятся к НКФ с помощью замены типа переменных — с булевых (0 — 1) на логические (ИСТИНА —ЛОЖЬ).
Итак, длина выражения Н была умножена на константу, и поэтому результат Кука сохраняет свою значимость и для вы、 ражеиий, приведенных к НКФ. Следовательно, в дальнейшем мы можем ограничиться рассмотрением множества выражений, приведенных к НКФ.
Среди них первыми очевидными кандидатами в задачи клао са NP являются выражения, содержащие не более трех литералов в одном операторе (так называемые《3~НК①》).
Задача о разрешимости 3-НК① попадает в класс NP, потому что очевидно, что для НДМТ можно установить некоторый алгоритм, число этапов в котором постоянно и равно 3: ТОВТОРЯТЬ ДО ТЕХ ПОР ПОКА существует, необработанный оператор & {&*/(% у, z)}
ВЫБОР [ИСТИНА, ЛОЖЬ] z/<-ВЫБОР [ИСТИНА,ЛОЖЬ] г <-ВЫБОР [ИСТИНА, ЛОЖЬ] ЕСЛИ Ct = ЛОЖЬ ТО неудача КОНЕЦ ЦИКЛА
ЕСЛИ все операторы обработаны ТО успех; КОНЕЦ
Задача разрешимости произвольного логического выражения сводится к задаче разрешимости 3-НКФ.
Приводимое ниже преобразование позволяет перейти от произвольного оператора, включающего , литералов, к трехлитеральному оператору; после введения / ——3 новых переменных у выражение (%i V х2 V ... V xz) принимает вид
(彳1 V %2 V yj a (%3 V ~1 Ui V %) a (招 V 口 У2 V %) А (%5V】北 V
V у) • • • (^i-2 V〕勿一4 V Уе — з) A (^Л-1 V ^1 V ] У"3)・
Как можно легко доказать индукцией по 厶 эти два выражения формально эквивалентны.
Пусть имеется некоторое решение выражения, записанного в иксах, например 尤力=ИСТИНА. Зададим теперь
У! = ИСТИНА для jWM —2,
yj = ЛОЖЬ для / > г0 — 2.
Тогда выражение, записанное в иксах и игреках, тоже имеет значение ИСТИНА.
Наоборот, если существует множество значений у/, придающих этому выражению значение ИСТИНА, значение по крайней мере одного 修 должно быть ИСТИНА, так как значение первого оператора непременно ИСТИНА. Следовательно, мы получаем
ЕСЛИ у, = ЛОЖЬ ТО 占 илн х2 ИСТИНА и тогда КОНЕЦ;
ИНАЧЕ 匂1 = ИСТИНА}
ЕСЛИ 勿—з = ЛОЖЬ ТО 修 нлн ИСТИНА
и тогда КОНЕЦ;
ИНАЧЕ {^ = ИСТИНА,
У,,3 = ЛОЖЬ}
ТО обязательно существует М,1 &,()《£ —4 такое, что = ИСТИНА, 勿。十]=ложь;
следовательно,
I飞+2 = ИСТИНА
КОНЕЦ УСЛОВИЯ
КОНЕЦ УСЛОВИЯ
Так, например, при / = 4 и указанном преобразовании выражение (xi V х2 V хз V х4) приобретает вид (xi V х2 V У1) А 八"з V х4 V ПуО, причем оба выражения эквивалентны.
Поскольку новое выражение содержит ровно,一2 трехлитеральных операторов на каждый оператор, включающий первоначальное число литералов (/ ^ 4), общее число термов в новом выражении менее чем в 3 раза больше исходного.
Итак, мы можем задачу разрешимости произвольного логического выражения свести за полиномиальное время к задаче разрешимости 3-НКФ.
Пример 2. Задача существования /(-клики на произвольном графе является уУР-полной.
{Клика ——подмножество попарно связанных вершин; /С-кли- ка — клика мощностью К}
Эта задача принадлежит классу ^P, поскольку каким бы ни был граф, существует cf (т. е. полиномиальное число) подмножеств, состоящих из К вершин. В каждом из них достаточно проверить существование ребра между двумя произвольными вершинами. Следовательно, нужно выполнить О (К?) тестов.
Задача разрешимости сводится к задаче существования К-клнкн.
Пусть даио произвольное выражение Е, приведенное к НКФ и содержащее К операторов:
& 人 &А с卜,
где Ci = V Xt/, а %订 ——переменная или ее отрицание.
В соответствии с этим выражением построим граф, каждая вершина которого соответствует паре (х, f), где х является литералом /-го оператора G на выражения Е> и дуга которого связывает (х, /) и (у, /) тогда и только тогда, когда
i 耍 j, т, е. этим двум вершинам соответствуют различные операГоры;
尤耍-| У, т. е. эти два литерала не являются отрицанием друг Друга.
Перед тем как продолжить доказательство, изобразим пример такого графа. Если выражение Е имеет вид
(X| V I X2Vl *з) А (修 V X2 V 4)A (х3 V ~[ Х4) Д ( ~] х), результирующий граф имеет девять вершин ——столько же, сколько литералов содержится в Е. Ребро связывает два литерала, входящие в различные операторы, причем значение этих литералов может быть одновременно ИСТИНА (рис. 4.11).
Существование в этом графе К-клнкн соответствует, следовательно, случаю, когда для выражения Е существует множество из К литералов, принадлежащих К различным операторам
Рис. 4.11. Окончательный граф для задачи о /(-клике.
(т. е. в данном случае всем) и способных одновременно принимать значение ИСТИНА.
И наоборот, если выражение разрешимо, т. е. если для переменных существует множество истинностных значений, таких, что каждый оператор принимает значение ИСТИНА, то в каждом из К операторов существует по крайней мере один литерал, имеющий значение ИСТИНА. По построению этому множеству литералов в нашем графе соответствует множество из К принадлежащих к разным операторам и взаимно не исключающих друг друга — а в силу этого связанных друг с другом ——вершин, т. е. К-клнка.
В рассматриваемом случае К = 4, н мы получаем клику (ПхзС], х2С2, П%4Са, ~lxjС4) или же клику (~]尤2, Ci, %4。2, ХзС3, 力%1。4), поскольку (~lx]Ci) присутствует всегда.
Пример 3. Задача о существовании решения системы уравнения в целых числах (УЦЧ) является Л^Р-полной.
Эта задача относится к классу NP、поскольку она может включать лишь конечное число различных выборов (число значений переменных).
Задача разрешимости логического выражения сводится к задаче УЦЧ с помощью полиномиальной трансформации.
Действительно, построим УЦЧ вида Ах = Ь с п булевыми неизвестными Xj, находящимися во взаимно однозначном соответствии с неизвестными из исходного выражения Е(Х/ = 1 в УЦЧ -^=> Xi = ИСТИНА в Е) с К условиями, если Е содержит К операторов; Пусть для элементов а,; из Л (1 & i&K, 1 &
WjWn):
в том и только том случае, если %/ является литералом &;
@订= ——1 в том и только том случае, если И х; является литералом Cr
О в остальных случаях.
Отсюда следует, что i-му условию, накладываемому на УЦЧ, соответствует i-й оператор, если в качестве второго члена bi этого условия мы возьмем
6j = 1 — I {//~1 ху ——литерал из CJ |.
Очевидно, что С/ будет удовлетворено в том и только в том случае, когда по крайней мере один «положительный» литерал (соответствующий значению Q” = 1) имеет значение ИСТИНА или когда по крайней мере один «отрицательный» литерал (т. е. Qij = —1) имеет значение ЛОЖЬ.
Это двойное условие записывается также в УЦЧ:
X吃——X勺)九,
где = {//ху — литерал из CJ,
J厂= {〃[%/ —— литерал из Сг}.
В соответствии с определением bi последнее неравенство можно также записать следующим образом:
X*, + |ji[》l+E%/・小
Следовательно,, если Е удовлетворено, то по крайней мере один X/ из Jj равен 1 или же один %/ из /Г равен 0 для любого i, 1 W i 0/. В самом деле, если %九=1, где /0 входит в Л, то справедливо выражение (1), поскольку во всех случаях
/^- ^1 меньше, чем 17rl.
В другом случае, когда х/0 = 0, где /0 входит в /ь это предполагает в первую очередь, что |/『|》1; так как сумма %/ для j w厅является положительной, неравенство (1) выполнено, поскольку
厅1 — £ Е,•
Таким образом, с поцощью указанного полиномиального преобразования всякому решёнйю УЦЧ можно пйстйвить в соответствие некоторое решение задачи разрешимости логического выражения.
В частности, для того же выражения £, которое рассматривалось выше при установлении отношения эквивалентности классов задач Е = (/ V 也 V #з)八(巧 V х2 V х4) А (/ V V 口 %4)Л (~1 Xi),определяемая выше система уравнений в целых числах имеет вид
%] —%2 —/》一1 {оператор &},
修 + %2 + /》1 {оператор С2},
%з —忆>0 {оператор С3},
—勺>0 (оператор С4}.
Очевидное решение этой УЦЧ (из-за {С4}) является Xi — 0. Сумма {CJ + ^Ca} в этом случае дает х4 — х3 > 0 — условие, из которого при объединении с {С3} получаем х4 — %з = 0・ После -этого имеем
-Q -x3》一1 {e}
%2 + %4》1(С*2).
Отсюда в зависимости от значения ха мы получаем два решения:
(0, 1, 0, 0) и (0, 0, I, I).
Очевидно, что оии могут быть в свою очередь поставлены в соответствие двум кликам мощностью 4 из предыдущей задачи.
Глава 5
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА
Методы перебора традиционно применяются при решений большинства задач. Им посвящена большая иастп данной главы, а также последующие гл. 6 и 7.
Решение задач с помощью перебора
Класс комбинаторных задач
Сущность любой комбинаторной задачи можно сформулировать следующим образом:
«Найти на множестве X элемент х, удовлетворяющий совокупности условий ^(x), в предположении, что пространство поиска X содержит некоторое конечное число различных точек».
Подобные ситуации возникают всегда, когда мы имеем дело с дискретными по природе элементами: логические головоломки; проблемы пополнения запасов на складе; выбор решения из множества возможных; выбор места расположения нового завода; прохождение пути по графу; доказательство теорем. Во всех этих случаях пространство поиска X является конечным и дискретным. Последнее означает, что все точки X отделены друг от друга. Именно при решении таких задач могут использоваться методы перебора.
Метод полного перебора
Когда требуется найти элемент, принадлежащий некоторому конечному множеству, мы можем перебирать все элементы, пока не найдем подходящий. Этот метод надежен, прост и прекрасно работает, если мощность множества не превышает 103 Для ручного подсчета или 109 при подсчете на машине. Схема действий следующая:
Взять первый еще не рассмотренный элемент %о из множества X.
Проверить совокупность условий ^(xo).
Если какое-либо условие не выполнено, начать сначала.
Если выполнены все условия, х0 является решением (если нужны все решения, вернуться к п. 1).
Такой метод явного перебора можно легко усовершенствовать: вместо рассмотрения всего элемента х0 можно ограничиться некоторым его фрагментом, достаточным для проверки выполнения/невыполнения условий ^(x). В 1891 г. Э. Люка
Рис. 5.1. Прохождение лабиринта.
в «Математических досугах» описал метод решения задач о прохождении лабиринта, представленного на рис. 5.1.
Метод Люка состоит в следующем:
Из клетки, в которой мы находимся, надо идти по еще не исследованному пути.
Если все пути, ведущие из этой клетки, уже исследованы, надо вернуться на один шаг назад по тому пути, которым мы пришли в данную точку.
Итак, вместо порождения всех подмножеств данного множества X (X ——клетки лабиринта) мы рассматриваем лишь подмножества, образующие допустимые пути, и останавливаемся, когда встречаем тупик. Систематизация этого метода привела к появлению наиболее общей схемы решения задач, комбинаторных по природе: речь идет об имплицитном переборе. Наиболее благоприятным случаем перебора является случай, когда мы можем определить градиент.
52 Градиентные методы
Градиентные методы часто используются при решении конкретных задач: суть состоит в том, что для скорейшего достижения вершины надо продвигаться по самому крутому склону. Если мы на автомобиле хотим пересечь город с севера на юг, мы стараемся сохранить это направление как можно дольше, а когда условия движения заставляют нас отклониться от него, мы стремимся сделать это отклонение как можно меньшим. Стратегия градиента, или «подъема в гору», заключается в попытке достичь главного оптимума через последовательность ло-
кальных оптимумов (рис. 5.2). Как показывает опыт, эта стратегия вполне удачна, хотя, когда поисковое пространство не является выпуклым, она становится малоэффективной.
Каждой конкретной ситуации ставится в соответствие некоторая числовая оценка, достигающая экстремума в той вершине, к которой мы стремимся, и на каждом шаге выбирается
Рис. 5 2. Метод градиента.Рис. 5 2. Метод градиента.Выпуклое пространство(Vk) К € Г ,1Э (侬)Х€ Е, (VU? у €У 【кн + (1 - к)уэ € ЕВыпуклое пространство(Vk) К € Г ,1Э (侬)Х€ Е, (VU? у €У 【кн + (1 - к)уэ € Е8знутое пространсЕбо8знутое пространсЕбо
Рис. 5 2. Метод градиента.
Рис. 5 2. Метод градиента.
Выпуклое пространство
(Vk) К € Г ,1Э (侬)Х€ Е, (VU? у €У 【кн + (1 - к)уэ € Е
Выпуклое пространство
(Vk) К € Г ,1Э (侬)Х€ Е, (VU? у €У 【кн + (1 - к)уэ € Е
8знутое пространсЕбо
8знутое пространсЕбо
то действие, которое дает максимальное приращение оценочной функции по сравнению с текущим состоянием. К градиентным методам относятся симплекс-метод в линейном программировании (разд. 5.3), Л*-процедура (разд. 5.4), методы последовательных приближений в численном анализе, минимаксные
Рис 5.3. Задача о стрелках.
методы и альфа-бета процедура (разд. 6.2), динамическое программирование (разд. 5.9), метод ветвей и границ, метод разделения и оценки (разд. 5.4).
Пример 1. Пусть дано пять стрелок, находящихся в положении So; нужно перевести их в положение Sb, причем разрешены только такие действия, при которых одновременно переворачиваются две соседние стрелки (рис. 5.3).
Пять разрешенных действий a, b, с, d н с — повороты стрелок (1,2), (2,3), (3,4), (4,5), (5,6). Поскольку для любого действия а из этого множества а2 означает возвращение к исходному положению, достаточно рассматривать лишь последовательности элементарных действий. Если в качестве оценочной
функции ситуации S мы решим выбрать функцию ^(S)^ означающую число стрелок, находящихся в правильном положении, то мы получим: f(So) = /(000101) = 2 и f(SB) = /(111111) = 6. Действие а позволяет перейти от So к Si = (110101), где f(ki) = =4. Действие d позволяет перейти от Si к 5г = (110011), где f($2)= 4, и, наконец, действие с позволяет достичь цели ——положения Sg (очевидно, что йорядбк действий не имеет значения). Отметим, что на втором шаге мы были вынуждены пройти
Рис. 5 4. Примеры неудачного применения метода градиента
через уровень, на котором значение функции f(S) оставалось постоянным.
Однако наш маршрут тесно связан с характером оценочной функции, и поэтому, если бы мы взяли в качестве f(S) функцию, выражающую максимальное расстояние между двумя неверно расположенными стрелками, этот маршрут был бы иным, поскольку тогда f(So) = 4, f(S)) = 2, f(&)=L
Метод градиента не гарантирует получения решения (за исключением случая, когда пространство отображения f(S) является выпуклым), так как могут возникнуть ловушки трех типов: второстепенные вершины, гребни и плато (рис. 5.4).
В последнем случае, который часто встречается в различных задачах, при подходе к решению в самом конце обнаруживается огромный срез, по которому неизвестно, как продвигаться дальше, и из-за этого приходится пересматривать саму оценочную функцию. Но для случаев, когда пространство f(S) является выпуклым, при удачном выборе оценочной функции решение достигается быстро и легко. Например, это верно для алгоритмов, рассмотренных в разд. 4.1, где f(S)——минимальное расстояние до исходной точки (в задаче хюиска нйикратчайшего пути) и f(S) — число сортируемых элементов (в задаче о сортировке).
Линейное программирование
Рассмотрим систему неравенств внпа АХ ^ Ь. где Хе R% А ——матрица размерностью тХ 九 С действительными элементами, X — вектор-столбец размерностью (1 X ^)» состоящий из неизвестных действительных чисел, а 6 — заданная вектор-строка размерностью (mXl). В общем случае /и < п и система является неопределенной. Решения находятся по значениям некоторой функции дохода, т. е. по специальному фактору, значение которого должно быть максимальным.
Пример. Мастерская по прризврдству нестандартной мебели получила одновременно два заказа. Для изготовления одного комплекта первого типа нужно одиннадцать заготовок и 3 ч работы, для второго —4 заготовки и 5 ч работы. В распоряжении мастера имеется 46 заготовок и 32 ч времени; кроме того, он знает, что в первом заказе он получит 14 фр. за каждую вещь, а во втором — только 7 фр. Как он должен организовать свою работу?
Если X] и Хг — число предметов мебели, сделанных по каждому нз заказов, мы получаем
11修 + 4%2《46 (условие по фурнитуре),
3*1+ 5*2《32 (условие по времени),
Zw 14%1 + 7*2 (условие максимума).
Пусть имеется некоторая система линейных неравенств типа АХ W Ь при МАХ[С・Х]. Поскольку равенствами манипулировать Проще, чем неравенствами, обычно вводят вспомогательные переменные у、и у^ называемые невязками» с помощью которых нашу систему можно записать в следующем виде:
11修+ 4/ + 协=46, Зх] + 5x2 + %==== 32, MAX[14*] + 7x21,
или, если использоватьили, если использоватьматричную запись,матричную запись,-11 4МАХ 3 5.14 7-11 4МАХ 3 5.14 71 00 10 0.1 00 10 0.出弘一g2 -出弘一g2 -46-132 0 .46-132 0 .
или, если использовать
или, если использовать
матричную запись,
матричную запись,
-11 4
МАХ 3 5
.14 7
-11 4
МАХ 3 5
.14 7
1 0
0 1
0 0.
1 0
0 1
0 0.
出
弘
一g2 -
出
弘
一g2 -
46-1
32 0 .
46-1
32 0 .
Идея состоит в том, чтобы, исходя из очевидного решения ^1 — 0, х2 ==0, yt = 46,勿=32, улучшитьА его за счет максимально возможного увеличения значения той переменной, которая дает наибольщее приращение функции дохода Z.
Используемый нами градиент в данном случае задается непосредственно последней строкой, и очевидно, что на первом ^тапе йаиболёе «доходной» является переменная 修.Итак, запишем
勺=46/11 —(4/11)4 — (1/11)协
или, в матричной форме,
-14/11О 5- 12/11_0 7-56/11-14/11О 5- 12/11_0 7-56/111/11-3/11— 14/111/11-3/11— 14/11О -11 * X =О ■О -11 * X =О ■46/1132 - (3 • 46)/11—644/1146/1132 - (3 • 46)/11—644/11
-14/11
О 5- 12/11
_0 7-56/11
-14/11
О 5- 12/11
_0 7-56/11
1/11
-3/11
— 14/11
1/11
-3/11
— 14/11
О -1
1 * X =
О ■
О -1
1 * X =
О ■
46/11
32 - (3 • 46)/11
—644/11
46/11
32 - (3 • 46)/11
—644/11
Следовательно, функция дохода Z равна 644/11, когда х{ стремится к своему максимальному значению, т. е. 46/11, хг остается равным 0, а 力=32 — (3<46)/11 =214/11. На самом деле мн осуществили обычное перемещение вдоль оси хь которое показывает, что Z может продолжать увеличиваться — на этот раз при возрастании хг, чей градиент составляет 7 ——56/11 = 21/11.
Теперь коэффициент при хг во втором уравнении равен 5 — —12/11, или 43/11, и мы получаем
Х2 = 214/43 + (3/43) у,- (1/43)弘.
В матричной форме имеем
г 1 0 1/11 + 4-3/11 -43-4/43 л
О 1 -3/4311/43*Х』
0 —14/11 +3-21/11 -43 — 21 -43_
6/11 - 4-214/11 -43 л
=214/43^
14-46/11 —21 -214/11 -43 -
Это новое преобразование и вытекающие из него линейные комбинации показывают, что все градиенты, все относительные выигрыши в Z (последняя строчка предыдущей матрицы) отрицательны или равны нулю. Таким образом, оптимум достигнут; он составляет
Z* = MAX Z= 14 • 46/11 + 21 • 214/11 • 43 = 68,033
при 尤I = 102/43 = 2,371 и х2 = 214/43 = 4,977.
В двумерном пространстве Xi X ^2 мо/но непосредственно изобразить пространство поиска и интерпретацию этого градиентного алгоритму (разработанного Данцигом (1959) и известного как симплекё-метод (рис. 5.5)).
Выйдя из начала координат (точка 0:尤上=尤2 = 0), мы следуем по линии самого крутого склона (в соответствии с выражением Z 三 14х] + 7%2)и попадаем в точку В, а затем в точку 尸2, которая является допустимой, удовлетворяет уравнениям АХ W 匕 н находится на максимальном расстоянии от начала прямой Z.
Система уравнений имеет решение только в действительных числах. Приемлемое для мастера решение получается только
Рис. 5 5. Симплекс-метод в линейном программировании.
в том случае, если заказы первого и второго типов повторяются достаточно часто, чтобы разумно округлять получаемые количества предметов мебели до соответствующих целых:尤1=2 к х2 = 5. В противном случае задача, в которой 匕 могут быть только целыми числами, существенно отличается от предыдущей, поскольку пррстрйнство поиска не является в этом случае непрерывным и Вряд ли может быть выпуклым. Принципиально другие методы, используемые для задач последнего типа, рассмотрены в гл. 8.
В матричной форме симплекс-метод легко может быть распространен на случай произвольного числа переменных и уравнений. Процедура сводится к последовательности линейных комбинаций, которые выбираются по результатам проверки значений градиентов. Когда они все становятся отрицательными, процедура завершается.
Формализация симпл^кс-алгоритма
Симплекс-алгоритм, сложность которого не является полиномиальной, использует несколько проста свойств, выполняющихся для линейных задач.
Неравенства aiXi + а2^2 + ... + 0门%修 W b определяют ограниченные гиперплоскостями замкнутые выпуклые подпространства на
На пересечении некоторого конечного числа выпуклых подпространств образуется выпуклое тело, которое мы будем называть полиэдром, если оно ограничено, и политопом ——в противном случае.
Любая точка некоторого полиэдра может быть описана как линейная комбинация вершин, или точек-экстремумов, ко. торые являются пересечениями исходных гиперплоскостей. Число этих точек конечно и не превышает С„ в R" (если мы имеем m гиперплоскостей (неравенств)).
Оптимум не может быть достигнут в точке, расположенной строго внутри политопа (см определение выше), потому что тогда мы могли бы с помощью линейной комбинации построить на границе полиэдра точку, в которой функция дохода Z принимала бы более высокое значение. Если задача не вырождена, т. е. если ранг (детерминант) матрицы А не равен т, то значение Z может быть улучшено за счет продвижения по гиперребру до следующей вершины.
Мы будем называть базовой квадратной матрицей матрицы Л любое подмножество индексов из множества [1, т], которому соответствует базовая квадратная матрица В, выделенная из Д и имеющая ранг《 Сказанное выше эквивалентно утверждению- «Оптимум системы линейных неравенств 力尤 V 6 может быть достигнут при решении уравнения с базовой квадратной матрицей матрицы Л>. Если матрица Л разбивается на матрицы В и ^ и система записывается в виде
Вхр + N Xn з==瓦
то базовое решение определяется единственным способом: Kn === О и В尤в Ь.
Симплекс-алгоритм работает только с базовыми квадратными матрицами, имеющими решение (т. е. с такими, в которых %н》0), и переходит от одйой вершины к другой, используя метрд градиента. На каждом этапе из базовой квадратной матрицы удаляется один индекс: одна из переменных обращается в нуЛь, а другая попадает в базовую квадратную матрицу, т. е. произвольная переменная принимает ненулевое значение. Сходимость обеспечивается конечностью числа вершин политопа.
54 Градиентные методы в теории графов
Иногда метод градиента позволяет получить вполне определенное решение《в лоб». Рассмотрим пример такой задачи из
области теории графов. В ней моделируются некоторые конкретные ситуации: проектирование телекоммуникационных или вычислительных сетей, обработка анкет, автоматическая классификация. Задача формулируется следующим образом:
Задан связный граф со стоимостями дуг G=(X, U). Требуется построить частичное дерево 4=(Х, У*), имеющее минимальную общую стоимость.
Дерево ——это связный ациклическийэграф А = (X, V); по формуле Эйлера он содержит \Х\— 1 ребер.
Если использовать метод градиента, по которому нужно рао сматривать дуги графа G в порядке возрастания стоимостей, то получается первый алгоритм рещения этой задачи, предложенный Крускалем в 1956 г:
Алгоритм построения минимального дерева
—Расположить ребра графа G в порядке возрастания стоимостей;
—До тех пор пока существуют необработанные ребра:
[
ЕСЛИ первое из них не образуют цикла с V
ТО добавить его к V.
Конец.
Замечание. Данный алгоритм содержит \Х\ этапов.
4.1. Доказательство алгоритма Крускаля
Обозначим стоимость дерева (X, У), полученную в результате последней итерации описанного выше алгоритма, через L. Докажем, что не существует дерева, имеющего стоимость меньше L В самом деле, пусть среди множества деревьев имеется дерево (X, V*), стоимость которого L* является наименьшей. Деревья (X 7*) и (X, V) имеют по (|Х| — 1) ребер каждое. Пусть ребро и, (^ ^ I ^п — 1) — первое из числа ребер, входящих в V и не входящих в У* (если такого ребра не существует, то результат доказан). Добавление у( в И* должно привести к образованию цикла. На этом цикле непременно существует ребро и。,которое не входит в,Но тогда граф (X, V* + vt — Uq) также является деревом, поскольку содержит (п——1) ребер и не имеет циклов При этом добавление 口。в граф (X, {vi, г2,… • •, S—i}) не приводит к .образованию ц^кла, поскольку этот граф является поддеревом дерева V*, а это означает, что стоимость (и0) > стоимость (s). (Здесь мы без потери общности предполагаем, что все стоимости различны.)
Из этого мн, наконец, получаем, что стоимость дерева (X, V* + Vi — s), равная L* + стоимость (内)一стоимость (и0)» меньше, чем предположительно оптимальная стоимость А*, что противоречит исходному предположению.
Тип алгоритма, выбирающий объекты в том порядке, в котором они задаются оценочной функцией, получил название
линий элек-линий элек-системысистемыРис. 5.6. Граф тропередач.Рис. 5.6. Граф тропередач.《жадного》. Он приводит к успеху во всех тех случаях, когда задача может быть сведена к определению пересечения двух семейств, принадлежащих к не зависящим друг от друга частям одного и того же множества, называемым мат- роидами (Gondran и Minoux, 1979).
линий элек-
линий элек-
системы
системы
Рис. 5.6. Граф тропередач.
Рис. 5.6. Граф тропередач.
Пример. Во французской системе высоковольтных линий электропередач обнаружить дерево, имеющее минимальную сумму расстояний, если все исходные данные представлены в графе, изображен-
« ном на рис. 56
Ребра расположены в порядке возрастания следующим образом: Л С,尸G, //, CD, G/, DG, ВС, CF, FI, HI, АВ, BE, BF, СИ. Алгоритм Крускаля позволяет последовательно сохранять ребра 4С, FG, £F, Е〃,",CD и GJ, и ребро AD исключается, поскольку оно образовало бы цикл с уже включенными в дерево ребрами АС и CD. Затем добавляются ребра DG и ВС. Как можно заметить, все вершины уже достигнуты и минимальное дерево получено.
Распространение данного алгоритма на случай обобщенных поисковых задач приводит нас в область искусственного интеллекта, к методам, получившим название «эвристического поиска».
Эвристический поиск
Широкий класс задач можно разрешить следующим способом:
Этап 1. Выбрать из множества возможных действий некоторое действие.
Этап 2. Осуществить выбранное действие и изменить текущую ситуацию.
Этап 3. Оценить ситуацию.
Этап 4. Отбросить бесполезные ситуации.
Этап 5. Если достигнута конечная ситуация ——конец; если нет, выбрать новую исходную ситуацию и начать сначала.
До сих пор для этапов «принятия решений» (этапы 1, 3 и 5) мы использовали одну и ту же численную функцию. Теперь уточним эту схему. В табл. 5.1 перечислены общие идеи и стратегии поиска, которые используются человеком и/или существующими программами.
Таблица 5」.Методы эвристического поиска
Этап 1. Выбор действия
с учетом соответствия цели:
——уменьшение некоторого нежелательного различия,
——непосредственное решение той или иной подзадачи;
с учетом опыта:
—повторение прошлого,
——обнаружение ключевого действия;
с учетом необходимых условий:
—решение, обусловленное анализом ситуации,
——исключение неосуществимого варианта;
с учетом фактора случайности:
—предпочтение отдается разнообразию.
Этап 3. Оценка ситуации
по аналогии:
——известна сама задача,
——известна подзадача;
по величине расстояния до цели:
—— расстояние между двумя ситуациями,
—количество усилий, затрачиваемых на поиск;
по математическому критерию:
——составление перечня необходимых и/или достаточных для получения данного решения характеристик,
—численная оценочная функция,
——верхние и нижние границы,
—сумма стоимостей, выбранных подходящим способом;
по ожидаемому выигрышу (критерий, связанный с прошлым опытом):
——простота ситуации,
—коэффициент расширения поиска,
——любой другой критерий (сложность задачи, затрачиваемое на ее решение время и т. д.).
Этап 5. Выбор следующего шага
двигаться только вперед:
——систематическое развитие последней порожденной ситуации;
выполнять все действия параллельно:
—поочередное выполнение всех действий;
в качестве исходной выбирать самую многообещающую ситуацию:
—в отношении оценочной функции,
——в отношении незначительного числа входящих в нее действий;
идти на компромисс между:
——глубиной поиска,
—оценкой ситуации.
Если в соответствии с табл. 5;1 в некоторой задаче на, обнаружение дерева с минимальным весом мы решаем на каждом шаге добавлять в. искомое дерево по одному ребру, на первом этапе выбрать ребро с минимальной стоимостью, а на пятом этапе вернуться по дереву, следуя по пути его формирования, то тогда мы имеем дело с доказанным выше алгоритмом Кру- скаля. Однако возможны и другие варианты этого алгоритма, которые, как можно доказать, также приводят к решению: в процессе построения дерева (X, V) мы можем как прибавлять ребра, так и отбрасывать их; на первом этапе можно отказаться от сортировки ребер и взять первое попавшееся; на третьем этапе, если в V имеется цикл, мы исключаем из X принадлежащее этому циклу ребро, обладающее наибольшей стоимостью; на пятом этапе мы исходим из текущего дерева (X, V). Если учесть свойство связности, получим другие варианты. Даже если все эти алгоритмы сходятся, они не обязательно предполагают одно и то же число элементарных операций. Первый из них имеет сложность порядка 0〈九3); второй (без сортировки) фактически имеет такую же сложность; лучший из известных алгоритмов обладает сложностью О (л2).
Симплекс-алгоритм также попадает в класс методов, определяемых по табл. 5.1: действие соответствует включению в базовую квадратную матрицу одного индекса и исключению из нее другого. На первом этапе мы выбираем индекс наибольшего градиента (тогда на втором этапе, чтобы сохранить принадлежащее полиэдру решение, непременно появляется выходной индекс); на пятом этапе мы снова исходим из текущего решения.
Отметим, что в общем случае при таком типе поиска нет никакой гарантии, что на пятом этапе нс возникнет снова ситуация, уже рассмотренная на одном из предыдущих шагов и данный алгоритм даст эффективное решение, если оно существует. Оба замечания учитываются в более изысканной версии общего метода градиента, разработанной Хартом, Нильсоном и Рафаэлем (1968 и 1972) и известной под названием «алгоритм А*》.
Алгоритм А*
Всякой ситуации S, полученной из исходной ситуации в результате определенной последовательности действий, придается численная оценка
f(S) = g(S) + h(S),
где g(S)——реальная текущая стоимость ситуации S,无(5)——эвристическая функция, которая оценивает стоимость наилучщей
последовательности действий, начинающейсй с S и заканчивающейся решением. Следовательно* /(3) является мерой стоимости решений, «подчиненных» ситуации S, т. е. решений, включающих то же подмножество исходных действий, что и S. Так, например, когда каждому действию соответствует элементарная стоимость C(Si, S2, а), представляющая собой стоимость перехода из Si в S2 c помощью действия а, подсчитать функцию g(S) очень просто: она равна сумме стоимостей действий, котоа рые надо выполнить, чтобы дойти до данной точки от исходной ситуации S. Так как стоимости предполагаются положительными, функция g(S) будет строго аддитивной.
Алгоритм 4*
Этап 0. Создать поисковый граф R = (E,4), в котором
SoV—E {исходная ситуация}
f (50) *- О {в дальнейшем £ разделяется на два подмножества ситуаций;。(открытые) и 尸(закрытые)}
。*~S();
尸—0.
ДЕЛАТЬ ДО ТЕХ ПОР ПОКА О ^= 0:
Этап 1. На множестве О выбрать ситуацию S,
такую, что f(S) минимально:
О*-О —S;戶—F + S
ЕСЛИ S является решением, ТО конец.
Этап 2. ЕСЛИ S не является решением, ТО развёртывать ситуацию S путем построения ситуаций S( (O&i&zzs), полученных из S путем выполнения возможных действий.
Этап 3. Для каждой порожденной ситуации подсчитать f(S0: f^^giS^ + h^) {при 而S)忘"(S,)}
Этап 4. Включить в О не входящие ни в О, ни в Е ситуации вместе с соответствующими значениями Оценочной функции; для тех S,, которые уже входят в О Или 凡 установить:
f (S)«- min (f (Sj — старое, f (Sj — новое);
в случае принадлежности к F:
сделать F — F — Sr 0^-0 ^Sh
КОНЕЦ ЦИКЛА "до тех пор гюк也"
КОНЕЦ Д*
В алгоритме 4* в отношении функции й предъявляется следующее основное свойство: если E*(S) является минимальной стоимостью всей последовательности действий, позволяющей получить решение, исходя из ситуации S, то h(S) является нижней границей /i*(S); кроме того» h(S) должна быть положительной. Таким образом,
0<A(S)<A*(S).
Следовательно, функция f(S) является оценочной для оптимальной функции f*(S), определяемой выражением
f(S) = g(5) + A-(S),
где f* (S)——наилучшая стоимость решений, проходящих через S, g*(S)——наилучшая стоимость пути от So до S,无*(5)—наилучшая стоимость пути от S до цели.
Теорема. Алгоритм А* приводит к цели за конечное число шагов, если существует конечная последовательность действий, которая ведет от исходной ситуации к решению.
Док азательство. Сначала заметим, что если число возможных действий для каждой ситуации всегда конечно и число самих ситуаций тоже конечно, то алгоритм Л* заведомо сходится. В самом деле, ведь каждая итерация вычеркивает из множества О одну вершину и добавляет в него некоторое конечное число новых; при.этом поисковый граф останется конечным, и его проверка потребует лишь конечного числа итераций.
Итак, допустим, что поисковый граф бесконечен и условия нашей теоремы выполняются. Будем рассуждать от противного и предположим, что алгоритм Л* работает неограниченно долго. Это возможно только при условии, что само множество О возрастает бесконечно. Покажем, что в этом случае наименьшее из значений f(S) также оказалось бы бесконечным и тогда, следовательно, не могло бы существовать решения за конечное число шагов. Пусть для всякой ситуации S u*(S)——минимальное число действий, необходимых для того, чтобы попасть из So в S (алгоритм Л* не обязательно достигает стоимости u*(S), и поэтому она остается неизвестной). Несмотря на это, поскольку любая дуга имеет строго положительную стоимость, для оптимальной стоимости g*(S) мы получаем
g*(S)>e・u*(S).
Тем самым реальное значение g(S), вычисляемое алгоритмом Л*, удовлетворяет неравенству
g(S)》g*(S)>w*(S).
Поскольку эвристическая функция Л(5) ^ 0, из этого также вытекает, что
f(S)^g(S)>^(S).
Таким образом, если u*(S)f оо, f(S) также становится бесконечным и никакой конечной последовательности действий не существует.
Докажем теперь, что на каждом этапе работы алгоритма вплоть до его остановки в множестве О обязательно присутствует вершина S2, такая, что
f(S2)《f*(S。).
Пусть существует конечная последовательность действий и ситуаций, ведущая от So к цели. Тогда S2 ——первая из входящих в эту последовательность ситуаций, которая принадлежит также множеству О. Такая вершина S2 существует до тех пор, пока алгоритм Д* не завершит работу. Как и для любой другой ситуации, f(S2) = g(S2) + h(S2), но здесь g(S?) = ^*(S2) (так как по определению S2 все предыдущие ситуации принадлежат 尸). Кроме того, по построению алгоритма Л* выполняется неравенство Л(5г) ^ Л*(5г). В конце концов мы получаем
/ (S2) < g* (S2) + %* (S", т. е. /(S2)忘 f* (S0.
В частности, если исходная последовательность была оптимальной, то
Итак, предположение о бесконечности f и тем самым о бесконечности работы алгоритма А* оказалось противоречивым (при условии, что существует решение с конечным расстоянием даже для локально бесконечных графов). Кроме того, найденное решение обладает оптимальной стоимостью. Если бы алгоритм Д* остановился в узле S3, для которого f(S3) > f*(So), то в соответствии с приведенным выше доказательством получилось бы, что существует узел S2, такой, что f (S2) W f*(So), и, следовательно, на этапе 1 был бы выбран не узел S3, а узел 5?・ В самом деле, любой узел S, полученный в результате работы алгоритма Л* имеет стоимость f(S), которая не превышает 产(&)), поскольку в противном случае S либо был бы узлом-решением, либо не был бы выбран.
Конечно, значения функции f должны быть как можно ближе к значениям f*(S0)j оставаясь при этом меньше их. Алгоритм будет тем эффективнее, чем больше значение /i(S). Действительно, легко доказать, что если /i2(S) >7i;(S), то любая вершина, полученная с помощью функции Лг, может быть получена
и с помощью 加.Если функция й обладает свойством монотонности по отношению к локальным стоимостям, т. е. если h^^hiS^ + C^ S2, %
мы можем доказать, что для каждой полученной вершины алгоритм А* уже построил оптимальную последовательность, заканчивающуюся в этой вершине.
При этом последовательность значений функции /(S) для полученных вершин может быть только неубывающей, что обеспечивает быструю сходимость алгоритма.
Последний случай является вариантом алгоритма Моора — Дейкстры (1957) поиска кратчайшего пути на графе (разд. 4.2). Несомненно, большим недостатком этого алгоритма является его поведение при отсутствии решения поставленной задачи.
Пример применения алгоритма А*
Рассмотрим знаменитую головоломку, которую изобрел гениальный Сэм Лойд,——игру в 8.
На 9-клеточном поле перейти от конфигурации
283123
So = 164к конфигурацииS& = 8□4
7□5765
(Символ □ обозначает пустую клетку: за один ход на ее место можно поставить фишку, стоящую в любой клетке, соседней по горизонтали или вертикали.) Число ходов должно быть минимальным.
.Выберем в качестве оценочных функций: g(S)—число ходов от So до Sb и /i(S)——число фишек, расположенных не на своих местах.
Итак, мы имеем
g(S) &g*(S) (по построению g),
h (S) ^ Л* (S) (по условию задачи).
Монотонность ft ничем не гарантирована. На рис, 57 представлено поисковое дерево, полученное с помощью алгоритма Л*, причем f(S) = g(S)+/i(S); справа от каждой ситуации приводится пара значений — g(S) и й(5).
Было предложено несколько вариантов этого алгоритма. Так, наиболее общая форма функции /(S) была определена в работе (Pohl, 1970):'
f(S) = (I—a)g ⑹+ M(S), где а ——действительная константа, выбираемая на отрезке от 0 до 1. Таким образом здесь указывается определенный баланс
2 8 316 42 8 316 4[2.4][2.4]44С1.5]С1.5]22(5.0](5.0]Рис. 5.7. Алгоритм 力* для игры в 8: дерево поиска.Рис. 5.7. Алгоритм 力* для игры в 8: дерево поиска.[3.3][3.3]С3.2]С3.2]
2 8 3
16 4
2 8 3
16 4
[2.4]
[2.4]
4
4
С1.5]
С1.5]
2
2
(5.0]
(5.0]
Рис. 5.7. Алгоритм 力* для игры в 8: дерево поиска.
Рис. 5.7. Алгоритм 力* для игры в 8: дерево поиска.
[3.3]
[3.3]
С3.2]
С3.2]
в оценке между бесспорной составляющей g(S) и составляющей эвристической 无(S). Алгоритму А* соответствует значенйе а = 1 /2. Случай а = 1 — чисто градиентный метод. Другой крайний случай — а = 0 — ведет к методу полного перебора.
В действительности коэффициент а не обязательно должен оставаться постоянным в течение всего поиска: можно уменьшать его значение по мере нашего продвижения вперед, когда эвристическая оценка теряет свою значимость; для некоторой конкретной задачи наилучшие значения а могут быть приняты апостериори для минимизации числа получаемых ситуаций с помощью определенной программы. Наконец, поиск может идти в двух направлениях: вперед от исходной ситуации, а также одновременно от целевой ситуации через инверсию возможных действий; поиск останавливается, когда одна и та же ситуация встречается в обоих поисковых графах.
Критические замечания. Алгоритм Л*, как и другие градиентные алгоритмы, рассмотренные в данной главе, является строго численным, поэтому исключается формальный анализ каждой ситуации. Алгоритм основан на оценке стоимости некоторого решения. Но существует большое чиЬло задач, для которых эта оценка не имеет смысла, потому что, например, в них необходимо найти единственное осуществимое решение. Он не
дает способа подсчета интеграла, решения системы уравнений или установления медицинского диагноза. Нельзя заранее обнаружить тупики и петли. Так, если в игре в 8 (рис. 5.7) заменить верхний ряд исходной ситуации на (8 2 3), то чтобы доказать, что эта задача не имеет решения, алгоритм Л* должен будет исследовать абсолютно все возможные случаи и поэтому оказывается бесполезным. Следовательно, рассматриваемый тип алгоритма может использоваться только при решении задач, возникающих в малоизвестных пространствах, т. е. там, где мало информации (плохое знание контекста, недостаток опыта, отсутствие формальных аргументов).
Задача о взвешивании
На обычных рычажных весах найти из двенадцати шариков один, не совпадающий по весу ни с одним из одиннадцати оставшихся (мы не знаем, существует ли такой шарик и является ли он легче или тяжелее). Число взвешиваний должно быть минимальным.
Эта задача довольно известна, но нас сейчас интересует, каким именно образом приступить к ее решению. Конечно, мы можем сравнивать шарики на весах попарно. Поскольку от других отличается не более чем один шарик, мы может быть уверены в том, что получим ответ не более чем за 12 взвешиваний (11 сравнений шарика № 1 со всеми остальными +1 определение характера различия). Если, наоборот, мы решим начать со взвешивания "шесть против шестип, то мы, очевидно, ничего не узнаем. Таким образом, первый вопрос, который возникает в данной ситуации, как определить число шариков в каждой чашке весов при первом взвешивании (естественно, рассматриваются только взвешивания равного числа шариков).
Ответ на этот вопрос можно получить, определив оценочную функцию и ее градиент. Каждое взвешивание должно увеличивать имеющуюся информацию о множестве шариков. Следовательно, речь идет о том, чтобы сделать как можно меньшим математическое ожидание числа неизвестных шариков (здесь имеется в виду вероятностное ожидание, так как до последнего шага мы ни в чем не уверены). Итак, если мы начинаем с b шариков (2b W п) на каждой чашке, то коромысло либо покажет равенство (и тогда останется (12 ——26) шариков с неизвестным весом), либо наклонится в одну сторону (и тогда (12 — 2b) шариков обязательно имеют стандартный вес, а из взвешенных шариков b шариков являются более легкими либо более тяжелыми, причем эти два случая, разумеется, исключа- чают друг друга). Допустим, что b шариков обладают неизвестным весом.
В качестве оценочной функции f(b), вычисляющей, насколько выгодно начать взвешивание с 2b шариков, естественно выбрать в каждом случае число шариков неизвестного веса, умноженное на вероятность появления этого случая. Поскольку существует С* способов выбора k объектов из т, вероятность получить равенство составляет C;i/C;2, так как для этого мы должны были бы оставить нестандартный шарик, а выборку производить из оставшихся 11 шариков. Вероятность отклонения коромысла в ту или иную сторону является дополнительной к 1 по сравнению с предыдущей. Так как С^~ \ — ((/и — k)/m) CL оценочная функция f.(b) имеет вид
f® = ―L(12 — 2b) + (l
=-^-[(12-26)2+262].
Минимум функции можно получить путем дифференцирования, так как f(±8)=8; следовательно, b должно удовлетворять уравнению —2-2(12 — 2b) +4b = 0, т. e. b = 4 (в общем случае, если имеется м шариков, 6 = м/3).
Конечно, данное значение лишь указывает на наилучший путь к решению, не использующий интуицию. Следуя по нему, легко получить решение за три взвешивания. Интересно, что эти взвешивания можно задать заранее независимо от результатов каждого из них. Обозначив шарики буквами от Л до А, мы получаем, например, следующую схему:
2-я чашкаЕ F G Н DIJK С Н К L2-я чашкаЕ F G Н DIJK С Н К L1-я чашка
2-я чашка
Е F G Н DIJK С Н К L
2-я чашка
Е F G Н DIJK С Н К L
\) А В С D
А В С Е
В Е G /
Она позволяет различать 12-2 = 24 возможности.
В самом деле, легко доказать, что 3 является минимальным числом взвешиваний. Поскольку в результате каждого звеши- вания возникают три возможности, два взвешивания позволяют различить только 3-3 = 9 случаев, а этого недостаточно. Следовательно, метод градиента привел здесь к оптимуму.
Неявный перебор с распространением ограничений
Решим методом Люка одну классическую задачу, условие которой существенно отличается от условия задачи о лабиринте: расположить на шахматной доске размером 孔义几 наиболь-
шее возможное число ферзей так, чтобы никакие два ферзя яе попадали под удар.
: Поскольку известно, что ферзь может бить по своей горизонтали, своей вертикали и обеим диагоналям, очевидно, на такой шахматной доске можно расположить не более п ферзей. Но существует ли такое расположение в действительности?
Первый способ решения
Рассмотрим горизонтали по очереди. Пусть имеется доска размером 4X4. Поместим первого ферзя в первой клетке первой горизонтали (рис. 5.8).
Очевидно, что в этом случае с учетом заданных ограничений ни в одном решении второй ферзь не может стоять на пересече-
Cl С2 СЗ С4ci С2 СЗ С4
5
丄3
1“ L II II
Рис. 5.8.
Задача о размещении фер- Рис. 5.9, Выбор поля для второго
зей на шахматной доске.ферзя.
нии первой вертикали и второй.горизонтали (иначе одно из условий ^(x) оказалось бы невыполненным), а также второй вертикали и второй горизонтали. Для второй горизонтали пер
вым не приводящим сразу же в тупик вариантом является размещение второго ферзя в третьей вертикали (рис. 5.9). Выбрав
Рис, 5.10. Второй вариант выбора поля для второго ферзя в задаче о четырех ферзях.Рис, 5.10. Второй вариант выбора поля для второго ферзя в задаче о четырех ферзях.эти два варианта, мы не можем поместить третьего ферзя на третьей горизонтали: на пересечении с вертикалями 1 и 3 из-за первого ферзя, а на пересечении с вертикалями 2 и 4 — из-за второго. Это частич
Рис, 5.10. Второй вариант выбора поля для второго ферзя в задаче о четырех ферзях.
Рис, 5.10. Второй вариант выбора поля для второго ферзя в задаче о четырех ферзях.
ное решение, при котором удается разместить лишь двух ферзей, не может составить часть полного решенияг поскольку мы не сумеем найти
место для ферзя на третьей горизонтали. Следовательно., мы должны пересмотреть вопрос о размещении второго ферзя. Поставим его на четвертую вертикаль (рис. 5.10).
■. Поскольку размещение третьего, ферзя на пересечении /-с первой вертикалью нарушает условия К(х), мы поставим его на вторую вертикаль. Размещений четвертого ферзя на вертикалях 1, 2, 3 или 4 вступает в противоречие е заданными- условиями. Следовательно, нужно вернуться к последнему разветг влению, когда мы выбирали место для второго ферзя. Но при
Рис. 5.11. Третий вариант размещения двух первых ферзей.Рис. 5.11. Третий вариант размещения двух первых ферзей.□□□□□□Cl С2 СЗ С4Cl С2 СЗ С4Рис. 5.12. Решение задачи о четырех ферзях.Рис. 5.12. Решение задачи о четырех ферзях.
Рис. 5.11. Третий вариант размещения двух первых ферзей.
Рис. 5.11. Третий вариант размещения двух первых ферзей.
□
□
□
□
□
□
Cl С2 СЗ С4
Cl С2 СЗ С4
Рис. 5.12. Решение задачи о четырех ферзях.
Рис. 5.12. Решение задачи о четырех ферзях.
этом не осталось ни одной вертикали, на которой можно было бы его разместить. Следовательно, на самом деле нужно вернуться к вопросу о размещении первого ферзя. Поставим его на пересечении первой горизонтали со второй вертикалью. Размещение второго ферзя на пересечении с первой, второй ;м третьей вертикалями невозможно; поэтому поставим его йа четвертую вертикаль (рис. 5.11).
На третьей горизонтали условиям удовлетворяет первай клетка, а из-за невозможности расположить четвертого фер^зй на 1 и 2 вертикалях место для него остается только на четвертой вертикали (рис. 5.12).
Итак, одно решение нашей задачи мы получили. На самОМ деле мы получили их все. Действительно, ведь мы рассмотрели все решения, в которых первый ферзь стоит на первой или второй вертикали, а другие решения, соответствующие размещению этого ферзя на третьей или четвертой вертикали, выводятся из двух предыдущих благодаря наличию симметрии по вертикальной оси. Таким образом, в целом на доске размером 4X4 для наШей задачи существуют только два решения.
■ Чтобы распространить этот метод на решение других задач, введем одно обозначение. Для каждой горизонтали, т. е. для каждого ферзя, у нас заранее имеются п вариантов размещения. Каждый из них соответствует одной из вертикалей шахматной доски (в данном случае 孔= 4). 丄
Итак, обозначим каждое частичное решение, содержащее k ферзей, которые расположены на k первых горизонталях, через
вектор V:
D=®1,乡2,力),
где у» обозначает номер вертикали, на которой помещен i-й ферзь. Поиск, который мы вели, фактически состоит в прохождений п.о дереву в соответствии со схемой, изображенной на рис. 5.13..
Сначала мы шли по этому дереву в глубину. Мы спускались все ниже и ниже, причем двигались все время слева направо,
Рис. 5.13. Дёрево поиска для случая неявного перебора.
до тех пор, пока нам не попадался какой-либо тупик. Отметим, что одно и то же дерево может быть использовано как для получения одного решения (тогда мы останавливаемся, как только оно будет найдено), так и для получения всех возможных решений.
Каждый раз, когда пространство поиска X будет иметь структуру шахматной доски, для решения такой задачи (она имеет вид [х? х 三 X, К(х)]) мы сможем вести поиск по дереву данного типа. Если говорить более точно, то использованный нами характер структуры шахматной доски, обусловливающий введенное векторное обозначение и тип поиска, обладает свойствами декартова произведения. Поскольку мы рассматривали шахматную доску как объединение п одинаковых строк (горизонталей), пространство X является ничем иным, как произ-
ведением
ХГХ%Х …X%, в котором 匕 обозначает i-ю горизонталь шахматной доски, включающую п клеток. Тогда неявный перебор сводится к выполнению следующего алгоритма: Общий алгоритм неявного перебора: ENUM
Епит
{Принцип: мы перечисляем все элементы множества X;
X является декартовым произведением множеств У£, у[1,川.
Множества % выбираются в естественном порядке от 1 до л} 1;: Подсчитать Kf.
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА z ^ 1 Проверить элементы множества X ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА 匕抬пустое множество Проверить все элементы множества Yi Выбрать из множества К£ некоторый элемент у^;
Yi^Yi~~{yi}
{чтобы больше не рассматривать ту же ситуацию, мы исключаем выбранный элемент yt из KJ ЕСЛИ i < п
ТО В соответствии с К (%) подсчитать У/+1 z^<— z + 1 {Продвигаемся дальше по X}
ЕСЛИ НЕТ напечатать решение "卜後,…,% КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по ¥{
{Возврат назад}
£ — 1
КОНЕЦ ЦИКЛА по i
КОНЕЦ Епит
ниже.ниже.В Задаче о восьми ферзях эта схема принимаёт вид, описанный
ниже.
ниже.
Восемь ферзей. Первый вариант
Шахматная доска является декартовым произведением из 8( строк Ki (г меняется от I до 8). Поиск ведется по г, возрастающему от 1 до 8. В произвольный момент времени на Любой горизонтами col(i) обозначает текущий элемент У/, т. е. первую вертикаль:
{еще не проверенная вертикаль по i-й горизонтали} 1; {показатель горизонтали}
col (z) — 1.
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА »1
* Проверка: ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА
[col ⑺ & 8] col (z) ― col (z) + 1
Проверка на совместимость с предшествующими размещениями:
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА % 三【1, i — 1]
ЕСЛИ ферзь (z, col(z)) находится под ударом ферзя (%, col (zp))
ТО вернуться к узлу *Проверка {частичная неудача: проверяется следующая вертикаль}
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по ip
ЕСЛИ 7 <8
ТО col (/ + z) <— 0 {частичный успех}
I i i + 1
ЕСЛИ НЕТ напечатать решение col (z)
{полный успех}
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по со/
{Возврат назад} ,<f — 1
КОНЕЦ ЦИКЛА по i
КОНЕЦ задачи о восьми ферзях
Теперь мы улучшим этот алгоритм двумя способами.
Импликации, связанные с выбором м^ста для ферзя
Среди фигурирующих во множестве К(х) условий К/(х), где j = 1, 2, ..., m, могут быть условия, содержащие небольшое число неизвестных, т. е. достаточно простые для того, чтобы знание первых координат ^i, 42,Ук уже позволило то^- но вывести необходимую информацию о выполненности/невы- полненности К(х) при фиксированном значении переменных (乡厶,2, -.., yk). Эта информация касается различных возможных значений для тех неизвестных, которым значения еще не присваивались (т. е. для у% где i ^ k).
Так, в задаче о четырех ферзях выбор значения уг = 1 влечет за собой следующую информацию: 42 三 3, уз #= L t/з =#= 3, ^4 #= 1 и ^4#4. Выбор значения % = 3, из которого вытекает, что % =#= 2 и уз #= 4, заводит в тупик, поскольку, объединив импликации, мы видим, что для размещения четвертого ферзя не осталось никаких возможностей. Именно благодаря этим со ображениям возникает вторая идея о том, как улучшить метод перебора.
Второй способ решения
Чтобы избежать сложных тестов, нужно постепенно вводить в рассмотрение эти импликации и, выбрав вариант размещения очередного ферзя, выявлять возможные значения й-й переменной из области ее определения У. Кроме того, мы должны иметь возможность вернуться назад. Для этого каждому множеству удобно поставить в соответствие вектор, в котором одновременно перечисляются допустимые и недопустимые значения, причем при последних указывается номер ферзя, являющегося причиной запрета. Обозначим через Lk вектор такого типа, содержащий перечень возможностей выбора для множества Yk. Вначале для всех k 厶左—0. На последующих этапах запись 厶左(/) = 0 означает, что / ——одно из еще допустимых значений для ^; запись Lk{])— z, где i положительно, означает недопустимость значения j для множества У* с указанием на первый по счету номер ферзя, являющийся причиной запрета. Таким образом, в задаче о четырех ферзях мы получаем последовательно
А = 1,
& =g=L3 =L4 = (。,。,0,。),
У\ = L
Импликации, связанные с первым выбором:
厶=3 1, 1, 1), & = (1, 1, 0, 0), 厶=(1, 0, 1, 0), 〃 = (1, 0, 0, 1).
Тогда f/2 = 3 (непосредственно вытекает из того, что 1 и 2 запрещены из-за j).
Импликации, связанные со вторым выбором:
厶= (1, 1, 2, 2),
厶=(1, 2, 1, 2),
厶= (1, 0, 2, 1).
На данном этапе вектор L указывает на отсутствие возможностей для размещения третьего ферзя. Нужно вернуться назад. Это несложно сделать: мы возвращаемся к моменту размещения второго ферзя (при этом L2 =(1, 1, 1, 0)), одновременно уничтожая импликации, связанные с предыдущим вариантом выбора:
厶= (1, 0, 1, 0),
厶= (1, 0, 0, 1).
Заметим, что мы записываем 厶=(1, 1, 1, 0), так как мы теперь знаем, что все происходит так же, как если бы значение ^2 = 3 было запрещено вследствие размещения первого ферзя. Следовать такому алгоритму очень легко: проверьте это, например, на шахматной доске, закрывая ^запрещенные" клетки жетончиками с номерами. Векторам L в этом случае будут соответствовать горизонтали, в которых разрешенные клетки свободны, а на запрещенных лежат жетончики.
Теперь алгоритм проверки метода неявного перебора принимает описанный ниже вид.
Восемь ферзей. Второй вариант
Если в первом варианте мы проверяли выбранные значения на совместимость уже после того, как выбор был сделан, то здесь используются априорные импликации: как только выбирается место для какого-либо ферзя, все свободные, но находящиеся под ударом клетки становятся запрещенными. В векто-
ре возможных значений они отмечаются номером соответствующего ферзя.
Vu е [1,8],Vu[1,8] lib (и, и) <- 0 {все клетки свободны}
■ 1
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА i》l
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА col (i) < 8 col (i)——первый элемент множества Е» такой, что lib 亿 col (0) = О
col (/)<—первый нуль из lib (z, j); если их нет, col (i) — 9 j <- col (i) {проверка на совместимость заменена действенными запретами}
lib (i,j) — i
ПОВТОРЯТЬ ДЛЯ k^[i+ 1, 8]
ПОВТОРЯТЬ ДЛЯ,三[1, 8]
ЕСЛИ lib (fe, /) = 0 ТО
ЕСЛИ клетка (fe, /) находится под ударом ферзя, стоящего в клетке 亿 /), ТО lib (k, Z)<- /
КОНЕЦ ЦИКЛА по i
КОНЕЦ ЦИКЛА ПО k
ЕСЛИ I < 8 ТО I <— I + 1 {частичный успех} ЕСЛИ НЕТ напечатать решение [col(О]
КОНЕЦ ЦИКЛА по со/
{Возврат назад}
ТОВТОРЯТЬ ДЛЯ 々三卩 + 1, 8] {Восстановить
свободные клетки)
ПОВТОРЯТЬ ДЛЯ Ze [1,8]
ЕСЛИ lib (k, /) = / ТО lib (k, /) *-0
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по I
КОНЕЦ ЦИКЛА по k
lib (z, col (i)) <— i — 1
i*~i — 1 {теперь клетка (t, col (i)) запрещена из-за (z — 1) ферзя}
КОНЕЦ ЦИКЛА по /
Теперь для решения нашей задачи мы имеем способ, очень похожий на метод Люка прохождения лабиринта (рис. 5.14).
Выбор порядка расстановки ферзей
После первой модификации метода оказалось, что принятый порядок расстановки ферзей, при котором множества У【, У2, • • -, Yn рассматриваются последовательно в естественном порядке, не обязательно является оптимальным. Очевидно, возможно, что некоторое множество 匕(i > 々)не будет содержать ни одного подходящего элемента, хотя в соответствии с приведенным выше алгоритмом мы должны продолжать перебор до уровня k.
Если вектор 厶 содержит только один нуль, то, каким бы ни было значение /, надо приравнять значение 场 индексу этого нуля и вывести из полученного значения новые импликации. Кроме того, предлагаемая модификация метода имеет обязательное следствие: если степень свободы У* (т. е. число нулей в Lk) равняется не 1, а 2, то множество У比 является хорошим кандидатом для продолжения поиска.
Итак, можно сказать, что подобный метод перебора наводит на мысль о следующем способе решения.
Третий способ решения
Ферзи надо размещать в горизонталях с наименьшими степенями свободы. Речь идет о том, чтобы, на каждом этапе рассматривать такое множество У:, в котором осталось наименьшее число вариантов размещения ферзей. Окончательный вид алгоритма приводится ниже.
Свободные клетки в каждом множестве 匕,как и прежде, отмечаются в векторах Lf. Поскольку по определению порядок размещения ферзей уже не является естественным (1,2,...., л), для запоминания реального порядка вводится специальный вектор выбора ферзей. В векторе V записываются особые элементы ^比,которые были выбраны в каждом из множеств У*. Кроме того, здесь учитываются все вынужденные значения перемен-
ных, т. е. все ситуации, в, которых при некотором заданном k запрещены все у, за исключением одного. Таким образом, вёь бор одного местоположения может повлечь за собой цепочку йз нескольких вынужденных значений. Все эти значения запоминаются в специальном стеке, который представляет собой вектор, пустой в начале работы, постепенно заполняемый индексами всех множеств У左,для которых мы запоминаем вынужденные значения. Степень данного стека, т. е. число входящих в него элементов, обозначается переменной т. И наконец, при возврате назад свободные клетки восстанавливаются, и стек опустошается именно до той степени, которой он обладал перед выбором местоположения последнего ферзя.
Восемь ферзей. Третий вариант
По сравнению со вторым вариантом главный принцип со* стоит в том, чтобы рассматривать горизонтали шахматной доски не в «естественном» порядке, а каждый раз в зависимости от того, какая горизонталь обладает наименьшей степени свободы, т. е. в какой из горизонталей содержится наименьшее число свободных клеток.
п*-0 {сколько раз был осуществлен выбор местоположения} т —0 {число размещенных ферзей}
Vi [1, 8], со/(i)<~0 {выбранная вертикаль на горизонтали »}
V/ е [1, 8], lib (Z, /) — 0 {обнуление свободных клеток}
/ 1
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА 2》1 {новая горизонталь} и <- индекс горизонтали, содержащей наименьшее число нулей {обозначим это число через лг (//)}
• ЕСЛИ пг (切力 1.
ТО ЕСЛИ Л2 (//) =/= 1 ТО i<~ z + 1, ch (0 И
КОНЕЦ УСЛОВИЯ {новый выбор местоположения} ?n<-m + 1 {размещен еще один ферзь}
со/ (и) <— первый нуль из числа свободных клеток lib (zi, /)
{иногда единственный}
lib® col(п))•<-/ {импликации, связанные с данным
выбором местоположения}
ПОВТОРЯТЬ ДЛЯ k^[i+ 1, 8]
ЕСЛИ col (fe) = 0 ТО
ПОВТОРЯТЬ ДЛЯ /^[1, 8]
ЕСЛИ lib (fe, /) = О ТО
ЕСЛИ клетка (々,/) находится под ударом ферзя, стоящего в клетке (i, /) ТО lib 也,Z) <—z {отмечаем при последнем выборе местоположения} КОНЕЦ УСЛОВИЯ
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по /
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по k
ЕСЛИ m = 8 ТО напечатать решение [col (/)]; КОНЕЦ УСЛОВИЯ
ЕСЛИ НЕТ {Возврат назад: по крайней мере на одной горизонтали пет ни одного нуля}
ПОВТОРЯТЬ ДЛЯ й^[/ + 1, 8]
ЕСЛИ col (k) = О ТО
ПОВТОРЯТЬ ДЛЯ /三[1, 8]
ЕСЛИ lib (k, /) = / ТО lib (k, /) — 0 КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по /
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА- по k
lib 亿 col (/)) < z — 1; /<—/ — /
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по /
КОНЕЦ третьего варианта алгоритма для- задачи о восьми ферзях. Последнинй вариант алгоритма позволяет улучшить качество решения настолько, что случай обычной шахматной доски может быть обработан вручную целиком всего за несколько часов. Продемонстрируем, с какой скоростью поисковое пространство может быть проверено с помощью данного метода. Во-первых, отметим, что совершенно не обязательно начинать рассмотрение с первой горизонтали и первого ферзя. Итак, начнем, например, с четвертой горизонтали. Допустим, что на некотором этапе поиска мы решаем, можно ли расположить первого ферзя на пересечении вертикали с и горизонтали IV, а второго —
abode
1
2
1
2
1
1
1
2
2
2
1
1
1
2
□
2
2
1
1
□
1
1
1
1
1
1
1
2
1
1
1
2
2
1
1
2
1
2
1
Рис. 5.15а. Задача о восьми ферзях.
на пересечении вертикали f и горизонтали III: у=(” .,f, % ., ・,.,•,•). На рис. 5.15а представлена шахматная доска, на которой отмечены соответствующие запреты и импликации. Значения степеней свободы для оставшихся горизонталей соответственно равны 4, 3, затем 3, 4, 5 и, наконец, 4. Для вертикалей степени свободы равны: 3, 4, *, 4, 4, *, 4, 4. Таким образом, одним из трех рядов, обладающих наименьшей степенью свободы, является горизонталь V; место для третьего ферзя мы будем искать именно на ней. Если мы решим поместить третьего ферзя в вертикали а (в первой свободной клетке данной горизонтали), наша шахматная доска примет вид, представленный на рис. 5.156.
Для четвертого ферзя можно было бы поискать место на рторой горизонтали, в которой насчитываются лишь две свободные клетки. Однако, чтобы лучше учесть импликации, мы должны рассматривать и вертикали: в вертикалях d н е мы также располагаем только двумя свободными местами. В каждой вертикали, как и в каждой горизонтали, может находиться только один ферзь. (Здесь на частном случае задачи о восьми ферзях мы видим, как проявляется косвенное воздействие условий ^(x), которые позволяют выдвигать разумные предположения.)
Итак, одна из свободных клеток на вертикали d — клетка (VII, d)——заставляет нас вернуться назад, поскольку она налагает запрет сразу на обе оставшиеся клетки в вертикали е. Следовательно, при данном расположении размещение четвертого
ферзя является вынужденным. Так как при этом блокируется одна из двух свободных клеток в вертикали е, размещение
В Ь с
э12113211111□]回111131321213э12113211111□]回111131321213312122&回2211J132321Z121312122&回2211J132321Z121
э
1
2
1
1
3
2
1
1
1
1
1
□
]
回
1
1
1
1
3
1
3
2
1
2
1
3
э
1
2
1
1
3
2
1
1
1
1
1
□
]
回
1
1
1
1
3
1
3
2
1
2
1
3
3
1
2
1
2
2
&
回
2
2
1
1
J
1
3
2
3
2
1
Z
1
2
1
3
1
2
1
2
2
&
回
2
2
1
1
J
1
3
2
3
2
1
Z
1
2
1
Рис. 5.156. Задача о восьми ферзях (продолжение).
а b с d 8 f 9 h
3
6
1
2
3
1
®
2
1
®
1
3
1
2
2
4
2
1
1
1
2
回
2
2
4
1
□
1
1
1
1
1
0
1
1
1
3
2
3
2
[
3
[
□
1
2
4
4
3
2
1
4
4
1
6
0
2
4
1
3
⑤
2
1
5
Рис. 5.16. Полное решение.
Цифры в кружках обозначают местаположенне Z-ro ферзя; цифры в квадратиках — внну*1 денное местоположение /-го ферзя.
пятого ферзя в клетке (VIII, е) также неизбежно. Клетка, (II, Ь) уже была обязательной, а клетка (VII, h) становится таковой. Эти два вынужденных значения неизбежно приводят
к размещению следующего ферзя в клетке (I, g): такое положение является единственным еще разрешенным и совместимым со всеми остальными. Поскольку этот ферзь — восьмой, мы получили одно из двенадцати основных решений данной задачи (рис. 5.16).
Сохраняя только показатели вертикалей при естественном порядке горизонталей, мы можем сокращенно обозначить это
Рис. 5.17. Невозможность продолжения поиска после выбора местоположения третьего ферзя.
решение как (g,仇 Д & a, d, /г, е). Данное решение определяется только выбором местоположения для первых четырех ферзей, поэтому, если мы хотим получить все решения нашей задачи, нужно вернуться к каждому из этих выборов по очереди.
Вернувшись вначале к выбору местоположения третьего ферзя, мы запретим занимать клетку (V, а), отметив ее цифрой 2, поскольку теперь эта клетка связана с выбранным вариантом размещения второго ферзя. Поместим ферзя в следующую свободную клетку (V, е). Отметив запреты, мы увидим, что на этой стадии клетка (II, d) является обязательной, а в восьмой горизонтали при таких условиях нам не подойдет ни одна клетка. Эта ситуация показана на рис. 5.17.
Вернемся еще раз назад. Последний вариант размещения третьего ферзя при фиксированном положении ферзей 1 и 2 —— Клетка (V, g). В этом случае мы получаем несколько горизонталей со степенью свободы, равной 2. Если поместить ферзя 4 на Лэризонтали II в клетке (II, 6), то размещение ферзя 5 в
Рис. 5.18. Завершение поиска после выбора местоположения для двух ферзей.
клетке (VII, а) является вынужденным, но эти два варианта закрывают все возможности в последней вертикали. Выбор другой свободной клетки на горизонтали II——(II, h) влечет за собой такие размещения- (VI, b), (I, а) и (VII, d), но тогда все остальные клетки уже оказываются под запретом, и мы не можем получить решения (рис. 5.18). Итак, мы доказали, что после осуществления двух первых выборов (VI, с) и (III, f) существует единственное решение, и оно соответствует частичному решению у =(.,.,力 с, ., ., ., .). Данная конфигурация была выбрана произвольно. Исходя из этого, мы можем оценить усилия, необходимые для построения всех решений. Как только мы фиксируем положение первого ферзя, для второго —— если он стоит на соседней горизонтали ——остается пять возможностей (кооме случаев, когда первый стоит в одной из крайних клеток: тогда для второго существует шесть вариантов размещения). Учитывая симметрию шахматной доски (а следовательно, и симметричность решений по отношению к вертикальной оси симметрии), мы можем рассматривать только те четыре случая, когда первый ферзь стоит слева от данной оси. Так что в конечном счете нам придется вести поиск, примерно эквивалентный тому, который мы провели для конфигурации (IV, с), (III, f); число вариантов равно 6 + 5 + 5 + 5 = 21. Следует отметить, что это число невелико. Итак, при удачных критериях выбора и эффективном управлении импликациями и возвратами для вывода о пригодности данной конфигурации
практически достаточно выбрать местоположение для трех ферзей.
Для размещения третьего ферзя имеются в среднем только три возможности; следовательно, общее число ситуаций будет составлять 3-21 =63 (почти каждая из них дает вариант решения), в то время как вначале речь шла о числе перестановок. Мы перешли от 8! = 40 320 случаев к 63, т. е. выиграли в 640 раз. Если мы захотим сохранить только основные решения, тогда в конце нужно рассортировать полученное множество и отбросить все решения, которые могут быть сведены к некоторым другим за счет горизонтальной симметрии или вращения. Тогда, наконец, останется двенадцать решений, среди которых полностью симметричным является только первое.
Алгоритм, к которому мы в конце концов пришли, осуществляет неявный перебор поискового пространства У, которое разбито на составляющие Уь ?2, • • •, У左,...,У〃; выбор на множествах У/ происходит в нефиксированном заранее порядке. Кроме того, данный алгоритм интересен тем, что он имеет общий характер и пригоден для решения любой комбинаторной задачи: в самом деле, специфика условия задачи о восьми ферзях не учитывалась нигде.
Предложенная общая схема остается верной, если мы перейдем к задачам, не похожим на задачу о ферзях: оптимальной раскраске графа, задаче о коммивояжере, автоматизации рассуждений и игре в шахматы.
Динамическое программирование
Динамическое программирование — один из методов решения задач оптимизации. Слово ^программирование" здесь не имеет того значения, которое свойственно ему в информатике: в данном случае оно является производным от термина programme mathematique, обозначающего систему неравенств, ко- .торые нужно решить. Основная идея динамического программи- .рования состоит в том, что неизвестные соответствующей .системы рассматриваются как переменные решения, значения сдля которых надо выбирать последовательно. Если при этом два различных набора решений приводят к одной и той же ситуа- (ции, сохраняется только наилучший из них. Все подходящие значения каждой переменной изучаются параллельно. Следовательно, данный процесс относится к типу предварительного неявного перебора “в ширинуп.
Пример 1. Директор фабрики должен за три ближайшие месяца выполнить заказ на четыре комплекта одинаковой мебели.
Учитывая стоимость наладки станков, зарплату сотрудников и стоимость хранения изделий, он подсчитывает суммарную стоимость х『комплектов мебели (0 %/ 4) в течение месяца j (1 W j《3) для всех возможных пар (/, %/). Таким образом, он составляет следующую таблицу:
12 312 3ОООООО2 4 02 4 05 6 75 6 7一23一一23一
12 3
12 3
ООО
ООО
2 4 0
2 4 0
5 6 7
5 6 7
一23一
一23一
Он старается сделать сумму стоимостей c(i, /) за три месяца минимальной, добиваясь при этом выполнения заказа, т. е. при условии Xi + 尤2 + %з = 4.
По сравнению с полным перебором поиск получается более эффективным благодаря пошаговому изучению (т. е. изучению месяц за месяцем): в конце первого месяца стоимость четырех возможных ситуаций (0, 1, 2 и 3 сделанных комплекта) может быть вычислена непосредственно из первой строки таблицы. Аналогично сумма стоимостей в двух первых строках показывает стоимость каждой из пяти возможных в конце второго месяца ситуаций. При этом очевидно, что независимо от решений, которые будут приняты в дальнейшем, для каждой из них нужно рассматривать только минимальную стоимость. Итак, стоимость s комплектов, сделанных в конце второго месяца, составляет
min стоимость (у в конце месяца 1) + стоимость ((s — у) в конце месяца 2)
Таким образом, до конца второго месяца мы получаем
а &⑶а &⑶стоимость (s = 0) = 10 + 10 = 20
а &⑶
а &⑶
стоимость (s — 1) = min [12 + 10,10 +14] =22
стоимость (s = 2) = min [15 + 10,12 + 13, 10 +16]= 25
стоимость (s = 3) = min[20+ 10,15 + 14, 12+ 16,10 + 19]=
=28⑷
стоимость (s = 4) = min [20 + 14, 15+ 16, 12 + 19, 10 + 23]=
=31⑸
Рис. 5.19. Граф решений в динамическом программировании.
Чтобы общее решение было оптимальным, нужно, чтобы любое подмножество решений было оптимальным. Это утверждение, которое мы только что использовали, мы уточним в дальнейшем.
Поскольку общее количество сделанной к концу трех месяцев мебели является заранее заданным, решение получается за счет добавления полученных значений к каждой из четырех единиц: '
стоимость (s = 4 в конце)=
=min [31 + 10, 28+ 12, 25+ 17, 22+ 19] = 40. (6) Следовательно, оптимальная общая стоимость четырех комплектов мебели равна 40. Соответствующие ей переменные решения могут быть найдены, если мы вернемся по уже сделанным расчетам к началу: по формуле (6), %з = 1 (т. е. в конце второго месяца s == 3), затем по формуле (4) мы получаем хг = 2 и, наконец, xi = 1. Схема решения данной задачи приводится на рис. 5.19 в виде играфа решений”.
Теория динамического программирования
Использованный выше процесс последовательной оптимизации можно применить для большого класса задач. При этом функция, которую нужно оптимизировать, должна удовлетворять нескольким условиям самого общего характера.
Определение. Функция f от трех действительных переменных, принимающая действительные значения, называется разложимой (представимой в виде суперпозиции функций от двух пере^ менных), если
существуют две функции g и Л, такие, что можно записать
V(м, V, w) f(〃,и,侬)= g(〃,/г®, w));
функция g является монотонно неубывающей по отношению ко второй переменной:
V (儿,协,分)у〉我0g 口公》g(u,疥
Динамическое программирование основано на следующей теореме.
Теорема оптимальности. Для любой разложимой функции f от трсх переменных, удовлетворяющей соотношению f(〃,и, w) =g(〃,h(ut и)), справедливо выражение
ОРТ [/ (и, и, w)] = ОРТ [g(u^ OPT[g(〃 5)1)].
(И, О, w)и(и, W)
По этой теореме подсчет оптимума некоторой функции от трех переменных сводится к последовательному вычислению двух оптимумов функций от двух переменных. (Ее доказательство можно найти в работе (Lauriere, 1979)). Чаще всего эта теорема используется для функций оптимизации z(xb Хг» ...,хл) от п переменных вида
2"1,&, • • •, /) = 2 卜1 (修),马(%2,尤3,…•,尤洲,
где Ri ——разложимая функция, a Z\ относится к тому же типу функций, что и z, т. е. также является разложимой. Следовательно, можно написать
ОРТ z = ОРТ [R % (/),ОРТ 凡力(左2),…
(Xr X2Хд)X;%2
,OPT [&(/)]…J,
что соответствует схеме динамического программирования, которое обычно называют методом оптимизации, основанным на рекуррентных соотношениях. Исходные предположения легко, в частности, проверить, когда г является суммой элементарных значений одной переменной, как в приведенном выше примере.
В настоящее время данный метод успешно применяется в управлении складами, ракетами, технологическими процессами (особенно в химии), в экономическом планировании, в теории игр и в теории вероятностей.
Преимущества динамического программирования
Основную теорему можно сформулировать также следующим образом: подстратегия оптимальной стратегии может быть только оптимальной (рис. 5.20). Таким образом, выигрыш до、 стигается за счет того, что на каждом из промежуточных эта^ пов сравниваются все пути, ведущие к некоторой фиксированной ситуации, и в дальнейшем сохраняется только наилучший из
Рис. 5.20. Оптимальная стратегия. Подстратегия (а, с, Ь) лучше подстратегии (a, d, 6) только в том случае, если путь (Sq, a, d, 6, S^) не является оптимальным.
этих путей (вернее, соответствующее ему значение). Итак, предположим, что каждая из переменных решения %,• может принимать X, значений. Если по методу полного перебора необходимо запоминать П Xi ситуаций, динамическое программиро
вание позволяет свести к изучению 工 Х^、S( различных слу-
£ = 1
чаев (Si ——число возможных ситуаций перед выбором i-й пере~ менной).
Чаще всего величина S, ограничена условиями задачи. Так, в первом примере V(, S = 5 и метод динамического программирования даст сложность порядка g Х「 В некоторых случаях при использовании этого метода можно получить сложность, которая полиномиально зависит от входных данных (обнаружение кратчайшего пути, задача о рюкзаке, некоторые задачи упорядочения). Преимущества этого метода могут быть также использованы в системах, рассчитанных на предсказание недетерминированного будущего: хотя оно определяется только в вероятностных терминах, тем нс менее необходимо найти оптимальную стратегию.
Пример 2. Управление складом в условиях неопределенных требований. Мы должны заказывать продукцию и размещать ее на складе так, чтобы как можно больше увеличивалоп, математическое ожидание заключения выгодных сделок. При этом выделяются три периода времени. В исходный момент склад
находится на нулевом уровне обеспеченности продукцией. В начале любого i-ro периода мы можем закупить х: единиц товара по цене а〃 В течение данного (i-ro) периода с вероятностью pi(Vi) на склад может поступить требование на у, единиц товара по продажной цене S, причем, если уровень обеспеченности склада продукцией недостаточен и нельзя удовлетворить часть требования, штраф не налагается.
В конце третьего периода случайно не проданный товар идет на распродажу по цене 20 за единицу продукции. Значение векторов а, и, p(v) оценивается по приведенной ниже таблице (при этом для любого i мы предполагаем, что 0 W %i V 2 и 1 W〃V2).
Период i
1
2
3
Покупная цена 办
10
10
30
Продажная цена v(
30
30
50
Вероятности pi (1)
0,6
0,6
0,5
Pf (2)
0,4
0,4
0,5
Поскольку количество имеющихся на складе единиц продукции Si изменяется от 0 до 4, система может находиться в одном из пяти состояний. Каждый раз между фазами принятия решения появляется дополнительная недетерминированная фаза, переводящая систему из состояния s в состояние max(0, s:——у。 с вероятностью ptyi). Если после принятия решения %/ прибыль от ситуации S/ составляет c(s。, ее математическое ожидание d(⑵0, зависящее от количества затребованной продукции, равно
с (шг) = С (s£) + Е р (у^ ViWh
где — max (0, s^ — у)
Эту величину мы и должны рекуррентно оптимизировать. Расчеты в данном случае будут попроще, если начать их с конца (период 3), поскольку тогда все легко подсчитать. Мы получаем
с3(0) = тах{0, —30 + 50, —60 + (100 - 0,5 + 70 • 0,5)] = 25;
с3(1) = max [50, —30 + (100 • 0,5 + 70 • 0,5), —60 + (120 • 0,5 + + 90 ・ 0,5)] = 55;
с3(2) = тах[85, -30+(120.0,5 + 90-0,5), -60 + (140 • 0,5 + + 110-0,5)1 = 85.
Затем в соответствии с рекуррентным соотношением имеем
с2(0) = тах[25, -Ю + 30 + 25, -20 + ((30 + 55) • 0,6 +
+ (60+ 25) 0,4)] = 65;
龟⑴=max [30 + 25, —10 + ((60 + 25) 0,4 +
+ (30 + 55)0,6), 一20 + ((30 + 85) 0,6 + (60 + 55) 0,4)] = 95, поскольку в -конце первого периода максимальный уровень обеспеченности склада равен 2, а спрос составляет не меньше 1.
Наконец, для первого периода при исходном нулевом уровне обеспеченности склада мы получаем
^(0) = max [65, -10 + 30 + 65, -20 + ((60 + 65)-0Д +
+ (30+ 95) 0,6)] =105.
Оптимальная стратегия состоит в том, чтобы в течение первого периода закупить 2 единицы продукции, в течение второго—тоже 2 и, наконец, в зависимости от того, сколько к этому моменту будет продукции на складе (0, 1 или 2), в течение третьего периода приобрести 2, 1 или 0 единиц. В соответствии с этой стратегией из-за недетерминированности спроса на складе возникают различные ситуации, но в любом случае средний оптимальный результат (105) обеспечен.
Оптимальная раскраска вершин на графе
Раскраска географической карты
Задача о раскраске географической карты (рис. 5.21) состоит в том, чтобы определить, как нужно раскрасить карту, изображающую на плоской или сферической поверхности различные страны и границы между ними, если известно, что соседние страны нельзя закрашивать одним цветом.
Эту задачу математики пытались решить в течение почти 100 лет. Они пытались доказать результат, известный под названием задачи (или гипотезы) о четырех красках (гипотеза — теорема, являющаяся предположительно верной, практически подтверждаемая большим числом случаев, но не имеющая полного формального доказательства): “для раскраски карты на плоской или сферической поверхности достаточно четырех цветов".
В 1976 г. эта теорема была доказана с помощью ЭВМ, которая чисто комбинаторным способом проверила огромное число вариантов рисунков (Appel и Haken, 1976].
Первый этап исследования рассматриваемой задачи состоит в упрощении способа представления данных: задача сводится
Рис. 5.21. Фрагмент карты Европы.
к изучению несложного объекта, называемого неориентированным графом (как в задачах, рассмотренных в предыдущей главе). Для этого в каждой стране выделяется внутренняя
Рис. 5.22. Граф, эквивалентный карте, изображенной на рис. 5.2L
точка (например, столица) и с помощью линий, которые называются ребрами, связываются все пары точек, принадлежащих соседним странам (рис. 5.22). Тогда задача сводится к раскраске имеющихся на нашем рисунке точек (они называются вершинами), причем соблюдается следующее правило: две соединенные между собой вершины должны быть раскрашены в различные цвета. В этом виде задачу можно обобщить следующим
образом: пусть имеется произвольный граф, т. е. множество вершин и множество ребер, связывающих эти вершины попарно. Нужно найти наименьшее число цветов, с помощью которых можно его раскрасить, соблюдая то же правило: две связанные между собой вершины должны быть раскрашены в различные цвета. Здесь (в отличие от предыдущего случая) граф не обязательно является плоским. Это означает, что необязательно существует такое изображение данного графа на плоскости, при котором никакие два ребра не пересекаются.
Именно в таком виде эта задача возникает в самых разных ситуациях (некоторые из них описаны ниже).
Организация конференции
Для установления порядка заседаний секретариат попросил всех участников составить список секционных заседаний, в которых они хотели бы участвовать. Подмножество секционных
заседаний с участием того или иного человека должно быть разбито на взаимно не пересекающиеся во времени части.
Пример. Пусть планируется 9 секционных заседаний, обозначенных буквами а, 6, &…,i; каждое из них длится полдня. Мы располагаем необходимым числом аудиторий. Несовместимость заседаний во
времени задается списком со- рис 5.23. Граф задачи об организа- ответствующих подмножеств: ции конференции.
ае, be, cd, ed, abd, ahi, bhi, dfit
dhi, fgh (существует по крайней мере один человек, который хочет участвовать в работе всех секций, входящих в одно и то же подмножество).
Данная задача сводится непосредственно к задаче раскраски графа: заседания секций соответствуют вершинам графа, а несовместимость их во времени — ребрам (рис. 5.23). Итак, задача секретариата — организовать конференцию так, чтобы она длилась минимальное число дней (в день проходят два заседания—утреннее и вечернее).
Алгоритм оптимальной раскраски графа
Минимальное число цветов, необходимое для раскраски вершин некоторого графа с использованием для пары соседних вершин различных цветов, называется хроматическим числом,
графа G и обозначается через у(С). Поиск хроматического числа представляет собой комбинаторную задачу. Введем обозначения: S — множество вершин графа; U — множество ребер графа, т. е. множество пар вида ", /), принадлежащих декартову произведению S X 5, таких, что i связано с /; [1, q]—— множество q чисел натурального ряда, т. е. множество q использованных цветов. В этих обозначениях данную задачу можно сформулировать следующим образом:
Найти функцию cl (“цвет”): Sf [1, q] такую, что для всякой пары (,,/) из U нужно задать cl(i) *c“j), причем q должно быть минимальным.
Мы можем (как в задаче о восьми ферзях) сначала раскрасить одну вершину и учесть все импликации, связанные с присвоением этого-значения, а затем использовать метод неявного перебора до тех пор, пока не раскрасим все вершины. Но здесь мы должны остановиться не тогда, когда исчерпаем все возможности, а гораздо раньше — как только мы сможем доказать, что не существует решения лучшего, чем известное нам оптимальное решение. Общая схема действий приведена в алгоритме 5а.
Алгоритм 5。
Найти решение для q цветов;
Улучшить это решение:
ДО ТЕХ ПОР ПОКА мы не докажем, что искомое хроматическое число больше или равно q, ПОВТОРЯТЬ-
g -*— q — 1
Найти новое решение для q цветов
Первый этап: поиск решения
Предложить первый способ раскраски нетрудно, поскольку в качестве функции с/ достаточно взять функцию, такую, что Vi, c/(i) = i, i 三 5. Полученная таким образом раскраска является допустимой: все вершины раскрашены в различные цвета. В этом случае число использованных цветов q равно мощности множества S вершин данного графа.
Улучшая это решение, мы сталкиваемся с такой же проблемой, как в задаче о восьми ферзях: для каждой вершины (или для каждой горизонтали шахматной доски) в исходный момент имеется q вариантов раскраски (вместо восьми свободных клеток), причем q > q. Поэтому мы снова можем использовать алгоритм ENUM, только нужно уточнить следующее:
как происходит выбор в случае равенства степеней свободы;
как осуществляется управление импликациями. Для ответа на вопрос а) воспользуемся как и раньше идеей: выбирать тот вариант, который несет больше информации. Здесь это сво- днтСя к тому, чтобы рассматривать наиболее связанную вершину графа, т. е. вершину, которая накладывает наибольшее число ограничений. Однако в данной задаче имеется только один тип ограничений: для всякой пары (г, /) из множества U: c[(i)#c/(j). Следовательно, наиболее связанная вершина множества S — это вершина, из которой выходит наибольшее число ребер, принадлежащих множеству U. В графе G = (S, U) число ребер, проходящих через вершину s, мы будем называть степенью вершины s. Итак* в случае равенства вариантов мы будем выбирать ту нераскрашенную вершину, которая обладает наибольшей степенью в графе, состоящем из еще не раскрашенных вершин. Как обычно, выбранный критерий не является ни абсолютным (его можно было бы изменить), ни необходимым (без него алгоритм остается надежным) ; он нужен лишь для повышения эффективности. Так как эксплицитное задание ребер графа позволяет фиксировать запреты в явном виде, полу* чение ответа на вопрос в п. б) не представляет трудностей. Конечно, как и в задаче о восьми ферзях, мы должны учесть цепочки импликаций, вынужденные присваивания значений (когда мы можем раскрасить вершину только в один цвет) и случаи, когда продолжать раскраску невозможно (с предусмотренным возвращением назад и восстановлением свободных вершин).
На данном этапе становится очевидным, что мы, безусловно, можем построить лучшее решение, чем то тривиальное решение, которое приписывает каждой вершине свой цвет. Для этого достаточно рассматривать только критерий, касающийся степеней вершин графа (мы ввели его при разъяснении пункта а)). В самом деле, ведь априори все степени свободы равны, и потому основанный на них критерий не является действенным. Но тогда мы можем построить хорошее решение, используя мжадныйп алгоритм следующего вида:
Алгоритм 56
ДО ТЕХ ПОР ПОКА не будут раскрашены все вершины: ПОВТОРЯТЬ
раскрашивать вершину, связанную с наибольшим числом нераскрашенных вершин,
наложить вытекающие отсюда запреты.
Пример 1. В исходный момент вершины графа, изображающего географическую карту, имеют следующие степени:
Вершины
Лиссабон
Мал- рид
Париж
Брюс-
Га-
Бер-
Вена
Берн
Рнм
Степени
1
2
6
4
2
6
3
3
4
3
Мы раскрасим сначала вершину “Париж”,одну из двух, обладающих максимальной степенью:
I f cl (Париж).
Затем мы наложим запрет на использование нвета I при раскрашивании шести соседних вершин и одновременно уменьшим на единицу степени всех этих вершин. Таким образом, мы получим вторую строку табл. 5.1. Теперь наибольшей степенью обладает вершина “Верлин”. Поскольку цвет I использовать в этом случае запрещено, мы закрасим ее цветом II:
Ilf cl (Берлин).
Таблица 5./. Раскрашивание географической карты
Лиссабон
Мадрид
Па-
Брюссель
Га-
Бер-
сем- бург
Вена
Берн
Рим
1
2
6
4
2
6
3
3
4
3
Остаточные
1
1
1
1
—
3
2
2 [
5
2
1
3
2
3
2
2
2
степени
1
1
0
0
2
2
2
1
1
—
0
一
0
一
1
1
Запрещенные
I
I
II
II
I
I II
I II
I
цвета
Ш
III
При этом степени вершин изменятся так, как указано в третьей строке табл. 5.L Выбрав первую по счету вершину, обладающую степенью 2, мы получаем
Ш +с/ (Брюссель), поскольку связанные с данной вершиной вершины раскрашены в цвета I и II. Теперь мы получили степени, указанные в четвертой строке табл. 5.1. Поскольку для вершины “Вена” третий цвет не запрещен, мы можем раскрасить:
III f cl (Вена).
Теперь мы можем раскрасить все оставшиеся вершины:
I -> с/(Лиссабон), Ilf с/(Мадрид),
I (Гаага),
III -> cl (Люксембург), IV f 4 (Берн),
II -^cl (Рим).
Мы получили решение в четыре краски. Однако мы лишь узнали, что для данной карты у W 4, но не доказали, что сделать
Таблица 5.2. Раскрашивание графа для задачи о конференции
Остаточные степениОстаточные степениа 5 4 3 一 --а 5 4 3 一 --5 4 3 2 - -5 4 3 2 - -2 111 о о2 111 о о2110007 一 一 一 一 一2110007 一 一 一 一 一4 3 2 2 2 -4 3 2 2 2 -g - 221110g - 221110也 65 ----也 65 ----543210543210
Остаточные степени
Остаточные степени
а 5 4 3 一 --
а 5 4 3 一 --
5 4 3 2 - -
5 4 3 2 - -
2 111 о о
2 111 о о
2110007 一 一 一 一 一
2110007 一 一 一 一 一
4 3 2 2 2 -
4 3 2 2 2 -
g - 221110
g - 221110
也 65 ----
也 65 ----
543210
543210
II I
Запрещенные цветаЗапрещенные цветаIIП
Запрещенные цвета
Запрещенные цвета
Ш
лучше невозможно. Такой же результат дает теорема Аппеля и Хакена.
Пример 2. В первой строке табл. 5.2 приводятся зафиксированные в исходный момент степени вершин графа для задачи о конференции. Итак, в первую очередь мы раскрашиваем
4(d).
Затем, используя промежуточные результаты, приведенные в табл. 52 последовательно получаем
II -^cl(h),
III ->cl(tz),
W cl (b)t
Ш -> 4(f).
Наконец, когда все оставшиеся вершины оказываются в нулевой степени, получаем
Н—也(с),
П->с/ (е),
If c2(g),
Vf 4(£)・
Мы можем утверждать, что для второго графа у' W 5.
Таким образом, мы выполнили все действия на первом этапе исходного алгоритма (алгоритм 5а). Теперь пока мы не докажем, что искомое хроматическое число равно д, мы должны установить q«q— 1 и искать новое решение для этого числа цветов.
Второй этап: поиск оптимального решения
Поскольку мы знаем, что число вариантов, возможных для каждой вершины, ограничено числом д, введем векторы L% состоящие из q компонентов каждый. Но на практике следует учитывать, что любое решение определяется только с точностью до перестановки соседних цветов (в данной задаче цвета I, II или III — всего лишь имена, служащие ориентиром). Таким образом, когда мы начали выполнять алгоритм 56, первые из присвоенных значений
в примере 21 -> с/ (d) Hf c/S) Ш -> с£ (а) IV 今 с/ (b)в примере 21 -> с/ (d) Hf c/S) Ш -> с£ (а) IV 今 с/ (b)в примере 1
в примере 2
1 -> с/ (d) Hf c/S) Ш -> с£ (а) IV 今 с/ (b)
в примере 2
1 -> с/ (d) Hf c/S) Ш -> с£ (а) IV 今 с/ (b)
I,cl (Париж)
II -> cl (Берлин)
III > с/ (Брюссель)
были не результатами реального выбора, а условиями договора о том, какие имена дать первым вершинам, которые в любом случае должны были бы быть раскрашены в различные цвета. Их неодинаковая раскраска объясняется просто: все они попарно связан垃.В первом примере Париж связан одновременно с Берлином и Брюсселем, который, в свою очередь, связан с Берлином. Во втором примере d связано 匕 h, а н b; R связано с а и b и, наконец, а связано с Ь.
Эти подмножества вершин связаны между собой всеми заранее возможными способами. Такие подграфы мы будем называть полными подграфами, или кликами. Из определения раскраски вершин некоторого графа мы получаем следующее свойство (первое):
Для раскрашивания клики мощностью р нужно р цветов.
Такнм образом, в примере 1 3 W * V 4, поскольку вершины “Париж”,“Берлин” и ^Брюссель** образуют клику мощностью 3. Кроме того, единственная вершина, которая должна быть раскрашена четвертым цветом (Люксембург), оказалась в таком положении из-за того, что сама связана с тремя этими вершинами. В действительности подграф, состоящий из вершин “Париж”,“Берлин”,^Брюссель** и “Люксембург”,образует
Рис. 5.24.Рис. 5.24.Рис. 5.25.Рис. 5.25.
Рис. 5.24.
Рис. 5.24.
Рис. 5.25.
Рис. 5.25.
еще одну клику мощностью 4. Отсюда следует непосредственный вывод: в данном примере минимальное число цветов, необходимое для раскраски всех вершин, равно 4 (т. е. у = 4).
В примере 2 подобное рассуждение позволяет выделить клику, включающую пять вершин ——a, b, d, h,詳 и тем самым доказать, что для данного непланарного графа первый вариант раскраски на самом деле был оптимальным, т. е. 丫‘= 5.
После этих двух удач невольно приходит мысль: не занимаемся ли мы решением несуществующей проблемы? Может быть, между максимальной мощностью клики и минимальным числом цветов всегда существует равенство? Отвечая на данный вопрос, следует, во-первых, отметить, что в любом случае это еще не решение задачи: откуда мы знаем, что данная, клика является наиболее мощной? На самом деле эта задача так же сложна, как и исходная задача о раскрашивании графа.
Кроме того, не можем ли мы построить граф, для которого данное свойство не выполняется? Оказывается, если “поиграть” немного с группой треугольников (клика мощностью 3), мы получим контрпример, изображенный на рис. 5.24.
Для показанного на этом рисунке графа, в котором максимальная мощность клики (в дальнейшем мы будем сокращенно обозначать ее через Смакс) равна 3, хроматическое число у в действительности равно 4, т. е. у > Смакс. Так, если мы раскрасим вершину а в цвет I, b — в цвет II, а с — в цвет Ш и если при этом мы захотим обойтись тремя цветами, то в соответствии с алгоритмом 5а мы получим следующую цепочку импликаций: вершина d должна быть раскрашена в цвет II, е — в
цвет Ш, но тогда вершина / оказывается связанной с вершинами а (цвет I), b (цвет II) и е (цвет III). Следовательно, предположение о возможности использования только трех цветов привело к противоречию.
Второй контрпример, менее очевидный, приведен на рис. 5.25, где изображен граф, в котором все клики сводятся к парам вершин (т. е. СмаКс = 2). Теперь, выполняя алгоритм 5а полностью (что заставляет нас многократно возвращаться к принятым ранее решениям), мы получаем у =4.
Итак, даже на столь маленьких графах и при таких небольших значениях мы пришли к расхождению в две единицы. В действительности существуют графы, которые можно строить таким образом, что разность у — Смакс будет равна произвольному заранее заданному целому числу. Таким образом, мы можем быть уверены, что у ^ Смакс (второе свойство).
Число СмаКс является нижней гранью искомого оптимума. Следовательно, оптимальность нашего алгоритма может быть доказана двумя способами: либо если мы докажем методом неявного перебора невозможность раскрасить граф в q цветов при условии q > Смакс, либо (в благоприятном случае) если мы сможем найти вариант раскраски в q = Смакс цветов.
В любом случае при получении первого варианта раскраски полезно найти клику, обладающую наибольшей мощностью С. Конечно, мы не можем быть уверены, что мы нашли Смаке, но, поскольку Смаке ^ С, мы заведомо получаем надежную нижнюю грань. Чтобы найти такую клику, воспользуемся следующим соображением. В этой задаче, являющейся в некотором роде обратной по отношению к задаче о раскрашивании вершин графа, степени вершин выполняют еще одну функцию: в исходный момент мы начинаем искать клику в множестве вершин, имеющих наибольшие степени. Получив первую клику, состоящую из С вершин, мы можем, как и в исходной задаче, постараться улучшить полученное решение: можно уверенно отбрасывать все вершины, степень которых строго меньше С.
Практически окончательный вариант алгоритма раскрашивания вершин приведен ниже.
Алгоритм 5в
{Поиск "большой" клики Ф}
①-0
ДО ТЕХ ПОР ПОКА существуют непроверенные вершины: проверить вершину 5 графа G, обладающую наибольшей степенью; если она связана ребрами со всеми вершинами Ф, ,ЧОГДА СДЕЛАТЬ:①—① U{S}
Мы получили клику мощностью С; исключить из G все вершины, степени которых строго меньше С.
Начать в новом графе поиск большой клики:
ДО ТЕХ ПОР ПОКА полученный граф отличается от графа, полученного в результате последней итерации, и пока существует не менее (С + 1) вершин, имеющих степени большие или равные С.
—{Раскраска клики}— р<- 1, /и —0 {число раскрашенных вершин}
ДЛЯ КАЖДОЙ вершины s из Ф ДЕЛАТЬ:
cl(s) — p,1:
—{Инициализация}—
几《—(число вершин из S),々—0 {k = число сделанных выборов}
〃q-(0, 0,0), ch (0<-0, ДЛЯ КАЖДОГО
-①:cl (0<-0
ДО ТЕХ ПОР ПОКА &>0 ПОВТОРЯТЬ:
ЕСЛИ т — п ТО напечатать
ЕСЛИ НЕТ 々 — 々 + 1
Выбрать вектор £厶 непустой, в котором cl (/) = 0
ДО ТЕХ ПОР ПОКА 厶 содержит не менее двух нулей ПОВТОРЯТЬ: ch(h)jJ уровень (fe) m
Выбрать цвет у^ такой, что А; (z/J = 0
Зарегистрировать этот выбор:cl (/) у
стек (т)<~/ 1
Исключить yL из числа возможных вариантов: &(9i)—左
Запреты: для каждой еще не раскрашенной вершины s, связанной с вершиной Л ДЕЛАТЬ: Ls(y〉~h
{Импликации}
Для каждой еще нераскрашенной вершины i ДЕЛАТЬ:
ЕСЛИ & включает только один 0 ТО идти к г/зарегистри- ровать".
ЕСЛИ Li не содержит нулей ТО
{Возврат}:
{Восстановить варианты выбора):
VZ, V/ ДЕЛАТЬ: ЕСЛИ Li (j) = k ТО 厶(j) — 0,
Lk (cl (уровень 他)))一々—1
{Вернуть свободу выбора цвета}:
Для g, лежащих в пределах от уровня (々)до т, ДЕЛАТЬ: cl (стек ⑷)*- 0
уровень (А),А —— 1.
Используя этот метод, мы теперь можем решить еще одну задачу.
Задача о коммивояжере
Эта задача — одна из самых известных задач в исследовании операций: коммивояжер должен встретиться с клиентами, которые находятся в разных городах. Он выезжает из одного города и возвращается в него в конце путешествия. Предполагается, что коммивояжер никогда не бывает дважды в одном городе. В каком порядке он должен посетить все города, чтобы суммарное пройденное им расстояние было минимальным?
По-видимому, впервые этой задачей стали заниматься благодаря одной головоломке, придуманной английским математиком Гамильтоном в 1859 г. Она состояла в том, чтобы вычислить на графе, приведенном на рис. 5.26, все
Рис. 5.26. «Кругосветное путеше- возможные маршруты, кото- ствне》Гамильтона.рыми может воспользоваться
путешественник, если места, которые он должен посетить, соединены так, как показано на
рисунке.
Этот граф породила игра, представляющая земной шар в форме додекаэдра. Данная задача «кругосветного путешествия с возвращением в исходную точку», известная также как задача о гамильтоновом цикле, связана с теорией групп, а также (неожиданным образом) с задачей о четырех красках, рассмотренной в предыдущем разделе.
Особенностью задачи о коммивояжере является необходимость дополнительно учитывать расстояния от города до города, которые предполагаются известными. Эти《расстояния》
можно заменить на количество затраченного времени, стоимость проезда или даже на любые произвольные значения. В общем случае мы даже не предполагаем, что стоимость проезда из / в / обязательно совпадает со стоимостью обратного проезда из / в t.
Итак, пусть, например, наш коммивояжер должен посетить поочередно шесть городов (соответствующие стоимости указаны в табл. 5.3). Заранее, когда зафиксирован исходный пункт,
Таблица 5.3. Матрица расстояний для задачи о коммивояжере
ЛЛл BCP£Fл BCP£F-7 0 12 3- 2 2 12-7 0 12 3- 2 2 12в -,3,6465в -,3,6465с ^^ - ^^5с ^^ - ^^5D ^1^ 一 ^9D ^1^ 一 ^9Е ^^5^ -5Е ^^5^ -56 5 0 8 52 2 16 5 0 8 52 2 1
Л
Л
л BCP£F
л BCP£F
-7 0 12 3
- 2 2 12
-7 0 12 3
- 2 2 12
в -,3,6465
в -,3,6465
с ^^ - ^^5
с ^^ - ^^5
D ^1^ 一 ^9
D ^1^ 一 ^9
Е ^^5^ -5
Е ^^5^ -5
6 5 0 8 5
2 2 1
6 5 0 8 5
2 2 1
мы располагаем числом различных маршрутов, равным числу перестановок из (п——1) городов, т. е. (п——1)!. Подобно задаче об оптимальной раскраске графа, данная задача соединяет в себе простоту условия и сложность решения, обусловленную большими размерами поискового пространства. Как и при раскраске графа, получить по меньшей мере одно решение — тривиально: ведь из каждой точки мы можем попасть в любую другую. И наконец, общий ход решения тоже напоминает задачу о раскрашивании графа:
Найти решение стоимостью
ДО ТЕХ ПОР ПОКА мы не докажем, что искомая стоимость д* больше или равна д,
Искать более хорошее решение (новая стоимость q ~ q—1).
Первый этап: поиск решения
Как и в предыдущей задаче, найти хотя бы одно решение —— тривиально, поскольку подойдет любая комбинация шести городов. Таким образом, маршрут ABCDEFA представляет собой одно из возможных решений с общей стоимостью 124. Отметим, что способ, прн котором мы отправляемся из исходного пункта и всегда выбираем путь с наименьшей стоимостью, безусловно, не является оптимальным и даже может приводить к очень неудачным решениям. Действительно, условия К(х), в данном
случае заключающиеся в том, что мы должны получить в конечном счете только один цикл, по мере нашего продвижения вперед все больше и больше ограничивают возможности выбора, и если вначале мы выберем небольшие значения стоимостей, то значения стоимостей путей в конце работы алгоритма будут обязательными и могут оказаться сколь угодно большими.
Тем не менее попробуем использовать этот способ. Из города С мы отправимся в город F по дуге CF с нулевой стоимостью; дуга FC, которая сразу же завершила бы данный цикл, запрещена. Поэтому мы《уедем》из города F, воспользовавшись первой же разрешенной дугой ——尸8, стоимость которой равна 5; дуга ВС запрещена. Теперь пойдем ио дуге BD (стоимость 1), запрещающей использование дуги DC. Дуга DE позволяет уйти из £)и запрещает ЕС. ЕВ приводит нас в Л, а дуга ДС, наконец, вынужденным образом завершает цикл. Ее стоимость равна 43, но она могла бы оказаться еще больше. Мы все-таки запомним полученное решение ACFBDEA (стоимость 79), которое лучше предыдущего.
При построении этого решения мы были вынуждены формировать искомый цикл, постепенно добавляя к последней вершине очередной отрезок пути. Мы не обязаны применять этот способ и (как в задаче о восьми ферзях) мы можем выбирать варианты в любом порядке, фиксируя на каждом этапе в множестве, состоящем из п дуг, произвольную дугу, которую впоследствии мы должны будем запомнить. При этом необходимо соблюдать единственное входящее в ^(х) условие: должен существовать только один цикл. Это означает, что все запомненные к некоторому заданному моменту дуги, во-первых, не должны проходить через одну и ту же вершину более одного раза и, во-вторых, могут образовать цикл лишь в самом конце, когда пройдены все города.
Изучая проблему с этой точки зрения и учитывая предыдущий опыт, мы можем догадаться, что следует выбирать дуги не с наименьшей стоимостью, а дуги с не слишком высокой стоимостью. Но какие же дуги мы будем считать «дорогостоящими»? Очевидно, что данное понятие является относительным: поскольку на каждой горизонтали и каждой вертикали мы должны выбрать только одну дугу, «дорогостоящей» может быть названа любая дуга, стоимость которой существенно отклоняется от минимальных значений, зафиксированных в соответствующих вертикалях и горизонталях.
Итак, предположим, что мы должны избегать все дуги, стоимости которых в нашем примере превышают на 10 единиц минимальные значения, отмеченные по горизонтали и вертикали.
В табл. 5.4 указаны максимально допустимые стоимости для горизонталей и вертикалей, причем в матрице сохраняются только те дуги, стоимости которых строго меньше хотя бы одной из этих границ.
Итак, если по предположению искомый оптимальный цикл пройдет лишь по невычеркнутым дугам, то очевидно, что мы
лвс DEFлвс DEF—16267—一1——11—13一510Максимальные значения211625181826по строкам12————15—5595151715151115101—16267—一1——11—13一510Максимальные значения211625181826по строкам12————15—5595151715151115101A S С D Е FA S С D Е FМаксимальные значения по столбцамМаксимальные значения по столбцамТаблица 54. Матрица, в которой устранены слишком дорогостоящие путиТаблица 54. Матрица, в которой устранены слишком дорогостоящие пути
лвс DEF
лвс DEF
—
16
26
7
—
一
1
—
—
11
—
13
一
5
10
Максимальные значения
21
16
25
18
18
26
по строкам
12
—
—
—
—
15
—
5
5
9
5
15
17
15
15
11
15
10
1
—
16
26
7
—
一
1
—
—
11
—
13
一
5
10
Максимальные значения
21
16
25
18
18
26
по строкам
12
—
—
—
—
15
—
5
5
9
5
15
17
15
15
11
15
10
1
A S С D Е F
A S С D Е F
Максимальные значения по столбцам
Максимальные значения по столбцам
Таблица 54. Матрица, в которой устранены слишком дорогостоящие пути
Таблица 54. Матрица, в которой устранены слишком дорогостоящие пути
выдвинули слишком оптимистическую гипотезу, так как на самом деле ничто не гарантирует, что в этом новом графе, содержащем только《хорошие» элементарные пути, существует хотя бы одно решение. Действительно, могло, например, получиться так, что сразу в двух горизонталях оказались бы вычеркнутыми все дуги, кроме одной, причем обе эти дуги стояли бы на одной вертикали. Очевидно, что тогда из двух разных пунктов мы могли бы попасть только в один — соответствующий данному столбцу — город, и, следовательно, задача о гамильтонове цикле не имела бы решения.
Что же теперь из этого следует? Были ли мы настроены слишком оптимистично? Из табл. 5.4 видно, что в первой строке мы располагаем единственной возможностью: из А мы можем попасть только в D. Следовательно, дуга DA, по которой можно вернуться обратно, запрещена. Кроме того, поскольку в D мы уже были, мы должны вычеркнуть дуги BD и FD, которые опять привели бы нас в ту же точку (табл. 5.5).
Дуга ВА в свою очередь является обязательной, поэтому мы устраняем дуги ЕА и DB (последнее связано с необходимостью исключить паразитный цикл BAD). На небольшой схеме (рис. 5.27) представлено частичное решение. Дуга EF является в данном случае обязательной и запрещает выбор дуги FE.
0 8 5
5 8-5
笈 ~ - 5
д ■ - 7 Z ^ -
На этом этапе все степени свободы по горизонтали и вертикали равны 2. Поэтому следующую дугу мы должны действительно выбирать. Например, из самой «дорогой» строки О
ААРис. 5.27. Частичное решение задачи о коммивояжере.Рис. 5.27. Частичное решение задачи о коммивояжере.
А
А
Рис. 5.27. Частичное решение задачи о коммивояжере.
Рис. 5.27. Частичное решение задачи о коммивояжере.
мы можем взять дугу, имеющую наименьшую стоимость. Мы выбираем DE, и тогда дуги DC и FE оказываются запрещенными, а дуги FC и FE ― обязательными.
Итак, мы в конце концов получили гамильтонов цикл —— ADEFCBA, и его стоимость (64) меньше, чем лучшая из найденных ранее. Таким образом, мы реализовали способ быстрого нахождения хорошего, допустимого правилами маршрута для коммивояжера.
Если бы операция устранения дуг в зависимости от их стоимостей оказалась слишком жесткой и не позволила построить цикл, надо было бы ослабить введенное ограничение, разрешив сохранять дуги, больше отклоняющиеся от минимумов, чем мы установили вначале.
Получив хорошее решение, следует перейти к фазе оптимизации.
Второй этап: поиск оптимального решения
Верхняя грань искомого оптимума нам уже известна. Но теперь, как в теории физических измерений или как при решении задачи о раскрашивании графа, было бы полезно задать еще
и нижнюю грань. Иначе говоря, не существует ли какого-нибудь понятия (вроде клики), которое позволило бы нам утверждать, что стоимость любого решения заведомо не меньше некоторой известной величины?
Выделим в исходной задаче какую-нибудь подзадачу и займемся рассуждениями. Нужно, чтобы решение этой более простой или «маленькой» задачи оказалось обязательно меньшим по стоимости, чем решение исходной задачи. Так, рассмотрим все города по отдельности: ведь в тот или иной момент коммивояжер уезжает из каждого города. Но тогда стоимость решения данной подзадачи——《уехать из города 尤》——не может быть меньше минимального значения соответствующей строки исходной матрицы. Так, для города Л, где
/ВС Q Е F
/ — 27 43 16 30 26
мы получаем минимальную стоимость 16 и, более того, можем вычесть по 16 единиц из всех расстояний, не изменив при этом формы цикла (так как оптимизируемая функция — это простая сумма элементарных стоимостей, причем из каждой строки берется по одному слагаемому). Итак, стоимости выезда из города Л теперь можно представить следующим образом:
/ в е D е 尸
/ — 11 27 0 14 10
Рассуждая аналогично для пяти оставшихся строк, мы вычитаем из строки Л число 16, из В число 1, из С число 0, из D число 16, из £ и У7 число 5 и получаем табл. 5.6.
Таблица 5.6
ддввЛвсп£5Лвсп£56 0 5 7 82 16 0 5 7 82 13 0 101 43 0 101 4271527159^09^0D ОО35一 ^4D ОО35一 ^4142952142952一 0一 0,О24О2О,О24О2О
д
д
в
в
Лвсп£5
Лвсп£5
6 0 5 7 8
2 1
6 0 5 7 8
2 1
3 0 10
1 4
3 0 10
1 4
2715
2715
9^0
9^0
D ОО35一 ^4
D ОО35一 ^4
142952
142952
一 0
一 0
,О24О2О
,О24О2О
Но нам еще нужно, чтобы коммивояжер побывал в каждом из 6 городов только один раз (приезды соответствуют 6 столбцам нашей таблицы). На данном этапе в любой город можно приехать, воспользовавшись дугой, стоимость которой после вычитания равна нулю. Исключением является город Л,
一15023一15023в - п 一130410в - п 一130410ссDDЕЕ7 5 - 9 2 о2 1 - 27 5 - 9 2 о2 1 - 20035- «40035- «4142952142952~ о~ о10240201024020
一15023
一15023
в - п 一130410
в - п 一130410
с
с
D
D
Е
Е
7 5 - 9 2 о
2 1 - 2
7 5 - 9 2 о
2 1 - 2
0035- «4
0035- «4
142952
142952
~ о
~ о
1024020
1024020
минимальная стоимость приезда в который составляет 5. Мы можем вычесть из всего столбца эту величину, поскольку подзадача приезда в А обязательно должна быть решена. Новые стоимости приведены в табл. 5.7. Мы вычли величину д:
g = 16+1 + 1 +16+ 5 + 5+5 = 48.
Но поскольку для получения реального значения д* стоимости искомого оптимального цикла к любому решению q задачи с уменьшенными значениями стоимостей следует прибавлять д, то эта величина удЬвлетворяет соотношению
4《q甚办
где go обозначает наилучшую известную в данный момент суммарную стоимость. Кроме того, так как коммивояжер приезжает в каждый город только один раз и уезжает из него тоже только однажды, оптимальная длина маршрута реально составляет длину оптимального пути по сокращенной матрице, увеличенную на 48.
В нашем примере 48《g* W 64. Таким образом, возвращаясь к методу, с помощью которого мы получили первые варианты маршрутов, мы сможем удалить все дуги, стоимость которых слишком велика. Но на этот раз критерий удаления дуги может быть строгим. В самом деле, рассмотрим разность (伙一办 которая в данном случае равна 16. Она соответствует самому большому «абсолютному» отклонению искомого значения от известного маршрута. Иными словами, любой путь, имеющий стоимость, которая превышает эту разность, заранее может быть отклонен: поскольку он уже хуже, чем известный нам вариант маршрута, он не может быть оптимальным. В частности, мы можем сразу же вычеркнуть все дуги, у которых уменьшенная стоимость больше или равна {^0 — ')• На данном этапе матрица разрешенных путей на нашем графе представлена в табл. 5,8.
-15 0 2-15 0 233и - во - ои - во - о一15一 9 一 0一15一 9 一 0D о о - - - 4D о о - - - 4£н - 5 2 - о£н - 5 2 - о,0一 020 -,0一 020 -
-15 0 2
-15 0 2
3
3
и - во - о
и - во - о
一15一 9 一 0
一15一 9 一 0
D о о - - - 4
D о о - - - 4
£н - 5 2 - о
£н - 5 2 - о
,0一 020 -
,0一 020 -
Теперь осталось построить на этой матрице новый маршрут, обладающий, если это возможно, стоимостью, меньшей до, а потом начать все сначала ——и так до тех пор, пока мы не докажем оптимальность. .
Мы могли бы снова воспользоваться понятием степеней свободы и, следовательно, начать выбирать маршрут с горизонтали Е. Но так как для случая неуменьшенной матрицы этот критерий был бы неэффективен, мы будем исходить из стоимостей и оценивать относительную выгоду от использования дуг с наименьшими (т. е. нулевыми) стоимостями.
На самом деле все эти дуги с нулевыми стоимостями зара< нее не эквивалентны. Идеальный маршрут должен был бы проходить только по таким дугам, но он не обязательно существует. В частности, мы не можем приехать в город D одновременно из А и В. Кстати, это доказывает, что д* ? 49, но непосредственно использовать этот результат мы не будем.
Некоторые из дуг с нулевыми стоимостями не могут быть включены в маршрут.' Тогда встает вопрос: какова минимальная стоимость запрета на 《поездку» по дуге с нулевой стоимостью? Поскольку в любом случае мы должны уехать из города, расположенного в данном столбце, минимальная стоимость этого перемещения составит сумму минимального значения стоимости по горизонтали (наш нуль не считается) и минимального значения стоимости по вертикали. Эта величина, используемая во многих задачах на оптимизацию, обычно называется пошлиной. Она вычисляется для идеального варианта, который состоит в выборе дуги с нулевой стоимостью, и оценивает наименьшую стоимость ——минимальную пошлину, которую нужно заплатить при отказе от этого выбора.
Вытекающая из данной идеи стратегия поиска состоит в том, чтобы каждый раз выбирать вариант, для которого пошлина является максимальной. В задаче о коммивояжере пошлина r(f, У) для некоторой дуги (/,/), имеющей нулевую стоимость,
записывается в виде
г (/, /) = min с 頂 々)+ min с (/, j).
Таким образом, в нашем примере г(О, Л) = 0 + b r(D, В)= = 0+0, г(尸,8) = 0 + 0, г(ЕС) = 0 + 9, г(4,П)= 10 + 0, r(B,D) = 0+ 1,Г(尸,石)=0 + 2; Г(е/) = 5 + 0, Г(已尸)= =2 + 0.
Выбор, который обойдется нам дороже всего, если мы от него сейчас откажемся, связан, следовательно, с дугой AD. Итак, начнем с предположения, что коммивояжер воспользуется дугой AD\ теперь мы должны учесть все привязанные к данному выбору импликации. Мы не имеем больше права рассматривать какие бы то ни было дуги, расположенные в строке Див
Таблица 5.9.
А
В
С
D
尸
A
D
E F
1
一
15
—
一
0
14
15
13
5
0
15
13
5
0
0
9
2
2
0
9
2
2
2
一
—
0
2
一
一
0
13
0
0
0
13
0
0
0
一
6
столбце D; аналогично мы должны- вычеркнуть дугу DA, которая порождает паразитный цикл. Ниже приводится рабочая таблица (табл. 5.9, а).
В этой гипотезе отъезд из города В стоит не менее 1. Поэтому мы снова произведем в этой строке преобразование стоимостей и на то же число увеличим нижнюю границу q(AD) во всех маршрутах, использующих дугу AD\ q(AD) = ^ (табл. 5.9, б).
Вычислим пошлины: г(В, А) = 16, r(D, В) = 2, г(尸,В) = 0, г(尸,С) = 9, r(F, Е) = 2, r(C, F) = 9, г(£, F) = 2. Приняв первое предположение, мы обязательно должны пропустить коммивояжера по дуге ВА, поскольку в противном случае минимальная стоимость полученного маршрута (она была бы равна q(AD) + +「(8,4) = 49+16) превысит 64 — порог, который мы знаем из уже найденного решения и который мы хотели улучшить.
Прохождение по дуге ВА в свою очередь вызывает удаление всех дуг, расположенных в столбце Лив строке В, а также дуги DB, приводящей к появлению паразитного цикла. В ре-
зультате мы получаем новую таблицу (табл. 5.10,а). После вычитания двух единиц по горизонтали D, вследствие чего q^(AD) остановится равным 51, мы получаем еще один вариант таблицы (табл. 5.10,0). Теперь только дуга С6 (ее стоимость равна 13) является слишком «дорогостоящей» для того, чтобы составить часть маршрута, обладающего стоимостью меньше заданной предельной; действительно, стоимость (СВ)》qQ ~ q^(AD) = 64 — —51 = 13. Следовательно эту дугу мы вычеркнем.
Таблица 5./0.
А В С D Е 尸
А В с D Е F
13 一5 ОС
13—50
-922 Q
—700
— 一—0
000—尸
000—
а
б
На этот раз мы больше не располагаем возможностью выбора: дуга EF осталась в своей строке одна; нужно добавить ее к нашему незавершенному циклу и удалить дугу FE. Кроме того, единственным кандидатом оказалась дуга СЕ (поэтому нет смысла производить в соответствующей строке вычитание), что дает нам q(AD)— 56 и влечет за собой одновременное вхождение в данный цикл дуг QC и FB. В конце концов мы получаем маршрут FBADCEF с суммарной стоимостью 63. Дерево поиска изображено на рис. 5.28.
У нас нет гарантии, что полученный цикл является оптимальным, поскольку на дереве остается еще одна ветвь, которая может привести к результату, обладающему приемлемой стоимостью. Эта ветвь соответствует отрицанию нашего первого предположения, т. е. случаю, когда искомый цикл не проходит по дуге AD. Мы восстанавливаем исходную матрицу для этого варианта с учетом необходимых преобразований строки А. Так как мы вычитаем довольно большое число, мы должны вычеркнуть новые дуги ——все, стоимость которых не меньше величины (q* — g (не AD}) = 63 — 58 = 5. В результате остается табл. 5.11, из которой видно, что CF (строка С) н FC (столбец С) являются обязательными. Если граф содержит более двух вершин, такая ситуация невозможна. Это доказывает, что
Рис. 5.28. Решение задачи о коммивояжере.Рис. 5.28. Решение задачи о коммивояжере.
Рис. 5.28. Решение задачи о коммивояжере.
Рис. 5.28. Решение задачи о коммивояжере.
со стоимостью меньше оптимальным. Мы мо-со стоимостью меньше оптимальным. Мы мо-на данной ветви нет ни одного решения 63 и полученный раньше цикл является
со стоимостью меньше оптимальным. Мы мо-
со стоимостью меньше оптимальным. Мы мо-
Таблица 5."
А
с
D
А
1
一
4
0
В
1
一
0
—
一
С
—
|0|
Р
0
0
—
2
2
Е
2
—
0
尸
0
lol
4
0
жем также доказать, что это оптимальное решение является единственным. Для этого достаточно опять ввести в предыдущую матрицу всего лишь одну дугу стоимостью 5 (дугу СЕ).
Дуги FC и СЕ окажутся обязательными, и мы должны будем включить в наш цикл дугу BD. Но тогда, чтобы не превысить стоимость 63, нам придется рассматривать только нулевые стоимости. Включение же в цикл дуги DA приведет к тому, что в столбце В будут вычеркнуты все приемлемые дуги.
Итак, единственный оптимальный маршрут для нашего коммивояжера——это ADCEFBA (стоимость 63).
Универсальная программа решения задач
GPS (General Problem Solver)—известная программа, предложенная Алэном Ньюэллом, К-лиффом Шоу и Гербертом Саймоном в конце 50-х гг. (одна из самых первых программ искусственного интеллекта) и способная решать однотипным способом такие непохожие задачи, как подсчет интеграла, логические головоломки, доказательство теорем методом исчисления предикатов, грамматический анализ фразы.
Задачи, предлагаемые программе GPS, всегда представляются в следующем виде: исходный объект, конечный объект, множество операторов. Операторы позволяют осуществлять преобразования над объектами и благодаря этому дают возможность постепенно достичь конечного объекта, который и является целью всей работы.
Отметим, что GPS сразу же оказывается в более благоприятном положении, чем студент, сидящий перед чистым листом бумаги, поскольку у студента обычно не бывает списка законных операций: он, наоборот, должен их подобрать сам, а иногда даже изобрести в процессе решения.
Общая стратегия GPS: разбиение на подзадачи
В соответствии с《методом редукции» программа GPS всегда разбивает поставленную задачу на более простые подзадачи. Чтобы осуществить разбиение адекватным образом, программа пользуется различиями, существующими между обрабатываемым объектом и объектом, который мы хотим получить. Различием между двумя объектами считается любое свойство, присутствующее в одном из них и отсутствующее полностью или частично в другом. GPS выбирает только те операции, которые могут уменьшить различия, отмеченные на данном этапе поиска. Таким образом, используемый в программе метод ориентирован на средства, позволяющие достичь цели (анализ «цели — средства»), и в этом отношении он близок к способам действий, которые применяет в тех же условиях человек.
Цели. GPS различает три главные цели:
Л(о, х)
.с (О, а, %, У)
Применить оператор 0 к объекту х;
Найти оператор 0, который может уменьшить различие А между объектами хну;
г (%, 9)
Преобразовать объект х в объект у.
Таким образом, все задачи в исходный момент ориентированы на первую цель:
Т (исходный объект, конечный объект)
Методы. Для каждой из трех целей в программе предусмотрены специальные методы, которые задаются для всех них одновременно в следующем виде:
ЕСЛИ целью является 4(0 а)
ТО сравнить вход оператора О с объектом а; обозначим различие через А;
'ЕСЛИ Д = 0 ТО успех КОНЕЦ, ЕСЛИ НЕТ поставить новую цель: С (Q, А, а, Ь) и поставить цель А (0, а) в очередь.
ЕСЛИ целью является С(0, А, х, у)
ТО брать операторы по очереди и смотреть, не могуть ли они уменьшить различия А; ЕСЛИ да ТО создать новую цель 4(0, х).
-ЕСЛИ целью является га, у)
ТО обозначим различие между хну через А;
ЕСЛИ А = 0 ТО успех КОНЕЦ, ЕСЛИ НЕТ создать новые цели: C(Q, А, х, у) и A(Q, %).
ЕСЛИ Q применить нельзя ТО неудача, ЕСЛИ можно ТО обозначить полученный новый объект через %' и создать новую цель:
Чтобы повысить эффективность, авторы GPS предлагают учесть относительную значимость возможных различий (под этим подразумевается то, насколько сложно уменьшить различия), хотя это и не является необходимым. Кроме того, они дают таблицу зависимостей, в которой указываются операторы, прйгодные для уменьшения каждого типа различий (см. приводимые ниже примеры). В соответствии с описанными выше методами и в зависимости от характера исходного объекта и первой цели GPS подыскивает одну или несколько целей
В свою очередь благодаря действию подходящих операторов эти цели раскрываются до тех пор, пока не будет получен конечный объект и пока остаются не полностью раскрытые объекты.
Стратегия, которой мы воспользовались, может быть представлена в виде дерева, называемого «деревом поиска»
Рис. 5.29. Дерево поиска программы GPS.
(рис. 5.29). В каждый момент времени GPS выбирает на этом дереве среди еще не обработанных до конца вершин наиболее многообещающую, т. е. такую, в которой различия между обрабатываемым и конечным объектом минимальны.
Задача об обезьяне и бананах
Эта задача, предложенная Дж. Маккарти в 1963 г., формулируется следующим образом: обезьяна и ящик находятся в комнате, к потолку которой подвешена связка бананов. Обезьяна может перемещаться по комнате, переносить ящик и забираться на него. Достать бананы она сможет только в том случае, если она заберется на ящик, расположенный в точности под бананами. Как она решает эту задачу, которая взрослому человеку кажется тривиальной?
Внешние условия
Часть А: разное Элементы рассматриваемого пространства: обезьяна S, ящик & бананы В, множество мест = {卩 р2> наС под-В,...} Часть В: операторы 01. ПОДНЯТЬСЯ.
условие: Место (5)=Место (С) действие: Место (5)=на-С
02. ИДТИ, условие: переменная х—место действие: Место (5)=%
03. ПЕРЕДВИГАТЬ.
условие: переменная х — местоМесто (S),Ha-C
Место (S)=Место (С)
действие: Место (S)=x
Место (С)=х
04. ХВАТАТЬ.
условие: Место (С)= под-В Место (S)=Ha-C
действие: Содержимое (рука S)=B
Часть С:Di ~ Место
различияD2 = Место (С)
/)3 Содержимое (рука S)
Часть D:D3 труднее, чем D2
порядок различий Q2 труднее, чем 01
Часть Е:(уменьшение различий)
таблица зависимостей
Ql Q2 D3
01 X
02 X
03 X X
04X
Задание задачй
Главная цель ^ Преобразовать исходный объект в конечный Исходный объект ^ [Место (S) = рь Место (С) ~р^ содержимое (рука S) = 0]
Конечный объект ^ [Содержимое (рука S) = 8]
Ввод задачи. Программа GPS ничего заранее не знает о тех задачах, которые она может решать: помимо самой задачи ей нужно указать пространство, в котором она должна работать. Таким образом, условие задачи содержит две части:
с одной стороны, общие характеристики, остающиеся значимыми для семейства задач, а с другой ——точные данные по интересующей нас задаче.
Комментарии и замечания. В программе предыдущая таблица задается практически в такой же форме, поскольку она легко воспринимается машиной. Значением одноместных предикатов——《Место» и «Содержимое» ——являются соответственно место и содержимое указанных переменных. Часть D задает относительную сложность таких действий, как изменение места обезьяны S и ящика С или, наконец, изменение содержимого руки обезьяны. В таблице, приведенной в части Е, крест соответствует тем операторам, которые заведомо могут быть эффективно использованы для уменьшения различий данного типа. Как уже было сказано, две последние части описания не являются необходимыми: они ускоряют поиск и сокращают запись. .
Решение. Программа должна последовательно уменьшить различия между исходным объектом, который мы обозначим OBi, и конечным объектом, который мы обозначим OBf, действуя в том порядке, который был ей уже задан. Для этого она будет строить промежуточные цели и объекты, связанные друг с другом естественным образом отношениями преемственности в соответствии с «генеалогическим деревом», организованным так, как показано на рис. 5.30.
На этом рисунке номера целей соответствуют порядку их создания. Сначала мы отмечаем три различия между OBi и OBf. Цель, обладающая приоритетом, состоит в уменьшении различия ОЗ, поэтому вновь созданная цель-2 есть С(О, /)3, OBi, OBf).
Это различие может уменьшить только оператор 4 и, чтобы попытаться применить его к исходному объекту, создается новая цель: цель-3 = Л (04, OBi). Однако из-за того, что оба требуемых оператором 4 условия в настоящий момент не удовлетворены (ящик находится не на том месте — различие Q2; обезьяна находится не на том месте ——различие /)1), достижение этой цели непосредственно невозможно. Поэтому программа вводит новую цель, благодаря которой исчезнет различие, считающееся наиболее важным (т. е. Q2): цель-4 = С(О, Q2, ОВц (Место (С)-под-В)), которая в свою очередь порождает цель-5, как только будет найден подходящий оператор.
Данная цель тоже не может быть пока достигнута непосредственно, так как нужно еще уменьшить различие £)1, К этому сводится роль целей 6 и 7, которые позволяют сделать
Дает 033
Рис. 5.30. Дерево поиска программы GPS для задачи об обезьяне и бананах.
так, чтобы《Место(S)》было равно《Место(С)». В достижении цели-7 может быть эффективно использован оператор 02. В результате мы получаем объект ОВ1, отличающийся от исходного объекта: ОВ1 = Место (S)=處 Место (С) == рг- Содержи- мое(рука S) = 0.
Отсюда программа возвращается назад к списку целей, отметив при этом, что нам удалось уменьшить различие D1. Теперь первая невыполненная цель — это цель-5, в соответствии с которой нужно ОВ1 поставить на место ОВ\ и тогда новая цель Л (ОЗ, ОВ1) введет новый объект ОВ2.
ОВ2: Место (5)-под-В, Место (С) -под-В, Содержимое (рука S) = 0.
Таким же образом возвращение к цели-3 порождает еще три подцели: цель-9, 10 и 11. В цели-11 различие DI уменьшается с помощью единственного уместного оператора 01, и, наконец, в цели-12 обезьяна достает себе бананы.
Ценность этого примера состоит в том, что. с его помощью можно подробно показать, как несложное обыденное рассуждение можно полностью разложить на последовательность элементарных действий.
《Механика», с помощью которой достигается данная цель, удивительно проста. Кроме того, мы сумели хорошо направить поиск, потому что мы ввели понятие различия между объеК' тами нашего пространства и использовали эти различия, чтобы естественным образом создавать новые цели.
Конечно, в менее благоприятном случае может оказаться так, что, создавая последовательность подцелей в соответствии с отношением прямой преемственности, программа зайдет в тупик, и в конечном итоге мы увидим, что последняя цель не мо、 жет быть достигнута из-за невозможности применить к ней хотя бы один оператор. Кроме того, не существует запрета на
В начале: множество неизученных целей — OBi
ДО ТЕХ ПОР ПОКА остается хотя бы одна неизученная цель Выбрать некоторую неизученную цель В
ЕСЛИ эта цель является главной ТО успех. КОНЕЦ. КОНЕЦ УСЛОВИЯ.
ДО ТЕХ ПОР ПОКА остается еще непримененный
к данной цели способ обработки:
Выбрать способ М
ЕСЛИ применить МкВ невозможно ТО выбрать другой способ
ЕСЛИ можно ТО
ЕСЛИ М позволяет достичь цели В ТО В <— отец(В)
ЕСЛИ НЕТ ТО
ЕСЛИ М порождает новую цель В* ТО ЕСЛИ В* уже было порождено ТО исключить его
КОНЕЦ УСЛОВИЯ
КОНЕЦ УСЛОВИЯ
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА
повторное появление в процессе поиска некоторой промежуточной цели. Запоминать ее в этом случае бесполезно, а следуя описанной ниже общей процедуре, циклов можно избежать.
Подход, используемый в программе GPS и изложенный в описанной выше процедуре, характеризуется тем, что выбор осуществляется с помощью таблицы зависимостей и с учетом порядка значимости различий. Ниже мы увидим, как действует эта программа в совершенно ином контексте: речь пойдет о доказательстве теорем.
Задача из области формальной логики
В данном случае рабочим пространством являются высказывания на языке логики первого порядка, но от читателя никаких знаний в этой области не требуется: можно рассматривать все это как игру, в которой мы должны манипулировать цепочками букв в соответствии с определенными правилами. Кстати, прежде чем эта задача была запущена в программу GPS, два американских психолога О. Моор и С. Андерсон (1954) предложили ее студентам, чтобы постараться понять, как действует человек в подобных ситуациях. Напомним, что в то время алгоритм унификации еще не был известен (см. гл. 3). —
Пусть первая (исходная) цепочка символов есть (R =)~Р) А /\(QRnQ), а вторая (конечная)——1(nQAP). Требуется найти последовательность разрешенных преобразований, позволяющих перейти от первой цепочки ко второй.
Ниже приведены разрешенные преобразования:
「0) 「1)г2) 「3)г4)「5)「6) ")г8)г9)「0) 「1)г2) 「3)г4)「5)「6) ")г8)г9)пллл 4лЛ4Л и л Л4ЛЛЛпллл 4лЛ4Л и л Л4ЛЛЛ^v^fi,AVA VИид 4 8工门2■>дВВП4Ass「「「о? 4 ввв Ал^^в в 「Ann AVAVV V^v^fi,AVA VИид 4 8工门2■>дВВП4Ass「「「о? 4 ввв Ал^^в в 「Ann AVAVV VAVBAVBССССП АХА,П АХА,с л BVAс л BVAVA^^AVИИVA^^AVИИ(Л л С) (4 VC)(Л л С) (4 VC)
「0) 「1)
г2) 「3)
г4)
「5)
「6) ")
г8)
г9)
「0) 「1)
г2) 「3)
г4)
「5)
「6) ")
г8)
г9)
пллл 4лЛ4Л и л Л4ЛЛЛ
пллл 4лЛ4Л и л Л4ЛЛЛ
^v^fi,
AVA V
Иид 4 8
工门2■
>дВВП4Ass「「「о? 4 ввв Ал^^в в 「Ann AVAVV V
^v^fi,
AVA V
Иид 4 8
工门2■
>дВВП4Ass「「「о? 4 ввв Ал^^в в 「Ann AVAVV V
AVB
AVB
С
С
С
С
П АХА,
П АХА,
с л BVA
с л BVA
VA^^AVИИ
VA^^AVИИ
(Л л С) (4 VC)
(Л л С) (4 VC)
гЮ) А)гЮ) А)>4 Л В>4 Л ВMl) 44nBMl) 44nBг12) 4nBг12) 4nB卜力nо卜力nо
гЮ) А)
гЮ) А)
>4 Л В
>4 Л В
Ml) 4
4nB
Ml) 4
4nB
г12) 4nB
г12) 4nB
卜力nо
卜力nо
Символы г с индексами 1 — 11 не входят в правила и являются порядковыми номерами правил.
Символ ь->, расположенный между двумя цепочками символов С1 и С2, читается как “можно также записать'*; он означает, что С1 мы всегда можем преобразовать в С2. Двойная стрелка -*-> означает, что одновременно 61 ь-> С2 и С2-^—,С1.
Кроме того, при переписывании всегда разрешается заменить любую букву, встретившуюся в рассматриваемом правиле, на любую другую, при условии что такая замена будет произведена по обе стороны знака н->.
Буква, перед которой стоит символ П, может быть заменена на любую другую. Символы, не являющиеся буквами, согласно нашей гипотезе, замене не подлежат.
И наконец, некоторое правило может быть применено к данной цепочке, если, используя последовательность различных подстановок, мы сможем установить строгое посимвольное соответствие между левой частью этого правила (т. е. частью, стоящей до символа ь->) и некоторой частью рассматриваемой цепочки. Как видно, в этом формализме буквы играют роль переменных в классическом исчислении высказываний; подстановка в данном случае означает замену переменной. .
Таким образом, начав с цепочки (PnQ)/\S, мы можем применить правило г2 (Р соответствует Д, Q — В) и получить
3 Q п "] Р)八 S.
Теперь мы можем применить правило гб (использована замена А на ~1Q и В на」Р), в результате чего выражение приводится к следующему виду(n~!Q V ~1Р)А S.
Правила г8‘一г12 (в отличие от первых восьми правил) позволяют преобразовывать цепочки только целиком. Левые части этих правил [правил продукций (гл. 3)] должны соответствовать полным цепочкам, т. е. таким, для которых не зафиксировано строгого вхождения в состав других цепочек. Так, г8 позволяет записать (РУ Q) Л R как (Р V Q) и как R, но оно не может быть применено к выражению (Р Л Q) V Л.
Построенная с учетом заданных правил подстановки табл. 5.12 соответствует таблице операторов из задачи об обезьяне и бананах: как и операторы, правила преобразуют (согласно определенному закону и при условии выполнения некоторых ограничений) одни объекты нашего пространства в другие. Мы снова можем построить таблицу, указывающую, какие правила могут уменьшить то нлн иное различие.
Таблица 5./2. Таблица зависимостей для решения логической задачи с помощью GPS .
гО 「I г2 「3 г4 「5 гб " r8 r9 rlO rll 川2
РазличияD1:добавлениебук-выD2:устранениебук-выD3:изменениечислаXсимволов 口D4:изменениечислаРазличияD1:добавлениебук-выD2:устранениебук-выD3:изменениечислаXсимволов 口D4:изменениечисладругих СИМВОЛОВ D5: «скобкиD6: перемена порядка буквдругих СИМВОЛОВ D5: «скобкиD6: перемена порядка буквXXXX XX XXX XXXXX XX XXX XX X XX X X XXXX X XX X X XXX
Различия
D1:
добавление
бук-
вы
D2:
устранение
бук-
вы
D3:
изменение
числа
X
символов 口
D4:
изменение
числа
Различия
D1:
добавление
бук-
вы
D2:
устранение
бук-
вы
D3:
изменение
числа
X
символов 口
D4:
изменение
числа
других СИМВОЛОВ D5: «скобки
D6: перемена поряд
ка букв
других СИМВОЛОВ D5: «скобки
D6: перемена поряд
ка букв
X
X
XX X
X X
X
X X
X
X
XX X
X X
X
X X
X X X
X X X X
X
X
X X X
X X X X
X
X
Характер возможных различий между объектами здесь более разнообразен. В самом деле, в двух произвольных цепочках может быть:
разное число букв: увеличивающееся (01) или уменьшающееся (Q2);
разное число символов ~1 (£)3);
разное число прочих связок (04);
измененная расстановка скобок (D5);
перестановка порядка букв (06).
Анализируя действия, которые оказывают на эти различия наши правила, можно построить таблицу зависимостей (табл. 5.12).
Здесь мы не задаем относительного порядка различий. Теперь для программы GPS имеем:
исходный объект OBi =(/?=> ПР) A (~IR n Q),
конечный объект OBf = П (~1Q А Р).
Решение. Первое различие между двумя объектами, зафиксированное программой, состоит в исчезновении в конечном
объекте OBf переменной R. Итак, первая порождаемая нами цель ——УМЕНЬШИТЬ D2 по переменной R. Как следует из таблицы зависимостей (обозначения остались те же), достичь этой цели можно с помощью правил гЗ (<—>), г! (<—*), 「8, rl 1 и г12. Правило г8 (единственное среди всех) может быть непосредственно применено к левой части OBit оно порождает новый объект:
Заметим, что при доказательстве теорем в отличие от случаев обычного пространства (в частности, пространства предыдущей задачи) применение правила нс уничтожает исходного объекта; преобразование лишь добавляет в наше пространство новый объект. Это облегчает работу, поскольку нам больше не нужно возвращаться назад, чтобы оказаться в одном из прежних состояний (в то время как обезьяна не могла одновременно находиться в двух различных местах, здесь все объекты сосуществуют во времени).
Левые части правил гЗ (т^), " (—), rl 1 и г12 в данный момент не могут быть поставлены в соответствие цепочке OBL Итак, мы отмечаем различия и добавляем подцели типа С(О, А, О京,левая часть г;), где / = 3, 7, 11, 12. Кроме того, программа GPS отмечает, что правило г8 может быть применено к OBi некоторым другим способом.
Общая стратегия GPS в выборе цели, которая станет нашей отправной точкой на следующем этапе, состоит в том, чтобы раскрывать цель, расположенную на дереве поиска, на максимальную глубину. В данном случае такой целью является OBL Если сравнить ОВ1 и ОВД то мы обнаружим, что они обладают различиями Q1 и Q2 (поскольку при переходе от OBi к ОВ{ исчезла не буква R, а буква Q).
Программа GPS устанавливает, что данная подцель, в которой нужно одновременно уменьшить два различия, является более сложной, чем первичная цель. Поэтому мы оставляем эту подцель и переходим к более глубоко расположенной цели, которая еще не была раскрыта: это соответствует применению правила г8 к правой части OBi. Однако R все еще не исчезло» и мы продолжаем поиск, используя в преобразовании 05i правило г7.
Таким образом, начальный этап поиска решения данной за* дачи с помощью GPS показан в реальном порядке обработки на приводимой ниже схеме (в фигурных скобках даются некоторые комментарии).
Цель-1: ПРЕОБРАЗОВАТЬ OBi в OBf.
Цель-2: УМЕНЬШИТЬ D2 (переменная R).
Цель-3: ПРИМЕНИТЬ г8 к левой части ОВк
I дает ОВ1 三 R n Р.
Целъ-4: ПРЕОБРАЗОВАТЬ ОВ1 в OBf.
Цель-5: УМЕНЬШИТЬ D2 (переменная Q).
Цель-6: УМЕНЬШИТЬ DI (переменная
ВОЗВРАТ:
{Слишком высокая стоимость по сравнению с Цель~1} {рестарт Цель-2} Цель-2:
Цель-7: ПРИМЕНИТЬ г8 к правой части OBi: дает 052w~]RnQ
Цель-8: ПРЕОБРАЗОВАТЬ ОВ2 в OBf.
Цель-9: УМЕНЬШИТЬ Q2 (переменная Р).
УМЕНЬШИТЬ Р1 (переменная R).
ВОЗВРАТ: {Слишком высокая стоимость по сравнению с Цель-1)
Цель-2:
Цель-10: ПРИМЕНИТЬ "卜)к OBi. {Невозможно, и потому порождается новая цель)
Цель-11: УМЕНЬШИТЬ £И в левой части ОВ] (связка V).
Цель-12: ПРИМЕНИТЬ г6кОВ1 {Поскольку непосредственно осуществить предыдущее уменьшение невозможно} дает OB3=(-|RVP)A 八(-|RnQ)
Цель-13: ПРИМЕНИТЬ "㈠ к ОВЗ
I{Новая попытка}
Цель-14: УМЕНЬШИТЬ Q4 в правой части ОВ4 (связка V).
Цель-15: ПРИМЕНИТЬ гб к 053:
дает ОВ4 =
三(1 R V1Р)八 八(一厂]R V Q)
Цель-16: ПРИМЕНИТЬ "(<-) к 0В4 {Новая попытка}
Цель-17: УМЕНЬШИТЬ 03 в левом компоненте правой части 0В4 (связка V)
Цель-18: ПРИМЕНИТЬ гб к правой части 0В4 ВОЗВРАТ:
{Мы опять получаем 053} {Рестарт Цель-2}
Дель-2:
Цель-19: ПРИМЕНИТЬ гЗ к。瓦• • •
Программа GPS продолжает поиск. Прежде чем прийти к изображенной ниже схеме, она уже породила 52 цели:
Цель-53: ПРИМЕНИТЬ г12 к 0В2: неудача, условие: найти 0510 三力
Цель-54: ПРЕОБРАЗОВАТЬ 0В1 в 0510.
Цель-55: ПРЕОБРАЗОВАТЬ 0В1 в 0510 {Эквивалентная цель, считающаяся более легкой}
Цель-56: УМЕНЬШИТЬ £>3
Цель-57: ПРИМЕНИТЬ г2 к OBi дает OB\l=^P^~\R.
],ель-53 {рестарт}: ПРИМЕНИТЬ г12 к OBI 1 и 0В2:
Iдает 0В12 = ~]~l P^>Q>
Цель-8 {рестарт}: ПРЕОБРАЗОВАТЬ 0512 в OBf.
Цель-58: УМЕНЬШИТЬ /)3 (переменная Р)
Нель-59: ПРИМЕНИТЬ гО к 0512: дает 0В13 = Р Q.
Цель-60: УМЕНЬШИТЬ 04 (связка п).
Цель-61: ПРИМЕНИТЬ r6Q)
к 0813:
дает ОЙ14^ П Р V Q.
Цель-62: УЛТЕНЬШИТЬ 04 (связка V).
Цель-63: ПРИМЕНИТЬ г5 ( >)
к 0814:
даетО515习 ЕР八、Q)
Цель-64: УМЕНЬШИТЬ 03.
Цель-65: ПРИМЕНИТЬ гО к 0В15:
дает 0/316
Цель-66: УМЕНЬШИТЬ D6.
Цель-67: ПРИМЕНИТЬ rl:
дает 0В17 三 (口 Q 八 Р) {Успех} КОНЕЦ.
На этих двух примерах мы убеждаемся, что способ рассуждений, который мы используем при решении этого типа задач “вручную”, несущественно отличается от метода, применяемого в GPS. Идея состоит в том, чтобы, решая задачу, вести рассуждения в терминах различий и характеризовать операторы в соответствии с тем, какие различия они способны уменьшить.
Конечно, нередко мы хорошо “чувствуем” рабочее пространство, что иногда позволяет нам действовать более прямо и менее тупо, чем программа GPS. Но ведь мы также способны и быстро сдаваться там, где GPS продолжает работать и в конце концов добивается результата!
На рис. 5.31 приведено дерево поиска для данной задачи.
Другие задачи, которые можно решить с помощью GPS
Последняя версия программы GPS, разработанная Эрнстом и Ньюэллом (1967), была рассчитана на одиннадцать различных типов задач. Ей требовалось 〜20 с на каждую порожденную цель. Таким образом, для решения задачи об обезьяне и бананах, порождающей 13 целей, требовалось 〜4 мин на ЭВМ типа ИБМ 7090 Унивеситета Карнеги — Меллона, США.
Формальное интегрирование. Первая задача в этом новом цикле состояла в том, чтобы проинтегрировать функцию t№ dt. Результат е"/2 получался за 3 мин после порождения 11 целей. Выражение [sin? af cosa/十 £-】] di интегрируется с резуль-
Рис. 5.31. Дерево поиска программы GPS дляРис. 5.31. Дерево поиска программы GPS длярешения логической задачи.решения логической задачи.
Рис. 5.31. Дерево поиска программы GPS для
Рис. 5.31. Дерево поиска программы GPS для
решения логической задачи.
решения логической задачи.
татом log / + (3&)-回11匕£ за время приблизительно вдвое большее с порождением примерно в два раза большего числа целей.
Отметим, что в данном пространстве конечный объект не слишком хорошо задан. В самом деле, здесь к нему предъявлено лишь одно требование — не содержать знака интеграла. Задачи такого типа не становятся от этого более сложными; надо лишь ввести для возможных различий абсолютную шкалу приоритетов, причем в начале списка будет стоять исчезновение знака интеграла. В данном случае в программу GPS ввели шесть операторов, хорошо приспособленных к шести стандартным
случаям интегрирования, а также четыре оператора дифференцирования. Еще один оператор отмечает, что интеграл суммы равен сумме интегралов. Классические алгебраические действия ——сложение и умножение, а также свойства ассоциативности и коммутативности программируются отдельно и включаются в GPS.
Миссионеры и людоеды. Три миссионера и три людоеда находятся по одну сторону реки, через которую они хотят переправиться. В их распоряжении имеется лодка, которая может выдержать вес только двух человек. Кроме того, если в какой- то момент число людоедов станет больше числа миссионеров, миссионеры будут съедены независимо от того, на каком берегу реки это случится. Как им всем переправиться в лодке иа другую сторону реки?
В данном случае объекты состоят из двух частей, каждая из которых соответствует тому, что находится на каждом из берегов реки. Каждая часть содержит описание числа миссионеров, числа людоедов и указание на наличие или отсутствие лодки. Итак, для каждого из двух направлений передвижения мы располагаем пятью операторами преобразования, поскольку на лодке может находиться либо один людоед, либо один миссионер, либо людоед с миссионером, либо два людоеда, либо, наконец, два миссионера.
Программа GPS, используя характерный для нее подход “нелн ——средства" и легко имитируемая вручную, строит 57 целей и приходит к следующему решению:
(3, 3, 1) + (2, 2, 0) -> (3, 2, 1) > (3, 0, 0) ■> (3, 1, I) -> (1, 1, 0)->
(0, 0, 0)<-(1, 1, 1)-(0, 1, 0)《(О, 3, 1)<-(0,. 2, 0)« (2, 2, 1)令
На этой схеме берег, с которого началось перемещение, описывается в следующем виде: число миссионеров, число людоедов, наличие (1) или отсутствие (0) лодки. Отметим, что данное решение является симметричным по отношению к шестому пересечению реки. В действительности это свойство имеет объяснение и сохраняется в других примерах той же задачи, как показано Саулом Амарелем (1968).
Ханойская башня. Эта задача, придуманная французским математиком Эдуардом Люка, представляет собой головоломку, в которой нужно перекладывать кольцо с одного стержня на другой. В начальный момент времени имеются три стержня Л, В и С и четыре кольца, каждое из которых по внешнему диаметру строго меньше предыдущего; все кольца надеты на стержень Л так, что самое маленькое находится наверху. За один
ход мы можем переместить одно верхнее кольцо с одного стержня на другой; при этом класть большие диски на меньшие запрещено. Как переложить все кольца с Л на С?
Как и в предыдущих задачах для использования одного из шести допустимых операторов должны быть выполнены некоторые условия. В этом примитивном пространстве GPS решает задачу за 46 этапов, не порождая ни одной бесполезной цели.
Три монеты. На столе лежат три монеты: две крайние — кверху решеткой, средняя ——кверху гербом. Ход состоит в переворачивании двух произвольных монет. Задача заключается
Рис. 5.32. Семь мостов через Преголю.
в том, чтобы только за три хода перевернуть все монеты так, чтобы они легли одной стороной вверх. В описание объектов включен счетчик, который учитывает это ограничение. Для полного решения данной задачи программе GPS достаточно породить 10 целей.
Семь мостов через Преголю. Река Преголя в Калининграде отделяет от берегов два острова, которые соединены друг с другом и с остальной частью города семью мостами (рис. 5.32).
В данной задаче операторы соответствуют четырнадцати возможным перемещениям. Задача состоит в том, чтобы выйти из произвольной точки и вернуться в нее, пройдя по каждому мосту только один раз.
Как доказал Леонард Эцлер в 1736 г.; решить эту задачу невозможно. Поскольку особых способов решения наша программа не знает, в данном случае она терпит поражение. Единственное, что может программа, — перебрать все возможности, но уже после перебора различных способов прохождения по шести мостам объем памяти компьютера оказался исчерпанным.
Два кувшина. Имеется неограниченный запас воды и два кувшина на 5 и 8 л. Как налить в маленький кувшин 2 л воды?
После нескольких попыток, обусловленных существенной разницей между двумя крайними ситуациями, GPS решает задачу, выделив при этом 24 цели.
Отец и сыновья. Отец, два его сына и лодка находятся по одну сторону реки. Отец весит 80 кг, сыновья — по 40 кг каждый. Как переправить эту семью на другую сторону, если лодка выдерживает только 80 кг?
Программа дает ответ, обработав 33 цели.
Продолжение последовательности букв. Требуется к последовательности букв BCBDBE добавить 2 следующие буквы, Подобно другим тестам такого типа, эта задача ставит фундаментальный вопрос о мере простоты результата. В данном случае мы можем допустить, что равным образом подойдут продолжения BF и ВС. В случае ответа ВС последовательность будет повторяться с самого начала. Что касается ответа 3F D (в принципе более предпочтительного), в общем случае он не является однозначным. Итак, здесь особенно важен тот способ, которым задача записывается для GPS. Эта запись менее очевидна, чем в рассмотренных выше случаях. Объекты задаются не в виде последовательностей букв, а в виде частичных последовательностей с определенными отношениями между буквами. Две буквы могут быть связаны либо отношением тождества, которое указывает на их идентичность, либо отношением следования, указывающим на то, что вторая буква стоит в алфавите после первой.二
Что касается конечного объекта, то на него накладываются три ограничения, которые должны быть выполнены, как только мы преобразуем исходный объект. Первое состоит в том, что должны быть заполнены пробелы- (в нашем случае два имею- шихся пробела заменяются двумя буквами ——х и у). Второе ограничение требует, чтобы множество отношений, позволяющих описать конечную цепочку, было как можно более простым: если одна и та же цепочка описывается с помощью одного и того же набора отношений двумя различными способами, то более простым считается то описание, в котором операнды отделяются друг от друга минимальным числом букв. Третье ограничение состоит в том, что каждая буква должна участвовать по крайней мере в одном отношении. В основном можно применять два оператора: один приписывает двум буквам в последовательности некоторое отношение, а другой — букве определенное значение. Кроме того, возможен третий оператор, кото-
')F идет за Е во французском алфавите, и в этом смысле BF должно следовать за ВС, BD, BE. — Прим. ред.
рый задает порядок прохождения последовательности слева направо. Таким образом, программа GPS постепенно обнаруживает и отмечает присущие последовательности свойства. Приписывая заранее значения буквам 尤 и у, GPS не вслепую, а логически выводит те значения, которые она должна выбрать, чтобы эти буквы вступали в те же отношения, что и буквы, которым они соответствуют. Следовательно, для программы GPS изучение исходного объекта приводит к схеме, показанной на рис. 5.33.
Пробегая заданную последовательность слева направо, GPS отмечает отношение тождества между первой и третьей
Сле^вани^ СледованиеСледование
I~IIII 1
—*— В А・ С —‘ А— В * D ―А “ в —А Е А 工U
ТоэгсдествоТождество
Рис. 5.33. Последовательность букв, которую требуется продолжить.
и третьей и пятой буквами. Поэтому, чтобы это отношение было опять подтверждено, GPS должна принять значение В. Оставшаяся часть последовательности обрабатывается параллельно. В целом для получения правильной последовательности с помощью такого индуктивного метода программа порождает 27 целей.
Грамматический анализ. Проанализируем фразу естественного языка в соответствии с заданной грамматикой. В число грамматических правил, введенных в нашу программу, входят следующие правила:
rl: Фраза содержит именную группу, за которой следует глагольная группа, а за ней вновь следует именная группа.
г2: Именная группа может состоять из группы прилагательного, за которой следует слово, выполняющее функции существительного.
гЗ: Именная группа может состоять из слова, выполняющего функции существительного.
г4: Группа прилагательного может состоять из слова, выполняющего функции прилагательного.
Еще одно правило уточняет, что, например, слово porte («дверь» или《несет》)может быть либо именем существительным, либо глаголом, fort (《форт》или «сильный») может быть либо существительным, либо прилагательным..
Итак, пусть основная цель состоит в том, чтобы квалифицировать последовательность символов une epaisse porte ferme le fort (исходный объект) как фразу (конечный объект). Поскольку epaisse (толстый) может относиться только к классу прилагательных, наша программа делает вывод, что porte используется здесь как существительное, а также делает предположение о том, что ferme является глаголом (закрывает), следовательно, fort — существительное.
Исходная английская фраза ——free variables cause confusion (свободные переменные причиняют неудобства)——анализируется с помощью 19 цёлей. Эта задача демонстрирует преимущества эвристического метода для некоторых типов алгоритмов (например, таких, которые используются в синтаксическом анализе).
Доказательство теорем. Кроме задачи исчисления высказываний программа GPS может доказывать некоторые теоремы из области исчисления предикатов первого порядка, используя особый метод, получивший название резолюции (он был предложен в 1931 г. Жаком Эрбраном и запрограммирован в 1965 г. Дж. А. Робинсоном — см. гл. 3).
Классическая теорема Черча (1965), в которой утверждается, что
НиВг/Vz [[尸 3, у) n (Р &, z) Д Р (z, z))] A [Р (〃, у) A Q (〃,у)]\ п n [Q (〃,z) A Q (г,引,
после упрощения, сколемизации и приведения к требуемому для метода резолюции виду (все предикаты приведены к нормальной конъюнктивной форме, а кванторы исключены), может быть доказана с помощью GPS. Доказательство завершается после того, как порождение 59-й цели позволяет обнаружить противоречие.
Заключение
Итак, несмотря на то что программа GPS работает довольно медленно и порождает иногда большое число промежуточных целей, с ее помощью (используя идею выявления различий между исходным и конечным объектами и возможные способы уменьшения этих различий) можно решать многие нетривиальные задачи. Улучшив программу GPS за счет использования таблиц зависимостей и задания точного порядка различий, исследователи вернулись к этим идеям, сумев применить их в двух областях: в области формального интегрирования (про-
грамма Saint Дж. Слэйгла, 1963) и в логике (Дж. Кинлэн, 1969).
Следует, однако, отметить, что множество задач, решаемых GPS, не очень представительно: все они более или менее однотипны и ни одна из них не является по-настоящему сложной. Если GPS решает задачу, то это обусловлено тем, что заранее известно, что она умеет обрабатывать данный тип задач, а также что в любом случае она может существенно сократить поисковое пространство.
Кроме того, оказывается, что метод различий может применяться только в том случае, если при решении не используется целостное «видение» задачи, т. е. этот метод «близорук»: он исходит из предположения, что к решению ведет некий непрерывный путь, что никогда не придется идти в обход и что задачу можо разбить на последовательность элементарных этапов, приблизительно равных по значимости. Безусловно, существует большой класс задач (в него, кстати, входят логические головоломки и формальные задачи), для которых эти условия не удовлетворяются. В гл. 6——8 мы рассмотрим многие из таких задач.
И наконец, следует отметить, что записать условие задачи в необходимом для GPS виде не так просто. Действительно, подобная запись условия “предугадывает" решение: в каждом случае мы должны задать системе множество подходящих различий, таблицу зависимостей, а также дополнительную информацию. Кроме того, для описания некоторых ситуаций с помощью операторов мы должны быть достаточно “нзобретз- тельными11 (например, в задачах о семи мостах через Преголю и о продолжении последовательностей букв). Однако вот уже более 25 лет замысел этой программы не перестает восхищать.
Глава 6
ИГРОВЫЕ ПРОГРАММЫ.
ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ
В интеллектуальных играх соревнование между участниками заключается в том, что они поочередно принимают решения, не зная, какое следующее решение примет противник. Классический подход, реализуемый мыслящим существом для решения этой задачи, состоит в прогнозировании последующих ходов——своих и ответных ходов противника: если я сделаю такой ход, тогда противник может ответить тем или другим ходом, на каждый из этих ходов в моем распоряжении имеется такой-то и
Рис. 6.1. Пример дерева при поиске хода в шахматах.
такой-то ответ и так далее. Таким образом можно построить дерево допустимых ходов (рис. 6.1) и возможных игровых позиций.
В результате более или менее длительного анализа, взвесив все “за” и “против” той или иной позиции, играющий делает ход (назовем его ходом первого уровня), который ему представляется наилучшим. Игровые программы, составленные для ЭВМ, основаны на тех же принципах, и в данной главе содержится описание наиболее общих методов их разработки.
В начале главы рассмотрен способ программного построения дерева допустимых ходов и преимущества, которые дает его использование. В разд. 6.2 речь пойдет о методах оценки возникающих позиций, для которых Клод Шеннон в 1950 г. ввел понятие оценочной функции. В разд. 6.3 и 6.4 изложены
основные методы поиска очередного хода и их усовершенствованные модификации. Показано также, насколько эти методы аналогичны процедурам решения задач с применением теории графов. .
В конце главы дан анализ рассмотренного подхода и рассмотрены его недостатки и ограничения. В разд. 6.8 вкратце изложены особенности принципально другого подхода, применяемого для решения данной задачи. .
Дерево допустимых ходов ,
Необходимость построения дерева связана в первую очередь с тем, что не существует способов точной оценки исходной позиции. Так, в начале шахматной партии невозможно предсказать выигрыш белых или черных при безупречной игре обеих сторон. Построение дерева допустимых ходов в какой-то степени компенсирует этот недостаток. В идеальном случае следовало бы найти весьма большое число ходов, которые в- конце концов привели бы к одной из точно определяемых финальных позиций: один из королей получает шах и мат; один из противников объявляет вечный шах; один из королей получает пат. К сожалению, в большинстве случаев это не так.
В начале шахматной партии каждый противник имеет возможность сделать 20 различных ходов. Следовательно, после первого обмена ходами на доске уже возможны 400 различных позиций, но, естественно, нельзя заранее определить, какая именно из них возникнет на самом деле. Проводя анализ игры, можно последовательно рассматривать ходы обеих сторон, но заметим, что к середине партии число ходов уже достигает 50, а число ветвей дерева будет составлять величину К% где К—— постоянное число допустимых ходов на каждом уровне для каждого играющего, а п ——порядковый номер хода. На практике для шахмат можно положить К = 4Q и для 6 ходов число ветвей составит 406 = 4 096 000 000. При переходе на каждый следующий уровень это немалое число нужно еще умножить на К, что увеличивает объем вычислений, и, в частности, время, необходимое для поиска ходов и оценки конечной позиции. Они экспоненциально растут с увеличением глубины анализа, что делает невозможным точный просмотр ситуации на достаточно большую глубину. Даже сверхпроизводительная ЭВМ, которая в состоянии проанализировать 10 конечных состояний в 1 с, за время непрерывной работы со дня образования Солнечной системы, т. е. 4,6 млрд, лет, была бы способна проанализировать "только'* 10 X 4,6 X 10э X 366 X 24 X 3600 позиций, что составляет 15-1018 или 〜4012 позиций, или 12 ходов, т. е. по 6 ходов
с каждой стороны, что всего в 2 раза больше, чем рассмотренная выше глубина анализа, равная 6. Даже такая ЭВМ не смогла бы рассчитать все варианты всего на 12 ходов вперед! В то же время известно, что средняя шахматная партия продолжается обычно не менее 40 ходов. Именно это противоречие вызывает интерес к игре в шахматы и составляет ее очарование.
Впрочем, исследования в области искусственного интеллекта часто направлены на решение задач, аналогичных тем, которые возникают в шахматах разработке методов борьбы с лавинообразным нарастанием времени анализа игровых ситуаций. При этом основная цель состоит не столько в составлении хорошо играющей программы, сколько в разработке общих методов, которые можно было бы перенести в другие области и с их по-
Рнс. 6.2. Доска для игры в тик- мощью решать другие пробле- тзк-ту.мы. Играми, представляющи
ми интерес с точку зрения искусственного интеллекта, являются такие игры, для ьоюрых дерево допустимых ходов невелико, что дает возможность полностью рассчитать все возникающие позиции с помощью современных ЭВМ. Такими играми являются, например, тик-так-ту, двух-, трехходовые шахматные задачи или еще некоторые игры, называемые Ним, для позиций которых удается построить хорошую оценочную функцию. В это же. число входят и игры со спичками, ставшие популярными благодаря фильму Алена Ресне "Последний год в Мариенбаде".
Игра тик-так-ту ведется на поле из 9 клеток. Оба играющих имеют по три фишки. В первом туре играющие по очереди расставляют свои фишки (по одной за ход) на свободных клетках. Во втором туре, когда размещены все 6 фишек, играющие поочередно перемещают по одной фишке на свободные соседние клетки. Соседней считается клетка, расположенная в одном шаге от данной. Направления шагов, связывающих клетки, показаны на рис. 62 Выигрывает тот, кто первым расположит свои фишки по прямой линии.
Отметим, что определение последовательности ходов, разрешенных правилами этой игры, не представляет трудностей и хорошо поддается алгоритмическому описанию. Найдем принцип построения алгоритма в общем виде для игр с двумя игроками, в которых используются фишки, расположенные на клетках иг-
Таблица 6.1
Занятость (I, /)Состояние поля на текущий момент. Оно может
быть пустым, занятым своей фишкой или фишкой противника■
Фишка (t, j)Вид фишки на поле в том случае, когда заня
тость (I, /),пусто
Введем п направлений Полное число возможных перемещений фишки в игре
Разрешенные направле- Те из направлений, которые разрешены для фиш- ияки р
рового поля. При поиске хода для одного из играющих рассмотрим последовательно клетки, занятые его фишками. Для каждой из фишек опишем перемещения во всех разрешенных пра
Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).вилами направлениях. 'Введем для каждой клетки величины, представленные в табл. 6.1.
Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).
Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).
Очевидно, что в игре тик- так-ту имеется 8 возможных направлений перемещения фишек. Все фишки имеют одинаковое значение и могут перемещаться во всех разрешенных направлениях. Случаи вы-
хода фишки за пределы игрового поля рассмотрены ниже.
возможных направлений перевозможных направлений переВ шахматах существует 16
возможных направлений пере
возможных направлений пере
мещения фигур: 8 рассмотренных выше и 8 испециальных,* направлений для коня. Для пешек разрешено только одно направление, для ферзя ——8, Каждое направление характеризуется парой чисел (d%, dy), определяющих его наклон. В табл. 6.2 приведены значения этих пар для направлений, показанных на рис. 63
Таблица 6.2
dx dydx dy445-1 О5-1 О7О—17О—1
dx dy
dx dy
4
4
5
-1 О
5
-1 О
7
О
—1
7
О
—1
Фигура р может перемещаться в каждом из разрешенных для нее направлений на некоторое число шагов, максимум которого обозначим через n pas max (р). Его величина зависит от вида фигуры:
в шахматах n pas max = 1 для короля и 8 для ферзя, а для всех фишек тик-так-ту n pas max — 1. Если ход, заключающийся в перемещении фигуры, не приводит к ее выходу за пределы игрового поля и заканчивается на свободной цлетке или клетке, занятой фигурой противника с взятием последней в соответствии с правилами, тогда ход считается допустимым и принимается.
В шахматах, кроме того, существуют особенности, связанные с рокировкой, взятием на проходе, запретом на ходы, приводящие к шаху своему королю, превращением пешек, которые требуют дополнительных усилий по их обработке, но принцип поиска хода всегда можно описать следующим образом:
ПОВТОРЯТЬ ДЛЯ ВСЕХ полей 亿 /) доски
ЕСЛИ поле (/, /) занято своей фигурой
ТО фигура (£, /); [своя фигура на поле (f, j)] ПОВТОРЯТЬ ДЛЯ ВСЕХ направлений 已[1. число направлений]
ЕСЛИ направление ен множество разрешенных направлений (р) ТО у j
ПОВТОРЯТЬ ДЛЯ ВСЕХ шагов ^[l,npas max(p)J х х + dx (направление) У《 у + З (направление)
ЕСЛИ (尤,у) ен в пределах доски И поле
(х, у)声 свое
ТО зарегистрировать ход: [(/, /) -> (х, //)] КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
Из приведенного выше ясно, что наиболее простой способ ограничения дерева заключается в ограничении глубины анализа числом 1. В этом случае необходимо: 1) найти все «допустимые ходы; 2) оценить их; 3) сделать наилучший из оцененных ходов.
Принимая во внимание, что партия должна закончиться выигрышем или проигрышем, возможный процесс игры можно представить в виде:
ЕСЛИ существует выигрывающий ход
ТО сделать его; конец.
ИНАЧЕ рассмотреть другие разрешенные ходы;
пусть с — следующий ход
ЕСЛИ существует выигрывающий ответ противника на ход с
ТО исключить ход с
ИНАЧЕ учесть число возможных ответов противника после хода с (повторный вызов процедуры поиска хода)
КОНЕЦ ЕСЛИ
Сделать ход, на который противник имеет минимальное число ответных ходов
КОНЕЦ ЕСЛИ
Стратегия «первого уровня》. Рассмотрим позицию в игреСтратегия «первого уровня》. Рассмотрим позицию в игретик-так-ту, приведенную на рис. лучший ход, используя стратегию первого уровня.По правилам игры существует всего 4 допустимых хода:а: (3,2)-(3,1)Ъ: (2,1) ->(3,1)С: (2,l)f (1,1)d: (l,3)f (1,2)тик-так-ту, приведенную на рис. лучший ход, используя стратегию первого уровня.По правилам игры существует всего 4 допустимых хода:а: (3,2)-(3,1)Ъ: (2,1) ->(3,1)С: (2,l)f (1,1)d: (l,3)f (1,2)6.4. Покажем, как найти наи6.4. Покажем, как найти наиРис. 6.4. Ход черных.Рис. 6.4. Ход черных.
Стратегия «первого уровня》. Рассмотрим позицию в игре
Стратегия «первого уровня》. Рассмотрим позицию в игре
тик-так-ту, приведенную на рис. лучший ход, используя стратегию первого уровня.
По правилам игры существует всего 4 допустимых хода:
а: (3,2)-(3,1)
Ъ: (2,1) ->(3,1)
С: (2,l)f (1,1)
d: (l,3)f (1,2)
тик-так-ту, приведенную на рис. лучший ход, используя стратегию первого уровня.
По правилам игры существует всего 4 допустимых хода:
а: (3,2)-(3,1)
Ъ: (2,1) ->(3,1)
С: (2,l)f (1,1)
d: (l,3)f (1,2)
6.4. Покажем, как найти наи
6.4. Покажем, как найти наи
Рис. 6.4. Ход черных.
Рис. 6.4. Ход черных.
Ни один из них не является непосредственно выигрывающим, а ход d приводит к немедленному проигрышу, поэтому сразу его отбросим. Один из трех оставшихся ходов, а именно ход @, дает возможность противнику ответить четырьмя ходами, а два других —тремя. Оба последних хода приведут к выигрышу, в чем можно убедиться, применяя ту же стратегию. Анализ других позиций этой игры показывает, что для нее подобная стратегия является вполне приемлемой. Но при этом необходимо сделать два замечания.
Замечание 1. Рассмотренная стратегия первого уровня в принципе может быть применима и к любому уровню. В тех случаях, когда нельзя построить полное дерево ходов, с ее помощью можно проводить анализ ходов на любую выбранную глубину, используя определенные числовые значения в возникающих ситуациях. Таким числовым значением может быть,
например, число возможных ответных ходов противника. В конце концов после полного перебора всех позиций, вместо них используют логические величины ВЫИГРЫШ или ПРОИГРЫШ.
Замечание 2, Стратегия первого уровня может примеяя гься независимо от вида игры. Она дает хорошие результаты в игре тик-так-ту, позволяя избежать запоминания полного дерева допустимых ходов. Ее можно использовать в дебюте и на других стадиях шахматной партии. Она пригодна и в других настольных играх, где все свободные клетки равноценны. В общем случае эта стратегия может быть применима к любой игре с двумя участниками и допускает определенные модификации в зависимости от вида игры.
На рис. 6.5 приведен пример полного дерева для игры тик- так-ту, содержащего все допустимые ходы для случая, когда черные начинают игру ходом своей фишки в центр игрового поля. При таком ходе победа черных обеспечена при любых ответных ходах противника. Из-за симметрии игрового поля только 2 ответных хода белых являются существенно различными——ходы на клетки а н 6, рассмотрением которых мы и ограничимся. Ходы на клетки с, g и i эквивалентны ходу на клетку а, в ходы на клетки d, f n h ——ходу на клетку Ь. За счет этого ширина дерева сразу уменьшается в 4 раза. Затем, (для экономии места и времени) мы учтем только наилучшие ходы черных на каждом уровне, т. е. такие ходы, которые неизбежно приводят к выигрышу. Таким образом, представленное на рис. 6.5 дерево содержит легко определяемую последовательность ходов. Заметим, кстати, что кроме первого уровня, все ходы белых являются вынужденными вплоть до восьмого, который уже не имеет значения,——черные выигрывают в любом случае.
В тех же случаях, когда не может быть построена удовлетворительная оценочная функция или если число допустимых ходов слишком велико для того, чтобы построить полное дерево, надо найти способ ограничить это дерево. Такая необходимость возникает в шахматах, шашках, игре триктрак, бридже, покере, Отелло, морпионе, го и т. д. Известны два способа ограничения разрастания дерева допустимых ходов по ширине и по глубине. Ограничение по ширине достигается отбрасыванием ходов, которые можно считать слабыми в данной позиции. Например, если ферзь находится под боем, можно не рассматривать ход пешкой на другом конце доски. На самом же деле и здесь возникают проблемы, так как такой ход чуть позже может привести к скрытому шаху или вилке. А это в свою очередь может привести к мату или ходу, спасающему оставленного под боем ферзя, а возможно, и к превращению продвинутой пешки
Первый нЗ тернье
К
а. b с
d
h
圉
SMaapwiu черные
Рис. 6.5. Полное дерево лает первый ход.
Ни выбор (по жела - нию)
Третий ход бепвх (снова бвкужЗе к“ь応)
Пербый ко<? бе^ых
второй в,夕 v^”sr (лучший во®)
Второй gj белых (6в四乎декньР, другой io& приводит к 心/wd- ленному npouapacuy)
Третий ход черных ^вынужденный)
Конец первого тура Четвертый эсод ^^we (лумиш口
ходов в игре тик-так-ту. Выигрывает тот, кто де
в ферзя. Иначе говоря, мы возвращаемся к не имеющей решения проблеме ——оценке произвольной позиции, на основании которой можно было бы точно судить о силе того или иного хода. При попытке уменьшить ширину дерева чаще всего отбрасываются ходы, связанные с жертвами, т. е. такие ходы, которые дают временное преимущество противнику для того, чтобы через несколько ходов добиться выигрышной позиции.
Почти все реально используемые алгоритмы в отличие от человеческого разума не допускают никакого ограничения по ширине дерева. Человек обладает гораздо лучшим общим видением позиции, культурой шахматного мышления, собственной стратегией, которой он руководствуется в данной партии, что, несомненно, позволяет ему лучше, если не безупречно, оценивать позицию. Для ЭВМ такая оценка не является невозможной (разд. 6.5), но для этого, разумеется, нужно использовать более сложные методы, чем изложенный здесь подход. Однако, если нельзя избежать экспоненциального увеличения времени вычислений за счет уменьшения ширины дерева, это нужно сделать за счет уменьшения глубины анализа.
Первая идея на этом пути состоит в следующем: раз и навсегда надо признать, что можно не идти в глубину слишком далеко и что средняя глубина анализа устанавливается на основе несложных предварительных расчетов и разумного времени поиска решения, которое зависит от производительности используемой ЭВМ. Обычно глубина анализа составляет 〜5 (во всяком случае не более 10 иполуходов"——передвижений белых или черных фигур).
Вторая идея заключается в том, что глубина анализа не обязательно должна быть одинаковой для всех ветвей дерева. В частности, нежелательно прерывать анализ посередине серии разменов фигур — подобные нестабильные позиции трудно поддаются оценке. Такие же замечания можно сделать по поводу позиций, в которых взятие фигур происходит вследствие шаха королю противника. В подобных случаях анализ позиций каждой из сторон должен прекращаться только тогда, когда позиция становится относительно спокойной.
Заметим, что подобные идеи впервые были использованы английским математиком Аленом Тьюрингом, который начиная с 1951 г. моделировал эту стратегию на вполне конкретных примерах.
Оценивание позиций
Теперь речь пойдет о том, чтобы каждой позиции S поставить в соответствие числовую величину 尸(S), которая принимала бы тем большие по абсолютной величине отрицательные
значения, чем большим является преимущество противника. Конечно, не существует никакой теории, с помощью которой можно было бы получить для шахмат точный вид функции 尸, но можно получить лишь знак оценки для некоторых известных дебютов. В отдельных случаях результаты могут быть еще хуже, например при позиционном преимуществе можно ■ получить даже отрицательную оценку. Именно в этом состоит основная причина несовершенной игры программ такого типа. И если все-таки используется такой подход, то нужно при каждом плохом ходе программы попытаться внести изменения в вид функции F, которые привели бы к устранению ошибки.
Наиболее важной частью оценки всегда является материальная сторона: первый член функции 尸 пропорционален алгебраической сумме стоимостей фигур с той и другой стороны и называется балансом (В). Стоимости шахматных фигур подсчитываются обычным образом: пешка стоит 1, конь и слон — 3, ладья — 5 и ферзь — 10. Полный вид функции F имеет полиномиальную форму, где к уже рассмотренному материальному балансу добавляются члены, оценивающие другие аспекты игровой позиции:
尸(S) = @5 + bR + с” + dC + еР + f 4
Если одной из сторон удалось выиграть слона (+3), но при этом проиграть 'пешку (——1), то первый член функции будет равен 2а, где величина коэффициента а, как и b, cf dy е и /, зависит от “коварства" программиста. Следующие члены идут в порядке убывания их важности. Величина R учитывает относительную безопасность обоих, королей и является тем большей, чем лучше защита короля после рокировки. Коэффициент b должен изменяться в течение партии, а по мере исчезновения с доски главных фигур может стать нулевым. При этом короли начинают поддерживать свои пешки и даже помогать в атаке, защищая свои собственные фигуры.
Член М характеризует подвижность фигур. Он зависит от числа клеток, на которые могут сделать ход фигуры. Для каждой фигуры вводится весовой коэффициент, зависящий от ее игровых возможностей. Член С зависит ат степени контроля за центром доски, т. е. за полями d4 и d5, е4 и е5. Связанный с ним коэффициент d имеет большие значения только в начале и середине партии. Член Р служит для учета структуры пешечного строя. Он тем больше по величине, чем лучше пешки защищены и внедрены в лагерь противника, а также чем больше у противника сдвоенных, изолированных и незащищенных пешек.
Наконец, последний член А учитывает атакующие возможности позиции и зависит от наличия защищенных фигур за четвертой горизонталью, ладей на открытых вертикалях, сдвоенных ладей, атакованных полей вблизи короля противника, а также от возможности разменять опасные фигуры противника, объявить шах королю противника или блокировать его фигуры. В некоторых программах оценочная функция учитывает и другие аспекты и содержит большее число членов.
Вычисление весовых коэффициентов а,…,f зависит от терпения программиста, и ничто не мешает изменять их величины во время партии в зависимости от полного числа сделанных ходов и/или от числа фигур, оставшихся на доске. Очевидно, что оценочная функция такого вида допускает жертвы фигур. При этом член В становится отрицательным (у противника появляется преимущество по крайней мере на одну фигуру), но взвешенная сумма всех остальных членов компенсирует с ощутимым перевесом эту материальную потерю.
В гл. 9 показано, как коэффициенты а, f могут изменяться в программе в зависимости от обстоятельств.
Если бы можно было построить функцию F, абсолютно точно оценивающую позицию, то в программе достаточно было бы найти все допустимые ходы, оценить позиции, к которым они приводят, и сделать ход, приводящий к наилучшей из них. В действительности как нельзя построить дерево, достаточное для достижения позиции, в которой можно было бы отдать явное ппедпочтение одному из противников, так и нельзя построить совершенную оценочную функцию. Необходим компромисс между средней глубиной анализа и качеством оценочной функции, а стремление улучшить и то и другое приведет к возрастанию времени вычислений.
В следующем разделе рассмотрена еще одна проблема: как связать конечную позицию, которая достигается при максимальной глубине анализа, с эффективным поиском хода на первом уровне. Для ее решения разработан метод, получивший название метода минимакса, который послужил отправной точкой для машинных игровых программ.
Метод минимакса и выбор очередного хода
Прежде всего отметим, что из-за несовершенства оценочной функции начальной позиции оценка промежуточных позиций, встречающихся по мере продвижения по дереву допустимых ходов, ничего не дает, пока не достигнута установленная максимальная глубина анализа п. Оценки таких позиций могут оказаться очень нестабильными. При достижении глубины 几 еле-
^ачамная позиция^ачамная позициясвои уровеньсвои уровень8866с оценками стабильныхс оценками стабильных8позиций на раз-8позиций на раз-勿0^?幵d про- ти恥иксеСвой勿0^?幵d про- ти恥иксеСвой"АтМника ka"АтМника kaРис. 6.6. Дерево допустимых ходов личных глубинах.Рис. 6.6. Дерево допустимых ходов личных глубинах.
^ачамная позиция
^ачамная позиция
свои уровень
свои уровень
8
8
6
6
с оценками стабильных
с оценками стабильных
8
позиций на раз-
8
позиций на раз-
勿0^?幵d про- ти恥иксе
Свой
勿0^?幵d про- ти恥иксе
Свой
"АтМника ka
"АтМника ka
Рис. 6.6. Дерево допустимых ходов личных глубинах.
Рис. 6.6. Дерево допустимых ходов личных глубинах.
дует исключить из расчетов вклад выбывших из игры фигур и тем самым привести в действие так называемый механизм ^успокоения". На рис. 6.6 показано дерево, не все ветви которого имеют одинаковую длину. Последняя зависит от числа ходов, которые нужно проанализировать для достижения спокойной позиции. Двигаясь по дереву в обратном направлении, мы присвоили числовые оценки позициям (вершинам), которые хронологически предшествуют позициям, связанным с концами ветвей. Покажем, каким образом мы это сделали.
В 1945 г. Оскар Моргенштерн и Джон фон Нейман предложили метод, нашедший применение в теории игр. Дополнительное важное предположение при его использовании состоит в том, что оценочная функция, используемая противником, совпадает с нашей.
Выбор хода с нашей стороны определяется максимальным значением оценочной функции для текущей позиции, в то время как противник, наоборот, стремится сделать ход, который ее минимизирует. Таким образом, в наихудшем для нас варианте, везде, где ему предоставляется эта возможность, противник делает ход, в результате которого наша позиция становится наиболее слабой. Все происходит так, как будто очередной ход противника отыскивается из условия минимальной оценки позиции данного уровня. И наоборот, поиск своего хода из позиции соответствующего уровня мы ведем из условия максимальной оценки позиции. Поэтому метод, предложенный Моргенштерном и фон Нейманом, получил название метода минимакса. По приведенной схеме, шаг за шагом, выполняется оценка всех промежуточных узлов (разветвлений дерева). Для того чтобы найти числовую оценку данного узла, необходимо знать оценки
868
Рис. 6.7. Получение оценок восхождением по дереву с помощью метода минимакса для предыдущего случая.
всех непосредственно следующих из него узлов и присвоить максимальное или минимальное значение в зависимости от принадлежности уровня. Последовательно продолжая процедуру оценки до корня дерева, т. е. до начальной позиции, в конце концов найдем свой наилучший ход в позиции первого уровня, которому соответствует наиболее высокая восходящая оценка. Отметим, что эта оценка не имеет ничего общего с оценкой, полученной применением функции 尸 непосредственно к начальной позиции без учета последующих ходов.
На рис. 6.7 приведен пример анализа игры с помощью метода минимакса. В начальной позиции предполагаются разрешенными только два хода 女i и ^2- Ход 月1 приводит к позиции pl, которая допускает в качестве ответных ходов k3 и 女4. Рассмотрим сначала ветвь, образуемую ходом 女з и предположим, что допустимыми ходами из этой позиции являются 女5,九6 и k7. В ‘результате хода ^6 возникает позиция, в которой возможны три ответных хода — i8,々9 и Ео.
Предположим, что наша программа предусматривает максимальную глубину анализа, равную 4. Таким образом, в ней предусматривается анализ и нахождение оценок последующих позиций 女8,々9, ^io. Оценки, получаемые с помощью функции 尸, выполняются на ветвях нижней части дерева. Если в начальной позиции следует свой ход, то противнику предоставляется очередь сделать ход на последнем из рассматриваемых уровней: из трех возможных позиций (с оценками 3, 1 и 4) он, таким образом, выбирает (по крайней мере, если использует ту же оценочную функцию) наиболее слабую, т. е. с оценкой, равной 1.
Алгоритм метода минимакса имеет следующий вид:
МИНИМАКС: {Спуститься до максимальной глубины и оценить позицию; выбрать позицию с минимальной или максимальной оценкой в зависимости от глубины; перейти к следующей ветви того же уровня, если она существует, в противном случае подняться на один уровень}
Нам потребуется использовать некоторые вспомогательные процедуры последующего назначения:
ПОИСК ХОДА (ПОЗИЦИЯ, ИГРАЮЩИЙ): поиск разрешенных ходов для текущей позиции.
ПАКЕТ ХОДОВ (ПОЗИЦИЯ, ЛАГЕРЬ): упорядоченное размещение найденных ходов в памяти. •
ИГРА (ПОЗИЦИЯ, ХОД): определение позиции после данного хода.
ХОД НАЗАД (ПОЗИЦИЯ, ХОД): процедура, обратная предыдущей, ——определение позиции, существовавшей до сделанного хода.
ОЦЕНКА (ПОЗИЦИЯ, ГЛУБ): определение числового значения, связанного с позицией.
Для упрощения описания алгоритма будем умножать оценки на нечетных уровнях на —1, тогда на любом уровне задача сводится только к нахождению максимума..
Кроме того, используются следующие обозначения: ГЛУБ —— текущая глубина анализа; МАКСГЛ — максимальная глубина анализа. Другие процедуры, встречающиеся в тексте алгоритма, служат для определения следующих величин; ОЦЕНКА (ПОЗИЦИЯ)—оценки текущей позиции; ОЦН (ГЛУБ)— оценки максимального значения, полученного для данного уровня; Е (ГЛУБ) — множества допустимых ходов в течение анализа 1).*
D В тексте алгоритма встречаются переменные и процедуры, назначение которых автором не определено.
Переменные:
ЛАГЕРЬпринимает два значения 土 1 в зависимости от того, чья позиция оценивается (своя +1 или противника —1).
ПОЗИЦИЯ ——размещенная в памяти информация о расположении фигур в данной позиции, которая в дальнейшем используется для вычисления значений оценочной функции, определения последующих позиций н т. д.
МИНИМАКС—1) название алгоритма.
числовое значение полученной оценки.
Процедуры:
ЗАГРУЗКА ПАМЯТИ (£\ ГЛУБ)—включение сделанного хода в множество ходов Е.
РАЗГРУЗКА ПАМЯТИ (Е, ГЛУБ)—исключение взятого назад хода из множества Е.
——Прим, перев.
Итак, значение 1 для оценки позиции получается, если мы принимаем решение сделать ход 女5 на третьем уровне. То же самое относится и к ходу fee, поскольку противник и в этом случае имеет ответ, позволяющий не допустить наших надежд ня хорошую позицию и получить оценку, равную 1. Из всех ходов на этом уровне только ход k7 имеет заметные преимущества. Действительно, в этом случае минимальная оценка позиции, которая может возникнуть после ответного хода противника, равна 5. Таким образом, мы получаем оценки трех позиций, возникающих в результате последовательных ходов 月卜 女з и k7. Мы делаем ход, который приводит к позиции с максимальной оценкой, т. с. из рассмотренных выше оценок 1, 1 и 5 мы выбираем оценку 5, которая соответствует ходу k7. Это значение становится оценкой позиции после ходов k\ и 女з, полученной с помощью метода минимакса.
На рис. 6.7 показан окончательный результат анализа дерева ходов с помощью метода минимакса. Рядом с каждой промежуточной позицией на рисунке проставлена оценка, подсчитанная по этому методу.
Отметим, что в этой процедуре, как и в решении задачи о восьми ферзях, по мере спуска по ветвям дерева следует делать ходы, а при восхождении по дереву брать их назад. Для этого необходимо при анализе позиции на каждом из уровней сохранять в памяти проанализированные ходы. Отметим, что в отличие от времени вычислений, которое, мы видели, резко возрастает с глубиной анализа, требуемый объем памяти является не очень большим. Ветви дерева, не соответствующие единственной последовательности найденных с помощью метода минимакса ходов, не должны храниться в памяти. В последующем используется только наилучшее числовое значение на каждом уровне. Вот почему с этой задачей вполне справляются даже широко доступные микроЭВМ.
Существует еще одна процедура, теоретически эквивалентная методу минимакса, с помощью которой всегда получается такой же результат, но заметно быстрее, так как целые части дерева исключаются без проведения анализа. В основе этой процедуры лежит идея Дж. Маккарти: использование двух переменных, обозначенных а и 0 (1961). Однако, несмотря на усовершенствование этой процедуры, к ней не проявляется интереса из-за одного существенного недостатка: партия играется ход за ходом без общего плана. Для человека такой стиль игры неприемлем: сила разума заключается в способности понять ситуацию, развить ее в том или ином направлении, адаптировать стратегию игры к конкретным обстоятельствам.
В настоящее время разрабатываются алгоритмы, более близкие к образу мышления человека. Исследователи в области искусственного интеллекта концентрируют усилия в составлении именно таких программ. Программы, играющие в шахматы, должны учитывать весь многовековой опыт этой игры, в частности такие позиционные особенности, как двойное нападение на фигуру, наличие открытых вертикалей, недостатки рокировки, блокировка фигур и т. д. Все эти термины, обычные для шахматиста, должны быть понятны программе и использоваться в ней.
Подобные методы, основанные на глубоком знании предмета, начинают находить применение во многих других областях: в химии, медицине, математике (разд. 6.8, гл. 7).
Алгоритм минимакса
ДАННЫЕ: (ПОЗИЦИЯ, ЛАГЕРЬ)
РЕЗУЛЬТАТ: (значение оценки позиции = МИНИМАКС)
ГЛУБ<- 1; ЛАГЕРЬ <~1: Е(1)<—ПАКЕТ ХОДОВ (ПОЗИ
ЦИЯ,ЛАГЕРЬ);
ОЦН ⑴—一8
ПОВТОРЯТЬ ПОКА ГЛУБ> 1
ПОВТОРЯТЬ ПОКА £(ГЛУБ),пусто.
ХОД ЗАГРУЗКА ПАМЯТИ (Е (ГЛУБ)) ПОЗИЦИЯ^-ИГРА (ПОЗИЦИЯ,ХОД) ЕСЛИ ГЛУБ = МАКСГЛ
ТО ГЛУБ<-ГЛУБ+ 1
ЛАГЕРЬ^--ЛАГЕРЬ
Е (ГЛУБ) ПАКЕТ ХОДОВ (ПОЗИЦИЯ,ЛАГЕРЬ) ОЦН (ГЛУБ) -оо
ИНАЧЕ {уровень максимальной глубины: оценка и сравнение позиции} ОЦН (ГЛУБ) МАХ [ОЦН (ГЛУБ), ЛАГЕРЬ * ОЦЕНКА (ПОЗИЦИЯ)!
{ход назад с уровня максгл}
ХОД— РАЗГРУЗКА ПАМЯТИ
(£ (ГЛУБ)).
ПОЗИЦИЯ^ХОД НАЗАД (ПОЗИЦИЯ,ХОД)
{оставаться на этой глубине пока есть ходы}
КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
{Возврат к началу цикла}
ЕСЛИ ГЛУБ= 1 ТО МИНИМАКС <- ОЦН (1); конец
КОНЕЦ ЕСЛИ
ЛАГЕРЬ <——ЛАГЕРЬ
ГЛУБ<-ГЛУБ- 1
{Взятие назад последнего хода на этой глубине}
ХОД —РАЗГРУЗКА ПАМЯТИ (Е (ГЛУБ))
ПОЗИЦИЯ —ХОД НАЗАД (ПОЗИЦИЯ,ХОД) {Нахождение восходящей оценки по методу минимакса) ОЦН (ГЛУБ)МАХ [ОЦН (ГЛУБ),ОЦН(ГЛУБ + 1)] КОНЕЦ ПОВТОРЯТЬ КОНЕЦ МИНИМАКС
Альфа ——бета-процедура
Основная идея метода состоит в сравнении наилучших оценок, полученных для полностью изученных ветвей, с наилучшими предполагаемыми оценками для оставшихся. Можно показать, что при определенных условиях некоторые вычисления являются лишними. В отличие от метода минимакса, который по сути заключается в построении пространства ходов путем их прямого перебора, в данном методе значительная часть ходов подвергается неявному перебору, проводимому с помощью процедуры отбрасывания частей дерева.
На примере, приведенном на рис. 6.8, поясняется идея процедуры отсечения. Предположим, что узел S соответствует позиции, в которой ход принадлежит нам. При этом в нашем распоряжении несколько возможных ходов, два из которых показаны на рисунке. В результате одного из них возникает позиция Л, в результате другого —— позиция У. Предположим также, что позиция А уже полностью проанализирована и найдено значение ее оценки (а). Перейдем к анализу позиции У. Допустим, что один ход из этой позиции приводит к позиции Z, оценка которой (полученная по методу минимакса) равна z.
Предположим далее, что z W а. Кроме того, пусть величина say являются значениями оценки в узлах S и У. Тогда в любом случае выполняется неравенство у W z, поскольку в пози-
Свои во8: 〃7ааСвои во8: 〃7ааСвой асод: танСвой асод: танХоЗ противника: minХоЗ противника: min
Свои во8: 〃7аа
Свои во8: 〃7аа
Свой асод: тан
Свой асод: тан
ХоЗ противника: min
ХоЗ противника: min
Оцениваемые позицииОцениваемые позицииОцененные [1
Оцениваемые позиции
Оцениваемые позиции
позиции II
Рис. 6.8. Неглубокое альфа-отсечение.
ции У ход за противником, который из всех возможных ходов выбирает такой, который приводит к позиции с минимальной оценкой. .
Отсюда следует у W z W а, а так как очевидно, что s больше или равно а и у, то справедливо соотношение у WzWaW W 5. Эти неравенства показывают, что неизвестное значение оценки у в узле У не будет оказывать влияния на последующие результаты, и, следовательно, анализ всех последующих ветвей, выходящих из узла У, кроме Z, оказывается бесполезным. Другими словами, после анализа узла Z остальные ветви дерева, выходящие из узла У, могут быть отброшены (альфа-отсечение).
Эти рассуждения легко распространить на случай, где на первом уровне ход- принадлежит противнику. При этом оценка з на глубине 2 должна удовлетворять условию о)^ р (бета- отсечение^. Но это справедливо и для узлов, находящихся на существенно различных глубинах дерева, при условии, что они принадлежат уровням одного из противников. Такими узлами являются-Л н Z на рис. 6.9.
Рассмотрим этот рисунок более подробно. Пусть, как и в предыдущем случае, мы должны сделать ход из позиции S и имеем всего две возможности, которые приводят к позициям А и U. Предположим, что полный анализ позиции А уже завершен и полученная оценка равна а. Начиная анализ позиции U» отметим, что после нечетного числа промежуточных ходов, в данном случае равного 3, возникает позиция Z, оценка которой
Рис. 6.9. Глубокое отсечение.
равна z. Снова допустим, что найденное значение z меньше а. Для узла У, расположенного на более высоком уровне, непосредственно бедующем за Z, найдем оценку у, которая удовлетворяет соотношению у ^ z, так как ход из позиции У принадлежит противнику. Покажем, что и в данном случае результат анализа остальных позиций, вытекающих из вершины У, не может изменить конечного результата, т. е. оценки S.
Рассмотрим позицию V. Ее анализ может привести к двум различным результатам: и>у или v = у. Очевидно, что в первом случае результаты анализа других ходов не могут привести к изменению значения оценки q так как уже известно, что g W 2, а величина у в результате такого анализа может быть только уменьшена. Во втором случае справедливо равенство “ =q отсюда с учетом предыдущих неравенств имеем v — у ^ W а & а, т. е. узел У получает меньшую по величине оценку, чем узел Л, и таким образом опять возвращаемся к схеме, приведенной на рис. 6.8. Окончательно получаем, что в обоих случаях оценка s позиции S не зависит от других ветвей дерева, выходящих из узла У, и анализ последних может не проводиться (глубокое отсечение типа а).
Рассуждая аналогично, можно рекуррентно спуститься до узла Z, лежащего на уровне произвольной глубины, принадлежащей той же стороне, что и уровень S. Если в этой позиции ход принадлежит противнику, то, естественно, пределом для
Начальная позиция S
Рис. 6.10. Альфа — бета-процедура
отсечения дерева, приведенного на рис. 6.6
анализа позиций на нисходящих ветвях дерева служит уже минимальное значение оценки р. Отсечение типа 0 можно выполнить всякий раз, когда оценка позиции, возникшей после хода противника (обозначим ее(о), превышает значение р. Алгоритм поиска строится так, что при анализе дерева оценки своих ходов и ходов противника сравниваются с величинами а и 0 соответственно. В начале вычислений этим величинам присваи- ваются значения плюс и минус бесконечности, а затем, по мере восхождения к корню дерева по описанной выше схеме, находится оценка начальной позиции и наилучший ход для одного из противников (рис. 6.10 и табл. 6.3).
Таблица 6.3
Ход
Наилучшая оценка
Позиция на глубине я
Оценка позиции
Условие
Действие
Свой
Противника
а
В
Своя
Противника
2
2 = а
值=0
альфа-от- сечение бета-отсечение
Найденный ход существенно зависит от позиций, лежащих на произвольной глубине и принадлежащих той же стороне. При проведении анализа величине а необходимо присваивать пре-, дельные значения оценки для четных уровней, а величине 0—f для нечетных, -начиная с корня (единственной вершины нулевого уровня).
Процедура отсечения может быть применена только начиная с того момента, когда получены оценки по крайней мере двух конечных узлов. По мере нахождения оценок значение а для каждого уровня постепенно увеличивается, а 0 ——уменьшается; В конце анализа их значения выравниваются.
Альфа — бета-алгоритм дает тот же результат, что и метод минимакса, но выполняется быстрее. С его помощью можно получить хорошие результаты прн удачно составленной оценочной функции и достаточно большой . глубине анализа, что, однако, требует большого объема вычислений. Очевидно, что этот метод можно с успехом использовать при решении шахматных задач на мат в п ходов (п обычно меньше 6). Оценочная функция в этом случае является точной, а достижение максимальной глубины анализа потребует разумного времени. В настоящее время для программ, разработанных для современных микроЭВМ и играющих по этому методу, характерен переход от среднего качества игры к хорошему.
В заключение отметим одно интересное свойство: алгоритм находит тем больше ходов за определенное время, т. е. является тем более производительным, чем более упорядоченно расположены вершины при отыскании каждого хода. В идеальном случае (естественно, недостижимом на практике) вершины на каждом уровне должны располагаться по монотонно убывающим значениям оценки. Для приближения к идеальному случаю в некоторых программах, прежде чем применить алгоритм до глубины, например, 6, сначала используется этот алгоритм до глубины 2, после чего на основе полученных результатов выполняется упорядочивание узлов. Затем вновь проводится анализ уже до глубины, например 3, производится новое упорядочивание, и только после этого алгоритм применяется к полной глубине 6. Два первых захода, в течение которых обрабатывается небольшое число вершин, выполняются очень быстро и позволяют заметно приблизиться к идеальному упорядочению вершин / для уровня 6. При этом полное время вычислений сокращается по сравнению со случаем выполнения анализа сразу на всю глубину без предварительной подготовки.
Основные недостатки игровых программ, основанных на анализе дерева ходов
Игровые программы, построенные по принципу систематического перебора допустимых ходов, обладают рядом существенных недостатков. Рассмотрим два основных недостатка, присущие подобным программам.
Первый недостаток: полное отсутствие стратегии
abedef ghabedef ghРис, 6.11. Окончание партии. Ход белых.Рис, 6.11. Окончание партии. Ход белых.Иными словами, текущаяИными словами, текущаяОчевидно, что при таком подходе к игре, который реализуется в подобных программах, каждая новая позиция рассматривается в отрыве от всех остальных. Можно сказать, что программа не ведет игру, а анализирует последовательность позиций, полностью независимых друг от друга. Альфа ——бета-процедура не позволяет составить единого плана игры, она не дает возможности действовать в соответствии с заранее выбранной стратегией. Все принимаемые решения умещаются в оценочной функции и определяются ее вн игровая.ситуация, определяемая, в частности, степенью развития фигур, наличием линий атаки, организацией пешечной защиты, наличием проходных пешек, оценивается всего лишь с помощью нескольких очень просто вычисляемых членов. Конечно же, они не в состоянии ни предсказать развитие партии на большое число ходов, ни направить партию к заранее определенному выигрышному окончанию. Наиболее простые примеры, иллю
abedef gh
abedef gh
Рис, 6.11. Окончание партии. Ход белых.
Рис, 6.11. Окончание партии. Ход белых.
Иными словами, текущая
Иными словами, текущая
стрирующие этот недостаток, часто встречаются в окончаниях. Рассмотрим позицию с тремя пешками у черных против двух пешек у белых, приведенную на рис. 6.11.
Каждому любителю шахмат ясно, что выигрыш белых неизбежен. Но для его реального достижения требуется составить план на большое число ходов вперед, который обеспечил бы продвижение пешки а2 в ферзи. Своим первым ходом。2 — а4 белые в конце концов обеспечивают себе победу. Шахматист сделает такой ход немедленно, он с неизбежностью приведет к проигрышу обладателя черных фигур, так как его король уже не сможет войти в квадрат пешки а4 (квадрат 〃4, а8, е8, е4). Пешка а4 может пройти в ферзи самостоятельно без помощи короля. Так как ни одна пешка черных не в состоянии проде^ лать то же самое, то для них партия проиграна. Игровые программы, составленные в соответствии с рассмотренными выше методами, часто не способны провести даже такой простой анализ. Покажем, что в данном примере анализ на 10 полуходов вперед (с учетом вынужденного хода короля белых для уклонения от промежуточного шаха) не достаточен для проведения
пешки @2 в ферзи. На основании этого алгоритм, заложенный в основу подобной программы, придет к однозначному выводу о том, что черные обладают преимуществом — три пешки против двух! Можно сказать, что в программе делается ставка только на гигантскую производительность ЭВМ, но никак ни на способность к формальному мышлению с логическим анализом позиций и эффективным поиском решений. В игре против программ такого типа может сложиться впечатление, что программа придумала красивую идею нападения на ту или иную фигуру, однако при ближайшем рассмотрении оказывается, что уже через два хода позиция становится проигрышной, т. е. в действительности никакой идеи и не было!
Программы этого семейства “сильны” лишь постольку, поскольку они в состоянии рассчитывать большое число ходов за ограниченное время. Производительность ЭВМ в принципе влияет одинаково и на вычисление квадратного корня, и на игру в шахматы. Единственное различие между микропроцессором и большой ЭВМ состоит в скорости вычислений: первые в состоянии к настоящему времени (1986 г.) вычислить тысячу ходов, а вторые (как ЭВМ типа Cyber)——пятьсот тысяч ходов за время 〜1 мин. Но даже такой производительности может не хватить для систематического перебора всех допустимых ходов.
Второй недостаток: эффект горизонта
Необходимость иметь фиксированное значение максимальной глубины анализа в программах, работающих по принципу перебора допустимых ходов, как уже говорилось, приводит к двум основным недостаткам. Первый уже рассмотрен выше——программа может не “видеть” (и тем более оценить) последствия хода, которые проявляются на глубине, превышающей заранее установленную. На второй, менее очевидный недостаток обратил внимание Ганс Берлинер (в прошлом чемпион мира по шахматам по переписке) в своей диссертации в 1974 г. Он получил название эффекта горизонта и является неизбежным следствием первого недостатка. Оказывается, что программы, построенные по принципу систематического перебора допустимых ходов, по природе стремятся все .сделать для того, чтобы все невыгодные события оказались за пределами максимальной глубины анализа, т. е. за пределами горизонта. Они не хотят видеть надвигающуюся катастрофу и располагают одним средством борьбы с ней ——отодвигать неизбежный исход с помощью абсурдных ходов.
Рассмотрим пример, приведенный в диссертации Г. Берлинера (рис. 6.12). Слон белых, расположенный на поле @4, окружен черными пешками, и его потеря неизбежна. Стратегия
хорошего шахматиста, играющего белыми, заключалась бы в том, чтобы максимально скомпенсировать эту потерю. В данном случае имеется возможность получить за слона одну пешку и бороться за выигрыш другой (таким образом, перевес остается за белыми, которые в
abcdefghabcdefghРис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.Рис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.приведенной позиции имеют преимущество в одну фигуру—коня).
abcdefgh
abcdefgh
Рис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.
Рис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.
В шахматах приняты следующие обозначения 】): К 一 конь, С — слон, Л — ладья, Ф — ферзь, Кр — король, для пешек специальные символы не используются. Вертикали обозначаются буквами от а до ft, горизонтали — цифрами от 1 до 8, знак X означает взятие, + шах. Таким образом, 1 — е5 означает, что пешка на вертикали е продвигается пер
вым ходом на один шаг (исходное поле не указывается), а 3 — К X Се7 + означает, что на 3-м ходу конь берет слона, расположенного на поле е7 и объявляет при этом шах.
Если же за белых играет программа рассмотренного выше типа, то она выбирает совсем другую стратегию. Ей достаточно построить ход игры таким образом, чтобы потерю слона вывести из поля своей видимости (со своего горизонта), а в этом случае все происходит так, как будто бы слон никогда не будет взят. Это находится в полном согласии с прямолинейной механической логикой альфа ■—бета-метода: достаточно найти последовательность из большого числа ходов с вынужденными ответными ходами черных, отодвигающую момент взятия слона противником. Так, в рассматриваемой позиции, если глубина анализа составляет 5 полуходов, лучшим ходом, найденным с помощю альфа ——бета-процедуры окажется ход е5! С этого хода начинается реализация следующего плана “спасения”:
—е5d X ?(в противном случае теряетсяконь /7)
—Kd5 н еслиKXKd5, то 3 —〃XKd5:(а)
еслислон уходит с поля е7, то3 ——С63;(b)
если6 X Са4, то 3 — К X Се7+,(с)
1)Обозначения шахматных ходов в книге соответствуют принятой в западных странах системе обозначений, отличающихся от используемых в нашей стране тем, что на каждом шаге указывается лишь поле, на которое ставится фигура, совершающая ход. — Прим, ре以
В случае (а) черные, очевидно, должны продолжать Ь5Х X Са4, но угрожает Л X Cd7. Эту угрозу черные вполне могут отвести ходом 4 ——...Себ, но он уже лежит за пределами глубины анализа. В итоге программа, играющая за черных, выигрывает пешку вместо слона! В случае (Ь) программа играет СЬЗ. При этом оба коня защищены, а слон якобы спасен! На самом же деле он потерян, так как затем последует ход черных 3 — ...с4. Наконец, в случае (с) взятые черными слона является преждевременным и белые отыгрывают фигуру. Правильный ход на первом уровне программа сможет найти только в том случае, если максимальная глубина на анализе МАКСГЛ для нее равна 7. Для рассматриваемого случая это равносильно анализу 168 800 позиций!
Эффект горизонта может привести к очень большим потерям, и его устранение не представляется возможным, так как он порожден самим подходом к составлению программ. Именно с его последствиями связаны основные отличия игровых программ от игры человека. Он способен причинить много огорчений программисту, наблюдающему за игрой своей программы. Известен случай, когда в игре программы Chess 4.4 возникла позиция, в которой пешка достигла седьмой горизонтали. Для программы такая пешка стоит очень дорого, но более глубокий анализ показал бы, что защитить ее невозможно и она будет потеряна. Программа, естественно, играет так, чтобы не потерять эту пешку, максимально отдаляет момент потери н... после серии неудачных ходов теряет все накопленное преимущество. В конце концов ее противник берет пешку. (Правда, после этого Chess 4.4 обнаруживает все свои лучшие качества, начинает хорошо играть и выигрывает!)
Психологические аспекты принятия решения
Нелегко точно определить, когда появились первые работы по психологии принятия решения. В 1894 г. во Франции Альфред Бине опубликовал работу ^Психология шахматистов и людей, выполняющих большие объемы вычислений,\ В ней он впервые затронул, в частности, важные вопросы изучения памяти человека, его воображения и эрудиции. Он интересовался возможностями абстрактного мышления человека и делал выводы на основе своих наблюдений над людьми, которых заставлял выполнять вычисления или играть в шахматы вслепую и вслух комментировать ход своих мыслей.
Впоследствии опыты Бине в области шахматной игры были продолжены и завершены рядом психологов, таких, как Адриан Де Грот, Герберт Саймон и Джон Байлор. Бергсон, первый ком-
ментатор опытов Бине, в 1902 г. высказал такую мысль: кажется, что представление в мозге содержит не столько информацию о собственно физическом мире (в шахматах — это фигуры и доска), сколько указание о будущих направлениях развития.
В 1920 г. малоизвестный психолог Вюрцбургской школы Отто Сейц разработал первую концептуальную модель процессов мышления, которые он описал как лянейную цепочку элементарных операций. Сейц, таким образом, выделил элементарные операции, дал им определение и в то же время точно описал общие, как ему казалось, процессы, присущие любой человеческой деятельности. Он показал, что в процессе принятия решения большую роль играют такие понятия, как интеллектуальная индивидуальность, существо и частные характеристики решаемой проблемы. По его представлениям движущей силой, которая толкает мышление по этим цепочкам, является “общий закон предвидения результатов”, способность с определенной степенью абстракции рассуждать по плану, двигаясь от одной промежуточной цели к другой.
Заслуга и удача исследователей искусственного интеллекта на сегодня состоит в способности эффективно с помощью программ демонстрировать справедливость этих идей. Сейчас видно, как сбьыись предвидения таких ученых, как Бине и Сейц. Они, несомненно, первыми рассмотрели и научно показали, что такие способности мозга, как мышление и умозаключение, находятся в одном ряду с другими наблюдаемыми на опыте явлениями. Они уже на пороге двадцатого века показали, что наши интеллектуальные возможности прежде всего обусловлены двумя хорошо различаемыми явлениями: памятью и восприятием.
Память
Оперативная память современных ЭВМ, обладающих максимальной производительностью, насчитывает от 10 млн. до 1 млрд, двоичных единиц информации. Оперативной называют такую память, которая постоянно доступна для ЭВМ. По аналогии можно сказать, что наш мозг, в котором мы храним всю необходимую информацию, является нашей оперативной памятью в отличие от внешней памяти, которая для ЭВМ представляет собой диски и ленты, а для нас ее роль играют книги в библиотеках ——они снабжают нас внешней информацией, доступ к которой осуществляется не так легко.
Среднее время доступа к информации, хранящейся в оперативной памяти ЭВМ в двоичном виде, составляет в настоящее время 〜10-9 с. ЭВМ умеет очень быстро выполнять небольшое
число элементарных операций. Но было бы ошибкой считать, что ЭВМ превосходит нас по объему памяти. В человеческом мозге в среднем находится около 10 млрд, нейронов, каждый из которых имеет синаптический контакт с большим числом — от одной до десяти тысяч (точное значение неизвестно) ——своих маленьких собратьев. Таким образом, в мозге существует 10 000 млрд, точек обмена информацией (невероятно, не правда ли? Вы, возможно, плохо представляете свое настоящее богатство!...). Кроме того, никто сегодня не в состоянии оценить объем информации, содержащейся в одном нейроне; без всякого сомнения, он намного больше, чем двоичная единица, принимающая значения типа да/нет. Не исключено, что один нейрон содержит тысячу или миллион таких единиц информации. Возможно, что информация кодируется одновременно во многих нейронах сразу. В любом случае не вызывает сомнения, что мы обладаем гигантской памятью по сравнению с оперативной памятью самых больших современных ЭВМ. Наличие такого громадного объема предполагает, что должен существовать также развитый и эффективный механизм доступа к этой памяти. Вот почему почти не удивляет экспериментальное подтверждение того факта, что мы непрерывно структурируем наше знание, выделяем множество опорных точек, даем имена новым элементам информации, кодируем, отбираем и, наконец, все это... забываем!
Эксперимент также показывает, что часть мозга используется особым образом. Речь идет о существовании так называемой кратковременной памяти. Множество образующих ее нейронов находится в прямой связи с органами чувств и взаимодействует с ними. Именно эта часть мозга воспринимает всю новую информацию перед тем, как ее отправить в долговременную память. В кратковременной памяти информация разрушается очень быстро ——если ее не подкреплять, то через 5 с она уже будет разрушена. В долговременной же памяти информация сохраняется значительно дольше ——часы, дни, годы — без дополнительной внешней активизации, только за счет чисто внутренних процессов, которые, возможно, происходят с нами во сне. В то же время чтение из долговременной памяти требует гораздо больше времени, чем из кратковременной ——многие секунды вместо сотых долей секунды.
Восприятие
Приведем некоторые данные, позволяющие лучше понять трудности решения проблем, связанных с человеческим мозгом. Двухуровневая организация нашей памяти показывает, в ча-
стности, что наиболее важная часть мозга находится в прямой связи с рассмотренными уровнями. С ними связано моделирование восприятия и организация управления мозгом в процессе всей его эволюции. При этом первостёпенную роль играет визуальная система восприятия. Кроме того, в мозге возникают структуры, способные эффективно кодировать пространственновременную информацию, которой мозг буквально “пропитан”. Конрад Лоренц утверждает, что человеческая порода произошла от породы больших обезьян, которые в один прекрасный день в своем восприятии реального пространства пришли к выводу, что жизнь стала сложнее, охота труднее, и они смогли представить себе обстоятельства, опасные для своей жизни. В то же время установилась доминирующая роль пространственных представлений. Действительно, реальное пространство служит нам фундаментальной моделью для описания всех, остальных внутренних отношений и представлений. В частности, пространственные понятия широко используются в языке; примером может служить фраза “Вы это ясно видите?"
Нам осталось рассмотреть один важный и удивительный момент, который касается экспериментальных оценок объема нашей кратковременной памяти. Объем оказался очень небольшим: кратковременная память человека не может содержать более 7 (±2) элементарных единиц информации. Легко убедиться, что эта величина мала с практической точки зрения. Мы мгновенно вычисляем, например, произведение 7 X 8, но для вычисления произведения 72 X 8 нам требуется больше времени; сказывается то, что нужно приложить небольшие усилия для управления памятью, на что уходит дополнительное время. Для выполнения умножения 72 X 89 почти всем потребуется бумага и карандаш, которые представляют собой часть нашей обычной внешней памяти. Если запретить использование этих инструментов, операция будет выполняться значительно дольше, так как обмен с нашей долговременной внутренней памятью, как мы видели, требует много времени.
Из-за малого объема кратковременной памяти (всего 7 единиц информации) всякая новая информация разрушает предыдущую. Вот почему оказывается довольно трудно проследить обратный ход своих мыслей.
Рассмотрим теперь, что представляет собой единица измерения информации, которую мы назвали элементарной единицей. Введем ключевое понятие и дадим ему точное определение. Элементарная единица информации представляет собой блок информации, который мы способны сразу и целиком распознать, закодировать и запомнить. Его величина и содержимое зависят от конкретного индивидуума. Например, если кто-нибудь
диктует громким гологом последовательность из нулей и единиц, вы с большим трудом сможете запомнить с полдюжины последовательных цифр. Но если эту последовательность слышит специалист по информатике, который привык к работе в восьмеричной системе счисления, в каждом блоке кодирует и запоминает группу из трех двоичных цифр, то он без труда удержит в памяти 6 или 7 блоков, в каждом из которых находится по одной восьмеричной цифре, т. е. около двадцати двоичных элементов.
Пример
1 0 1
1 0 0
1 0 1
0 1 1
0 0 0
0 1 0
1 1 1
разбивается на
101
100
101
011
000
010
111
кодируется в
5
• 4
5
3
0
2
7
Запоминаемое число: 5 453 027
Кодировка: ООО: 0 001: 1 010:2 011:3 100:4 101 :5 110:6 111:7
Еще один пример ——память музыкантов, которые запоминают мелодию по мере ее звучания, что связано с очень высоким уровнем организации их долговременной памяти. В отличие от этого слабо натренированное ухо смогло бы запомнить не более двадцати первых нот.
Из этого можно сделать вывод, что содержащаяся в кратковременной памяти информация представляет собой имена блоков, размещенных в долговременной памяти данного индивидуума.
Исследование психологии шахматистов
Рассмотрим (по работам де Грота, Саймона и Виникоффа) два различных аспекта анализа шахматной игры: восприятие и вывод. Особенно выделим работы де Грота, который смог четко разделить предметы исследований и провести их сравнение. Он выполнил анализ протоколов рассуждений шести гроссмейстеров (два из них ——чемпионы мира), четырех международных мастеров, двух голландских чемпионов и десяти экспертов.
Восприятие
Эксперимент заключался в том, что шахматистам показывалась доска с воспроизведенной на ней позицией, взятой из реальной партии (обычно из ее середины). При этом анализировалось движение глаз шахматистов (в определенных случаях оно автоматически регистрировалось с помощью камеры, установленной перед ними). Через время Л доска убиралась, и после выдержки в течение времени /2 их просили восстановить пози-
цию, которая была у них перед глазами. Обращалось внимание, в особенности, на порядок, в котором восстанавливалось положение фигур, и на число правильно поставленных фигур.
Эксперимент показал, что глаза шахматистов не очень часто останавливались на какой-либо точке доски ——не более четырех раз в 1 с. Во время каждой из этих остановок можно было с помощью бокового зрения просмотреть пространство в два угловых градуса, т. е. около девяти примыкающих друг к другу полей доски. Более того, последовательность остановок обнаруживала повторяемость даже у гроссмейстеров. Отсюда можно сделать вывод, что восприятие позиции происходило не в геометрическом порядке (например, слева направо и снизу вверх), но во всех случаях определялось логический порядком, который зависит от анализируемой позиции. Взгляд чаще задерживается и возвращается на определенные критические поля, от которых он перемещается по различным направлениям. К ним всегда относятся поля, занимаемые королями и прилегающие к ним. И наоборот, некоторые фигуры и конфигурации полей (например, для белых это поля /2, g2,九2, ЛМ) были «сфотографированы» взглядом всего лишь один раз. Очевидно, что они соответствуют классическому элементарному блоку информации для специалистов по шахматам. Дольше всего рассматривались, а следовательно, и запоминались, необычные конфигурации, в которых фигуры слишком продвинуты или плохо защищены.
В экспериментах выбиралось время наблюдения 九=5 с, время выдержки % = 30 с, в среднем каждая позиция состояла из 24 фигур. При этом процесс восстановления позиции у всех шахматистов проходил одинаково. Сначала появлялась на доске одна фигура, а затем другие, логически с ней связанные прямой или косвенной защитой нли нападением. В случае эквивалентности логических связей шахматист сначала рассматривал фигуры, характеризуемые наиболее необычным расположением. При таком малом времени наблюдения почти не оставалось надежды на правильное восстановление позиции. Тем не менее гроссмейстерам это удалось в 5 случаях из 14. Полные результаты показывают заметное различие между мастерами и другими шахматистами (табл. 6.4).
Отметим, что для гроссмейстеров характерно прежде всего то, что они делали гораздо больше, чем простое восстановление позиции, они еще приводили ее анализ: это единственно верный путь, поскольку именно так шахматист 《сживается》с позицией. Его вниманием и глазами начинают управлять линии наиболее актнвннх действий, воображение подсказывает интересные ходы, следующие не только непосредственно из данной позиции, но и на несколько ходов вперед.
Таблица 6.4. Оценка качества восстановления шахматной позиции. Для определения счета использовалась функция, предложенная де Гротом, которая учитывает число правильно восстановленных фигур
Гроссмей-стерыГроссмей-стерыМастераМастерасШахматисты
Гроссмей-стеры
Гроссмей-стеры
Мастера
Мастера
Эксперты класса С i)
Число абсолютно правильных 540°
восстановлений из 14
Общий счет из 264217217158119
К шахматистам класса С относятся хорошие клубные игроки.
abcdefghabcdefghРис. 6.13. Позиция, предъявляемая шахматистам на 5 с для восстановления (ход черных).Рис. 6.13. Позиция, предъявляемая шахматистам на 5 с для восстановления (ход черных).87654 32187654 321Приводимые здесь результаты де Грота относятся к экспериментам с реальными позициями. Когда же предлагаемые для запоминания позиции характеризовались случайной расстановкой фигур, все шахматисты ——от гроссмейстеров до любителей из клубов — оказывались равны между собой. Никто не справлялся с поставленной задачей, все оказались совершенно неспособны запомнить позицию за 5 с!
abcdefgh
abcdefgh
Рис. 6.13. Позиция, предъявляемая шахматистам на 5 с для восстановления (ход черных).
Рис. 6.13. Позиция, предъявляемая шахматистам на 5 с для восстановления (ход черных).
87654 321
87654 321
Математик и шахматный гроссмейстер М. Эйве, когда ему на 5 с показали позицию, приведенную на рис. 6.13, провел следующий анализ. «Сначала я запомнил, что позиция черных никуда не годится». Он восстановил блок фигур вокруг черного короля: король + + ферзь черных + два коня
черных + пешка еб + ферзь белых и последний в блоке слон черных /8. Блок фигур, возникший после рокировки белых, был восстановлен сразу без затруднений. Время между размещениями фигур хронометрировалось. Если оно было меньше 2 с, то де Грот считал, что эти фигУРы принадлежат одному блоку информации в памяти. Таким образом у Эйве пока выявлены два блока. Он отметил, что предложенная позиция ему слегка напомнила партию, сыгранную Флором и Фином! (Это не поддается проверке, но несомненно, что такая аналогия очень помогла Эйве восстановить позицию.)
Две пешки а2 и Ь2, а также пешки %7, g6, ладья 无8 также были расставлены вместе, тогда как все оставшиеся фигуры раздельно: е5, Kb5, JIdl, ЛЬ4, @7. По поводу последней пешки Эйве
заявил следующее: 《Я не рассмотрел правую сторону позиции черных. Но у них должна быть пешка на @7》. (Это следует из логики развития партии и присутствие на доске пешек 质 и 力2 подтверждает этот вывод.)
Эйве тем временем продолжает извлекать сведения из своей памяти. Он увидел и другие любопытные особенности позиции: «Атака белых аказывает сильное давление на позицию черных, но в противовес ей у меня две лишние фигуры» (Эйве считает своей сторону, которой принадлежит очередной ход). «Чем пожертвовать? Очень силен конь белых, но его можно взять ходом ЛХК力5, это действительно неплохо, так как ладья занимает странную позицию на 力4 и больше никому не угрожает. Теперь я думаю, что выигрыш у черных в кармане, но минуту назад я бы этого сказать не смог》.
В этих рассуждениях можно проследить связь между восприятием и вторым объектом наших исследований ——выводом.
Вывод
На рис. 6.14 приведена позиция, взятая также из реальной партии, сыгранной самим де Гротом. Он тщательно изучил эту
abcdef ghabcdef ghРис, 6,14. Анализ позиции (de Groot, 1935).Рис, 6,14. Анализ позиции (de Groot, 1935).позицию, установил, что белые могут сделать не менее 56 ходов, а затем показал ее экспертам, которые должны были определить наилучший по их мнению ход. По условиям эксперимента эксперты должны были рассуждать вслух.
abcdef gh
abcdef gh
Рис, 6,14. Анализ позиции (de Groot, 1935).
Рис, 6,14. Анализ позиции (de Groot, 1935).
Все шахматисты пришли к выводу, что прежде всего следует решить тактическую задачу——постараться найти спасение для фигур, находящихся
под боем, вместо того чтобы сразу составлять план игры на длительную перспективу. Перед тем как обратиться к тщательному анализу результатов размышлений шахматистов, приведем несколько общих выводов, которые будут полезны в дальнейшем.
Избирательный анализ позиции. Дерево ходов у гроссмейстеров содержит от 20 до 76 узлов, что существенно меньше, чем чрезмерное комбинаторное увеличение числа допустимых ходов. Среднее число ходов, предлагаемых шахматистами для
белых в этой позиции, меньше 5. Например, Керес предложил 3 хода, два из них он проанализировал очень подробно, и они оказались наилучшими. 20 шахматистов из 56 возможных ходов предложили только 22.
Небольшая глубина анализа. Этот факт подтверждается и во многих других случаях. В противоположность широко распространенному мнению большие мастера шахмат очень редко рассуждают на глубину более пяти или шести ходов (здесь, например, оказалась достаточной глубина в четыре хода). Более того, не было обнаружено никакого различия в глубине анализа у различных групп обследованных шахматистов.
Частые возвращения назад. Часто анализ хода или даже целого эпизода повторялся по многу раз. По этому признаку де Грот различает три фазы анализа у шахматистов: а) разведка; б) обработка; в) доказательство.
Шахматист в каждом из трех случаев повторяет изучение позиции с различных точек зрения. Свои ходы и ходы противника многократно перерабатываются, по мере того как увеличивается глубина анализа. Задача, которую ставит перед собой шахматист, периодически переопределяется в зависимости от рабочей гипотезы; это происходит беспрерывно до принятия окончательного решения. Все ходы в данной позиции, которые не имеют связи с текущей гипотезой, полностью игнорируются. Шахматисту, помимо всего прочего, необходимо иметь свою оценочную функцию позиции, он должен уметь измерять дистанцию, на которой он находится от текущей гипотезы и от цели, которую он должен достигнуть (табл. 6.5).
Таблица 6.5. Средние значения некоторых сажных параметров при изучении шахматной позиции исследуемыми шахматистами
Число анализируемых ходов на 1-м уровне
Полное число изученных позиций
Максималь-
глубина анализа в полуходах
Время
Число возвратов при анализе
Гроссмейстеры
4,8
35
6,8
9, 6〃
.6,3
Эксперты
3,4
30,8
6,6
10 8"
6,4
Кроме того, при анализе оценивается очень малое число позиций. Оно определяется достижением стабильной позиции, в которой тем или иным образом разрешается проблема, которую ставит перед собой шахматист в данный момент. При этом необходимое решение находится без помощи традиционных оценок. Используемые человеком оценки, как и общий анализ партии, основаны на общих, не поддающихся численному описанию концепциях работы мозга, имеющих мало общего с банальным описанием позиции с помощью оценочной функции. При этом непрерывно появляются и исчезают такие понятия, как открытое или закрытое пространство (или позиция), контроль (над полями, фигурами, зонами), слабая или сильная позиция. Для оценки позиции и выработки стратегии приближения к цели служат такие абстрактные формулировки, как «ход черных ферзем», «отступление слона》, «защита короля》, «пустой ход», «усиление давления», «отступление без потери темпа》*
Обратимся теперь к деталям и результатам анализа позиции, приведенной на рис. 6.15. Большое число шахматистов пришли к выводу, что ход С X Kd5 является наилучшим или поставили его на второе место. Удивительным является то, что этот ход найден в общем без достаточно глубокого анализа. Его действительно легко увидеть, но дерево ходов, с помощью которого его можно полностью обосновать, является весьма громоздким. Это обстоятельство наводит на еще одно направление исследований кратковременной памяти. Примером, показывающим, что шахматисты имеют тенденцию упрощать анализ с помощью грубых оценок, является реакция Алехина. Он быстро высказал свое мнение об этой позиции:《只 с удовольствием сыграл бы за белых... С X К, безусловно, является очень сильным ходом, нужно проверить все варианты, но если время поджимает, то я играю С X ^5». Построение дерева анализа заняло у него несколько минут ——быстро сориентироваться в сильно разветвленном дереве невозможно. Даже гроссмейстеры могут в них запутаться. Флор, например, допустил в этой позиции явную ошибку. Рассматривая среди многих других вариант
КХ Себ &7ХК
CXKd5 с6*С
СХК/6 СХС
он сказал, что ход 4.К&7 является вилкой на ферзя и ладью черных. Здесь произошла путаница, так как на поле е5 коня больше нет, он не может пойти на d7!
Можно отметить нечто общее, что помогает шахматистам выполнить задание исследователя——это хорошее знание позиций,
1-й ход Ьетт1-й ход Ьетт6 Кс(56 Кс(51-й ход уеркьт1-й ход уеркьтСхН5СхН5ебхСа 5ебхСа 52-й ноб белах2-й ноб белахOKf6OKf62-d ход черньгх2-d ход черньгхCxCfGCxCfG3-力 зсод3~й ходчерные3-力 зсод3~й ходчерныеKcL7KcL7Ход дхрземХод дхрзем,/ Зсод белье,/ Зсод бельеK*JJf8向K*JJf8向KxKd5KxKd5Ход королемХод королемКхСе7КхСе7KxCd5(9)KxCd5(9)K*c8K*c8Кд4(f)Кд4(f)Кс 4 (ПКс 4 (П1 Се7 (f)1 Се7 (f)
1-й ход Ьетт
1-й ход Ьетт
6 Кс(5
6 Кс(5
1-й ход уеркьт
1-й ход уеркьт
СхН5
СхН5
ебхСа 5
ебхСа 5
2-й ноб белах
2-й ноб белах
OKf6
OKf6
2-d ход черньгх
2-d ход черньгх
CxCfG
CxCfG
3-力 зсод
3~й ходчерные
3-力 зсод
3~й ходчерные
KcL7
KcL7
Ход дхрзем
Ход дхрзем
,/ Зсод белье
,/ Зсод белье
K*JJf8
向
K*JJf8
向
KxKd5
KxKd5
Ход королем
Ход королем
КхСе7
КхСе7
KxCd5
(9)
KxCd5
(9)
K*c8
K*c8
Кд4(f)
Кд4(f)
Кс 4 (П
Кс 4 (П
1 Се7 (f)
1 Се7 (f)
Рис. 6.15. Дерево ходов, доказывающее правильность хода С X Kd5 в позиции Л (de Groot (65)).
(а) внлка иа ферзя н ладью; (Ь) выигрыш качества; (с) вилка на короля и ладью; (d) выигрыш фигуры и качества; (е) если 2. С X К d5, 3. С X К f6, то выигрыш фигуры; (f) очевидна слабость черного койя иа f6 и белые получают сильную атаку; (g) угроза вскрытого нападения на слона черных е7.
Возможность белых ответить четырьмя ходами иа ход черных egX С дает основание считать этот ход черных неудовлетворительным. Во всех вариантах белые легко выигрывают» давление на позицию черных достаточно велико, и все гроссмейстеры останавливаются на этой глубине анализа.
уже встречавшихся в сыгранных партиях. Алехин сразу заявил, что эта позиция ему напоминает недавнюю партию Ботвинника. Он предположил, что в дебюте был разыгран принятый ферзевый гамбит, а позиция соответствует 16-му ходу. Он смог даже восстановить все предыдущие ходы, сыгранные в партии. Очевидно, что это говорит об очень большом числе сыгранных и изученных партий, которые Алехин держал в памяти и связывал с ними отдельные ветви дерева ходов анализируемой позиции.
Глубокие знания, которые позволяют хронологически восстановить всю партию, являются в то же время и основой анализа: в этом дебюте белые с самого начала не дают покоя черным, у них очень открытая позиция и преимущество в атаке. В отличие от них черные должны защищаться до конца партии.
Единственное обстоятельство, которое дает им шанс в финале —— это лучшая пешечная защита.
Именно в таких ситуациях проявляются различия в культуре шахматистов. Общеизвестно, что слон по силе немного превосходит коня, главным образом в конце партии, когда он может свободно передвигаться по доске. Поэтому недостаточно опытные шахматисты исключают ход C*d5, так как в результате этого слон разменивается на коня. Но что касается гроссмейстера, то он чувствует, что в данной позиции можно найти решающую атаку и завершить партию за небольшое число ходов. А это значит, что общеизвестные сведения не следует принимать в расчет, поскольку существенной характеристикой данной позиции является наличие атаки у белых, которую надо развивать. Кроме того, к особенностям позиции относятся сильный конь на е5, который угрожает ходом Kd7; относительная слабость позиции короля черных, возникшая после рокировки; незащищенная пешка белых &2, находящаяся под боем черного ферзя; четыре возможных нападения на фигуры: К X ^5, С X /6, С X d5, КХсб. Последние являются наиболее вероятными ходами белых и требуют детального анализа.
Порядок рассмотрения этих ходов может быть и другим. На практике лучшие шахматисты сначала с помощью параллельного отбора получают только некоторые указания, а затем и полное решение поставленной задачи.
Далее при анализе партии будем ориентироваться на четыре приведенных выше хода. Так как заранее ясно, что в этой позиции сильны ходы конем на d7 н е7 c двойным нападением на черные фигуры, то вполне естественным будет стремление устранить черного коня и сохранить при этом белого. Таким образом, размен слона а2, который некоторыми шахматистами был отвергнут, нужно рассмотреть в первую очередь, поскольку он соответствует стилю атаки в этой партии. Теперь понятно, почему шахматисты, в том числе и гроссмейстеры, чаще всего ограничиваются анализом только небольшой части дерева ходов, как показано на рис. 6.15. .
Психологические исследования шахматного анализа позволяют сделать три важных вывода:
Гроссмейстеры своим мастерством обязаны не объему вы- ,числений, который они проделывают, а своей способности выделить правильный ход.
Поиск хороших ходов существенным образом связан со способностями шахматистов к восприятию позиции.
Способность к восприятию позиции зависит от широты знакомства с опытом шахматной игры и в особенности от способности ассоциировать с конкретной позицией определенные
структуры, присутствующие в большом числе в памяти шахматиста.
Психологи изучили также поведение человека прн поиске решений в других областях.
Ньюэлл и Саймон (1982) анализировали протоколы работы студентов, выполнявших упражнения на логические предложения (гл. 3) и решавших арифметические задачи (гл. 8). Стратегии этих студентов, знания, которые они использовали, были переведены в форму правил выполнения определенных операций (гл. 7), после чего был довольно верно смоделирован общий ход их рассуждений. Мэтью и Томас (1985) опубликовали аналогичные работы, в которых приведены результаты анализа процессов игры в го, расчета электрических цепей, решения проблем механики.
Все исследования подтверждают приведенные здесь выводы: основная особенность анализа заключается в том, чтобы в конкретной ситуации обнаружить группы «важных» объектов (таких, которые участвуют в наибольшем числе взаимных связей). Успех анализа зависит от знания предмета исследования и качества структуризации этих знаний.
ROBIN — интеллектуальная программа для игры в шахматы
В разд. 6.1 описано семейство программ для игры в шахматы, которые по качеству игры значительно уступают шахматистам.
Поэтому фундаментальной проблемой для исследователей в области искусственного интеллекта является понимание того, как человеку удается достигать таких высоких результатов, если доступное ему для анализа дерево ходов по своим размерам в тысячи раз меньше, “ем для ЭВМ. На основании полученных результатов могут быть разработаны принципы построения игровых программ, отличные от систематического перебора ходов. Именно в этом направлении начал работать в 1972 г. французский ученый Жак Питра (CNRS, Париж).
В его работе отправной точкой служило следующее важное обстоятельство: если существует такое большое различие между деревьями, которые анализируются человеком и программой, то, следовательно, речь идет не об одном и том же depeeel
Это подтверждают и исследования Бине, де Грота, Саймона. Они показали, что шахматист быстро схватывает существенные особенности позиции, ему 《бросаются》в глаза ходы, на которые нужно обратить внимание в первую очередь. Таким образом, хороший шахматист начинает исследование с углубленного
анализа начальной позиции, очень точные характеристики позволяют ему тонко описывать ее потенциальные возможности и сильные стороны, а также выявлять недостатки каждого хода. На основе начального анализа ведется поиск наилучшего хода как по ширине дерева, которое ограничено только ходами, связанными с результатами анализа, так и по глубине вплоть до позиций, в которых перестают сказываться нестабильности, вызванные промежуточными ходами.
Следует также учесть еще один важный момент, отличающий мозг шахматиста от игровых программ первого поколения,—при мысленном анализе не соблюдается реальный порядок ходов: анализируются невозможные ходы, в первую очередь рассматриваются более поздние ходы, мгновенно рождаются планы, которые развиваются, отвергаются, снова принимаются и так далее до тех пор пока окончательно не будет найден очередной ход.
Из рассмотренной картины можно сделать вывод, что в мозге шахматиста возникает не что иное, как дерево планов^ а не слепое дерево ходов, имеющее к тому же и громадные размеры. Программа Жака Питра работает по тому же принципу. Большая часть ходов, найденных с ее помощью, вообще не замечается другими программами, а иногда даже и специалистами! Ее можно отнести ко второму поколению игровых программ, которое существенно отличается от первого и представляет настоящий интерес с точки зрения искусственного интеллекта, так как заложенные в его основу принципы- можно перенести на многие другие области человеческой деятельности.
Приведем сначала пример игры программы Жака Питра, которая называется ROBIN, а затем более подробно рассмотрим принцип ее работы.
Пример анализа, выполняемого программой
Встретившись с позицией, приведенной на рис. 6.16, программа начинает поиск хода с ее детального анализа. На этом этапе основной задачей программы является составление возможных в данной позиции планов продолжения игры, к которым в данном случае могут относиться:
прямая атака на короля противника, начинающаяся ходом ①力7 +;
связка ферзя ходом ладьи на поле el;
взятие незащищенного черного ферзя Ф X Ф*
Эти планы на практике могут реализоваться с помощью последовательности элементарных ходов, приближающих
конечную цель, в данном случае нападение на короля или ферзя черных. Эти цели часто сомнительны, иногда просто недостижимы] Но программа развивает каждый план в таком направлении, чтобы оказались возможными ходы, которые не были таковыми сначала, чтобы создавались угрозы, расшатывалась достигнуть поставленной цели не представилось возможным, то чтобы выявились другие преимущества.
План имеет четко определенную конечную цель, и программа приступает к анализу позиции, начиная с этой конечной цели, а заканчивает нахождением наилучшего хода на первом уровне, т. е. ходы отыскиваются как бы в обратном порядке по сравнению с тем, как они делаются в реальной партии. Это может явиться
полной неожиданностью и выглядеть неестественно для тех, кто не привык ставить перед собой четкие цели!
В рассматриваемой позиции программа до конца разраба- бывает все три плана, но для игры останавливается на плане 3, против которого у черных нет достаточно сильных ответных ходов. План в общих чертах выглядит следующим образом (приведен вариант плана, приводящий к успеху; программой анализируются также и другие варианты):
рограмма нацелена на взятие ферзя, занимающего поле .е2 ходом Ф X Ф;
для этого белым нужно убрать своего коня с поля g4;
а это последует ответ черных Ф X ФЙ5;
——следовательно, белым нужно убрать коня, нападая на фигуру противника, как минимум равную ферзю. Это может быть только король;
——возникает промежуточная цель — поставить конем шах королю, находящемуся на поле е7;
——прямой шах невозможен, единственными доступными для койя полями вблизи короля являются е5 и f6;
——возникает новая промежуточная цель —переместить ко
роля черных;
——только ладья белых, расположенная на поле dl, в принципе может сделать это (ходы ферзем нужно отбросить, так как должна сохраниться возможность взятия ① X®);
——поле el не защищено (см. план 2);
—таким образом, остается только поле d7 для объявления шаха королю;
—отсюда следует ключевой ход 1——JId7+! со следующими основными вариантами: 1 — Л" + Кр X 刀 2 — К X f6 + (но не Ке5+ из-за Ф X К и ферзь уходит из-под боя) JI X К и 3 — Ф X Ф^2. Программа проверяет также ходы 3 — С X f2 + и 3 — Л X f2, которые ничего не дают черным;
—наконец, учитывается возможность для черного короля не принимать отравленный подарок Л^7 : 1 ——Креб (единственный ход). Но это еще хуже, так как следует ход 2 —①d5 мат.
Безусловно, эта позиция находится в пределах досягаемости предыдущих программ (МАКСГЛ = 7 полуходов), но она очень хорошо иллюстрирует возможности поиска наилучшего хода с помощью очень небольшого дерева ——всего 305 ходов против 407 или 16-1010 для программы, работающей с помощью перебора ходов. Как мы увидим ниже, в сложных позициях ROBIN может спускаться до глубины 20 полуходов и более.
Различные типы планов в шахматах
Для программы целью улучшения начальной позиции является определение благоприятных ключевых ходов. Они являются отправной точкой для разработки планов, т. е. линейных последовательностей промежуточных целей (или обобщенных ходов), которые в конце концов приводят к материальному перевесу. При разработке планов программа учитывает только те ходы, которые так или иначе связаны с поставленной задачей. Для ROBIN существуют планы четырех типов, простейший из которых представляет собой простое взятие фигуры противника.
План типа 1: простое взятие
Для каждой фигуры программа определяет число и вид фигур, которые на нее нападают и ее защищают, что является несложной и быстровыполнимой задачей. Учитываются также возможные нападения и защиты по вскрытым линиям, т. е. замаскированные своими фигурами. Затем подсчитывается итог. Если для фигуры число нападений количественно или качественно равно или превышает число защит, то считается, что фигура расположена на позиции простого взятия и начинается разработка соответствующего плана.
В предыдущей позиции (Е42, рис. 6.16) мы видели, что ферзь черных находился под скрытым боем. Для черных ладья белых dl и пешка а2 были непосредственно под боем, пешка /2 и конь
g4 могут быть взяты после добавления одной нападающей фигуры или устранения по крайней мере одной из защищающих.
План типа 2: двойное нападение
Очевидно, что существует более опасный для противника случай, чем предыдущий. Он соответствует ситуации, когда одна и та же своя фигура нападает одновременно на несколько фигур противника (обычно на две). При этом вероятность получить преимущество увеличивается, так как противник имеет
abedef ghabedef ghРис. 6.17. М58. Ход черных.Рис. 6.17. М58. Ход черных.право только на один ход и часто может спасти только одпу из своих фигур. Это и есть двойное нападение, частным случаем которого является связка (ферзь на е2 оказывается связанным на предыдущей диаграмме после хода белых ладьей на el). В качестве одной из фигур, подвергаемых двойному нападению, может оказаться и король, которого другие фигуры защитить не в
abedef gh
abedef gh
Рис. 6.17. М58. Ход черных.
Рис. 6.17. М58. Ход черных.
состоянии.
Вопрос, на который ищет ответ программа при разработке такого плана, состоит в следующем: «Существует ли такое поле, что если переместить на него одну из своих фигур, то она будет нападать на две фигуры противника, находящиеся на позициях простого взятия?»
При поиске такого хода программа предусматривает определенную свободу:
поле-мишень может быть занято, тогда промежуточной целью является удаление фигуры с этого поля;
на каком-либо промежуточном поле может стоять фигура, препятствующая нужному ходу, тогда это поле нужМо освободить.
В примере, приведенном на рис. 6.17, анализ простых взятий показывает, что если ферзь черных займет поле еб, это может привести к взятию короля белых el и пешки а2, т. с. существует возможность двойного нападения на эти незащищенные фигуры. Однако поле еб занято, и для достижения цели нужно сначала удалить занимающую его пешку, а затем еще одну пешку d5, маскирующую поле а2.
План типа 3: атака на короля
Когда играешь в шахматы, необходимо иметь в виду особую роль, которая отводится королю среди других фигур ——если он
взят, партия проиграна. Это дает богатый материал для планов атаки на короля.
При разработке этих планов в качестве начальных рассматриваются все ходы, приводящие к шаху: если фигура, объявляющая шах, сама не находится под боем или если король противника не имеет другой возможности, как только ее взять. Таким образом, в позиции Е42 (рис. 6.16) ход Лй7 + не приводит к возникновению плана в отличие от хода Ф/7 +, ибо во втором случае не остается поля для бегства короля; заранее ясно, что атака гораздо более сильная. Но чтобы ее завершить, нужно, с одной стороны, удалить черную ладью на /8, с другой ——защитить белого ферзя на ,7. Возможность этого будет показана дальнейшим развитием плана.
Наконец, на доске существует другой тип фигуры, играющий особую роль ——это пешка. Достигнув восьмой горизонтали, она превращается в любую другую фигуру.
План pina 4: продвижение
Так как для всякой пешки не следует строить план похода в ферзи, то программа начинает поиск продвинутых пешек только к середине партии и создает такой план только для пешек, достигших шестой или седьмой горизонтали. План состоит в продвижении пешки с проверкой, что в результате этого она не будет потеряна. Если продвижению мешает фигура, ROBIN, кроме того, изучает возможности:
удаления этой фигуры;
привлечения на соседнее поле фигуры противника, для того чтобы использовать возможность взятия пешкой по диагонали.
Все эти начальные планы программа находит одновременно для обеих сторон. Более того, для ограничения исследований только такими планами, для которых имеется надежда на успех против любой защиты противника, программа сохраняет только те из них, которые первоначально не требуют более двух модификаций промежуточных полей.
Язык для разработки планов
Элементы языка
Для записи ходов мы пользуемся удобными общепринятыми обозначениями типа ЛЙ7, & X с, 0 ——0. Аналогично, полезно иметь специальный язык для программы, работающей с деревом планов, для того чтобы выражать направленность действий или «суперходы» в планах.
Типичным действием является требование модификации поля, для кодирования которого в этом языке используются следующие обозначения: поле в произвольный момент может быть пустым V, занятым своей фигурой /1 или фигурой противника Е. В двух последних случаях указывается занимающая его фигура. Обозначения действий в планах приведены в следующих при
мерах:
ФЕ.е2-> VФЕ.е2-> V上以4 - T е上以4 - T еV.a8~>E^KК4g4fl/*V.a8~>E^KК4g4fl/*удалить ферзя противника с поля е2 освободить поле &4 от пешки противника и оставить его пустым или занять своей фигурой на пустое поле &8 заставить пойти коня или не менее ценную фигуру противникаубрать своего коня с поля g4. Звездочка служит для уточнения; выполнить это действие надо с сохранением атаки.удалить ферзя противника с поля е2 освободить поле &4 от пешки противника и оставить его пустым или занять своей фигурой на пустое поле &8 заставить пойти коня или не менее ценную фигуру противникаубрать своего коня с поля g4. Звездочка служит для уточнения; выполнить это действие надо с сохранением атаки.
ФЕ.е2-> V
ФЕ.е2-> V
上以4 - T е
上以4 - T е
V.a8~>E^K
К4g4fl/*
V.a8~>E^K
К4g4fl/*
удалить ферзя противника с поля е2 освободить поле &4 от пешки противника и оставить его пустым или занять своей фигурой на пустое поле &8 заставить пойти коня или не менее ценную фигуру противника
убрать своего коня с поля g4. Звездочка служит для уточнения; выполнить это действие надо с сохранением атаки.
удалить ферзя противника с поля е2 освободить поле &4 от пешки противника и оставить его пустым или занять своей фигурой на пустое поле &8 заставить пойти коня или не менее ценную фигуру противника
убрать своего коня с поля g4. Звездочка служит для уточнения; выполнить это действие надо с сохранением атаки.
План двойного нападения на ферзя черных в позиции М58 (рис. 6.17) будет выглядеть следующим образом:
A.d5 > V *:удалить пешку черных с поля d5, со
хранив атаку
/.еб г I/ *то же для пешки еб
ФЛ.66 ->е6переместить своего ферзя с поля 66 на
еб
ФЛ.^6 ~с1 ИЛИ а2 уточнение целей двойного нападения
Развитие планов
После составления планов программа переходит к их более детальному изучению. Каждое действие плана уточняется указанием ходов, которые его могут реализовать, т. е. из одного исходного плана возникает множество производных. Отыскиваются обходные пути для действий, прямое выполнение которых невозможно. Если, например, программе нужно удалить фигуру, то:
если она своя, достаточно этой фигурой сделать ход (как в позиции Е42, рис. 6.16):
K4.g4f V *, т. е. белые ходят конем на поле h2 или /2 или еЗ или е5 или /6 или йб
если фигура принадлежит противнику, нужно выполнить одно из следующих действий:
——взять ее;
——напасть на нее;
——подставить этой фигуре свою фигуру для взятия.
В позиции £42 (рис. 6.16) ни один из приведенных выше ходов коня не удовлетворяет условию, накладываемому звездоч-
кой (сохранить инициативу), поэтому программа должна предпринять другое действие:
Кр£*-в7 -> V * удаление короля равносильно сохранению инициативы.
Мы убедились в том, что конь не может ни взять, ни атаковать, ни быть взятым.
Остается ход ладьей, находящейся на поле dL после чего КрЕ.е7 f V* приводится к виду:
ЛЛ.б/1 -> Л X Кр * взять короля
или JIA.dl -> Л+ * напасть на него
или ЛЛ.й! ->Лйб, dl или d8 подставить ему свою фигуру.
Для реализации первой из этих задач в данной позиции не существует ни одного хода, поэтому связанный с ней промежуточный план отвергается. Для выполнения второй задачи существует единственный ход Лб/7 (который пригоден и для третьей задачи, так как возможен последующий ход Кр X Л).
Далее продолжается развитие этого плана:
Jld7 Кр X dl добились перемещения короля.
К объявляет шах и 3. Ф Х Ф.
Для выполнения любых действий программа ставит перед собой ряд промежуточных целей.
Приведем еще один пример. Чтобы не допустить взятия (такая задача часто ставится в локальных планах), необходимо:
убрать фигуру из-под боя;
поставить на пути другую фигуру (свою или противника).
В позиции 从58 (рис. 6.17) один из планов связан с ходом ①еЗ +, но последует немедленный ответ Ф X Ф-
Возможность устранения этой опасности состоит в следующем:
.^3 -> П V (занять поле g3 какой-нибудь фигурой)
① 466 — еЗ+
Этой фигурой, в частности, может оказаться пешка противника й2, которая сможет выполнить эту роль, если ей подставить для взятия другую фигуру. Таким образом, V.g3 —> ~1 V можно записать по-другому: 口巨./22fg3. В реальной позиции только одна фигура может пойти на поле g3. Это ладья g8, для которой единственной причиной такого хода будет выполнение рассматриваемого плана.
Теперь 1. JIg3 力 X g3 дает
ФеЗ+ Се2
Последний ход найден программой, которая вынуждена непрерывно составлять планы и для противника, в данном случае с помощью того же приема — постановки фигуры на промежуточную позицию. Но в этом варианте простое взятие ① X е2 приводит к выигрышу черных. Поэтому программа продолжает составление планов, в которых предусматривается удаление ладьи с поля g3, угрожающей Л X Ф. Очевидно, что самым простым решением является Ф X Л. На это программа немедленно находит ответ, привлекая механизм промежуточных целей: ход СЛ4, с помощью которого черные выигрывают ферзя белых.
В процессе анализа программой отвергается большое число планов, что может в действительности привести к следующим последствиям:
решающий ход для осуществления плана стал невозможен (например, из-за потери фигуры);
материальный баланс очень неблагоприятен (или хуже того, который предполагался) даже в случае успешной реализации текущего плана;
план логически невозможен из-за наличия противоречий (например, требуется одновременное выполнение условии
xy->V и ху ~> ЛЛ);
невозможно устранить возникшее препятствие (например, из-за отсутствия подходящего хода);
план отвергнут из-за слишком большой доли оптимизма при его составлении: даже если все идет лучшим образом, окончательный материальный итог неблагоприятен.
Несмотря на непрерывно происходящий процесс изменения и завершения планов, программа должна помнить основную идею первоначального замысла. Это может быть сделано с помощью специального действия, которое предуематривает в определенные моменты времени проверку условий. Например, если первоначальный замысел заключался в освобождении какого-либо поля, необходимо проверять, что данное поле действительно свободно в нужный момент времени и оно не оказалось случайно вновь занятым в результате ходов, найденных при разработке плана.
Оптимизация защиты: понятие опасного хода
На каждом этапе шахматной партии один из противников ищет пути к победе, в то время как другой пытается выровнять положение. В соответствии с этим и программа в каждый мо-
мент времени играет за одного играющего ——того, кто проигрывает при разработке текущего плана.
Чтобы найти спасительный ответ, проигрывающий сам составляет планы, В ходе игры он может вновь получить преимущество, тогда программа вновь обращается к позиции его противника. В конечном итоге этот шахматист может и проиграть партию, и окончательный анализ тогда покажет, что все попытки спасения безрезультатны.
abedef ghabedef ghОбработка программой дерева планов оказывается очень близкой к человеческому образу мыслей при игре в шахматы. Сначала изучается наиболее многообещающий путь. Затем анализируется, к каким наихудшим последствиям, приводит ответ противника. Если найдено опровержение одного из путей, рассматривается другая линия игры на более высоком уровне.
abedef gh
abedef gh
Таким образом, в игре постоянно находятся и отвергаются «опасные ходы». Р1х точное определение дано ниже. Устранение опасности состоит в отражении этих ходов или в устранении их неприятных по
следствий С помощью других Рнс. 6.18. М39. Ход черных, опасных ходов. Сначала ищут спасение против ходов, для отражения которых у другой стороны остается наименьшее число своих опасных ходов.
Для того чтобы найти план, опровергающий план противника, необходимо отразить есе опасные ходы плана противника. Идея достижения этой цели состоит в различной реакции на различные опасные ходы противника. Их можно разделить на 4 типа, каждый из которых рассмотрен в отдельности.
При анализе опасных ходов учитывается только баланс материальных сил, а сам анализ напоминает процедуру восхождения в методе минимакса.
Предположим, что программа ищет для шахматиста / план, который обозначим и (J). Тогда опасным ходом является такой ход противника, который на момент анализа приводит к меньшему значению оценки, чем ожидается по плану и(7).
На рис. 6.18 приведен пример одного из разработанных программой планов, который связан с продвижением черной ладьи с поля d8 на dl, где она не оставляет королю белых ни одного поля для отступления. Этот план можно записать следующим
образом:
К4d5-а V отойти конем
ЛА.d8fdi пойти на поле dl
Л/l.dlf Л ХКр
Материальный баланс в пользу черных (взятие короля), ход Л X Кр опасен для белых, и программа, которая начинает строить планы за белых, ищет способ его отражения. Она немедленно найдет способ устранения угрозы: ① XJIdl или Л X Лг/1. Также опасным для белых является и ход КЛ.й5-> V, который может быть ходом К X КсЗ. Но равновесие и здесь быстро восстанавливается с помощью Л X К^З.
Результат анализа показывает, что для белых не существует больше опасных ходов. Как мы убедились, все угрозы могут быть ликвидированы. Программа возобновляет игру черными.
Опасными для черных являются и три только что рассмотренных хода белых.
Рассмотрим теперь реакцию программы на опасные ходы и ответные способы предотвращения угрозы.
Программа вырабатывает 4 типа планов в ответ на опасные ходы: новые взятия, логические разрушения опасных ходов, наложения, локальные планы.
Новые взятия. Каждый ход в шахматах, кроме рокировки и взятия на проходе, изменяет содержимое двух полей. В результате последних двух ходов ——своего и противника — изменяется содержимое четырех полей. Программа постоянно следит, не появились ли возможности взятия за счет модификации этих полей.
В обычной шахматной позиции подобные действия позволяют очень быстро расширить и углубить начальные планы.
Логическое разрушение. Здесь речь идет о том, чтобы сделать невозможным опасный ход противника, исключить его из списка опасных ходов. Достигается это за счет воздействия на начальное, промежуточное или конечное поля опасного хода, в результате которого фигура Q лишается возможности сделать опасный ход или вынуждена уйти со своего отправного поля d:
QEdf ] Е
И наоборот, если на конечном поле а находится своя фигура Р, то необходимо выполнить действие
РА,а^ 1 А,
нейтрализующее опасный ход противника.
Другая возможность состоит в перемещении на одно из промежуточных полей ", расположенных на пути от d до а, про-
извольной фигуры, например
Наложения. Здесь в качестве защиты от опасного хода используется нападение.
Программа позволяет противнику осуществить свой план, но пользуется возникающими при этом на доске модификациями полей для реализации контр плана, который начинает действовать немного позже. Этот способ защиты очень обманчив. С помощью программы Ж- Питра удалось исправить несколько ошибок, допущенных знаменитыми шахматистами при анализе партий (позиция Т149 на рис. 6.21).
Возможность использования наложений обусловлена двумя причинами:
действия плана не являются обязательно выполнимыми в существующей позиции, т. е. они нечувствительны к определенным изменениям и могут оставаться в силе спустя много ходов;
все начальные планы противника составляются одной и той же программой, поэтому в случае опасности программа легко может поставить себя на место противника.
Как только первое действие оборонительного плана становится возможым, программа заносит его вместе с соответствующим планом в список подготовленных ответов на последний ход противника.
Локальные планы. Здесь речь идет о подготовке косвенной атаки на фигуру, которая может сделать опасный ход, с помощью двойного нападения, угрозы мата, взятия фигуры после отступления ее защитника.
Каждый подобный анализ похож на анализ позиции, который делается вначале с участием всех фигур на доске, но он ограничивается лишь одним полем.
Результаты
В этом разделе мы завершаем в общих чертах описание программы ROBIN для иры в шахматы, разработанной Ж. Питра. Мы уже познакомились с основными особенностями этой программы, которые отличают ее от слепых программ, построенных с использованием альфа — бета-процедуры. Программа ROBIN действительно способна рассуждать и руководствоваться идеей при развитии созданного ею же плана.
Для нее не существует никаких предварительных ограничен 兄"业 на глубину или ширину дерева анализа. Дерево, которое
она- строит, является деревом планов, т. е. последовательностей действий или “метаходов", используемых для нахождения последовательностей реальных ходов. Заранее ясно, что это дерево гораздо меньше по размерам, чем дерево реальных ходов. Программа выполняет анализ логической последовательности действий, плана, а не последовательности ходов, наблюдающейся во время реальной игры.
В реальных шахматных партиях программа показывает игру на уровне игры человека. Она находила комбинации, ко
торые ускользали от внимания таких выдающихся шахматистов, как Эйвс, Ласкер и Смыслов, и от таких аналитиков как
abedefghabedefghРис. 6.19. М42. Ход белых.Рис. 6.19. М42. Ход белых.дю Мон. Она нашла неточность в комбинациях, найденных дю Моном и Таррашем (в одном случае она показала, что противник избегает поражения) .Рассмотрим пример анализа позиции М42, приведенной на рис. 6.19.
abedefgh
abedefgh
Рис. 6.19. М42. Ход белых.
Рис. 6.19. М42. Ход белых.
Эта позиция является очень трудной. Однако программа с помощью анализа до глубины 23 полуходов показывает, что
если белые будут играть наилучшим образом, то выиграют ладью черных. Идея, которая лежит в основе выигрышного плана, состоит в прямой атаке на короля черных ходом Л X
X Ле8+, после которой король не имеет возможности для отступления. Успех плана определяется тем, что ферзь черных,
занимающий поле d7, перегружен, так как должен защищать одновременно поля с8 и d8. Для реализации идеи составляется план Р1, который можно записать следующим образом:
PI ЛХ 几е8
л х Kp・g8
Последний ход является опасным для черных (опаснее некуда!), они его могут отразить взятием фигуры, которая создает опасную ситуацию. Взять ладью е8 могут две фигуры черных — ферзь и ладья. Для белых оба исхода приводят к невозможности реализации плана в таком виде. Тогда в план вводятся изменения и появляется план Р2:
Р2 ①E.d7—①七
ЛЕ.с8 ->"|ЛЕ далее по плану Р1
Чтобы убрать черного ферзя с ключевого поля» программа» как мы знаем, может предложить жертву фигуры. Один из ее вариантов реализуется в плане РЗ:
РЗ ① 4d4fg4
I ①Е.е7 (можно добиться с помощью ФА X Ф^7 или ФЕ X Ф^4) далее по плану Р2
Достигнув этой точки» программа определяет, что остался еще один опасный ход черных. Их ферзь может сохранить контроль над полем е7 без взятия белого ферзя( просто отступив на поле Ь5.
Такой оборонительный ход черных также должен быть нейтрализован. Для этого белые составляют новый план, который является вариантом плана РЗ:
Р4 ①ЕЬ5-> I ①£
далее по плану Р2
Кроме того, с самого начала в плане Р2 имеется другой опасный ход — Л X ^8,
Эти два хода предотвращаются одним и тем же ходом белых Фе4.
Далее возможны два продолжения: Ф X ①沙5 или Ф X Лс8
Р5 ① 4gс4
① 4Х6Ь5
Т Ф£.Ь5
далее по плану Р2
Преследованием ферзя черных белые эффективно добиваются выполнения этого плана, основной вариант которого имеет вид
.①g41 ①Ь5
. Фс41 ①d7
.①с7! ФЬ5
. а4Ф X &4
. Ле4①Ь5
.①Ь7 и черные теряют ферзя, иначе Ле8Х・
В общем чтобы доказать, что первый ход хорош и что он приводит к выигрышу ферзя черных, необходимо спуститься до глубины 23, а в одном случае— 11 полуходов. На этот ход черные имеют в своем распоряжении не менее 26 ответов!
■ Из приведенного анализа ясно, что программа способна играть и действительно играет безупречно. Последнее не всегда получается у играющего шахматиста, которому на практике достаточно показать, что сделанный им ход выглядит сильным в большей части вариантов. На рис. 6.20 приведена позиция М.42, в которой программа нашла лучший ход за белых L①g4. Его анализ нам не под силу, так как для этого потребовалось бы изучить как минимум 2454 варианта.
а Ъ с d е f g hа Ъ с d е f g h8 7654 3218 7654 321Эта позиция была предложена Берлинером в его диссертации для того, чтобы показать, в каких случаях иногда бывает необходимо проводить анализ на очень большую глубину. У Берлинера программа находит правильный ход следующим образом: король черных находится в опасности, так как ему недоступны все окружающие его поля, ход белых с шахом ФЙ5+ может оказаться фатальным. Программа, работающая по принципу систематического перебора, быстро от-
а Ъ с d е f g h
а Ъ с d е f g h
8 7654 321
8 7654 321
Рис. 6.20. В5. Ход белых (Берлинер). бросила бы этот ход после одного или двух обменов ходами, так как она не видит способа защиты ферзя белых от хода КХФЛ5.
В отличие от этого ROBIN ищет для белых защиту от опасного хода К X Ф- Локальный анализ поля, которое занимает фигура, делающая опасный ход, выявляет возможность контрудара—в данном случае связки этой фигуры. Ее можно осуществить с помощью ладьи fl, если ввести в действие еще один резерв — заставить пешку /5 отступить с занимаемого ей поля.
Это достигается с помощью простого взятия f5 X еб. Однако программа определяет, что если этот ход сделать вначале, то он позволит ладье черных сделать ход Ле8 X еб, что для белых неприемлемо, так как для короля черных открывается путь к спасительному бегству.
Поэтому игровым вариантом остается Фй5, за котоым следует /5 X еб. Первым ходом объявляется шах королю, который так и не имеет ни одного поля для отступления. Анализ, проведенный программой, показывает, что потеря ферзя будет компенсирована после нескольких обменов ходами:
1 ФЛ5+
к力5
Анализ полей, занимаемых королем, позволяет найти следующую последовательность ходов:
/5X^6++ Kpg6
Сс2+ Kpg5
Л/5+ Kpg6
Были изучены и другие планы. Но этот приводит на пятом
ходу к очень сильному двойному шаху:
Л/6++Kpg5
Л^6+Кр厶4
Ладья g6 защищена слоном с2, и король вынужден продвигаться в направлении противника!
Ле4+ Kf4
В игру вступает вторая ладья белых:
Л ХМ КрЛ5
лые форсированно реализуют свойлые форсированно реализуют свойВсе ходы черных до сих пор являются вынужденными. Бе
лые форсированно реализуют свой
лые форсированно реализуют свой
план, преследуя удаляюще
abedef ghabedef ghРис. 6.21. Т149. Ход черных.Рис. 6.21. Т149. Ход черных.гося от своего войска короля, при этом другие черные фигуры играть не могут.
abedef gh
abedef gh
Рис. 6.21. Т149. Ход черных.
Рис. 6.21. Т149. Ход черных.
Продолжение находится без труда. Атака белых ЛЙ4+ является преждевременной из- за опасного хода черных Кр X X ЛЛ4. Однако не допустить этот ход можно простым продвижением пешки: 9.^3. Фигуры черных неподвижны, король парализован: 10.ЛЛ4Х.
На рис. 6.21 приведена позиция Т149, в которой Тарраш демонстрирует выигрыш пешки с помощью:
С X Л2+ 2. КрХ 厶2 ФЛ4+ 3. Kpgl с последующим Ф X Са4!
Его анализ основан на пл*не двойного нападения на Л2 и Са4. Но программа, которая разрабатывает также планы белых, видит возможное наложение с планом двойной атаки белых на с! и Л/8 после освобождения поля е5 на первом ходу.
Таким образом, план белых наталкивается на ход черных 4.Фе7!
Один из возможных ответов черных состоит в одновременной защите двух фигур с помощью хода 4.Cd7. Но у белых есть возможность продолжать атаку на защищающих друг друга слона и ферзя, а также готовить угрозу слабозащищенной пешке А7 с помощью ходов Л/4, затем Лй4 с преимуществом белых, которое сводит на нет перевес в одну пешку, полученный на первом ходу.
Таким образом, программа ROBIN показала, что анализ Тарраша является неполным.
Глава 7
ЭКСПЕРТНЫЕ СИСТЕМЫ
Введение
Со временем доля работ на ЭВМ, связанных с обработкой чисто числовой информации, будет постоянно уменьшаться. Уже в настоящее время большая часть программного обеспечения предназначена для работы с информацией более общего вида.
В этой главе речь пойдет об одном семействе программ, предназначенных для оказания помощи специалистам в конкретных областях знаний, а именно об экспертных системах. К их основным свойствам относятся возможность обработки символьной информации, использование неполных данных для построения логических выводов, взаимодействие с человеком с помощью естественного языка.
Первая часть главы содержит формальную концепцию построения систем и описание их некоторых конкретных вариантов. Во второй части рассмотрены свойства систем, различные способы подготовки информации по специальной тематике, а также современное состояние и перспективы развития подобного подхода к программированному взаимодействию человека и ЭВМ.
В первых исследованиях в области искусственного интеллекта часто ставились слишком грандиозные цели, такие, как автоматический перевод на другой язык, доказательство теорем в произвольных областях знавий. Но следует заметить, что человечество в течение веков накопило громадный объем конкретных знаний и совершенно очевидно, что традиции, сформировавшиеся в одной области знаний, не обязательно автоматически переносимы на все остальные.
В последние годы системы искусственного интеллекта развивались с учетом именно этого обстоятельства. Сегодня ясно, что для разработки качественных интеллектуальных программ необходима их ориентация на определенные узкие области человеческой деятельности, в которых они должны уметь обучаться своей специальности, структурировать полученные знания и правильно их применять.
В этой главе рассматриваются системы, работающие с большими объемами знаний. Их пслью является достижение результатов, получаемых лучшими специалистами в своих областях, поэтому такие системы и получили название экспертных. Важной особенностью этих систем является то, что они задуманы для использования человеком и оказания ему эффективной
помощи. Необходимым средством для этого является возможность диалога на естественном, языке программы со специалистом.
Кроме того, необходимо, чтобы специалист понимал систему и в случае необходимости мог сообщить ей свои рассуждения и убедить ее в их справедливости. Для этого нужно, чтобы декларативные знания, используемые системой, были отделены от обслуживающих их программных средств и в то же время были доступны непосредственно самой системе. Необходимо также, чтобы выводы системы были простыми и устойчивыми и их можно было легко объяснить.
Наконец, самое главное состоит в том, чтобы специалисты и эксперты могли легко передавать системе свои знания, обогащать ее. Для этого нужно иметь возможность вводить в систему знания в произвольном порядке, чисто описательным способом (не ориентируясь на их будущее использование, в отличие от классических жестко алгоритмических процедур). Сама система должна уметь упорядочивать и структурировать эти знания, сравнивать их с уже имеющимся и строить свою собственную модель знаний..
Для примера рассмотрим два реальных диалога с одной экспертной медицинской программой MYCIN:
постановка диагноза;1
объяснение системой хода своих собственных рассуждений.
Кроме того, в разд. 7.2 дан пример корректировки базы знаний в режиме диалога.
Примеры диалогов в экспертной системе
Медицинская диагностика
MYCIN: Моя рекомендация будет основываться на возможных типах инфекции и потенциальных путях проникновения возбудителей инфекции. Возбудителями заболевания могут быть следующие микроорганизмы: 1) pseudomonia aeruginosa; 2) klebsellia pneumoniae; 3) escherichia coli; 4) bacteroides fragilis; 5) enterobacter; 6) proteus non mirabilis.
Пользуясь шкалой от 0 до 4, как вы оцениваете серьезность заболевания Фреда Смита?
Пользователь: 3.
MYCIN: Наблюдаются ли у Ф. Смита аллергические реакции на какой-либо антибиотик?
Пользователь: Нет.
MYCIN: Вес пациента в килограммах?
Пользователь: 70.
MYCIN: Моя первая рекомендация состоит в следующем: для того, чтобы охватить варианты болезни 1—6, давать клиндамицин в дозах по 595 мг в течение 14 дней. Возможно, вы хотите исключить использование некоторых медикаментов?
Пользователь: Да, клиндамицина.
MYCIN: Для того чтобы охватить варианты 2——6, давайте хлорамфеникол (левомицитин) в дозах по 1 г в течение 14 дней. При этом:
Следите за уровнем лейкоцитов у пациента. Для того чтобы охватить вариант 1, давайте гентамицин в дозах по 119 мг в течение 10 дней.
Измените дозу в случае почечной недостаточности.
Объяснение системой хода своего рассуждения
MYCIN: Произошло ли инфицирование больного в больнице?
Пользователь: Почему?
TEIRESIAS. (Почему важно это знать?) Это поможет определить, к какой категории относится микроорганизм, ответственный за инфекцию.
Уже установлено, что, во-первых, организм грамотрица- телен; во-вторых, это бактерия и, в-третьих, она аэробна или анаэробна.
Следовательно, заражение произошло не во время пребывания в больнице.
Почти наверное (0,8), что организм относится к категории энтеробактерий; более того, возможно (0,1 ——правило 37), что это pseudomonia aeruginosa.
Пользователь: Почему вы не предположили возможности того, что причиной заболевания является стрептококк?
TEIRESIAS: Для того чтобы идентифицировать организм как стрептококк, нужно было бы использовать правило 33, но уже известна сложность его второй предпосылки, а именно «морфологический тип — оболочка», поэтому правило 33 неприменимо.
72 Функционирование системы MYCIN — TEIRESIAS
MYCIN вместе с дополняющими ее программами TEIRESIAS и BAOBAB образуют типичную экспертную систему, которая оперирует с большим количеством знаний, заданных в описательной форме. Ниже описаны ее цели, достоинства и характер функционирования. ,
Цель
Система MYCIN была задумана для оказания помощи врачу в режиме взаимодействия врача и системы при постановке диагноза и лечения бактериальных заражений крови.
Консультация ведется по-английски с врачом, располагающим всей полезной информацией о пациенте и результатах лабораторных анализов. Рассуждения MYC1N в случае отсутствия полной информации (результаты лабораторного анализа культур бывают обычно известны только через 24 или 48 ч) основываются на множестве так называемых продукций (продукционных правил), выражающих индивидуализированные знания. Система MYCIN способна объяснить свои рассуждения 'и ответить на вопросы, поставленные на обычном языке. Более того, такая продукционная база знаний может быть видоизменена или увеличена, причем в каждый момент система обладает моделью своих знаний, т. е. в известном смысле знает, что именно она знает.
Достоинства
Достоинством системы MYCIN — одной из самых совершенных в области искусственного интеллекта ——является то, что используемая техника имеет достаточно общий характер, и то, что программа является действующей: она получает результаты высокого качества и находит эффективное применение в практике.
MYC1N, разработка которой была начата в 1974 г. Шорт- лиффом, образует основное звено в цепи исследований, проводимых в течение более десяти лет в Станфордском университете под руководством Дж. Маккарти в рамках Станфордского проекта эвристического программирования. Система разрабатывалась в тесном взаимодействии с врачами из инфекционного отделения медицинского факультета этого же университета.
К этому времени Букханан и Фейгенбаум из Станфордского университета разработали экспертную систему DENDRAL и METADENDRAL (1968), предназначенную для работы в области органической химии. Тот же коллектив специалистов разработал систему приобретения знаний TEIRESIAS (1974) и программу BAOBAB (1980), которая . автоматически создает структуру, основываясь на базе знаний, содержащихся в истории болезни пациента.
Впоследствии этот коллектив обратился к другим предметным областям, таким, как авторемонтное дело, лечение менингита, диагностика легочных инфекций, оказание помощи при
горнорудных изысканиях нли генетических манипуляциях ——что показывает силу и общность принятого подхода. Следует отметить, что проблема диагностики, даже ограниченная вполне определенной областью применения, как, например, микробные инфекции, является весьма сложной. В самом деле: .
не существует единого универсального метода лечения инфекционных заболеваний;
статистика показывает, что, хотя пенициллин дают годами каждому человеку из четырех, в 9 случаях из 10 ои оказывается бесполезным. Отсюда необходимость установления характера инфекции до начала лечения;
необходимо также как можно лучше знать инфицирующий возбудитель, что является довольно трудной задачей: для получения достаточно точных характеристик с помощью лабораторных анализов требуется 48 ч, еще больше ——для получения антибиограммы. Кроме того, необходимо перекрывать новые пути проникновения инфекции;
во многих случаях инфекция настолько серьезна, что необходимо начать лечение еще до того, как известны результаты анализов, а в некоторых случаях (например, заражение вирулентными бактериями после операции на сердце) и при отсутствии штатного бактериолога;
дополнительные сложности вносит недопустимость для пациента некоторых лекарственных средств (аллергии, тяжелое состояние пациента, возрастные ограничения).
Любая система, будь то человек или программа, которая приступает к решению этой задачи, должна располагать всей возможной информацией по всем отмеченным пунктам, должна знать, могут ли они взаимодействовать между собой, и, наконец, должна принимать решение в течение очень короткого промежутка времени. Это решение является компромиссом, достигаемым в недостаточно изученной ситуации, между требуемой эффективностью лечения и требуемым для этого временем.
Некоторым утешением может служить то обстоятельство, что эта сложная проблема на самом деле весьма ограниченна в том смысле, что для ее решения нет необходимости в знаниях по общей медицине, по теоретическим моделям инфекций или по устойчивости микробов к антибиотикам.
Мы увидим, что представление знаний в декларативной форме с помощью продукций вполне годится для рассматриваемой области и что оно облегчает диалог с пользователем на естественном языке, причем программа действительно в состоянии пояснять ход своего рассуждения. Наконец, система,
постоянно учитывающая новые данные, может быть хорошим учителем, способным помочь специалисту использовать свои знания.
Описание
Система состоит из базы знаний, представляющей собойСистема состоит из базы знаний, представляющей собойзаданное множество правил, и четырех главных программ, ко-заданное множество правил, и четырех главных программ, ко-Рис. 7.1. Принципиальная схема системы MYC1N.Рис. 7.1. Принципиальная схема системы MYC1N.
Система состоит из базы знаний, представляющей собой
Система состоит из базы знаний, представляющей собой
заданное множество правил, и четырех главных программ, ко-
заданное множество правил, и четырех главных программ, ко-
Рис. 7.1. Принципиальная схема системы MYC1N.
Рис. 7.1. Принципиальная схема системы MYC1N.
торые взаимодействуют между собой по схеме, изображенной на рис* 7.1.
Правила
Основная совокупность знаний ——это база знаний, состоящая примерно из 400 правил продукций, каждое из которых содержит множество посылок, описывающих некоторую ситуацию, и множества действий, которые нужно предпринять в ответ, если посылки окажутся удовлетворенными.
Каждое правило имеет следующую форму:
Если Рг и Р2 и ... Р/, то aL и а2 . • • и а『,где Pi — посылки или условия. В системе MYCIN они представлены следующим образом:
<предикат> <объект> <определение> <оценка>
Примеры. MYCIN, правило 85. Если 1) место нахождения культуры — кровь, и 2) микроорганизм — граммоотрицателен, и 3) микроорганизм имеет вид палочки, и 4) пациент относится к группе риска, то с уверенностью 0,6 микроорганизм представляют собой pseudornonia aeruginosa.
MYCIN, правило 217. Если 1) микроорганизм — бактериален и 2) местонахождение культуры ——стерильно, то можно рекомендовать терапию с использованием следующих средств: хлорамфеникола, клиндамицина, тетрациклина, линдомицина, гентамицина.
MYCIN располагает стандартным набором нз 24 предикатов (например, «есть», «тот же самый», «известен», «принадлежит к» …),11 объектами («микроорганизм»,《культура》,«лекарство» .…) и 80 определениями («идентичность микроорганизма», «чувствительность», «местонахождение» …),которые служат для описания рассматриваемого случая.
Правила представляются на естественном языке. Одна группа правил предназначена для диагностики, другая —для построения рецептов лечения.
Кроме того, с каждым правилом связан коэффициент надежности (КН), принимающий значения от 0 до 1, который выражает большую или меньшую достоверность заключения эксперта. В самом деле, знание в этой области никогда не бывает абсолютно надежным. Точно так же и наблюдаемые факты —— симптомы — не являются чаще всего независимыми и надежными. Мы увидим, что MYCIN в работе использует факторы правдоподобия, которые, кстати, не подчиняются вероятностным закономерностям.
Примерное рассуждение
Факты, относящиеся к внешнему миру, представляются в виде триплетов, оцененных коэффициентом уверенности (КУ), который может принимать значения от ——1 до 1.
Примеры. Идентификация микроорганизма: Е. coli 0,7. Идентификация микроорганизма: klebsiella 0,4. Чувствительность микроорганизма: пенициллин — 0,9.
Коэффициент уверенности КУ, полученный из нового, факта, выведенного из правила с коэффициентом надежности КН, задается формулой '
КУ = КНХп11пКУрг
где КУр/ обозначает коэффициент уверенности для f-й посылки.
Модель допускает сосуществование многих возможных значений одного и того же параметра.
Если в процессе рассуждений два различных правила приводят к одному и тому же заключению, но с разными значениями КУ, равными КУ1 и КУ2, то они взаимно усиливают друг друга:
КУ = КУ] + КУ2 一 КУ] X КУ2.
Всякий факт, для которого абсолютное значение КУ меньше 0,2, рассматривается всей системой как малонадежный и исключается из базы фактов.
Некоторые авторы критически относятся к такому подсчету и предлагают другие решения (Friedman, 1981; Dayle 1979; Swartout 1981).
Механизм формирования заключений
Само рассуждение ведется в обратном порядке, отправляясь от микроорганизмов — возможных причин инфекции — к симптомам. При этом конструируется дерево И/ИЛИ.
Сначала задается цель. Затем система рассматривает все правила, заключения которых приводят к этой цели. Левая часть (звено И) каждого правила, если это возможно, оценивается и строится коэффициент уверенности КУ результата (абсолютное значение) как минимум из значений коэффициентов уверенности в посылках. Если этот КУ ^ 0,2, формируется правая часть с коэффициентом уверенности, равным произведению полученного КУ на коэффициент надежности правила. Если КУ V 0,2, правило ничего не дает (исходная гипотеза отвергается).
В случае когда некоторые посылки не могут быть оценены, они соединяются вместе и рассматриваются как промежуточные подцели (звенья ИЛИ) и система повторяет процесс (см. схему из разд. 7.3.1).
Если система не приходит ни к какому выводу, она запрашивает новую информацию, относящуюся к пациенту, т. е. система не задает лишних вопросов врачу (который этого не любит) до тех пор, пока он не испробует все возможные варианты (что позволяет ему, кроме того, сформулировать осмысленный вопрос).
Этот исчерпывающий перебор, основанный на правилах продукций, сближает систему MYCIN с системами доказательства теорем, также оперирующими в относительно узком пространстве поиска.
Некоторые другие средства дополняют описанную стандартную процедуру. В системе MYCIN делается обобщение цели. Так вопрос: «Является ли данный микроорганизм кишечной палочкой?» обычно преобразуется системой в вопрос: «Какова природа микроорганизма?» Если получение ответа на подобный вопрос стоит системе не слишком дорого, она за счет этого может обойтись без дополнительных вопросов, обращенных к пользователю.
Система MYCIN использует для каждой цели абсолютно все релевантные правила с учетом коэффициентов надежности, так как в этой предметной области желательно взвешивать варианты и составлять суждения о каждом возможном случае. Лишь в том случае, когда вывод полностью определен (КУ = 1),
возможно более раннее прерывание процесса использования правил.
Для повышения эффективности работы системы MYCIN необходимо, чтобы она всегда имела право расспрашивать врача об обстоятельствах, которым тот не придает значения, но которые ему известны как данные текущего лабораторного анализа. Кроме того, система в течение всей работы сохраняет в памяти след всех своих знаний, в частности запоминается вся история болезни, что полезно по трем причинам:
Происходит исключение бесполезных вычислений, а также ложное смешение информации в процессе ее поиска.
Это обеспечивает способность MYCIN объяснить эксперту, как и почему она приходит к своим окончательным заключениям (см. разд. 7.4).
На этом основывается знание того, какой вопрос нужно задать эксперту на следующей фазе, если в полученной прежде информации обнаруживается ошибка.
Метаправила
Система может работать со своим собственным представлением знаний и наделена способностью к рассуждениям по отношению к так называемым профилям и метаправилам.
Профили приписаны каждому из 24 используемых предикатов и дают системе возможность знать, какие определения управляют применимостью рассматрива'смых предикатов. Они дают выигрыш в объеме вычислений, постоянно показывая, содержится ли данное определение многократно в посылках различных правил. Таким образом, профили позволяют производить первую быструю и грубую оценку посылок. Эта оценка показывает, если следовать простой логике, будет ли данное правило применимым и нужно ли внести его в список ожидания или оно совсем неприменимо к рассматриваемой ситуации.
Метаправила — это символические данные, по структуре аналогичные тем правилам, которые используются в системе MYCIN для поиска решения. Метаправила выделяют те стратегии, которые позволяют избежать полного перебора вариантов, указывая путь наилучшего приближения к данной подцели, а также выбор самих правил и метаправил.
Например, первое метаправило касается главной цели MYCIN — «рекомендовать терапевтическое лечение пациента». Оно выглядит следующим образом:
Если разыскивается способ лечения, нужно рассмотреть в следующем порядке правила, позволяющие:
получить клинические сведения о пациенте;
найти микроорганизмы, если они существуют, которые могут быть причиной данной инфекции;
выделить из них наиболее правдоподобные микроорганизмы;
найти все потенциально полезные лекарства;
выбрать из них наиболее подходящие, оставив возможно меньшее число вариантов.
Другим примером метаправила является метаправило 2:
Если 1) пациент инфицирован и 2) существуют правила, одна из посылок которых касается pseudomonias, и 3) существуют правила, одна из посылок которых касается klebsiellas, то с вероятностью 0,4 сначала следует использовать правила из первой группы.
Метаправило 25 гласит:
Если 1) местонахождение культуры нестерильно и 2) существуют правила, в посылках которых упоминается микроорганизм, уже встречавшийся у пациента ранее (возможно, совпадающий с микроорганизмом, поиск которого ведется), то несомненно ни одно из этих правил не может оказать помощь.
(Инфекционное заболевание, от которого ранее пациент был излечен, может возобновиться. Поэтому в медицинской практике принято искать действующую бактерию среди тех, которые уже встречались у того же пациента. Однако этот метод не подходит в случае, если изучаемая культура взята из нестерильной среды.)
Это метаправило на языке Лисп записывается следующим образом:
Посылка: (($AND (MEMBF SITE CONTEX) (NONSTERILESITES) (THEREARE OBJRULES) (MENTION CONTEX PREMISE SUMFBUG))
Действие: (CONCLIST CONTEXT UTILITY YES TALLY-1)
Таким образом, метаправила, имеющие тот же формат, что и основные правила, просматриваются для каждой подцели. Они могут приводить в порядок множество правил или уменьшать общее число правил, используемых в ходе анализа, редуцируя дерево поиска, образуемое разными правилами. Каждое ребро дерева требует доступа ко всей имеющейся информации, метаправила тесно связаны с данным ребром, и поиск приспосабливается к текущему контексту.
Именно эти структуры управления и соответствующие эвристические данные выявляются в метаправилах, а не извлекаются из тела программы.
Наконец, поскольку интерпретатор системы MYCIN вызывает правила по их содержимому, а не по имени, система естественным образом приспосабливается к любым дополнениям и изъятиям правил или другим модификациям базы знаний.
Объяснения; предоставляемые системой, и диалог на естественном языке
При разработке концепции системы MYCIN важное требование состояло в том, чтобы программа могла объяснить свои действия для того, чтобы сделать их понятными врачу, а также сделать их более убедительными. Легкость встроенного диалога позволяет пользователю задавать вопросы системе в любой момент.
Способность к пониманию вопросов и объяснения осуществляются элементарным интерпретатором вопросов на основе ключевых слов и жестких форматов ввода-вывода. Функционирование этого интерпретатора в значительной степени облегчается благодаря стандартной форме представления знаний (правила продукций) и требует достаточно простой схемы перебора. Мы не будем здесь вдаваться в подробности относительно обработки естественного языка программы TEIRESIAS, описываемой ниже; это не входит в наши намерения и не составляет основного содержания книги.
Приобретение новых знаний. Система TEIRESIAS
TEIRESIAS — интерактивная программа, предназначенная для оказания помощи эксперту в разработке системы, функционирующей в области, характеризующейся большой массой знаний. Это промежуточная программа (интерфейс), ведущая диалог с экспертом на естественном языке с целью освободить его от анализа отдельных частностей. Система TEIRESIAS может не только непосредственно использовать свои знания, но также заниматься их изучением, обобщением и обсуждением (Тире- зий ——имя слепого предсказателя в трагедии Софокла «Царь Эдип»). Предусмотрена также возможность ведения диалога между двумя специалистами.
Первый вариант системы TEIRESIAS был некоторым обобщением системы MYCIN, предназначенной для диагностики и лечения инфекционных заболеваний крови (R. Davis, Stanford, 1976). Ее целью является создание возможности простого перехода к другой предметной области и помощь эксперту при конструировании базы знаний. С тех пор такой подход получил широкое распространение (разд. 7.4).
Единственное важное предположение состоит в том, что представление (в форме правил продукций) и введенные понятия——правильные и что допустимо лишь просто расширение или модификация базы данных. Все происходит так, как будто профессор-эксперт читает свой курс. Затем он дает учащемуся новые задачи, внимательно следит за их решением и исправляет ошибки.
Пример работы программы TEIRESIAS с комментарием
Проиллюстрируем работу системы TEIRESIAS, основываясь на диалоге, представленном на рис. 7.2, который был описан Дэвисом. Для большей наглядности медицинские термины были вручную заменены биржевыми (например, кишечная палочка перешла в Американскую телефонную и телеграфную компанию, инфекция ——в инвестицию, принять лекарство ——купить акции и т. д.).
Система TEIRESIAS принимает во внимание мнение эксперта после каждого сеанса консультации с ним.
TEIRESIAS: Являются ли следующие объекты для инвестиции в самом деле наиболее подходящими, а именно корпорация Вариан и Американская телефонная компания (АТТ)? Так ли это?(1)
Эксперт: Нет.
TEIRESIAS: Каких-то компаний не хватает?
Эксперт. Да. Диджитал Эквипмент и Дейта Дженерал.
TEIRESIAS: Вошла ли в приведенный перечень какая-либо фирма, которая не должна туда входить?
Эксперт. Да. АТТ.
TEIRESIAS: Желаете ли Вы, чтобы я произвела поиск ошибок?
Эксперт: Да.
TEIRESIAS: Итак» начнем с АТТ.(2)
Я использовала правило 27, так как:
область инвестиций не уточнена;
ожидаемая выгода выше на 10 %;
инвестиция рассчитана на продолжительный срок.
Таким образом, ЛТТ — правдоподобный выбор с коэффициентом надежности 0,4-
Верно ли само это правило?
Эксперт: Да.
TEIRESIAS: Нужно уточнить одну из его посылок?
Эксперт: Да, посылку 1..(3)
TEIRESIAS: Я не пришла к определенному заключению относительно области иинестиций. Нужно ли мне ввести какие-то уточнения?
Эксперт: Да. Усовершенствованную технологию.
TEIRESIAS: Все попытки поиска правил, которые могли бы сделать вывод об области, где применяется усовершенствованная технология, окончились неудачей, так как все явные посылки оказались ложными (таково впечатление от двух рассмотренных мною правил).
Верны ли эти два правила^
Эксперт: Да.
TEIRESIAS. Следует ли применить одно из них?
Эксперт: Нет.⑷
TEIRESIAS: Не хватает ли какого-либо правила?
Эксперт: Да.
TEIRESIAS: Хорошо, тогда мне нужно иметь правило, из которого я могла бы сделать вывод о том, что в нужной области применяется усовер- шеиствоваиная технология. Могли бы вы указать мне такое правило?
Эксперт: Если предел обложения клиента налогом составляет 50 % и если клиент внимательно следует тенденциям развития рынка, то очевидно с коэффициентом 0,8, что инвестиция осуществляется при условии использования высокого уровня технологии.(5)
TEIRESIAS: Назовем новое правило R383. Вот, как я его понимаю: Если
предел налога, который платит клиент, составляет 50 i%;
недавно на рынке произошел скачок цен;
клиент внимательно относится к использованию своих ценных бумаг, то инвестироваться должна отрасль с высоким уровнем технологии (0,8). Согласны ли Вы с этим?(6)
Эксперт: Нет.
TEIRESIAS: Нужно ли изменить посылки?
Эксперт: Да, измените посылку 2.
TEIRESIAS: Предположите, что посылка 2 изменена на 2’ <клиеит внимательно следит за рынком». Согласны ли Вы?
Эксперт: Да.(7)
TEIRES1AS: Вы хотите теперь еще отменить посылку 3. Согласны?
Эксперт: Да.(8)
TEIRESIAS: (Идет повторение R383.) Затем: я ре люблю критиковать Рэнди, но знаете ли Вы, что, вообще говоря, правила, касающиеся областей инвестиций, в которые входит предел налогообложения и способ Слежения клиента за положением на рынке, означают, что клиент имеет опыт в вопросе инвестиций? Должна ли я попытаться сформулировать третью посылку?,
Эксперт: Да.(9)
TEIRESIAS: Как бы Вы отнеслись :к такой формулировке: в вопросе инвестиций клиент имеет известный опыт?
Эксперт: Согласен.(10)
TEIRES1AS: Большинство подобных правил дает также , заключение о желательном классе риска для инвестиций. Скажите, должна ли я попытаться привести здесь подобное заключение?
Эксперт: Нет.
TE1RES1AS: (Идет повторение скорректированного правила R383). Затем: Пожалуйста, обоснуйте кратко, почему Вы использовали это правило.
Эксперт: Система не поняла, что требуетси уточнение области инвестиций, а это привело к тому, что правило 27 было щ)именено неправильно.
TE1RES1AS: R383 было присоединено к 厶зе знаний. Консультация будет использована для эффективной проверки обоснованности правила. Располагайтесь поудобнее. Это может потребовать много времени. ' Результаты. Для инвестиций предлагаются: корпорации Вариан, Дейта *Дженерал( Диджитал Эквипмент. Кажется, что теперь все исправлено, не так ли?■
Эксперт: Да.
Рис. 72 Диалог с программой TEIRESIAS. Цифры в скобках обозначают ссылки на помещенные ниже комментарии.
Именно здесь после результатов, выдаваемых системой MYCIN, включается в работу TEIRESIAS. Перваи фаза состоит в выявлении ошибки.
Экспериментально выделенные эвристические данные были заданы программе в форме метаправил. Одно из мнх говорит о соглашении: а) рассма-
трнвать проблему в целом; б) первое предпочтение отдавать выводу, которого не должны были получить.
Эксперт указывает, что да иное правило не должно было быть применено. В противном случае TEIRESIAS указала бы ему, что не хватает некоторого другого правила, противоречащего принятию АТТ.
Положительный ответ возможен в случае, если бы была ошибка при оценке посылки за счет объявления ее ложной другим правилом.
Выявление, ошибки путем точных и подходящих вопросов происходит довольно быстро. На этом втором этапе система интерпретирует новое правило.
Ошибка в формулировке системы TEIRESIAS произошла из-за элементарного лингвистического пословного анализа (даже не синтаксического) английской фразы пункта (s), где предикат «есть» (is) ассоциируется с объектом «рынок» (market). При этом система думает о посылке того типа (тенденция рынка есть...), который представляет собой модельную фразу, известную системе (разд. 7.3.2), усиленную здесь следующим далее английским предлогом《up».
8.8.После этого ошибка легко исправляется. Второй выбор оказался правильным. Предложение 3 отменяется, так как уже нельзя, как прежде, предполагать, что фраза распадается на две независимые посылки, потому что система хорошо знает, что слово «внимательно» не может быть использовано дважды. Это объясняется тем, что тексты н число возможных вариантов анализа невелики, так что необходимые корректирующие тесты легко проделать.
8.
8.
ВВВот первый текст на понимание в его завершенном виде: Чтение оригинального текста на английском языке. Преобразование в форму внутреннего представления. Повторный перевод на английский и предъявление пробного текста, конце этой фазы удовлетворяются требования эксперта, на последнем
В
В
этапе система сама определяет, удовлетворена она или нет.
В следующем разделе объясняется механизм создания системой нового правила.
Во всяком случае правило должно быть применимо к текущей ситуации—«умеренный эксперимент» (см. программу Уотермана для игры в покер, разд. 7.3.2).
Работа системы
Система просит эксперта сделать свой собственный вывод в следующих случаях:
Основой для вывода является программа необычного типа, а не до конца понятый метод исследования, опирающийся на систему простых правил описательного характера.
Система благодаря способности запоминать последствия своих действий предвидит такие из них, которые мешают получению правильного заключения. Получив подсказку, система может скорректировать как возможные предположения, так и ожидаемые эффекты от них.
Система считает необходимым задать конкретный вопрос: «В этой определенной ситуации что знаете вы и чего не знаю я?»
Модели правил, систематизирующие знания, позволяют программе TEIRESIAS не только использовать эти знания, но и предугадывать то, что ей может встретиться.
Модели правил. Модели правил высокого уровня представляют собой краткие обобщенные описания подмножеств правил более низкого уровня, объединенных какими-либо общими свойствами. Модель правила состоит из четырех частей:
список примеров, представляющий собой просто то под^ множество правил, на основе которых создается модель;
описание характерного элемента подмножества, где посылки и выводы характеризуются часто появляющимися признаками с учетом взаимной корреляции этих признаков. Для получения этих сведений используются методы статистического анализа;
два списка правил: один — специфичных правил, другой — общих правил. Они придают множеству моделей вид дерева, корнём которого является наиболее общая концепция.
Построением моделей правил занимается сама программа TEIRESIAS при достаточном увеличении ее базы знаний, начиная с того момента, когда в ее распоряжении оказывается несколько правил, относящихся к одной н той же области.
Пример модели правил. Модель:《尤 является-областью-ин- вестиций».
Примеры: R116, R80, R95,...
Описание:
——посылки: доход составляет/продолжительность состав- ляет/тенденция состоит в/
——корреляции: (доход, продолжительность)/(опыт, внимание). Заключение: область/риск.
Более общая модель: «область-инвестиций».
Менее общая модель: «предприятия-обслуживания-населения-яв- ляются-областью-инвестиций».
Когда программа TEIRESIAS ожидает получения нового правила (фаза 3 в приведенном на рис. 7.2 примере), она пробегает дерево моделей, начиная от корня, в поисках того, что она уже знает по поводу этого правила. В данном примере наиболее специфичная из известных моделей позволяет сделать вывод, что возможной областью инвестиций является развитая технология.
Частота появления предикатов в модели облегчает доступ к модели на естественном языке, а корреляции между появлением этих предикатов позволяют проверить, что эксперт не забыл ничего важного.
Использование моделей дает возможность компенсировать слабость проводимого в системе лингвистического анализа. Благодаря им проявляется важное свойство системы ——тенденция понимать только то, что она хочет понять.
Кроме того, дерево моделей правил позволяет программе делать выводы в малознакомых областях, для которых определено малое число правил. Можно сказать, что она знает то, чему следует обучаться в первую очередь и может задавать вопросы на эту тему (но она не может определить, сколько еще осталось узнать и не имеет никаких средств для того, чтобы сразу оценить правдоподобность нового для себя факта). С помощью дерева моделей программа сама систематизирует и структурирует знания, получаемые беспорядочным образом от эксперта, что в конце концов служит для его же пользы.
Результаты испытаний системы и анализ недостатков
Система MYCIN-TEIRESIAS написана на языке Лисп для ЭВМ PDP-10. Пятеро специалистов, не входящих в один научный коллектив, провели 15 сеансов испытаний системы, во время которых проверялись правильность лечебных рекомендаций, уместность заданных вопросов, наличие незаданных, но важных вопросов. В 72 % случаев эксперты выразили согласие с системой, в большинстве остальных случаев они сами не смогли прийти к единому мнению.
Многие экспертные системы, обзор которых приведен ниже в разд. 7.3, имеют общие черты с программами типа TEIRESIAS. В качестве примера можно привести систему PUFF, предназначенную для оказания помощи при диагностике легочных заболеваний. Для подготовки ее к работе необходимо, чтобы эксперты потратили примерно 50 ч на ввод специальных знаний, а затем около 10 человеко-недель требуется для окончательной настройки системы. -
Не вызывает сомнения, что системы, работа которых основана на правилах и метаправилах, в полной мере обеспечивают решение проблемы сбора и использования больших объемов знаний, по крайней мере в определенных предметных областях.
В разд. 7.7 дан общий обзор характеристик и предположительных свойств таких систем, их преимуществ и недостатков. В частности, более детально рассмотрены следующие недостатки системы MYCIN-TEIRESIAS:
Слабость средств обработки естественного языка. Более сильные средства ввел А. Бонне в программу BAOBAB, где максимально использовались априорные знания о предмете, записанные с помощью фреймов (Bobrow 1975). В результате удалось добиться лучшего понимания системой вводимых правил
и содержимого медицинских карт больных (разд. 7.6), но все проблемы при этом снять не удалось. Недостатки программы MYCIN, связанные с необходимостью модификации правил или требований ввода пакета из нескольких связанных друг с другом правил, в той же степени будут проявляться и в программе TEIRESIAS.
Программа TEIRESIAS заранее предполагает, что справедливость вновь вводимого правила может быть в дальнейшем подвергнута сомнению, но при этом банк знаний содержит точные сведения. В противном случае могут возникнуть дополнительные проблемы.
Даже с учетом отмеченных недостатков система в целом хорошо управляема и оказывается весьма полезной. Она эффективно управляет специализированными знаниями, при вводе которых эксперты не придерживаются никакого порядка. Система использует модель этих знаний, которую она сама же создает, для ведения диалога с экспертами, постоянно совершенствуя свои знания, т. е. набираясь опыта.
В целом MYCIN-TEIRESIAS относится к числу лучших интеллектуальных систем, являясь очень простой по замыслу и в реализации. Специалисты легко прогнозируют ее поведение, а принимаемые ею решения могут быть легко проверены.
7.3. Продукционные системы
Цель этого раздела состоит, с одной стороны, в более точном определении того, что представляет собой экспертная система и как можно ее программировать, а с другой ― показать состояние области экспертных систем на сегодняшний день.
Продукционное правило представляет собой выражение вида MGf МО,
в котором левая часть MG описывает определенную ситуацию, представленную в соответствии с формальными правилами рабочего пространства, а правая часть MD представляет собой действие, выполнение которого предполагается в случае обнаружения соответствующей ситуации. Такое правило очень похоже на теорему, а цепочка правил, связанных через заключения MD, MG и посылки, напоминает силлогизм. В рассматриваемых ниже системах в качестве базы знаний используются множества таких правил, а способ получения вывода представляет собой модус поненс (вз р в р п q следует q). Благодаря этому результаты работы системы легко получают объяснение. Другие достоинства продукционных систем приведены в разд. 7.4.
Метод обработки информации с помощью продукционных правил не является формальным аналогом приемов, применяв-
мых в системах с использованием традиционных процедур (разд. 7.5). Впервые метод продукций был предложен Е. Постом (Post, 1936) и использован для определения языков и формальных грамматик (Chomsky 1963). С 1974 г. он находит широкое применение в многочисленных программах, которые получили уже знакомое нам название экспертных систем. Они
(RD А *Е (R2) В > D (R3) Н * А (FU) Е A Q * С (R5) Е А К *В (Rfi) D А Е Л К *С (R7) G Л К Л F *А
8) : н,к
Н*А<R3)
А+Е<R1)
Д Л К-*в《R5)
B+D(R2)
D Л Е Л К+С (R6j
《丿
Рис. 7.3. Примеры вывода при движении по цепочке вперед.
применяются в специальных областях, где решение задач основано на логических выводах, но имеет исключительно познавательный- аспект. В основе экспертных систем лежат продукционные правила, поддерживающие весь объем доступных знаний. Эти знания представлены -в модульном виде и могут быть легко модифицированы с учетом того, что их содержание не меняется при выполнении программ. На рис. 7.3 приведен пример вывода в такой системе.
Посылки А, В, ... могут быть простыми логическими предложениями типа «истина или ложь», как в системе M.YCIN, или предикатами с переменными или еще какими-либо соотношениями. Богатство языка и легкость выражения с его помощью знаний, естественно, увеличиваются с развитием используемого формального аппарата (разд. 7.4 и др.).
Любопытно, что те же продукционные системы в настоящее время используются психологами для моделирования некоторых интеллектуальных процессов и успешно конкурируют с другими методами: Например, Ньюэлл (Newell, 1972) полагает, что формальный аппарат подобных систем может служить хорошей моделью для описания передачи информации между кратковременной и долговременной памятью человека и управления нашими знаниями. Следовательно, использование таких систем в области искусственного интеллекта не является случайностью.
Структура продукционной системы
Система в целом состоит из базы знаний, которая содержит множество продукционных правил, рабочего пространства (или базы фактов) и программного интерпретатора.
Рабочее пространство в начале работы содержит формулировку поставленной задачи, а затем в нем появляется множество фактов, которые программа смогла установить к текущему моменту времени. Это пространство играет роль кратковременной памяти, а факты, которые оно содержит, являются
Рис. 7.4. Элементарный цикл интерпретатора.
утверждениями, касающимися статического описания задачи и различных способов обращения к долговременной памяти. Последняя содержит базу динамических знаний, которая состоит из операторов преобразования, выраженных в форме правил. Эти правила могут содержать переменные, значения которых уточняются и приводятся в соответствие с известными фактами
с помощью процедур «квазиунификации» или «фильтрации» в процессе каждого сеанса работы интерпретатора.
илиили: Унификация является фундаментальным механизмом, который лежит в основе работы продукционных систем. В целом она позволяет ответить на вопрос, существуют ли такие комбинации подстановок переменных, которые позволяют получить две логически идентичные формулы, и является составным элементом безупречно определенного алгоритма резолюции (гл. 3).
или
или
Заключение^ полученное из: правил с многими посылка, ми: ГН f2, f3) 典丝丄
/ЦЕЛЬ/ЦЕЛЬR®cK0〃bKLi8 различная правокционны^с тграби/г: (д1? д&) -^ узел или
/ЦЕЛЬ
/ЦЕЛЬ
'Рис. 7.5. Дерево вывода при движении по цепочке назад (те же данные, что и на рис. 7.3).
Интерпретатор является основной частью системы и полностью управляет порядком выводов, выполнение которых всегда можно представить в виде последовательности похожих друг на друга элементарных циклов (рис. 7.4). Отметим одну важную проблему, состоящую в выборе порядка выполнения правил. В дальнейшем нами будут рассмотрены некоторые подходы к се решению.
Различие между продукционными системами заключается в том, что в одних системах новая информация, полученная с помощью выводов, просто прибавляется к базе фактов, а в других ——прибавляется с разрушением и замещением уже присутствовавших там фактов (Newell, 1971).
Движение к цели при работе системы происходит естественным образом (как при доказательстве теоремы) и может быть легко представлено с помощью И/ИЛИ (рис. 7.5).
В действительности дерево может быть пройдено в одном из двух направлений: или от фактов к заключению, или от заключения, которое в этом случае рассматривается как предгюло- жение, к фактам. В первом случае говорят о движении по цепочке вперед (рис. 7.3), во втором — о движении по цепочке назад (рис. 7.5). Чаще всего выбирается второе решение, так как оно лучше учитывает структуру фактов, которые, с одной стороны, не являются независимыми, а с другой ——многие из
Рис. 7.6. Общая схема современной продукционной системы.
них не относятся к рассматриваемой проблеме, т. е. такой подход позволяет прежде всего избежать комбинаторного взрыва числа возможных' цепочек, так как лишь в немногих случаях заключения можно заранее предвидеть и как-то ограничить перебор вариантов. В частности, он принят в программах MYCIN и DENDRAL (разд. 7.3.4).
Большую часть вычислительной работы в этом случае выполняет интерпретатор Лисп с помощью рекурсивных процедур. Общая схема системы приведена на рис. 7.6. Заметим, что хороший интерпретатор должен давать возможность проходить по цепочке правил вперед или назад в зависимости от практических потребностей.
Используемые предположения при разработке продукционных систем и области их применимости
Доступ к содержащимся в системе знаниям и их использование основываются на некоторых предположениях.
Прежде всего необходимо, чтобы специалист в данной области мог описать ситуацию. Рассматриваемая область знаний должна быть хорошо разработана и основываться на твердых концепциях, в противном случае надо было бы опуститься до такого уровня детализации, что объем создаваемой базы знаний превысил бы всякие разумные пределы (Nilsson, 1980).
Структура изучаемого пространства
Прежде всего необходимо объявить действующие в данном пространстве правила. Входящие в них параметры, с помощью которых описывается изучаемая ситуация, должны быть слабо связаны между собой, в противном случае левые части правил становятся очень длинными и запутанными. Другими словами, изучаемое пространство должно быть слабо связанным, тогда каждое действие в нем над элементарными знаниями будет затрагивать лишь небольшое число параметров.
Одно-единственное правило может охватывать большую часть знаний человека. Например, правило «Правдоподобно, Что микроорганизм типа палочки в грамотрицательной крови является Е. Coli》основано одновременно на знаниях из области физиологии и на клиническом опыте.
Схемы заключений
В рассматриваемом пространстве должна быть справедлива простая схема заключения типа модус поненс (из р и png следует q) или ее вариант модус толленс (из ~]夕 и р n 夕 следует Пр).
Цель исследования должна быть хорошо определена и уточнена (поэтому возможно движение назад по цепочке правил). Более предпочтительными являются дискретные переменные по сравнению с непрерывными. Это позволяет избежать резкого увеличения объема базы фактов. Решаемые задачи не должны состоять в последовательном достижении нескольких сильно связанных друг с другом подцелей, в противном случае нужно использовать классический процедурный подход.
Априорные следствия из предположений, обеспечивающих применимость продукционной системы
Эту модель не следует применять для проблем, сложных по своей постановке или по характеру решения (например, сложные комбинаторные проблемы). Кроме того, модель по природе ориентирована больше на модификацию области, чем на использование свойств инвариантности. Тавтологии, определения или формальные отношения зависимостей в действительности не связаны с каким-либо единым основным механизмом. Они
могут быть учтены другими схемами заключений, к которым относятся «демоны» (Hewitt, 1981), «классы подобия» (Bundy, 1979) (разд. 7.4), "приоритетные прерывания'' (Gascuel, 1981).
Варианты, используемые в концепции продукционной системы
Следует отметить два важных момента, касающихся представления знаний и структуры управления, когда речь идет об обработке информации в таких, системах.
Содержимое базы экспертизы
Для того чтобы адаптировать базу знаний к той или иной области, ее содержимое должно изменяться в зависимости от предмета. При этом для правил чаще всего применяется фиксированный формат, а для ограничения числа разрешенных унификаций используемые параметры стандартизуются. В системе DENDRAL левая часть правила является названием структуры (граф молекулы), а правая описывает возможные преобразования графа в спектрограф. Пример такого правила выглядит следующим образом:
“Эстрогенf развал молекулы ((14—15), (13—17)) и передача водорода (1,12)”.
Такая условная запись позволяет выразить правило сжато и эффективно.
Наконец, многие современные системы допускают в правилах вызов процедур с последующей традиционной (числовой) обработкой данных, хотя часто посылки и выводы правил сами являются базовыми фактами, над которыми выполняется только проверка или модификация.
Структура управления
Проблема управления состоит в разрешении конфликтов между правилами, готовыми к выполнению. Выбор правила имеет важное значение не только для производительности системы, но главным образом для того чтобы она могла совершенствоваться и? "понимать0 то, что она делает.
В настоящее время в литературе упоминаются три больших семейства структур управления, основанных на следующих принципах:
Исчерпывающий перебор.
Выбор правила с помощью оценки.
Управление с помощью метаправил.
Исчерпывающий перебор. Данный тип управления используется в системе MYCIN. Эта стратегия удобна в тех случаях,
когда ответ на точно поставленный вопрос отыскивается путем взвешенного анализа всех возможных выводов и комбинаторика в исследуемом пространстве невелика.
Выбор правила с помощью оценки. Самый общий тип оценки состоит в выборе первого встретившегося правила, удовлетворяющего соответствующим условиям (см. работы в области психологии Уотермана или Моргана). С помощью этого способа производится эффективное упорядочивание правил, однако он сводит на нет наиболее фундаментальное свойство продукционной системы — простота модификации базы знаний.
В других вариантах оценки сначала отыскивают все правила-кандидаты, а затем выбирают из них правило с максимальным значением оценки, полученной с помощью того или иного следующего критерия:
динамическая оценка приоритета правил в зависимости от их вклада в достижение цели;
приоритет правил устанавливается в зависимости от важности используемых фактов;
критерий специализации: выбирается наиболее специфичное правило (критерий, используемый в интерпретаторе Лисп);
выбор, определяемый графом, устанавливающим связь частичного порядка с правилом (DENDRAL) или осуществляемый с помощью программы (Gascuel, 1981);
выбор последнего использованного правила;
выбор правила, в котором упоминается последний использованный факт.
Управление с помощью метаправил. В первом приближении этой структуре можно отдать предпочтение перед всеми остальными, поскольку логика вывода при этом становится подобной самим правилам. Действие программы в каждый момент времени сильно зависит от состояния системы, а метаправила позволяют определить, что нужно предпринять в первую очередь в каждой конкретной ситуации. При этом используются те же идеи, что и при доказательстве теорем (Hewitt, 1972).
Заметим, что во всех случаях структура управления требует от системы, чтобы все сообщения проходили через баз^ фактов. Сам принцип продукционных правил запрещает им обращаться друг к другу (в точности наоборот по сравнению с тем, что происходит для процедур в классическом программировании) (см. разд. 7.5 для более подробного сравнения). Важное свойство метаправил заключается в том, что с их помощью элементарные правила могут быть добавлены в систему, а также модифицированы или исключены, т. е. система становится способной к самоорганизации.
Эффективность продукционной системы
Время вычислений и получения выводов растет вместе с произведением числа правил на число записей в базе фактов. Наиболее важным фактором является число безуспешных попыток, предпринятых для выполнения правил. Можно построить различные фильтры, которые перед унификацией исключают бесполезные правила и факты. Дермотт (Dermott, 1978) предлагает четыре таких фильтра и приводит соответствующие формулы оценки времени их работы. Решение, принимаемое многими авторами, состоит в выполнении данного правила и последующем переносе выведенных фактов с реактивацией только таких правил, в которых эти факты упоминаются как посылки. Кроме того, в некоторых интерпретаторах предусматривается оценка выражений, общих для нескольких правил, только один раз за цикл и даже сохранение результатов вычислений при переходе от одного цикла к другому, когда соответствующие факты не изменяются (Gascuel, 1981), (Ghallab, 1981), (Forgy, 1981). Простые и доступные эвристические факты используются здесь с полной отдачей: при минимальных затратах времени они упрощают поиск соответствия между правилами и фактами.
Другим средством уменьшения числа попыток является автоматическая организация элементарных фактов в более сложные структуры для получения представления более высокого уровня. При этом с увеличением разнообразия рассматриваемых объектов уменьшается вероятность успеха унификации и одновременно уменьшается число бесполезных попыток. В работе (Minsky, 1975) была предложена структура прототипов типичных ситуаций (фреймов), использовавшаяся во многих системах (разд. 7.5).•
Таким образом, если правила не содержат переменные, задача решается относительно просто. И наоборот, если использование переменных разрешено и, кроме того, число правил и число фактов представляются большими величинами (сотни и тысячи соответственно), то решение проблемы представляется затруднительным, комбинаторный взрыв может быть устранен ,уолько с помощью метазнания (разд. 7.7).
Теперь перейдем к обзору существующих экспертных систем.
7.34 Экспертные системы, использующие продукционные правила
Система DENDRAL
Назначение. Получение подробной формулы органического вещества исходя из его грубой формулы и масс-спектрограммы.
Разработчики. Стэнфордский университет. Букханан, Фейгенбаум, Ледерберг (лауреат Нобелевской премии по медицине 1958 г.). Сазерленд и Массачусетская спектральная лаборатория.
DENDRAL представляет собой результат исследований, начатый в 1964 г. Ледербергом, который создал систему для оказания помощи химику при проведении химического анализа органических веществ (структура и кодировка молекул с учетом топологических ограничений). В то время вера в возможности систем искусственного интеллекта была удивительной: существовали модные течения по созданию общих программ, способных делать все, включая доказательство теорем и реализацию универсального принципа решения задач (Feigenbaum, 1971).
Система DENDRAL начиналась с программы обычного типа (Davis, 1977). Она была полностью переделана в 1967 г., так как к тому времени она уже стала малоуправляемой.
Характеристики. Используемый метод принадлежит к .поиску, основанному на перечислении. Одна комбинаторная программа обслуживает все возможные структуры с учетом ограничений, накладываемых на данные. Она очень эффективна и работает гораздо быстрее, чем х^мик. Когда желаемая формула получена, можно предсказать спектр вещества с помощью правила вида “Такая-то атомная конфигурация—^такой-то распад" и сравнить его с реальными наблюдениями.
Обычный способ действий состоит в том, что задания помещаются в так называемую записную книжку (агенда). Это делается по той причине, что при выполнении заданий могут быть выполнены несколько правил и все, кроме одного, должны ждать своей очереди, или потому, что одно правило может требовать выполнения нескольких заданий. Записная книжка представляет собой структуру данных, с элементами которой связаны приоритеты, определяющие порядок доступа к этим данным.
Фундаментальным представлением, которое используется в системе DENDRAL как для обозначений в самих правилах, так и для связи с экспертом, является граф структурной химической формулы. Система DENDRAL повседневно используется химиками Стэнфордского университета. С ее помощью подготовлено 25 статей, опубликованных в специальных химических журналах.
Система МETA-DENDRAL
Назначение. Автоматические выводы об используемых в DENDRAL правилах фрагментации молекул. Данные представ-
ляют собой типы фрагментации в пробах, взятых в сравнительно простых веществах.
Исходное положение. Узким местом в системе DENDRAL является получение правил на основе данных, которые предоставляются химиками в весьма неупорядоченном виде (Buchanan, 1978). Ставилась задача быстрого выделения множества правил, наилучшим образом описывающих имеющиеся данные.
Характеристики. Здесь также используется комбинаторный метод. Перебираются всевозможные графы для данного вещества, при этом каждая конфигурация делается левой частью нового правила. Правая часть образуется из таких высоковероятных пиков в спектрограмме, которые могут быть признаны интересными после статистического изучения образцов. Все полученные правила затем проверяются и приводятся в порядок согласно следующим четырем процедурам:
устраняется избыточность;
объединяются правила с одинаковой левой частью;
если имеется правило, содержащее одну негативную по* сылку, делается попытка его уточнения с целью устранения этой посылки;
строится обобщение правил, содержащих одни и те же пoлoжитevrIьныe посылки и одни и те же результаты.
META-DENDRAL строит такие множества правил, которые успешно конкурируют с правилами, создаваемыми квалифицированными экспертами. META-DENDRAL создала новое множество правил в малоизученной области. После тщательного обсуждения химиками было сделано сообщение в международном обзоре по химии (1976 г.). Система была перенесена также на случай изучения спектров магнитного ядерного резонанса. При этом она стала создавать, отправляясь от беспорядочных и приближенных данных, более сложные правила, чем это делалось экспертами- (Buchanan, 1978).
Программа Уотермана (Waterman, 1970)
Назначение. Выявление эвристик для игры в покер путем (Обучения.
Разработчики. Уотерман описывает экспериментальную интеллектуальную систему, в которой предусмотрено четкое разделение между программой и эвристиками. Кроме того, про- грамма способна к расширению своих возможностей в ходе игры и корректировке множества применяемых при этом эвристик.
Характеристики. Применяемые эвристики берутся в форме правил продукций, которые постепенно корректируются. Кроме
того, программа способна конструировать новые правила.
Каждая отдельная ситуация в игре представляется в виде вектора с семью компонентами (номер руки, ценность комбинации, величина ставки, использование противником блефа (да или нет), отношение комбинация/ставка, произведена замена карт (да или нет), стиль (игры противника). Методы рассуждений выражаются как функции этого вектора.
Принятие решения и обучение в программе Уотермана. Структура управления правилами имеет особый характер: правила располагаются не произвольным образом, а в некотором заданном порядке и выполняется первая успешная унификация в соответствии с этим порядком. Из-за этого исправление любой ошибки оказывается достаточно сложным, более того, любая модификация приводит к трудно предсказуемым последствиям.
Выход, предлагаемый Уотерманом, состоит в следующем: четко формируется новое правило, которое точно описывает данную ситуацию с новой правой частью, корректирующей ошибочное решение. Тем самым возникают две возможности: либо уже существует правило, которое можно модифицировать так, чтобы получить тот же эффект, что и новое правило, либо такого правила не существует. В последнем случае обучение происходит очень просто: новое правило ставится непосредственно перед ошибочным правилом. Первый же случай разделяется на два в зависимости от того, расположено ли подлежащее модификации правило до или после ошибочного правила. Если оно находится перед ним, то поля определения символических значений параметров левой части расширяются таким образом, что они включают значения параметров из нового правила, т. е. старое правило обобщается. Если правило стоит после ошибочного правила, происходит, обратный процесс: программа выделяет правила, расположенные между ошибочным и модифицируемым правилами (включительно); поля параметров в них ограничиваются с целью исключения всех преждевременных комбинаций.
Опасности, подстерегающие подобную схему управления, многообразны: трудность проверки вручную влияния продукционных правил на ход игры, создание избыточных1 правил, которые система должна периодически исключать, неустойчивость поведения программы в фазе обучения. Автор сообщает о многих сериях экспериментов на автоматическое обучение и обучение с учителем, которые доказывают эффективность обучения и дают хорошее поведение системы в игре с использованием всего двух десятков правил в заключительной фазе.
Программа демонстрирует меняющийся стиль игры, который трудно охватить противнику. Но если это свойство и хорошо для локера, оно может иметь серьезные недостатки в других областях.
Семейство систем MYC1N-TE1RESIAS
Назначение. Помощь в диагностике и лечении, помощь в получении знаний в области бактериальных заражений крови.
Разработчики. Э. Шортлиф (Е. Shortliffe, 1974), Р. Дэвис (R. Davis, 1976), Станфордский университет, коллектив под руководством Букханана и Фейгенбаума (Buchanan — Feigenbaum).
Характеристики. Полезная, активно используемая программа. Система знает, что она знает и что нужно знать. Это помогает ей объяснять свой метод рассуждения, отвечать на вопросы, обучать эксперта, а затем давать ему советы, используя медицинскую терминологию (разд. 7.2).
GUIDON. Эта система обучает тому, о чем MYCIN рассуждает. Она предназначена для студентов-медиков Станфордско- го университета. Знания, выраженные в правилах системы MYCIN, отфильтровываются с помощью набора правил, относящихся к педагогике. (Clancey, 1979). Несмотря на то что исследование ситуации в системе MYCIN производится вслепую, методом полного перебора, этого оказывается вполне достаточно для -постепенного обучения этим правилам новичков.
При этом стратегия диагностики должна быть тщательно подобрана: зубная боль несравнима по своей тяжести с менингитом. Поэтому медики-информаторы Стэнфордского университета пришли к необходимости дальнейшего разделения правил на некоторые группы для того, чтобы, с одной стороны, выделить иерархию клинически определенных ситуаций, а с другой ——сохранить их взаимосвязи. Созданная новая система знаний получила название NEOMYCIN (Clancey, 1981).
ONCOC1N. Э. Шортлиф описывает весьма актуальную систему помощи в лечении рака. Концепция ONCOCIN во многих отношениях отличается от концепции MYCIN:
За больными должно вестись наблюдение; для каждого больного ведется и Подытоживается клинический протокол течения его болезни. Таким образом, время выступает здесь в качестве основного параметра. Признаки заболевания уже являются переменными, а не постоянными (это обстоятельство приводит к фундаментальным изменениям в структуре машины вывода: вычисление посылок теперь не является простым делом).
Область применения настолько обширна, что необходима классификация правил по контексту их применения.
По этой же причине система должна постоянно контролировать .совместимость и полноту всего множества правил.
С целью устранения длинных и дорогостоящих сессий вопросов ——ответов при отсутствии данных правила сами пытаются присвоить значения неизвестным параметрам.
Стратегия поиска не сводится более к полному перебору, а исходит из поставленной цели.
SU/X и некоторые другие системы
Назначение. Идентификация и локализация объектов, посылающих сигналы в пространство (Nii, 1978).
Разработчики. Система разработана Е. Фейгенбаумом и П. Нием (Е. Feigenbaum, Р. Nii, 1976), для слежения за развивающимися ситуациями и знаниями. Мгновенная память для запоминания фактов устроена по типу классной доски, использованной в системе HEARSAY из Университета Карнеги — Меллона (Erman, 1975).
Характеристики. Правые части правил точно определяют действия, которые фактически являются вызовами процедур: вычисление того или иного параметра или замена той или иной гипотезы на другую. Таким образом, правила служат в основном для исключения возможности комбинаторного взрыва.
VM (Feigenbaum, 1979). Это продукционная система для помощи сиделкам в отделении реанимации. Она непосредственно воспринимает состояние различных клинических показателей и постоянно следит за их изменением. Она поднимает тревогу в случае серьезной аномалии. .
CRYSAZYS — производная от системы SU/X, предназначенная для определения структуры белка с помощью карты плотности электронов в трехмерном пространстве, получаемой методом рентгеновской кристаллографии. Белковые молекулы протеинов настолько сложны, что методы полного перебора систем DENDRAL и MYCIN оказываются непригодными и требуется более богатая структура управления правилами (Engel- more, 1979).
MOLGEN. Это еще одна экспертная система, созданная тем же коллективом ученых. Предметом се применения является молекулярная биология; исходными являются различные uорудия", предназначенные для расчленения, связывания, включения и уничтожения молекул ДНК, эффекты, вызываемые такими модификациями, и состояние химической технологии. Речь идет о том, как и каким образом достичь цели, которая ставится генетиками. Основная трудность состоит в том, чтобы заставить взаимодействовать в базе знаний правила продукций, оперирующие разнообразной информацией из биологии, химии,
технологии преобразований, топологии, генетики (Friedland, 1979).
RITA. Система создана в фирме Rand коллективом, состоящим из Андерсона, Гилдогли и Уотермана. Она моделирует способ выработки концепций (Anderson, 1976).
PROSPECTOR. Экспертная система для опенки достоинств горнорудных районов (Duda, 1980; Konolidge, 1979). В ней одновременно используются правила продукций и семантическая сеть (Waterman, 1978). Правила системы компилируются и располагаются в виде графа. Использование системы позволило обнаружить в Британской Колумбии залежи молибдена, предположительная стоимость которого достигает миллиона долларов.
DIPMETER. Система создана в исследовательской лаборатории Шлумбергер Долла (Davis, 1981). Ее объектом является анализ сигналов при физических измерениях в геологической скважине. Кроме правил системы типа MYCIN, база знаний включает процедуры извлечения значимых форм сигнала. Главная цель состоит в установлении символической связи между результатами измерений и истинной природой геологических пластов.
L1THO. Анализ подпочв геологических срезов, произведенных лабораторией в К』амаре (A. Bonnet, 1982; J. G. Ganascia, 1988).
DRILING ADVISOR (1982). Реализация начата с создания машины логического вывода KS300 Тeknowledge и предназначалась для компании ELF Aquitaine. Система ориентирована на анализ несчастных случаев при бурении нефтяных скважин.
CASNET. Система обладает моделью рассуждений несколько более развитой, чем система MYCIN, позволяющей не только ставить диагноз и осуществлять уход за больным, отслеживая развитие глаукомы и соответственно изменяя предлагаемые системой лечебные рекомендации. В этом классе систем находятся также и другие конкретные системы.
HEADMED. Психофармакология (Feigenbaum, 1979, 1977).
INTERNIST (Университет Питтсбурга). Экспертная система для медиков-интернов. Большое число областей и болезней человека закодированы многими десятками специалистов и внесены в систему. Полная система содержит многие тысячи правил по 80 отдельным темам.
SACON. „Советчик инженера" в механике (Michie, 1980).
SOPHIE. Помощь в обучении на компьютере технике обнаружения неисправностей в электрических цепях (Anderson, 1979).
EL и NASL (Sussman, 1975, McDermott, 1978)—помощь при изучении электрических цепей.
Три последние системы используют моделирующие программы для проверки гипотез.
NUDGE. Поиск распределения времени в тех случаях, когда задача плохо поставлена.
Кроме того, появились системы, использующие правила продукций в игровых программах. Среди них PARADISE для игры в шахматы (Wilkins, 1979), система Куинлэна (Quinlan) и системы Попеску (Popescu, 1984), Фаллера (Faller, 1985) для игры в бридж.
Для понимания связной устной речи ——система HEARSAY III (Erman, 1981). Система RESEDA для анализа исторических средневековых французских документов (Zarri, 1981). Система исследует мотивы и побуждения в действиях исторических персонажей. Система GARI используется для определения диапазона возможностей машинной обработки. Некоторые правила выражают простые советы, данные специалистами. Некоторые из этих советов могут вступать в противоречие. Система призвана также устранять подобные противоречия с помощью строго определенной и оригинальной схемы. Система SAM (Gascuel, 1981) рассматривает вопросы лечения артериальной гипертонии, мозговых кровоизлияний, рака гортани.
TOUBIB (IBM, Франция, Fargues, 1983). Помощь в диагностике при оказании экстренной помощи.
SPHINX (М. Fieshi, 1982, 1983, 1984). Система вначале была предназначена для лечения болезней брюшной полости, затем переориентирована на исследования диабета и желтухи. Она может общаться с пользователем по-французски (MEDIUM., Joubert, 1981). Система оказывается чрезвычайно полезной при обучении студентов.
PROTIS (Soula, 1983). Лечение диабета и желтухи, особенно эффективное в случае ненадежных рассуждений.
ТОМ (Cognitech, 1984). Производная система от EMYCIN для изучения болезней томатов.
CESSOL (Ayel, 1984). Делает анализ геотехнических наблюдений с целью изучения характеристики почв.
CRIQUET (INRIA Sophia). Используется для классификации галактик.
R1 или XCON. Подбор состава вычислительной системы. Экспертная система фирмы DEC для описания полных систем VAX 780, которые должны удовлетворять множеству ограничений (занимаемое физическое пространство, расстояния между местами для операторов, специальные пожелания клиента и т. д.). Система была написана на языке OPS коллективом из
15 человек. Она содержит в настоящее время 2000 правил (McDermott, 1983). Полностью готова и повседневно используется в разнообразных целях в фирме DEC.
Системы общего назначения
EMYCIN. Описанная Ван Меллем (Van Melle, 1979) система представляет собой «особенную» или《пустую» систему MYCIN. Она служит для накопления правил при создании экспертной системы, которая может быть консультантом в произвольной области. Например, с ее помощью можно реализовать системы SACON и DART.
DART. Система создана фирмой IBM (Bennet, 1981) и служит «консультантом» при поиске неисправностей в материалах или в системах (инициализация, обслуживание пользователей в режиме разделения времени). Она была написана в течение 8 мес пятью специалистами и содержит 200 правил. Правила по существу представляют собой переводы протоколов сообщений и их возможных аномалий.
OPS. Создана в Университете Карнеги — Меллона. Система отличается от системы EMYCIN наличием переменных (OPS работает не только в области исчисления высказываний, но и в области логики предикатов первого порядка), а также стратегией выбора правил и критериями оценок (Forgy, 1977).
TANGO. Создана в Университете г. Орсей М. Кордье и М. Руссе (М. О. Cordier, М. С. Rousset). Система является дедуктивной машиной для логики предикатов первого порядка и имеет некоторые специфические особенности работы с базой фактов. Новые правила создаются для каждой дедукции; кроме того, системе TANGO задается цель, позволяющая осуществлять непрерывное управление процессом поиска.
PECOS (Barstow, 1979). Система переводит на язык Лисп абстрактные алгоритмы, предназначенные для работы с символами, выборками и графами. Представление объектов и техника программирования выбираются с помощью примерно 400 правил, которые могут приводить ко многим различным версиям программы, оцениваемых и используемых с помощью более общей системы автоматического синтеза программ PSI.
АРЕ. Экспертная система программирования. Она автоматически пишет программы на языке Лисп, исходя от абстрактных спецификаций алгоритмов и типов данных. Порожденные при этом рекурсивные программы (деревья, бинарный поиск и т. д.) могут содержать примерно 60 строк кодов. Абстрактные типы данных включают списки, файлы и неупорядо-^ ченные массивы, таблицы, деревья.
Цель авторов — прийти к новой теории, программирования, основанной иа модульных представлениях о правилах базы зна^ ний системы.
TROPIC. Система описана Латомбом (Latombe, 1977). Это универсальная программа, облегчающая работу в таких областях, как архитектура и электротехника. Она обладает эффективным механизмом управления советами и хорошо организованным механизмом возврата, полезным для анализа игры в шахматы.
AGE. Создана Нийем и Айелло (Nii, 1978). Система включает алгоритм систематического обобщения вводимых в нее правил,
ARGOS-IL Разработка Кэйрола, Фейда и Фэрренея (Cayrof, 1979, 1976, Farreny, 1980). Это общая система, которая предназначена для имитации принятия решений роботом. В частности, исследован логический аспект управления таким роботом: исполнение правил можно произвольным образом откладывать и возобновлять с помощью введения формальных объектов.
CAMELIA (Vivet, 1984). Речь идет об экспертной системе, помогающей формулировать теоремы интегрального исчисления, строить бесконечные ряды, решать алгебраические и арифметические задачи. Она написана на языке Лисп и использует программу REDUCE для вычислений в базе данных. Ее оригинальность состоит в то队 что она строит план решения для всех возникающих задач, основываясь на метаправилах стратегического характера. Кроме того, она может при необходимости оценивать посылки правил, например таких:
если ….
и положительное (/*)= истина
то ...
где f—может быть произвольным формальным выражением, содержащим, в частности, неизвестные параметры; посылка ^положительное『'становится для системы CAMELIA новой подцелью, которая достигается с помощью рекурсии.
В настоящее время эта система ориентируется на использование метазнаний для модификации сложных правил с тем, чтобы приспособить эти правила к существующей ситуации.
GOSSEYN (Fouet, 1984). Система используется в механическом производстве для конструирования штампованных деталей и производства картеров для автомобильных двигателей (2000 правил).
MUSCADET (Pastre, 1984). Речь идет о системе, предназначенной для доказательства теорем в некоторых разделах чистой математики, таких, как теория множеств, теория топологиче-
ских векторных пространств, где система MUSCADET доказала целый ряд трудных теорем. База знаний системы содержит специфические правила для отдельных областей математики, универсальных математических знаний, а также общую стратегию ведения доказательств. Все типы знаний (правила, метаправила, метадействия) интерпретируются одним и тем же механизмом. Пастр (D. Pastre) для описания своей базы знаний использовал помощь квалифицированных математиков. Основной вывод состоит в том, что эксперты оказываются неспособными формулировать логические правила в абстрактной форме. Вместо этого они рассуждают с помощью примеров, прибегая к частным случаям и используя рисунки. Они неожиданно могут надолго задуматься перед тем, как сделать первый шаг при решении проблемы, или оказаться не в состоянии ответить на вопрос, почему ими был выбран именно этот, определенный метод. Приведен пример теоремы, доказанной с помощью MUSCADET за 14 этапов (применяется около .200 правил): “Если U ——окрестность 0, то существует V — также окрестность 0, содержащаяся в U, центрально симметричная относительно 0”.
Обучающиеся системы
Прежде всего назовем систему Гольдштейна PONTIUS-0, которая моделирует поведение человека, обучающегося управлению самолетом. ■
Известный успех имела система АМ, созданная Ленатом, (Lenat, 1975), которая предназначена для свершения математических «открытий». Отправляясь от некоторых исходных понятий, АМ порождает новые понятия и судит о достоинстве используемых продукционных правил с помощью оценочных функций. В частности, АМ порождает четыре различных способа умножения: путем подстановки с итерацией, путем повторного сложения способом, аналогичным нумерации элементов декартова произведения, и путем нахождения кардинального числа множества разбиений некоторого множества. Аналогично возникает понятие простого числа (рис. 7.7) и формулируется основная теорема арифметики.
“Понятие'' uпростого числап в системе АМ Дугласа Лената формируется в процессе ее работы. Фасеты (или слоты) таких понятий постепенно заполняются средствами самой системы. Кроме того, система способна создавать свои собственные новые понятия путем обобщения или уточнения старых понятий.
В правой части каждого правила содержится яйное указание, в соответствии с которым может произойти разветвление этого правила на несколько других. Система развивается на основе
примеров, которые она формирует и обобщает, пользуется многочисленными эвристическими моделями поведения человека, т. е. по своей природе се рассуждения носят индуктивный характер.
Недавно Ленат описал новую систему EURISCO, которая является обобщением системы АМ. Она может действовать в
Имя: простые числа
Определение
Начало: число делителей (工)=2
Предикат: простое (х), если (для всех 2)
(n/x влечет 之=1 или z~x)
Итерация: (для всех %,%>}): для / — 2 до х——1: нет (Z/x)
Примеры: 2, 3, 5, 7( 11, 13, 17, 19,...
Особые случаи: 2, 3
Выход за границы: 0 и 1
Число контрпримеров: 12
Обобщение:
Число, число с четным числом делителей, число с нечетным числом делителей
Специализация:
Единственная факторизация, пара простых, сумма простых Предположения: утверждение Гольдбаха, предельные делители . Аналогии:
Двойственность, числа с малым числом делителей и с определенным числом делителей
Интерес:
Связь с умножением, делимость и все операции, связанные с ними Оценка: 800
Рис. 7.7. Пример представления высокого порядка.
произвольной области и конструировать собственные правила, используя метазнания (Lenat, 1983).
Аналогично работает система BACON-3, созданная Лэнгли (Langley, 1979). Она ориентирована па физику и способна заново открыть законы Кеплера, Кулона и Ома. Система APS Уотермана (Waterman,1979) способна строить общие модели для выполнения арифметических операций, для обучения словам и для продолжения отрезков последовательностей. Список правил упорядочен, а обучение состоит в том, чтобы помещать новые правила в этот список на разумно выбранное место. Отметим, однако, что этот выбранный порядок работы системы является одновременно попыткой обойти чисто де^таративный характер продукционных систем и преодолеть ограничения нашего познания в области психологии человека. Наше знание, возможно, локально упорядоченное в некоторых важных случаях, во всей своей полноте таковым не является.
Митчелл, Банержи и др. (Mitchell, 1981) описали систему формального интегрирования, способную к совершенствованию
своих возможностей по мере ее применения: сначала Первообразная определяется путем полного перебора, затем программа выделяет из дерева решения полезный путь (или пути). Таким образом она выделяет простые правила математической перезаписи, которые она использовала, уточняя контекст их применения, и тем самым преобразует их в правила продукций в обычном смысле. Затем выполняются обобщения каждой конкретной функции в своих контекстах для всего класса подобных функций: синус, например, превращается в произвольную тригонометрическую функцию и т. д. В свою очередь неверно примененные правила сохраняются для того, чтобы в дальнейшем не употреблять их в том же контексте. Посылки могут стать слишком общими или слишком частными. Они тогда модифицируются с помощью упражнений. Авторы отмечают существенное усовершенствование преобразований, наступающее после такого обучения.
ANA. Система Макдермота (McDermott, 1979) способна научиться и запомнить способ выполнения новой задачи, опираясь на методы, которые оказались полезными при решении предыдущих задач, т. е.» рассуждая по аналогии, ANA моделирует поведение автоматического управляющего магазином, тор* гующим красками; она конструирует новые правила продукций, перебирая прежние ситуации и применяя их к новым возникающим ситуациям до тех пор, пока не возникнет очевидной ошибки в связи этих ситуаций. Эта система показывает еще раз, что очень простые механизмы — в данном случае механизмы обучения — легко и естественно могут быть применены к различным моделям, при этом применение правил продукций оказывается весьма эффективным.
Программа моделирования ACT. Программа, авторами которой являются два психолога Дж. Андерсон и П. Клин (Anderson, 1979) из Университета Карнеги — Меллона, заслуживает специального упоминания потому, что она, с одной стороны, носит универсальный характер, а с другой — способна к обучению. Эта система была создана с целью промоделировать поведение человека на основе классических экспериментов по «формированию понятий» в психологии.
Изучение системы ACT можно проводить в двух формах: в форме препозициального графа, подобного классическим семантическим сетям в системах искусственного интеллекта для декларативной части, и в форме системы продукций для процедурной части. Добавления к множеству продукций и его модификация достигаются четырьмя различными способами: назначения, подкрепления, обобщения и распознавания (Anderson, 1979).
PS. Продукционная система Ричнера (Rychener, 1976) позволяет переписывать в форме системы продукций такие разные программы, как:
STUDENT Боброва, которая решает алгебраические задачи, сформулированные по-английски;
ЕРАМ Фейгенбаума, способная выполнять тесты на правильное продолжение последовательностей букв;
GPS Ньюэлла, Шоу и Саймона, которая выполняет задачи, поставленные в различных областях;
программа Пердо и Берлинера, которая играет окончания шахматных партий;
программа Морана, которая строит английские фразы, описывающие ситуации в мире кубиков;
SHRDLU Винограда, которая решает задачи и ведет диалог по-английски также в мире кубиков.
В следующем разделе представлено другое семейство экспертных систем, объединенных использованием предикатов первого порядка и специального метода вывода» известного под названием принципа резолюции.
7.4. Экспертные системы, основанные на логике предикатов первого порядка
Существует классический язык, специально созданный для моделирования формальных человеческих рассуждений,——это язык математической логики. На самом деле правило продукций **ситуация возможное следствие" представляет собой теорему, несколько необычно формализованную: это логическое выражение, состоящее из утверждений, которые могут быть интерпретированы как истинные или ложные. Единственное различие состоит в том, что все экспертные правила заранее допустимы (аксиомы) даже в том случае, если их невозможна доказать. Таким образом, правила продукций очень близки к правилам преобразований, известным в математике: формальным преобразованиям выражений, преобразованиям в полугруппах, в формальных грамматиках, в логарифме Маркова. Для лучшего понимания экспертной системы представляется привлекательным использовать формализм» принятый в логике.
Большинство из рассмотренных выше экспертных систем хорошо описывается логикой высказываний (гл. 3), в которой все существенные понятия выражаются константами. Сейчас мы опишем последовательно две важные системы, а именно PROLOG и SNARK, основанные иа формализме логики предикатов первого порядка (с переменными) и некоторых их приложений. На самом деле язык программирования Пролог, раз-
работанный Алленом Кольмрауэром (1971), в контексте решения задачи понимания естественно-языковой фразы, был создан еще до появления самого понятия экспертных систем.
Язык Пролог
Пролог ——язык программирования, единицей которого является не команда, а теорема логики предикатов первого порядка (разд. 3.1.10). Теорема содержит переменные или параметры, относящиеся к квантору всеобщности: эти переменные могут быть замещены любым правильно построенным выражением языка. Переменные принадлежат n-арным предикатам. Запись Р(х1, %2, .. ., хи), где xi ——переменные, а Р ——п-арный предикат, интерпретируется так: Р(х1, %2, ..., хп) истинно (Colmerauer, 1971 и Roussel, 1975). Сами предикаты в языке Пролог не могут быть включены в сферу действия кванторов. (Если предикаты находятся под знаками действия кванторов, речь идет об исчислении предикатов высших порядков, т. е. 2-го 3-го и т. д.) (Huet, 1978).
Пролог — специальный интерпретатор для формул логики предикатов первого порядка. Его действие распространяется на предикаты, приведенные к нормальной дизъюнктивной форме. Любое предложение (дизъюнкция предикатов) записывается в виде
(】% V 】В V …V 口 儿)V (& V & V …V Cj), что, очевидно, интерпретируется в виде
А力2 A…Д鱼n &八С2 A…А С/.
Характерной особенностью языка Пролог является то, что он имеет дело только с хорновскими предложениями, т. е. с предложениями, которые имеют самое большее один “положительный” литерал (справа), другими словами, только одно заключение &. Язык запрещает иметь дело с дизъюнктивными заключениями типа Ci V С2. Под литералом понимается любой терм hi или d из предложения, представленного в нормальной форме.
Различные реализации языка Пролог фактически являются производными от версии языка на Фортране (Roussel, 1975), опирающейся на переносимый интерпретатор (Battani, 1973). В основном Пролог получил распространение в Португалии (Coelho, 1980), Эдинбурге (Warren, 1977), Венгрии (Szeedi, 1977) и Японии. В Японии программа создания ЭВМ "пятого поколе- ння” предусматривает его использование в качестве микропрограммного языка завтрашнего дня. Машина EPILOG, созданная Сансонне и Алии, уже дает пример высокоэффективного
языка программирования Пролог (Тулуза, Университет П. Сабатье, 1982).
Все интерпретаторы для языка Пролог на самом деле являются иллюстрацией доказательства теорем с использованием принципа резолюции. Этот принцип, предложенный еще Эрбра- ном (Herbrandt, 1931), был заново воссоздан и запрограммирован Робинсоном в 1965 г. (Robinson, 1965). Он является обобщением метода доказательства от противного: принцип резолюции состоит в том, что доказывается противоречивость предложения р А ~|? и тем самым доказывается справедливость импликации р 二 q. Этот метод априори является полным и позволяет доказывать все теоремы данной формальной системы, но связан с большим объемом комбинаторных вычислений и недостаточно естествен для человека. Обычно мы очень редко рассуждаем от противного. Тем не менее интерпретирующие программы оказываются эффективнее нас...
На самом деле любое предложение языка Пролог может быть интерпретировано двумя способами: 1) процедурным образом через интерпретатор и 2) чисто логически или декларативно как простое утверждение теоремы в рабочем пространстве (гл. 3).
Программирование на языке Пролог представляет интерес по трем причинам:
предложения непосредственно выражают полезные утверждения (теоремы);
интерпретатор содержит полностью запрограммированный алгоритм унификации;
дерево поиска, рождаемое множеством попарных унификаций, обрабатывается в системе автоматически.
* Кроме того, резолюция может направляться стратегией, которая фиксирует приоритет определенных предложений, являющихся кандидатами для унификации (разд. 3.6). Предложения отбрасываются в порядке их появления, а внутри каждого предложения литералы отбрасываются справа налево. Эта стратегия является полной.
Версия, реализованная в Марселе, использует глубокий поиск с применением запрограммированной процедуры возвращения назад, что приводит к неполной, но более эффективной стратегии. Для этого употребляется символ /, который играет роль ловушки, препятствующей любому возврату к литералу, который расположен слева от этого символа.
Система Пролог предоставляет также возможность, пользуясь простым формализмом, описывать и решать задачи. Пользователю для формулировки своей задачи остается только найти подходящие предикаты.
PEACE ——экспертная программа на языке Пролог
PEACE, разработанная в Тулузе Дннкбасом в 1979 г., представляет собой пример экспертной программы, написанной на языке Пролог и предназначенной для анализа и синтеза электрических цепей.
Для цепи, показанной на рис. 7.8, с заданными величинами сопротивлений, индуктивностей и емкостей и не содержащей
Рис. 7.8, Схема электрической цепи для PEACE.
источников тока, проблема нахождения результирующего импеданса между точками А и D сводится к доказательству теоремы
И impedance (Л, О, *Х).
Результат, получаемый методом от противного, будет содержаться в окончательном значении переменной *Х.
Сама цепь представляется с помощью предкатов “равно”, "ветвь”, "кратный узел”, позволяющих записать следующие условия:
《ветвь (4, В, 〃)》вместе с《равно (L;, Лр(о)》и «равно
[G ёУ» или
икратность узла (В, 5)".
Основополагающие знания об электротехнике, необходимые дл? системы PEACE, сводятся к четырем преобразованиям цепей, изображенных на рис 7.9а.
Кроме того, система PEACE должна уметь производить дей- ствня с комплексными числами. Сначала система Пролог действует только во множестве целых чисел. В дальнейшем ее база
знаний была расширена до действий во множестве рациональных (с повышенной точностью), и, наконец, до действительных чисел.
Правила определения комплексных чисел также достаточно просты.
Параллельная еосгма
I—Z V-I-* zrz^/^i + zi>
〃ocjte ВМа те興ь ftat st схема
HSHSH — z,+ z*
СхемаСхема
» Звез&а ”“ Треугольник 〃
Рис. 7.9а. Преобразования в системе PEACE.
Преобразования электрических цепей описываются на языке Пролог с помощью предикатов. Например, второе правило принимает вид «Последовательные (Z% Z2) 4= ветвь (х, f, Zi) А ветвь (/, у, Z?)
А различные (/, у)八 простой узел (0 А вычеркнуть (ветвь
А вычеркнуть (ветвь (厶 у, ZJ) плюс (Zb Z2, Z)
А присоединить (ветвь (х, у, Z))》
Внутренняя стратегия PEACE для преобразования цепи состоит в последовательном применении преобразований в указанном выше порядке. Этот порядок соответствует минимальному числу остающихся неясными узлов в сети. Узнавание допустимых преобразований в любой момент происходит с помощью алгоритма унификации и осуществляется языком Пролог. Таким образом, каждое преобразование позволяет определенным образом модифицировать базу данных. Доказывается, что этот процесс неизбежно сходится к цепи, содержащей две точки. Решение было получено чисто алгоритмическим способом.
В подобной системе любая форма знаний ——факты из базы данных, процедуры, резолюции, схемы контроля — представлена единым способом с помощью конъюнкции предложений. Такое единообразие представления является также основной характеристикой другой системы — МЕСНО.
Система МЕСНО и решение задач механики на языке Пролог
Система МЕСНО решает с помощью исчисления предикатов задачи механики, включающие материальные точки, наклонные плоскости, нити, блоки. Задачи формулируются на обычном языке. МЕСНО способна контролировать свои правила вывода и ведущийся ею поиск решения. Для этого она использует метаинформацию, содержащуюся Также в форме правил. Система была разработана А. Банди и др. (A. Bundy et al., 1979) в Университете Эдинбурга.
Первая задача этой программы состоит в том, чтобы понимать высказывания, сделанные на естественном языке, в случае, когда из-за обширности области это невозможно сделать просто по ключевым словам {Bobrow, 1975; Charniak, 1978; Gelb, 1965). Здесь даже для простой постановки проблемы требуется глубокое погружение в мир физических явлений.
Вторая задача — обучение тому, чему, как правило, не обучают в курсах механики: как именно происходит решение уравнений, как конструируются модели, как организуется изучение задачи. Необходимо четко выяснить, в чем именно состоит отличие эксперта от новичка: оба знают примерно одни и те же основные факты и формулы, но первый всегда способен найти им эффективное употребление. Их отличает также степень знания общей модели и структурье контроля. Коллектив ученых Эдинбургского университета имел для глубокого анализа этих отличий два важных отправных пункта. Первый ——книга Марп- ля (D. Marple), в которой исследуются протоколы того, как инженеры из Кембриджа составляют уравнения. Это исследование проведена достаточно хорошо, чтобы можно было определять предложения, готовые к непосредственному кодированию в виде программы. Второй отправной пункт подготовил сам Банди. Анализируя методы решения человеком линейных и квадратных уравнений, он выявил совокупность стратегий, таких, как ''перегруппировка", ^изолирование". ипривлечение", которые могут быть выраженм на языке Пролог. Оставалось изложить и привести в систему остальное, в частности найти хорошие правила вывода, способные строить длинные дедуктивные цепи, начиная от формулировки задачи на естественном языке до ее полного решения.
Пример
Две частицы с массами b и с связаны тонкой нитью, пере- ки11утой через блок. Найти ускорение частицы массой Ь.
Синтаксический и семантический анализ этого предложения (относительно простой) начинается с глаголов и опирается на
законы механики. В данном случае анализ приводит к появлению 22 единиц, необходимых для формулировки предложений:
имеется (частица, pl) правый-конец (SI, el) имеется (блок, р/・1) получить (SI, mil) масса (pl, ml, время-1)коэффициснт-трения (р/1, 0)ускорение (р2, accel, 90°, время-1)имеется (частица, р2) левый-конец (S1, е2)имеется (период, время-1).измерение (m2, с)имеется (частица, pl) правый-конец (SI, el) имеется (блок, р/・1) получить (SI, mil) масса (pl, ml, время-1)коэффициснт-трения (р/1, 0)ускорение (р2, accel, 90°, время-1)имеется (частица, р2) левый-конец (S1, е2)имеется (период, время-1).измерение (m2, с)масса (р2, m2, время-1) измерение (ml, b} дано (ml) имеется (нить, фиксированный-колтакт (el, pl, время-1)фиксированный-контакт (е2, р2, время-1)фиксированный-колтакт (р/1, тП, время1)масса (S-, 0, время-1)ускорение ((pl, accel, 270°, время-1) дано (m2)найти (accel)масса (р2, m2, время-1) измерение (ml, b} дано (ml) имеется (нить, фиксированный-колтакт (el, pl, время-1)фиксированный-контакт (е2, р2, время-1)фиксированный-колтакт (р/1, тП, время1)масса (S-, 0, время-1)ускорение ((pl, accel, 270°, время-1) дано (m2)найти (accel)
имеется (частица, pl) правый-конец (SI, el) имеется (блок, р/・1) получить (SI, mil) масса (pl, ml, время-1)
коэффициснт-трения (р/1, 0)
ускорение (р2, accel, 90°, время-1)
имеется (частица, р2) левый-конец (S1, е2)
имеется (период, время-1).
измерение (m2, с)
имеется (частица, pl) правый-конец (SI, el) имеется (блок, р/・1) получить (SI, mil) масса (pl, ml, время-1)
коэффициснт-трения (р/1, 0)
ускорение (р2, accel, 90°, время-1)
имеется (частица, р2) левый-конец (S1, е2)
имеется (период, время-1).
измерение (m2, с)
масса (р2, m2, время-1) измерение (ml, b} дано (ml) имеется (нить, фиксированный-колтакт (el, pl, время-1)
фиксированный-контакт (е2, р2, время-1)
фиксированный-колтакт (р/1, тП, время1)
масса (S-, 0, время-1)
ускорение ((pl, accel, 270°, время-1) дано (m2)
найти (accel)
масса (р2, m2, время-1) измерение (ml, b} дано (ml) имеется (нить, фиксированный-колтакт (el, pl, время-1)
фиксированный-контакт (е2, р2, время-1)
фиксированный-колтакт (р/1, тП, время1)
масса (S-, 0, время-1)
ускорение ((pl, accel, 270°, время-1) дано (m2)
найти (accel)
По методу Марпля отыскивается уравнение, которое выражает искомую величину accel в зависимости от данных ml, m2 и g. Гравитационную постоянную g программа МЕСНО добавляет к условию cajvia. На первом этапе составляются уравнения для сил, действующих на частицы. Например, для частицы pl имеем
^1 X g+ натяжение-1 ~ ml X accel.
Введение новой неизвестной инатяжение-Г, требуется используемыми правилами. Программа “знает", что эта величина имеет смысл натяжения и ей не хватает еще одного уравнения для решения задачи. Тогда она использует тот факт, что натяжение на другом конце нити должно быть тем же самым и составляет уравнение для сил, действующих на частицу р2. Исключая переменную 11натяжение-Г\ программа получает результат. Испытания программы проводились и на других, более сложных примерах.
Описание системы
База физических знаний
Система имеет упрощенное представление о мире, подчиняющемся законам ньютоновской механики. Она может работать только с объектами 0, 1 или 2 измерений. Точка ——нульмерный объект, и ее роль может играть частица с массой или простая отметка на плоскости. Линия представляет собой одномерный объект и имеет два не совмещенных друг с другом конца. Эти простые понятия используются при описании многих других объектов. Например, блок, человек, груз могут быть описаны как точки, а такие объекты, как шнур, нить, брус, планка, хотя и обладают различными физическими свойствами, могут быть представлены в виде линий.
Связь между объектами описывается с помощью предикатов. Имя предиката определяет вид связи, а аргументы служат для уточнения находящихся в связи объектов, их порядка, условий объединения, направлений и знаков. Конкретная ситуация определяется значениями аргументов при вызове. Пример связи приведен на рис. 7.96. “АС” определяет вызов процедуры
Формулы (СИЛЫ, II
«астина,纱。〃勿е”, F^M* А}/夂 ситу吗ия, фор”-
АС: 'масса, №астик*М、 '
брема、
8cmабл気柑困ас-искорекиа сбязь неокВу(част^ца^ 尹》, 8рем兄、力丿 параметрами
(частица夕勿名брем兒〉朗
Рис. 7.96. Пример связи между объектами. .
типа “создатв”, которая выполняется с помощью модуля поиска названных величин. Очевидно, здесь могут потребоваться глубоко рекурсивные структуры базы знаний, поскольку, например, такое понятие, как ^суммарные силы", принадлежит области данных другой формулы.
Логика управления
Логика управления системы МЕСНО написана на языке Пролог, но запрещает нормальную для Пролога стратегию ре-, шения: все действия МЕСНО последовательно разлагаются в подцели с помощью одного из 150 правил вывода из базы знаний. Каждой выделившейся подцели присваивается обозначение D для “непосредственный", АС для “с созданием" или SC для “без создания),. Эти обозначения используются на рис. 7.10 для пояснения стратегии решения.
Нормализация. Если возможно, каждая подцель сначала уточняется в соответствии с законами механики (если отыскивается ускорение, то обычно по отношению к земле) или выражается с помощью предикатов, более удобных для системы.
Вывод, МЕСНО ищет правило, правый член которого соответствует поставленной цели. Посылки этого правила определяют новые подцели. Поиск ведется в глубину сначала с неизменным порядком правил. Правила МЕСНО управляют созданием новых объектов, необходимых для решения задачи.
Классы подобий. Работа системы МЕСНО основана на свойствах используемых в ней предикатов, которые * могут быть транзитивными, симметричными или рефлексивными. Они сгруппированы в классы подобия, которые изоморфны деревьям, образованным множеством предложений Пролога.
■ Корень дерева является единственным представителем класса и может быть унифицирован, как и другие правила. Например, правилу равенства соответствует следующая аксиоматика:
равно (а, 6)<—представитель (а, корень) Д представитель (6, корень)
представитель (а, а)<— является (а, корень)
представитель (а, корень)<— дуга (а,方)八 представитель (&, корень)
которая позволяет упорядочить в дереве все равные элементы. Кроме равенства в системе имеются еще три предиката: “та же позиция,\ 44единица ,измерениям и “период времени", которые
относятся к точечным объектам, занимающим в данный момент одинаковую позицию, величинам одинаковой природы, выраженным в различных единицах, отрезкам времени.
Выполнение
Первый шаг. Сначала система МЕСНО не рассматривает уравнения или соотношения, которые вводили бы новый объект (вызов подцелей только вида D или SC). Это ограничение впоследствии отбрасывается.
Прогнозирование. Система МЕСНО использует семантическую информацию о физическом мире для того, чтобы решить, является ли промежуточная цель приемлемой или для прогнозирования свойств решения: длина должна быть положительным числом, угол по отношению к плоскости меньше 180°. Даже такая форма знания влияет на выполнение правил равенства и принятие решения.
Метод Марпля. Для нахождения неизвестной величины х система МЕСНО последовательно выполняет следующие действия: а) описывает неизвестную, т. е. уточняет ее физическую природу (например, что это——масса), и определяет связанные с ней понятия (ускорение, направление движения, время); б) ищет соотношения, т. е. составляет список возможных формул; в) находит подходящее уравнение, т. е. отбирает из предыдущего списка наилучшую подходящую к данной ситуации формулу, ориентируясь на смысл известных параметров, г) проверяет, является ли найденная формула действительно независимой от уже известных уравнений, чтобы нз нее можно было определить другие неизвестные.
Формальные алгебраические вычисления. Кроме классических методов, основанных на правилах переписи, применимость которых определяется самим Прологом, вычислительный модуль использует фактическую информацию в процессе решения для исключения физически невозможных ситуаций типа неустойчивого равновесия (в частности, в задачах движения по траекториям типа русских гор) (Borning, 1981).
Включение в систему правил, специфичных для каждой задачи, осуществляется шаг за шагом, главным образом с помощью составления протоколов решения. При этом за основу берется либо метод Марпля или разработанные самими авторами методы.
Результаты
Система реализована на ЭВМ. DEC-10 с памятью 80К слов и с длиной слова 36 бит. Блок естественного языка содержит 900 предложений, модуль вычитания ——600 предложений,
алгебраические вычисления — 200. Интерпретатор Пролог занимает 20К памяти.
вы решения задач,вы решения задач,Испытания системы проводились главным образом по трем направлениям: механические блоки, движение частиц при постоянном ускорении, движение частиц по сложным траекториям. Только часть задач может быть сформулирована на естественном (английском) языке, остальные задачи необходимо формулировать в терминах предикатов. Разрабатываются также осно- включающие рычаги, сооружения, снаряды, моменты инерции, относитель- Iные скорости, гидростатику.
вы решения задач,
вы решения задач,
1. Приведем пример формули-
<ровки задачи: Частица, нахо-
Iдавшаяся в состоянии покоя,
[начинает движение из точки Р.
IПри заданном радиусе R/
—(ci)найти наименьшую величину
、R2, при которой частица со-
__Iвершит полный оборот по ок-
用уружности С1. (Окружности С1
/и С2 являются касательными
друг к другу в точке Q 0(рис. 7.11).)
Рис. 7.1L Задача на движение ча- Чтобы сформулировать эту сти“ь1・задачу в логике первого по
рядка, окружности разрезают на три связанные друг с другом части с помощью позиционных отношений. Условия можно описать с помощью 20 единичных предложений, которые играют для системы ту же роль, что для нас рисунок,
В литературе описывается полное решение с помощью системы МЕСНО некоторых сложных задач, условия которых (записанные на обычном языке) занимают более одной страницы текста.'
Преимущества Пролога и исчисление предикатов
В первую очередь отметим, что преимуществом экспертных систем, написанных на Прологе, является единообразие представления элементов: факты, правила выводов, сложные процедуры, управляющие структуры выражаются в единой форме соединительных' правил. Из единства механизма вычислений при реализации принципа решения следует простота программирования и семантическая простота программ. Экспериментально показано, что эффективность Пролога превышает эффективность Лиспа. Поэтому экспертная система MYCIN была
полностью перепрограммирована на Прологе, в результате чего ее эффективность существенно возросла (Warren, 1977). Кроме того, Пролог предоставляет возможность доступа к дереву доказательства, средствам ввода-вывода, составляющим правилам и механизму возврата назад при движении по дереву доказательств.
Но главный интерес к Прологу, без сомнения, вызывает возможность составления программы, управляющей выполнением правил (т. е. непосредственно процессами получения выводов) и работающей на метауровне. Это важно при работе с базой знаний большого объема. Пролог позволяет также использовать правила как аргументы для предикатов более высокого уровня и, таким образом, использовать возможности логики второго порядка. При этом новые знания могут быть введены или исключены командами AJOUT и SUPP.
Язык управления для Пролога
Эрве Галлер и Клодии Лассерр предложили (1979 г.) метаязык для управления выводом с помощью включения в Пролог и в нормальную стратегию метаправил двух типов. По правилам первого типа Мета•厶 определяет символ для унификации в только что усвоенном .правиле. Правила второго типа Мета-С служат для выбора предшественника-правила среди множества правил-кандидатов. Правила Мета-L служат для локальной обработки контекста, “заморозки" некоторых кандидатов или для включения обязательного возврата. Идея состоит в том, что если какое-либо действие может не выполняться, его продолжение оказывается бесполезным. В результате выполнения правил Мета-С* каждому правилу-кандидату присваивается приоритет в зависимости от определенных условий, связанных с унификацией.
Например, правило
Mcta-C (Р,厶財 R)3& А С2 Д ... A Cn
утверждает, что при выполнении условий Cl Сг, . . ., Сп каждое правило, унифицируясь с правилом ~]Р V Л, получает приоритет k начиная с того момента, когда R унифицируется с символом, удерживаемым на предыдущем этапе. Эти метаправила дают пользователю возможность для адаптации стратегии к конкретной проблеме.
Система M.ETALOG, написанная в Тулузе М. Динкбасом, предоставляет в распоряжение пользователя команды, управляющие стратегией, и метаправила. Такого рода управляющие предикаты обеспечивают системе Пролог большую эффективность.
Сравнение исчисления предикатов в Прологе и продукционных систем
Между условиями Хорна, используемыми Прологом, и продукционными правилами существует сходство. Различия касаются прежде всего того, что связано в Прологе с предпро- граммируемыми управляющими структурами (разд. 7.4.1). Принцип резолюции с линейной стратегией вывода однозначно определяет тип и порядок предпринимаемых попыток. Тем не менее в Прологе остается возможность модифицировать эту стратегию. Преимущества Пролога состоят в полностью запрограммированном общем алгоритме унификации и в механизме управления деревом поиска И-ИЛИ, связанным со свойствами интерпретатора.
Таким образом, в отличие от продукционных систем Пролог постоянно увеличивает число правил (предложений), поскольку каждое решение добавляет в систему новое предложение до получения пустого правила. С другой стороны, системы, основанные на исчислении предикатов и принципе резолюции, смешивают базу правил и базу фактов. Отметим, в частности, что предположения и выводы играют одинаковую роль и поиск может начинаться как с предположений, так н с выводов в обратном порядке. Направление поиска неявно уточняется при каждой резолюции и может меняться. В классических же продукционных системах правила обрабатываются только в одном направлении.
Если в Прологе сначала не предусмотрена схема вывода с помощью коэффициентов уверенности, то ясно* что интерпретатор можно легко дополнить возможностями вычислений КУ, как, например, в системе MYCIN. Используя модульность, в Прологе легче выполнять исправление или добавление единицы знаний, чем в продукционных системах. Однако Пролог все же остается процедурным языком программирования высокого уровня и может вызвать затруднения у неподготовленного специалиста-эксперта.
Безусловно, существует и другое решение (кроме использования Пролога) для интерпретации логики первого порядка. Оно состоит в использовании обычной, дедукции.
модус поненс: нз р и (р n д) следует д, или модус толенс: из [ g и (png) следует 口 р
(в отличие от системы MYCIN, которая работает по обратной цепочке, и от Пролога, который начинает одновременно в двух направлениях). При движении по дереву поиска необходимо частичное возвращение назад. Однако обычный, понятный для экспертов вывод делается с помощью модус поненс.
Система SNARK (Symbolic Normalized Acquisition and Representation of Knowledge), к краткому описанию которой мы переходим, является попыткой дальнейшей разработки в этом направлении.
Язык SNARK — пример языка первого порядка
Язык SNARK построен на логике первого порядка и представлении знаний в реляционной форме. В противоположность системе MYCIN, которая ограничивается пропозициональным исчислением, здесь предусматривается постоянное использование переменных. Фраза “природа (%) = человек" означает в SNARK "для каждого х, который является человеком". Точная форма связанного с этим силлогизма имеет вид
«если природа (х) = человек, тогда смертен (х) = истинам.
SNARK из факта “природа (Сократ) = человек” выводит факт
«смертность (Сократ) — истинам.
Это правило выполняется для всех тех х, для которых природа (х) = человек.
Используемые отношения являются по соглашению бинарными. В записи правил переменные фигурируют в скобках.
Система предусматривает также возможность ^вложенного" определения свойств, как во фразе
«возраст (крыша (х)) — min (150, возраст (стена ((/)))».
Ссылки на объекты производятся не с помощью имен, а только через совокупность связанных с ними свойств. Таким образом, геологический объект G, размещенный под слоем С, имеющим рифтовую природу и возраст, превышающий 100 лет, будет описан следующим образом:
под (С) — G
природа (G) = рифт
возраст (G) > 100
В SNARK могут быть выражены чисто математические отношения. Например, свойство транзитивности понятия “под”:
ЕСЛИ под (х) = (д)
ЕСЛИ под (д) =(2)
ТО под (х) =(2)
Из этих свойств следует, что язык SNARK является' языком, близким к семейству языков Пролога, но отличается тем, что
в нем используется не резолюция, а естественная дедукция и он не ограничен предложениями Хорна. Порядок посылок, как и порядок правил, не имеет значения. Однако такая гибкость ввода знаний достигается ценой угрозы комбинаторного взрыва. Действительно, подготовительной операцией для оценки является замена переменной правила множеством объектов базы фактов. Угроза комбинаторного взрыва устраняется с помощью стратегии динамической оценки правил, идея которой заключается в том, что оценка начинается с известных в данный момент величин и последующего распространения символьных значений (гл. 8.).
Таким образом, система SNARK обладает обычными свойствами декларативного языка, такими же, как и экспертные системы (модульность, повествовательные знания) и решающие программы (возможность формальной обработки, формулировка предположений и движение по цепочке назад, нормализация и унификация выражений). В настоящее время он используется в геологии, медицине, археологии, математике, системах автоматизированного обучения, физике, антропологии, управлении АЭС и в комбинаторных задачах оптимизации для карточной игры в бридж. Ниже более подробно изложено его частное применение ——формальное вычисление интегралов.
Вычисление неопределенных интегралов в системе SNARK
База знаний в этом случае состоит главным образом из эвристических правил, которые определяют стратегию добавления в конкретной ситуации. При вычислении интеграла, например если интегрируемое выражение представляет собой сумму (или сумму, возведенную в некоторую степень), следует разложить интеграл на сумму интегралов, В системе SNARK соответствующее правило записывается следующим образом:
Пример /
ПУСТЬ интегрируемое-выражение (” = (е)
ЕСЛИ сумма (е) -истина
ТО / *— интеграл (первый член (е)) + интеграл (второй член (е)) Если выражение е содержит тригонометрическую функцию, то может быть рассмотрена замена переменной.
Пример 2
ПУСТЬ интегрируемое-выражение (,) = (е)
ПУСТЬ член ® = (/)
ПУСТЬ головной-оператор (/) — arctrigo
ТОГДА замена-переменной (a) = (f)
Отметим следующее:
Вызов этих правил происходит только по необходимости, т. е. когда по крайней мере одна из посылок соответствует одному из заключений предыдущих правил.
Переменная (е) играет роль глобальной переменной. С ее помощью описываются все обрабатываемые объекты и выполняются на них ссылки. Такое возможно только при благоприятных обстоятельствах, которые встречаются ие во всех приложениях.
Некоторые посылки играют роль определений. Их описание включает слово ПУСТЬ. В этом случае оценка правила начинается с части ПУСТЬ, а часть ЕСЛИ тестируется, только когда известны аргументы.
В базе фактов также присутствуют переменные величины (в математическом смысле слова).
Для передачи параметров предусмотрен определенный механизм. Так выражение изамена-переменной (е) = (/)” регистрируется как в BF, а результатом его обработки является выполнение правила замены переменной, которое записывается следующим образом: 14если необходимо осуществить замену переменной у = /(х), нужно выразить e-dx как функцию только от у и dg”.
Пример
ЕСЛИ замена переменной (е) =/(%)
ТО вычислить dy — производная f (х) • dx унифицировать (е,弘 %)(а)
проверить на отсутствие (е, х)(Ь)
Два последних действия выполняются следующим образом:
Везде в выражении применять два правила
:~> 〃%) и dy-^f(x) dx.
Проверить, что после этой операции интегрируемая величина не содержит переменную %.
При сравнении с классическим программированием обнаруживается следующее:
Не надо упорядочивать правила.
Правила независимы: они связаны только с помощью промежуточных утверждений над единственной глобальной переменной е ——интегрируемым выражением, которое может видоизменяться по ходу решения; например, / = \/ге = /г\е или / = \ el +е2.
Одному и тому же интегралу могут соответствовать несколько правил. Начальный выбор правила определяется с помощью приоритета, связанного со сложностью выражения под знаком суммы. В случае неудачи делается другой выбор.
Полный набор правил для исчисления интегралов содержит 86 правил стратегического характера, 368 правил вычислений тригонометрических, степенных и логарифмических выражений.
Полный набор правил (стратегий интегрирования) должен быть относительно большим. Практика показывает, что какие- то правила могут быть забыты, другие ——недостаточно точны. Наглядность записей на языке SNARK упрощает выполнение необходимых модификаций. В этом смысле он довольно близок к обычному языку записи математических выражений. Трудно даже представить себе, скольких усилий потребовало бы выполнение той же работы на классических языках программирования.
Язык SNARK позволяет описывать как очень общие правила (приведенный выше случай), так и весьма специфические, например:
/ = \ [1/“—3%2 + 6х — 2 ] dx
ЕСЛИ характер (е) = дробь
ПУСТЬ знаменатель (е) — (d)
ЕСЛИ дробная степень (d) = истина
ПУСТЬ (f) = первый-член (d)
ЕСЛИ полином (/) = истина
ЕСЛИ степень (/) = 2
ТО идентифицировать (厶 ay2 + b)
ЕСЛИ (a<0)A(fe = 0)
ТО замена-переменной (е) == (/) выражение (/) = -^- cos О
Роль переменных в системе SNARK
В предложенном представлении переменные пересылаются в записи базы фактов. Они играют 4 различные роли, соответствующие хорошо известным в программировании стандартным ситуациям, которые описываются в том же формализме функциональных обозначений:
индексация содержимого базы (связный список);
параметризация правил (передача аргументов);
вызов цели (подпрограммы);
управление деревом поиска (приведение в порядок стека).
Рассмотрим эти роли более подробно.
Индексация. Каждая переменная базы фактов имеет значение, связанное с объектом, который определяется с помощью известных в данный момент соотношений (рис. 7.12). В частности, может оказаться, что он не обладает ни именем, ни характерными свойствами. Кроме того, имеется прямой доступ ко всем записям, определяющим одно свойство и имеющим одно значение (снова приходим к реляционной схеме базы данных).
Рис. 7.12. Объект в базе фактов SNARK.
Параметризация. Переменные правил являются формальными переменными, замена которых происходит в соответствии с правилами математики. Правила можно рассматривать к@к теоремы, действующие для всех семейств объектов, для которых справедливы предположения. Вызовы правил осуществляются с помощью значений параметров, поскольку именно .значения объектов базы управляют выполнением правил.
Вызов подпрограммы. Конкретный результат работы правила зависит от значений переменных, и его получение может быть связано с вызовом новой цели. Например, запись “замена переменной (е)” позволяет запомнить возможную цель замены переменной. Данное обстоятельство будет затем учтено каким- либо другим правилом. Это представляет собой оригинальный метод вызова процедуры, поскольку в любой момент могут конкурировать между собой несколько целей-процедур. Тогда окончательный выбор осуществляется с помощью правил более высокого уровня (метаправил), которые учитывают трудности достижения различных целей.
Управление деревом поиска. По природе решаемые задачи требуют возврата назад в процессе решения. Это происходит в тех случаях, когда правило выполняется слишком рано, неудачно определен набор переменных или поставленная задача не имеет решения и надо проверить другие возможности. Мы снова приходим к управлению классическим деревом, которое иногда осуществляется с помощью рекурсивных программ. В этом случае глубина рекурсии заранее неизвестна и может достигать очень больших значений. Индексация переменных позволяет осуществить управление гораздо проще: задание конкретного набора выполняемых правил определяет параметр индексации,
основанный на всех фактах, известных на данный момент. Рассмотрим, например, выражение & которое после замены переменной v обозначим через еа Если впоследствии решение задачи зашло в тупик, информация о ev теряется и поиск возобновляется от первоначального выражения. В этом случае стратегию использования дерева поиска можно определить с помощью метаправил и отдать предпочтение выражению наименьшей сложности, т. е. управление поиском осуществляется извне программы (“режим попыток'1 (Nilsson, 80), (Farenny, 85)).
С помощью логики первого порядка системы SNARK можно, например, за несколько дней составить и реализовать блок правил для формального интегрирования. Время вычисления интеграла в среднем составляет 1 с на ЭВМ типа ИБМ 370/168 для интегралов вида
,(х3 arcsin х)/(1 — х2) dx.
Выигрыш во времени реализации по сравнению с классическими методами очевиден. За 〜10 с может быть выведена в среднем тысяча фактов.
Важная характеристика системы состоит в том, что вывод, т. е. нахождение тгоследовательности используемых правил, легко осуществляется в каждом случае. Более того, используя начальные знания, система по требованию находит поддерево поиска, которое окажется полезным для доказательства какого- либо факта. Благодаря этому подобные экспертные системы становятся автоматизированным инструментом подбора полезных сведений.
Мы рассмотрели несколько экспертных систем, при разработке которых используется декларативный подход (база знаний независима от программы). Полезно сравнить их работу с работами классических информационных систем. В частности, в разд. 7.5 поставлены проблемы мощности и эффективности используемых языков, описаны современные направления исследований.
В разд. 7.6 мы попытаемся сформулировать преимущества и недостатки декларативного подхода к созданию экспертных систем по сравнению с обычным процедурным подходом, используемым специалистами по информатике. В разд. 7.7 рассмотрены выражения, с помощью которых осуществляется управление самим языком: фундаментальное отличие экспертных систем от систем с правилами перезаписи состоит в метазнании.
7.5. Сравнение декларативного и процедурного подходов
Эти два .подхода возникли вместе с первыми успешными реализациями экспертных систем, использующих базу знаний в форме продукционных правил типа:
MGMD
Частично описанная ситуация —Ожидаемое заключение
Например, информация
41 Все американские политики лжецьГ*
вводится в форме
ЕСЛИ характер (х) = политик
ЕСЛИ государственность (х) = американец
ТО лжец (х) = истина
Эти подходы возникали также и в классическом программировании. Они привели к противостоянию аппликативного и повелительного, рекурсивного и итеративного, статического и динамического, функционального и описательного, вообще в противостоянии между процедурами и описаниями. Идеал, конечно же, заключается в описании (задачи, программы, знания) независимо от используемых методов. При декларативном подходе к продукционным правилам и экспертным системам доступ к информации осуществляется с помощью унификации или ограниченной унификации (называемой сравнением с образом и фильтрацией) [Waterman, Hayes-Roth, 1979; Nilsson, 1980; Farreny, 1980].
Ответ на вопрос “Лжеп ли он?” отыскивается с помощью двух обращений к базе фактов. А из утверждения “Он честный политик" выводится с помощью унификации “Он не американец^.
Напротив, в процедурном подходе необходимо заранее предвидеть вопросы и составить процедуру для ответа на каждый из них. Если кто-то является политиком, то, чтобы узнать, честный он или нет, необходимо проверить его государственную принадлежность и т. д. По сути процедура дает поток информации и дает синтаксическое описание его преобразования.
Что касается декларативных формулировок, то они по определению выражают фактическое знание чисто повествовательным образом независимо от его будущего использования. Это знание пополняется неупорядоченно и имеет полностью модульную структуру. Отметим здесь основной момент, что декларативные формулировки выражают отношения с помощью семантической информации.
Критика «процедурной» информатики или《языки программирования не являются языками»
Слово ordre во французском языке имеет два значения: 1) действие, с помощью которого руководитель проявляет свою волю (командовать, заставлять, приказывать), и 2) правильное расположение, последовательность или связку (ряд, вереница). Оказывается, что оба значения этого слова соответствуют двум фундаментальным свойствам современных языков программирования, а точнее свойствам алгоритма. Запись алгоритма на языке программирования
состоит исключительно из инструкций (первое значение);
представляет собой строго определенную последовательность последних (второе значение).
Из этого следует, что на доступных языках программирования нельзя выразить фразы: иНа Парижской бирже повышается курс доллара” или иЖеневское озеро очень приятно в хорошую погоду", так как они не содержат ничего* что могло бы быть выполнено в определенном порядке. Кроме того, если нет дополнительной информации, они независимы друг от друга.
Были предприняты попытки устранить одно из этих драконовских ограничений, связанное с порядком инструкций, с помощью новых примитивов (First i, Next i, т. e. первый и следующий). Оказалось, что в определенных случаях порядок следования инструкций может быть изменен без изменения алгоритма, а к языкам программирования, обладающим таким свойством, применяется термин “без последствия" (в них одна и та же переменная не используется дважды). Исследования в этой области оказались связанными с такими проблемами, как параллелизм в программировании, сети Петри, программные схемы.
Но в действительности основная проблема программирования состоит совсем в другом: мы с трудом составляем алгоритмы, потому что само это понятие нам несвойственно. Программируя, мы решаем настоящую головоломку. Мы составляем алгоритм из разрозненных кусков, потому что в действительности наше знание является модульным и каждый такой модуль содержит от четырех до шести строк. .
Кроме того, как предоставить в распоряжение ЭВМ информацию типа: иЭДС U, сопротивление R и ток /, протекающий по электрической цепи при комнатной .температуре, связаны между собой законом Ома U = /?/"?
Если подобную информацию можно поместить в базу данных, останется только умело ею распорядиться, т. е.
обращаться к ней только при необходимости;
в случае возникновения такой необходимости иметь в виду, что нс только U является функцией R и /, но и R ——функция U и / и / ——функция U и R. Даже если из трех значений U, R и / неизвестными являются два, то все равно можно использовать некоторые соотношения, например для двух параллельно включенных сопротивлений справедливо /?1//?2 = 72//1.
Очевидно, что, когда применяется этот закон, он должен в свою очередь использовать другие законы, в данном случае законы алгебры и анализа (упрощение, нормализация). Таким образом, для языков программирования требуется полная информация. Для работы алгоритма необходимы все те данные, использование которых было предусмотрено при его составлении. После того как алгоритм отработал, уже невозможна никакая параметризация, нет никаких степеней свободы.
Ставящий диагноз врач, работающий над проектом инженер, доказывающий теорему математик вынуждены использовать неполно описанные ситуации. Из этих неполных данных они выуживают все, что возможно, а затем, в случае необходимости, продолжение работы строят на гипотезах. Каждая возникающая ситуаци;! является новой. Ходом их рассуждений не управляет никакая полная и заранее установленная схема, их действия совершенно не похожи на работу привычных алгоритмов.
Эти замечания говорят о том, что классическое программирование не включает громадную область обработки информации. Речь идет о всех тех областях, где человек использует фактическую информацию, обособленные правила, неполно описанные стратегии и приемы. Обработка таких данных по природе не является алгоритмической. Конечно же неплохо иметь в распоряжении подобный алгоритм, но. к сожалению, это не всегда возможно. Совершенно новый подход к решению подобных проблем, как мы уже видели, используется в экспертных системах, появление которых связано с конкретными потребностями в различных приложениях (биология и химия) и с трудоемкостью составления программ.
Управляющие структуры в экспертных системах
Заранее ясно, что управляющие структуры экспертных систем (ЭС) и процедурных программ (ПП) должны сильно различаться, В ЭС управление является “открытым”. Правило может быть вызвано в любой момент вне зависимости от других правил в базе фактов, описывающей данную конкретную ситуацию. Происходит чередование циклов выбора и выполнения правил, а после каждого цикла все перестраивается.
порядок выполнения правил определяется динамически. В ПП управление сильно локализовано. Основным средством управления является последовательный порядок выполнения инструкций, таких, как ЕСЛИ-ТО-ИНАЧЕ1, ДЕЛАТЫ, ПОВТОРЯТЬ ПОКА, которые работают с небольшой частью параметров, описывающих данную ситуацию. Ход выполнения инструкций гораздо меньше связан с данными, небольшие изменения во входных данных, как правило, мало влияют на выполнение процедуры. В ЭС информация легко доступна. Способ ее использования неявно подразумевается и не определяется содержимым
Таблица 7.1. Сопоставление ЭС и ПП
ЗнанияУправлениеВывод
Процедурные программы (ПП)
Кодирован-КодированныеЧерный ящик
ные инструк-инструкции
ции
Экспертные системы (ЭС)
ДанныеДанныеДоступный,
правилав формеявный,
и факты- метаправилпрозрачный
правил. Этим занимаются метаправила и интерпретатор. Обратная ситуация наблюдается в ПП. Механизм управления прозрачен, а информация растворена в самих процедурах и используемых представлениях данных (табл. 7.1).
Использование ЭС необходимо при наличии больших баз знаний,, в то время как для решения локальных задач наиболее подходят процедурные программы. Этому не противоречит то, что в правых частях некоторых правил предусматривается вызов процедуры. Для сохранения основного принципа и преимуществ ЭС необходимо, чтобы такие процедуры не вызывали взаимно друг друга и всегда располагались в конце цепочки (в правой части правил).
Продукционные правила и процедуры. Примеры
Два следующих примера иллюстрируют общий принцип работы продукционных систем, причем в неблагоприятных случаях, когда процедуры являются итерационными. Эти примеры являются классическими и показывают, что всегда можно, не вводя дополнительных переменных, четко разделить операции в элементарных модулях, выраженных в форме условных правил. Во втором примере, где в отличие от первого все сделано
для полного разделения правил и их управляющей структуры, мы приведем хорошо известное свойство продукционных систем.
Пример 1. Инверсия цепочки символов с помощью алгоритма Маркова.
* % X II 二II ху嚣 %х > > > ^^ > >* % X II 二II ху嚣 %х > > > ^^ > >
* % X II 二II ху嚣 %х > > > ^^ > >
* % X II 二II ху嚣 %х > > > ^^ > >
Символы 声 и % являются управляющими и не могут замещаться. % и у могут унифицироваться с любой непустой цепочкой символов. Список правил упорядочен сверху вниз. Правило (R5), которое определяет пустое действие, отмечает конец процедуры.
Инверсия цепочки символов слова МОТ для предыдущей системы Маркова:
МОТ 1 *т
(R6)
1 0Tqi
(RD
1 #02
(R6)
1 TQM
(RI)
1 司КЭ#|
(R6)
1 *T如呦
(R6)
1 WTxOH
Е2)
1 TW#O*
(R4)
(R3)
I TO№M
(R4)
1 Т0Ш1
(R3)
1 томи
(R4)
1 том
(R5>
При выполнении этой процедуры берутся последовательно все символы цепочки и помещаются слева от уже инвертированных, а затем удаляются управляющие символы.
Пример 2. Имеются три следующих правила, в которых через Cl, С2 и СЗ обозначены произвольные последовательности точек, возможно пустые [Post, 1936]:
(Правило f) //С1/С2/->/С2/
(Правило z) /С1/С2/->/С1/С2//
(Правило т) / - С1/С2/СЗ/->/С1/С2/С2СЗ/
Символ / является незамещаемой константой. Входная последовательность имеет вид
р точек g точек
Эти три правила выполняют умножение двух целых чисел р и д, представленных в единичной системе. В данном случае правила унифицированы с входной последовательностью в произвольном порядке. Кроме того, они рассматриваются как продукционные, и унификация должна производиться с их левыми частями (разд. 7.3.4). Таким образом, если входная последовательность имеет вид-/.../..../, то последовательно получим
с помощью правила i :/.../....//
с помощью правила т :/../..../..../ (СЗ — пустая)
с помощью правила т :/./• • • •//
с помощью правила /и ://....//
и с помощью правила f ://.
Замечание. С момента появления информатики мы привыкли мыслить в терминах процедур, а не в терминах перезаписи. Поэтому не удивительно и заранее ясно, что продукционные системы для нас в некотором роде чужеродны. Но как вы думаете, не напоминает ли приведенный выше пример манеру счета маленьких детей?
В обоих приведенных примерах механизм вычислений представляется громоздким. Более предпочтительным был бы формализм языков программирования, так как эти ситуации являются явно алгоритмическими. В отличие от этого формализм продукционных правил, представляющий собой множество неупорядоченной информации, обладает преимуществом, которое заключается в повествовательном типе формулировок, независимых одна от другой, как в случаях утверждения наблюдаемых фактов или правил решения математических теорем, грамматических правил, постановки медицинского диагноза, химических исследований, разработке фюзеляжей самолетов, электронных схем (разд. 7.2). И не исключено, что после определенного числа попыток будет сформирован пакет правил и оформлен в виде законченной процедуры.
Производительность экспертных систем
Формализм продукционных правил представляет собой не что иное, как внешнее представление знаний. Большая часть систем “компилирует" базу правил, чтобы получить эффектив-
ное внутреннее представление, которое выражается в структурировании знания путем группировки в списки правил и посылок (как в Лиспе). Мы опишем две такие системы: POLITICS, разработанную Дж. Карбонеллем (1978) и использующую структуру вложенных правил, более богатую чем исходный формализм, и PROSPECTOR (Duda, 1980). использующую мультиграфы. Отметим также машины вывода OPS и TANGO, которые интересны тем, что применяют другие пути оптимизации выполнения правил с помощью их внутреннего представления с уменьшением времени вычислений за счет использования большего объема памяти. В обеих системах интерпретация уступает место компиляции, так как облегчается определение фазы выполнения правил. Важно отметить, что структуризация знаний возлагается на систему, поскольку в общем случае она претерпевает глубокие изменения при изменении базы правил.
В последнее время некоторые специалисты по информатике используют моделирование с помощью сетей Петри (Petri, 62). Между этим моделированием и внутренними представлениями в экспертных системах существует глубокая связь. В частности, ^предикатные" сети Петри являются не чем иным, как повторным открытием продукционных систем, основанных на логике первого порядка. Отметим также, что модульность систем правил является существенным показателем производительности систем. Действительно, активизация правила происходит ассоциативным образом, а не в порядке, строго заданном процедурой. Правила активизируются и, возможно, выполняются, активизируя тем самым новые правила, и т. д.
В общем случае, поскольку могут быть выполнены сразу несколько правил и все, кроме одного, должны ждать своей очереди, а также поскольку каждое правило может требовать выполнения нескольких заданий, задания обычно помещаются в очередь в “записную книжку*1 (агенда). Записная книжка представляет собой структуру данных, доступ к элементам которой регулируется с помощью приоритетов или, в более общем случае, предикатов. Нет необходимости рассматривать случаи, которые не соответствуют данной ситуации (инструкции и тесты в классическом программировании). Базой фактов или базой данных вызываются только те правила, которые нужны. Для различных данных также весьма различны выводы и решения. Представляется, что это должно быть непременным условием высокой производительности. Не следует обвинять случай, если сам человек не заботится о правильном построении алгоритма. Даже для такого тривиального случая, как умножение двух чисел, мы всякий раз учитываем имеющиеся данные: более длинное число пишем вверху, кроме тех случаев, когда оно
содержит нули, единицы или повторяющиеся цифры, а более короткое ——внизу, если это возможно.
Практика показывает, что отладка правил осуществляется просто и быстро. Всего лишь несколько минут требуется после обнаружения ошибки при выполнении правила на ее исправление и/или добавление нового правила. В отличие от этого в программе обнаруженная ошибка не всегда может быть легко исправлена из-за "системного эффекта", связанного с последовательным выполнением инструкций. На исправление ошибки в этом случае может потребоваться, например, несколько часов. Она должна выполняться обязательно программистом, который в данном случае выступает в роли дорогостоящего и медлительного посредника между экспертом и программой.
Структурированные правила в системе POLITICS
Жесткая структура ЕСЛИ-TO, использовавшаяся до сих пор, может быть легко дополнена и преобразована в структуру ЕСЛИ-ТО-ИНАЧЕ, а также использоваться во вложенных структурах ЕСЛИ. Рассмотрим это решение ниже. Его очевидное преимущество состоит прежде всего в том, что условия выполнения приближаются к собственно действию, а также становится более экономной запись посылок, общих для нескольких ситуаций. Подобные системы были предложены И. Гол Стейном (1977) и Дж. Карбонеллом (1978).
Например, программа Карбонелла POLITICS вызывает правила по их контексту, используя «почерк» (Schank, 77) как результат исследований свойств естественных языков. Затем выполнение осуществляется много раз. Цель системы POLITICS —— моделирование поведения человека в различных политических ситуациях со своими предубеждениями и мнениями. Ниже показана форма представления внутренних правил этой системы:
ЕСЛИ У передвигает свои войска к границам X и ЕСЛИ X — малая страна н У — большая страна и
ЕСЛИ X втянута в военный конфликт
и нуждается в помощи
и победа X помогла бы У в достижении своих собственных целей
То цель У = военная помощь X
ИНАЧЕ ЕСЛИ главной задачей У является расширение своего политического влияния
ТО цель У = завоевать X
ВВГ—TEL——I ИЛИJ"! Структура вилкан^-■」БескинскалГ—TEL——I ИЛИJ"! Структура вилкан^-■」БескинскалНача^ь-дзактыНача^ь-дзактыПрисутстбие "纪е- pa4a nop(pupwu меди типа, АПрисутстбие "纪е- pa4a nop(pupwu меди типа, АJL “JL “или Iбааеотри- I 1 ятная '~и ■—* морфологияили Iбааеотри- I 1 ятная '~и ■—* морфологияуЗернистпьге-включения o6〃oxfco6 породыуЗернистпьге-включения o6〃oxfco6 породы'Вулканические остатки-f^)ome^rr7oнu чес кое меспюро*" Некие'Вулканические остатки-f^)ome^rr7oнu чес кое меспюро*" Некиеб^агоприя^^ь ?и」 уровень эрозииб^агоприя^^ь ?и」 уровень эрозии
В
В
Г—TEL——
I ИЛИ
J"! Структура вилкан^-
■」Бескин
скал
Г—TEL——
I ИЛИ
J"! Структура вилкан^-
■」Бескин
скал
Нача^ь-
дзакты
Нача^ь-
дзакты
Присутстбие "纪е- pa4a nop(pupwu меди типа, А
Присутстбие "纪е- pa4a nop(pupwu меди типа, А
JL “
JL “
или I
бааеотри- I 1 ятная '~и ■—* морфология
или I
бааеотри- I 1 ятная '~и ■—* морфология
уЗернистпьге
-включения o6〃oxfco6 породы
уЗернистпьге
-включения o6〃oxfco6 породы
'Вулканические остатки
-f^)ome^rr7oнu чес кое меспюро*" Некие
'Вулканические остатки
-f^)ome^rr7oнu чес кое меспюро*" Некие
б^агоприя^^ь ?и」 уровень эрозии
б^агоприя^^ь ?и」 уровень эрозии
интерпретатором системыинтерпретатором системыРис. 7.13. Часть сети выводов, образованная
интерпретатором системы
интерпретатором системы
PROSPECTOR из набора классических продукционных правил. Стрелки указывают на предположения, позволяющие получить заключение.
Семантическая сеть системы PROSPECTOR
Система PROSPECTOR предназначена для оказания помощи прн исследованиях в горной промышленности. Внутреннее представление правил в ней немного отличается от представления в предыдущей системе и является более эффективным. Для получения выводов здесь используется граф, вершинами которого являются элементарные предложения. Правило представляет собой подмножество дуг, связывающих вершины. Подмножество помечено И для посылок одного и того же правила, ИЛИ для идентичных заключений, получаемых с помощью нескольких правил (рис. 7.13).
Последовательные выводы из начальных фактов получаются очень просто с помощью переноса указателя в этом графе. Оптимизация1 достижения искомой цели (конечная вершина графа) производится с помощью классических методов, применяемых в искусственном интеллекте: поиск по дереву И-ИЛИ, алгоритм продвижения A* (Nilsson 1980) (гл. 2).
Этн внутренние представления очень близки к семантическим сетям и фреймам, используемым при описании естественного языка (Minsky, 1975, Winograd, 1982, Pitrat, 1982).
Связь описываемых систем с сетями Петри
В 1962 г. Петри предложил, а в 1970 г. Холт развил общее представление процессов в форме графов. Холт назвал это представление «сетями Петри». Такие сети являются ориентированными графами, вершины которых представляют собой либо «позиции» (обозначаемые окружностями), либо «переходы» (обозначаемые вертикальными отрезками). Позиции могут содержать 《жетоны》. Если все позиции, предшествующие
Рис. 7.14. Пример сети Петри. Выполнение Т1 включает в работу Р2 и РЗ. Затем выполнение Т2 и ТЗ включает в работу Р4 и Р5, но только один ид них может быть активным. Затем сеть возвращается в начальное состояние.
переходу, содержат жетон, то такой переход называется активным. В этом случае он выполняется, а каждая предыдущая позиция теряет жетон и передает его следующей позиции (рис. 7.14).
Очевидно, что графы переходов, как и конечные автоматы, являются частными случаями сетей Петри. Преимущество последних заключается в том, что они представляют не только сам процесс, но также и его управление, элементами которого являются жетоны и выполняемые правила. Они позволяют также моделировать процессы параллельной обработки и синхронизации, что является основой обработки информации, в частности для систем с продукционными правилами. Можно отметить еще два полезных свойства сетей Петри:
Выявление возможности конфликта между правилами (возможность одновременного выполнения, правил).
Внутреннее представление набора правил для интерпретатора с целью оптимизации времени решения.
Зисман (1978) предложил следующую модификацию набора правил для обращения цепочки символов, приведенную в разд. 7.5.3. В правой части каждого правила указывается правило, которое система попытается выполнить после данного пра-*
вила:
(Pl) * * f А (Р4)
(Р2)牛 кд f 牛 к Z (Р2)
(РЗ) т* 八(Р1)
(Р4)千 ->Л (Р4)
Отметим, что в такой записи один из символов можно не указывать и число правил уменьшается на два. Представление
Рис. 7.15. Представление системы продукционных правил в форме сети Петри. Для простоты переходы ■ не указаны, имеются два типа жетонов: «исти-. на» £ и «ложь» 尸 н зависимости от истинности левой части "правила.
этого набора правил для интерпретатора в форме сети получается сразу же (рис. 7.15). Очевидно, что представление, в котором стрелки соответствуют обычной последовательной передаче управления в программах и условным переходам, должно предназначаться только одному интерпретатору. Оно далеко от идей продукционных систем и от возможностей модульного программирования. Оно великолепно оправдывает себя в качестве внутреннего представления и с небольшими модификациями было использовано под именем ATN (Woods, 1972) для анализа письменных текстов (Kayser, 1981).
Итоги сопоставления процедурного и декларативного подходов
Отметим в заключение, что фундаментальное различие между обычными программами и системой правил заключается не в процедурном характере первых и более или менее декларативном вторых, но главным образом в том, что во втором случае структура управления полностью отделена от информации, вводимой в форме правил, и поэтому эти правил^ могут вводиться в беспорядке. В данном случае существенным свойством является отсутствие упорядоченности. Оно определяет
действительно декларативный язык, основанный на продукционных правилах или других логических построениях. Практический интерес представляет его абсолютная модульность (независимые единицы информации, связь между этими единицами осуществляется только с помощью базы фактов, отмена упорядоченности, возможность возвращения назад при выполнении правила).
Различные типы знаний и их представления
В настоящее время целью исследований в области искусственного интеллекта является создание таких систем, которые, с одной стороны, могут использовать большое количество знаний, передаваемых им специалистами, а с другой ——способны вступать в диалог и объяснять свои собственные выводы. Это предполагает наличие эффективного управления большой по объему и хорошо структурированной базой знаний, строгое разграничение между различными уровнями знаний (разд. 7.6.1), наличие множества удобных представлений для правил, схем предикатов или прототипов (разд. 7.6.2) и четко определенный процесс обмена информацией между различными источниками.
Наконец, необходимо, чтобы система знала, что она знает. Если попытаться провести аналогию с людьми, то подобное метазнание означает постоянное использование в течение жизни информации о каждом прожитом дне. Если, например, вы забыли имя приятеля, встреченного на улице, то ваше метазнание состоит в том, что либо вы его имя знали, но забыли, либо этого имени никогда не знали. Впрочем, мы постоянно используем важные эвристические правила, основанные на подобном метазнании, такие, как «если бы это была правда, то я бы это знал》. Они зависят от двух важных параметров: значимости имеющего к ним отношения факта и степени нашей собственной компетентности в данной области. В действительности каждое человеческое знание сразу же требует метазнания, связанного с тем местом, которое мы отводим данному знанию в ряду другой информации, как мы к нему относимся, для каких целей оно нам полезно, к какому семейству принадлежит. Все эти моменты рассматриваются в следующих разделах, посвященных описанию реальных информационных систем.
Различные типы знаний
Выделим восемь основных типов знаний по следующим признакам.
Базовые элементы, объекты, реального мира. Они связаны с непосредственным восприятием, не требуют обсуждения и добавляются к нашей базе фактов в том виде, в котором они получены.
Утверждения и определения. Они основаны на 6а- зовнх элементах и заранее рассматриваются как достоверные.
Концепции, Они представляют собой перегруппировки илн обобщения базовых объектов. Для построения каждой концепции используются свои приемы. Например, в системах МЕСНО (Bundy, 1979) или AM (Lenat, 1977) они построены на основе примеров, контрпримеров, частных случаев, более общих или аналогичных концепций.
Отношения, Они выражают как элементарные свойства базовых элементов, так и отношения между концепциями. Кроме того, к свойствам отношений относятся их большее или меньшее правдоподобие, большая или меньшая связь с данной ситуацией. Еще раз отметим, что представление знаний в экспертных системах близко к моделям, используемым в базе данных. Таким путем построена реляционная (обобщенная) модель базы данных в системах OPS, PROLOG, SNARK, и TANGO.
Пара понятий «свойство ——значение» (relationship ——entity) хорошо известна в семантических сетях; фреймы и скрипты являются не чем иным, как наиболее простыми бинарными отношениями. Некоторые экспертные системы (INTERNIST, BAOBAB, SPHINX) в качестве базы фактов используют уже базы существующих данных.
Теоремы и правила перезаписи. Они яйляются частным случаем продукционных правил с вполне определенными свойствами. Теоремы не представляют никакой пользы без экспертных правил их использования. Явное присутствие теорем в экспертных системах представляет главное отличие от систем управления классическими базами данных (СУБД), в которых они либо отсутствуют, либо программируются. Модификация или добавление новых теорем является весьма трудоемкой, хотя и необходимой процедурой, так как нужно обеспечить хорошее структурированное управление базой данных и оптимизировать получение ответов (Gallaire, 1978).
Алгоритмы решений. Они необходимы для выполнения определенных задач. Во всех случаях они связаны со знанием особого типа, поскольку определяемая ими последовательность действий оказывается оформленной в блок в строго необходимом порядке в отличие от других типов знания, где элементы
информации могут появляться и располагаться без связи друг с другом.
Очевидно, что очень трудно работать с длинными процедурами, состоящими из большого числа разлимных действий. Использование чистых алгоритмов ограничено очень частными случаями, большая часть которых имеет дело с обработкой числовой информации. Человек же должен уметь работать со многими другими типами информации и оказывается, что ЭВМ в отличие от простого калькулятора может помочь человеку в подобных неалгоритмических ситуациях.
Стратегии и эвристика. Этот тип представляет- собой врожденные или приобретенные правила поведения, которые позволяют в данной конкретной ситуации принять решение о необходимых действиях. Он использует информацию в порядке, обратном тому, в котором она была получена. В качестве примера можно привести рассуждение типа: «Я знаю, что это действие приводит к такому-то результату (информация типа 4), поэтому, если я хочу получить именно этот результат, я могу рассмотреть это действие». Человек постоянно пользуется этим типом знаний при восприятии, формировании концепций, решении задач и формальных рассуждениях.
Появление экспертных систем связано с необходимостью принятия в расчет именно этого фундаментального типа человеческих знаний.
Метазнание. Без сомнения оно присутствует на многих уровнях и представляет собой знание того, что известно и определяет значение коэффициента доверия к этому знанию, важность элементарной информации по отношению ко всему множеству знаний. Кроме того, сюда же относятся вопросы организации каждого типа знаний и указаний, когда и как они могут быть использованы. Этому вопросу посвящен разд. 7.7, в котором* показано, как он решается в конкретных системах.
Различные представления знаний в существующих системах
Приведем краткий список наиболее распространенных в настоящее время методов. Фундаментальное различие между ними состоит в простоте модификации знания. В таблице ниже они приведены в порядке от наиболее процедурного (наиболее застывшего, структурированного) до наиболее декларативного (наиболее открытого, свободного, неупорядоченного). Такая
классификация является несколько грубой, но правильно отражает идею.
РазделБиблиографическая
Методыв книгессылка.
Процедурные
«закрытые》
Конечный авто-5.1(Markov, 1954)
мат
Программа5.1(Меуег, 1978)
Скрипт (схема)5.4, 6.2(Schank, 1977)
Семантическая5.4(Me Carthy, 1977)
сеть5.4, 6.2(Minsky, 1975)
Фрейм (прототип)5.4(Petri, 1962)
Графы, сети6.1(Germain, 1981)
Формальная спе-(Kowalski, 1979)
цификация4.1
Исчисление пре-6.1(Huet, 1978)
дикзгов
9. Теоремы, правила перезаписи
Декларативные, «открытые», «неупорядоченные»
Продукционные2.3Shortliffe, 1976)
правила
Предложения(Pitrat,? 1981)
на языке
Напомним, что конечные автоматы, программы, исчисление предикатов и системы с продукционными правилами с теоретической точки зрения эквивалентны друг другу, поскольку их в принципе можно свести к универсальной машине Тьюринга, хотя их «эксплуатационные характеристики» сильно различаются.
Такие формальные понятия, как фреймы, скрипты, семантические сети, возникли из реальных потребностей искусственного интеллекта и приносят большую помощь в понимании языка (Charniak, 1978; Cordier, 1979; Pitrat, 1982).
Фреймы (или прототипы) предложены Минским в 1975 г. и представляют собой сложные структуры данных, описывающих какую-либо типичную ситуацию, например ожидание в аэропорту или участие в семейном обеде. Фрейм состоит из позиций (слотов) для размещения объектов, характеризующих данную ситуацию. Позиция может быть передана другому фрейму. Кроме того, он содержит информацию о выполняемых действиях (заполнение позиций, присвоение значений по умолчанию, активизация), о том, как следует поступать в типичных и нетипичных случаях, о влиянии соседних фреймов.
Скрипт или схема представляет собой описание стереотипного сценария действий с участием определенных объектов. Скрипты связаны с текущей культурой и необходимым для
понимания таких предложений, как <Я вошел в ресторан, официантка принесла мне меню» (Schank, 1975). Они могут вызывать другие скрипты и обладают большими, чем фреймы, возможностями для описания динамических аспектов знания.
Семантические сети — это графы, которые часто представляют собой объединение двух предыдущих понятий и объектом описания которых являются элементы окружающего мира и связи между ними. Они имеют много общего с реляционными моделями баз данных.
Изображения и графы эффективно используются для доказательства теорем (Buthion, 1975), (Pastre, 1978). Они оказывают большую помощь в проверке отсутствия зацикливания этапов, в полном и эффективном хранении задачи в памяти, в организации ввода новых элементов.
Способы использования знаний и доступ к ним
Имеются четыре способа использования простой информации в форме
Примером этого может служить «каждый человек ошибается».
Самый непосредственный способ состоит в прямом использовании его смысла в формулировках типа: ■
uНечто ошибается, и я могу доказать, что это нечто — человек0. Второй способ, использующий метазнание и обратный ход мыслей, состоит в следующем:
"Если я хочу доказать, что нечто ошибается, то возможная подцель состоит в том, чтобы показать, что это нечто — человек". Оба первых способа используют модус поненс, два следующих используют отрицание предложения q и модус толенс: а) "Если нечто не ошибается, оно не может быть человеком*', б) “Если я хочу доказать, что нечто не является человеком, то я могут попытаться показать, что оно не ошибается".
Отметим, что принцип решения и, в частности, использующий его язык Пролог применяют единый формальный подход к описанию этих способов вывода.
С практической точки зрения использование информации зависит от параметров, которые характеризуют ее правдоподобие. Каждая система обработки информации должна быть в состоянии ответить на такие вопросы, как:
Какая часть утверждения Л .является истиной?
С какой степенью уверенности эксперт согласен с заключением?
Какова средняя вероятность достижения цели с использованием Л?
В какой мере следует оказать предпочтение Я перед другими?
Некоторые системы, основанные на продукционных правилах, используют процессы приближенного вывода, учитывающие эти обстоятельства. Системы, применяющие продукционные правила, описаны выше. В следующем разделе показано возможное различие между этими системами и подходом к решению тех же проблем с помощью логики первого порядка, отмечены также преимущества и недостатки подобного моделирования знаний. ■
Преимущества и недостатки продукционных систем
Начнем с недостатков. Выделим из них три главных, с которыми связаны определенные ограничения, лежащие в основе используемого формализма. Они относятся к концепции, формулировке и использованию правил.
Трудность составления продукционного правила, соответствующего элементу знания. Нужно, чтобы рассматриваемая область уже была достаточно изучена и установлены хорошие примитивы и чтобы уровень детализации не был излйшне подробным, иначе потребовалось бы иметь по одному правилу ма каждую ситуацию и неясно, как человек смог бы разобраться в таком обилии информации.
Трудность записи правила. Единый формат записи ЕСЛИ- ТО-приводит к громоздким выражениям в левой части и повторению тех же посылок в схожих ситуациях; с его помощью трудно выразить сложные правила. Но мы видели (разд. 7.5.4), что жесткий синтаксис, громоздкие записи представляют и определенные преимущества. Во всех случаях проблема «поймать знания» остается главной при написании экспертной системы.
Трудности использования. Связаны не с самими правилами, а с единой системой их связи. При этом база фактов играет роль кратковременной памяти, которая реально смоделирована в разработанной Ньюэллом (Newell, 1975) системе “познавательной психологии" PSC. В ней запрещен взаимный прямой вызов одного правила из другого, и она неудобна для выполнения алгоритмов в обычном смысле слова. Однако именно благодаря ей система в каждый момент времени точно знает, что она делает и что она знает.
К преимуществам относится следующее.
Модульность. Системы устроены так, что каждая единица информации может быть удалена, изменена или добавлена
независимо от всех остальных. Знания вводятся неупорядоченно, как в словаре или энциклопедии. Практика показывает, что это является естественным способом пополнения своих знаний для эксперта.
Как ни странно, многочисленные американские авторы (Дэвис, Ньюэлл, Куинлан, Стэфик) нарушают это правило, т. е. проблема реорганизации решается у них довольно плохо.
Модифицируемость. Если добавляется или модифицируется какое-либо правило, то все, что было уже сделано ранее, остается в силе и к новому правилу не относится. Таким образом, каждое изменение обладает свойством аддитивности и локальности. .
В отличие от этого в процедурных программах подобные взаимодействия ограниченны, любая модификация является трудной и может привести к непредсказуемым последствиям.
Доступность чтения.
Для нас это преимущество, безусловно, имеет место. Как уже говорилось выше, наше собственное знание является модульным, поэтому продукционные системы нам кажутся более близкими, более легкими для чтения. Этим преимуществом нельзя пренебрегать, поскольку подобные системы в первую очередь предназначены для врачей, биологов, архитекторов и т. д. Во многих областях реально существуют добавляемые знания и соответствующие базы правил. (Например, автоматизированные экспертные обучающие системы.)
Для машины. Более простой проверке поддается база знаний, представленная в форме правил, а не в форме процедур. Противоречия или избыточность в действительности легко определяется с помощью синтаксической обработки:
A N BfC и Л А В-> ~1С одновременно невозможны;
из Z) Л £ Л F-^- G следует EAff G с помощью (1подпо- сылки"; .
таким образом, первое правило является лишним.
Может быть также обнаружена семантическая несогласованность:
Л Л В -> С неприемлемо, если по определению и из свойств А и В с необходимостью Л ~]В.
Способность к самообъяснению. Это свойство связано одновременно и с правилами^ и с их структурами внешнего управления. Система легко прослеживает цепочку правил, которую она использовала для получения вывода, так же как и использовавшиеся метаправила.
Однородное представление знания, определяемое установленным форматом, разрешает создавать модели правил, которые позволяют получить ответы на некоторые вопросы и предусмотреть большую часть изменений в случае обнаружения ошибки в базе данных.
Эффективность. Практика доказала гибкость и компетентность таких систем, как MYCIN, PROSPECTOR и R1. Эти системы являются уже не лабораторными игрушками, а высокопроизводительными устройствами. Они оказались достаточно эффективными и выдерживают сравнение с процедурными системами во многих областях, примеры которых приведены, в частности, в работе (Rychener, 1978).
Их структура управления позволяет принимать в расчет многочисленные параметры, характеризующие ситуацию. Причина эффективности продукционных правил заключается в том, что эти правила учитывают конкретные данные в каждом случае.
77 Метазнание
Метазнание, представляет собой любое знание о знании. Оно является фундаментальным понятием для систем, которые не только используют свою базу знаний такой, как она есть, но и умеют на ее основе делать выводы, структурировать ее, абстрагировать, обобщать, а также решать, в каких случаях она может быть полезна. Ввод знаний в систему является задачей не только специалистов в данной области, но и самой системы, которая должна управлять этим процессом. В разд. 7.7.1 рассмотрены элементарные объекты метазнания, а в разд. 7.7.2 — стратегии и типы выводов.'
Метазнание объектов окружающего мира
Решение проблем, охватывающих большие объемы знаний, требует умения обращаться с очень сложными и весьма различными типами данных как по содержанию, так и по взаимосвязи с другими элементами системы. Требуемая информация должна не только присутствовать в программных комментариях и в мыслях разработчика, но и быть доступной самой системе. Таким образом, с каждым элементарным объектом может быть связано смысловое значение—концепт. Например, в системах МЕСНО и MYCIN каждый из концептов содержит следующую информацию: а) описательную часть, которая уточняет характеристики и структуру данных;'
указатель на все известные примеры концепта;
связи с другими концептами;
указатель в иерархии схем на группу концептов того же семейства.
Когда формулируется новое правило, которое содержит слово или группу слов, неизвестных системе, она их анализирует с помощью имеющихся концептов, используя контекст и последовательность слов правила. Более того, если некоторые свойства известны из других примеров того же концепта, то система в состоянии запросить у пользователя уточнения этого свойства для данного случая. При необходимости она также обнаруживает нарушения связи между концептами.
Подобные системы имеют возможность фиксировать все концепты одного и того же иерархического уровня, изменение, внесенное экспертом в один из них, а также оценивать важность изменений, внесенных в базу данных, если в определенную структуру добавляется новый пример.
Кроме того, продукционные правила могут характеризоваться моделями правил (описанными в разд. 2.3). Эти модели создаются и управляются системой и учитывают периодичность использования правил. Они занимаются проверкой соответствия между новым правилом и базой, кроме того, именно они указывают эксперту на главные тенденции множества правил даже в том случае, когда самих правил эксперт не знает. Именно они обогащаются с каждым новым примером по мере роста множества правил. В системе МЕСНО, например, сами формулировки задач связаны с формой метазнания. Система постоянно пытается распознать в формулировке стандартную ситуацию. Когда ей это удается, она дополняет множество фактов всеми физическими гипотезами, справедливыми для данного случая.
Метазнание стратегий
В продукционных системах стратегии также представлены в форме метаправил, поскольку они затрагивают сами правила. Они являются изолированными и доступными для системы. Эвристические законы управления поиском решения используют эти метаправила в качественном и декларативном виде, вместо того чтобы использовать количественные оценки. С применением числовых оценочных функций связан риск ошибки: они плохо читаемы, отражаемый ими частичный порядок приводит к сложным вычислениям, любая модификация приводит к возможности появления ошибки.
Стратегии, заданные в форме метаправил, являются более четкими и определенными. Выводы метаправил указывают на действия, которые необходимо предпринять в рассматриваемой
ситуации. Таким образом они реализуют полезный потенциал, заключенный в множестве правил, и дают двойной эффект:
исключают определенные правила, не подходящие к данной ситуации, и тем самым уменьшают дерево поиска;
осуществляют частичную классификацию других правил, частично упорядочивая ветви дерева поиска.
Конечно же, можно и дальше увеличивать число уровней знания, строя дополнительные этажи над уже имеющимся и увеличивая это сооружение по мере роста интеллектуальности самой системы. При этом мы добиваемся большей общности, так как тот же интерпретатор ;.прлуч.^ет возможность работать в различных областях, а также большей устойчивости, так как более развитые модели не чувствительны к изменениям базы элементарных знаний.
По этой причине система CRVSALIS (Engelmore, 1979) включает три отдельных уровня правил.^ Она предназначена для анализа протеинов, и размеры ее пространства поиска' очень важны с комбинаторной точки зрения. Классический подход в данном случае неприменим. Правила сначала группируются в подмножества (неразобщенные). Каждое подмножество предназначено для определенной обработки и используется при выполнении соответствующих условий. Соответствие между конечными классами и подмножествами правил устанавливается с помощью правил заданий, которые составляют второй уровень знаний. Эти правила определяют, как следует выполнить данное задание нанлучшим образом.
Наконец, третий уровень относится к мета-метаправилам, которые определяют подцели и выражают их в зависимости от правил задания.
В примере, приведенном ниже, показан порядок выполнения системой одного из правил задания, в посылках которого содержится задание ПРОВЕСТИ-МЕЖДУ-ТОЧКАМИ, а также указывается, какому правилу должно быть отдано предпочтение при выполнении задания:
ЕСЛИ два гипотетических элемента протеина а и & уже размещены с коэффициентом правдоподобия д刃я каждого из них не менее 0,4
И ЕСЛИ число остаточных элементов в последовательности ab не более 5•
ТОиспользовать правила, предназначенные для задания
провести-между-точками 、
Такой способ группировки правил обладает преимуществами и недостатками. Преимущество заключается в том, > что
управление осуществляется в самом правиле, каждое правило содержит собственные соображения по применению (см. систему АМ Лената (1977)). Такая же руководящая идея (план) может быть легко обнаружена и в семействе правил. Недостаток заключается в том, что посылки правил могут оказаться очень громоздкими.
Однако существует и альтернативный путь решения этой проблемы, важной с точки зрения эффективности и ясности систем. Он состоит в разрешении все более и более сложных структур посылок в правилах. Эти вопросы затрагиваются при рассмотрении внутреннего представления наборов правил, описанного в разд. 7.5.4.
Работа Виленски (1981) «Метапланирование» посвящена управлению планами действий независимо от области -применения. Он предложил метастратегии для разрешения конфликтов между планами, а также рассматривает рекуррентные и конкурентные планы. Одно и то же знание представлено в декларативной форме в двух различных программах РАМ и PANDORA. Одна из них составляет планы для решения задач, другая должна его понять и составить планы для участвующих в действии объектов.
Заключение
Итак, системы, использующие декларативные базы данных, а также продукционные правила, отношения, прототипы, схемы и семантические сети для представления и использования содержащихся в них знаний, открывают действительно новый подход к программированию, который заключается в возможности передачи от человека к программе наиболее простым образом знаний неупорядоченной структуры в произвольных областях. Взаимодействие с экспертными системами происходит на декларативном языке, который по сути предназначен для выражения знаний. Подобный подход представляется совершенно необходимым в области искусственного интеллекта, и на этой основе уже созданы эффективные системы (разд. 7.2 и 7.3).
В разд. 7.4 и 7.5 показано, что подобный подход имеет два преимущества. Во-первых, полная независимость элементарных фактов знания, представленных в соответствующей форме, и, во-вторых, единый и жесткий синтаксис формы. Эти свойства позволяют хорошо организованной системе иметь общее представление о содержании своего знания, а также анализировать и структурировать его с помощью метаправил, правил или схем.
Крайняя простота представления знаний не ставит ограничений перед программистом или специалистом, скорее наобо-
рот, она требует от нас мыслить наиболее естественным образом. Среди многих преимуществ подобного представления знаний, как мы видели в разд. 7.6 и 7.7, находится и обсуждаемое в современных работах одновременное решение задач и понимание естественного языка.
Кроме того, экспертные системы предоставляют в наше распоряжение специализированные базы знаний: система PROSPECTOR охватывает знания в области геологии, MYCIN используется для обучения в медицине, a PECOS оказывает помощь в программировании.
Наконец, при изучении этих систем становится очевидным, что существенной особенностью' нашего интеллекта является способность управлять большим объемом элементарных составляющих информации. Поэтому одним из предметов исследований в области искусственного интеллекта еще долгое время будут три фундаментальные проблемы, уже встречавшиеся при рассмотрении продукционных систем. Они имеют отношение к примитивным действиям, связанным с обработкой любой информации:
сформулировать ——запомнить — использовать
Сформулировать
Мы постоянно оказываемся в новых ситуациях. Приходящий к нам опыт заключается прежде всего в способности абстрагироваться от этих ситуаций и описать их с помощью общих представлений, которые могут быть элементами обычного языка. Однако во многих областях этого недостаточно, так как обычно имеется много неточностей или делается слишком много ссылок на обстоятельства, не связанные с данной конкретной ситуацией. Каждый специалист постоянно совершенствуется в своей области и вырабатывает собственный жаргон.
В некоторых книгах часто встречаются советы описывать ситуацию и предпринимаемые действия с очень высокой степенью детализации, однако в этом случае трудно достигнуть нужного эффекта обобщения. Становится сложно использовать всю накопленную информацию.
Автоматический поиск концептов, полезных в примитивных ситуациях, безусловно, возможен (как это возможно и для одаренных личностей), однако, с нашей точки зрения, в области искусственного интеллекта в ближайшем будущем этого ожидать не следует.
Запомнить
Запоминание информации технологически ограничено и связано прежде всего с эффективностью используемой информа-
ционной системы. Если для удобства работы требуется, чтобы элементы знания вводились в продукционные "системы независимым образом, как это делается в словарях, то храниться оКн должны в упорядоченном виде. Правила, сгруппированные в древовидные структуры, представляют собой сеть, узлы которой являются моделями, содержащими описание правил.
Кроме того, необходимо, чтобы система умела инвертировать правила, т. е. умела определять, в каких ситуациях данное правило окажется полезным. Инверсия ——непростая операция, связанная с обобщением, и с ее помощью осуществляется узнавание концептов, кратких дескрипторов всех возможных ситуаций в процессе обработки информации. Для того чтобы уменьшить издержки, связанные с инверсией, иногда допускается излишний расход памяти. Ясно, что в интеллектуальных, эффективно работающих системах одна и та же информация может быть представлена в нескольких различных форматах (гл. 9).
Использовать
Прн доступе к информации возникают проблемы распознавания форм, которые использовались на предыдущем этапе для образования древовидных структур, прямых и инверсных элементарных правил. Управление поиском идет с помощью метаправил и в более общем виде с помощью моделей знаний высоких уровней, которые позволяют проводить распознавание в зависимости от стратегии, связанной с контекстом, и задерживать выбор на возможно более долгое время.
Многие экспертные системы, основанные на продукционных правилах, в частности CRYSALIS, ARGOS II, POLITICS, OPS, TANGO, SNARK, уже содержат элементы ответов на поставленные три вопроса. Этому способствует прежде всего четкое разделение между самим знанием и обработкой с помощью итерационной интерпретации, которая позволяет четко разделить и анализировать эти три проблемы.
Таким образом, экспертные системы предлагают качественно новый подход к программированию. Из двух главных управляющих структур ——проверки и цикла ——они оставляют только первую, которая позволяет довольно легко формулировать элементарные факты для интерпретатора, а также повторять циклы выполнения проверок и обработку. Таким образом устраняются два неизбежных недостатка классического программирования: последовательный порядок выполнения операций и приказной характер элементарных инструкций. Вместо инструкций ——неупорядоченные отдельные данные, порядок использования которых заранее нельзя предвидеть.
Но в еще большей степени экспертные системы позволяют обойтись без всех средств произвольных языков программирования. Действительно, пользователь, эксперт по мере потребностей определяют собственные концепты, специальную терминологию, выбирая подходящий для'себя уровень детализации, пригодный для решения поставленных задач.
В отличие от этого и к большому неудобству исследователей в области искусственного интеллекта современные языки программирования являются языками слишком низкого уровня. Простое действие, элементарный факт чаще всего оказываются растворенными в большом числе инструкций, и каждая их модификация оказывается трудоемкой и опасной. Таким образом, основной целью исследователей в области искусственного интеллекта является создание форм представления и интерпретации знаний типа экспертных систем, которые можно назвать языками будущего. Им присущи абсолютная модульность, четкость, полное разделение между данными и управлением, большие возможности по обработке информации, эффективное взаимодействие между человеком и программой, возможность составления программного обеспечения очень больших объемов, имеющего не обязательно алгоритмическую природу.
Для того чтобы подобные системы были полезны и за пределами разработавших их лабораторий, осталось выполнить определенный объем работ. В частности, необходимо решить две проблемы. Во-первых, исследовать формальные законы языков, на которых выражаются правила и метаправила, их синтаксис и семантику, типы логических связей, основные примитивы. Необходимо выполнить работу, аналогичную той, которая уже проделана для классических языков программирования, но с учетом интерпретаторов и современных ЭВМ.
Во-вторых, вывести работы в области искусственного интеллекта за пределы университетских лабораторий, в частности для экспертных систем разработку эффективных интерпретаторов и механизмов вывода, которые должны найти новых пользователей, как это было при разработке компиляторов.
Экспертные системы доказали возможность совершенно нового подхода к развитию информатики. Он заключается в формализации нашего знания с помощью декларативных независимых понятий, в организации четко определенных структур, таких, как продукционные правила, фреймы, скрипты и семантические сети, с помощью которых можно получить изящное решение поставленных задач. Для таких систем характерны простота использования, эффективное представление знаний и
отсутствие трудностей, присущих программированию на классических языках, что позволяет взаимодействовать с такими сил стемами с помощью обычных слов.
Конкретный пример машины вывода экспертной
системы
Ограничимся случаем, когда все факты из базы фактов имеют вид
a R Ь,
где а и & ——две константы (произвольные слова), независимые друг от друга и связанные в базе фактов отношением /?, например иявляется'\ ''принадлежит к", “равно”, “содержит", "сле-
/ Определите поводящие @а/сами правилаI
纟 Выбрать правило “ попытаться
£20 выполните
L_I
Рцс. 7.16. Базовый цикл эксперной системы.
дуетм и т. д., которое определяется экспертом. Другими словами факт aRb соответствует обычному логическому предложению, которому можно присвоить значение "нстмна" или "ложь", например “Анемона является двусемядольным цветком" или “Организм имеет грамположительный тип".
Аналогично каждое правило из базы правил имеет вид триплета (слово, отношение, слово)
A Pi f А %,
в котором посылки pi и следствия qi являются предложениями. Остановимся на препозициональной логике ——логике нулевого уровня, не содержащей переменных. На этом уровне задача состоит в том, чтобы из начальных фактов и данных правил вывести новые факты, выполняя каждое правило из базы правил, посылки которого удовлетворяются. Следствия, полученные из правила, добавляются к базе фактов.
Основным циклом является цикл, приведенный на рис. 7.16.
В данном случае возможны две стратегии:
Движение по цепочке правил вперед. Начинают от известных фактов, данных экспертом, и выполняют каждое пра-
вило, посылки которого удовлетворяются, добавляя полученные факты. Так продолжают до насыщения системы (отсутствия новых выводов).
Движение по цепочке правил назад. Начинают с поиска ответа на вопрос эксперта, предполагая, что число возможных ответов ограниченно. Целью является получение первого из них.
Затем рассматривают все правила, имеющие отношение к этой цели. Если таковых не оказывается, то переходят к следующей цели. В противном случае если в базе фактов все посылки удовлетворены, то цель достигнута, а если нет, то неизвестные посылки регистрируются как новые цели и все повторяется сначала. Таким образом доходят до цели из начальных фактов. Кроме того, система может задать вопрос эксперту, если в этом возникает необходимость в процессе вывода, связанная с отсутствием факта или невозможностью его использования,
Общая процедура является рекурсивной, поскольку проверка факта происходит с помощью проверки правил, которые включают этот факт.
На рис. 7.17 приведена рекурсивная функция ПРОВЕРИТЬ, вызываемая из главной программы в виде:.
Результат = ПРОВЕРИТЬ (&, БФ, БП) где b является искомой целью, БФ ——начальная база фактов, БП ——база правил.
Синтаксис правила имеет вид
(Правило) = ЕСЛИ (посылка) ТО (следствие)
(Посылка) . — (факт)/(факт) (посылка)
(Факт) = (слово)/(слово)
(Следствие) = (посылка)
Функция ПРОВЕРИТЬ отыскивает значение истинности & продвижением по цепочке правил назад. Результат является булевой величиной (^истина0 или иложь"), зависящей от истинности величины Ь, Эта функция вызывает саму себя для проверки совокупности целей.
Функции ПРОВЕРИТЬ и ДОКАЗАТЬ работают с объектам^ трех типов: ПРЕДЛОЖЕНИЕ, ПРЕДЛОЖЕНИЕ-МНОЖЕСТВО и ПРАВИЛО. Каждый объект типа ПРАВИЛО обладает двумя свойствами: ПОСЫЛКИ (г) и СЛЕДСТВИЯ (г), которые принадлежат к типу ПРЕДЛОЖЕНИЕ-МНОЖЕСТВО.
Некоторые предложения отнесены к множеству ТРЕБУЕМЫЕ и могут напрямую запрашиваться экспертом. Функция
ВОПРОС (р) задает вопрос р и возвращает значения "истина" или ^ложь' в зависимости от ответа эксперта. Истинность предложения р можно доказать тремя способами:
Функций ПРОВЕРИТЬ возвращает булево значение
Глобальные константы база правил:множество ПРАВИЛ
требуемыемножество ПРЕДЛОЖЕНИЙ
Данныецель, база фактов: множество ПРЕДЛОЖЕНИЙ
{
Цель рекурсивно выводится из базы фактов (БФ) и базы правил (БП) с возможными вопросами к эксперту.
переменная ok: БУЛЕВА;。也— ложь
ЕСЛИ b 已 БФ ТО。也一истина {b уже установлено}
КОНЕЦ ЕСЛИ{первый случай тривиального успеха}
{Иначе проверяется, можно ли вывести}
ПОВТОРЯТЬ ДЛЯ всех г w БП и b w последовательность (г) ПОКА 0山=Л0Жь
о&=ДОКАЗАТЬ (Посылки (г))
{Вызов функции ДОКАЗАТЬ, которая проверяет, что все посылки истинны. Это второй случай возможного успеха}
КОНЕЦ ПОВТОРЯТЬ '{иначе см. является ли b требуемым}
ЕСЛИ о/г = ложь и если b е требуемый
ТО задать вопрос; ok -«- ответ (Ь)
КОНЕЦ ЕСЛИ {во всех случаях успеха запомнить в БФ}
ЕСЛИ ofe—истина ТО БФ<-БФU {力}
КОНЕЦ ЕСЛИ
Передать (力,ok)
КОНЕЦ ПРОВЕРИТЬ
Функция ДОКАЗАТЬ возарашает булево значение
{Те же глобальные константы)
Данные: В множестство целен 。耳《 истина
ПОВТОРЯТЬ ДЛЯ всех b 三 В н ПОКА о^=истина
ПРОВЕРИТЬ (力)
КОНЕЦ ПОВТОРЯТЬ
{необходимо, чтобы все цели 8 были доказаны} Передать ok
КОНЕЦ ДОКАЗАТЬ
Рис. 7.17. Пример из области логики предложений.
правил (предложение a R Ь здесь выражено словами “на растении имеется цветок” и сокращено до “нветок”).
а)
ЕСЛИ цветок А зерно
ТО явнобрачный
匕)
ЕСЛИ явнобрачный А голосемянный ТО пихта
с)
ЕСЛИ явнобрачный А 1-семядольный ТО моносемядольный
砌
ЕСЛИ явнобрачный А 2-семядольный ТО двусемядольный
е)
ЕСЛИ моносемядольный А ризома
ТО ландыш
力
ЕСЛИ двусемядольный
ТО анемона
g)
ЕСЛИ односемядольный АП ризома
ТО лилия
匕)
ЕСЛИ лист А~] цветок
ТО тайнобрачный
i)
ЕСЛИ тайнобрачный . А~] корень
ТО мох
j)
ЕСЛИ тайнобрачный А корень
ТО папоротник
用
ЕСЛИ ~] листья А растение
ТО таллофиты
/)
ЕСЛИ таллофиты А хлорофилл
ТО водоросль
m)
ЕСЛИ таллофиты АП хлорофилл
ТО гриб
«)
ЕСЛИ [ лист Д~| цветок АП.растение ТО колибацилла
Если начальной базой фактов является: {корневище, цветок, односемядольный, зерно} и цель = гриб, то функция ПРОВЕРИТЬ выведет вопрос: таллофиты? (случай 3, система должна спросить то, что она не может вывести). Если эксперт дает положительный ответ, функция возвращает значение иис- тина".
Если цель = ландыш, функция ПРОВЕРИТЬ вызывает функцию ДОКАЗАТЬ для проверки посылок единственного правила е), которое позволяет сделать этот вывод. К функции ПРОВЕРИТЬ обращаются для проверки первой подцели ——односемядольные, которую можно осуществить, только используя правило с). Снова вступает в действие функция ДОКАЗАТЬ над данными {явнобрачный и 1-семядольный}. Первая цель достигается с помощью правила а), две посылки которого уже присутствуют в базе фактов (первый успех), в которую добавляется понятие явнобрачный. Затем, поскольку и1-семядольныйп известно, добавляется также мо носем я дольный. Углубляя рекурсию, приходим ко второй посылке правила е), которая известна, и система выдает окончательный ответ “иСтнна”.
Отметим, что окончательное определение способа использования дерева возможных предложений происходит с помощью операции ^принадлежит целям,\ Если цель управляется как стек, действует правило 4*сначала в глубину" (см.,- например, версию для микроЭВМ, содержащую около 400 строк на Бейсике, в журнале BYTE, сентябрь 1981 или FARRENY, 1985).
Эффективность функции ПРОВЕРИТЬ можно повысить с помощью преобразования двух параметров ——цели и базы фактов—в глобальные переменные с явным управлением из программы.
И наконец, для того чтобы не повторять бесполезные задания, необходимо различать недостоверные и неизвестные факты. В частности, можно проверять негативные условия в правилах, находя недостоверные факты среди известных. Кроме того, нетрудно на нулевом уровне продвигаться по цепочке правил вперед. Тогда по. мере продвижения по дереву поиска правила выполняются в зависимости от получаемых выводов до насыщения базы фактов (до невозможности получения новых выводов).
Глава 8
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE
■ Дело не в том. какая система является искусственной, какая ——естественной, а в том, поддается ли она программированию.'
Герберт А. Саймон (1977 2.)
ALICE — информационная система, которая работает с языком высокого уровня, позволяющим формулировать задачи, и содержит модуль решения задач, использующий методы искусственного интеллекта.
При разработке системы принимались в расчет следующие два соображения:.
Классическое программирование требует больших затрат. Действительно, для каждой новой задачи программист пишет новую программу. За любое изменение в программе приходится платить слишком дорого: 75 долл, за каждую вновь написанную инструкцию и 4000 долл, з* каждую инструкцию в отлаженной программе (данные министерства обороны США, 1972 г.). Это объясняется двумя причинами:
Плохо поддаются контролю побочные эффекты. В современных процедурных языках любое изменение может иметь непредсказуемые последствия, даже если применяемая методология программирования и предусматривает определенную защиту (структурное программирование, модульное программирование, абстрактные типы данных).
Вносимые в программы изменения могут на самом деле привести к существенным изменениям в структуре данных и в алгоритме решения задачи. Так, в книгах обычно приводятся академические примеры программ, а каждый реальный случай не соответствует этому идеалу и требует перепрограммирования.
Все современные языки программирования являются императивными (т. е. приказными). Это означает, что нужно шаг за шагом сообщать машине, что она должна делать. Но для программиста единственно важными вещами являются формулировка задачи и результат ее решения, а постоянное отслеживание всех промежуточных этапов по существу излишне. Другими словами, наиболее приемлемым был бы такой метод обработки информации, при котором формулировка задачи была полностью отделена от ее решения. В идеальном случае пользователь смог бы ввести свою формулировку задачи, разговаривая с машиной на описательном языке, близком к естественному. После этого ЭВМ в реальном времени получает решение, которое пользователь анализирует и в случае необходимости исправляет первую
формулировку и решает задачу еще раз. Время полного решения уменьшается от нескольких недель (или нескольких месяцев) до нескольких минут. Такой подход заложен при разработке системы ALICE.
В действительности эти соображения диктуют использование описательного (декларативного) языка для формулировки произвольных задач чисто формальным образом и достаточно общей системы решения, способной удовлетворить все пожелания пользователя и учесть все особенности решаемой задачи, связанные с ее формальным определением, объемом выполняемой работы и имеющимися ресурсами. Первое соображение связано с работами по описательным языкам, второе ——с методологией программирования и общего решения задач.
Система ALICE понимает формально заданную задачу и доводит ее до окончательного решения. Кроме того, в разд. 8.9 показано, как в определенных случаях решаются задачи, сформулированные прямо на французском языке.
Замечание. Описание системы ALICE состоит из двух частей. Первая часть излагается в разд. 8.1 и 8.2 и представляет круг задач, решаемых системой, входной язык, используемые методы решения, примеры решения трех задач. Вторая часть изложена в разд. 8.3—8.5 и содержит описание процедур, критериев, используемых представлений, управления перебором и возникающих ограничений, которое носит б*олее технический характер. В разд. 8.8 обсуждаются результаты, а в разд. 8.9 приводятся результаты исследований ввода формулировок задач на французском языке.
Общее описание системы
Человек является специалистом по неспециальному. Конрад Лоренц (1950 г.)
К особенностям данной системы относятся, во-первых, способность воспринимать чисто декларативные формулировки, что делает ненужным использование алгоритмов и инструкций, и, во-вторых, возможность решения довольно общего класса задач, не исключая трудных и требующих больших машинных ресурсов задач. ■
Язык, на котором формулируется задача, должен только ее определить. Его основу составляет язык обычной математики.
Для разработки системы решения можно было выбрать два пути. Первый состоит в жестком переводе исходной формулиров-
ки в специальный алгоритм, предназначенный для решения поставленной задачи, а второй — в интеллектуальной интерпретации формулировки и данных с помощью некоторого общего модуля. Второй путь, в тех случаях когда он возможен, оказывается значительно более эффективным, потому что система, подобно человеку, становится способной постоянно приспосабливаться к конкретной задаче и учитывать ее особенности. В этом случае не создается единственный и заранее выбранный алгоритм, а на каждом шаге обработки используется соответствующая процедура.
При этом достигается удивительный результат. Оказывается, что во многих случаях при решении трудных задач такая об* щая программа является более производительной, чем лучшие специальные программы, доступные в настоящее время. С помощью этой системы уже успешно решено более сотни задач из различных областей (разд. 8.7).
Язык системы ALICE
Название системы ALICE происходит от первых букв ее названия (A Language for Intelligent Combinatorial Exploration).
Общую основу языка составляет словарь теории множеств и классической логики. В нем использованы также многие полезные элементы теории графов, в частности понятия пути и преемника. Использование множеств, функций, декартовых произведений, матриц позволяет описывать объекты в конкретных приложениях. Связи между этими объектами определяются с помощью обычных операторов, таких, как 三,V, 3,今,о, и, или, П,=,峻,—, *, /) Z, модуль.
Таким образом, класс задач, решаемых системой ALICE, может быть выражен в общем виде:
Найти величину %, % 三 X, где X — конечное данное, которое удовлетворяет совокупности ограничений К(х).
Этот класс задач является очень общим. Он включает все классические алгоритмические задачи (бухгалтерский учет, управление, решение алгебраических систем и т. д.), задачи, связанные с операционными исследованиями и оптимизацией (взимание налогов, планирование, контроль -за ходом выполнения заказов и т. д,), а также множество других, меиее классических задач. Единственное ограничение состоит в том, что неизвестный вектор х должен принадлежать конечному множеству X.
Формулировки на языке ALICE
Формулировка задачи состоит из четырех частей':
определение, задаваемое ключевым словом “пусть”,описывает объекты, участвующие в решении задачи, и задает их типы;
с помощью ключевого слова 《найти» задаются цель, которую необходимо достигнуть, и неизвестные величины, значения которых необходимо определить;
с ключевого слова “с” начинается часть ограничений, которые необходимо учесть при решении задачи (здесь полностью уточняются все остальные особенности решаемой задачи, связи, существующие между различными величинами). В этой части может быть задана оптимизация какой-либо функции, например стоимости;
наконец, задаются числовые или формальные данные в соответствии с описаниями, приведенными в первой части, на чем полностью завершается формулировка решаемой задачи.
Пример 1. В многопроцессорной ЭВМ запускается на выполнение одновременно N заданий, длительность выполнения которых с помощью одного процессора известна. Задания могут быть запущены каждое на своем процессоре, но требуется, чтобы вся обработка завершилась не позднее фиксированного момента L. Кроме того, необходимо минимизировать число используемых процессоров и определить оптимальный порядок выполнения заданий.
Этот обычный текст преобразуется в ALICE в следующий:
Определим множество Т заданий, которые перенумеруем от 1 до N. Для каждого задания t из Т найти процессор, на котором задание / должно выполняться; номер этого процессора обозначим через p(f). Нужно, чтобы на множестве заданий ве- личнна.р") была минимальной с учетом заданного предельного времени Z. Другими словами, нужно, чтобы тахр(/) для элемента f из 7 была минимальной со следующим ограничением предельного времени: если длит (f) является длительностью выполнения задания f, то
X длит (/) ^ Л,
где сумма берется по всем заданиям, выполняющимся на данном процессоре. Окончательно формулировка задачи для системы ALICE имеет следующий вид:
ПУСТЬ
КОНСТАНТЫ М Л Число заданий, предельное
время
МНОЖЕСТВО Т = {1, N}КОЭФФИЦИЕНТдлительность НА Т НАЙТИ ФУНКЦИЮ р: TfTСVr, г^Т£ длит (t)^LУТР (f) = Г СMIN МАХ р (/)КОНЕЦМНОЖЕСТВО Т = {1, N}КОЭФФИЦИЕНТдлительность НА Т НАЙТИ ФУНКЦИЮ р: TfTСVr, г^Т£ длит (t)^LУТР (f) = Г СMIN МАХ р (/)КОНЕЦЗадания, перенумерованные от 1 до NN, Л длительность вводятсяЗаранее ясно, что потребуется N процессоров.(для каждого процессора)Задания, перенумерованные от 1 до NN, Л длительность вводятсяЗаранее ясно, что потребуется N процессоров.(для каждого процессора)(Число процессоров должно быть минимизировано)(Число процессоров должно быть минимизировано)
МНОЖЕСТВО Т = {1, N}
КОЭФФИЦИЕНТ
длительность НА Т НАЙТИ ФУНКЦИЮ р: TfT
С
Vr, г^Т
£ длит (t)^L
УТ
Р (f) = Г С
MIN МАХ р (/)
КОНЕЦ
МНОЖЕСТВО Т = {1, N}
КОЭФФИЦИЕНТ
длительность НА Т НАЙТИ ФУНКЦИЮ р: TfT
С
Vr, г^Т
£ длит (t)^L
УТ
Р (f) = Г С
MIN МАХ р (/)
КОНЕЦ
Задания, перенумерованные от 1 до N
N, Л длительность вводятся
Заранее ясно, что потребуется N процессоров.
(для каждого процессора)
Задания, перенумерованные от 1 до N
N, Л длительность вводятся
Заранее ясно, что потребуется N процессоров.
(для каждого процессора)
(Число процессоров должно быть минимизировано)
(Число процессоров должно быть минимизировано)
Это — строгая формулировка проблемы. Мы видели, что ALICE работает с числовыми данными, которые вводятся в четвертой части в том порядке, в котором они были указаны в тексте: сначала N н L, затем вектор длительностей. Система использовалась для обработки ситуаций, в которых число заданий доходило до нескольких сотен (см. разд. 8.7); здесь приводится пример, содержащий только девять заданий, длительности которых составляют соответственно 6, 2, 8, 3, 6, 15, 6, 9 и 13, а значение Л = 18, что даст нам возможность в разд. 8.3 проследить за полным решением задачи системой. Тогда три послед” ние строки формулировки будут такими:
18.. (Значения N и L)
2, 8, 3, 6, 15, 6, 9, 13 (длительности) КОНЕЦ
Отметим, что для различных значений длительностей решения существенно различаются, в частности, если длительность задания 1 изменится с 6 до 7. Мы увидим, что система адаптируется к входным данным, но не опирается на использование какого-то определенного метода для формального решения этой задачи (разд. 8.3).
Пример 2. Существуют программы типа "Численный анализ" для решения линейных или нелинейных задач в области
математического программирования. Например» найти в булевых переменных все решения системы
0 ^^尤1%4 + 3%2尤5 — %1 — 2上3 — %4*5 — 1,
0 《 2修 + 5%з - 2%4 — 3%5 — 2,
0 ^^ 尤 2*4 ~h 尤 1 %42 — 5%].
В разд. 8.3 мы увидим все преимущества неалгоритмических формулировок системы ALICE и ее эффективность при обработке символьных выражений. В данном случае формулировка выглядит просто:
ПУСТЬ
МНОЖЕСТВО / = [1, 5]
МНОЖЕСТВОВ = & 1]
НАЙТИ ФУНКЦИЮх:1 >В
c 0 w元⑴*尤⑷ + 3 *%⑵*%(5)-尤⑴ -2 *尤(3)一
—х(4) * 尤(5) — 1,
0 ^ 2 * X (1) + 5 * X (3) — 2 * X (4) — 3 * X (5) — 2
0《工⑵*尤(4) +尤⑴*尤⑷+ 2- 5*%⑴ КОНЕЦ
Числовых данных здесь нет.
Пример 3. В городе необходимо наилучшим образом расположить центры -аварийных служб (медицинской помощи, пожарной команды и т. д.). Для каждого возможного размещения центра в прилегающем районе определяется задержка, как показано на рис. 8.1. Этими службами должны быть обеспечены все районы. Кроме того, необходимо обеспечить минимальную общую стоимость организации всех центров при известной стоимости каждого из них. (Встречаются также аналогичные задачи без оптимизации.) Через ①,…,?8 обозначены возможные места расположения центров, окружности показывают границы обслуживаемых районов, а гь . .., г3 ——сами районы. Введем также обозначения R = {ri, ..., 「5}. Стоимости Сь ..., С» организации центров на указанных местах обозначим с помощью вектора (3, 7, 5, 8, 10, 4, 6, 9).
В данном случае требуется найти функцию f, которая связывает каждый район по крайней мере с одним центром. Кроме того, нужно обеспечить соответствие между районами и центрами служб, приведенное на рис. 8.1. На языке ALICE это ограничение можно выразить при описании функции f с помощью понятия “преемник”. Например, преемниками района г3 (т. е. возможными отображениями 兀з с помощью ■ функции f) будут
Рис. 8.1. Размещение центров аварийных служб.
?2, ?4, ?б・ Теперь сформулируем задачу, используя указанные обозначения:
ПУСТЬ КОНСТАНТЫ: NR、NE число районов и центров МНОЖЕСТВО R = [l, NR]
Е = [1, NE\
КОЭФФИЦИЕНТ С из £ (стоимости центров) НАЙТИ ФУНКЦИЮ F: R —Е преемник С Vr, г 宙 R
f(r) = e^ Vs, s w R, e= преемник(и), f(s) = e
(если преемником района s является центр е, то этот район также обслуживается центром е)
СMIN£c(e) (минимизация стоимости)
ё三e
КОНЕЦКОНЕЦВг, г 三R f (г) = е
КОНЕЦ
КОНЕЦ
5,83,7,5,8,10,4,6,91,23,4,54,5,65,83,7,5,8,10,4,6,91,23,4,54,5,6(значения NR и NE) (вектор стоимости)
5,8
3,7,5,8,10,4,6,9
1,2
3,4,5
4,5,6
5,8
3,7,5,8,10,4,6,9
1,2
3,4,5
4,5,6
Список преемников
КОНЕЦ
7,8
2,4,6
Таблица 8.1. Словарь языка ALICE
Слово
Значение
Комментарий
Ранг
ПУСТЬ
Определение (часть 1)
Описание данных
2
НАЙТИ
Цель (часть 2)
1
С
Ограничение (часть 3)
1
КОНЕЦ
Конец формулировки
0
CST
константа
Все эти слова соответ- 1
ENS
множество
ствуют определениям,
дан- 1
СОЕ
вектор числовых коэффици-
ным пользователем исходя 〔
ентов
из ранее определенных
ооъ-
СОА
вектор алфавитно-цифровых
ектов
1
коэффициентов
МАТ
матрица
2
FON
функция
2
INJ
инъекция
2
SUJ
сюръекция
2
BIJ
биекция
2
sue
вынужденный преемник
по списку объектов
(см. 0
текст)
PRE
предшественник
там же
0
SYM
симметрия преемников
0
DIS
вынужденное разъединение
1 и / разъединены,
если 0
j今/⑴关/⑺
VAL
стоимость, связанная с каж-
дым образом
0
DMA
f максимальная и мини-
0
〈мальная степень в про-
DMI
1 странстве образов
0
CHE
путь
2
ARB
дерево
0
CIR
схема
0
MIN
минимум
2
MAX
максимум
>■ <,《,
+> —,明 /
в обычном смысле
MOD
модуль
OBJETS
определение множества че-
п
рез его элементы
SUR
связать коэффнциент/мно-
1
жество
PDT
декартово произведение
2
INC
включено в
■ 1
APP
принадлежит
2
от ... к.
определение функции
1
QQS
каким бы ни был
2
EXI
существует
2
Продолжение табл. 8J
Слово
ЗначениеКомментарийРанг
NON UN
IN и, или, SIG
логическое отрицание1
объединение2
пересечение2
今,-4=^в обычном смысле2
сигмато же2
Таблица 82 Синтаксис языка ALICE
{формулировка)
<фраза>
(описание)
= <фраза>*<данные>
=(описание) | (ограничение) | КОНЕЦ
==ПУСТЬ CST <имя константы〉]
ПУСТЬ ENS (определение множества) |
ПУСТЬ <вектор><имя вектора) SUR <имя>[ ПУСТЬ МАТ <имя матрицы>РОТ<нмя> (имя> НАЙТИ <фуикция><имя функции) : <имя> -><имя><опция>*
^определение множества)
= [<имя константы),<нмя константы)] |
OBJET <имя объекта)* 1
UN <имя><имя>1
IN <имя><имя>
〈вектор〉
<функция>
<опция>
<ограиичение>
(логическое выражение)
СОЕ|СОА
=FON|INJ|SUR|BIJ
=SUC|DIS|DMI!DMA|CIR[ARB[SYM|VAL
=С (логическое выражение)
= (бинарный оператор) (логическое выражение) (логическое выражение)|
NON (логическое выражение) |
(алгебраический оператор) (выражение выражение) |
MIN <выражение> |МАХ<выражение> ]
<квантор> АРР<имя> <имя>(логическое выражение)
(бинарный оператор)
<квантор>
(алгебраический оператор) (выражение)
=今 |v>| OU |ЕТ
=QQS|EXI
=<|>| > 1 =^-| = 1 ^=
=<операция><выражеине> (выражение) |
(операция)
<число>
<имя>
\ЧU/ 1 \П1У1 Л/ J
SIG АРР <имя><имя><выражение>
=+| — 1 * 1 /| MOD
=<<цифра»> 1 <число><«цифра»>
=〈《буква》〉|〈нмя〉〈《6уква》〉
Обозначения. Через <х>* обозначена логическая операция объединения величины X с самой собой произвольное число раз. Вертикальной чертой | обозначены альтернативные значения.
Возможны также и другие эквивалентные формулировки. В данном случае были бы пригодны и двузначные переменные, как в примере 2, но формулировка оказалась бы более громоздкой.
Эти задачи решаются достаточно быстро. Их решение системой ALICE описано в разд. 8.3.2.
В языке системы ALICE имеются и другие ключевые слова, "которые облегчают запись классических ограничений. Система “знает” понятия сюръекции, инъекции и биекции. Она ипони- мает'' все обычные логические обозначения, знает, что такое дерево, путь, схема. Целью разработки системы являлось сохранение доступных, максимально понятных формулировок задач, близких к обычному разговорному языку. В табл. 8.1 приведен полный список известных ALICE слов и их значения (ранг слова представляет собой число членов, которыми оно управляет).
Каждое слово, не входящее в этот список, рассматривается как новый объект, описание которого должно содержаться в части определений после слова ПУСТЬ.
В табл. 8.2 приведены синтаксические правила образования предложений языка в форме Бэкуса. Система использует префиксную польскую запись, которая, не нарушая однозначности выражения, позволяет записывать его единой строкой без использования скобок. Мы, однако, в тексте сохраним обычную запись для удобства восприятия.
Модуль решения задачи
Ниже этот модуль описан в общих чертах. Более подробное описание приведено в разд. 8.5.
Система ALICE имитирует поведение человека, приступающего к решению задачи:
Постоянно контролируется общий ход решения задачи: на каждом этапе решается наиболее простая подзадача, насколько это оказывается возможным в процессе решения. Порядок решения определяется на ходу в зависимости от действующих ограничений и числовых значений переменных, а не так, как в классическом программировании, где порядок выполнения инструкций раз и навсегда определен программистом. На каждый момент ALICE выбирает такую степень трудности, с которой она сможет справиться, что очень похоже на действия человека. Мы, например, при решении задачи не используем единый алгоритм, но уточняем метод, решения в зависимости от имеющихся данных и даже изменяем его в процессе решения.
Для различных типов ограничений предусматривается свой подход к решению задачи. Все простые ограничения, т. е. затрагивающие не более двух объектов, находят непосредствен-
ное отражение во внутреннем представлении системы с помощью гиперграфа (разд. 8.5). Другие ограничения обрабатываются в форме, эквивалентной обычной алгебраической записи.
Составляется план решения. В его основе лежит углубленный анализ начальной ситуации, в частности он зависит от оценки трудности задачи, от переменных и ограничений, имеющих важное значение, на основе которых устанавливаются критерии, определяющие решение задачи.
В процессе решения системой предпринимаются три основных действия.
Перенос ограничений
Речь идет о таком использовании доступной системе информации, которое позволяет получить наибольшее количество новых сведений. Анализ выполняется от наиболее простого к наиболее сложному: чем более коротким является выражение для ограничения, тем больше вероятность его использования. Перенос осуществляется с помощью указателя во внутреннем графическом представлении для ограничений с двумя переменными, для других он осуществляется в алгебраической записи. В фазе переноса ограничений система ALICE остается максимально возможное время. Тем не менее для многих задач (все Л^Р-пол- ные задачи, разд. 8.4.4) этого недостаточно для получения результата.
Построение гипотез
Итак, ALICE откладывает перебор насколько это возможно. Если оказывается, что таким образом решить задачу невозможно, ей необходимо попытаться сделать интеллектуальный поиск. Вместо того чтобы заниматься слепым перебором, ALICE определяет наиболее вероятное значение для наиболее важного элемента (разд. 8.5.3). После этого ALICE возвращается к анализу и переносу ограничений. И наконец, при решении определенных задач остается найти наилучшее решение с учетом данной функции стоимости.
Получение и доказательство оптимального решения
Кроме установления критериев, оптимизирующих стоимость каждого этапа выбора, ALICE доступны методы усиления и ослабления ограничений, которые позволяют определять окрестность оптимального значения и определять само это значение, входя еще раз в фазу переноса. .
Перенос ограничений
Эта фаза основана на алгоритме унификации (гл. 3), который позволяет выполнять операции с выражениями так же, как
мы это делаем вручную. Он позволяет также упрощать выражения типа
4&3^ЛОЖЬ,
2х ——3y + x#0f Зл:——Зу*0, а затем х#у.
Специальные процедуры, которые уточнены в разд. 8.5.2, позволяют, кроме того, получить необходимые условия выполнимости. Например, если ALICE среди прочих известны также соотношения
2《尤w5, 0кg《2, 0&2&9,
0 = 2х + у — z — 9,
где х, у и г — целые, то она выводит из них новую информацию
(х = 4 или х = 5) и(Z&3).
Возвращаясь к первому примеру (разд. 8.2), из алгебраического ограничения на величину вектора длительностей
Vr, г еГ £ длит(0<^,
Р(О=г
выполняя суммирование по г, ALICE выводит
£ длит = 68 & р* •
где р* является оптимальной величиной числа процессоров. При Л = 18 получаем р* ^ 4. Для лучшего понимания этой фазы приведем полное решение примера 2 с булевыми переменными, которое осуществляется с помощью переноса. Напомним условие: найти решение системы уравнений, в которой переменные принимают значения 0 или 1. Итак,
0^30^30 W 尤1%4 + 3%2%5 - %1 - 2%3 - %4%5 - 1,
0^3
0^3
0 《 2修 + 5%з - 2%4 一 3%5 — 2、
0 《 X2x4 + x1x4 + 2 - 5X(.
ALICE анализирует ограничения одно за другим в порядке их сложности. Ограничение (2) оценивается как наиболее простое, т. е. способное, дать наибольшее количество полезной информации (разд. 8.5.3). Из него ALICE по формальным правилам выводит новое ограничение
2《2修+ 5%,(2i)
которое приводится к виду
l^Xj + х3, а затем к виду (%! = 1) ИЛИ (х3 — 1).(2ii)
Затем анализируется ограничение (3), которое дает
5尤 1&4; отсюда хх~0.
С учетом ограничения (2口)находим х3 = 1.
Получается система уравнений, эквивалентная исходной:
О &3尤2尤5 —工4尤5 — 3,(liii)
0w3-2打一3工5,(2iii)
0 忘尤2尤4+ 2..(3iii)
Последнее ограничение можно исключить, потому что оно удовлетворяется всегда. Из первого неравенства находим
3 &3“5,(liv)
а также х4х5 + 3^3,(lv)
или, упрощая выражение (liu), получаем (х2 = 1) И (х5 = 1).
Из ограничения (1и) следует (х4 = 0) ИЛИ (х5 = 0), и приходим к окончательному результату хд = 0.
С уже имеющимися результатами это дает единственное решение: (0110 1).
Перебор вариантов
В обычных программах получить решение можно только с помощью полного перебора, при этом стоимость решения резко возрастает при увеличении числа вариантов. В более совершенных программах, использующих методы возврата управления или неявного перебора, дерево поиска определяется раз и навсегда и не предпринимается никаких попыток для устранения бесполезных выборов в процессе решения, что на практике приводит к большим потерям. Действительно, если необходимо м раз сделать выбор и при этом пространство поиска каждый раз делить на два, то время вычислений достигает порядка 2".
В системе ALICE используется другая процедура поиска. Для того чтобы- избежать экспоненциального увеличения времени вычислений, выбор варианта осуществляется с учетом контекста, благодаря чему становится доступным большое количество полезной информации и оптимизируется процесс дальнейшего решения задачи, а кроме того, максимально уменьшается полное число этапов выбора. Это возможно потому, что как только сделан выбор, система возвращается к фазе переноса ограничений. Более того, ход решения задачи постоянно контролируется с помощью общего плана.
Различные типы и критерии выбора
Оригинальность системы ALICE заключается в постоянном самопрограммировании. Схема поиска решения не является
заранее заданной, система на каждом шаге сама выбирает наилучший путь. Но при этом ей приходится решать два вопроса:
Какого типа выбор должен быть сделан?
Какие критерии можно использовать, осуществляя выбор?
Выбор. Выбор соответствует временному присоединению ограничения. При этом интуитивно ясно, что пространство по- нска должно быть распределено наиболее оправданным образом.
Для этого можно использовать классический способ, которой состоит в присвоении переменной произвольного значения.
Рис. 82 Результат выбора в пространстве поиска.
В системе ALICE он применяется только при последнем проходе, так как его недостатком является рассмотрение слишком малой части пространства. Система отдает предпочтение менее жесткому выбору, состоящему, например, в задании границ изменения переменной или в задании ее четности (рис. 8.2).
Другой способ, принятый в системе ALICE, заключается в выполнении вывода в обратном направлении, когда в качестве цели выступает множество возможных предшественников. При этом система ограничивает затраты своих ресурсов, оставляя их в разумных пределах. Наконец, система оказывает предпочтение разъединительным ограничениям типа《из двух элементов один или А, или В》,которые для нее наиболее понятны.
Критерии, ALICE продвигается в решении задачи, постоянно руководствуясь главной стратегией: делай то, что наиболее информативно,
В ходе решения задачи эта стратегия реализуется с помощью критериев: так же как наиболее эффективными являются ограничения, содержащие одну или две переменные, так и наиболее информативным является выбор в том случае, если переменная может принимать только небольшое число значений. Всякие элементы, ограничения или переменные, которые выделяются из общей массы, привлекают к себе внимание системы, и она их анализирует с помощью переноса или выбора в зависимости от
обстоятельств. Целая группа критериев постоянно участвует в анализе каждой из величин, связанных с решением задачи, но на конкретном этапе выделить нужную величину можно только с помощью контекста, численных данных и текущего состояния.
Приведем краткие формулировки некоторых критериев:
Число ограничений, в которых участвует одна и та же^ переменная.
Сложность ограничений.
Число значений, еще возможных для переменной,
Число множеств, отображения, которых должны быть разъединены.
Значения коэффициентов.
Значения второго члена.
Границы изменения переменной.
Различие между локальными оптимальными затратами и вторичными затратами.
Число возможных предшественников.
Все эти критерии просты и естественны. Идея их использования состоит в том, что они присутствуют все вместе, а на каждом шаге применяется только наиболее значимый. Но критерий, который был вполне приемлем вначале, может впоследствии утратить свое значение, поэтому в системе ALICE предусмотрена оценка их полезности и замена одного на другой в случае необходимости. Это происходит всякий раз, когда решение достигнуто и нужно перейти к новой цели или когда оценка, на которой основана эвристика, потеряла значение.
Первый зтсщ: доступноерешениеПервый зтсщ: доступноерешениеВторой smart: хорошееВторой smart: хорошееВ разд. 8.6 показано преимущество системы над жестким классическим программированием на примере анализа трудной проблемы из области исследования возмущений.
Первый зтсщ: доступноерешение
Первый зтсщ: доступноерешение
Второй smart: хорошее
Второй smart: хорошее
Третий ЗЕст; доказа.-тельотво оптима〃&-хостиТретий ЗЕст; доказа.-тельотво оптима〃&-хостиОбщий план решения (рис. 8.3)
Третий ЗЕст; доказа.-тельотво оптима〃&-хости
Третий ЗЕст; доказа.-тельотво оптима〃&-хости
Прежде чем приступить к решению задачи, система ALICE предпринимает ее полный анализ. Сна
чала она записывает задачу во вну- рис. 8.3. Общий план решения треннем представлении. При этом для системы ALICE, ограничения представляются в наиболее удобной для системы форме. Предпочтение отдается графической, а не обычной алгебраической форме. ALICE проверяет ограничения на непротиворечивость и оценивает трудность решения задачи, а также проверяет некоторые стандартные значения для того, чтобы сразу найти очевидные решения.
Определяются подходящие для данного случая критерии. В максимальном объеме выполняется перенос информации, и, если это не приводит к нахождению решения, система переходит в фазу выбора с последующим возвратом к переносу информации. Если задача не допускает оптимизации функции стоимости, поиск прекращается после нахождения первого решения (или после нахождения всех решений по требованию пользователя). В противном случае ALICE изменяет порядок использования критериев для минимизации этой функции. Система в данном случае выступает в роли пессимиста и ставит перед собой цель уменьшения стоимости в зависимости от труд- hqcth задачи и оценки числа решений в рабочем пространстве. Наконец, система показывает оптимальность решения с помощью одного из следующих трех аргументов:
Она нашла нижнюю границу стоимости и умеет находить решение, стоимость которого в точности равна этой границе (см. пример I).
Она показывает, что если к исходной задаче добавить ограничение (при этом полная стоимость ниже наилучшего известного значения), то не существует никакого решения, т. е. найденное решение является оптимальным (см. пример 1 и разд. 8.6.2).
Для получения оптимального значения она полностью анализирует пространство поиска. Система делает удачный выбор, дерево поиска часто остается разумным, а иногда возможно и его неявное, но полное изучение (см. ниже пример 3).
Решение примеров
Напомним, что работа системы ALICE подробно описана в разд. 8.5.
Пример 1. План решения: 1) анализ трудности задачи; 2) поиск хорошего решения; 3) доказательство его оптимальности.
Критерии, подходящие для данного случая; длительность выполнения заданий; доступное место в процессоре; справедливое распределение заданий по процессорам.
Этап 1. Как только задача выражена во внутреннем представлении, становится очевидным тривиальное решение ——каждое задание выполняется на отдельном процессоре. В этом случае p(i) = i, стоимость решения равна 9. Задача оценивается как легкая, требующая небольших ресурсов.
Этап 2. Сейчас ALICE пытается найти наиболее экономичное решение. Задание с наибольшей длительностью она размещает на уже занятом процессоре с тем расчетом, чтобы не превысить
общий лимит времени. С учетом длительностей выполнения заданий:
12345 678 9
6 2 8 3 6 15 6 9 13
и с L = 18 это дает
/^6) = 1, р(9) = 2, р (8) = 3,
Р (3) = 3, р(1)==4, /45) = 4,
/^7) = 4, р⑷=1, р ⑵=2.
Таким образом, полная стоимость составляет 4 процессора.
Этап 3. ALICE вычисляет нижнюю границу оптимального значения, суммируя ограничения на предельное время. Система знает, что оптимальная стоимость р* удовлетворяет условию
18ХР*》 X длительностей = 68.
Отсюда следует, что р* А 4.
Решение задачи на этом закончено.
15313т29I8■ 6 I6615313т29I8■ 6 I66ЗаданияЗаданияРис. 8.4. Оптимизация числа процессоров.Рис. 8.4. Оптимизация числа процессоров.7Г7Г"р叫ессорь〔"р叫ессорь〔
15
3
13
т
2
9
I
8
■ 6 I
6
6
15
3
13
т
2
9
I
8
■ 6 I
6
6
Задания
Задания
Рис. 8.4. Оптимизация числа процессоров.
Рис. 8.4. Оптимизация числа процессоров.
7Г
7Г
"р叫ессорь〔
"р叫ессорь〔
Замечание. Для этого примера выбраны благоприятные данные. Однако если одно из значений длительности изменить с 6 до 7, то ход решения будет сильно отличаться от приведенного, как это видно из рис. 8.4, и ясно из структуры системы. Действительно, хотя ALICE и в этом случае находит то же оптимальное значение, равное 4, но она не сможет разместить второе задание длительностью 6 без привлечения пятого процессора на этапе 2. Но на этапе 3 устанавливается достаточность четырех процессоров. Система показывает, что это невозможно (третий случай доказательства оптимальности), осуществляя единственный значимый выбор ——перемещая задание длительностью 8 с третьего процессора на четвертый. И снова задание длительностью 6 нигде не удается разместить. Отсюда следует, что на этот раз оптимальное значение получается равным 5.
Пример 2. Он был полностью решен в разд. 8.3.1. Наглядна польза рассмотрения различных наборов критериев: бессмыс-
ленно оптимизировать слишком рано, когда еще нет ни одного решения или имеется только одно решение! ALICE будет искать наиболее информативные ограничения, даже если для этого придется преодолеть значительные трудности- программного характера. Формальные преобразования выражений позволяют избежать использования обычных численных методов, последовательных и слепых (симплексного метода, градиентных методов).
Рис. 8.5. Локализация (внутреннее представление): район г5 не может быть обслужен с помощью е2, е4 или еб.
Пример 3. Его формулировка в действительности целиком взята из графического представления в системе ALICE, которое приведено на рис. 8.5.
На первом этапе находим очевидное решение: для размещения каждого центра аварийной службы берется первая попавшаяся подходящая точка (первый преемник). Допустим, что 〃1) = 1, f⑵=3J(3} = 4, f(4) = 7, /(5) = 2.'
Тогда полная стоимость Z0 = 3 + 5 + 8斗 6 + 7 = 29.
На втором этапе в качестве критерия берется минимальная стоимость для области, которая имеет наименьшее число преемников. В этом случае ALICE полагает f(l) = 1, f(4) = 7, затем f (2) = 3 и f (3) = 6, а также f (5) = 6 с полной стоимостью, которая уменьшается до 3 + 6+5 + 4=18.
На третьем этапе определяется нижняя граница стоимости, исходя из того, что каждый район должен быть обслужен, а наиболее подходящим условием для этого является минимальная стоимость, определяемая их преемниками. ALICE рассматривает сначала наиболее стесненные районы (т. е. с наименьшим числом преемников): таким образом, район г4 стоит по крайней мере 6, rl по крайней мере 3, г2 по крайней мере 4 и гЗ стоит 4. Тогда оптимальная величина Z* должна удовлетворять условию
■ Z*> 6 + 3 + 4 + 4 или Z*>17.
「4) (rl) (г5)(г2)
Кроме того, из этих минимальных стоимостей можно всякий раз вычитать начальную стоимость без изменения решения. Далее будем рассматривать работу ALICE с новыми уменьшенными стоимостями: (0, 0, 1, 0, 6, 0, 0, 3).
Этап 3. Остаточная стоимость размещения центра 5 недопустима из-за того, что она больше разности zO— 17, то же можно сказать о центре 8. Отметим, что даже в тех случаях, когда в оптимизации нет необходимости, ALICE дает относительное расстояние до оптимума.
На этом этапе автоматизации главным критерием становится следующий: если решение с наиболее высокой стоимостью не принимается, брать любую дугу, которая эту стоимость уменьшает.
В данном случае выбор ,(4) = 7 является вынужденным. Если бы f(2) отличалось от 4, то полная стоимость с необходимостью увеличилась бы иа 1. Если же f(2) =4, то области 3 и 5 также охватываются обслуживанием. И наконец, f (1) = 1 с нулевой приведенной стоимостью, так что расположение мест 1, 4 и 7 является оптимальным со стоимостью 17.
Результаты
На сегодняшний день более сотни задач из самых различных областей были решены с помощью системы ALICE. Эти задачи связаны с такими разделами дискретной математики, как оптимальная связь, диофантовы уравнения, пути Эйлера и Гамильтона, а также с практическими приложениями, такими, как распределение тока высокого напряжения по сетям французской государственной компании “Злектркснтз де Франсп (EDF), планирование, организация снабжения, составление расписаний, помощь в архитектурных разработках с элементами оптимизации, оптимальное обнаружение аварий, использование накопителей на магнитных дисках в операционных системах, коммерческая деятельность, организация обслуживания. Решение последней задачи весьма трудоемко, требует больших вычислительных ресурсов, и на этом примере можно оценить эффективность системы ALICE.
Кроме того, с помощью этой системы было решено около пятидесяти головоломок и логических задач (магические квадраты и кубы, задача с 8 ферзями, головоломки Льюиса Кэрролла, Сэма Лойда и Мартина Гарднера), что свидетельствует о большой гибкости программы и мощности языка. Список решенных задач с комментариями и решениями можно найти в разд. 8.7.
Отметим небольшое число выборов и малое время вычислений. После испытаний и экспериментов на этой системе в
реальных условиях в течение нескольких лет я смог убедиться в ее устойчивости и высоких эксплуатационных качествах. Основное ее преимущество состоит, несомненно, в ее практической пользе. Время, которое она тратит от получения формулировки задачи до выдачи решения, составляет от нескольких секунд до нескольких минут. Класс задач, для которых применим такой подход, огромен;
Другое преимущество системы лежит в области теории. Оно состоит в совершенно новом и открытом направлении программирования. Показана возможность создания систем, для которых достаточно дать только формулировку задачи, а ход решения полностью определяется самой программой, которая выбирает наиболее эффективный и подходящий путь.
Работа системы ALICE
Нам осталось рассмотреть следующее: внутреннее представление задач, обработку алгебраических ограничений, процедуры выбора.
Представление задач
Обычно программа разрабатывается для решения одного типа задач и используется одно представление. В данном случае необходимо уметь представлять произвольные задачи с конечными множествами и произвольными .ограничениями. В идеальном случае, как в примере 3, все формулировки надо выражать в компактной форме, предусматривающей предварительную компиляцию, хотя для выражений типа
Vi, УЕ, £ a (f, /) • % (/) > b (/)
не существует другого представления, кроме .приведенного классического алгебраического. Для системы ALICE наиболее подходящим является представление в форме ^изображений** (графов и гиперграфов) во всех случаях, когда это допустимо, т. е. при наличии простых ограничений, связывающих не более двух переменных и при сохранении всех остальных в алгебраической форме.
Графическое представление
На рис. 8.6а приведено общее представление организации информации. Для этого используется в основном двухчастичный граф: все точки слева, принадлежащие множеству D, являются начальными объектами, значения которых должны быть най-
Меновое мнзюестба % 4"….,djМеновое мнзюестба % 4"….,djМножества IМножества IЗвЗв\Коэ(р<рицие/еmei 〃a г\Коэ(р<рицие/еmei 〃a гКоневод мкоаюесЕ60 At" = 7•…日Коневод мкоаюесЕ60 At" = 7•…日utecmoeNHU-i ков j /utecmoeNHU-i ков j /Указатель на множество оара- гшуеки认ку да S^odum. £Указатель на множество оара- гшуеки认ку да S^odum. £,^»г?_,^»г?_必*e"*s “、必*e"*s “、AAИзoSpaжeнuяi *с&"заккме лгл не&*〃н соот- I ношениемИзoSpaжeнuяi *с&"заккме лгл не&*〃н соот- I ношениемDdDdЧисловое & чение вер- cuaffbi /Числовое & чение вер- cuaffbi /必打70"0! числа пред- \шествек~ “nd У 6 решении必打70"0! числа пред- \шествек~ “nd У 6 решении
Меновое мнзюестба % 4"….,dj
Меновое мнзюестба % 4"….,dj
Множества I
Множества I
Зв
Зв
\Коэ(р<рицие/еmei 〃a г
\Коэ(р<рицие/еmei 〃a г
Коневод мкоаюесЕ60 At
" = 7•…日
Коневод мкоаюесЕ60 At
" = 7•…日
utecmoeNHU-i ков j /
utecmoeNHU-i ков j /
Указатель на множество оара- гшуеки认ку да S^odum. £
Указатель на множество оара- гшуеки认ку да S^odum. £
,^»г?_
,^»г?_
必*e"*s “、
必*e"*s “、
A
A
ИзoSpaжeнuяi *с&"заккме лгл не&*〃н соот- I ношением
ИзoSpaжeнuяi *с&"заккме лгл не&*〃н соот- I ношением
Dd
Dd
Числовое & чение вер- cuaffbi /
Числовое & чение вер- cuaffbi /
必打70"0
! числа пред- \шествек~ “nd У 6 решении
必打70"0
! числа пред- \шествек~ “nd У 6 решении
Рис. 8.6а. Схема двухчастичного графа внутреннего представления задачи.
денм. Точки справа, принадлежащие множеству /, являются возможными изображениями этих объектов.
Если в формулировке задачи нет других указаний, возможно существование всех дуг, исходящих из каждой точки и, и е 三 Q н приходящих в каждую точку и, ow/. С дугами и точками связана определенная информация ——значения коэффициентов и других величин. В процессе решения задачи некоторые значения могут оказаться запрещенными. Постоянно доступной является важная информация: возможные предельные значения переменных, число преемников для всех и из D, число предшественников для всех и из /.
Когда искомые функции принадлежат особому тапу ——инъекции или сюръекции, опции Ивыиужденная степень” минимального или максимального числа точек изображения, — то такая информация выражается локально: два вектора, связанные с точками множества /, указывают на минимальное (соответственно максимальное) число разрешенных предшественников, Например^ для биекции они оба принимают* значение 1.
Что касается гиперграфа, то он строится на вершинах множества D: если он существует, то выражает разъединение, или, что то же самое, ограничения, которые требуют, чтобы одно семейство точек представляло собой совершенно различные изображения (задачи перестановок, окрашивания, планирования). Эти семейства (или гиперграни: они связаны с произвольным числом вершин) запоминаются. В завершение интерпретации формулировки с помощью специальной процедуры отыскивается наиболее экономичное множество разъединений, для того чтобы охватить множество D максимальными семействами. Такого рода uсобирание крошек" служит, в частности, для того, чтобы затем быстрее выполнять выводы при наличии разъединяющих ограничений.
Формальное представление
Другие ограничения обрабатывают с помощью алгоритма унификации. Выражения могут быть, в частности, нормализованы с помощью правил перезаписи, приведенных в табл. 8.3. Начальные связи всегда выражаются с помощью символов,, W или =, а второй член всегда равен 0.
С помощью табл. 8.3 можно осуществить некоторые типы унификаций второго порядка (над операторами). Например, символ OS1 в действительности означает +, X, / или модуль; OS2 означает = или,; OS3 означает =,,или Ф; OS4 означает = или ~> (перезапись самого себя); fff означает произвольную функцию.
Предусмотрены фильтры для уменьшения числа попыток унификации. С каждым выражением связан характеристический вектор, учитывающий головной оператор, наличие числовой константы в первом члене, частоту появления каждой переменной. В зависимости от этого вектора выбираются соответствующие правила. Наличие кода CSPi указывает, что при унификации вызывается процедура численных вычислений.
Передача информации между двумя представлениями
Все ограничения, содержащие единственную переменную, исключаются из пакета алгебраических ограничений и запоминаются в графе. Таким образом, соотношения /⑴=3, f ⑵,4 и 〃3}戸2 означают соответственно назначение, исключение дуги, перемещение указателя в графе.
В графе представляются также линейные соотношения между переменными типа f (4) = f (5) + 6, неравенства типа f(6) W (7), разъединения типа f(2) =й=〃4).
■ Таким образом, чем дальше продвигается решение задачи, тем большее число ограничений упрощается и большим стано-
X— <- X 东 I — * У A * I о<-о — 月h Л— <-(月 + »)— /+米睢(夕+ Н)《-伍+学*军?)+ X衆口
份 + * * ([ _ 力 <-(月 + (* * 力)+ *_ 犷卡* * (I + J)《(月+ (* *用 + * 月 +**%*-(月 + *) * 父
2/(月 * ») <-(2/月)东 % 月/»—(乃/x)— 月(月+»
3 + 月)+*<-2 + (月 + ») ”S0 O - OS0 *一
Ih #小0 氏< > ЧЖОЕ <-gJ tS0 P
EHHLJH «- J 卡S0 2
+ I— = > 0《(X = >0)一 Q = ] »《(万=»j [_ (万 L) иеи (х L )《① и х) L 他 L ) И (X L ) <- 他 0!Т0 X)L
x 匚 *- x -j=> q*oirX X Y=A ВНИ丄2Hx 匚 *- x -j=> q*oirX X Y=A ВНИ丄2H4|_xE《(〃xa)L
x 匚 *- x -j=> q*oir
X X Y=A ВНИ丄2H
x 匚 *- x -j=> q*oir
X X Y=A ВНИ丄2H
гнихэи у x 勺 q*oir * 《* ИНИ1ЭИ 父热=ОJ = О
^*г^+ I〉—石so о«-(»*%)—) + р zso о 万一十 * + з — zso о «-月+ * — +〉zso о * + з—%S0 о j 亠+〉%so о
(Z * 份)** -(2* 份)* X
份*-—*X
份*
^*J-}-X*P<-(^ + t)*J
X—
0* 0
拿8 Dhnrppj
Продолжение табл. 8.3
(c\^fffc2)->(fff c2f cl)
(cl -> c2 + fff x) f (fff x f 七1 Hc2) (x->x) истина
cl 0S1 c2,CSP 1 cl
О OS3 cl > CSP 2 cl
О 0S3 cl +c2*fffx^CSP 3 0s3 cl c2 * fff x о = -fff x + ggg у -^ CSP 4 = fff ggg X у coa x 0S3 c > CSP 5 0S3 c coa x fff x 0S3 c->CSP 6 0s3 c fffx coe x 03 c->CSP 7 0s3 с coe x mat cl x 0s3 c2 -> CSP 8 0S3 匕2 mat cl x mat x cl 0s3 c2 -> CSP 9 0s3 c2 mat xcl 0 « cl + c2 * % r CSP 10 cl c2 * x ЕУ EQ,CSP 11 У EQ Viw EQ,CSP 12 I e£Q my 啟 > CSP 13 У EQ
Vz e SUC / Q,CSP 14 i SUC / Q Vi w PRE / Q,CSP 15 i PRE / Q
вится их число, непосредственно представленное в графе. В конце решения вся информация содержится только в графе.
В процессе каждой модификации графа специальные процедуры выполняют выводы, связанные с контекстом:
при назначении f(〃) = v для всех объектов; находящихся в разъединении с 〃,запрещено изображение v. Если достигнута максимальная степень и, то все предшественники запрещены;
при запрещении дуги производится проверка оставшихся возможных изображений. Если осталось только одно из них, выполняется соответствующее назначение. То же происходит, если одна из вершин множества / достигает минимальной степени;
8.5.2. Обработка алгебраических ограничений
Общая процедура анализа ограничений
Эта процедура применяется ко всем ограничениям вида ;
^-^>0 или ТрП(С)
в которых все члены со знаком + сгруппированы в Тр, а остальные—В Тп.
Когда Тр или Тп содержит не более одного члена, обработка ограничений происходит специальным образом, описание которого приведено ниже. В общем случае обработка ограничений
ЕСЛИ Д > В
ТО
НАЧАЛО (Пересечение пусто)
ЕСЛИ А—Р И ЕСЛИ оператором является В ТО (С) тривиально выполняется. Исключить (С). ИНАЧЕ (С) не может быть удовлетворено. НЕУДАЧА. КОНЕЦ
ЕСЛИ А = В
ТО
НАЧАЛО (Пересечение уменьшено на одну точку)
ЕСЛИ А = Р И ЕСЛИ оператором является ТО (С) является истиной. Исключить (С).
ИНАЧЕ добавить два новых ограничения: ТР=А и ТП=А КОНЕЦ
ЕСЛИ 4 V 8
ТО
НАЧАЛО (Общий случай)
ЕСЛИ 户V& ТО добавить: ТР^А
ИНАЧЕ ЕСЛИ оператором является = ТО добавить: ТП^А ЕСЛИ РР V NN ТО дббавить: ТП^В
ИНАЧЕ ЕСЛИ оператором является = ТО добавить:
КОНЕЦ
Рис. 8.66. Алгоритм общего анализа.
происходит в зависимости от информации, содержащейся в графе, для того чтобы получить новые ограничения, обязательно удовлетворяющиеся, как и исходное.
По структуре эти ограничения оказываются более простыми, а содержащуюся в них информацию можно непосредственно использовать. Основная информация связана с интервалами из- ^менений двух вершин Тр и Тп. Для выполнения ограничения (С) необходимо, чтобы оба интервала имели относительное расположение в соответствии с основным соотношением (С).
Установлено стандартом, что ALICE всегда использует положительные переменные. Тогда процедура анализа легко записывается с помощью обозначений этих интервалов, как и их пересечений. Обозначим эти интервалы через [Р, РР] для Тр и
[М NN\ для Гл, а также Л = sup (Р, W) и В = inf(PP, NN)- и [А, В] = [Р, РР] Л [М W].■
Тогда алгоритм общего анализа принимает вид, приведенный на рис. 8.66.
Специальные случаи
1") В первом случае член Тр или Тп является нулевым, при этом очевидно, что соотношение (С) является истиной или ложью. Если одна из этих сумм содержит только один член, то процедура упрощается и порождает столько ограничений, сколько членов содержится в другой сумме. Если Тп содержит один член, то ALICE записывает для каждого f из Тр новое ограничение:
/ ? NN — £ тах^.
Пример. Из ограничения
2%]+ %2 — 9》О
при 尤1至[2, 5] и х2 [0, 2] следует
2Х[》9 — 2 и %?》9 — 10,
т. е. Xi ^ 4 и ничего нового для %2・
СЛучай диофантовых уравнений вида ах + by = с обрабатывается отдельно с помощью классической процедуры конгруэнции. В данном случае особенно полезны значения, которые отмечены в графе как запрещенные. Во всех ограничениях на равенство отыскиваются общие целые коэффициенты и здесь тоже приходим к уравнениям конгруэнции.
Пример. Ограничение
15х + 18y — 4z — 6 = 0
приводит к 尤=0 (mod 2) и 之 三 0 (mod 3), что сразу отражается в графе исключением дуг, которые не удовлетворяют этим соотношениям.
Равенства позволяют исключить переменные. Тем не менее это исключение предпринимается только в линейном случае и когда каждая переменная появляется не менее двух раз в совокупности ограничений (в противном случае подобные подстановки не приводят к получению дополнительной информации).
Пример. Из системы
J х + у = 2
I % + 2y + 3z》3
приходим К 尤 52 ——у
и, следовательно, У + За》1.
Неявные ограничения, в которых неизвестно точное имя объекта. Например,
£ с (u) b.(1)
Мы уже видели, что подобные ограничения могут накапливаться и приводить к возникновению общих необходимых условий, которые ALICE использует еще и как проверку на исключение. Вообще говоря, каждое ограничение такого типа, которое накладывает условие на множество W объектов ⑵,обладающих свойством Q(w), анализируется при каждой модификации назначений в W. Одно из таких ограничений записывается в виде
2 e (5)《仇
w: Q (w)
где запись ay: Q (叫 обозначает множество объектов w, которые удовлетворяют свойству Q. Если на данный момент существует такой объект 酬仇 для которого известно, что
с (g) + Z с (з) > ь,
w: Q(w)
то Wo не удовлетворяет свойству Q.
Пример. В предыдущем случае в процессе каждого назначения f(u0) = ио неравенство (1) проверяется для значения и。. Стоимость k объектов, для которых и。является изображением, подсчитывается следующим образом:
А — ^^* с (а).
f(w)=y0
Для каждого 〃卜 удовлетворяющего условию c(〃i) >匕—k, свойство f(〃i)=u()не может 蜜ть выполнено. Соответствующая дуга исключается из графа.
Порядок обработки ограничений
Множество ограничений в системе ALICE является динамическим с двойным заголовком. На первом месте, как мы уже видели, постоянно находятся ограничения, связанные с добавлением или отсечением, переходами из одного представления в другое. Этим система отличается от классических программ в области операционных исследований или численного программирования. Во вторую очередь в данный момент времени система обрабатывает ограничение, которое она считает наиболее интересным, в соответствии с процедурой, описанной ниже.
Прежде всего отметим, что приоритет отдается графу. Создается записная книжка задания, и до тех пор, пока она не исчерпана, единственной выполняющейся работой являются процедуры вывода на графе. Когда управление передается алгебраической обработке, исследуются ограничения> получившие наибольшее количество информации со времени последнего анализа. В частности, приоритетными являются такие, у которых по крайней мере одна из неизвестных получила значение. Если
Рис. 8.7. Функция Грунди.
таковые не имеются, вступает в игру число исключенных значений с помощью графа.
Для определения порядка работы с этими ограничениями ALICE распределяет их по трудности. Чем с большим трудом поддается удовлетворению какое-либо ограничение, тем более стеснительным оно является и тем большую информацию из него можно получить.
Трудность * d(C) любого алгебраического ограничения С вида Тр ——Гл ^ 0 можно представить в виде эмпирической формулы .
d(C) = max(0, b)/max(l, S — &),
где b ——постоянный член Тп и S ——сумма коэффициентов положительных членов, поделенных на степени членов. Чем больше b и меньше S, тем легче найти набор значений для неизвестных, удовлетворяющий ограничению (С).
Система ALICE использует также тот факт, что каждая переменная из Тп несет информацию о переменной из Тр, а именно верхняя граница значений переменной из Тп ограничивает верхнюю границу значений переменной из Тр, и наоборот.
На рис. 8.7 приведена схема, дающая практическое представление о функции Грунди. Последняя отражает логический порядок, в котором информация об этих граничных значениях может изменяться допустимым образом.
Сначала рассматриваются1 нижние границы, - затем верхние. Сначала изучаются ограничения в значениях переменных, от которых не ожидается получить никакой дополнительной инфор-
(Cl) (C2) (C3)(Cl) (C2) (C3)Рис. 8.8. Общая схема управления системы ALICE.Рис. 8.8. Общая схема управления системы ALICE.
(Cl) (C2) (C3)
(Cl) (C2) (C3)
Рис. 8.8. Общая схема управления системы ALICE.
Рис. 8.8. Общая схема управления системы ALICE.
мации. Затем новые вычисленные границы переносятся на те переменные, которые зависят только от уже известных.
Покажем это для случая линейных ограничений. Предположим, что в системе в числе прочих рассматриваются три следующих ограничения:
f(l) + f(2)-f(3)-/(4)-3>0, f(l)-f(2)-l>0, f(3)-〃4)-2》0.
На рисунке стрелками указаны зависимости между нижними и верхними границами для различных значений неизвестных, ко-
торые соответствуют дугам, соединяющим вершины f(i) и f(/), принадлежащие члену ТР в том же ограничении (С).
Допустим, известно, что нижняя граница f(3) несет информацию о нижних границах f⑵ и f(l). Одна из вершин — f (4)—ничего не получает от вершин f(3), f (2) и 〃1); она не имеет предшественников. В этом случае ALICE обрабатывает сначала наиболее простое ограничение, в котором в части Тп присутствует f (4), т. е. ограничение (СЗ).
Предположим, что реальная нижняя граница f(4) равна 5. Тогда из ограничения (СЗ) следует, что f(3)》7. Таким образом, следующим обрабатывается ограничение (С1), так как его члены больше не содержат неизученных предшественников. Из него следует
f⑴+ f⑵》3 + 5 + 7.
Предположим также, что из графа следует f(l)《8. Тогда f ⑵ >7. Таким образом, все ограничения учтены в правильном порядке и с получением максимальной информации. Из последнего оставшегося ограничения (С2) следует, что f(l) =8, и окончательно получаем f (2) =7, f(3) =7, f (4) = 5. С помощью графа и подобного анализа можно получить верхние границы и извлечь новую информацию. Система ALICE в фазе вывода
остается максимально долгое время, переходя попеременно от графа к алгебраическим процедурам, максимально откладывая выбор. Однако, когда уже невозможно получить никакой новой информации, необходимо сделать какое-либо предположение, вводящее дополнительные небольшие ограничения в задачу и позволяющее продвинуться в ее решении. Система ALICE непременно должна сделать выбор (рис. 8.8).
Процедура выбора
В системе предусмотрены семь различных типов выбора. Приведем их в приоритетном для системы поряДке.
Выбрать одну из альтернативных ветвей в ограничении типа ИЛИ.
Зафиксировать нижнюю или верхнюю границу значения переменной.
Установить предел стоимости назначения.
Ввести локальную нумерацию для уравнений двух или трех переменных.
Ввести глобальную нумерацию, когда размер задачи превышает фиксированный порог.
Назначить предшественника для точки из представляемого множества.
Выбрать изображение точки исходного множества.
Выбор типа выбора
Тип 1. Выбрать одну из альтернативных ветвей в ограничении типа ИЛИ. ALICE выбирает его всякий раз, когда одна из ветвей ограничения типа ИЛИ содержит не более двух переменных.
Тип 2, Зафиксировать нижнюю или верхнюю границу значения переменной. В выборе этого типа используется переменная, которая участвует в максимальном числе ограничений и имеет наибольшее множество изображений. Затем это множество делится на два. Выбор имеет смысл только тогда, когда множество изображения является числовым множеством.
Тип 3. Установить предел стоимости назначения. Этот выбор является оптимистическим. Он осуществляется на втором этапе, когда. уже найдено очевидное решение. Друг за другом исключаются максимальные стоимости до тех пор, пока для каждой точки множества D множество дуг не будет уменьшено наполовину.•
Типы 4 и 5. Ввести локальную нумерацию для уравнений двух или трех переменных. Ввести глобальную нумерацию, когда размер задачи превышает фиксированный порог. Эти
типы зависят от производительности ЭВМ. Бесполезно производить сложную формальную обработку, если задача стала небольшой по размеру. Чем меньше ограничений и чем меньше дуг из множества D к множеству /, тем более выражено стремление ALICE останавливаться на этих типах выбора. ALICE всегда знает, что она умеет делать, и это принимается в расчет при оценке предельного размера. Ограничения равенства связаны с наибольшим числом формальных средств анализа, и наоборот, ограничения неравенства, а тем более ограничения типа ИЛИ, не принадлежащие к типу 1, требуют меньшего числа средств. Чем большее число ограничений принадлежит к двум последним типам, тем быстрее достигается предельный размер, инициирующий нумерацию.
Типы 6 и 7. Назначить предшественника для точки из представляемого множества. Выбрать изображение точки исходного множества. В данном случае речь идет об определении пары (объект из D, изображение из /). Эти процедуры применимы только к последнему состоянию, когда пространство поиска уже достаточно уменьшено. Типу 6 отдается предпочтение во всех случаях, когда множество / должно быть получено целиком, существует хотя бы одна точка множества 7, у которой меньше предшественников, чем минимальное число преемников у точек множества Q, или ALICE отдает предпочтение точке с наибольшими ограничениями. В обоих случаях ALICE использует набор критериев для выбора пары (исходная точка, точка изображения), которая даст наибольшее количество информации при последующем решении задачи.
На различных стадиях решения задачи каждый критерий применяется только в том случае, когда для этого имеется несколько причин. Обозначим через т цену наилучшего кандидата по этому критерию. ALICE считает данный критерий выделенным тогда и только тогда, когда менее четверти кандидатов имеют цену, превышающую т—(т/4). Таким образом, эта процедура исключает критерии с плоской зависимостью (все. цены имеют близкие значения) или слабые критерии (слишком много высоких цеи). Подмножество кандидатов, отобранных с помощью одного критерия, затем фильтруется с помощью второго критерия и так до тех пор> пока не останется один кандидат (рис. 8.9).
Список критериев, используемых системой ALICE, приведен в табл. 8.4. Они работают и в графическом, и в алгебраическом представлениях. Затем будут приведены продукционные правила, определяющие стратегию, т. е. порядок, в котором эти критерии рассматриваются в системе. ■
Трудность ограничения была определена в р^зд. 5.2.3. Глобальная трудность ограничений на переменную из множества D представляет собой сумму элементарных трудностей. Целью
Значение критерииЗначение критериикритерий 2критерий 22 и 3 ^e разделены 加7 ^итерию 22 и 3 ^e разделены 加7 ^итерию 2Критерий 3Критерий 3С помощью 勿% терия 3 окончи те^ьнс ^йк%?а- ется 3С помощью 勿% терия 3 окончи те^ьнс ^йк%?а- ется 3
Значение критерии
Значение критерии
критерий 2
критерий 2
2 и 3 ^e разделены 加7 ^итерию 2
2 и 3 ^e разделены 加7 ^итерию 2
Критерий 3
Критерий 3
С помощью 勿% терия 3 окончи те^ьнс ^йк%?а- ется 3
С помощью 勿% терия 3 окончи те^ьнс ^йк%?а- ется 3
Рис. 89 Значения трех критериев для 4 переменных. Выбор системы — переменная 3.
всех критериев является выделение наиболее трудных точек. Таким образом, критерий (6) принимает во внимание точки с
Таблица 8.4
Список критериев для выбора точки 8 исходном множестве
Минимальное число преемников,
Максимальное число точек в разъединении. '
Максимальное число алгебраических ограничений, в которых эти точки появляются,
М-ииимальное значение глобальной трудности для этих ограничений.
Максимальное значение коэффициентов на этих точках.
Максимум минимального значения оценки дуг преемников *.
Максимальное значение отрыва *.
А. Максимальное значение значимости *.
Список критериев для выбора точки из множества изображения
а. Число возможных предшественников *
0. Число реальных предшественников *.
у. Числовое значение этой точки.
8. Значения коэффициентов этой точки.
* Объяснения приведены в тексте.
наибольшей минимально возможной стоимостью. Критерий (7) оказывает влияние на проблемы оптимизации.
Отрыв точки — разность между наиболее низкой стоимостью и стоимостью, которая следует непосредственно за ней. Чем выше отрыв, тем более критической является точка.
Критерий (8) относится к алгебраическим ограничениям. Значимость переменной х определяется суммой изменений трудностей при изменении % от минимального до максимального значения. Сумма берется по множеству тех ограничений, в которых присутствует переменная %. Значимость х возрастает, когда глобальная трудность ограничений по переменной х уменьшается.
Критерий (9) относится к предшественникам и, 〃 w D и также возможен для каждой точки и из /, тогда как реальными предшественниками из критерия (10) являются точки и из D, для которых точки V являются изображением.
Упорядочивание критериев и стратегия ALICE
Порядок, в котором располагаются критерии, выбирается самой системой. Он зависит, с одной стороны, от типа решаемой задачи (уже по формулировке ALICE знает, что определенные критерии не подходят для данного случая), а с другой —— от стадии, на которой находится .решение задачи.
Два метаэвристических правила, имеющие весьма общий характер, используются для выбора стратегии:
сделать наиболее информативный набор;
сделать выбор наименьшей стоимости.
Вытекающий из них порядок критериев определяется следующими продукционными правилами:
ЕСЛИэтап = 0 (Чтение формулировки)
4неизвестные являются булевыми
ТО исключить критерий (а)
КОНЕЦ ЕСЛИ
ЕСЛИ не имеется ни одного разъединения
4ЛИ ЕСЛИ все вершины имеют одинаковое число разъединений
ТО исключить критерий (Ь)
КОНЕЦ ЕСЛИ
ЕСЛИ не имеется ни одного алгебраического ограничения
IТО исключить критерии (с), (d) и 伍)
КОНЕЦ ЕСЛИ
ЕСЛИ все ограничения являются алгебраическими
4ограничения являются линейными
ТО для вычисления трудностей использовать упрощенные формулы, первым использовать критерий (А).
КОНЕЦ ЕСЛИ
ЕСЛИ
решаемая задача не связана с оптимизацией
ИЛИ ЕСЛИ не имеется оценок по дугам D%I
IТО исключить критерии (f) и 依)
КОНЕЦ ЕСЛИ
ЕСЛИ не существует коэффициента на D
IТО исключить критерий (е)
КОНЕЦ ЕСЛИ
ЕСЛИ не существует коэффициента на /
IТО исключить критерий (б)
КОНЕЦ ЕСЛИ
ЕСЛИ должны быть получены все точки {DMI^ 1}
IТО установить критерий (а) на минимум
КОНЕЦ ЕСЛИ
ЕСЛИ требуются максимальные степени на Z {DMA = 0} ТО в качестве формулы для (а) взять: число предшественников (и) — максимальная степень (и) установить критерий (а) на максимум
КОНЕЦ ЕСЛИ
ЕСЛИ задача является оптимизационной
d требуется минимизация функции f(D)
ТО установить критерий (р) на максимум ИНАЧЕ установить критерий (Р) на минимум
КОНЕЦ ЕСЛИ
ЕСЛИ существуют ограничения на 忘{соответственно на》} 4 эти ограничения действуют на числовые значения {соответственно на коэффициенты} точек*/)
ТО установить критерий (у) {соответственно (6)} на максимум {соответственно на минимум}
ИНАЧЕ исключить критерий (у) {соответственно (6)} КОНЕЦ ЕСЛИ
ЕСЛИ этап = 1 (исследование выполнимости задачи)
И ЕСЛИ не существует тривиального решения
I ТО вначале использовать критерии (fl)f(6),(c),(d) и (е) КОНЕЦ ЕСЛИ
ЕСЛИ этап == 2 (решение задачи)
ТО осуществить выбор типа 3, использовать вначале критерии (f),(g) и (Л)
КОНЕЦ ЕСЛИ
ЕСЛИ этап = 3
ТО
ЕСЛИ полное число возвратов назад меньше D
ТО вначале использовать критерии (f),(g) и (无) КОНЕЦ ЕСЛИ
ЕСЛИ число возвратов назад меньше 2 X Q
ТО вначале использовать критерии (a),(b),(g) и (Л)
ИНАЧЕ сохранить только критерии (а),(Ь),(с),(d) и (е) КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
Таким образом, по мере пёрехода от одного этапа к другому программа сначала является «подозрительной», затем,как только найдено решение, (<оптимистичнойп и снова <(подозрительной" при увеличении числа неудачных выборов, когда число ограничений возрастает. Подчеркнем, что хотя сами критерии и их упорядочивание являются всего лишь эвристическими правилами, но ALICE находит безупречно оптимальные решения. Другими словами, у нее не возникает противоречия между эвристикой и строгостью решения. Перейдем к рассмотрению средств, используемых в системе ALICE для доказательства оптимальности решения, полученного с помощью этих эвристических правил.
Доказательства оптимальности
Как только получено решение, полная стоимость которого равна Z0, добавляется ограничение Z 0 ZO ко всем задачам минимизации, для которых Z является функцией стоимости. Если функция имеет полиномиальный вид, это ограничение добавляется к исходным алгебраическим ограничениям. Доказав тельство оптимальности производится в том случае, когда встречается неразрешимая задача.
Рассмотрим два часто встречающихся частных случая, обработка которых выполняется по-разному. Один из них относится к функции стоимости вида
Zl=min £ стоим (u, f (и)).
который встречается каждый раз, когда определены дуги (в частности, в задачах о коммивояжере, о вращений, о распределении), .а для другого функция стоимости имеет вид
Z2 = min max а (〃)* f (u) f u^D
и он относится к задачам, в которых играет роль только наиболее высокая стоимость с учетом весового коэффициента а (и) (задачи упорядочивания, окрашивания, разрезания).
Случай 1. На этапе 3 ALICE обычным образом добивается уменьшения стоимости. Каждая точка 〃 нз Q приводит к минимальной стоимости, равной
min стоим (ц, и). V
Эта величина разделяется между всеми стоимостями дуг, исходящих из и таким образом, чтобы минимальная стоимость для каждой точки была нулевой. Если в последующем соответствующая дуга исключается, то ALICE осуществляет новое уменьшение стоимостей. Полученная таким образом полная сумма принимается за текущую нижнюю границу Z решения. Оптимальность доказывается исключением дуг со стоимостью, превышающей ZO —Z до тех пор, пока одна из точек не будет иметь преемника.'
Случай 2. Для получения решения, лучшего в строгом смысле, чем известное решение для величины Z0, для всех 〃 из D изображения и должны удовлетворять следующему соотношению:
V <а(и)* Z0.
Это неравенство настолько же уменьшает множество возможных изображений в каждой точке. Более того, нижняя граница оптимального значения Z вычисляется, исходя из всех ограничений вида
Vu,Р(〃,и)今EQ® 忘电
как в случае 1.
Если для точек изображения устанавливаются максимальные степени DMA (и), то ALICE уменьшает также нижнюю границу! Z, где Z представляет собой ближайшее целое w, такое, что сумма
w
£ DMA(v)
.
превышает число точек в D、каждай из которых должна иметь изображение.
Вычисления границ имеют важное значение лишь в том случае, если они позволяют на достаточно раннем этапе прекратить дальнейший поиск и доказательства оптимальности. Отметим, что они всегда основываются на необходимых условиях, которым должно удовлетворять каждое решение, т. е. они выполняются с помощью погружения пространства поиска в более
Науа〃ь&0 电 гростраксЕбо £Науа〃ь&0 电 гростраксЕбо £Расширенное простпран'Расширенное простпран'На口тн tz/Kg, решение Z*На口тн tz/Kg, решение Z*
Науа〃ь&0 电 гростраксЕбо £
Науа〃ь&0 电 гростраксЕбо £
Расширенное простпран'
Расширенное простпран'
На口тн tz/Kg, решение Z*
На口тн tz/Kg, решение Z*
Рис. 8.10. Ограничения пространства поиска.
обширное пространство с меньшим числом ограничений (рис. 8.10).
Таким образом, по построению каждое решение из R является по крайней мере таким же хорошим, как и лучшее решение из Е,
Вычисление нижней границы является двойственной задачей по отношению к процессу выбора и ограничивает снизу реальное значение Z*:
z>z*>zo.
Подробные примеры решения
Логическо-арифметическая головоломка
Франсуа и Жорж играют в теннис. Франсуа побеждает Жоржа со счетом шесть три. Подающие проигрывают четыре раза. У кого была первая подача?
Для постановки задачи нам потребуется вектор, показывающий, чья была /-я подача (/ = 1, ..., 9), и еще один вектор, показывающий, кто выиграл. Введем обозначения:
ФП (/) — 1, если j-я подача у Франсуа, 0 в противном случае;
ЖП(у) = 1, если /-я подача у Жоржа, 0 в противном случае;
ФВ(/)=1, если j-й раз выиграл Франсуа, 0 в противном случае;
水B(j) = l, если j-й раз выиграл *орж, 0 в противном случае.
Из правил игры следует: фП(/)-=1 -ЖП(у) ЖП (/) = 1-ЖП (/-1), дляФВ (/)=1- ЖВ (/)ФВ (9) = 1Из правил игры следует: фП(/)-=1 -ЖП(у) ЖП (/) = 1-ЖП (/-1), дляФВ (/)=1- ЖВ (/)ФВ (9) = 1(подает Ф или Ж)/ =# 1 (Ф и Ж подают по очереди)(выигрывает ф или Ж) (последний раз выигрывает Ф)(подает Ф или Ж)/ =# 1 (Ф и Ж подают по очереди)(выигрывает ф или Ж) (последний раз выигрывает Ф)
Из правил игры следует: фП(/)-=1 -ЖП(у) ЖП (/) = 1-ЖП (/-1), для
ФВ (/)=1- ЖВ (/)
ФВ (9) = 1
Из правил игры следует: фП(/)-=1 -ЖП(у) ЖП (/) = 1-ЖП (/-1), для
ФВ (/)=1- ЖВ (/)
ФВ (9) = 1
(подает Ф или Ж)
/ =# 1 (Ф и Ж подают по очереди)
(выигрывает ф или Ж) (последний раз выигрывает Ф)
(подает Ф или Ж)
/ =# 1 (Ф и Ж подают по очереди)
(выигрывает ф или Ж) (последний раз выигрывает Ф)
Полная формулировка задачи для ALICE выглядит следующим образом:
ПУСТЬ МНОЖЕСТВО ИГРА = [1,9]
BOOL = [0,1]
НАЙТИ ФУНКЦИИ ФП,ЖП,ФВ,ЖВ ИГРА —BOOL
ЧП/ \|/ XI/ 1 2 3 4 5 6 /(\ /л\ /л\ /и\ /(XЧП/ \|/ XI/ 1 2 3 4 5 6 /(\ /л\ /л\ /и\ /(XС V/ / е ИГРА(ФП (/) = 1 - ЖП (/)) Д
ЧП/ \|/ XI/ 1 2 3 4 5 6 /(\ /л\ /л\ /и\ /(X
ЧП/ \|/ XI/ 1 2 3 4 5 6 /(\ /л\ /л\ /и\ /(X
(° 耍 1)今 >KR (j) =1-ЖП(/-1))Л
(ФВ (/) = 1 - жв (/))
С Xфв(/)= 6
/^ИГРА
с 2[фп(/)* жв(/)+ жп(/)*(/)] = 4
/еИГРА
(ограничения по проигранным подачам)
СФВ (9) = 1
КОНЕЦ
Задача может быть решена без перебора, как это и делает ALICE. Сначала из условий (1) и (3) исключаются переменные ФП(у) и ФВ(/). После подстановки в (4) и (5) получаем
2 氷В (/)=3(4/)
£ жп (/) - 2 ■ ЖП (/) • ЖВ (j) + ЖВ (/) = 4(5,)
Кстати сказать, все ЖП(/) получены из одного значения ЖП(1) с помощью соотношения (2):
ЖП (/) — 1 — ЖП (1) для четных /,
ЖП (/) = ЖП (1) для нечетных /.
Подставляя эти значения в выражение (5Z), получаем
5ЖП (1) + 4- 4ЖП ⑴—2 Z (ЖП (/)• ЖВ (/)) +£ЖВ(/) = 4. '(5ii)
Затем, используя выражение (4i), находим
жп (1)-21: (ЖП (/) ■ ЖВ (/)) + 3 = 0.(5iii)
Анализ с помощью модуля конгруэнции этого равенства показывает, что ЖП (1) является нечетным и в графе этот факт отражается в выражении ЖП(1) = (1). Таким образом, первая подача была у Жоржа.
Замечание, Сумма ^ (ЖП(/) • ЖВ (/)), таким образом, равна 2, и, поскольку ЖП (/) = 1 при нечетном 厶 число нечетных игр, выигранных Жоржем, также равно 2. Так как девятая игра с необходимостью была выиграна Франсуа, у Жоржа имеется 4-3/2 возможностей выигрыша в нечетных играх и 4 в четных, т. е. в общей сложности для данной ситуации возможны 24 партии, хотя ALICE дает решение без единого выбора.
Задача из области производства бумаги
Предприятие должно выполнить заказ по производству 九 различных сортов бумаги. Каждый из сортов может быть получен на любой одной из М бумагоделательных машин. Из-за высокой стоимости изменения состава бумажной массы каждый сорт бумаги должен быть обязательно произведен целиком на одной и той же машине. Известно количество бумаги в тоннах g(i), которое нужно произвести для каждого сорта i при условии, что максимальная производительность каждой машины составляет p(j), / = 1, ..., m. И наконец, известна полная стоимость c(i, j) производства бумаги сорта I на машине / для каждой пары (/,/). Требуется в указанных условиях организовать производство с наименьшнми затратами. '
Примем следующие числовые данные (реальный случай, предложенный Н. Sandi): п = 10 сортов, т = 4 машины. На входном языке ALICE задача формулируется сразу:
p(j) 12345678910
12 3 412 3 4屮 910203屮 91020331313185313131855 9 9 5 45 9 9 5 4101201 9101201 913 6 4213 6 42214173 6214173 63^78^3^78^5 7 9 8 95 7 9 8 93 9 6 23 9 6 2815177 5815177 5
12 3 4
12 3 4
屮 910203
屮 910203
31313185
31313185
5 9 9 5 4
5 9 9 5 4
101201 9
101201 9
13 6 42
13 6 42
214173 6
214173 6
3^78^
3^78^
5 7 9 8 9
5 7 9 8 9
3 9 6 2
3 9 6 2
815177 5
815177 5
с а, /)
Формулировка задачи:
ПУСТЬ множество Бумага = [1 ,п]
Машина = [1 ,т]
Коэффициент q Бумага
р Машина
с Бумага * Машина НАЙТИ функцию f: Бумага -^- Машина С Vj 三 Машина
£ f w Бумага g (0 & р (/)
f (0 = /
C min £ £ w Бумага c(i"(i))
КОНЕЦ
10,
4
3,
5, 10, 1, 2, 3, 5, 3, 8, 2.
9,
10, 20, 3.
13,
9, 1, 3, 14, 15, 7, 9, 15, 8.
13,
9, 20, 6, 17, 7, 9, 16, 17, 1.
18,
15, 11, 14, 13, 8, 8, 12, 17, 12.
5,
4, 19, 2, 6, 15, 19, 4, 15, 20.
Первая фаза. В самом начале первой фазы программа пытается определить, существует ли реализуемое решение» т. е. функция производства Д удовлетворяющая всем ограничениям, кроме оптимизации:
min £ c(i, f (i))・
Ограничение, накладываемое на производительность £g(i)K ^p(i)t определяет необходимое условие выполнимости задачи, которое достигается путем распространения этого ограничения на все множество машин. Из него получаем
X g⑴忘 X рО).
(е Бумага/ еМашина
С приведенными числовыми значениями обе эти суммы совпадают, их значения равны 42. Из этого программа делает выводы:
Нельзя заранее сказать о невозможности решения задачи.
Для всех / знак W должен быть заменен на строгое равенство, исключение недопустимо.
Тем не менее определенные назначения запрещены в тех случаях, когда значение 夕(£) превышает связанное с ним значение p(j). Для таких случаев имеем q(i) > p(j) => f(t)#= /.
Из этого следует, что f(3)#= 1 и f(2), /(3), f(7), f(9)*4. Больше здесь ничего сделать нельзя, и программа должна сделать выбор. Выбор по ограничению ИЛИ не может быть выполнен, так как не имеется ни одного ограничения такого типа. Выбор по малым значениям в принципе возможен, но исключается программой, которая считает пространство поиска достаточно малым (41。= 1048 576), для того чтобы сделать более точный выбор типа f(Q = j. Напомним критерии, которыми здесь располагает программа для определения выбора.
Критерии для выбора в предшествующей вершине i:
min преемников
max разъединений
max число ограничений с /
max трудности ограничений
max max коэффициентов f: max min оценки g: max отрыва
%: max значимости
При каждом выборе программа начинает определять рассматриваемый сорт бумаги в зависимости от этих критериев. Три критерия — 6, с и d — исключаются сразу как не имеющие отношения к данной задаче: связанные значения являются и останутся в дальнейшем нулевыми для всех l Затем на первой фазе отвергаются критерии оптимизации f, g н /г.
Остаются два критерия — а и е. Распределение значений для критерия е (10 8 5 5 ...) является менее значимым, чем для критерия а. Действительно, только сорт 3 имеет двух преемников и распределение для этого критерия имеет вид (2 3 3 3 4...). Итак, с помощью критерия е выделяется сорт бумаги 3, которому этот критерий оказывает предпочтение перед сортами 2, 7 и 9. Выбор машины / происходит с помощью следующего набора критериев:
Критерии для вершины-преемника /:
а: число возможных предшественников
6: число действительных предшественников
Y: численное значение, связанное с j
S: коэффициент для /
Критерий а не совсем пригоден, так как выделяет от 10 до 6 предшественников. Критерий В для первого выбора вообще не
принимается во внимание, так как дает нулевые результаты; Критерий у относится к оптимизации и также не пригоден для данного случая. Подходящим оказывается толькр критерий S, который относится к коэффициенту для /, присутствующему в данной совокупности ограничений.
Для облегчения решения задачи с учетом коэффициента р(/), который является вторым членом равенства, программа оставляет максимально возможную свободу для Г и сохраняет максимальное значение р(/). Таким образом, первые рассмотренные программой критерии для выбора i и j предусматривают следующее: разместить производство наиболее трудного сорта бумаги (критерий е) на наименее загруженной машине (критерий S), т. е. производство бумаги сорта 3 на машине 3:
1 234 56789 10
12 3 412 3 49,020з9,020з31313185313131855 9 9 55 9 9 510120-10120-13 6 4 213 6 4 22 4 7 3 62 4 7 3 63 5 7 8 53 5 7 8 55 7 9 85 7 9 83 9 6 2 43 9 6 2 48 5 7178 5 71728112202811220
12 3 4
12 3 4
9,020з
9,020з
31313185
31313185
5 9 9 5
5 9 9 5
10120-
10120-
13 6 4 2
13 6 4 2
2 4 7 3 6
2 4 7 3 6
3 5 7 8 5
3 5 7 8 5
5 7 9 8
5 7 9 8
3 9 6 2 4
3 9 6 2 4
8 5 717
8 5 717
2811220
2811220
Выбор 1: f(3) = 3.
Реальная производительность этой машины уменьшается до 10. Никаких других вариантов не просматривается. Для того чтобы сделать выбор 2, программа опять последовательно анализирует подходящие критерии и на первое место перед критерием а выходит критерий е, так как распределение становится следующим: (8 5 5 5 ...). Выбирается сорт бумаги 9. Критерии аир отдают равное предпочтение двум машинам — 2 и 3. Окончательно их выделяет критерий р: с точки зрения решения хорошей стратегией для учета ограничений на первой фазе является максимально возможное снятие ограничений с изображения. Машина 2 еще не загружена, поэтому делается следующий выбор:
Выбор 2: /(9) = 2.
Таким образом, реальная производительность машины 2 становится равной 2, а программа, для того чтобы выполнить ограничение £g(i) = p(j) должна запретить на этой машине производство f(l), f(2), f(6), f(7) и f(8). Других возможностей не имеется и третий выбор опять ставит на первое место критерий а, поскольку два сорта бумаги — 2 и 7 — снова имеют не более двух преемников. Их нельзя выделить на основе критерия е, с помощью которого в обоих случаях получается значение 5. В конце концов вступает в действие критерий f и программа выбирает такие сорта бумаги, производство которых во всех
случаях обходится дороже. Итак, третий выбор программы:
-Выбор 3: f(2)= 1 для стоимости, равной 9.
Итак, возможность производства на машине 1 уменьшилась до 4 и программа далее выбирает f⑺峻 1 и, следовательно, f ⑺=3. Четвертый выбор происходит с использованием тех же самых критериев. Нужно разместить производство бумаги сорта 6, и критерий / оказывает одинаковое предпочтение сразу двум машинам—1 и 4, — стоимости выполнения работ на которых равны 15. Выбирается машина 1 как менее загруженная (критерий S)
Выбор 4: f(6)= 1.
Как показано выше, ограничения на производительность являются равенствами и единственный сорт бумаги обладает единичным значением g(i), которое соответствует остаточной производительности машины 1. Отсюда сразу получаем f(4)= 1. Итак, для сорта 8 наименее дорогой машиной является машина 4:'
Выбор 5: f(8) = 4.
Использование машины 4 запрещается, поскольку обязательным условием является /(1) = 3. Для двух оставшихся сортов, задания для которых равны 2, полезным критерием является f, с помощью которого получаем
Выбор 6i f(5) = 3.
Отсюда окончательно находим ^(10) — 2. Таким образом, полное найденное решение
123456789 10
3 2 3 1 3 1 3 4 2 2
имеет полную стоимость, равную 99.
Вторая фаза. Получив подобное решение всего лишь после шести выборов и без возвращений назад, на второй фазе программа предпринимает попытку получить “хорошее" решение. Для этого она использует критерии, которые связаны со стоимостью и вначале были отвергнуты. Так, если сорт бумаги, определенный в результате первого выбора по тем же причинам, по-прежнему равен 3, то машина, на которой предполагается его выпускать, выбирается программой исходя из наименьшей стоимости производства (критерий /)
Выбор 1: /(3) = 3.
Этот выбор совпадает с предыдущим, однако затем:
Выбор 2: /(9)= 1,.
так как именно первая машина дает для этого сорта наименьшую стоимость производства. Далее с необходимоетью следует
f(4)= 1, и применение критерия f приводит к следующей последовательности выборов:
Выбор 3: /(2) = 2,
Выбор 4: / (7) = 3,
Выбор 5: f(6) = 2,
Выбор 6: f (1) = 4,
Выбор 7: f (8) = 3,
Выбор 8: f (5) = 3,
откуда следует /(10) = 2.
Новое решение, полученное с помощью критериев оптимизации, существенно лучше старого:
1 2345678910
4 2 3 1 3 2 3 3 1 2
Полная стоимость производства равна 84.
Третья фаза. Все проделанное до сих пор не является бесполезным, но как получить действительно оптимальное решение? Проследим за дальнейшим ходом действий ALICE. Каждый сорт бумаги i должен иметь изображение f(i), поэтому выражение функции стоимости
z= Z с а, но)
/ е Бумага
показывает, что величина Z во всех случаях превышает сумму минимальных значений коэффициентов c(i, j) для каждого сорта бумаги i. Обозначим эту величину через 2:
Z= Z min c(i, j)
— iw Бумага / e Машина
и напомним еще раз, что ± W Z. Но программа, кроме того, выполняет преобразование стоимостей, вычитая из всех значений стоимость производства бумаги сорта i (i-询 столбец таблицы; для программы — это совокупность дуг, исходящих из £)——минимальную стоимость для этого сорта. Тогда новые стоимости c'(i,/) получают следующие значения:
1 2 3 4 6 6 7 8 9 10
12 3 412 3 49 0^39 0^33 8 8 3 03 8 8 3 06 0 0 66 0 0 6,0,0114 2 0114 2 02 8 и 7 о2 8 и 7 о3 8 0 183 8 0 185 0 2 15 0 2 13 5 2 8 03 5 2 8 08 0 2 28 0 2 22 7 0 192 7 0 19Вычтенные 5 значенияВычтенные 5 значения91267741519126774151
12 3 4
12 3 4
9 0^3
9 0^3
3 8 8 3 0
3 8 8 3 0
6 0 0 6
6 0 0 6
,0
,0
114 2 0
114 2 0
2 8 и 7 о
2 8 и 7 о
3 8 0 18
3 8 0 18
5 0 2 1
5 0 2 1
3 5 2 8 0
3 5 2 8 0
8 0 2 2
8 0 2 2
2 7 0 19
2 7 0 19
Вычтенные 5 значения
Вычтенные 5 значения
9126774151
9126774151
Сумма вычтенных величин Z = 67・ Точное соотношение принимает вид
z=z+Ec'& /).
Лучшее известное решение ZO == 84, и, Поскольку все c(f, /) положительны по определению, имеем
z<z*<zo
или 67&Z*&84,
где Z* — искомое оптимальное значение.
ALICE исключает все значения стоимости, строго превышающие 84 — 67— 1 = 16, которые не могут дать такого же хорошего решения, как в фазе 2. Дуга для данного случая проходит через точки (10,4) и определяет стоимость, уменьшенную до 19. Других вариантов нет, и первый выбор ALICE делает с помощью критерия оптимизации ^-максимума отрыва. При этом выбирается дуга нулевой стоимости, так как в противном случае стоимость оказалась бы максимальной. Значения отрывов в данном случае равны просто следующим после минимальных значений стоимости в каждом столбце:
Сорт 123466789 10
Отрыв 8 0 9 1 7 1 1 6 2 7
Таким образом, первый выбор в последней фазе:
Выбор 1: f (3) = 3,
т. е. все три различных критерия дают один и тот же результат. Затем тот же критерий дает:
Выбор 2: f ⑴—4.
Отсюда следует f(i),4 для всех остальных сортов бумаги. В частности, запрещено сведение к нулю стоимостей для сортов 4, 5 и 8. ALICE вычитает новые минимумы из столбцов 1, 7 и 5, что при двух сделанных предположениях (Выбор 1, Выбор 2) дает для значения нижней границы Z:
/(Выбор 1, Выбор 2) = 4+1+ 7 + 5 = 80.
Приведенные стоимости, строго превышающие 3, необходимо исключить, так как с их помощью нельзя получить решение, удовлетворяющее программу. Остается
1
2
3
4
.б
6
7
8
9
10
5
2
3
5
3
2
1
9
0
1
0
0
2
10
0
2
0
3
10
0
1
3
-1
—7
—5
Из сделанных исключений следует ,(10) = 2, и таким же образом выполняется третий выбор:
Выбор 3: f (8) = 1.
Из ограничения на объем производства следует, что f(9),L Таким образом, для этого сорта бумаги требуется новое вычитание. В результате Z становится равным
Z (Выбор 1, Выбор 2, Выбор 3)=
=Z (Выбор 1, Выбор 2) + 2 = 82,
хотя разрешены только нулевые и единичные стоимости. В частности, /(4)#=2, следовательно, f(4)= 1. Затем
Выбор 4: f ⑺=1,
из которого следует
f(2)干 1 и f(5},L
Отсюда
f(5) = 3 и f (2) = 2.
Из этого в свою очередь следует:
f(9)抬 2 и f(6)干 3.
Отсюда
f (9) = 3 и f (6) = 2.
Это в конце концов дает решение стоимостью 82.
• Доказательство оптимальности
Теперь для ALICE остается только еще раз вернуться к сделанным четырем выборам для доказательства их оптимальности или найти лучшее решение.
Выбор 4: /(7)=1. Анализ этого выбора является тривиальным. Поскольку известно решение стоимостью 82, подходящим оказывается только нулевой отрыв, следовательно, необходимо принять f(7) = 1, так как в этом случае отрыв равен 1.
Рнс. 8.11. Оптимальное решение стоимостью 82.
Выбор 3: /(8)= 1. В данном случае верхняя граница равна 80, а отрыв равен 3. Этот выбор приводит к шагу назад.
Выбор 2: /(1) = 4. Верхняя граница равна 67, а связанный с ней отрыв равен 8. Исследуется случай f(l),4. При этом величина Z (выбор 1) принимает значение 67 + 8 = 75. Поскольку существуют еще три другие возможности размещения производства бумаги сорта 1, то ALICE приступает к повторному изучению ситуации. Дуги (10, 1) и (10, 3) исключаются, из чего следует /(10) = 2. Также исключаются дуги (4, 1), (5,2), (5, 3), что дает f(5) = 4.
Ограничение по производительности приводит к f(4) = 4. При этом четвертая машина полностью загружена, следовательно, f(8)#=4. Но так как действует ограничение по стоимости, то
〃8),2 и 〃8)干 3.
Отсюда следует, что
/ (8) — 1 и с (8, 1) = 5.
Z (выбор 1) = 75 + 5 = 80.
Таким образом, завершить решение нужно только с помощью дуг стоимостью ниже 2. Но f(9),l, так как оставшаяся производительность первой машины является недостаточной для
этого сорта бумаги и, следовательно, таким путем завершить решение задачи нельзя. Тогда остается только первый выбор:
Выбор 1: f (3) = 3.
Остается единственная возможность сделать f(3) = 2 с Z = =67 + 9 = 76. Запрещены все стоимости, превышающие 5 =■ =82 — 76— 1. В частности, необходимо сделать одновременно f ⑴=4 и f(5) = 4. Эти два условия несовместимы, так как предполагают общее производство 5 единиц на машине, которая способна произвести не больше 3, т. е. невозможно получить решение стоимостью меньше 82. Окончательный вид дерева поиска представлен на рис. 8.11, который показывает оптимальность полученного решения.
Задачи, решенные с помощью системы ALICE
Число неизвестных (вершины D);
Число возможных значений (вершины А);
Число алгебраических ограничений;
Время решения в секундах на IBM 43 31;
Число возвратов назад.
а
ь
d
Пример 1: упорядочивание Модифицированный пример 1 (разд. 8.2.3) Пример 2: неравенства
Пример 3: локализация Перестановки
Логическая головоломка (разд. 8.7.2) Распределение времени Восстановление
Восемь ферзей Пять ферзей Ложная информация Майк и Джон играют в теннис send + more — money Donald + Gerald = Robert Lyndon*b = Johnson Пересекающиеся числа Пересекающиеся операции Умножение
Магический квадрат 3-го порядка Магический квадрат 4-го порядка Неоднородный квадрат Куб 3-го порядка Магическая сфера Диски
Миссионеры и людоеды Конь Эйлера
Пикник
Двое играют в теннис Распределение ресурсов
99559515840925661996776404986
21 611111222 112 2 86 1
99289518840682400096976834683
21 61 111122 1222 16 1
3 133146 2118217 9 72837238101508 9100 7472
2124423511349467^4708631643
2
о1о о о1о ОО 00104000^00700040000
d
ь
а
4885449107300104478170746800050000^^
22162 5 2 3917 21111 23
1684 4 9 8 46 4
2
000068514004420 2312 25 21 2 6 6 1 2
1 2
4761645235169320499296475056594771671253837712628642
4898 7 444 2 239^2К^1111 1 4 7816176 111
1122220^46144444^0^^0^0004^^111100000221
2 2 2
3227271278327895453702 2 2 2352 2 2 2 250Л02565201060106020282661025102064105010254099304 4 427282
3358 8 22 1 11 1
о 6 05 2
2 1
4
2
2 2
2 2
15324345301530954534760608101561824324000002515202060106024303661025102064105010254099504010508686123280 I и 11 11 11 1 IX 1* 11 14 1 I
Разделение
Восстановление
Линейное отсечение
Вложение капитала
Линейные программы
Тест Haldi IBM
Квадратичные программы
Упорядочивание
Разъединительное упорядочивание Более короткий путь Максимальный поток Назначение
Перенос
Минимальное дерево Максимальная связь Путь Эйлера Отсечение в плоскости
Расположение в плоскости земля Задача коммивояжера
Существование контура Гамильтона
Поездки с ограничениями
Раскрашивание
Планирование
Максимальная связь
14 0 8 4 7 8
1 9 2 4 3
6750741
1 3 113
с 2222222
ь 0 0 0 0 0 0 3
I 1314445
I 4000003а 112445
Бумажная фабрика
Локализация
Вращение SNCF
8.^. Эффективность системы и общие замечания
Выше уже говорилось, что ALICE является эффективной системой и ее производительность может оказаться выше, чем у хороших специальных программ. Мн попытаемся объяснить этот удивительный факт иа примерах. В основе успешной работы системы лежат два важных обстоятельства. Первое заключается в более эффективной формальной обработке выражений по сравнению с обычно применяемыми в решении задач численными расчетами. Распространение ограничений позволяет задержать выбор на максимально долгое время. Второе обстоятельство связано с качеством выбора, когда без него нельзя обойтись. Набор возможных критериев является очень сложным, так как охватывает все семейства задач. Когда встречается непредвиденный случай и начинает работать специальный алгоритм, использующий схему перебора, то его характеристики оказываются значительно хуже.
В отличие от этого ALICE тщательно изучает контекст задачи и ищет подходящие критерии не только для задачи целиком, но и для каждого выбора в пределах данной задачи. В наихудших случаях ее поведение соответствует поведению специальной программы. Большую часть, времени ALICE будет рассматривать, по крайней мере для некоторых выборов, неожиданный критерий, применение которого предполагалось для совсем другого семейства задач, а в действительности вполне подходящего для данной ситуации. Для некоторых задач, решаемых с помощью карандаша и бумаги, можно показать, что подход ALICE приводит к меньшему размеру дерева Поиска, чем при решении **от руки**.
Пример 1
Задачи криптарифметики являются классическими, не требуют обширных познаний в математике и поэтому представляют собой хороший пример для сравнения. Суть задач сводится к тому, что берется простая операция, например сложе-
ние двух чисел. Затем цифры заменяются буквами, причем каждой букве соответствует одна цифра (по основанию 10) и двум разным буквам соответствуют две разные цифры. Требуется восстановить замененные буквами цифры, которые определяют правильное выполнение операции. Для решения задач такого рода можно составить численные программы, работающие с помощью перебора по классической схеме (гл. 5). Для простоты числовые значения буквам можно присваивать справа налево, последовательно определяя пригодность текущих значений. Общая схема алгоритма имеет вид
НАЧАЛО
j — 1
ВЫБОР значений букв в /-м столбце
Вычисление /-го результата
Проверка на выполнимость
ЕСЛИ результат отличается от уже выбранных значений ТО двигаться дальше;
ИНАЧЕ вернуться к последнему выбору
КОНЕЦ ЕСЛИ
КОНЕЦ
Используем эту программу как начальную точку отсчета. Ньюэлл и Саймон (1978) в течение долгого времени изучали действия человека при решении такого типа задач. В частности, они изучили множество протоколов на эту тему и с помощью продукционной системы пытались построить модель процесса решения. Один из рассматривавшихся примеров имел следующий вид:
GERALD十 DONALD
=ROBERT
Буквы слева G, £)и /? не равны нулю. Решение занимает несколько страниц, даже если значение D дано по условию. Проверьте ваши способности на этой задаче, а затем сравните с решением, полученным системой ALICE. Если ваше пространство поиска, содержащее все решения, будет состоять менее чем из двадцати узлов, то вы оставите далеко позади лучшие решения, изученные Ньюэллом и Саймоном.
Поясним на этом примере основной недостаток алгоритмов, действующих по методу слепого перебора. При каждом выборе используется только небольшая часть информации и в неудачном порядке. Подходящий порядок в действительности зависит
от каждой операции и может быть найден только с использованием точных результатов символьной обработки ограничений. Число предпринимаемых попыток зависит от числа независимых букв-операидов, которых в данном случае шесть: D, 4Mo н G. Таким образом, число попыток, которые нужно будет сделать равно примерно 10!/4! или 151 200. В отличие от этого ALICE полностью решает задачу с использованием шести конечных узлов.
Обозначим через at b, с, d и е переносы в старший разряд при сложении, взятые слева направо. Тогда исходные ограничения запишутся в виде
\|7 \7 \|7 \7 \|7 а(2е(4岱(6\|7 \7 \|7 \7 \|7 а(2е(4岱(62 ■ D = Г + 10 • е,e+2" = R+10・d,d + 2・4 千 Е+10・с,с + R + N = 5 + 10 •瓦h + E+O = O+ 10・a,a ~[- G D = R
\|7 \7 \|7 \7 \|7 а(2е(4岱(6
\|7 \7 \|7 \7 \|7 а(2е(4岱(6
Буквы должны соответствовать (биекция) целым числам в интервале [0, 9].
Первые выводы (в порядке, определяемом системой):
Из ограничения (1) следует, что Т является четным.
Из ограничения (5) следует, что
(а = 0Дб = 0Д£ = 0) ИЛИ (а = 1 八 Ь = 1 Д Е — 9).
Из ограничения (2) следует, что R = e (по модулю 2).
Из ограничения (3) следует, что E = d (по модулю 2). ;Кроме того, все переносы не превышают 1, так как сумма двух букв не может превышать 17.
Из этих условий больше нельзя получить никаких других сведений, поэтому должен быть сделан первый выбор. Только что полученное ограничение ИЛИ может оказать в этом существенную помощь. Тогда
Выбор 1: £ = 0, следовательно, и а = b —0.
При этом изменился вид трех ограничений, а ограничение (5) становится тривиальным.
(30 ⑷) (6»)(30 ⑷) (6»)d+2・4=10・c,c + R+N = B,G + Q = R.
(30 ⑷) (6»)
(30 ⑷) (6»)
Следствия. Из ограничения (3i) следует, что d является четным, следовательно, d = 0 и А == 5с. Изображение 0 уже свя-
зано с Е Тогда граф дает, что 4 = 5, с = 1 и ограничение (3i) исключается.
Из ограничения (6,)следует, что R 注 3, так как G и D должны быть различны и С?*£>《9, отсюда G&8 и D ^ 8. G + Q подставим вместо R в ограничение (4i) и с помощью арифметического модуля (описанного в разд. 432) выведем два новых ограничения:
/ + G + D + N&9 (значение превышает В) и 3>7, (7。 так как минимальный набор из трех различных значений в пространстве изображений дает сумму, равную 6. Из неравенства (7i) в свою очередь следует
G&5, D&5, N&5, а также C? + D = R&7.
Затем снова анализируются ограничения (1), (2) и (6i), так как уточнены значения входящих в них переменных. Из условия RW7 H ограничения (6/) теперь следует, что GW6 н D W 6. Из ограничения (1) ничего нового не получается, а из ограничения (2) следует 厶 W 3, так как R 注 7 H £ ? 1, так как R &3.
Все ограничения уже проанализированы и необходимо сделать следующий выбор. Существует несколько кандидатов (В и переносы), имеющих только по два возможных значения, и остановиться на одном из них можно с помощью критерия трудности. Наибольшей значимостью обладает переменная е, которая фигурирует в двух простых ограничениях.
Выбор 1Л: е = 0.
Перепишем систему ограничений:
2・Q = T, ] (ограничения из графа(山)
2・L = R, J с четными Т н R)(2切
l + G + D + ^ = B>(4и)
G + D = R(6 汾
Выводы. Кроме этого, граф <знает», что 4《8《9, 1 <^<5, 3&R&7, 1&Q05, 1<L<3, 1<G<5.
Анализ новых ограничений (1п) и (2〃) сразу уточняет эти границы: •
£ = 2 или 3,
R = 4 или 5.
В завершение выполняется полный перебор значений наиболее простого ограничения (2ii), переменным которого соответствует наименьшее пространство изображений. Если R==4, то L — 2.
Из равенства Z) + G = 4 следует, что Д ^ 3, а Т — 6, так как значения 0, 2, 4, 8 запрещены. Таким образом, 2>вЗ и G = 1. Но при этом все значения 0, 1, 2, 3, 4 и 5 уже использованы и ограничение (4〃)В = 5 +力 не позволяет получить решения. Если R = 6, то L = 3 н {&£)} = {2,4}, тогда 7 = 8, так как значение 4 уже использовано. Отсюда следует, что Q = 4 н G = 1.
И снова больше не остается свободных значений для N в уравнении 4":
B = 7 + N.
Таким образом, последний выбор оказывается под угрозой. Остается только одна возможность:
Выбор 12 е = 1. В этом случае к ограничениям (4п) и (6〃) добавляются
2 ・0 = Г+ 10,(1ш)
1 + 2 •厶=R,(2иг)
т. е. R должно быть нечетным. Используя вновь результаты выбора 1, получим
3&R&7.
Значение 5 уже закреплено за Л, поэтому 7? = 3 или 7. Но анализ уравнения (Ии) дает Р ^: 6, а из уравнения (би) получаем, что R А 7.
Окончательно имеем R = 7,丄=3 и Ь = “ + 8, т. е. N = 1 и В = 9. Остается D + G = 7 при условии Q 6 и G 1. Но значение 1 уже присвоено М что указывает на то, что это направление решения является тупиковым. Выбор 1 оказался неудачным.
Выбор 2: £ = 9, следовательно а = 6 — 1. Сразу составим новые уравнения
d +24 = 9+ 10 с,(32)
c4-^? + ^ = B+ 10э(42)
1 + G + Q = R.(6例)
Первым анализируется ограничение (32), которое по условию четности дает d = 1, отсюда следует
e + 2L = R+10(22)
и Л = 4, так как £ уже равно 9 и с = 0. Отсюда получаем
R + N^=B+ 10.(甸
При L W 8 н R W 4 анализ уравнения (22) дает
17》R+10, т. е. R&7,
а также е + 2L 力 14, т. е. L 力 7, L = 7 или 8. Из других ограничений можно получить В《5 и N 力 3. После этого необходимо сделать следующий выбор, при выполнении которого удобно использовать тот факт, что L имеет всего лишь двух、 преемников.
Выбор 2.1: L = 7. Сначала анализируется ограничение
e+14 = R+10.(2》
Но А = 4, поэтому необходимо, чтобы R = 5 н е = L Подставляя эти данные в уравнения (4?) и (6〃),получаем “ = 5十5, н Q + G = 4. И далее Д^ЗиС^З. С другой стороны, ограничение
2Q = T+ 10(Ь)
требует, чтобы Q ^ 5, что приводит к противоречию. Остается последний случай:
Выбор 2.2: L = 8. Имеем
е + 6 = R,(2 加)
R + “ = B + 10,(45)
1 +G + D = R.(6 加)
Из ограничения (25) следует, что Ъдновременно должно выполняться R = 6 или 7, а также G + Q = 5 + e, откуда ALICE выводит G W 5 н Q W 5. Решение уравнения ⑵i) путем перебора дает
Если R = 7, то
е=1, G + Q = 6, 2Q = T+ 10,
следовательно, Q = 5 и Г = 0, а также G=1 н“ = Ь + 3.
Затем В = 3 н N = 6.
Решение задачи выглядит следующим Образом:
.(GERALDON ВТ}
〈1 97485263 0〉
Если R = 6, то
е = 0, g + D = 5, 2Q = 7\
следовательно, D = 1 и 7 = 2, так как значения 4 и 6 уже заняты. Но тогда G =5 — Q=4, которая уже использована для значения Л, откуда следует невозможность решения.
Таким образом, найденное решение является единственным, дерево поиска приведено на рис. 8.12. Дерево имеет шесть
Листьев, полное время его обработки составляет 9 с, что меньше времени, которое требуется программе, работающей по прин-
£=9£=9夕 к 0 ^™^"^月.《#4*7*Решение]尸м?|■ 8 夕 к 0 ^™^"^月.《#4*7*Решение]尸м?|■ 8
£=9
£=9
夕 к 0 ^™^"^
月.《#
4*7*
Решение
]尸м?|
■ 8
夕 к 0 ^™^"^
月.《#
4*7*
Решение
]尸м?|
■ 8
Рис. 8.12. Дерево поиска системы ALICE для решения задачи GERALD + DONALD = ROBERT. Ветви, помеченные звездочкой, не приводят к решению.
ципу перебора, типа приведенной в гл. 5 (1 мин и 10 с на ЭВМ IBM 4331).
Пример 2
Рассмотрим более сложную задачу — проблему перестановок, которая была предложена Марселем Шутценбергером.
Найти все р перестановок п первых целых чисел, которые соответствуют двум ограничениям, накладываемым с помощью двух векторов m и а на интервале [1,п— 1].
Вектор монотонности т задает соответствие [1, п—l]f f {0, 1} и определяет следующее ограничение: {p(i + 1) больше чём p(i) тогда и только тогда, когда 径("=1, или в формальной записи
Vi, / е [1, п— 1], m(f) == 1 <=>р(f + 1) > р(О-
Вектор опережения а[1, п—1] определяет:
если а «) = 0, то р (0 + 1 расположен слева от p(i);
если а (/) = 1, то р (f) + 1 расположен справа от p(i), кроме того, p(i),п. В формальной записи
V/, i w [1, п ——1],
a«) = O>Vj, /е[/+ 1, n] p(j)*p⑺+1,(1)
a(z) = 1 ^[V/, /е [1, z — 1] p(/)=/=p(i)+ П и "⑺,儿⑵
Таким образом, вектор т определяет направление изменения величины соседних элементов, а вектор а указывает, что элемент p(i)+ 1 должен располагаться либо до, либо после элемента p(i) в искомой перестановке.
Рассмотрим
простой числовой пример.
Возьмем в качестве
данных /л м [0
1 1] и а =
[1 10]. Тогда
из /п(1) = 0
следует
р(2)<р(1),
(а)
ИЗ АП (2) — 1
следует
р(3)>р(2),
(Ь)
из m (3) = 1
следует
Р (4) > Р (3).
(с)
Отсюда
р(4)>р(3)>р(2),
следовательно,
"⑷)3,
(d)
"(3))2,
(е)
"(3)&3.
⑴
Теперь из ограничения (а) получаем
"⑴)2,(g)
и только элемент р(2) может быть равным единице
р(2) = 1.(h)
С другой стороны,
из а (1) = 1
следует р (1),4,
G)
из а (2) = 1
следует р⑴'#=р⑵ + 1,
т. е. р(1) #= 2,
(j)
и "⑵,4 (уже известно),
из а (3) = 0
следует "⑷,"⑶ + 1.
(k)
Из ограничений (f) и (/) видно, что единственным возможным предшественником для 4 является р(4) = 4.
Из ограничения (/) в свою очередь следует
Р ⑴=3, откуда р(3) — 2, что приводит к удовлетворению всех ограничений. Таким образом, определяется единственная перестановка, удовлетворяющая условию задачи:
р = [3 12 4].
Выводы ALICE в точности совпадают с ходом наших рассуждений при решении этой задачи в уме. Если же мы хотим составить программу, специально предназначенную для решения этой задачи, то тут же появляется принцип перебора, который, как обычно, можно представить в виде следующей схемы: А Присвоить значения всем элементам.
Проверить частичное решение и продвинуться дальше в случае успеха.
С: В случае неудачи, но если надежда на получение решения еще не потеряна, вернуться назад.
Этап А соответствует нахождению следующего элемента. Для естественного порядка на интервале [/, п] имеем
Л: £*-/+! и р(/)<-р(/) + 1, начиная с нулевых начальных значений.
Этап В является более тонким, так как порядок, в котором выполняются различные тесты, определяет эффективность нашей программы. Должны быть предусмотрены три теста:
/1: является ли р перестановкой?
方2: удовлетворено ли ограничение на монотонность?
f3: удовлетворено ли ограничение на опережение?
Во избежание бесполезной работы эти тесты должны быть проведены как можно раньше. Тест /1 может быть выполнен сразу после нахождения р(% т. е. перед /3. Выполнение теста /3 вызывает затруднения при а(/) = 0, так как не известны элементы р с индексами, превышающими 厶 В данном случае можно использовать следующие элементарные соображения. Поскольку р является перестановкой (следовательно, биекцией), из того что все p(j) отличны от p(f)+ 1 для j 三[,+ 1,〃], следует, что либо "(£)4- 1 встречалось перед j, т. е. уже размещенным элементом, либо р ⑴ равно п. Таким образом, тест /3 может быть использован в нашем алгоритме.
Тест ⑵ наоборот, очень прост. В среднем он исключает большее число случаев, чем тест 〃,поэтому будем использовать его первым. Приведем теперь уточненную схему программы. Процедура PERM: Определить все перестановки п первых целых чисел с учетом данных булевых векторов ант.
р 三 0;1; р(0)《-2;
ПОКА / > 0
/ -^- множество целых чисел от 1 до /— 1;
(Проверить монотонность и убедиться, что p(i) можно увеличивать).
ilORA (/и«-1) = 1 Н р(" <п).
ИЛИ (zn(i — 1) = 0 И р«) V р(2 — 1) — 1)
р (i) р (0 + 1; (Проверка перестановки) ЕСЛИ V/е/ р (j) =# р (0
ТО{проверять опережение)
q<~р(2). + 1; ок — ложь
ЕСЛИ а (/) = 0 {q входит в / или
Р(0,п}
ТО ЕСЛИ (р (г) = га) ИЛИ
(3/^/ р (/) = q)
ТО ок <~ истина;
КОНЕЦ ЕСЛИ
ИНАЧЕ {а (г) := 1, не входит в / и р (/) =^= п}
ЕСЛИ (р (0=^п) И (V/eZ р (/),G
ТО ок-«-истина;
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
ЕСЛИ ок {продвижение по /}
ТО ЕСЛИ i = n
ТО печатать решение;
p(9 —孔;
{возврат назад)ИНАЧЕ,一 + 1;
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ {возврат в случае неудачи}
КОНЕЦ ПОКА {возврат если р (/) не может больше увеличиваться} р (i) — 0; i — i — 1;
КОНЕЦ ПОКА
КОНЕЦ PERM
Программу можно улучшить, если в нее включить несколько специальных случаев. Однако необходимо сделать одно замечание. Эта программа является жесткой, она составлена без учета числовых данных... Все перестановки определяются в одном и том же порядке, какими бы ни были векторы а и т. Это может привести к неприятным последствиям, так как определенные значения p(i) могут быть жестко связаны с данными. И эти значения вполне могут оказаться в числе последних, находящихся справа. Сколько же при этом будет бесполезной работы! Однако не исключено (даже при решении этой задачи методом перебора, который ведет к экспоненциальному возрастанию времени), что конкретные данные задачи могут привести
к такому ограничению числа перестановок, что .время решения будет возрастать в соответствии с полиномиальной зависимостью.
Решение задачи системой ALICE
Система ALICE при решении задачи учитывает все сказанное выше. Приступая к работе, она начинает вовсе не с построения алгоритма, а с анализа данных. Предположим, например, что /г = 9 и векторы а и m заданы в следующем виде:
а = (1 1110 110),
т = (1 10 10 10 1).
При т(/) = 0 ограничения, накладываемые вектором т, дают
П(р(/4-1)>р(0)
или
Р«+1)&Р(9・
Но р должно удовлетворять биекции, поэтому
"«+1) < р(%
Отсюда следует
p ⑵>p ⑴,63)>p⑵,
"⑷еp⑶,65)> "⑷,
"(6)<"(5), р(7) > р(6),
р (8) Ср ⑺,р (9) > р (8).
Дуги 亿 9) в графе отсутствуют для всех /, для которых выполняется условие а(,)=1. Ограничения, накладываемые вектором а, приводят к 22 неравенствам:
a⑵=1今
p⑴,f⑵+1;
а (3) = 1 =>
р ⑴,р(3}+1, Р ⑵卢"(3)+1,
a⑷=1今
p ⑴,p⑷+1, /T ⑵,р⑷+1, р ⑶,p(4)+1,
а (5) = 0 今
Р(6)干 р(5) +1, р⑺,р(5)+1,р(8),沢5)+1 "(9),口(5) + 1,
=# 1 =>
"⑴,"(6)+ 1, р⑵,р(6)+ 1, "(3)干 р(6) + 1,"⑷,р(6)+ 1, "⑸,"(6)+1,
а (7) = 1 =>
р(1},р(7)+1,р(2),р(7)+1,р(3),р(7)+1, р(4),р(7)+1.
P ⑸耍 p(7)+l, P(6)#p ⑺+1,
a (8) — 0 #
p⑼*"⑻+L
Ограничения типа W система предпочитает ограничениям типа *. Эти ограничения ALICE анализирует в порядке, который считает для себя удобным. Он задается вычислением функции Грунди (разд. 8.5.2) и поясняется на рис. 8.13.
р(3)лР'5» 6了入 Р《9»
Рис. 8.13. Граф ограничений по монотонности.
Первым проверяемым ограничением является р(2)〉р(1), из которого следует р⑵戸 2. Тогда р(3)> "⑵ влечет за собой р(3)^3. Кроме того, р(5)^ 2, р(7)^ 2, "(9)^2, p(4)W& P(6)W8,p ⑻ W8,p ⑵ W8Hp(1)W7.
Теперь некоторые проанализированные ограничения с неравенством исчезают, так как становятся тривиальными. Это относится, например, к р(6)*р(5)+ 1 или к р(6)*р(7)+ 1, по-' скольку р(6) V р(5) н р⑹ V р(7).
На этом этапе новая информация не может быть выведена» но р является сюръекцией и точка 9 пространства изображений имеет в качестве предшественников только р(5) и р(9):
Сначала выполняется выбор р(5) = 9. Он сразу приводит к тому, что исключаются пятнадцать дуг, так как помима р (/)=/= 9 для всех i, отличных от 5, из ограничений, определяемых вектором а, следует р(6)*А, р ⑺,8, ,а из ограничений, накладываемых вектором /п, следует р(3) W 8,"⑺ W 7, p(2)WZ Р⑴ W6,p(4)WZ P(6)W6, р(8)£б.
Таким образом, только р(3) и р(9) могут быть равными 8. Выбор р (3) = 8 приводит к р (4) =/= 7 и р (7) =/: 7.
Точка 7 теперь имеет только двух предшественников. Допуская, что р(2) = 7, ALICE приходит к выводу, что "(1)=6 или р(9)= 6.
Положив р(1) =6, приходим к выводу, что p(4)W4 и р (7) W 4, следовательно, р (6) W 3, р (9) = 5.
Приняв "(7)=4 и учитывая единственное оставшееся ограничение р(4)=/= р(6)+1, получаем для данного случая четыре решения
67819243 5, 67819342 5,
67829341 5, 67839142 5、
Для того чтобы найти 42 решения задач, надо вернуться только на шесть двоичных выборов, т. е. на 64 возможности вместо 9! = 362880.
Для специальных программ существуют худшие случаи. Предположим на мгновение, что в качестве данных используются
п = 100 и щ^а = (\ с 98 нулями).
Процедура PERM будет работать всегда одинаковым образом. Она последовательно находит векторы 1, 12, 123, 13, 132, 1324, 14, 142, 1423, 143, 1432, 14325 и т. д., хотя в действительности, как это сразу и определяет ALICE с помощью анализа ограничений,' содержащих неравенства типа W, с необходимостью следует р (2) > р(1) и р(2) > р(3) > р(4) ... > р(100), т. е. р(2)= ЮО.
Кроме того, при этом тривиально удовлетворяются все ограничения, связанные с вектором опережения, так как для / 2 н i^3 выполняется соотношение p(j)Vp(,)・ Следовательно, единственная степень свободы связана со значением р(1) в множестве [1, 99]. Имеется только 99 перестановок, удовлетворяющих условию задач. Время, которое требуется ALICE для их нахождения, имеет полиномиальную зависимость от л.
. Конечно, подобный тип данных может быть специально предусмотрен в программе PERM, Но с другими типами данных будет гораздо сложнее. Даже модифицированная программа PERM будет всегда отставать для различных наборов данных, например, если в вектор а добавить несколько единиц (и задача не будет иметь решения) или заменить единицы на нули, и наоборот.
'Задача становится еще более трудной, если в нее ввести новые ограничения, слегка изменив ее условия, как это часто происходит на практике. Если, например, потребовать, чтобы выполнялось условие p(n/2)= 1, то процедуру PERM будет очень трудно модифицировать, чтобы достаточно рано учесть это новое условие, тогда как ALICE его сразу использует и тем самым сократит свой поиск.
8.9. Ввод условий задач на французском языке
В настоящее время ведутся работы, направленные на то, чтобы условия задач вводить в наиболее естественном виде и предоставить систему в распоряжение любого пользователя, даже не специалиста по информатике. Речь в основном идет о том, чтобы снабдить систему общими знаниями, которые в будущем помогут пользователю обходиться без уточнения теку-
щих объектов и их свойств. В идеальном случае это непосредственное восприятие французского языка в режиме интерактивного чтения и контроля.
Прототип такой системы был реализован Лопес-Ласейком (С. Lopez-Laseica). Мы его рассмотрим ниже более подробно. Большая трудность в данном случае заключается в огромном объеме “текущих” знаний, которые мы используем во всех областях для выражения наших мыслей и взаимного обмена информацией. Каждый специалист по информатике знает, что самой сложной работой является понимание собеседника.
Вместе с автором ограничим область применения системы математическими головоломками. Хотя к ним и не сводятся все возможные задачи, но тем не менее при их решении необходимо решить многие проблемы. Так, нужно глубоко понять условие задачи, не пропустить связи между фразами, которые могут находиться далеко друг от друга, для того чтобы поставить, а затем и решить задачу. Достаточно краткий и сжатый язык ALICE является основой для этой системы. С использованием соответствующей техники, разработанной в рамках искусственного интеллекта (различного рода словари, семантические сети), оказывается возможным с высокой эффективностью выполнить понимание условия и его перевод в традиционную форму. Для текста, занимающего половину страницы, требуется от одной до четырех секунд.
Принцип перевода
Основную часть программы перевода составляют данные. Для каждого слова и для каждого его значения в специальном словаре указываются его синтаксические формы, семантические свойства и классы, слова, с которыми оно может быть связано в обычном смысле, выводы, которые могут из него следовать, В словаре, например, находится такая информация:
ФРАНЦИЯ:
определение группа следствиеопределение группа следствие匸 элемент;=страна;^язык:匸 элемент;=страна;^язык:отношениеотношениенацнональность: государственный строй:житель, страна.нацнональность: государственный строй:житель, страна.французский, француз,республика;французский, француз,республика;
определение группа следствие
определение группа следствие
匸 элемент;
=страна;
^язык:
匸 элемент;
=страна;
^язык:
отношение
отношение
нацнональность: государственный строй:
житель, страна.
нацнональность: государственный строй:
житель, страна.
французский, француз,
республика;
французский, француз,
республика;
В этом словаре содержится тысяча слов для обработки пятидесяти формулировок. Глаголы в нем играют особую роль: с их помощью определяются действия, выражающие ограничения. Например, для глагола《давать»:
ДАВАТЬопределение группа следствияДАВАТЬопределение группа следствия=глагол;
ДАВАТЬ
определение группа следствия
ДАВАТЬ
определение группа следствия
=человек человеку;
=до:.
(дающий) имеет (предмет)
после:'
(дающий) имеет (~ предмет)
(берущий) имеет (+ предмет)
Для слова МЕНЯТЬ, которое соответствует синтаксической конструкции “4 меняет у В X на К", в словаре находим
МЕНЯТЬ (Л В) (X У)
определение — А дает X В и В дает У А.
Программа, которая анализирует текст при помощи словаря, постепенно определяет подходящий смысл всех слов, используя при этом синтаксические и семантические правила.
С помощью глаголов определяется остов фразы (фаза 1). Затем обрабатываются вспомогательные слова, которые определяют взаимодействие синтаксических групп друг с другом (фаза 2). Если какая-либо информация содержится в словаре, но является бесполезной в данном контексте, т. е. с ее помощью нельзя сформулировать ни одно ограничение, такая информация забывается. Например, прилагательное исерыйп в сочетании “серый кот” полезно только в том случае, если ниже в условии задачи говорится о ирыжем коте". Если же цвет не упоминается, то такая информация бесполезна.
・ В третьей фазе программа выражает условие на языке ALICE..
Заметим, что такой перевод может быть сделан только тогда, когда правильно понят полный смысл текста. При этом следует учесть, что смысл каждой фразы может зависеть от контекста, например фраза иЖан и профессор читают'* может означать:
действие (Жан) = действие (профессор) = чтение
а может означать только, что Жан 考 профессор.
Исходя из оставшейся части условия программа определяет полезный смысл фразы в условии головоломки. Поясним сказанное на примере.
Пример перевода
Условие задачи вводится на французском языке с консольного терминала. Текст условия:
Пять человек различных национальностей живут в пяти первых домах одной из улиц. Они являются 'представителями пяти
различных профессий, и у каждого из них есть, свои любимые напитки и животные, среди которых нет повторяющихся. Дома, в которых они живут, покрашены в различные цвета. Известно что:
Англичанин живет в красном доме.
У испанца есть собака.
Японец является художником.
Итальянец пьет чай.
Норвежец живет в первом доме слева.
Владелец зеленого дома пьет кофе.
Зеленый дом находится справа от белого.
Скульптор разводит улиток.
Дипломат живет в желтом доме.
В доме посередине пьют молоко.
Норвежец живет рядом с голубым домом.
Скрипач пьет фруктовые соки.
Лису держат в доме, соседнем с домом врача.
Лошадь держат по соседству с домом дипломата.
Кто держит зебру и кто пьет воду?
В первой фазе интерпетатор образует именные группы. Множество ичеловек,т объединяется в семантическую сеть с двумя свойствами: “5” и иразличные национальностип. Глагол “живет” образует такую же группу по отношению к тем, к кому он относится, то же относится к артиклям французского языка, несущим определенную смысловую нагрузку. Множество “дом” также формируется вместе со своими признаками, В результате последовательного анализа всех фраз образуется внутренняя сеть.
Для более простого описания сети вводятся стандартные обозначения. Так “жить", “находиться в", мобладатьм заменяются на ииметь дом*\ а отношения “слева”, “рядом", мпосе- редине" заменяются числами. Окончательно, перед тем как семантическая сеть передается системе ALICE, устанавливается следующее соответствие между смыслом слов и целыми числами:
НАЦ(1) Англичанин
НАЦ(2) ■*-> Испанец
НАЦ(З) Японец
НАЦ(4) Итальянец
НАЦ(5) ч—► Норвежец
Д0М(1) <—► Красный
Д0М(2) ч—► Зеленый
ДОМ(З) ―► Белый
ДОМ(4) +► Желтый
ДОМ(5) -*—> Голубой
ПРО(1) ■<—► Художник ПРО(2) •*-> Скульптор ПРО(З) —► Дипло м ат ПРО(4) -«—>■ Скрипач ПРО(5) 一 Врач
НАГ!⑴— Чай
НАП(2) —> Кофе
НАП(З) Молоко
НАП(4) —► Фруктовый сок
НАП(5) ■*—> Вода
ЖИВ(1) *► Собака
ЖИВ(2) "«^> Улитка
ЖИВ(З) Лиса
ЖИВ(4) *—► Лошадь
ЖИВ(5) ■*-* Зебра
Теперь все ограничения выражены с помощью этих соответствий и окончательная формулировка условия передается системе в следующем виде:
ПУСТЬМНОЖЕСТВОПУСТЬМНОЖЕСТВОESHUflMnpSMsESHUflMnpSMs5 5 5 5 5 5 55 5 5 5 5 5 5т т т т т т т NNNNNNNт т т т т т т NNNNNNN
ПУСТЬ
МНОЖЕСТВО
ПУСТЬ
МНОЖЕСТВО
ESHUflMnpSMs
ESHUflMnpSMs
5 5 5 5 5 5 5
5 5 5 5 5 5 5
т т т т т т т NNNNNNN
т т т т т т т NNNNNNN
НАЙТИBIJНАЙТИBIJ=--------1234522333ццццц^моопАААААООРРАнннннддппн=--------1234522333ццццц^моопАААААООРРАнннннддппнНАЦ НЦ —ES ДОМ ДМ——》ES ПРО ПР ―> ES НАП НП —> ES ЖИВ ЖВ——> ESДОМ 1ЖИВ 1ПРО 1НАП 11НАП 2ДОМ 3 + 1ЖИВ 2ДОМ 43НАЦ НЦ —ES ДОМ ДМ——》ES ПРО ПР ―> ES НАП НП —> ES ЖИВ ЖВ——> ESДОМ 1ЖИВ 1ПРО 1НАП 11НАП 2ДОМ 3 + 1ЖИВ 2ДОМ 43
НАЙТИ
BIJ
НАЙТИ
BIJ
=--------1234522333ццццц^моопАААААООРРАнннннддппн
=--------1234522333ццццц^моопАААААООРРАнннннддппн
НАЦ НЦ —ES ДОМ ДМ——》ES ПРО ПР ―> ES НАП НП —> ES ЖИВ ЖВ——> ES
ДОМ 1
ЖИВ 1
ПРО 1
НАП 1
1
НАП 2
ДОМ 3 + 1
ЖИВ 2
ДОМ 4
3
НАЦ НЦ —ES ДОМ ДМ——》ES ПРО ПР ―> ES НАП НП —> ES ЖИВ ЖВ——> ES
ДОМ 1
ЖИВ 1
ПРО 1
НАП 1
1
НАП 2
ДОМ 3 + 1
ЖИВ 2
ДОМ 4
3
(HAU ПРО 4 (ЖИВ (ЖИВ(HAU ПРО 4 (ЖИВ (ЖИВМ4ООwnpp==н==М4ООwnpp==н==+ ++5 5 3+ ++5 5 3или (НАЦ 5 = 〃ОМ 5-1)или (ЖИВ 3 = ПРО 5 亠 1) гии (ЖИВ 4 = ПРО 3—1)или (НАЦ 5 = 〃ОМ 5-1)или (ЖИВ 3 = ПРО 5 亠 1) гии (ЖИВ 4 = ПРО 3—1)
(HAU ПРО 4 (ЖИВ (ЖИВ
(HAU ПРО 4 (ЖИВ (ЖИВ
М4ООwnpp==н==
М4ООwnpp==н==
+ ++
5 5 3
+ ++
5 5 3
или (НАЦ 5 = 〃ОМ 5-1)
или (ЖИВ 3 = ПРО 5 亠 1) гии (ЖИВ 4 = ПРО 3—1)
или (НАЦ 5 = 〃ОМ 5-1)
или (ЖИВ 3 = ПРО 5 亠 1) гии (ЖИВ 4 = ПРО 3—1)
Головоломка решается за 4 с, при этом система выполняет один-единственный выбор.
Конечно, формулировки большинства задач являются более длинными, запутанными и двусмысленными. Мы же хотели только показать принципиальную возможность решения задачи, условие которой сформулировано на разговорном французском языке.
Глава 9 УСВОЕНИЕ ЗНАНИЙ
Обучение можно определить как совершенствование, связанное с приобретением опыта. Эта область применений перспективна для систем искусственного интеллекта: знания, которые необходимо усвоить, настолько разнообразны, что идеальной является информационно-вычислительная система, овладевающая ими сама на основе примеров, а не получающая эти знания от нас в виде порций. Однако желание создать за короткий срок самообучающуюся программу там, где мы даже не представляем механизм ее функционирования, является довольно иллюзорным.
Кроме того, всякий обучаемый сталкивается с проблемой забывания: по ходу возникает так много разнообразных возможностей, что просто необходимо уметь что-то забывать. Таким образом, существует важное различие технологического характера между компьютерами и людьми относительно приобретения знаний вообще и подходах к решению задач в частности.
Можно сказать, что человек ^запрограммирован'* на приобретение знаний. Он не может делать что-либо без того, чтобы не запоминать, что делает (иногда даже против своей воли). С рождения человеку присуще рефлекторное поведение, и по природе он чрезвычайно любознателен. Всю жизнь он не может противостоять желанию искать, приобретать информацию: фиксирует взгляд на том, что движется, напрягает слух при необычном звуке... Компьютер же априори лишен такой программы общего поиска и обучения.
Различные типы обучения
Отметим сначала, что процедура усвоения знаний имеет иерархическую структуру (рис. 9.1). Уровень 1 представляет просто программированное обучение: специальный фиксированный код управляет тем, что должно быть сделано. Все обычные программы для компьютеров относятся к этому уровню, так же как и действия большинства промышленных роботов, для которых, например, рука рабочего определяет раз и навсегда необходимые движения для покраски автомобиля: он будет точно имитировать их в дальнейшем независимо от того, автомобиль перед ним или что-либо другое.
Уровень 2 соответствует запоминанию наизусть: все ситуации запоминаются вместе с действиями, которые нужно предпринять в каждой из них. Здесь поведение системы может быть обусловлено по Павлову: она получает «наказание», если перед новой ситуацией не находит хорошего решения, и «поощрение» в противном случае.
Некоторое усовершенствование этого метода представляется на уровне 3 статистическим запоминанием: в системе хранится
Обучение с прео5ретением новых знаний
Усвоение знаний на при^ера^с
CEamacmuqecxoe за〃ома#а&ае
Рис. 9.1. Процедура усвоения знаний.
лишь классификация ситуаций, полученная на основе анализа достаточно большого числа случаев: запоминаются только компоненты, соответствующие определенному действию. 'Затем на уровне 4 система может усваивать знания на примерах с помощью «учителя» (она способна к обобщению). Наконец, на уровне 5 обучение происходит без учителя; система в состоянии индуктивным способом порождать новые ситуации, выдвигать гипотезы и новые концепции.
Отметим, что каким бы ни был уровень, вопрос о том, чтобы обучаться, начиная 《с нуля», не стоит и обсуждать. Именно минимум знаний для процесса обучения в той среде, где мы находимся, представляет основную трудность для программирования системы, действительно способной к приобретению знаний.
Обучение игре в шашки
А. Сэмюэль, инженер фирмы ИБМ, написал для игры в шашки хорошие программы в период с 1956 по 1967 г. В шашки играют на доске 8*8. Пешки (шашки) могут ходить только вперед, дамки — через поле, вперед и назад. Возможность превращения пешки в дамку требует около 8 ходов.
Запоминание наизусть
Первая программа, написанная Сэмюэлем, относилась к уровню 2. Он просмотрел около 180 000 позиций, взятых из лучших книг, для обучения своей программы! Так как это
довольно много (особенно для машин того времени), Сэмюэль воспользовался тремя процедурами управления памятью.
Ситуации упорядочиваются для ускорения доступа, во-первых, по числу пешек н дамок у обоих игроков и, во-вторых, по частоте появления в опыте, т. е. в собственных играх программы.
Симметричные ситуации, получаемые заменой белых полей на черные, рассматриваются одновременно.
С того момента, как состояние памяти приближается к переполнению, вступает в действие процедура сброса позиций,
Рис. 9.2. Схема игровой доски.
наименее часто встречающихся в самых последних партиях (так что Сэмюэль придумал на 15 лет раньше алгоритм замещения страниц для компьютеров с виртуальной памятью).
Кроме того, некоторые полагают, что его идеи имеют отношение и к размеру слов на машинах ИБМ серий 700 и 7000, когда ему удалось найти хорошее представление для игровой доски (так как пешки ходят только по черным полям). Сэмюэль занумеровал поля расширенной схемы доски так, как показано на рис. 9.2.
Четыре дополнительных поля 9, 18, 27 и 36 играют роль ограничителей и вся доска может быть представлена в виде вектора [1, 36] в одном машинном слове. Чтобы получить допустимые правилами ходы (без взятия), достаточно к номерам черных полей добавлять цифру 4 или 5 (перемещение и превращение).
За этой первой программой последовала следующая, усовершенствованная. В самом деле, было жаль терять имеющуюся информацию после записи позиции в память. Тогда Сэмюэль ввел дерево поиска для оценки будущих позиций. По глубине оно ограничивалось тремя полуходами, не считая взятия на последнем ходе или подстановки под удар черной пешки (эти ограничения иногда вынуждали к просмотру до двадцати полу^ ходов). Наконец, Сэмюэль ввел полиномиальную функцию оценивания F = Е pR.
Он выбрал 38 параметров pi и 38 характеристик 尸厶 среди которых отметим материальный выигрыш, контроль центра, число выдвинутых пешек, мобильность, число V-позиций (свободное поле, окаймленное тремя черными пешками), число угроз, относительную продвинутость обоих лагерей.
Таким образом, Сэмюэль был первым, кто запрограммировал процедуру альфа ——бета, проявившуюся в шахматных программах.
Воспользуемся описанной программой в трех различных случаях.
Усвоение знаний из книг
Поскольку в памяти находятся все позиции, программа может оценить их во время каждой игры, пользуясь минимаксной процедурой с функцией оценивания F. Она подсчитывает по 戸 число п ходов, лучших по сравнению с хранящимися в памяти, и число худших ходов L. Если Н мало, a L велико, между рекомендацией из книг и произведенным оцениванием наблюдается соответствие. В противном случае коэффициент «корреляции» С
С = & — 〃)/& + 〃),
равный 1 для случая полного соответствия, может измениться до —1, указывая на полное расхождение между книжным знанием и результатом оценивания по 尸.При С, отличном от 1, ситуация считается переоцененной при 方 > Ь, недооцененной при /7 V 0・ Отношение С/ для каждого параметра Р/ вычисляется, по формуле
Г — Lt-Hi
5 -“
где Hi ——число ходов, стоящих в соответствии с р/Р; перед наилучшим ходом с "i V 0; Li 一 число ходов, стоящих в соответствии с ptPi после наилучшего хода с pi V 0.
Если Ci отрицательно, нужно уменьшить значения положительных Если С; положительно, нужно увеличить значения отрицательных р“ Таким образом, программа обучения по книгам «решает» заменить параметр р左 с наибольшим абсолютным значением коэффициента С^, полагая
pft= 1, а для i * 月 pi = 2я, если п&|粤| + 1.
В результате программа сохраняет лишь 16 из 38 исходных характеристик. В каждый момент 22р/ имеют значение 0. Для каждой партии наименьшее С/ дает штрафное очко
соответствующей характеристике: после трех штрафных очков характеристика отбрасывается и заменяется на ту, которая находится дольше всех в очереди ожидания.
После двадцати партий программа усвоения знаний по кни~ гам выходит на достаточно высокий уровень.
Обучение без учителя.
Так как речь идет об игре, то программа может играть сама против себя. Пользуясь разными значениями 卩厶 она может в этом случае усваивать знания самостоятельно!
Пусть Л и 8 — две версии программы с функциями оценивания 尸а и Fb- Если Л выигрывает, то слегка изменяются параметры 尸匕,если А проигрывает, она получает штрафное очко. После трех штрафных очков производят взаимный обмен функциями Fa в Fb в существенно изменяют параметры 尸瓦 Этот вариант представляет собой попытку использовать классический метод градиента с возмущениями в невыпуклом пространстве.
Используя эту идею и минимаксный подход, Сэмюэль написал свою четвертую программу.
Обобщенное обучение.
Именно так определил Сэмюэль возможности новой программы. Он не хотел согласиться с тем, что ни одна из его предыдущих программ не могла обучаться во время сеанса игры. Ведь мы отдаем себе отчет в совершении ошибки уже через несколько часов и избегаем ее повторения в текущей партии. Программа с использованием функций оценивания и процедурой альфа — бета также обладает свойством апостериорного оценивания ходов: один раз она встречается с определенной позицией во время оценивания, а другой ——через несколько' ходов на реальной игровой доске (рис. 9.3).
В случае когда 尸 представляет идеальную оценку и все происходит так, как и предвидели, мы должны получить 尸(S)= = F'(S). Если же F(S) >F'(S), оценка оказывается слишком оптимистичной и противник играет лучше, чем мы рассчитывали. В случае же усвоения знаний из книг программа уменьшает положительные веса и увеличивает отрицательные. Аналогично предыдущей процедуре снова вычисляются коэффициенты
a =(厶一从)/(厶+从),
где /Л теперь обозначает число случаев с начала партии, в которых для i-й характеристики выполнялись неравенства
PiPi < 0 и 尸(S)> 尸(S).
Для 尸(S) V 尸'(S) алгоритм тот же, но с учетом симметрии.
Напомним, что сама программа может играть и за 4*против- ника”. Эта возможность используется в середине партии, когда число возможных позиций особенно велико.
В начале характеристики игры этой последней программы Сэмюэля относительно нестабильны, но в ее распоряжении уже
Рис. 9.3. Два примера оценивания одной позиции, а —ситуация, встречаемая при поиске с использованием процедуры альфа —бета. Ее оценка представляется F (S). б — та же ситуация во время реальной игры: оценка 卩(S).
имеется 180 000 ходов, введенных ранее для предыдущей программы, и ночами она может играть против себя. В результате Сэмюэль постоянно стал проигрывать в шашки своей собственной программе.
Несколько позже эта программа, достигнув беспрецедентного для игровых программ уровня, выиграла у чемпиона штата Коннектикут (К. Nealey, 1962), оказала достойное сопротивление чемпиону мира, хотя и проиграла ему по переписке четыре партии (W. Hellman, 1965).
Программа играла все лучше и быстрее (вероятность наличия текущей позиции среди имеющихся в памяти возрастает с течением времени). Однако такое обобщенное обучение включало определенный риск, и Сэмюэлю повезло его обнаружить: обучение зависит от качества игры противника: если тот играет плохо, то и в программе устанавливаются плохие .параметры. Действительно, использование минимаксной процедуры предполагает, что противник играет наилучшим для себя образом. Если :же противник играет плохо, программа делает из этого вывод (и неверный), что позиция была недооценена и меняет параметры. А так как обучение связано с каждым ходом (даже в течение партии), то совокупность параметров может быть полностью изменена уже через пятнадцать ходов. И тогда программа начинает сама играть плохо, так что противнику достаточно “неожиданно” начать играть хорошо для выигрыша всей партии!
Сэмюэль первым внес технические изменения в альфа — бета-процедуру: постоянное усечение дерева поиска в ширину и глубину, сортировку ходов на первом уровне. Но основное внимание он обратил на более важную проблему. Отметим следующее:
По построению функция оценивания является линейной по каждой из характеристик. Однако некоторые характеристики
D1…"""2什"
Рис. 9.4. Иерархия сигнатур на трех уровнях.
должны усиливаться. Так, если Р/ и Р; дают преимущество черным, то член с Р/ X Р; должен выражать такое преимущество.
По определению общая функция может быть представлена в табличной форме. Так как на учете имеются 38 характеристик, идеальной была бы таблица, соответствующая отображению №® в N-
При необходимости должен быть найден компромисс между слишком грубым линейным изменением, с одной стороны, и такой большой таблицей — с другой.
Сэмюэль 、использовал идею таблиц сигнатур ——иерархии таблиц, предет а в л яющей хорошее приближение к рассматривает мой выше общей функции: 38 характеристик группируются по типу (некоторые могут входить в разные группы); к одному типу относятся те характеристики, которые считаются, по мнению экспертов и самого Сэмюэля, взаимосвязанными. Каждая из них ограничена тем, что может принимать не более семи различных значений. В то же время коэффициент теперь приписывается всей комбинации значений внутри одного типа. На рис. 9.4 приведена общая схема расположения таблиц сигнатур.
Сэмюэль вновь ввел 180 000 экспертных ходов и рассчитал параметры с использованием метода корреляции. Было установлено, что примерно после 80 000 ходов ситуация стабилизируется. В действительности все происходит так, как если бы каждый матричный элемент был единственным элементом: имеется 315 >< 9 элементов для типа Л, 125 X 3 для типа 8 и 343 для типа С, т. е. около 3500 элементов вместо 16 в программе 1.
Так как большинство характеристик участвуют только в определенных фазах игры, ход всей партии делится на шесть фаз в зависимости от числа продвигающихся пешек и степени про- двинутости. Такое деление дополнительно уменьшает время расчетов.
Отметим, что это время весьма незначительно, потому что оценивание представляет просто поиск в таблице. Вычисление F(S) происходит по одной инструкции:
尸(S)С(修(4 ("1,"2,"з; "J, АгО ^9(•))» ^2(•)> ^з(-))-
Эта программа стала и останется настоящим чемпионом мира игры в шашки. Без использования процедуры альфа — бета она выбирает наилучший ход в 68 % случаев (против 32 % с полиномиальным оцениванием и 16 % со случайным выбором), а с
использованием процедуры альфа — бета существенно улучшает
ее показатели, регулярность —ее показатели, регулярность —Кроме того, рассмотренный подход придает игре исключает плохие ходы в течение всей партии.
ее показатели, регулярность —
ее показатели, регулярность —
Большим недостатком игровых программ является необходимость в задании исходных характеристик р( без возможности их сгенерировать самой программой. Поэтому такое статистическое обучение является хорошим приемом и даже довольно часто ис
пользуется людьми на практике..
Коллектив исследователей продолжил поиски в этом направлении и спроектировал систему, способную порождать некоторую совокупность действий, полезных для целого ряда ситуаций. Это исследование проводилось в области робототехники, и система называлась STRIPS (Stanford Research Institute Planning System) (Fikes, Nilson, 1973).
Обучение робота полезным действиям.
Система STRIPS
Элементарные операции (или операторы) в окружающей робота среде вначале описываются как тройки списков:
Первый список содержит условия, при которых может выполняться каждая операция.
Второй и третий списки уточняют факты, которые должны быть соответственно изъяты или добавлены к описанию среды.
если робот действительно использует рассматриваемую операцию. Необходимые модификации производятся в системе STRIPS с помощью процедуры доказательства теорем, основанной на методе резолюции (гл. 3) (рис. 9.5).
Оператор 27: (переместить объект в комнате).
Список С (условия) : Робот на полу.' Робот в комнате х в месте ZL
Объект О на полу в ZL Объект О перемещаемый. Места Z1 н Z2 в комнате х.
Список —: Робот в ZL Объект О в Z1.
Список +: Робот в Z2. Объект О в Z2.
Рис. 9.5. Пример описания элементарной операции в системе STRIPS.
Обучение проводится каждый раз, как только система эффективно решает задачу. Она обращается к последовательности использованных элементарных операций, чтобы попытаться извлечь дополнительную информацию. План, оказавшийся успешным через и шагов, предположительно будет образцом для достижения аналогичных целей, образцом, который система STRIPS отбирает для дальнейшего использования. Последовательность таких операторов 0卜...,Оп сначала группируется в треугольную таблицу (рис. 9.6).
По построению в этой таблице на пересечении строки i и столбца k располагаются факты, которые добавляются оператором ki и сохраняются до момента применения оператора L Если теперь в строке / встречается описание, которое совпадает с описанием цели в некоторой новой задаче, достаточно извлечь на последовательности О(, Оп нужную подпоследовательность. Половина работы уже сделана, и О/ — последний используемый
ЁШ2匸匸回
Рис: 9.6. Последовательности операторов в системе STRIPS.
оператор. Поднимаясь по таблице, теперь достаточно определить первый оператор О;, условия которого удовлетворяют новой среде.
Последовательность 0〃 Ож, ..., Oj может быть непосредственно использована для достижения новой цели. Это макродействие соответствует, например, тому, чтобы “взять объект О, дткрыть дверь, зажечь свет, подняться по лестнице, положить О, выключить свет, конец"; робот научился этому действию и его запомнил.
Другая программа, разработанная Уотерманом для игры в покер, обучается с помощью апостериорного анализа своего собственного опыта.
Усвоение правил игры
Уотерман исследовал игры в -покер для двух игроков при решении вопроса о ставках. Игрок может удвоить ставку, попросить открыть карты противника, уравняв ставки, или сдаться. После открытия карт выигрыш переходит к игроку с более сильной картой и в это же время можно увидеть, существовала ли возможность выиграть больше или проиграть меньше. Такую информацию будет использовать программа для* последующих модификаций своих действий. Процесс замены карт осуществляется здесь с помощью алгоритма, который максимально повышает надежду на индивидуальный выигрыш каждого игрока независимо от противника.
Общая идея заключается в том, чтобы описать игру с помощью характеристического вектора и решений, принимаемых по совокупности правил продукций, отделенных от программы и по желанию изменяемых. Покер является игрой с неполной информацией, которая требует оценки как карт, так и стиля игры противника. Ситуации здесь менее четко определены, чем в шашках, и можно продемонстрировать всю полезность правил продукций по сравнению с таблицами сигнатур. Минимаксная процедура в действительности не может играть обычную защитную роль: каждый ход является единственным и никогда больше не встречается в партии. '
Вектор описания игры (дескриптивный вектор) обычно содержит шесть компонент:
значение очков, определяющее достоинство данного сочетания карт (丿М);
—количество денег в банке (ЯР);
— предыдущая ставка противника (£)/?);
—число карт, замененных противником (С£);
—вероятность возможного блефа противника (РВ);
—стиль игры противника: более или менее консервативный (СД).
С другой стороны, программой вычисляются по совокупности партий с данным противником статистические характеристики: зависимость между ставками и действительным достоинством карт, число замеченных блефов, число решений сдаться.
Правила продукций имеют вид
Характеристический вектор ситуации -^ объявление ставки
Оии являются упорядоченными: правило i может быть использовано только после правил с номерами от 1 no i— 1.
Так, следующее правило (задаваемое учителем):
uИгрок с надежно выигрышной комбинацией карт на руках должен максимально поднимать ставки, стараясь не рисковать заставить противника сдаться. Однако, если банк уже очень большой, следует попросить открытьсям
будет переведено для программы в следующей форме:
Rl: (SG* *, г, *, РВ, CA)f Мах
R2: (SG* Thaut, г, *,*) Открыться
R2 будет рассматриваться перед R1
(Звездочка означает, что соответствующий параметр не является существенным.)
Значение параметра Thaut фиксируется заранее, например, положим Thaut = 100. Наличие г означает, что противник действительно пошел на повышение ставки (г > 0)/ Значение Мах (максимальный уровень повышения без риска сдачи противника) фиксируется другим правилом и зависит, в частности, от значений РВ и СА. Наконец, отметим, что такое правило может быть уточнено или изменено самой программой. Обучение с использованием учителя продолжается путем накопления знаний: хорошие правила получают большой приоритет, а область применения других ограничивается.
Предполагается, что следующая информация дается учителем после каждого хода:
——текущий вектор подходящих параметров;
——хорошее решение;
——причина этого решения.
Рассмотрим три случая:
Программой принято хорошее решение по хорошим правилам, и в этом случае ничего не меняется.
Ни один из членов, стоящих справа, не соответствует хорошему решению, и применялось Ле правило: программа вставляет на (i— 1)-е место правило, указанное учителем.
Перед применяемым правилом Rd или после него существует правило /?/, которое могло бы привести к хорошему решению: параметры правил, которые помешали применению /?/, автоматически изменяются.
Пример. Рассмотрим правила
Rl(ol, *, с2,*) ->повысить на 5
R2(al, bl, *, *, el, *)^увеличить (РВ) на 0,5 (вероятность блефа противника)、
R3(a2, *, cl, el, *)->повысить на 5
R4(al, *, *, *, *, *) —>увеличить (РВ) на 0,5
вместе с ограничениями, налагаемыми по определению:
al >8, a2 V 10, bl >9, cl < 3, c2 > 11, el =0 и вектором (9, 4, 5, 7, 0, 5), соответствующим ситуации. Значение (VM), следовательно, соответствует al или 。2;(〃尸)и (QR) не представляют ни Ы, ни cl или с2 и применяться может только правило R4. Но в этот момент учитель критикует выбранное решение и говорит, что следовало играть повышение на 5, потому что (VM) большое (больше 7), в то время как (DR) небольшое (меньше 6).
Усваивается, следовательно, правило:
Rp(a3, *, сЗ, *, *, *)^-повысить на 5 при условиях аЗ > 7 и сЗ < 6
Программа ищет по порядку правило, которое могло бы привести к такому действию. Таким кандидатом могло бы быть R1, но оно не пригодно, так как ограничения на с2 и сЗ противоречат друг другу и не могут быть удовлетворены одновременно. Правило R3, напротив, оказывается более подходящим: решение является тем же и ограничения могут быть согласованы. Так как это целевое правило R3 расположено перед ошибочным R4, нужно изменить область параметров。2 и cl таким образом, чтобы они соответствовали ситуации.
Правило R3 автоматически заменяется на следующее:
R'3(a4, *, сЗ, *, el, *) ^повысить на 5 при условиях
7 < а4 < 10 и сЗ < 6
Полностью процесс обучения представлен на рис. 9.7.
В приведенной процедуре возможны две опасные ситуации. Первая связана со сверхограничениями правил и возникает при излишне пунктуальном учителе. Число правил возрастает до бесконечности, и каждое может быть применено только к одному случаю. Чтобы избежать этого, число правил ограничивают некоторым произвольным образом и последнее из инх с вектором (*, *, *,明 #) дает случайно выбранное решение.
Ввод вектора ситуации и хорошего решения
Отработка правил
工СЛМрешение хорошее
ТОГДА КОНЕЦ
ЛНАЧЕ сконструировать новое подходящее правило Rp
Пусть Rd — правило, вызвавшее неверное решение
ЕСЛИ существует правило RI, которое:
—имеет в правой части такой же член, как и Rp
—определяется неравенствами, совместимыми с неравенствами Rp ТОГДА ЕСЛИ R1 находится перед Rd: ТОГДА обобщить определения Ri Я Rp
ИНАЧЕ (Ri расположено после Rp): ограничить определения всех параметров для правил, расположенных между Rd и Ri с тем, чтобы к ним не происходило обращение от текущего вектора
КОНЕЦ^ЕСЛИ
Иначе добавить новое правило Rp сразу за Rd КОНЕН-ЕСЛН 〈ОНЕЦ—ЕСЛИ
Рис, 9.7. Процедура обучения правилам игры в покер.
Это, впрочем, то единственное правило, с которого начинается здесь всякое обучение.*
Вторая ситуация связана с избыточностью: правило R1 может превратить любое следующее за ним правило R2 в бесполезное, так как область изменения параметров, соответствующая R2, включается в область правила R1 для любых решений по R1 или R2. Возможна и обратная ситуация, когда R1 обео ценивает R0, которое предшествует ему, так как то же решение было бы принято системой, если бы R0 и не существовало. ;
Такая избыточность периодически проверяется и устраняется системой. (Указанный процесс осуществляется не в конце тур-
нира, а после каждой партии, так как правила могут изменяться быстро.)
Пример. Рассмотрим правила
RI (al, 61, *, *, *, *) -> &L
R2(o2, 62, cl, *, *, fl) —d2
7?3 (*,力2, *, *, *, /2) — d3
7?4(*, bl, *, *, *, *)f d4
при ограничениях
al >5, a2 > 10, bl <9, 62 < 4, cl <5, fl > 15 и f2 < 7.
Правило RI превращает R2 в недостаточное, так как。2>。1 и 62 V 61 и ^2 тем самым теряет смысл. Правило R4 превращает Аз в избыточное, так как 62 Vbi и /2 не используются, и R3 становится бесполезным.
Заметим, что теперь все находится на своих местах и можно усваивать знания без учителя: каждый раз, когда открываются карты противника и программа проиграла партию, она сама трансформирует последнее правило в диалоге на правило сдачи. Наоборот, если она выиграла, то поднимает ставки последнего хода.
Таким образом, в конце концов Уотерман придумал пять разных программ для игры в покер. Они играют: а) случайным образом; б) используя учителя; в) обучаясь автономно; г) используя правила, предоставленные хорошим игроком; д) с полным обучением без задания характеристик вектора ситуации.
Число правил никогда не превышает 30 к соответствие с игрой экспертов (после обучения) достигает 96 % (автономная программа). Программа но самому алгоритму довольно часто меняет решения для сходных ситуаций и легко блефует, не допуская ошибок и приводя некоторых игроков в замешательство.
Программы тестировались с помощью случайного набора из 25 комбинаций карт в игре против людей. Затем через некоторое время роли сторон менялись. Программы легко выигрывали у игроков среднего класса и вели игру почти на равных с экспертами.
Замечания. Программы Уотермана имеют два недостатка. Во-первых, как и в программах Сэмюэля, обучение происходит на числовых параметрах. Определяющие символические элементы задаются априори. Во-вторых, неизменяемый порядок правил усложняет работу программы и вызывает непредсказуемые давления: игра с упорядоченными правилами в действительности ■подобна некоторой процедуре и всякое изменение вызывает
неконтролируемые граничные эффекты. Правила продукций теряют свои преимущества (гл. 7).
Итак, существенные моменты усвоения знаний следующие: прежде всего необходимо определить понятия. Затем нужно уметь делать выводы (обычно по одному единственному случаю) об определяющих характеристиках ситуации. Именно так в действительности поступает человек: никому не нужно дважды объяснять, что не следует совать руку в огонь. Рассмотрим программу игры в шахматы, которая старается, исходя из одного единственного примера, понять и обобщить.
Обучение планам
Эта программа Жака Питра воспринимает партии, реально сыгранные мастерами, пытается разобраться в них и вывести планы игр для других партий. Сначала она реализует лишь две элементарные стратегии:
если фигура находится под ударом противника, ее следует переместить;
если своя фигура Р1 атакует фигуру противника 戶2, рассмотреть ход Р1 *Р2.
Пользуясь этими стратегиями, программа пытается разобрать варианты атаки и защиты каждой из сторон, и она дости
гает этого даже в том случае, когда угрозы, возникающие на
аЪ с de f g hаЪ с de f g hРис. 9.8. Начало партии. Ход белых.Рис. 9.8. Начало партии. Ход белых.87654 3 2187654 3 21доске, не приводятся в исполнение.
аЪ с de f g h
аЪ с de f g h
Рис. 9.8. Начало партии. Ход белых.
Рис. 9.8. Начало партии. Ход белых.
87654 3 21
87654 3 21
В работе программы можно выделить три этапа:
разбор ситуации;
упрощение и обобщение последовательностей действий;
запоминание и использование найденного плана.
Разбор ситуации
Здесь можно отметить два интересных случая:
Пусть последний сыгранный ход ——взятие фигуры противника. Рассмотрим, например, позицию на рис. 9.8 и следующие три хода:
I. СЬ5Хс6,
П. d7Xc6,
Ш. Kf3X©5 (ход, разбираемый программой).
Ход 1П
Исходная ситуация
пропроход.пропроход.
пропроход.
пропроход.
IV-Деревоответов
противника (если сразу пошел К, последовательность действий нарушается)
V-Дерево ходов тивника (если тивник делает
отличный от хода II, он проигрывает)
Ход II
VI-Дерево ходов противника (реальная ситуация)
Рис. 9.9. Дерево разбора хода (шахматы).
В действительности, для того чтобы понять ход III, нужно понять ход I, который его подготовил, а также ответный ему ход II. Поэтому, чтобы разобрать возможность такого взятия фигуры, программа порождает некоторым стандартным образом дерево, приведенное на рис. 9.9.
В начале партии, которое нас интересует, мы находим для хода черных IV (пользуясь минимаксной процедурой): КХКе5 или же аб X СЬ5; для хода V мы встречаем: ft X сб (иначе белые выигрывают фигуру), и при ходе VI черным становится ясно, что они теряют пешку. Урок, извлекаемый из ситуации (позже мы увидим, как программа его формирует и запоминает), можно сформулировать так: uчтобы выиграть пешку, охраняемую только одной фигурой, надо пойти на обмен этой фигуры”.
Ходы второго типа, которыми интересуется программа,— угрозы, т. е. такие перемещения, которые на следующем ходу ведут к захвату фигуры, если противник не отреагирует соответствующим образом. Программа констатирует угрозу» рассматривает, как и почему противник отражает ее, и обучается даже в том случае, если в действительности на шахматной доске ничего серьезного не произошло (рис. 9.10).
Ход I
Угроза
0Дерево своих ходов Ход II парирует
Дерево ходов про-ход I
тивника ЕПервый ход Е
Дерево своих ходов
Рис. 9.10. Дерево исследования угрозы.
Таким образом, программа формирует и запоминает потенциальные действия, сразу обучаясь атаковать и защищаться, даже если на реальной доске подобные комбинации не возникают.
В каждом из рассмотренных случаев минимаксная процедура служит для объяснения сделанных ходов в той мере, в какой для всех других ходов она приводит к отрицательному результату. .
Упрощение и обобщение
То дерево поиска, которое было рассмотрено выше и уточнено в текущей игре, сохраняется в памяти. Однако в шахматах мало шансов, чтобы два раза встретить одну и ту же ситуацию, поэтому запоминать нужно лишь характерные элементы ситуации. Это более сложная операция, чем при игре в шашки или покер, потому что даже пешка может изменить всю игру. Например, не возникает и вопроса, чтобы повторить схему игры в ситуации, представленной на рис. 9.8, если е5 заменить на еб.
Следовательно, процедура упрощения сначала должна заносить в дерево поиска лишь * самые лучшие ходы каждой из сторон. В действительности здесь сохраняются только те ходы, которые создают или уничтожают возможности захвата фигур противника. После этого программа обобщает дерево ходов, которое она только что построила, ориентируясь на положительный результат для одного из соперников. При этом, во-первых, цвет фигур не учитывается и становится параметром, размещенным в корне дерева. Во-вторых, поля и сами фигуры представляются следующими переменными:
Координаты поля не имеют значения, запоминаются лишь отношения между полями и условия расположения фигур. Так, начальная позиция
Белые: Kpgl, Jlfl, d2. Черные: Кре8, Ке4 приводит к исходному дереву
Л/1Л/1⑷)⑷)■0-Л X КМ
Л/1
Л/1
⑷)
⑷)
Ке4 перемещается — JI X Кре8
Это дерево обобщается следующим образом. Начальные условия: своя ладья Л на поле а, конь противника на поле у, король противника на поле 6; 0, % 6 расположены на одной линии. В результате получаем новое дерево
(А2)(А2)0 - Л х Ку
(А2)
(А2)
ла 一6
-К перемещается — Л X Кр 6 которое связано с запиранием коня ладьей.
Имена фигур могут быть обобщены при некоторых условиях: каждая фигура, взятая у противника, может быть вначале заменена на фигуру той же или большей силы при сохранении положительного итога. Наоборот, каждая собственная фигура может быть заменена на свою же более слабую. Дерево (/12) обобщается таким образом и дает дерево (/3):
0 一 X реY
Р/ а — В(ЛЗ)
РЕ перемещается — Р4 X RE6
где РА выступает в роли своей фигуры, меньшей или равной ладье; РЕ — фигура противника, более сильная или равная коню; RE — король противника.■
Итак, концепция запирания найдена программой исходя из одного случая.
В некоторых ситуациях, когда фигура, например, просто берется (она даже не вступала еще в игру), возможно дальнейшее обобщение. Этой фигуре приписывается произвольное значение (обычно нулевое), и ее поле рассматривается как незанятое. Деревья, обобщенные таким образом, представляют настоящие планы действий. Каждый из них соответствует некоторому материальном}^ выигрышу с последовательностями атак и защит и может быть использован независимо любым из противников.
Однако одного усвоения недостаточно, нужно еще уметь так представлять усвоенные знания R машине, чтобы использовать их эффективно: ведь будут порождены тысячи разных планов, и их структурирование (а может быть, и uзaбывaниe^^ некоторой части) совершенно необходимо.
Изменение и использование планов
Обобщенные деревья размещаются в памяти в форме, аналогичной схемам Минского (М. Minsky, 1972). Каждая схема состоит из трех разных частей — обобщенные ходы, поля, само дерево. Поле -отыскивается по формальному имени, которое рассматривается как переменная, и по одному из состояний: V = пусто, А = своя фигура, £ = фигура противника с указанием соответствующего значения в двух последних случаях.
Обобщенный ход определяется значением (обобщенным) и стоимостью фигуры, начальным и конечным полями хода и при необходимости условиями на промежуточных полях.'
Пример. ЛЛ а — d — хЕ》С означает, что своя ладья» находящаяся на поле а, берет фигуру противника на поле е по
силе, превышающей или равной слону, и что существует по крайней мере одно промежуточное пустое поле d.
Наконец, дерево размещено в. памяти и в каждой вершине стоит номер соответствующего хода. Для данной позиции на Шахматной доске теперь нужно найти все подходящие схемы. Однако это может оказаться дорогой операцией, если не принять мер предосторожности.
Предположим, что первым ходом в дереве для некоторой схемы будет ЛД а ——0. Если в текущий момент на доске имеется ладья, то переменная а принимает некоторое значение, Таблица 9/
ПоляХодыДерево
аЛА(1) Л4 р — 丫 一 *6аЛА(1) Л4 р — 丫 一 *6ввПустоПусто⑵ Е 》С играет⑵ Е 》С играетУЕ“(3) ЛД р X VуRE(4) ЛД а - ВУЕ“(3) ЛД р X VуRE(4) ЛД а - В一(2a-—0—一(2a-—0—
аЛА(1) Л4 р — 丫 一 *6
аЛА(1) Л4 р — 丫 一 *6
в
в
Пусто
Пусто
⑵ Е 》С играет
⑵ Е 》С играет
УЕ“(3) ЛД р X V
уRE(4) ЛД а - В
УЕ“(3) ЛД р X V
уRE(4) ЛД а - В
一(2a
-—0—
一(2a
-—0—
после чего для 0 возникает до четырнадцати возможных вариантов. Ясно, что нужно так организовать поиск, чтобы отбросить неподходящие планы как можно скорее (за минимальное число попыток). Прежде всего сохраняются только те планы, которые в принципе соответствуют имеющимся данным. Затем первыми рассматриваются наиболее выгодные обобщенные ходы, которые одновременно являются и наименее вероятными. Наименее вероятный ход определяется в каждой схеме с помощью функции оценивания следующего вида:
min (значение полей хода) * [значение фигуры, min (значения других полей)],
где значение (стоимость) ноля тем больше, чем менее оно определено. Принимается следующая система: 32 очка за пустое поле; 8 очков за поле, занятое пешкой; 4 очка за поле, занятое фигурой; по 1 очку за поле короля, ферзя или уже известное поле. Наименее вероятный ход определяется по минимуму этой функции, и по ней упорядочиваются ходы в самой схеме.
Тем самым план дерева (Л2) приводит к схеме (табл. 9.1), которая соответствует рис. 9.11 при ходе черных.
Столбец “поля” схемы указывает прежде всего, что весь материал в наличии; затем придается значение переменной 6 (допустим,用2). Столбец “Ходы” при упорядочении по реально-
му дереву начинался бы ходом (4) Ла ——р, что приводило бы к 14 вариантам. Однако, упорядочив ходы по рассмотренной выше функции, следует сначала рассмотреть ход (1) JL4 р — у — хп2.
Изучение позиции путем анализа ходов ладьи, которые ведут к полю 用2 через поле, занятое фигурой противника по силе, не уступающей коню, оставляет только ход (1) Л/ а2 ——с2 ——xh2. Ход ЛЛ8 ——М —用2 связан с белой пешкой 用4, которая не имеет
abcdefghabcdefghРис. 9.11. Использование плана (ход черных).Рис. 9.11. Использование плана (ход черных).большого значения. Теперь переменные ходы (3) 力 40%Y полностью известны: это может быть только Ла2Хс2.
abcdefgh
abcdefgh
Рис. 9.11. Использование плана (ход черных).
Рис. 9.11. Использование плана (ход черных).
Следовательно, исходное поле ладьи должно быть &8 и ход (4) должен быть Ла8a2. Соответствие схемы с имеющейся позицией успешно установлено, и план, заложенный в дереве, должен быть испытан. Чтобы убедиться, что он приводит к успеху, программа обращается ко всем планам
защиты черных и соответст- “
вующим схемам. Если конечный результат, оцененный минимаксной процедурой, является положительным для своего лагеря, то исходный план принимается к действию. В противном случае рассматриваются другие планы первого уровня. Эта процедура уже использовалась в другой программе Ж. Питра (разд. 6.3).
Заключение. Программа обучается лишь после того, как она разобралась в ситуации. Она нечувствительна к плохим ходам: если в реальной партии хороший ход ие был найден, обучения не произойдет, если же был найден лучший ход, чем выполненный, то программа кое-чему научится. Усвоение новых знаний зависит от наличного багажа, потому что для разбора новой ситуации программа использует те схемы, которые уже зарегистрированы. Таким образом, может случиться, что на определенной стадии своего развития программа не сделает трудного хода, а выберет его позже после ряда других партий.
Другим важным моментом является то, что рассмотренная процедура может быть применена для многих других игр. Усвоенные планы достаточно гибки: в противоположность программам Уотермана они не императивны, а дают лишь указание на возможные хорошие ходы. Решение принимается
минимаксной процедурой в соответствии с внешними факторами или на основе другой долговременной стратегии.
Однако остается одна серьезная трудность ——громадное число схем порождаемых планов (порядка десятков тысяч для всей игры), которое связано с наличием множества возможных вариантов для каждой ситуации и многообразием самих ситуаций в шахматах. Кроме того, довольно трудно отбрасывать посторонние ходы для рассматриваемых планов, чтобы в значительной степени их упростить.
Итак, программа усваивает новые знания, но не может эффективно их использовать. Эта фундаментальная проблема, и в настоящее время оиа не решена. Как ни странно, это скорее не проблема обучения, а “просто” проблема управления огромной базой знаний. Ее можно включить в проблематику метазнаний и экспертных систем.
96 Учет характеристик
С детского возраста человек учится вырабатывать понятия и ставить им в соответствие названия: он знает, что такое игрушка, дерево, дом, человек... Каким образом мы можем соотносить с одним понятием различные примеры? Как выделяем мы характеристики этого понятия?
П. Уинстон написал программу (Р. Winston. 1970), которая частично ответила на эти вопросы. С. Вере (S. Vere, 1979) предложил в 1979 г. более совершенный вариант программы, который описан ниже.
Программа П. Уинстона анализирует с помощью кинокамеры сцены, составленные из простых объектов: кубов, брусков, призм, пирамид. Вначале сцена обрабатывается с целью формирования некоторого разумного представления: каждый объект изолируется и отношения между объектами запоминаются с помощью размеченного графа, вершины которого соответствуют объектам.
Выделяются следующие отношения:.
СВЕРХУ, РЯДОМ, ПОДДЕРЖИВАЕТСЯ, С〃ЕВА_ОТ,
ПЕРЕД и ОТНОСИТЬСЯ_К_ПОНЯТИЮ
Сцена на рис. 9.12, а представлена графом на рис. 9.12, б. Система способна с помощью преподавателя различать понятия сцены, используя для этого ряд примеров и контрпримеров. Всякий опыт здесь в определенном смысле приближается к рассуждению по аналогии, используемому в сценах тестов иа интеллектуальный коэффициент. Речь идет о поиске закона на основе первых предъявленных примеров. В гл. 3 мы видели, каким об-
разом часть этой работы может быть выполнена с помощью алгоритма унификации и как программа Т. Эванса решает такие тестовые задачи.
В системе П. Уинстона рассматривается последовательность сцен, которая начинается с некоторой типичной ситуации. Затем
ОТНОС酬ТС 只_ К-QTHOC4TC月一 £понятиюПОНЯТИЮ БрусокПризма户ОТНОС酬ТС 只_ К-QTHOC4TC月一 £понятиюПОНЯТИЮ БрусокПризма户Рис. 9:12. Анализ и представление сцены.Рис. 9:12. Анализ и представление сцены.
ОТНОС酬ТС 只_ К-QTHOC4TC月一 £
понятиюПОНЯТИЮ Брусок
Призма户
ОТНОС酬ТС 只_ К-QTHOC4TC月一 £
понятиюПОНЯТИЮ Брусок
Призма户
Рис. 9:12. Анализ и представление сцены.
Рис. 9:12. Анализ и представление сцены.
вводится важное изменение условий опыта: преподаватель может предлагать системе сцены, которые не являются подходящими примерами для усваиваемого понятия. Система обучается теперь, исходя одновременно как из примеров, так и контрпримеров.
Основной идеей здесь является использование "почти при' меров". Если предлагается ситуация, которая радикально отличается от всех других, то об ее использовании мало информации. Если же, напротив, ситуация близка к рассмотренным, система будет выявлять отличия от внутренней модели и отмечать их, постепенно усваивая существенные и второстепенные характеристики понятия.
Предположим, что сначала преподаватель предлагает следующую сцену:
стоящих бруска,стоящих бруска,Система воспринимает и описывает ее как два
стоящих бруска,
стоящих бруска,
которые поддерживают один брусок, лежащий на них боком.
Если в качестве контрпримера дается следующая сцена:
U: , 0
то система отметит в соответствующем графе, что отношение поддержки является необходимым для изучаемого понятия. Если появляется третья сцена, которая опять является контрпримером,
программа добавляет на этот раз к внутреннему представлению отношение HE-РЯДОМ для стоящих брусков. Если в дальнейшем дается пример, в котором лежащий брусок заменен на призму, производится обобщение: лежащим может быть любой объект с плоским основанием (чтобы его можно было поддерживать стоящими брусками). В результате понятие “арка” может быть усвоено в форме, представленной на рис. 9.13:
Рис. 9.13. Понятие арки.
В том случае когда соответствие между текущей сценой и моделью может быть установлено несколькими путями, решение принимается с помощью функции оценивания, которая вводит приоритеты для объектов и отношений.
Пределы применимости рассмотренной программы определяются двумя факторами. Во-первых, бедность рабочей среды. Зависимости, касающиеся только попарных отношений между объектами, весьма немногочисленны; их не намного больше, чем самих объектов. Контрпримеры наивны, и неизвестно, каким образом их можно “хорошо выбирать'\ Во-вторых, исключительно эмпирический характер приобретения знаний: ничем не обеспечивается сходимость к результату через какое-то количество шагов. Наконец, как поступать при распознавании объекта, если в распоряжении имеется не одна, а тысяча моделей?
На самом деле такая система в пределе ни к чему не приходит и все модели для нее эквивалентны. Дело в том, что в памяти хранится последняя модель, а не примеры, которые привели к ее появлению, и поэтому нет возможности возвратиться назад. Например, когда добав«тяется отношение НЕ-РЯДОМ, нельзя проверить, удовлетворяет ли оно всем предыдущим примерам. Поэтому при появлении противоречия нужно уметь обращаться к другим средствам, которые не применяются, если пользоваться функцией оценивания.
В программе С. Вере (S. Vere, 1979) факторы не играют большой роли.
9.7. Усвоение понятий
Обучение в основном заключается в том, чтобы путем абстракции и индукции усвоить общую ситуацию, исходя из небольшого числа примеров. Этот процесс можно направлять и ускорять, используя контрпримеры, которые будут теперь произвольными, а не только ипочти примерами'^. Рассматриваемые ситуации могут быть достаточно сложными, и для их представления может применяться несколько вложенных уровней с операциями разъединения и отрицания. Это позволяет, в частности, хранить в резерве все возможности проверки сходства и различия между ситуациями.
Сначала обратим внимание на механизм абстрагирования.
Абстракция и обобщение
Обычная унификация основана на подстановке термов на место переменных. Такие подстановки по природе являются дедуктивными и строгими. Обобщать — это идти как раз в противоположном направлении: рассматриваемый терм становится абстрактным, когда он заменяется на переменную. В подстановке такого типа, которую называют индуктивной, необходимо уточнять, в каком случае данный терм нужно заменить, так как в отличие от унификации здесь нет вынужденных подстановок.
Например, ничто не обязывает повсюду заменять некоторый терм одной и той же переменной.
Индуктивная подстановка О характеризуется, следовательно, последовательностью троек:
0={仏,。/5); • • •;(%,ojv^},
где 匕 ——терм, oi — экземпляр, V\ ——замененная переменная.
Пусть имеется следующее выражение Е:
£ — ((пьеса) Вольтер Кандид) Л (француз Вольтер) Л
Л (писатель Вольтер))
Дедуктивная подстановка
О = {(Вольтер, (1, 3)/х); (Кандид, 1/у)})
преобразует £ в выражение ОЕ
ОЕ — ((пьеса) ху) Д (француз Вольтер) Д (писатель х))
Отметим, что если не принять мер предосторожности, то не обязательно полуиается дедуктивная подстановка D, которая позволяет ио обобщенному выражению найти оригинал. Так, в нашем примере для этого достаточно заменить терм Кандид на ту же переменную х.
Так как для проверки соответствия системы необходимо возвращаться к исходным примерам, в дальнейшем в индуктивных подстановках мы потребуем следующее:
двум разным объектам соответствует одна переменная;
повторно используются переменные того выражения, которое обобщается.
Воспользовавшись определением с такими ограничениями, мы получаем следующий механизм обобщения: выражение Е1 будем называть более общим, чем выражение £2, тогда и только тогда, когда существует индуктивная подстановка О, такая, что Е\ 三 ОЕ2. Здесь предполагается, что £1 и ОЕ2 имеют нормальную конъюнктивную форму и знак включения понимается в смысле теории множеств: каждый множитель из £1 принадлежит и ОЕ2. Порядок множителей в рассматриваемых выражениях несуществен.
Таким образом, выражение
El = (а: t) Л (川)Л (х > г/) является более общим, чем
Е2 = (ТПЛ(КПЛ(ЮПЛ(К;) Л(Д|)Л(Т>К)Л(К>Д), потому что существует постановка
0 = {Т, 1, 2*, К(1, 2, 3, 4)/у}, такая, что Е1М0Е2.
В дальнейшем мы будем писать £1 W Е2 для обозначения того, что Е1 является более общим, чем £2, и будем говорить, что £1 покрывает £2. Для данных £1, £2 и О будем называть сцеплением часть ОЕ2, которая принадлежит £1, а дополнение этой части будем называть остатком.
В нашем примере сцеплением является
(*Т) Л (贝)Л(X>у),
а дополнением ——
(^ПЛ(1ОПЛ(ДПЛ(^>Д)-
Разумеется, для данных Е\ и £2 может существовать несколько подстановок О£) которые удовлетворяют соотношению £1 W QE2.
В частности, они могут давать одинаковые сцепления и разные остатки.
Можно рассматривать разные подходы к определению индуктивных подстановок: от жестких, когда требуется минимальное число изменений, до самых свободных, разрешающих любые подстановки. Мы ограничимся классом допустимых подстановок, которые по определению удовлетворяют (кроме указанных вь卜 ше требований 1) и 2)) еще двум новым требованиям:
3)- один и тот же терм заменяется во всех подстановках на одну и ту же переменную;
терм заменяется только в случае необходимости, в частности терм из остатка заменяется только в том случае, если он заменен в сцеплении.
Теперь можно не указывать разные случаи расположения термов в допустимых подстановках.
Из этого определения следует, что всякое выражение является собственным обобщением, а также обобщением любого выражения, выводимого из него простым переименованием переменных.
Обобщение £1 выражения Е2 будет строгим тогда и только тогда, когда 30, для которого £1 V 0£2 (строго) или Е1 = =0£2 при условии, что О #= переименование.
Отношение V влечет за собой отношение W, но не наоборот, Так же как в арифметике вводится наибольший общий делитель или максимум в булевой алгебре, можно определить Е —— общее максимальное обобщение двух выражений fl и £2 следующим образом:
,Е&Е1 н не существует [ E’VE&El и
I Е& Е2 £' такого, что ( Ef <Е^Е2.
Понятие представляет, таким образом, общее максимальное обобщение соответствующих примеров. Примеры рассматриваются попарно, -и все сцепления систематически запоминаются. Процедура повторяется до получения совокупности разъединенных подмножеств для выражений, которые обобщают все предъявленные примеры. Таким образом, общее* максимальное обобщение состоит, возможно, из отдельных частей. Подключение контрпримеров к этому процессу уточняет и усложняет анализ.
Контрпримеры, очевидно, приводят к появлению отрицаний, которые могут присутствовать в описании понятия совместно с разделениями. В результате такого перемешивания обобщения становятся достаточно сложными.
Например,.
(% НА у) Д (красный у) Д 一] (((z НА у)八(куб z)) V (куб у)).
“Некоторое тело находится на красном объекте, И на этом красном объекте нет другого объекта, отличного от куба, ИЛИ же у не является кубом”.
Заметим, что в этих описаниях обозначение
Л Д П (В А П С)■
более предпочтительно, чем
(Л Л 18) V (Л Д В Д С)
из-за простоты процесса обучения, связанного с первым вариантом.
Система получает одновременно целое семейство примеров р( (i=l, ..., р) с семейством контрпримеров V/ (/ = 1,... ...,д). Вначале изучаются примеры и по ним формируется общее максимальное обобщение Р1, которое является излишне широким множеством: оно позволяет описывать и некоторые контрпримеры. Из анализа последних получают некоторый корректирующий член ^l, очевидно, не входящий в разбираемое понятие. В выражении С1, которое описывает это понятие, ^l входит с отрицанием
С1 =6 Д П^l.
Однако член ~~l^l может теперь поправить Р1 слишком сильно, что приведет к исключению некоторых примеров. Так появляется новое условие с отрицанием и т. д. Так как исходные формулы конечны и общее число возможных случаев также конечно, процесс обязательно сходится к некоторому конечному выражению. В наихудшем случае оно будет представлять просто объединение всех отдельных предъявленных ситуаций. В об-
щем случае Е будет трансформироваться в более компактное выражение С, которое в сжатой форме отразит характеристики, разделяющие примеры и не встречающиеся в контрпримерах. Общая форма С имеет вид
e = p1 人、 (А4 八一1(n2人7(...A n Nk))).
Она сразу указывает на аналогию со знакопеременными сходящимися рядами вида
% - й[№ + &炉一 …+ (- 1)'a々%上
Последовательные члены представляют собой символические выражения, а не мономы, принимающие числовые значения.
Проиллюстрируем процедуру построения общего максимального обобщения С на следующем примере. Система получает описания pi, р2, Рз и р4; V], v2, V3 и V4 четырех примеров и четырех контрпримеров (рис. 9.14).
Общим максимальным обобщением (ОМ.О) для четырех примеров будет Р1:
Р1 =(% НА у) Д (КУБ у) Л (ЗЕЛЕНЫЙ у),.
Контрпример v2 исключается, так как куб в v2 не зеленый. Однако vl, v3 и v4 покрываются и их следует исключить добавлением корректирующего члена ПЛЧ. Этот член должен устранить остатки pzl =(VI ——OiPl) для i = 1, 3 и 4 и соответствующих Oi
.рЧ =(ШАР х) (ГОЛУБОЙ х) с O1={Q1〃,Q2/y},
p'3 = (Q7 НА х)(КУБ(27)(КУ6 х) (ЖЕЛТЫЙ Q7)(ГOЛУБOИ х) с ОЗ = {Q5/x, Q6/y},
»4 = (КУБ х) (ГОЛУБОЙ х) с 04 = {Q8/x, Q9/y}.
Выражение ^l должно покрывать эти три новых примера; оно принимает значение их общего максимального выражения ОМ.О, которое в данном случае достаточно простое:
ОМО(р'1, р'З, p/4)-=^l =-(ГОЛУБОЙ х).
Описание искомого понятия принимает вид
С1=(х НА у) А (КУ5 ^) А (ЗЕЛЕНЫЙ ^)ДП(ГОЛУБОЙ х).
Выражение CI по-прежнему покрывает исходные примеры pl, рЗ и р4, так как ни в один из них не входит множитель (ГОЛУБОЙ х). В то же время оно исключает р2, где этот множитель присутствует. Для того чтобы его возвратить, образуют новый остаток из множителей, не покрываемых ни положительными, ни отрицательными членами из С1. В нашем случае в р2
Рис. 9.14. Примеры (а) и контр-примеры (6) при изучении понятия.
Примеры
Описание:
pl = (О1 НА 02) Д (ШАР О1) Д (КУВ 02) Д (ЗЕЛЕНЫЙ О1)八
А (ЗЕЛЕНЫЙ 02).
р2 = (03 НА 04) Д (ПИРАМ 03) Д (КУБ 04) Д (ГОЛУБОЙ 03)八
А (ЗЕЛЕНЫЙ 04),
рЗ = (О5 НА 06) А (КУБ 05) Д (КУБ 06) А (ЖЕЛТЫЙ 05) Д
А (ЗЕЛЕНЫЙ 06).
р4=(О7 НА 08) Д (09 НА 07)八(КУБ 07) А (КУБ 08) Д (КУБ 09)八 А (КРАСНЫЙ 07) Д (ЗЕЛЕНЫЙ 08) Д (ЗЕЛЕНЫЙ 09).
Контр-примеры
Описание:
V1 = (Q1 НА Q2) Д (ШАР Q1) Д (КУБ Q2) Д (ГОЛУБОЙ Q1) Д
А (ЗЕЛЕНЫЙ 02).
w2 = (Q3 НА Q4) А (ШАР Q3) А (КУБ Q4)八(ЗЕЛЕНЫЙ Q3)八
А (ГОЛУБОЙ Q4).
v3 = (Q5 НА Q6) Д (Q7 НА Q5) А (КУБ Q7) Д (КУБ Q5) Д (КУБ Q6)A А (ЖЕЛТЫЙ Q7) Д (ГОЛУБОЙ Q5) А (ЗЕЛЕНЫЙ Q6).
v4 = (Q8 НА Q9) Д (КУБ Q8) Д (КУБ Q9) Д (ГОЛУБОЙ Q8)八
А (ЗЕЛЕНЫЙ Q9).
остается множитель (ПИРАМ х), который является собственным ОМО и последним корректирующим членом. Таким образом, описание понятия, которое определяется рис. 9.14, принимает окончательную форму
С1=(х НА у) А (КУБ у)八(ЗЕЛЕНЫЙ у) Д
А Г ((ГОЛУБОЙ х) А Т (ПИРАМ х)).
Может оказаться, что процедура формирования общего максимального обобщения приведет на каком-то этапе не к одному, а к нескольким выражениям. Разъединения в таком случае
вводятся в описание. Кроме того, возможно, что ни одного общего максимального обобщения не образуется либо из-за того, что исходные множители не входят ни в одно отношение, либо из-за ограничений унификаций. Тогда единственным обобщенным выражением будет пустое, т. е. не существует эффективного понятия, покрывающего примеры и одновременно исключающего контрпримеры. Это обусловлено противоречиями для остатков типа
остаток положительный — (х НА у) (ЗЕЛЕНЫЙ х), остаток отрицательный =
=(х НА у) (ЗЕЛЕНЫЙ х) (КРАСНЫЙ у\
запомнить сам человек.запомнить сам человек.Программа С. Вере написана на языке ICECUBE ——диалекте языка SNOBOL ——и производит обобщения за несколько секунд на машине IBM 370/158. Она также спос?)бна обобщать правила повторной записи, описывающие, например, сборку конструкций из кубиков и обратную процедуру разбора. Хотя эту программу следовало бы усовершенствовать, обогатив словарь описаний другими типами отношений, она представляется одной из лучших программ, хорошо формализованных и пригодных для задач обучения. Усваиваемые при этом понятия обладают достаточной сложностью, которая, возможно, превышает сложность тех понятий, которые может сформировать и
запомнить сам человек.
запомнить сам человек.
БИБЛИОГРАФИЯ
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ. ОСНОВНЫЕ РАБОТЫ
Acttoff R. L. (1978) : The art of problem solving. J. Wiley.
A. I. Software (1984) : Tfte international directory о/ A, /. Companies A. I. Software, SRL. Rovlgo Itaiie.
Allan J. J. (ed) (1976) : CAD systems. North Holland.
Amaref S. (1968〉: BOn representations of problems of reasoning about actions". Irt M. I. 3 Flsovier. 131-1/1.
Anderson J. R. (1976) : Language, memory, and thought. Lawrence Erlbaum associates.
Anderson J. R. . Bower G. ( 1973) : Human associative memory. Winston-Wiley.
Banerp R. (1980) : A. /. a theoretics! approach. North Holland.
Bar-Hillel Y. C1964) : Language and Informations. Reading. Mass. : Addison-Wesley.
Barr A., Feigenbaum* E. A. (1986) : Le Manuel de Г Intelligence Artificielle (Eyrolles). Kaufmann.
Barstow D. (1979) : Knowledge based program construction. E»es;8r.
Bartlett F. (1932) : Remembering ; A study In experimental end social psychology. Cambridge University Press.
Bartlett F.《1958) : Thinking. Basic Books. New York.
Boden M. (1977) : 4 and natural men. Basic books,
Bongard N. (1970) : Pattern recognition. Sparfan Books.
Bonnet A. (1984) : ^Intelligence artlflcioife. Promesses et Rde〃f@s, InterdditlortS..
Brady M. ( 1983) : "Computatiocat approach to image understanding". ACM computing* surveys. 14, 1, 3-71.
Bruner J. S.. Goodnow J. J. Austin G. A. (1956) : A study of thinkfng. Wiley.
Bundy A.. Burstall R. M. . Weir S. . Young R. M. (1980) : Artificial Intelligence: An Introductory course. Edinburgh University Press.
Bundy A. (1981) : Artificial Intelligence. Edinburgh University Press.
Charnlak E.. Riesbeck С. K. . McDermott D. V. (1980) : A. /. Programming. Lawrence Erlbaum.
Charnlak E.. Me Dermott O.《1984) : An introduction to Artificial intelligence. Addison Weeley.
Coltins N. . Michie D. (1968> : Machine Intelligence. Vol. 1. American Elsevier. Dale E. . Michie D. (eds)《1968) : Machine Intelligence. Vol. 2. American Elsevier. Dreyfue H. L. C1979) : What computers cannot do. (Revised ed. Harper (1972)). Farreny H. . Prajoux R. C 1982> : "Les pouvolrs des robots de la 3e gdndration". La science des robots. Science ef We.
Feigenbaum E. ( 1968) : "Artlflcal inielligence : Thames In the Second Decade". Information Processing вв. Vol. 2. A. J. H. Mor®, ed. . 10087 022, North-Holland.
Feigenbaum E.. Feldman J- <eds.) (1963) : Computers and Thought. McGraw-HMl Book Company.
Feigenbaum E.. Me Corduck P. (1983) : The fifth generation. Addison-Wesley.
Gaapar P. (1978) : Probl^mes m^thodea er strat^los de resolution. Ed Organisation.* Gilford J. P. ( 1967) : ГЛе nature of human Intelligence. Me Graw Hill.
Hofstadter D. R.《1977) : Giod&l, Ascher ef Bach. 8asic books.
Hofstadter D. Я. . Donnot D. C, (1981) : The miners /. 8asic books.
Hunt E. B. ( 1975) : Artificial Intelligence. Academic Press- New York.
Itzlnger O. ( 1976) : Methoden der maschinellen /ntelllgenz. Springer Vo Hag. Jackeon P. C. ( 1974) ‘ Introduction to artificial Intelligence. Petrocelll/ChaHer. Kllx F. (dd ) ( 1979) : Human and artificial intelflgence. North Holland.
Latombe J. C. (ed. ) ( 1978) • А/ &nd pattern recognition M CAD. North Holland.
Latombe J. C. . Lux A ( 1979) : "Inteiiigence artificlelle et robotique industrielie*. Le nouve/ automatisme 5. 37-44 et 6. 21~29.
Llghthlll J. ( 1973) "Artificial Intelligence : A General Survey'. Artificial Intelligence ; A Paper Symposium. Science Research Council.
Lindsay P. H. . Norman D. A. ( 1977) : Traltement de Hnformetfon et comportemenr humaln. Editions Etudes Vivantes. Montreal.
Marr D. ( 1976) ♦ "Early processing of visual information". Philosophical Transactions of the Royal Society of London (Series B) 2 75 : 483-524.
Marr D. ( 1977) : "Artificial Intelligence - A personal view" A./. 37-4B.
McCarthy J. . Hayes 1* д 1969). "Some Philosophical Problems from Standpoint of Ariificlal Intelligence". M. I. 4. Elsevier
McCarthy J. ( 1977) : 'Epistemological problems In Al.e IJCAI 5. MIT - Cambridge, 1038-1044.
McCorduck P. ( 1979)
Meltzer B. . Michie Meltzer 0.. Michie Meltzer B.. - Michie Meltzer B. . Michie
D..(eds) D..(eds) О . (eds) D . (eds)
Machines who think. Freeman.
(1969)
(1970)
(1971)
(1972)
Machine intelligence, V" Machine Intelligence, Vol. Machine Intelligence, Vo/. Machine Intelligence, Vo/.
Michie D. . ed. (1968) . Machine Intelligence, Vol. 3. Elsevier.
Elsevier.
Elsevier.
Elsevier.
Elsevier.
Minsky M. L. ( 1965) : "Maher. Mind, and Models'. IFIP.
Mfnsky M. L. . Paper! S. (1969) : Perceptrons ; an introduction to computatfonai geometry. Cambridge. Mass. : MIT Press.
Mllier. G. A. (1956) • "The magical number seven, plus or minus two : Some limits of
our capacity for processing Information". Psychological Review 63. 81-97.
Newell A. ( 1973) : "ArHficial InJeiHgence and the Concept of Mind'. Computer Model» о/ Thought and Language. Roger Schank and Kenneth Colby, (eds).. W. H. Freeman & Co.*
Newell A. (1982) : "The Knowledge Level". A./. 18 ( 1) 87-127.
Newell A. . Simon H. (1982) : Human problem solving. Prentice Hail, Nlleeon N. J. ( 19/1) : Problem solving methods In A. I. McGFaw-HIII.
Nllseon N.J. (I960) : Principles of A. /. ■ Tioga Pub Co.
Nivergett J.. Craig Farrar J. . Reingold E. M. (1974) : Computer approaches 2 mathematical problems. Prentice Hail.
Norman D. A. . Rumelhart D. E. and the LNR Research Group. ( 1975) : Explorations In
cognition San Francisco : Freeman.
Papert 3. (1980) Mindstorms, Children, Computers and powerful Ideas. Basic Books. New York.八
Pohl I. : "Heurtstic Search viewed as path finding in a graph". A. /. 1,3. 193-204,
Polya G. ( 1954) : Mathematics and plausible reasoning, vol. 1, 2. Princeton University press..
Polya G. ( 1954): Induction and analogy in mathematics. Princeton et GauthieF-Villare (1958).
Potya G- 3957) : Mathematical dfscovery. Double day.
Polya G. (1959) : How fo solve It. Princeton Univ. Press et. Dunod (1965).
Raphael B. (1976) : The thinking computer. Freeman.
Rich E. (1983) : Artificial Intelligence. McGraw-HHI.
Shapiro S. C. (1979) • Techniques of А/. Van Nostrand.
Simon H.A. (1969) : Sciences of the artificial. Cambridge. Mass. : Mit Prose. Simon H. A. (1973) : 'The structure of III structured problems". A. /. . 81-202.
Simon H. A. (1979> : Models of thought. Yale University Press.
Sfmon H. A. . Barenfeid (1969> : ^information processing analysis of porceptu&i pro~- cesses in problem solving". Psychological rovlew. 5. 473.
£hnwi H.A. . Slklossy L; (1973) : Representation and me&n/ng. Experiments with information processing systems. Proniice Hail.
Simons G.L. (1984) : fntroducy Artificial Intelligence. NCC Pub«
Slagle J. R. .( 1971) : A./. ; tfta heuristic programming approach. McGrs” HIM. Sussman G.J.. C1975) : A computer model of skill acquisition, nr, Elsevier. Vldat F. ( 1971) : Problem solving. Ounod.
Von Neuman J.. Morgenstern O. 3944) : Theory of games end economic behavior. Princeton University Press,
Waterman D. . Hayes Roth F, (ed$) 《1978} : Pattern directed Inference systems. Academic Press.
Wertz H. (1984) : Intelligence Artlflclelle, Masson.
Wlckelgren W. ( 1974) : How to solve problems. Freeman.
Winston P. H. (ed.) ( 1975) : fhe p&ychalogy о/ computer vision. McGraw-HIH.
Wineton P. H. ( 1977) : Artificial Intelligence^ Addison-Wesley.
Wooldridge H. (1963) ; The machine of №e brain, McGraw-Hill.
ПОСТАНОВКИ ЗАДАЧ
Alem J. P. ( 1975) : J。” do TespW 〃 (flvortfssomenta math^matlques. Seuli.
Bachet de Mezlrlac (1612) : ProblAmds paysens 献 dAlectables qul s@ font par /es nombras. Rdddltd par A. Blanchard, Paris (1959).
Berloquin P. (1978) : Jeux math^matfques du monde. Flammarion.
Berloquln P. (1980) : 100 jeux numArlques '- 100,eu* gAom^trlques pour insom- nlaques. Livre de Poche.
Blanchet J. M. (1976) : Math^matlque en liberty. OCOL.
Chuquet N. ( 1484) : Jeux ef Esbatemonts. ManuscrH Blbl. Nat., n。1346.
Deledicq A. (1975) : Math^matlques bulssonnl^res. CEDIC.
Dudeney H. E. ( 1967) : 536 puzzles and Curious Problems. Scrlbnerfs NY.
Gardner M. ( 1977) : ■ tes casse Mte math^matlques de Ssm Loyd. Ducod,
Gardner M. ( 1979) : Les distracts. Les jeux mathdmatlques du Scientific American.
CEDIC. ■
Gardner M. ( 1979) . r Leffet haha. Pour la Science. Belin.
Gerll D. . Girard G. (1976) ; Lbs olymplades Internatlonafes d@ maih^matfques. Hachette.
Kordlemskll B. ( 1963) .: Sur /в sentier dss math^matlques. 2 (omes. Ounod-
Kraltohlch M. : La math^matique des is их. Dunod.
Lucae E. (I960) : RAcr^stlons mathdmatlques. (Nouveau tirage) 4 tomes. A. Blanchard.
Polya G. (1965) : Comment poser ef risoudre vn prob/dme. Dunod.
Salnte-LagOe A. de : Avec des nombres ef des "gees. Dunod.
ЕСТЕСТВЕННЫЙ ЯЗЫК И ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ
Amarel S. С1968) : "On RepFesentatlons of Probieme of Reasoning About Actions* M./. 3. D. ■ Michie, (ed). 131-170..
Anderson J. (1977) : "Induction of augmented transition networks". C.S. 125-157.
Ballantyne M. (1975) : 'Computer generation of counter examples in topology". ATP 24. Univ. Texas. Austin.
Banerjl R. B. . Ernst G. W. (1972) : "Strategy construction using homomorphism between games'. A.t. 3.4. 223-249.
Berge O. (1970) : Graphs 0t hypergraphea. Dunod.
Bledsoe W. ( 1977) : "Non-resolutlor> theorem proving". A. /. 9. 1-35.
Bobrow 6 G. (1968) : 'Natural Language Input for a Computer Problem Solving System"' M. Minsky (ed). Semantic Information Processing. Cambridge. MIT. 133-215.
Bobrow D. J., Winograd T. (lft77> : "A knowledge representation language*. C.S.
Bonnet A. < 1980) : "Analyse de textes au moyen d'une grammalre edmantlque et de schemas. Application 合 ia comprehension de rQsum6s mddlcaux en iangage naturer. Thdse cfdtat. Universltd Paris VI.
Brown M. F. ( 1977) : "Doing arithmetic without diagrams". A. I. 8. 175-200. Bundy A. ( 1973) ; "Doing arithmetics, with diagrams". IJCAI. 3. 130-138.
Buthton M. (1979) : "Un programme qul r6sout formellement des probfdmes de constructions gdometrlques". MIRO Informatlque 13,1. 73-106,
Charnlak E. (1977) : "On the use of frame knowledge In language comprehension" A./.. 1. 225-266.
Charnlak E. Wilks Y. (1976) : Computational semantics. North-Hofland.
Charnlak E. <19SD : *A Common Representation for Problem-Solving and Language^ Comprehension Information". A. /. 16 (3) 225-255.
CMchetchl B. (1979) : "Comprehension du langage naturel" Traduction paraphrasde d*6xarclces sur Ie courant alternatif posSs en persan". ТЛдзв. Paris 6.
Chomsky N. (1957) : Syntactic structures. Mouton La Hague.
Chomsky N. (1965): Aspects of №e theory o^ synfax. Cambridge. Mass. . MlT Press.
Chomsky N.《1982} : Rules aod represen/ar/on in The behavlorai and brain sciences.
Clancey W. J. (1983) : "The Epistemology of a Rule-Based Expert System - a Framework for Explanation'. Л. /. 20 (3) 215-251.
Colmerauer A.. Kanoul H. , Pasero R. and Roussel P. (1973) : "Un systdme de communication homme-machine en Iran^als". in Rapport Groupe tf/ntef- Hgence Artlflcfeffe, Unlversit6 d'Alx^Marseilie. Luminy. France.
Cordier M. O. (1979) : 'Commando d un robot en Engage naturel dans un domaine- ndcessitant des connalssances pragmatiques : les recedes de cuisine". Th^se de 3е Cyc/e. Paris 6.
Cordier M. D. . Rousset M.C. (1984) ; 'Interactive Operators .ln Expert Systems : TANGO*. ECAf. 7B-79.
Davis R.. Buchanan в. et Shortilffe E. f】gJ7) : "Production rules as a Fepresentatlom for knowledge based consultation program'. A. /. 8. 1, 15-45.
008a摊■ J. P. (1982) : "Langages quasi-naturels et categories grammatlcales". Acres du Colfoque : Domafne ef ob/@c〃fs de /в recherche cognitive.
Eril (1983) : 'SAPHIR, presentation g@n©rate". Rapport de /в SoclM MEtud® ef de Recherche en UngulsHque et Informatlque.
Tlndter N. V. (1979) : Associative networits ; №e representation and use of knowledge by cQtrtDutors. Academic Press.
MernlerH. (1963) : *ReallzaUon of a geometry theorem proving maohlne\ Computer and thought. McGraw-Hltl. 135-147.
GHmore P.C. (1970) : 'An examination of the goemetry theorem proving machine". А/. КЗ. 171-185.
Groee M. (1975) : Qrammalra transformatlonn&lle du tmnqaia ; &y献&*e du verba Larousse.
Gross M. (1977) : Grammalre transfQrmatlonnellc du franqals r syntaxe du no/n^ Larousse.
Harris L. (1Э77) : "ROBOT a high performance natural language data base query systemM. IJCAt 5, 003-904.
Нвуев P. F. (1973) : "The Frame Problem and Related Problems In Artificial Intelltgenca*. Artificial and human Thinking. ; A. EMthorn and D. Jones, (eds), Elsevier.
Hendrix G.G. (1976) : "Partltlonned networks for modeling natural language eemantlcs**. D/ааегГаГ/ол. .Univ, of Texas.
Hewttt C.. Bishop P. and Steiger R. (1973) : *A Universal Modular Aotor Formalism for ArtWIclal tntelllgenoeV UCAl 3.
KorfR.E. (1980) : "Toward a Model of Representation Changes*. A./. 14. 3). 41-; 76.
JLAurMre J. L. (1978) : *A language and a program for stating and solving oombinatorlai problems*. 4」.10. К 59-127.
Lehnert W., Oyer M.G.. Johnson P. N.. Yang C. J.. Harley S. (1963) : "BORIS an experimant fn In-Depth Understanding of narratives*. A J., 20. 1. 15-62.
L°P®^ M. (1979> : "R6attsatlon d'un tnterfaoa de oommunlcatlon 8n tangue naturetla a vac le Wme TROPIC. CongrAe AFCfT. Toulouse. 25-35.
Me Donald О. O. (I960) : 'Language production aa a process of decision making under constraints". Phr 0 紡“/s. MfT Cambridge.
Mareus M.H. (1980) : A theory of syntactic recognition for natural language. МГГ Pres#.
Metialdo B. ( I9Z9) : *Repr6sentatlon des ensembles en ddmonetratlon automatlqu# de Ihdor6m«s*. Th^9& tfe 3® Cyc/e. Paris VI.
Nevins. А. Д. (1976) "Plane geometry theorem proving using forward chaining*. 4/ .
4. 1-23.
Paatre D. (1978a) : "Automatlo theorem proving in set theory*. A. /. 10, 1. 1-27.
Paetre O. 3978b) : "Observation du math6matlclen : aide • t'enselgnement et A taddmonetratlon automatlque de thdor^mss*. Educational Studies In Mathamatics 9. 461-502.
■Pftrat J. (1977) : "Formalism for text analysis'. SBmlnafre International sur L&a syst^ma^ Intallfganta da quMlona-riponsas ef grandee banquea de donntfas. Bonas.
Pitrat J. (1979) : 'Realisation d'un analyseur gdndrateuF lexloographlque g6n6ral". Rapport n® 79-2 du GB22. Paris VI.
Pttrat J. (1980) : "Un InteFprdteur de contralntes pour la oomprdhenslon du iangage nature!*. Coiioque d^lnteillgence artificlelie. Caen. Publications Gk2含 n® 20.
Pitrat J. (1985) : Textes, ortiinateurs et comprehension. Eyroiles.
Polya G.《1962) : Mathematical Discovery. Wiley..
Quillian R. M. (I960) : 'The teachable language comprehender : a simulation program and theory of language". C ACM. 12, n。18.
8abah G. (1980) : 'Contribution Д la comprehension effective d'un rdclt". Th^se cftftaL University Paris VI.
Sabah G. . Rady M. (1983) : "A determin/stic syntactic-semantic parser" IJCAI в Saikotf M. (1973) : Une grammaire @c c/?a『ce du frangais. Ounod.
Schank R. C. ( 1975) : Conceptual {nformation Processing. North-Holland.
Simmons R. F. (1973) : "Semantic eelworks : their computation and use for understanding ecglish sentences", in Schank and Colby 73. 63-113.
Verdejo M.F. ( 1975) : "Etude du iangage naturef, Simulation d'uc robot capable de mener un dialogue en espagnoi. TAdse Paris V/.
Vlinat A. . Sabah G. (1984) : "How a System May be Sei/-Conscious\ EC Al. 227-229.
Waltz D. L. (1981) : Ал engiish language question answering system for a large relational data base. McGraw-HKI.
Wilks Y. ( 1975) ; "An Intelligent analyzer and understander of English". CACM. 18. 5.
Wlnog rad T. (1972) : Understanding natural language. Edinburgh University Press. Wlcograd T- (1980) . "What does R mean to understand language ?" C. S. 4: 209-241. Winograd T- ( 1983) : Language as a cognitive process. Addison-Wesley.
Winston P. H. ( 1975) : "Learning structural descriptions from examples" in fhe psychology of Computer Vision. McGraw-Hill.
Woods W. A. (1970) : "Transition networks grammars for natural language analysis". C ACM 13. 10. 591-606.
Woods W. A. C1975) : "What Is a link ?'. In Representation and understanding. Bobrow ef Coiiins. Academic Press-
ИСТОРИЯ ИСКУССТВЕННОГО ИНТЕЛЕКТА . ПЕРВЫЕ ПРОГРАММЫ
Colby К. . Weber S. . Hilf F. D. (1975) : Artificial Paranoia. Pergamon Press.
Ernst G, . Newell A. C1969) : GPS ; A case study In generality and problem solving.. New York Academic Press.
E*ans T. G. C1963) : "A heuristic program to solve geometric analogy problems", in Semantic Information Processing. M, Minsky (ed) r MIT Press. Cambridge. Mass.
Greenblatt R. D. et coil. (1967) : 'The Greenblatt chess program". Proc. AFIPS Fall Joint Computer Conference. 31. 601-810.
Guzman A. (1968) : 'Computer Recognition of Three-Dimensional Objects In a Visual Scene", MAC Tech. Report 59, thesis. Project MAC, MIT. Cambridge, MA.
Moses J. C 1967) : "Symbolic integration". Rapport Technique МАС-ТЯ-4 7, М/Г.
Newell A. , Shaw J. C, , Simon H. A. ( 1957) : "Programming the Logic Theory Machine". Western Joint Computer Conference. 230-240.
Newell A. . Simon H. A. (1956) : "The Logic Theory Machine : A Complex Information Processing System. /HE Trans, on information Theory. IT-2. 3, 61-79.
Shannon С. E. (1950) : "Programming a computer to play Chsss". Scientific American.
Slagle J. R. (1963) : "A heuristic program that solves symbolic Integration problems In freshman calculus". Feigenbaum and Feldman (eds). McGraw-HHI.
Turing A. M. (1950) : 'Computing Machinery and Intefilgenoe-. Mind. 59. 433-460, Reprinted In Computers and Thought. 11-35.
Tonge F. ( 1961) : A heuristic program for assembly L/e balancing. Prentloe Half.
Wetzenbaum J. (1966) : "Eliza, a computer program for the study of natural language communication between mac and machine*. CACM. 9. 36-45.
Winston H. . Brown R. H. (ed.) (1979) : Artificial Intelligence. An MIT perspective.
Vol. 1 et ii. MiT Press.
Cayrol M. (1963) : te /engage L/SP. Cepadues editions.
Chaltloux J. 《1979) : "Le module VLISP : description, implfementation et evaluation" .■
Thdso d® 3° Cycle. University de Vincennes.
Chaltloux J (1985) : te Lisp, . Manuel de rQfQrence. INRIA.
Farreny H. (1984) : Programmer ел L/SF. Masson.
Quelnnec C. (1980) : Langage cfwn autre type ; US戶.Eyrolies.
Slklossy L. (1976) : /."s talk LISP. Prentice Hall.
Steele G.L. Jr. ( 1984) : Common LISP. Digital Press.
Wertz H. (1985) : LISP. Une introduction A ia programmfitlon. Masson.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ И НЕКЛАССИЧЕСКАЯ ЛОГИКА
Alllo L. . Levi G. (1964) : "7he Usos of Metaknowledge in Ai Systems". ECAL 705-719. Bobrow D- G. - Collins A. (1975) : Representation and und erstanding. Ac. Press. Boose J. H. (1984〉: 'Personal Construct Theory and the Transfer of. Human Expertised ECAI. 51-60.
Borlllo M. . Virbel J. (1977) : Analyse ef va//daf/on dans r^tude des donndes textuelfes. Editions du CNRS. Paris.
Brachman R. J. (19") : "What's in a concept : Structural foundations for semantic networks". International Journal of metn-machfne studies 9. 2. 127~152.
Buchanan B.G.. Duda R. О. (1962) : "Principles of ruie-based systems". Stanford University technical report. HPP-82~\4.
Carbonell J. G. ( 1980) : "Towards a process model of uman personality traits". A. /. 15.
Chouraqul E. (1962) : "Contributions 由「©tude thdorique de ia representation des concaissacces". Th6se dEtat. Nancy.'
Coelho H. (1984) : "An Introduction to the- Knowledge Representation Subfield*. ЕСА/, 283-285.
Coulon D.. Kayser D. (1980) : "Un systdme de raisonnement 合 profondeur variable-. Congr^s AFCET-TTI. Nancy. 517-527.
Davie R. (1978) : 'Knowledge acquisition In ruie-based systems : Knowledge about representations as a basts for system construction and maintenance". In D A. Waterman and F. Hayes-Roth (Eds.). Pattern directed Inference systems. 99-134.
Davie R. ( 1979) : "Interactive Transfer of Expertise : Acquisition of New Inference Rules". A. /. 12 (2> 121-157.
Davis R. (1980) : "Meia-Rules : Reasoning about Control". A./. 15 (3) 179-222. Ooyte J. ( 19 79) : "A Truth Maintenance System*. A. /. 12 (3) 231-2 72.
Ferber J. ( 1984) : "Mering : An Open-Ended Object Oriented Language for Knowledge Representation*. ЕСА/. 195-204.
Duda R. O. . Hart P. E. , Nlisson № J.. Sutherland G.L. (1978) : "Semantic network representations in ruie-baeed Inferenfie systems" in Waterman of Heyes- Roth. 203-222.
Fillmore C. ( 1968) : "The case for case". In Bach and Harms (ed.). Universals In linguistic theory. Holt. Rlnelhart and Wineton.
GaHag H. . Lasserre C. (1979) : "Controlling knowledge deduction in a deciaratlve approach UCAf 6 S1-S12.
Ganascia J.C. (1984) : "Reasoning and Result In Expert Systems : Main Differences Between Diagnostic Systems and Problem-Solvers". ECAf. 3 1-40.
Goldstein I. P. . Grimson E. C1977) : 'Annotated production system : A model for skill acquisition. IJCAl 5. 311-31 了.
Hayee P. < 1973) : "The frame problem and related problems In A. I." Artificial &nd human thinking^ Elsevier.
Hayes P. < Id7 7) : "In defense of logic-. IJCAI S. _559"583.
Hayes P. (1977) : "On sementic nets, framea and aaaocletlons". IJCAI 6. 99-107.
Hayes-Aoth F. . Waterman D. A. . Lenat I). B. (Eds.) (1983) : Building up9rt systems. Addison Wesley.
de Kleer J. et al.《1979): 'Explicit control of„reasoning*. In P. H. -Winston and R. H.
Brown <eds.)Artifictai iM^iiig^nc^ : An MIT perspec//ve (vol. 1). 9S*H0.
Kahn G. (1984) “on When Oiagnoatlc Systems Want To Oo Without Causal Knowledge'. ECAI. 2)-30.
Kayser O. (1984) : 'Examen de diverses mdthodes uliiisdes en representation des
connalssances". Congrds d'Intelligence Artificieiie 6 Аесопла/ааапсеф des Formes. AFCET. Paris.
<le Kleer J. . Doyle J. . Steele G. J. . Sussman G. J. (1977): "Amord : Explicit control of
reasoning". Proc. Symp. Artificial Intelllgonce Programming Languages. Stgplan notices 12. Slgart newsletter 84. 116-125.
du GA 22. quantity dedu GA 22. quantity deLaurldre J. L. ()979) : ^Representation et utilisation des connalssences'. Publicationa
du GA 22. quantity de
du GA 22. quantity de
Programmes d'lnieihgence arli/lcielle utillsant иле grande connalssance&. 3-112. Rouen.
Laurl@r・ J. L. (1982a) : "Representation et utilisation des connalseances. Premldre»
partle : les systdmes experts". Technique ef sc/enca /nformaf/^uee. Afcet. n°l. 25-42.
partle :. reprdsentatlon des connai&sances*. TeMc/q” er sc/елсе in- formaliques. Afcei. n°2. 109-133.partle :. reprdsentatlon des connai&sances*. TeMc/q” er sc/елсе in- formaliques. Afcei. n°2. 109-133.Laurlftre J.L. (1982b) : "Representation et utilisation des connalssences. Deuxldme
partle :. reprdsentatlon des connai&sances*. TeMc/q” er sc/елсе in- formaliques. Afcei. n°2. 109-133.
partle :. reprdsentatlon des connai&sances*. TeMc/q” er sc/елсе in- formaliques. Afcei. n°2. 109-133.
Levesque H. J. ( )983) ; "The logic of Incomplete knowledge bases In Conceptuel' Modelling perspectives from artificial Intelligence*. Databases and programming-ianguages. Brodie. Mylopoulos A Schmidt <ed.). Sprlnger- Veriag.
McCarthy J. ()968) : 'Programs with common sense". In M. Minsky (ed.). Semantic inlormation processing. 403-409.
McCarthy J. ( I960) : "Circumscription - A /orm о/ non~monotonic reasoning*. A.L 13. 27-39.
McDermott 0. (I960) : "Non-monotonlc logic H : Non-monotonlc modal theories'.
Яер. n° / 74, Computer Science Oept. . Yale University.一
McDermott 0. . Doyle J. < )980) : "Non*monotonic logic I". A. I. . 13, 1 A 2, 41-72. Minsky M. ()975) : "A framework for representing knowledge*. In P. H. Winston. Mtnsky M. (ed.). (1968) : Semantic information processing. Cambridge. Mass> Ml Г Press.
Prade H. ()983) : "A synthetic view of approximate reasoning techniques'. UC^i 8. 130'136.
Rieger C. ()976) : "An organization of knowledge for problem solving and language- comprehension". A. I. 7, 89-127.
Reiter R. ( 1978) : "On reasoning by default". Theoretical issues in Natural Language Processing-2. Illinois. 2)0-218.
Reiter R. ()980) : "A Logic for Default Reasoning". A. /. 13 < 1-2). 81-132-
Rosenberg S. (1983) : "HPRL : a language for building expert systems". /JCA/ 8, Karlsruhe. 215-217.
Rousseau M. ( 1973) : "Rdsofution automatique d'exercices d*6lectrtclt^ pos6s en fran^ais'. Thdse. Paris VI.
Rychener M. 0. ( 1976) : "Production systems as a programming language for artificial Intelligence Applications". РЛ. D.z Carnegie Mellon.
Sc hank R. C. ( 1972) : "Conceptual Dependency : a theory of natural language un - derstandlng". Cognitive Psychclcgy. 3. 552-631.
SchanK R. C. (1975) Conceptual information Processing. North Holland.
Schank R. C. , Abelson R. P. ()977) Scripts, pianst goals, and understanding.
Hillsdale, N. J. Lawrence Eribaum.
Short!Iffe E. H. , Suchanan B. G. ( 1975) : "A model of inexact reasoning in medicine'. Mathematical Biosciences 23. 351-379.
Skolem T. ( 1967) : "The foundations of elementary arithmetic established by means о/
the recursive mode of thought, without Ihe use of apparent variables ranging over Infinite domains*. In From Frege f。GWe/. Harvard University press.
Steflk M. < 1979) : "An Examination of a Frame-Structured Representation System* IJCAI 6. 845-852.
StMk M. . Alklns J— Balzer R. . Benoit J. . Birnbaum L. , Hayes-Roth F. .Sacerdotl E. (1982): " The Organization of Expert Systems. A Tutorial'. A, /. 18 f2> 135-173,
Szolovits P. . paukor S.G二(1978) : "Categorical end Probabilistic Reasoning in Medical Diagnosis". A. /. . 11. 115-144.
Tabourler Y. ( 1982) : *Probldmes de normalisation et de ddcompositlon dans les modules conceptuels de donndes*. Infcrmatique ef gestiqn, n°133. 72-81.
Van Melle W. (I960) "A domain-independent system that aids in constructing knowledge based consultation programs"- Яор. N。. 820. Computer Science Dept. . Stanford University. CDoctoral disserfafion).
Weyhrauch R. W. (1980). "Prolegomena to a Theory of Mechanized Formal
Reasoning*. A. /. . 13 : 1-2. 133-170.
Wilensky R. (1978) : 'Understanding goal-based stories". Research Report 140. Yale University.
Winograd 7. (1975) "Frame representations and the declarative/procedural controversy", in Representation and understanding. Bobrow & Collins; (eds).. Academic Press.
Woods W. (1975) : "What's in a link ? Foundations for semantic networks", in Representation and Understanding. Bobrow & Collins (eds). Academic Press New York. 35-82.
Zadey L. A. et al. <ed') ( 1975) : Fuzzy sets and their applications /о cognitive and decision processes. Academic Press.
Zade# L. A. (1979) : "Approximate reasoning based on fuzzy logic". UCM 6, 1004 - 1010.
ЭКСПЕРТНЫЕ СИСТЕМЫ И ИХ ПРИМЕНЕНИЯ
Alklne J. ( 1979) : "Prototypes and production rules : and approach to knowledge representation for hypothesis formation". /JCA/ 6.
Abrlal J. R. (19Z4) : Data semantics IFiP, TC2.
Anderson Я. . Glllogly J. < 1976) : "Rand intelligent terminal agent RITA design and philosophy". R~180Q~ARPA.
Anderson J. . Kline P. (1979): "A learning system and Its psychological Implications". IJCAI 6.
Anderson J. . Kline P. , Beasley C. (1979) :" Complex learning processes" In Aptitude Learning and Inatructiona, R. Snow (Ed.).
Barnett J. Berstein M. (1977) : *Knowiedge-besed systems ; a lutorial'. Sysfem Development Corporatfon. TM( L) 5903.
BarsfcMV D. R. (1979) : "An experiment In. knowledge based automatic programming*. A./. . 12. 73-119.
Bartels U. , Otthofl W. , Rawlefs P. (1981) : "APE : a system for eutomatlc .programming from abstract specifications of data types and algorithms*. IJCAI 7. 1037-10-13.
Bettanl G. . Meloni H. ( 1973) : 'Un Interprdteur de PROLOG". Alx-Marsellle. GM
Lumlny.
Bennett J. S. . Engetmore R. (ld79) : "SACON : a knowledge~based consultant for structural analysis". IJCAI 6. 47-49.
Bennett J. S- . Hollander C> R. (1981) : "DART : and expert system for computer fault diagnosis". IJCAI 7. 843-645.
Bobrow (Ed.) (Id75) : A#prea#nrar/on and Understanding. Academic Press. Bobrow D. , Wtnograd T. (1979) : *KRL another perspective*. CS. Hl). 24-79. Bonnet A. (1980) : "Analyse de textes au moyen d'une grammalre sdmantique de schemas. Applications A la comprehension d・ rdsumds mddicaux ел langage nature!*. ТЛёае <f£Taf. Paris VI.
Bonnet A. (1981) : "Applications de rinteiligence ertlflclelle , les systftmes experts*.. ЯА/RO Informaflqu^,】5 (4).
Bonnet A • CordlerM.O. . Kayser O. (1981) : "An ICAI System for teeching Derivatives S mathematics", Hoe.。,3rd Wor/d Conference on Computer Education .(WCCE). Lausanne. 27-31.
Sonnet A・.Harry J. . Ganascla J/G. (1982) : "LITHO, un systftme expert intrant la gftoiogie du sous-sol*. TSI. 1. 5. 393-402.
бмтм А. . Oahen С. О98Э) •Oil-well eate interpretation using expert system and pettern recognition technique*.. fJCAt 8. 185-189.
Bomlng A. . Bundy А. ПМ1) : *Usln9 matching In elgebralc •quailon totvln^*1. IJCAI 7, 4вв-471.
Bourgoln 0. (W7S) :*PARl, un progremme heurlstique pour rteoudra das exerclcee d'arlthmdtique*.,**• de 3@me cycle. Paris Vi*
Brown J. . Burton R. . Boll A. ( Ш/5) : 'SOPHIE : e $9p towards creating a reactive learning environment*, int^rnetlonel J. of Man-Mach/na Studlea. 7, 675716.
Buchanan в. . Feigenbaum F. (1978) : *OENORAL and ME.TA-OENORAL'. A. /.. IL 5-24.
Buchanan B. . Mitchell f. tl979) : 'Mode* directed iearning of productton ruies". in : Waterman and HaRa Roth (eda)..
Bundy A. . ByrdL. . Luger G. . Mellish R. . Milne R. , Palmer M. (1979) : 'МЕСНО a program to solve mechenlcs problems*. Dept, of A. I. U. of Edinburgh. Working Pap«r № SO, 1-104.
Bundy A. * al. (1979) : *Solvlng mechanics problems using meta-lewel Inference". IJCAI 6. 1017-1027..
Carbonell J. (1978) : #POUTICS : automated Ideologlcel reasoning". C. S.,2. 27-51..
Cartiart R. E. (Id79): "CONGEN : on export system aiding the structural chemist". In М/сй/# Ced. >. Edinburgh University Press.
c«yrot M. . Fade в. , Farreny H. (1979) : * Objets formels et attribute dans ARGOS 1Г * Actea Congrds AFCET, Toulouse, 256-263.
Cayrol M. , Fade B. . Farreny H. (1979) : "A decision-command function for a general robot* : ARGOS-II . ТесЛ. Report, UntversIM Toulouse.
CMrntak E.《1978) : "On the use of framed knowledge'. A. /. . 11 (3>. 225-2вв.
Chomsky N. (1965) : 'Aspects of the Theory of Syntax". MIT preas.'
Clancey W. J. (1979) : "Tuiorfng rules for guiding a case method dialog*. Int^ J. of- Man-Machine Stvd/ез. И. 25-4d.
Ctancey W. J. , Letelnger R. (1981) : "NEOMYCIN : reconfiguring a rule based expert system for appllctitlon to teaching*. IJCAI Л. 829-838:
Cloclcsln W.F. . Mellish C. S. (1981) : 'Programming In Prolog". Sprlnger*Veriagr Berlin.'
Coelho H. , Cotta J. C. . Pereka L. M. (1980) : "How to sqlve It with PROLOG". Lab. Nat. de En^enharla Civil, Lisbon.
Colmerauer A. (1977) : Programmation en logique du premier ordre , 4cfes Journos *La compr^ft^naion *. IRIA.
Cordier M. 0. (ld7d) : "Commande d'un robot ел langage nature! dans un domaine •ndcessltam des connalssances pragmetiques : les recettes de cuisine" TMse de 3@m& cycle. LRL Paris XL
Cordier M. O. . Rousset M. C (1984) : "Propagation: another way for matching patterns. In KBS' Cyb. and Syst. Ree. 2
Davts R. (ld7d) : *lnteractlve transfer of expertise : acquisition of new inference* rules*. MIT, ff. 1-38 . abridged version In IJCAI, 5. 321-328.
Davie R. , Buchanan h. (19/7〉 : *Meta-levei knowledge and applications". IJCAI 5, 920-927.
Davis R. . Bdchanan 8. . Shortlltte E. ( 1977) ; "Production rul・s as * r❷presentation for a knowledge-based consultation program*. A. /.. 8. 15-45.
Davts R. . King J. < 11177) : *An overview of production systems*. M. /. , 8* 300-332.
D*vle R. * Austin H. : Carlbow I. .. Frawley в. . Pruchnlk P. . Sneiderman R.. Gilreath J. A. (1981). : "The DIPMETER advisor: Interpretation of geological > signals". UCAi 7. Э46-849.
Dsvis A. , Lenat О. в. (1982) : Knowledge Based Systems In Artificial Intelligence, New York. McGraw-Hill.
DMCOttes У. . Latombe J. C. (1981) : aGerl : e problem solver that plane how to machine mechanical parts "iJCAt 九 766-772.
EMnebas M. (1979) : "PROLOG et un example da programme expert 8ut en PROLOG*. Doc. CERT. , 2Z3122.、
OfneOas M. < I960) : "A knowledge-based expert system' for automatic analysis and synthesis*t In : CAD. Proc. 9FIP. Tokyo, 705-710.
Otnolm M. (1980): aLe syet^ma de resolution de prob№m&s METALOG*. CERT/OERI» Report N・ 3/48. Con^ntlon ORET 79. f2,吼 Toulouse.
Oounwlngte G. . Breull 0. . Pun L. (1963) : I# gMlofi de production aM/ef#e par ord/nateur*. Hermes Publishing, Paris.
Ooyto J. (W7d) : *TMS : a true malittenance system* . A. /.. 12. 231-272.
Dud・R.O. • Gaechnlng J. . Hart P. (1980) : 'Model design In the PROSPECTOR consultant system for mineral exploration^. In M/c/f/e 1980.
Ouda R. O. ( 1982) : 'The PROSPECTOR consultation ayatem*. Final Report SA/ 8/72.
Ouda R. O. • Qaschning J. G. ( 1981) : 'Knowledge based expert systems come of age'. Byte. 6 (9): 238-283.
Engelmore R. . Terry A. ( 1979) : "Structure and function of the CRYSALIS system". IJCAI 6. 250-256.
£rman L. . Lesser V. ( 1975) : "A muitl-level organization for problem-solving using many diverse cooperating sources of knowledge*. IJCAI 4. 483-490.
Erman L. . Hayes-Roth F. . Lesser V. R. , Reddy D. R. < i960) : "The HEARSAY-II speech-understanding system : Integrating knowledge to resolve uncertainty". Computing Surveys,2,2.
Erman L. . London P. , Flckas S. (1901) : "The design and an example use of HEARSAY III'. IJCAI 7. 409-415.
Farreny H. (1980) : "Un systdme pour rexpresslon ・t la resolution de probldmes orient© vers Ie contrdie de robots*. Th^se (fEtat. Toulouse.
Farreny H. (1982) : "Oes puits de science qu'on peut sonder". In : La Science des Robots. Science ef Vle-hors-s^rle. 68-75/
Farreny H. ( 1985) : Les syst^mes-experts, prlndpes et exemples. Cepadues. Feigenbaum E. ( 1977) : "The art of artillclal Intelligence". iJCM 5. 1014-1029. Feigenbaum E. . Buchanan B. . Lederberg J. (1971). : "On generality and problem solving : a case study using the DENDRAL program". Ml 6. 165-190
Ferrand P. < 1983) "SESAW, 'An Explanatory Medical Aid System*. ECAI. 13-20.
Fleschl M. (1981) : "Aide d la Odclslon en MAdecine : Ie Systdme Sphinx. Application au diagnostic d'une douleur Aplgastrique*. Thdse, Mddecfne, Marseille.
Fleschl M. (1984)Intelligence artlflclelfe ел mddeclne: syst^mes experts. Masson. Forgy C. . McDermott J. (1977》:*OPS : a domain independent production system*. IJCAI 5. 933-939.
Fou殲 J. M. ( 1982) : " OAsapprendre & programmer". Pub. QR 22, n.° 30. Friedman L. (1981) : Extended plausible Inforence . IJCAI 7. 48 7-495.
Gallalre H. . Minker J. (Eds) (1978) : Logic and Dam Bases. Plenum.
Gallalre H. . Lasserre C. ( 1979) : "Controlling knowledge deduction In a declarative approach". IJCAI 6. S"S12.
Gallalre H. (1981) . "Le langage PROLOG". L4. 12R, Lectures. Toulouse.
Ganascla J. G (1983) : 4 MIRII tHO. Validation des rdsultats e£ detection des contradictions dans les systdmes de dlghostlc9. Thdse 3@me cycle Paris Sud.'
Gascuel O. (1981) : "Un programme gdn^ral d'alde d la decision mddlcale structurant automallquemnt ses connalssances". CongrAs AFCET ЯГ-/А. Nancy.
Green C. (1976) : "The design of the PSI program synthesis system". Proc, of the Second International Conference on software ertgine^fn^. 4-18.
Georgeff M. ( 1979): "A framework for control In production systems". IJCAI 6. 328334.'
Germain M. ( 1981) : Journ6e sur les specifications. Afcet~TTI Conference. Nancy.
Ghallab M. * Decision trees for optimizing pattern-matching algorithm". /JCA/ Z, 310312.
Goldstein I. . Roberts R. (1977) : "NUOGE : a knowledge-based scheduling program'. /JCA/ 5. 257-263.
Green О. О. C976) : "The design of the PSI program synthesis system*. IJCAI 2. 4-18.
Hayes-Roth F. . Waterman O. A. , Lenat О. B. (1d77) : "Principles of pattern-directed inference systems*. 5Z7-601. *.
Hayes-Roth F. , Klahr P. . Mostow 0. (1981) : * Advice-taking and knowledge refinement : An Iterative view of skill acquisition*. In J. R. Anderson (ed.), Cognitive skills and their acquisition. Lawrence Ertbaum, 23]-253.
Hedrick C.L. ( 1976» : learning protfucnon systems from examples. A. /.. 7( 1> 2149.
Herbrand J. (193П : "Une mdlhode de demonstration*. Tft^ae. Paris.
Hewitt C. ( 1972) : 'Description and theoretlcel analysis (using schemata) of PLANNER :a language for proving theorems and manlputatlng models In a robot* PhD. MiT, A. I. Lab. Report 258.
Holt A.W. (WTD : Introduction ro Occurrence Syerems. Associative Information Techniques. E. Jack《g ). Fisevler. USA.
Huet G. (197B) : Unification d«ns les loglques d'ordre ).2.3.omdga. ThQs❷ Paris.
Johnson T. (1964) : ГЛв commerc/#/ applications о/ expert systems technologies. OVUM Lows.
Kahn KM. 3981) : "UNIFORM : a language based upon unification'. IJCAI 7. 933- 939.
Kayser 0. . Coulon 0. (19BU : 'Variable-depth natural language understanding* . IJCAI
64-66.
KHtmr 0. . Morris P. (1981) : "Oon l be stupid". IJCAI 7, 345-347.
Konollge K. (1979): "An Inference net compiler for the PROSPECTOR rule-based consultation system". IJCAI в. 487-489.
Kowalski R. (1974) : 'Predicate logic as a programming language". Proc. !FtP, 3, 569 - 574.
Kowalski H. (1979): Logic tor Problem Solving. North-Holland. New York.
Kullkowski C. A. . Weiss S. . Trlgobofl M. . Saflr A. (1976) : "Clinical coneultatlon and the represenllon of disease process : some A. I. approaches". Report CEM-T内 58. Rufgors University.
KuHtonvekl C. A. , Weiss S.《(962) : "Repreee л ration ot expert knowledge tor consul - tat ion : the CASNET and EXPERT projects". In Artificial Intelligence In Medicine, P. Stolo^lt» fed.). Westview Press.
Lagrange M. 8 , Renaud Mk ( 1985) 'intelligent Knowledge based systems in archeology: a computerized simulation of reasoning by means of an expert system" . Computer and Humanities, Id, 37-52.g
Ш^гап^е M. 8 , Renaud M. (1984): "Oeux experiences de simulation du raisonnement en archdoiogle au moyen d'un systdme expert: i・ syetftmp SNARK: Informatique et sciences humalnes. 59-60. 161-1ЭВ.
Langley P. (19 79) : 'Rediscovering physics with BACON-3". IJCAI 6. 505-50 7.
LasMrre C. (1978) : 'Rapport de la loglque mathdmatfque dans les systdmes de decision en robollque*- TAdse Oocteur Ingdnleur, Toulouse.
Latombe J. C. ( 1977) : "Une application de I'inteiligence artlflcielle d la conception assislde par ordinateur*. Th©■❷ <f£tat, Grenoble.
Lauriftre J. L. (1971): "Sur la coloration de certains hyperg raphes "Appncations aux probldmes d'・mplol du temps. TAdse. Paris VI.
Laurlftre J. L. (1972): *Problftmes d'emploi du temps (E. H. R)". Acres dea fournd^s comb/nato/res Afc•八
Laurlftre J. L. (1974) : "Un programme d'Alaboratlon des emplols du temps scolalres* Congr^s Afcet .eW,/a d^ci&tan*. Paris.
Lauridre J. L. "974): "Problftmes d'emploi du temps et aigorlthme de coloration des hypergraphes. С,Я, Acad. Scf. Psrfs 278 a. 1159-1162.
Laurier» J. L. (1976) : "Un tangaga et un programme pour Anoncer et rdsoudre des problftmes comblnatoires'. Tft&e d'Etat. Paris VI.
Laurl^re J. L. (1982) : "Applications Induetrieiies dee systdmes experts'. 4e Journdes Francophones Gendve. IMAG. Grenoble.
Laurlftre J. L. , (1986) : 'Un langage d€ciaratii SNARK", Revue TSI n* 3.
Laurlftre J. L. (1983) : "Representation &t utilisation de connaissances". rSf n° 1 et 2.
Laurlftre J. L.. Vlalatte M. (1985) : "Manuel d'utillsallon du moteur d'infdrence SNARK*. Instltut de programmation.
S Falvre R. ( 1974) : "Fuzzy problem solving". PhD, Tech. Hep. 37. University of Wisconsin.
Snat 0. < 1975) : "BEINGS :• knowledge as Interacting experts*. IJCAI 4.
Lenat O. (19 7 7) : "The ubiquity of discovery" . A. /. . 9(3), 25 7-286.
L«nat 0. . McDermott J. (1977) : "Less than general production systems architecture". IJCAI 5. 928-932.
Levesque C. (1984) : "Un systdme expert en paye et gestlon du personnel". TAdse 3dme cycle. Paris VI.
Lindsay Я. K. , Buchanan B. G. . Feigenbaum EA. , Ledefberg J. ( I960) : Applications о/ artificial Intelligence for organic chemistry : The Dendral protect. McGraw-Hill.
Manna Z. . Waldlnger R. (1975) : "Knowledge and reasoning In program synthesis"; A./. . 6. 175-208.
McCarthy (1977): "Epistemological problems In Al". IJCAI 5. MIT Cambridge, 1038- )044.
McCracken D. «1979): 'RepresentaUpn and efficiency in .a production system for speech understanding'. IJCAl 6. 556.
McDermott 0.《1978》:^Planning and acting*. C* S.. 2, 71-109.
McDermott 0. (197d> :• "Learning to use analogies'*. /JCAf 6, 568-5 76.
McDermott 0. . Forgy J.《1977) : "Production system conflict resolution stragegles* In Wstertnan ef Hsyes-A。侦.177*201.
McDermott D. . Newell A. . Moore J. f 19") : "The efficiency of certain production system implementations" In UVeterman,f Hayes-Roth. 155-176.
McOermo.tt D. . Steele B. (1981) : * Extending a knowledge-based system to deal with ad-hoc constraints". IJCAl 7. 824-828.
McDermott O. ( 1982): 'Ri : a rule-based configurer of computer systems". A./., 19. 39-88.
Markov A. (1954) : The theory о/ algorithms. US Oept of Commerce, translated from Russian by J. Shorr-Kon.
Mathlab Group : The MACSYMA reference manual. MIT Lab. lor Computer Science.
Meloni H. (1982) : "Etude et realisation dvun systdme de reconnaissance automatique de la parole continue". Thdse de Doctorat d'Etat. University d'Aix-Marseilte
Luminy.
Mey^r A. (I960) : 'Ten thousand and one logics of programming'. /LP, М/Г 6380. Mey^r 8. . Baudoin C. (1978) : M6thodes de programmation. Eyrolles n° 34. Michie D. (i960) : Expert Systems In the Microelectronic Age, Edinburgh Univ. Press. Minsky M. ( 1975) : "A framework for representing knowledge", in Winston .75, 211 - 277.
Mitchell T. M. . Utgoff P. . Nudel 8 . Banerji R. : "Learning problem solving heuristics through practice". IJCAl 7. 127-134.
Moran T. (1973) : The symbolic nature of visual Imagery : IJCAl 3. 472-477. Mylopoulos J. (1981) : "An overview of knowledge representation" SIGPLAN, 16(1).
572,
Newell A. (1976) : 'Production systems : models of conirol structures". Jn ; Visual intormatlon Processing. W. Chase (ed-). 463-526.
Newell A. (1982) : 4Tho knowledge level*. A. /, , 18 (1). 87-128.
Myers J. 0. . Pople H. (1977): "Internist a consultative diagnostic program* In Internal medicine proceeding of Me /s, annual symposium on computer applications in medicsl cere, /ЕЕЕ.
Newell A. . McDermott J. ( 1975) ; *PSG manual'. Beport, 'Carnegie and Mellon University.
Newell A. . Simon H. (1972) : Human Problem Solving. Prentice-Hall.
NII M Allello N. (1978) : "AGC : aitempl Io generalize'. Work Paper 5. Stanford.
NII N. Feigenbaum E. ( 1978) : "Rule based understanding of signals". In : Waterman and Hayes-Roth (eds)..
Nilseon N. (1980) : Principles of Artificial Intelligence. Tioga Pub. Co.
Pastre 0. (1978) : "Automatic theorem proving in set theory". A. /. , 10 (1), 1-27.
Patil R. . Szolovlts P. , Schwartz w. B. ( i 982) : "Modeling knowledge of the patient In acid-base and electrolyte disorders, /л Artificial Intelligence in medicine, Szo/ov/fs (ed.), Westview Press.
Petri C. A. (1962) : "Communication with automata', PhD. Bonn.
Plerrel J. M. (1982): "Utilisation de coniralntes imguistiques en comprehension au- tomatlque de la parole continue : Ie systftme Myrtllle-ll*. TS/. Vol. 1, n° 5. 403-421.
Pinson 8. ( 1980) : "Representation des cdnnalssances dans les systdmes experts'. ЯА/Я0 Inlormat/que. 15 (4), 343-367.
Pitrat J. (1970》:Un programme de demonstration de thAor^mes . Monographic AFCRT
Dunod.
:PHrat J. ( 1985) : "Utilisation de connalssances ddclaratlveis'*. Cours dcole d'dtd AFCET Aix en Provence.
Post E. (1936) : "Finite combination processes*. J. о/ Symbolic Logic. 1. 103-105.
Post E. (1943) : "Formal reductions of the general combinatorial decision problem". Am. J. or Math. . 65. 197-215.
Pun L. (1982) : "Predictive complicate coordinating plannings*. Asia-pacific conference on operational research. Slngapoore.
Pun L. (1984) : Syst^mes Industrlets <fint9ltigence artlficfcli&. Editions Tests.
Quinlan J. "Knowledge-based system for locating missing high cards In bridge". UCAf
705丁707.
EK7
Roussel P. < 1d75) : 'Prolog : manuel de rAMrence ・t d'utllieatlon*. Groupe <fM- teIHgence Artlflclelle. Marseille Lumlny.
Aousset M.C (1983) : "TANGO, moteur d'infdrences avec variables'. Thdse 3е cycle .■ Orsay.
Rychener M. 0. (1976) : 'Production systems as a programming language for artificial Intelligence applications". PhD. Carnegie Melon University. Vol. 1 and 2.
Schank R. . Abelson R. (.1977) "Scripts. Plans. Goals and Understanding' Lawrence Erlbaum Associates. Mliesdale. N.J.
Shortllffe E. (1976) : Computer-based Medical Consultations :MYCIN. Elsevier. USA.
Shortllffe E. . Carlisle Scott A. . Blschott M. B. . Campell A. B. , Van Melle W. Jacobs D (1981) :. "ONCOCIN an expert system for oncology protocol* management". /JCA/ 7, 876-981.
StefJk M. (1978) : "inferring ONA structures from segmentation data". A./. . >KD. 85-114
Steflk M. (1981) : "Planning with constraints (MOLGEN 1)". A.I. . 16(2〉. 1H-140. Stef Ik M. (1981) : "Planning and meta-ple>nnlng (MOLGEN 2)'.A./.. 18(2). 141'170. Sussman G. , Stallman R. < 1975) :■ "Heuristic techniques in computer-aided circuit analysis". IEEE Transactions on Circuits and Systems. CAS 22 (11). 857- 865.
Swartout W. R. (1979) : "Explaining and justirylng expert consulting programs*. /JCA/;
815-823.
S2eredl P. ()977) ; "Prolog, a very high language based on predicate logic*. Hungarian Con/, on Computer Science.
Uhr. L. (1979) : "Parallel-serial productions systems'. IJCAI 6, 911-916.
Van Melle W. (1979) : 'A doman independent production-rule system for consultation systems". UCAl 6.
Vlalatte M. (1984): 'Introduction de mdtaconnalssances, de gestlon d^hypothdsee. de .loglque d'ordre 0 et 2 dans SNARK". Rapport Instltut de programmation
Vlalatte M. (1985) J Description et applications du moteur d'lnfdrence SNARKT Th“a Univ. Paris 6.
Warren О. H. (1977) : "implementing Prolog : D. A. I.". Research Яер. f and 2. University of Edinburg.
Waterman 0. ( 1970) : aGenerallzatlon learning techniques for automating the learning of heuristics*. A./.. 1. 121-170.
Waterman 0. (1975) : "Adaptive production systems". IJCAI 4. 296-303.
Waterman 0. . Hayes^Roth F. (eds. ) (1978) : Pattern Directed Inference Systems, Academic Press New York.
Waterman Q. , Newell A. (1971) : "Protocol analysis as a task for artificial Intelligence". A./. , 2. 285-318.
Weiss S. M. . Kullkowskl C. A. (1978) : "Expert: A System for Developing Consultation Models*. IJCAI 6. 942-947.
Wllensky R. (1981) : "Meta planning". CS. 5. 197-233.
Wilkins 0. (19 79) : "Using plans In chess". IJCAI 6. 960-967.
Wlnograd T. (1975) "Frame representtlons and the declarative procedural controversy". In Bobrow & ColHns (Eds). Academic Press.
Wlnograd T. 5982) : "Oes machines savantes. mats Incultes*. La Science des AoborsF Science ef Vle~hors~s6rle. 76-B3.
Winston P. H. (1975) : The Psychology of Computer V/s/on. McGraw-Hill.
Winston P. ( 1977) : Artificial Intelligence. Addison-Wesley.
Zarrl G. P. f 1981) : *Bulfdlng the Inference component of an historical Information retrieval system*. /JCA/ 7, 401-408.
АВТОМАТИЗАЦИЯ ПРОГРАММИРОВАНИЯ
Adam A. (1973) : "Gadget" Un programme de gdndratlon automatlque de programmes sur les graphes et les ensembles. Th^se Paris VI.
Adam A. (1978) : "Utilisation des transformations sdmantlques pour la correction automatlque des programmes'*. Th^se tfEfar. Paris VI.
Adam A. * I aurent J. P. (1980) : "LAURA, A System to debug student programs' A. I. 15. (1-2) , 75-122.
Aho A. V. , Hopcroft J. E. . Ullman J. D. 1.1974) : The design and analysis о/ computer algorithms. Addison-Wesley.
Blbel W. ( 1982) : "A Comparative Study of Several Proof Procedures". A. /. 16 (3) 269 - 293.
BMsoe W. W. (1971) : •Splitting and reduction heuristics in automatic theorem proving*. A. /. 2. .55-77.
Bledsoe W.W. . Boyer R. S. . Henneman W.H. (1972) : 'Computer Proofs of Limit Theorems*. A. /. 3. 27-60.
Bledebe W. W. . Bruel P- (1973) : aA Man-Machine Theorem Proving System'. IJCAi
Bledsoe W.W. (1977) : "Ncn-resolutlon theorem proving-. A. /. , 9. 1-35.
Bobrow D.G. (Ed.) (19Э0) : Special Issue on non-monotonlc logic. A./., 13. 1-2., Botirgofn 0. (W7B) : "PARI, un programme heurlstlque pour rdsoudre des exerclces' d^arlthmdUque". Th6ae de 36e& cycle. Paris.
Carrlftre O. (1973) : 'Realisation d'un programme heurlstlque qul r^sout des tests pyschologlques de mesure de facteur G*. TMse Paris VI.
Chang C. . Lee R. C. (1973) : SymboHc logic •nd mechanical theorem proving. Academic Press.
Chang C. L. ” Slagle J. R. "979〉: 'Using Rewriting Rules for Connection Graphs to Prove Theorems". A. /. . 12 (2). 159-178.
Cooks S. (1971) : "The complexity of theorem Proving procedures*. 3M ACM symp. on, theory。,computing.
Dallard H. (1974) : 'Presentation d'un programme de demonstration de thdordmes d'arlthmdtlque*. Th^se, Paris VI.
Delhaye J. L. (ld70) : *0ATAL. un programme de demonstration automatlque de thdordmes*. Th^se. Paris VI.
Ooyte J. (1979) : "A I ruth maintenance system*. A./.. 12. 231-272.
Evans T. G. (1968) : aA program for the solution of geometric-analogy Intelligence test questions*. In Semantic Jnlormatron processing (Minsky M. ed.). MlT, Press.
Fatter В. (1964) : "An Expert System In Symbolic Integration'. ЕСА/. 82-ЭЗ.
Flavlgny 8. (1972) : 'Sur la detection a priori des erreurs dans les programmes*. TMse. Paris VI.
Gelernter H. (1963) : 'Realization of a geometry theorem proving machine*, in* E. A. Feigenbaum and J. F^tdman (Eds.). McGraw-Hill. 134-152.
Gtllet N. < 1980) : *Un exemple (('utilisation de connalssances en demonstration au- tomatlque*. Thdse. Paris VI.
Grandbastlen M. (1974> : "Un programme qul rSoul formellement des Aquations trlgonomdtrlques par des proc@d@8 heurlstlques*. Thdse, Paris VI.
Green C. (1969) : 'Theorem-proving by resolution as a basis for question-answering systems*. In B. Meltzer and D. Michie (eds.). Machine Intelligence 4. Elsevier. 1783-205.
Hearn A. C. (ld71) : aReduce : A system and language for algebraic manipulation*. Proc. ACM 20 Symposium on symbolic and algebraic manipulation. S. R. Pelnlck ed.
Hertz A. (1975) : 'Programmes de demonstration de thdordmes formulables en loglque des predicate du premier ordre avec Agalltd". Th^s». Paris VI.
Hewitt O. (1972) : aOescrlptlon and theorlcal analysis (using schemeta) of Planner : a language for proving theorems and manipulating models In a robot*. Ph.D.' of math. . MIT.
Huet G. (1972) : 'Constrained resolution : A complete method for higher order loglo г Rep. n* 1117. Case Western Reserve University. Doctoral dissertation.
Huet G. (1973a) : *A Unification Algorithm for Type Theory*, /г/а Laborla.
Huet G. (1973b) : "A Mechanization of Type Theory". IJCAI 3.
Huet Q. <1975) : *A unification algorithm for. typed lambda calculus*. Theoretlcaf Computer Science 1. 27-57.
Huei G. <1978) : "Unification dans les loglques d'ordre 1. 2….omega*. ThXe cfEtat. Paris VI..
KMcg R. <1971) : "A paradigm for reasoning by analogy', A. I. . 2. 147-178.
Kowalski H. (1970) : 'Search Strategies for Theorem Proving*. M I. S .181-200.
Kowaleki R. (1974) : 'Predicate logic as a programming language-. In J. L. Rosenfeld. <®d. ). North-Holland. 569-574.
Kowalski R, . Kushner D« <1971) : 'Linear resolution with selector function". A. /. 2 227-260.
Lasserre C. (1978) : "Apport de >a loglque mathdmatlque dans les s”t6nws d❷ decision en robotlque*. Tftdse, Toulouse.
Laurent J. P- ( 1972) : *Un programme qul calcule les limltes en levant les Indd* terminations par des proc6d6s heurlstlques". Thdse Paris VI.
Laurent J. P,(1973) : "A program that computes limits using heuristics to evaluate the Indeterminate forms'. A. /. 4. 69-94.
Mackworth A. K. (1977) : "Consistency In networks of relations'- A. /. 8. 99-118.
M&nna Z. : Waldlnger R. I. (1975) ; "Knowledge and reasoning In program: synthesis". A. L 6, 775-206,
Mathlab~Group C】974) ; "The Macsyma reference manual". M/t /ab. for computer science.
Moses J. (1971) : 'Algebraic simplification :*A guide for the perplexed'. Proc. ACM 2d Symposium, oc symboHc and algebraic manipulation.
Nevins A, J. < 1975) : "A relaxation approach to splitting in an automatic theorem prover".. A. /. 6. 25-40.
Revins A. J. (1974) : "A human oriented logic for automatic theorem proving', J. ACM 21. 606-621.'
Nevins A. J. (1975) : "Plane geometry theorem proving using forward chaining", .A. /.
3-23..
Pastre D. < 1976) : "Demonstration automatique de th6oremes en thdorle des ensembles'. Th^se Paris VI.
Pa&tre D. < 1978) : 'Automatic theorem proving In set theory'. A. /, 10. L 1-27.
Pastre 0, (1984〉 •MUSCADET". Un syst6me de demonstration automatique de thdordmes utllisant des conrtaissances et des mdtaconnalssances en mathdmatlques. Tftdse dEt&t Paris VI..
Pitrat J. <1970) : Un programme de demonstration de th6or&mes. AFCET. Ounod.
PQSt (E. ) (1936) ; "Finite combination processes". Journal о/ symbolic logic /, 1Q3- 105.
Roller R. (1900) : 'A- logic for default reasoning". A. /. 13. 81-132.
Robinson J. A. (1965): "A machine-oriented logic based on the resolution principle" J. ACM 12. 23-41.
Robinson G. A. . Wos L. < 1969) : "Paramodulation and theorem-proving In first order *theories with equality". In D. Michie (Ed.), M.l. 4.
Robinson G. A. < 1973) • : "The generalized resolution principle". M. /.3, 77-Q8. Robinson G. A. ( 1974) : "Mechanizing higher-order logic". M. /. 4,151-198..
Vive I M. ( 1973) : "Un programme qui Srifie des Identltds en utllisant Ie ralsonnement par recurrence*. Th^se. Paris VI..
Vfvet M. (1984) ; XAMELIA : A knowledge based mathematical system*. EC Ai 603- 612.
Wegman M. N._ C978> : ^Linear Unincatlon". J. of Сотд. and System Sciences. )6. 15B-167.
Wos L. T. , Carlson 0. G.. Robins G. A. (1985) : aEfflciency and completeness of the set ol support strategy In theorem-proving. *j. ACM 4,12. 538-541.
ЯЗЫК ПРОЛОГ
Clocksln W. F. and Molllsh (1985) : Programmer en PROLOG. (Eyrolles).
Colmerauer A. . (1978) : ^Metamorphosis grammar. Natural language communication with computers*. Lecture nofes In computer science, y“. 63.
Colmerauer A. . Kanoul H. . Van Caneghem M. (1983) : "Prolog, bases thdorlques et ddveloppement actuels*. TS/. 2. 4.
Kowalski R. (1980) : Log/c /or problem soMng. ■ North Holland.
Roussel P, (1975) : ^Prolog ; manuei de rdfdrence et (('utilisation*. Rapport 6/A. Marseille. Luminy.
Venken R. (1984) : *A Prolog Meta-lnterpreter for Partial Evaluation and Its Application' to Source Transformation and Query-Optimisation". ECai 91-100.
Warren 0. H. 0. , Pereira L. M. , Pereira F. (1977) : 'Prolog - The language and It» Implementation compared with LISP'. Proceedings of ГЛе Sympoafum on. Artlflai Intelligence and Programming Languages (ACM) .SIGPLAN Notices* 12(8). and SIGART Newsletter 64: 109-115.
РЕШЕНИЕ ЗАДАЧ И ПЛАНИРОВАНИЕ
Abelson R. Р, (1975) : *Concepts for representing mundane reality In plane*. In Bobrow and Collina. 280-309..
Berliner H. (1979) : *TheB* Tree Search Algorithm : A Best-Flret Proof Procedure'. A./. 12. (D. 23-40.
Bitner J. , Relngold E. (1976〉: 'Backtrack programming techniques'. C. ACM IB, 651-656.
Carbonell J. (1978) : ■ 'Politics : Automatic Ideological Reasoning*. C. S. 2. 27-51.
Carbdnell J. (1981) : 'Counterplanning : A Strategy-Based Model of Adversary Planning In Real-World Situations*. 4」.16 (3>. 295-32*.
Cayrol M. , Fade B. , Farreny H. (1979》:*Formal objets and feature associations In ARGOS-lf- UCAI 6. 31-133.
Cayrol M. . Fade 8. . Farreny H. (1d79) : *Ob|ets formels et attrlbuts dans ARGOS-ir. Congres AFCETt Toulouse. 256-263.
Cayrol M. ; Fade B. . Farreny H. (I960) : *ARGOS-H un systdme de production pour ёсПге des rdsolveurs experts'.人cfes du Congres AFCET Informatlque, Nancy. 351-361.
Ernst G. W. . Newell A. (1969) : GPS : A Case Srudy /n Generality and Problem SoMng, Academic Press.
,Eastman C. (197D : ^Heuristic Algorithms for Automated Space Planning". UCAI 2. Eastman C. (1973) : "Automatic space planning*. A. /. 4, 41-64.
Ernst G. W. (1971) : The utility of Independant subgoal In theorem proving". 0>f formation and control. 4.
Fahlman (1974) : "A planning system for robot construction tasks*. A. I. 5. 1, 1 -50.
Farreny H. (19B0) : "Un systdme pour Cexpression et la resolution de probl©me$ orient^ vers Ie 6ontr6>e de robots'. Th^se tfEtal Toulouse.
Fikes R. E. (1970): "REF-ARF : A System tor Solving Problems Stated as Procedures*
• A. /. . 1, 1..
J Fikes R. E. . Nilsson N.J. (1971) : "STRIPS : A New Approach to the Application of theorem Proving in Problem Solving*. A. /. 2. 189-208.
Fikes R. E. . Hart P. E. . Nilsson N. J. (1972b) . "Some New Directions in Robot* Problem Solving". B. Meltzer and D. Michie (eds.). M. /. 7.
Floyd H. (196 7) : "Non deterministic algorithms'. J.ACM. 14. 4. 636-644.
Fouet J. M. (1979) : "Conception par ordlnateur de mdcanlsmes d une boucle". Thdse^ Pans VI.
Garg R. (1978) : "GPFAR2" Un systdme d'denture automatlque de programmes pour Ie calcul optimise des fonctlons rdcurslves". TAdse Paris VI.
Gelperln O. ( 1977) : "On the optimality, of A*.". A. /. 8. 69-76.
Gloess P. (1976) : "GENER un gdndrateur de programmes*. Th^se Paris VI.
Golomb S. # Gaumert L. (1965) : "Backtrack Programming*. J ACM. 12* 516-524.
Gondran M. . Mlnoux M. (1979) : Qraphes ef algorlthtnes. Eyroiles.
Guzman A. (1968) : *Decompositlon of a visual scene Into three-dimensional bodies". AFIPS 尸a〃 Joint Conferences ЭЭ. 291-304.
Harallck R. M. . Elliott G. L. (1980) : "Increasing Tree Search Efficiency for Constralnt> Satisfaction Problems". A. /. 15, 283-314.
Hewitt C. (1989) : "PLANNER : A Language for Proving Theorems In Robots*. UCAI /.
Hewitt C. (1971) : *pescrlptlon and theoretical analysis (using schemata) of PLANNER :A language for proving theorems and manipulating models In a robot". Явр. Л/о.. 4-7Я-258. Al Laboratory. M. I. T.
Karp R. (1975) : "On the computational complexity of combinatorial problems" Networks 5. 45-68.
Laurent J. P. (1978) : MUn systdme qui met en Evidence des erreure sdmantlques dans- les programmes*. TMse dEt&t Paris VI.
taurlftre J. L, (1978) : tfA language and a program for stating and solving combinatorial problems".10. 29-127.
Laurldre J. L. (1979) : • Elements tfe programmation dynamlque^ Gauthier-Villars. Lawl“ E. , Wood 0. (1966) : 'Branch and bound method» : a survey*. Opn. res. 14. 899-719.
Lewler E. • < 1976) : "A note on the complexity 3 the chromatic number problem" Information Processing letterr 5. 66-87.
Lemaltre C. ( 1974) : "Probldmes de planlflcatlon et apprentlssage d&n, |e cas d'ua programme de simulation d・ robot". TMse Paris VI.
tenet D. В. (1982) : "The Nature of Heuristics*. A. I. 19 (2), 189-249.
Little J. 0. . Murty K. , Sweeney O. . Karel u. 11^63) : *An algorithm or the traveling salesman problem*. Opn. Ares. . 11. 972-989.
Msckworth A. K. ( 1977) : ^Consistency In networks of relations". A. /. 8, 99-118.
Mathieu J.. Thomas R. (1985) : Manuel de psychologle. Vlgot.
Meyer B. . Baudoln C. (1978) : Methodes d& progremmatlon. Eyrolles.
McDermott D. (1977) : "A deductive model of control of a problem solver". SIGART. 63. 2-7.
MoDermott D. (1978) : "Planning and acting'. C.S. 2: 71-109.
Mitchell T. M.《1У/9) : "An analysis of generalization as a search problem". UCAI 6, 5"-582.
PfeWerkom С. E. < 1975) : 'A heuristic problem solving design system for equlpement layout". C. ACM 18. 5“ 286-297.
Plalsted D. A. (1982) : "Л Simplified Problem Heduction Format". A. /. 18 (2). 227- 261.
Pohl I. (197O> : "Heuristic Search Viewed as Path Finding jn a Graph'. A. /. 1, 193- 204.
ReInfold E. . NIevergelt J.・ Dec N. (1977) : Combinatorial algorithms ; theory and practice. Prentice Hall.
Rousselot F. (1975) : "Simulation d'un robot qul ccmprend et execute des ordres donnGs en fran^als'. 7A6ee Paris VI.
Sacerdotl E. D. (1974) : *Plannlng In a hierarchy of abstraction spaces'. A」.5. 1.15- 135.
Saoerdoti E. D. ( 1975) : " The nonlinear nature of plans". UCAI 4. 206-214.
Sacerdotl E. D. (1977) : A Structure for plans and behavior. Elsevier.
Slklossy L. . Marinov (1971) : 'Heuristic search versus exhaustive search*. UCAI 2, 601-610.
Slklossy L. . Rich A. . Marinov V, ( 1973) : "Breadth-first search : some surprising results". A. I. 4, 1. 1-27.
Slklossy L . Oreussl (1973) : "An efficient robot planner which generates Its own procedures". UCAI 3.
Slklossy L. , Roach J. (1975) "Model verification and Improvement using OISPROVEH'. A./. 6. 1. 41-52.
Steflk M. J. (1980) : 'Planning with constraints'. Rep. № 80-784. Computer Science Dept. . Stanford University. Doctoret dissertation.
Sussman G.J。. Steele G. I.. (1980) : "CONSTRAINTS - A Language for Expressing Almost-Hlerarchlcal Descriptions'. A. /. 14 (1), 1-39.
Tarjan R. (1972) : 'Depth first search and linear graph algorithms". S/am J. Comput.. 146-160.
Tonge F. (1961) : A heuristic Programm for Assembly L/C。Balancing. Prentice Hall.
Weigh D.J. . Powell M.S. (1968) : "An upper bound for the chromatic number ot a graph and Its application to the tlme-*tabllng problem*. Computer J. 10, 41- 45.
de Werra D. (1974) : "A note on graph coloring". Яа/ro Я 1. 49-53.
Wilkins D. (1980): "Using Patterns and Plans In Chess*. A.L 14 (2), 165-203. Wilkins D. (1982) : "Using Knowledge to Control Tree Searching. A. /. 18 (1). 1-51. Woolsey R. (1965) : How fo do Integer programming M the гее/ world In Integer Programming ■ Addison Welsey.
ОБУЧЕНИЕ И ОБУЧАЮЩИЕ СИСТЕМЫ
Anderson J. . Kline P. - Beasloy C. (1979) : 'Complex learning processes' In Я. Snow (ed).
Anderson J. . Kline P. (1979) : "A Learning system and its psychological iEplJ cations'. UCAI 6. 16-21.
Brown J. 8. . Burton R. (1975) : 'Multiple representations of knowledge for tutorial reasoning", in Bobrow & Collins (eds). Academic Press. 311-350.
Brown J.S. . Burton R. (1978) : 'Diagnostic Models for procedural bugs in basic- mathematical Skills*. CS 2. 155-192.
Ceuzlnllle E.. Mathieu J. (1985) : 'Cognitive processes In the design of an intelligent tutoring system' Colloque TOblngen. Juin 85.
Elcook E. . Murray A. (1967) : "Experiments with a learning comment In a go moku playing program*. M. I. L 8Z- 104. M. L 2. 75-68.
Fikes R. E.. Hart P. E. . Nilsson N.J. (1972) : 'Learning and executing generalized robot plans*. A. /. 3. 251-288.
Hag^rt C. (1984) : 'Introduction to the Learning Subfield". £CAf 461-463.
Kodratoff Y. . Ganascla J. G. . Clavlerae S. . Bollinger T. , Tecvcl G. (1984): "Careful Generalization for Concept Learning". ЕСА/ 483-492.
Kodratoff Y. , Sallantln J. (1983) (eds) : Outlls pour rapprentlssage. Publications du GR 22, Journdes d'Orsay.
Langley P. W. ( 1977) : "Rediscovering physics with BACON 3". IJCAI 6. 505-507.
Langley P. W. (1981) : *Data-driven discovery of physical laws". C. S. 5. 31-54. Lenat D.B. (1977) : "The ubiquity of discovery". АЛ. 9. 3. 257-286.
Lenat D. B. (1980) : "On automated sclontillo thoory formation : case study using the AM program". In Da^s & LenAt Cede) •
Michalski R. B. , Chllausky R. L. (1980) : 'Learning by being told and learning from examples : An experimental comparison of the two methods of knowledge acquisition In the context of developing an expert system for soybean disease diagnostic", international Journal of Policy Analysis and Infcrmatlon Systems 4. 125-161.
Michalski R. B. . Carbonnel J. G. . Mitchell T. M. (1983) : Machine learning, an artificial Int&Hlgence approach. Tlcga Pub Co.
MIohalsM R. B. ( 1983) : 'A theory and methodology of Inductive learning". A. /., 20 (2) 111-161.
Mitchell T. M. (1983) : "Learning and Problem Solving*. IJCAI 8. 1139-1151.
Sallentln J. (1979) : Representation d'observations dans Ie contexte de la thdorle de Clnformatlon. Thdse d'©tat Peris 6.
Sallentln J. Quinqueton J. (1983): "Algorithms for learning logical formulas' IJCAI 8.
Samuel A. L. (1У59) : "Some studies In machine learning using the game of checkers". IBM J. Research and Development 3:210-229. (Reprinted In e. A. Feigenbaum, and J. Feldman (eds) 1963.71-105).
Samuel A. L. (1967) : 'Some studies In machine learning using the game of checkers 1Г. Recent progress. IBM J. Research and Development 11. 601-617.
Simon H. (1983) : "Why should machlnee learn*. In Machine Learning, an artificial Intelligence approach. M/cha/s#/, Carbonell & Mitchell (eds). Tioga Pub Co.
Stevens A. . Collins A. . Goldin S. (1979) : "Misconceptions In student's understanding*. International Journal of man-machine Studies. 11.145
156.
Papert A. (1972) : eTeachlng Children Thinking". Programmed Learning and Educa - tional Technofcgy 9. 5.
Vere S. A. (19 75): 'Induction of concepts In the predicate calculus*. UCAI4. 281-26 7.
Waterman D. A. c( 1970) : "Generalization learning techniques for automating the learning of heuristics'. A. /. 1: 121-170.
Winston P. H. (1970) : 'Learning structural descriptions from examples". Яер. № ГЯ- 23f. Al Laboratory. Massachusetts Institute of Technology.
Winston P. H. (1976) : "Learning by creating and justifying frames'. A. /. . 10. 2. 147-
ПРОГРАММИРОВАНИЕ ИГР
AdelsonVelskiy G. . Ariazarov V. . Donskoy M. (1975) : "Some methods of controlling the tree In chess programs'. A. /. . 6. 4. 361-371.
Baudot G. (1978): "On the branching factor of the alpha-beta pruning algorithm". A. /. 10. 173-199.
Berliner H. (1980) : "Computer backgammon". Scientific American. 54-69.
Berliner H. ( 1980) : "Backgammon computer program beats world champion*. A. /.. 15. 205-220.
Botwlnnlk M. (1970) : Computers САезз and Lccg Range Planning. Springer Verlag.
Clarke M. ( 1977) : Advances /л Computer CAess. Edinburgh U. Press.
De Groot A. (1965) : Thought acd СЛогсе In CMss. Mouton.
564564ЛИТЕРАТУРА
564
564
Feller В. (1985): "Traltement infdrentlels de faits condltlonnels eur une application ndcessltant un pattern -matching eHlcace: le Jeu de ia carte au bridge* Th^se 3。cycle. Ut6 PARIS SUD.
Finkel R. A. . Fishburn J. P.(】982) ; "Parallelism In Alpha-Beta Search*. A」*. 19 (1) 89-106.
FreyP.W. (ed. > ( 1977) : СЪезз Skill in man end machine, Springer-Verlag. Tome 1. lome 2 (1980).
Knuth O. . Moore к. < t975) : "An Analysis of Alpha-Beta Pruning". A./., в. 4. 293- 326.•
Pitrat J. (1971) :■ "A general game playing program-. In Artificial Intelligence and Heuristic Programming. Edinburgh U. Press. 125-155.
Pitrat J. (1976) : "A" program for learning to play chess". Pattern recognition and artificial Intelligence. Chen Academic Press. 399-419.
Pitrat J. ( 1977) : 'A chess combination program which uses plans'. A. /. , 8. 275-321.
Pitrat J. (1978) : "Realization of a program learning to find combinations at chess". Computed oriented learning processes. 397-424,
Popesco R. (1984) : "CHELEM* Un systdrne-expert pour trcuver la ilgne de Jeu du declarant au bridge*. Thdse de 3* cycle. Ut6 PARIS VI.
Rosenbloom P. S. (1982) : ЯА World-Champlonshlp-Level Othello program*. A. /.】Q (3) 279-320.
Tricot J. (1975) : "L'ordlnateur ,et les jeuxa* S6rie d*artlcles dans la revue L7n-
formatique nouvelle..
Wilkins D. (19 79) : "Using plans In ch^ss*. IJCAI 8. 960-96 7.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Агенда 388, 425
Лкснома спецификации 101
Алгоритм 10, 115
—А* 238, 239
—Крускаля 235
—построения функции классификации вершин 194
—решений 431
—унификации 116, 459, 470
—Хачияна 203
ALICE доказательствооптимальности
решения 483
—критерии выбора 461'
—модуль решения задачи 458
—представление задачи 468
—.процедура выбора 478
—синтаксис языка 459
—словарь языка 456
—эффективность 498
Альфа — бета-процедура 362
Базовая квадратная матрица 234
Базовые элементы 431
Вершина графа 77
Восприятие 336, 338
Вторая теорема Геделя 106
Выбор правила с помощью оценки 386
Геделев иомер 109
Глубина анализа 342
Градиентные методы 228
Графы 77
—переходов 56
GPS 298
Двухчастичный граф 469
Декларативный подход 419
Дерево допустимых ходов 311
—планов 347
—поиска 291
И-ИЛИ 412
Детерминированная машина Тьюпинга (ДНТ) 208"
/Тиаграммы Венна 50
Динамическое программирование 261
Естественный язык 19
Заголовок списка 46
Задача 19
—в замкнутой форме 20-
—Гамильтона 200
—об оптимальном гамильтоновом цикле 212
«эйлеровом цикле» на графе 197
— о взвешивании 044, 245
восьми ферзях 250
гамильтоновом цикле 278
коммивояжере 278
—一 раскраске географической карты 267
—• разрешимости логического выражения
Зацикливание 129
Значимость переменной 481
Игра тик-так-ту 3
Императивные языки программирования 449
Индексация 417
Интерпретация 86
Информатика 9
Информационная система ALICE 449
Искусственный интеллект 10
Исчерпывающий перебор 385
Исчисление предикатов 101
Квантор всеобщности 101
— существования 102
Клика 223. 274
Комбинаторная задача 227
Коицепт 437
Концепции 431
Коэффициент уверенности 370
Кратковременная память 377
«Кругосветное путешествие» Гамилътона 278
Лемма Геделя 111
Линейиое программирование 203, 231
Линейные формы записи 42
Литерал 220
Логика высказываний 93
Машинное представление выражения 45
Метазнание 430 , 432 , 437
Мета-метатеорема 155
Метаправила 371
Метатеория 154
Метод «диагонали» Кантора 107
—力юка 228
—Марпля 409
—мииимакса 320
алгоритм 325
—неявного перебора 245
—полного перебора 227
—потенциалов 196
— редукции 289
—резолюции 308
—Сиклаши н Маринова 140
—слепого перебора 499
Модели правил 3力
Моделирование 33
Модульность 435
л-ариый оператор 41
Невязка 231
Недетерминированная машина Тьюринга (НДТМ) 208. 214, 215
Недетерминированные алгоритмы 208
—полиномиальные задачи 208
Недетерминированный . полиномиальный алгоритм 210
Нелинейные формы записи 44
Необязательные правила вывода 145
Нормализация 130
Обучающиеся системы 397—400
Общее максимальное обобщение 543
Общий алгоритм неявного перебора 249
Обязательные правила вывода 146
Опасный ход 355
Оперативная память 335
Операторы 79
Отношение сводимости 218
Отношения 431
Отрыв точки 480
Оценивание позиции 318
Парадокс Putuapa 108
—Эвбулида 106
Параметризация 417
Первая теорема Геделя 103
План решеиня 396
Подстановка 48, 83
Полиномиальные алгоритмы 206
Политоп 234
Полиэдр 234
Полное дерево ходов 316
Полный подграф 274
Пошлина 285
Правила перезапнсн 431
—продукций 82
Правило модус поненс 93
«Предикатные» сети Петри 425
Предметная переменная 101
Представление знаний 19, 49
Пренексная форма 165
Префиксная форма записи 42
Принцип математической нидукции 104
—резолюции 161. 402
—рекуррентности 120
Продукции 82
Продукционная база зияний 366
Продукционные правила 43& 422
—системы 383
эффективность 387
Программа BAOBAB 366
—Вере 539
—DENDRAL 17
—MYCIN 364
—Питра 154. 530
—ROBIN 346
—Сэмюэля 517
— Уинстона 536
—Уотермана 388,. 529
Процедура запрета 130
— отсечения 326
—PARI 149
—PERM 506
—PRET 144
—решения 85•
--усвоения знаний 516
Различные типы знаний 430
обучения 518—523
Разрешимость вычисления высказываний 98
Распознавание образов 11
Резольвента 164
Рекурсивная форма 181
Родительские предложения 164
<Сборщнк мусора» 48
Связанность графа 197
Связки 79
Семантические сети 434
Сети Петри 428
Симплекс-метод 203, 233
Синтаксис языка ALICE 456
Система GUIDON 391
—DENDRAL 366, 387
—CAMELIA 396
—META-DENDRAL 366, 388
—METALOG 411
—MECHO 405
—MYCIN-TEIRESIAS 365
一 ONOCIN 391
—PEACE 403
一 POLITICS 427
-PROLOG 400
—PROSPECTOR 425
—TEIRES1AS 366, 373
一 SNARK 414
一 STRIPS 523
—SU/X 392
Системы общего назначения 395
Скрипт 439
Словарь языка ALICE 456
Сложность задачи 205
—процедуры 205
Списковая структура 46
Степень вершины 271 ‘
Стратегии 432
Стратегия первого уровня 315
Структура управления 385
Суффиксная форма записи 44
Таблицы сигнатур 522
Теорема 82, 431
—Аппеля и Хакена 273
Кука 214
—оптимальности 217
—Паста 98
—резолюции 163
—Тарского 114
—Черча 114
—Эрбрана 161
Теоремы ограничения 114
Теория чисел 103
Тесты Каттелли 137
Трудность ограничения 480
Угрозы 513
Указатель 46
Унификация 328
Управление с помощью метаправил 39G
Формальная арифметика 103
—система 81
первого порядка 102
Формальное доказательство 82
Формула Бине 181
Фрейм 387. 433
Функция Грунди 476
——дохода 231
—оценнваиня 519
Цикл 192
Гамильтона 212
—Эйлера 197
Эвристика 432
Эвристический поиск 236
Эквивалентные задачи 213
Экспертные правила 40
—системы 363, 400
производительность 424
управляющие структуры 421
Экстенсивные правила 14У
Элементарные единицы информации 337
Эффект горизсжта 332
Язык Лисп 59
—Пролог 401
—SNARK 413
7 99^^ ^^^"孔湍診界%加8^100114116⑶154⑹嚷盥器紀猾№7 99^^ ^^^"孔湍診界%加8^100114116⑶154⑹嚷盥器紀猾№
7 99^^ ^^^"孔湍診界%加8^100114116⑶154⑹嚷盥器紀猾№
7 99^^ ^^^"孔湍診界%加8^100114116⑶154⑹嚷盥器紀猾№
ОГЛАВЛЕНИЕ
Предисловие редактора перевода
Предисловие ..-
Глава 1. Искусственный интеллект
Информатика и искусственный интеллект
Искусственный интеллект как наука
Области применения искусственного интеллекта
Историческая справка
Заключение
Глава 2. Представление задачи
2丄 Введение
Естественный язык
Постановка задачи
Задачи в замкнутой форме
Общий подход к решению задачи
Пример полного решения задачи
Что нужно сделать, чтобы решить задачу?
Из истории развития и преподавания математики
Представления ..
Использование графических моделей в области искусственного интеллекта-
Изменение представлений
Язык Лисп
Графы
Глава 3. Формальные системы
Введение
Определение формальной системы
Разрешимость и интерпретация формальных систем .....
Исчисление высказываний
Исчисление предикатов первого порядка
Теоремы ограничения в формальных системах
Алгоритм унификации
Примеры ис[Ю„тьзоваш1Я унификации
Программа Ж. Питра для исчисления высказываний
Принцип резолюции и язык Пролог
Глава 4* Классические методы решения задач
Примеры хороших алгоритмов
Список хорошо решаемых задач (полиномиальные алгоритмы)
Классификация задач по степени сложности
Класс NP; недетерминированные полиномиальные задачи - .
Список задач класса NP
Изучение задач типа NP с помощью классов эквивалентностей
Основная теорема (Cook, 1971)
Класс ^/>-пoлIIЫx задач
Несколько доказательств эквивалентности задач
Глава 5. Методы распространения ограничений и перебора
Решение задач с помощью перебора22;
52 Градиентные методы 2"
Линейное программирование . . . ':: : . . 23】
Градиентные методы в теории графов . . .. . 「231
55 Эвристический поиск .25
Алгоритм Д*
Неявный перебор с распространением ограничений
Динамическое программирование
Оптимальная раскраска вершин на графе ...
Алгоритм оптимальной раскраски графа ....
Задача о коммивояжере
Универсальная программа решения задач ...
Глава 6. Игровые программы. Психологические аспекты310
18 0 6112 23 3 3 318 0 6112 23 3 3 30 4 8 63 3 3 43 3 3 30 4 8 63 3 3 43 3 3 3Дерево допустимых ходов •...:
18 0 6
112 2
3 3 3 3
18 0 6
112 2
3 3 3 3
0 4 8 6
3 3 3 4
3 3 3 3
0 4 8 6
3 3 3 4
3 3 3 3
Оценивание позиций
Метод минимакса и выбор очередного хода
Альфа — бета-процедура
Основные недостатки игровых программ, основанных на анализе дерева ходов
Психологические аспекты принятия решений
Исследование психологии шахматистов,.
ROBIN 一 интеллектуальная программа для игры в шахматы ..
Глава 7. Экспертные системы 363
Примеры диалогов в экспертной системе ......... 364
Функционирование системы MYC1N — TEIRESIAS365
Продукционные системы , . /379
Экспертные системы, основанные на логике предикатов первого порядка400
Сравнение декларативногоипроцедурного подходов419
Различные типы знаний иих представления430
Метазнание437
Заключение440
Конкретный пример машинывывода экспертнойсистемы . . . 444
Глава 8. Информационная система ALICEГлава 8. Информационная система ALICE449449
Глава 8. Информационная система ALICE
Глава 8. Информационная система ALICE
449
449
516516673506911223335555555673506911223335555555546565546565
516
516
6735069
1122333
5555555
6735069
1122333
5555555
546
565
546
565
Общее описание системы450
82 Язык системы ALICE451
Модуль решения задачи 458
Результаты467
Работа системы ALICE 468
Подробные примеры решения485
Задачи, решенные с помощью системы ALICE496
Эффективность системы и общие замечания498
Ввод условий задач на французском языке 510
Глава 9. Усвоение знаний
Различные типы обучения
Обучение игре в шашки
Обучение робота полезным действиям. Система STRIPS
Усвоение правил игры
Обучение планам
Учет характеристик
Усвоение понятий
Библиография . . • Предметный указатель
4) Бедность оценок, используемых шахматистами. В прото
колах часто появляются фразы такого типа: «Теперь белые
имеют выигрышную позицию с далеко продвинутой пешкой»;
Издательство «Мир»Издательство «Мир»Ж.-Л. ЛорьерСИСТЕМЫИСКУССТВЕННОГОИНТЕЛЛЕКТАЖ.-Л. ЛорьерСИСТЕМЫИСКУССТВЕННОГОИНТЕЛЛЕКТА
Издательство «Мир»
Издательство «Мир»
Ж.-Л. Лорьер
СИСТЕМЫ
ИСКУССТВЕННОГО
ИНТЕЛЛЕКТА
Ж.-Л. Лорьер
СИСТЕМЫ
ИСКУССТВЕННОГО
ИНТЕЛЛЕКТА
INTELLIGENCE ARTIFICIELLE
Resolution de problemes par I'Homme et la machine par
Jean-Louis Lauriere
Professeur a PUniversite Pierre et Marie Curie Groupe de Recherche CNRS
C. F. PICARD-PARIS
TROIS1EME EDITION nouveau tirage
Eyrolles, Paris
Ж.-Л. Лорьер
СИСТЕМЫ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Перевод с французского
под редакцией
канд. физ.-мат. наук В. Л. Стефанюка
Москва《Мир» 1991
ББК 5.05 Л78
УДК 007.001.33
Переводчики: Евграфова С. М., Девишев Р. И., Дихтяр В. И., канд. физ.-мат. наук Чигирь С. Д.
Лорьер Ж>-Л.
Л78 Системы искусственного интеллекта: Пер. с франц,— М.: Мир, 1991.—568 с.э ил.
ISBN 5-03-001408-Х
Книга известного французского специалиста посвящена вопросам проектирования и применения систем искусственного интеллекта, при построении которых используются такие современные инструментальные средства, как языки Лисп, Пролог и оболочки экспертных систем. В качестве применения рассмотрена область принятия решений.
Для специалистов в области искусственного интеллекта и студентов старших курсов соответствующих специальностей вузов.
1402070000^281_ _п
~041(01)-91 ~ ТББК 5.05
Редакция литературы по информатике и робототехнике
Научное издание
ЖАН-ЛУИ ЛОРЬЕР
СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Заведующий редакцией д-р техн, наук А. Л. Щёрс
Зам. заведующего редакцией Э. Н. БадиковСт. научный редактор И. М. АндрееваМл. научный редактор В. Н. СоколоваХудожник А. Коршунов
Художественные редакторы Н. М. Иванов, О. Н. Адаскнна
Технический редактор Л. П. БирюковаКорректор Н. А. Гиря
ИБ № 7183
Сдано в набор 09.11.89. Подписано к печати 13.06.90. Формат 60*88 1/16. Бумага типографская кн.-журн. Печать офсетная. Гарнитура литературная. Объем 17,75 бум. л. Усл. печ. л. 35,5. Усл. кр.-отг. 35,5. Уч.-изд. л. 33,5. Изд. НФ 6/6674. Тираж 20 000 экз. Зак. 205. Цена 2 р. 80 к.
ИЗДАТЕЛЬСТВО «МИР» 129S20, ГСП, Москва, И-110, 1-й Рижский пер., 2.
Ленинградская типография №2 головное предприятие ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгении Соколовой Государственного комитета СССР по печати. 198052, г. Ленинград, Л-52, Измайловский проспект, 29.
Отпечатано в Ленинградской типографии № 4 Государственного комитета СССР по печати, 191126, Ленинград, Социалистическая ул., 14.
ISBN 5-03-001408-Х (русск.)© Jean-Louis Lauriere, 1987
© перевод на русский язык, Евграфова С. М., Девишев Р. И., Дихтяр В. И., Чигирь С. Д., 1991.
В наше время интенсивной интернационализации науки, когда идентичные по уровню и подходам исследования проводятся и в США, и в СССР, и в Японии, тем не менее, может быть, стоит обратить внимание иа то, что говорят о японском проекте компьютеров пятого поколения, об английской реакции на японский вызов, о европейской или американской школе искус- ствеинога интеллекта. Оказывается, кроме сил, объединяющих мировую науку (особенно такую, как искусственный интеллект) и обусловленных применением однотипной вычислительной техники, стандартных языков программирования, а в последнее время и созданием международных научных проектов типа ЕСПРИТ, большую роль играют «национальные» научные традиции, придающие своеобразие исследованиям, проводимым в разных странах.
Известный французский ученый Жан-Клод Симон (кстати, в его лаборатории информатики в Университете Париж-VI начинал научную деятельность автор данной книги Жан-Луи Лмьер) объяснил однажды, почему он очень любит научные командировки в СССР: «В Америке, посетив одну из лабораторий, можно считать, что ты побывал везде, так как все американские лаборатории искусственного интеллекта делают одно и то же. Другое дело в Москве: здесь что ни человек, то своя проблема, свой подход...»
Здесь не место вникать в вопросы, что лучше — концентрация усилий или широта охвата проблемы и какова истинная причина такого положения вещей. Важно то, что можно твердо говорить о «европейском» искусственном интеллекте, в котором в свою очередь отчетливо выделяются итальянская, французская, английская и другие школы.
Одна из отличительных черт европейской научной школы состоит в потребности поставить любую дисциплину на прочную научную основу, что, несомненно, нашло отражение в предлагаемой советскому читателю книге, В США — родине искусственного интеллекта—многие считают, что искусственный интеллект — это совершенно новое направление, и, чтобы им эффективно заниматься, нужно отказаться от таких наук, как кибернетика или распознавание образоз, и начать все с самого начала. Известный математик и кибернетик Марвин Минский из лаборатории искусственного интеллекта Массачусетского технологического института считает, что даже математика как универсальный язык бесполезна в искусственном интеллекте. Языком искусственного интеллекта должен стать язык интеллектуальных программ.
Европейская школа не придерживается столь радикальных взглядов и предполагает, что научные достижения накапливаются постепенно и смена парадигм в науке отнюдь не перечеркивает прошлого, а дает лишь новый, свежий взгляд. Данная книга отличается от болыцинства (американских) работ по искусственному интеллекту европейской основательностью, сдержанностью и деловитостью. Возможно, одной из причин этого является то, что сам автор ——увлеченный программист, вдумчивый ученый, не склонный, как многие его заокеанские коллеги, к чрезмерному оптимизму. Он сторонник кропотливого накопления результатов с постоянной привязкой их к фундаментальным разделам науки. Эта книга будет импонировать советским читателям, обычно склонным к критическому осмыслению достижений и труд^ костей.
Заканчивая это небольшое введение к книге, хочется отметить следующее: статистика говорит о том, что интерес к искусственному интеллекту нисколько не ослабевает. На последней Международной объединенной конференции по искусственному интеллекту, состоявшейся в августе 1989 г. в Детройте (США), присутствовало 6500 участников (!). Хочется верить, что данная книга будет способствовать пополнению армии специалистов по искусственному интеллекту и нашими учеными, которые пока что не слишком активно участвуют и в международных, н в европейских объединен пых конференциях по искусственному интеллекту (следующая конференция будет проходить в 1990 г. в Швеции).
Перевод книги выполнен Р. И. Девишевым (гл. 1——3), С. М. Евграфовой (гл. 4, 5), С. Д. Чигирем (предисловие автора, гл. 6—8) и В. И. Дихтяром (гл. 9).
В. Л. Стефанюк
Основания для появления этой книги возникли еще в то время, когда я учился в лицее. Как и все остальные ученики, я жадно впитывал знания по физике и математике, постоянно спрашивая себя: а для чего все это может пригодиться? Что касается физики, то ее отношение к реальной жизни представляется очевидным, но мы тогда не могли в это поверить, настолько все было таинственным. К тому же каждый год новый преподаватель объяснял нам, что все, что мы изучали в прошлом году, было неверным... Физика представала перед нами как причудливая игра, в которую играют взрослые. С математикой же все было по-другому. В ней нас вдохновляла красота абстракции, мы получали удовольствие от поиска красивых доказательств. Однако ко всему этому часто примешивалось ощущение, что нас обманывают. Нам все время преподносили определения и доказательства как настоящую реальность, ио причины явлений никогда не объяснялись. Казалось, что большую чость доказательств преподаватели получают с помощью магических манипуляций с кусочком мела у доски. Как можно было связать воедино все эти линии и не выпустить из поля зрения ни одну из них от самого начала доказательства до его чудесного конца? И над всем этим: «А для чего все это надо?»
Ответ на этот вопрос пришел позже, через несколько лет «активной» жизни. На самом деле все это ни для чего ие было надо, потому что предметы, которые мы изучали, вносились в школьные программы произвольно. По правде говоря, они служили лишь поводом для перехода к более серьезным вещам, таким, как учиться понимать, учиться решать задачи, учиться познавать. Но любопытно, что эти «вещи» не признаются и почти не преподаются. Можно сказать, что существует определенный вид интеллектуального терроризма, когда некоторых учеников называют <нуль в математике», хотя их единственная вина состоит в том, что они ие понимают то, о чем... никогда не говорится. Некоторым удается этого избежать, потому что оии раньше сумели познакомиться с неявными правилами этой игры. Есть и такие, кто учит все наизусть... .
Но в настоящее время существует область исследований, в которой первым желанием исследователей является стремление понять, как система обработки информации — будь то человек или машина ~ способна воспринимать, анализировать, передавать и обобщать то, чему ее обучают, и с помощью этих данных исследовать конкретные ситуации и находить решения задач. Данная область исследований — искусственный интеллект, старший сыи информатики. Его предметом изучения является любая интеллектуальная деятельность человека, подчиняющаяся заранее неизвестным законам. Его можно также определить как <все то, что еще ие сделано в информатике».
€сли предметом информатики является обработка информации, то к области искусственного интеллекта относятся такие случаи этой обработки, которые не могут быть выполнены с помощью простых, точных алгоритмических методов и которых великое множество. К иим относятся даже такие банальные ситуации, как чтение текста с листа, находящегося перед вами. Один и тот же символ, например вертикальная черточка, может восприниматься визуальной системой в зависимости от контекста либо как 厶 либо как i, либо как знак абсолютной величины. В случае когда текст написан
от руки, ситуация еще хуже. Как может выйти из этого затруднения наша распознающая система? Вот одна из главных проблем, изучаемая в искусственном интеллекте. К области этой науки относятся также идентификация изображения человека (являющаяся более трудной задачей, чем просто идентификация букв), понимание текста (а не отдельных букв), распознавание речи, доказательство теорем, решения задач, поиск хода в шахматах, составление расписаний, подготовка ответов на ежедневный интеллектуальный тест, разработка планов в архитектуре, постановка медицинского диагноза, анализ журнальной статьи. В последнее время во всех этих областях достигнуты впечатляющие успех%
Ж.~Л. Лорьер