Текст
                    Ж.-Д. Лорьер
СИСТЕМЫ
ИСКУССТВЕННОГО
ИНТЕЛЛЕКТА
Перевод с французского
под редакцией
канд. физ.-мат. наук В. Л. Стефанюка
Москва «Мир» 1991

ОГЛАВЛЕНИЕ Предисловие редактора перевода ...................................... ° Предисловие.................. • ..............................? Глава 1. Искусственный интеллект .............................. . . 9 1.1. Информатика и искусственный интеллект ......... 9 1.2. Искусственный интеллект как наука......................• . 10 1.3. Области применения искусственного интеллекта.............Ю 1.4. Историческая справка . .....................................13 1.5. Заключение...............................................1® Глава 2. Представление задачи . .......................................19 2.1. Введение......................................................19 2.2. Естественный язык............................................ 19 2.3. Постановка задачи............................................ 20 2.4. Задачи в замкнутой форме......................................20 2.5. Общий подход к решению задачи.................................22 2.6. Пример полного решения задачи.................................27 2.7. Что нужно сделать, чтобы решить задачу?.......................31 2.8. Из истории развития и преподавания математики ................32 2.9. Представления............................................... 40 2.10. Использование графических моделей в области искусственного интеллекта..........................................................48 2.11. Изменение представлений...................................... 57 2.12. Язык Лисп................................................... 59 2.13. Графы...............................................’. . . . 77 Глава 3. Формальные системы ....................................79 3.1. Введение...................................................79 3.2. Определение формальной системы . ..........................81 3.3. Разрешимость и интерпретация формальных систем.............85 3.4. Исчисление высказываний . . ........................... 93 3.5. Исчисление предикатов первого порядка ................... 100 3.6. Теоремы ограничения в формальных системах.................114 3.7. Алгоритм унификации..................................... 116 3.8. Примеры использования унификации..........................131 3.9. Программа Ж. Питра для исчисления высказываний............154 3.10. Принцип резолюции и язык Пролог......................... 161 Глава 4. Классические методы решения задач .........178 4.1. Примеры хороших алгоритмов.............................. 178 4.2. Список хорошо решаемых задач (полиномиальные алгоритмы) 200 4.3. Классификация задач по степени сложности................. . 204 4.4. Класс NP: недетерминированные полиномиальные задачи . ,. 208 4.5. Список задач класса NP ...... ................211 4.6. Изучение задач типа NP с помощью классов эквивалентностей 213 4.7. Основная теорема (Cook, 1971) ............................214 4.8. Класс WP-полных задач................................... 218 4.9. Несколько доказательств эквивалентности задач.............219 Глава 5. Методы распространения ограничений и перебора ..... 227 5.1. Решение задач с помощью перебора........................ 227 5.2. Градиентные методы........................................228 5.3. Линейное программирование.................................231 5.4. Градиентные методы в теории графов........................234 5.5. Эвристический поиск.......................................236
568 ОГЛАВЛЕНИЕ 5.6. Алгоритм А* ..............................................238 5.7. Неявный перебор с распространением ограничений............245 5.8. Динамическое программирование.............................261 5.9. Оптимальная раскраска вершйн на графе.................• • 267 5.10. Алгоритм оптимальной раскраски графа .................. . 269 5.11. . Задача о коммивояжере................................ . 278 5.12. Универсальная программа решения задач.................... . 289 Глава 6. Игровые программы. Психологические аспекты...............310 6.1. Дерево допустимых ходов .................................311 6.2. Оценивание позиций...................................... 318 6.3. Метод минимакса и выбор очередного хода . .... . . . 320 6.4. Альфа — бета-процедура ...................................326 6.5. Основные недостатки игровых программ, основанных на анализе дерева ходов . .............................................. 330 6.6. Психологические аспекты принятия решений . . . . . . . . 334 6.7. Исследование психологии шахматистов......................- 338 6.8. ROBIN — интеллектуальная программа для игры в шахматы . . 346 Глава 7. Экспертные системы..................................... 363 7.1. Примеры диалогов в экспертной системе . . . . ............364 7.2. Функционирование системы MYCIN — TEIRESIAS . . . . . 365 7.3. Продукционные системы................................... 379 7.4. Экспертные системы, основанные на логике предикатов первого порядка . ...............................................400 7.5. Сравнение декларативного и процедурного подходов . . . . . . 419 7.6. Различные типы знаний и их представления..................430 7.7. Метазнание............... . ..............................437 7.8. Заключение............................................ 440 7.9. Конкретный пример машины вывода экспертной системы . . . 444 Глава 8. Информационная система ALICE .......................... 449 8.1. Общее описание системы................................. . -450 8.2. Язык системы ALICE ................................... 451 8.3. Модуль решения задачи............. . . ............. . 458 8.4. Результаты................................................467 8.5. Работа системы ALICE .....................................468 8.6. Подробные примеры решения............................... 485 8.7. Задачи, решенные с помощью системы ALICE ....... 496 8.8. Эффективность системы и общие замечания...................498 8.9. Ввод условий задач на французском языке ..................510 Глава 9. Усвоение знаний ....................................... 516 9.1. Различные типы обучения.................................. 516 9.2. Обучение игре в шашки . . . ............................ 517 9.3. Обучение робота полезным действиям. Система STRIPS . . . 523 9.4. Усвоение правил игры.................................. 525 9.5. Обучение планам........................................ 530 9.6. Учет характеристик .......................................536 9.7. Усвоение понятий . ....................................... 539 Библиография ... . ............................................ 546 Предметный указатель ........................................... 565
ББК 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. Формат 60x88 1/16. Бумага типогоафская кн.-журн. Печать офсетная. Гарнитура литературная. Объем 17,75 бум. л. Уел. печ. л. 35,5. Уел. кр.-отг. 35,5. Уч.-изд. л. 33,5. Изд. № 6/6674. Тираж 20 000 экз. Зак. 205. Цена 2 р. 80 к. ИЗДАТЕЛЬСТВО «МИР» 129820, ГСП, Москва, И-110, 1-й Рижский пер., 2. Ленинградская типография Ns2 головное предприятие ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгений Соколовой Государственного комитета СССР по печати. 198052, г. Ленинград, Л-52, Измайловский проспект, 29. Отпечатано в Ленинградской типографии № 4 Государственного комитета СССР по печати, 191126, Ленинград, Социалистическая ул., 14. ISBN 5-03-001408-Х (русск.) © Jean-Louis Lauriere, 1987 © перевод на русский язык, Евгра- фова С. М., Девишев Р. И., Дих- тяр В. И., Чигирь С. Д„ 1991.
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА В наше время интенсивной интернационализации науки, когда идентич- ные по уровню и подходам исследования проводятся и в США, и в СССР, и в Японии, тем не менее, может быть, стоит обратить внимание на то, что говорят о японском проекте компьютеров пятого поколения, об английской реакции на японский вызов, о европейской или американской школе искус- ственного интеллекта. Оказывается, кроме сил, объединяющих мировую науку (особенно такую, как искусственный интеллект) и обусловленных при- менением однотипной вычислительной техники, стандартных языков про- граммирования, а в последнее время и созданием международных научных проектов типа ЕСПРИТ, большую роль играют «национальные» научные традиции, придающие своеобразие исследованиям, проводимым в разных странах. Известный французский ученый Жан-Клод Симон (кстати, в его лабора- тории информатики в Университете Париж-VI начинал научную деятель- ность автор данной книги Жан-Луи Лорьер) объяснил однажды, почему он очень любит научные командировки в СССР: «В Америке, посетив одну из лабораторий, можно считать, что ты побывал везде, так как все американ- ские лаборатории искусственного интеллекта Делают одно и то же. Другое дело в Москве: здесь что ни человек, то своя проблема, свой подход...» Здесь не место вникать в вопросы, что лучше — концентрация усилий или широта охвата проблемы и какова истинная причина такого положения ве- щей. Важно то, что можно твердо говорить о «европейском» искусственном интеллекте, в котором в свою очередь отчетливо выделяются итальянская, французская, английская и другие школы. Одна из отличительных черт европейской научной школы состоит в по- требности поставить любую дисциплину на прочную научную основу, что, несомненно, нашло отражение в предлагаемой советскому читателю книге. В США — родине искусственного интеллекта — многие считают, что искус- ственный интеллект — это совершенно новое направление, и, чтобы им эф- фективно заниматься, нужно отказаться от таких наук, как кибернетика или распознавание образов, и начать все с самого начала. Известный математик и кибернетик Марвин Минский из лаборатории искусственного интеллекта Массачусетского технологического института считает, что даже математика как универсальный язык бесполезна в искусственном интеллекте. Языком искусственного интеллекта должен стать язык интеллектуальных программ. Европейская школа не придерживается столь радикальных взглядов и предполагает, что научные достижения накапливаются постепенно и смена парадигм в науке отнюдь не перечеркивает прошлого, а дает лишь новый, свежий взгляд. Данная книга отличается от большинства (американских) работ по искусственному интеллекту европейской основательностью, сдержан- ностью и деловитостью. Возможно, одной из причин этого является то, что сам автор—увлеченный' программист, вдумчивый ученый, не склонный, как многие его заокеанские коллеги, к чрезмерному оптимизму. Он сторонник кропотливого накопления результатов с постоянной привязкой их к фунда- ментальным разделам науки. Эта книга будет импонировать советским чи- тателям, обычно склонным к критическому осмыслению достижений и труд- ностей.
6 ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА Заканчивая это небольшое введение к книге, хочется отметить следую- щее: статистика говорит о том, что интерес к искусственному интеллекту нисколько не ослабевает. На последней Международной объединенной кон- ференции по искусственному интеллекту, состоявшейся в августе 1989 г. в Детройте (США), присутствовало 6500 участников (!). Хочется верить, что данная книга будет способствовать пополнению армии специалистов по искусственному интеллекту и нашими учеными, которые пока что не слиш- ком активно участвуют и в международных, и в европейских объединенных конференциях по искусственному интеллекту (следующая конференция бу- дет проходить в 1990 г. в Швеции). Перевод книги выполнен Р. И. Девишевым (гл. 1—3), С. М. Евграфовой (гл. 4, 5), С. Д. Чигирем (предисловие автора, гл. 6—8) и В. И. Дихтяром (гл. 9). В. Л. Стефанюк
Основания для появления этой книги возникли еще в то время, когда я учился в лицее. Как и все остальные ученики, я жадно впитывал знания по физике и математике, постоянно спрашивая себя: а для чего все это может пригодиться? Что касается физики, то ее отношение к реальной жизни пред- ставляется: очевидным, но мы тогда не могли в это поверить, настолько все было таинственным. К тому же каждый год новый преподаватель объяснял нам, что все, что мы изучали в прошлом году, было неверным... Физика представала перед нами как причудливая игра, в которую играют взрослые. С математикой же все было по-другому. В ней нас вдохновляла красота абстракции, мы получали удовольствие от поиска красивых доказательств. Однако ко всему этому часто примешивалось ощущение, что нас обманы- вают. Нам все время преподносили определения и доказательства как на- стоящую реальность, но причины явлений никогда не объяснялись. Казалось, что большую чость доказательств преподаватели получают с помощью маги- ческих манипуляций с кусочком мела у доски. Как можно было связать воедино все эти линии и не выпустить из поля зрения ни одну из них от самого начала доказательства до его чудесного конца? И над всем этим: «А для чего все это надо?» \ Ответ на этот вопрос пришел позже, через несколько лет «активной» жизни. На самом деле все это ни для чего не было надо, потому что предметы, которые мы изучали, вносились в школьные программы произволь- но. По правде говоря, они служили лишь поводом для перехода к более серьезным вещам, таким, как учиться понимать, учиться решать задачи, учиться познавать. Но любопытно, что эти «вещи» не признаются и почти не преподаются. Можно сказать, что существует определенный вид интеллек- туального терроризма, когда некоторых учеников называют «нуль в матема- тике», хотя их единственная вина состоит в том, что они не понимают то, о чем... никогда не говорится. Некоторым удается этого избежать, потому что они раньше сумели познакомиться с неявными правилами этой игры. Есть и такие, кто учит все наизусть... Но в настоящее время существует область исследований, в которой пер- вым желанием исследователей является стремление понять, как система об- работки информации — будь то человек или машина — способна воспринимать, анализировать, передавать и обобщать то, чему ее обучают, и с помощью этих данных исследовать конкретные ситуации и находить решения задач. Данная область исследований — искусственный интеллект, старший сын ин- форматики. Его предметом изучения является любая интеллектуальная дея- тельность человека, подчиняющаяся заранее неизвестным законам. Его мож- но также определить как «все то, что еще не сделано в информатике». Если предметом информатики является обработка информации, то к об- ласти искусственного интеллекта относятся такие случаи этой обработки, ко- торые не могут быть выполнены с помощью простых, точных алгоритмиче- ских методов и которых великое множество. К ним относятся даже такие банальные ситуации, как чтение текста с листа, находящегося перед вами. Один и тот же символ, например вертикальная черточка, может восприни- маться визуальной системой в зависимости от контекста либо как /, либо как 4 либо как знак абсолютной величины. В случае когда текст написан
8 ПРЕДИСЛОВИЕ от руки, ситуация еще хуже. Как может выйти из этого затруднения наша распознающая система? Вот одна из главных проблем, изучаемая в искус- ственном интеллекте. К области этой науки относятся также идентификация изображения человека (являющаяся более трудной задачей, чем просто иден- тификация букв), понимание текста (а не отдельных букв), распознавание речи, доказательство теорем, решения задач, поиск хода в шахматах, состав- ление расписаний, подготовка ответов на ежедневный интеллектуальный тест, разработка планов в архитектуре, постановка медицинского диагноза, анализ журнальной статьи.. В последнее время во всех этих областях до- стигнуты впечатляющие успехи. Ж.-Л. Лорьер
Глава 1 ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ В области искусственного интеллекта основными пробле- мами являются поиск и представление знаний. Цель исследова- ний при этом состоит не только в разработке новых теоретиче- ских построений, но и в создании для ЭВМ соответствующих программ наиболее общего характера. В начале главы мы кратко опишем состояние области тра- диционной информатики, затем покажем, каким образом иссле- дования в области искусственного интеллекта выделились в са- мостоятельное научное направление. 1.1. Информатика и искусственный интеллект Термин «информатика» используется исследователями в двух различных значениях. Во-первых, информатика рассмат- ривается в качестве основы для моделирования и, во-вторых, как инструмент для непосредственной проверки гипотез (ЭВМ—прекрасное средство тестирования идей). Информатика и искусственный интеллект имеют тесные взаимосвязи с лингвистикой, психологией и логикой, которые изучают явления, относящиеся к познанию, пониманию и умо- заключениям. Эти связи носят взаимный характер: с одной сто- роны, сегодня лингвисты, психологи, специалисты в области математической логики переводят в программы те новые мо- дели, которые они разрабатывают (точно так же, впрочем, как математики, биологи, исследователи в области медицины), а с другой — исследователи в области искусственного интеллекта изучают эти модели и пытаются воссоздать на их основе логику эффективных методов решения задач. Особенно тесные взаимосвязи имеются между искусствен- ным интеллектом и науками о познании. Это обусловлено тем, что единственным устройством для разумных рассуждений, ко- торое нам доступно, является наш мозг, причем непосредствен- ное исследование мыслительных процессов, протекающих в нем, практически невозможно. Использование ЭВМ в качестве мате- риальной основы искусственного интеллекта позволяет как бы изнутри взглянуть на подобные процессы. Впервые после фундаментального пересмотра картины мира, связанного с именами Коперника и Дарвина, разработка
10 ГЛАВА 1 методов искусственного интеллекта возвращает нас к вопросу о месте человека в природе. По существу впервые оспаривается исключительность разума. 1.2. Искусственный интеллект как наука Искусственный интеллект как наука насчитывает уже около 30 лет. Задачей этой науки является воссоздание с помощью искусственных устройств (в основном с помощью ЭВМ) разум- ных рассуждений и действий. При этом возникают трудности двух типов: . . . 1. В большинстве случаев, выполняя какие-то действия,, мы сами не осознаем, как мы это делаем. Нам неизвестен точный способ (или алгоритм, как говорят специалисты), как именно происходит понимание текста, узнавание лица, доказательство теоремы, выработка плана действий, решение задачи и т. п. 2. ЭВМ априори далеки от человеческого уровня компетент- ности: до начала любой их работы необходимо составить соот- ветствующие программы. Однако в действительности языки программирования дают возможность выражать только весьма элементарные понятия. Следовательно, методы искусственного интеллекта представ- ляют собой экспериментальную научную дисциплину. Под экс- периментом в данном случае понимается проверка и уточнение моделей (представляющих собой программы для ЭВМ) на мно- гочисленных примерах— наблюдениях над человеком (в том числе и над самим исследователем) с целью раскрыть эти мо- дели и лучше понять функционирование человеческого, разума. Ниже мы уточним определение области искусственного ин- теллекта. Затем мы поговорим об истории этой новой научной дисциплины и в заключение рассмотрим современные методы и перспективные направления исследований в области искусст- венного интеллекта. 1.3. Области применения искусственного интеллекта Всякая задача, для которой неизвестен алгоритм решения, априорно относится к искусственному интеллекту. Под алгорит- мом понимается вся последовательность заданных действий, которые хорошо определены, выполнимы на современных ЭВМ, причем решение задачи должно получаться в приемлемое вре- мя (порядка минуты или часа). Так, например, неизвестен ал- горитм для игры в шахматы. И хотя эта игра имеет конечное число ситуаций, рассмотрение их всех потребовало бы тысяче- летий. Аналогичным образом не существует общего алгоритма медицинской диагностики, составления резюме текста или пере- вода его на иностранный язык.
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ И К сфере искусственного интеллекта относятся те весьма различные области, где мы действуем, не имея абсолютно точ- ного метода решения проблемы, и которые обладают в общем двумя характерными особенностями: • в них используется информация в символьной форме: буквы, слова, знаки, рисунки. Это отличает область искусствен- ного интеллекта от областей, в которых традиционно компьюте- рам доверяется обработка данных в числовой форме; • в них предполагается наличие выбора-, действительно, сказать, что не существует алгоритма, это значит сказать, по сути дела, только то, что нужно сделать выбор между многими вариантами в условиях неопределенности, и этот недетерми- низм, который носит фундаментальный характер, эта свобода действия являются существенной составляющей интеллекта. Первой проблемой, с которой сталкиваются исследователи в области искусственного интеллекта, является проблема вос- приятия информации. Возможности сенсорных и исполнитель- ных механизмов, присущих человеку, в области зрения, мани- пулирования, восприятия вкуса и запаха, а также в понимании и воспроизведении речи еще не достигнуты в современных тех- нических системах. Рассмотрим отдельные направления, где находят применение методы искусственного интеллекта. Восприятие и распознавание образов Любая система обработки информации получает исходные данные от своих органов восприятия. Из наших пяти органов чувств несомненно самое важное место занимает зрение. Тех- ническими аналогами глаза сегодня являются телекамеры и ла- зеры, работа которых непосредственно связана с программами распознавания изображений и анализа сцен. Микрофоны пред- ставляют собой воспринимающие органы технических слуховых систем. Область обработки поступающих сигналов известна под названием “распознавание образов”. Распознающая система является необходимой частью любой автономной системы обра- ботки информации. Однако этим еще не решаются задачи, воз- никающие в области искусственного интеллекта, поскольку сов- сем недостаточно того, чтобы исходная информация была зако- дирована и занесена в память. В первую очередь возникают проблемы понимания и логического рассуждения, которые яв- ляются специфическими для искусственного интеллекта. Математика и автоматическое доказательство теорем В искусственном интеллекте особое значение придается сим- вольной, а не числовой информации. Соответственно и первыми областями, в которых работали исследователи искусственного
12 ГЛАВА 1 интеллекта, стали математика и различные игры. Обе эти сферы оказались хорошими областями приложения методов искусственного интеллекта в силу того, что связанные с ними задачи и проблемы хорошо формализованы, а, кроме того, сами эти области являются примерами высших достижений челове- ческого разума. Первые программы автоматического доказательства теорем появились в 1957 г., т. е. 10 лет спустя после появления первых ЭВМ. Вначале эти программы были достаточно просты, но за- тем все более и более усложнялись. Уровень человека средних способностей был ими быстро превзойден, однако уровень хо- рошего математика не достигнут до сих пор. В процессе созда- ния таких программ были изучены более глубоко и получили дальнейшее развитие теории доказательств и эффективных ме- тодов их построения. Более того, формальные разделы матема- тики, например такие, как математическая логика, оказались необходимыми для таких важных приложений, как робототех- ника, решение задач, поиск информации в базах данных. Ма- тематика и автоматическое доказательство теорем остаются и сейчас одним из основных направлений приложения методов искусственного интеллекта. Игры Как и формальные системы в математике, игры, характери- зующиеся конечным числом ситуаций и четко определенными правилами, являются хорошей сферой приложения дедуктивных методов. Вот почему они были и остаются до сих пор предпоч- тительными объектами исследований в искусственном интел- лекте. В этой области уровень среднего игрока также был легко превзойден, но уровень чемпиона мира еще не достигнут. Не- ожиданно оказалось, что возникшие трудности были те же, что и в математике, и во многих других областях. Эти трудности связаны с тем, что, играя, человек использует весь объем зна- ний, который он накопил за свою жизнь. В азартных играх, по- добных покеру или нардам, где большое значение имеет расчет вероятностей, программы работают великолепно. Решение задач Отметим, что понятие “решение” в данном случае исполь- зуется в самом широком смысле. Речь идет скорее о поста- новке, анализе и представлении конкретных ситуаций, чем о самом решении. На сегодняшний день достижения в этой обла- сти носят ограниченный характер. Это обусловлено тем, что, хотя многие хорошо решаемые задачи уже решены, остается широкое поле проблем, требующих специального изучения.
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ 13 Речь идет о задачах, встречающихся в повседневной жизни, в исследовании операций или в математике, для решения кото- рых требуется изобретательность и способность к обобщению. В частности, роботы должны быть способны решать такие за- дачи, решение которых мы получаем непроизвольно, например встать на что-нибудь, чтобы достать некоторый предмет, или зажечь свет, чтобы лучше видеть. Понимание естественного языка В области “понимания естественного языка’’ исследователи интересуются анализом и генерацией текстов, их внутренним представлением, выявлением знаний, необходимых для понима- ния текстов, т. е. синтаксических, семантических, прагматиче- ских знаний. Эти проблемы в данной книге не рассматриваются. (См. работу: Pitrat J. (1985): Textes, ordinateurs et comprehen- sion. Eyrolles.) Следует отметить, что результаты и социальные последст- вия исследований в области искусственного интеллекта скоро приобретут важное значение. Многие научные дисциплины ока- жутся непосредственно взаимосвязанными: психология (челове- ческий мозг остается обязательным объектом исследования в искусственном интеллекте), логика, лингвистика, биология (модели передачи информации с помощью генов), информати- ка (самоорганизующиеся системы, поиск в базах данных, авто- матическое программирование), медицина (помощь в диагности- ке) и особенно, может быть, теория образования и обучения во всех научных дисциплинах (уровень детализации, достигаемый в программах искусственного интеллекта, выявляет недостатки традиционного образования и делает очевидными пробелы пре- подавания). 1.4. Историческая справка Электронные вычислительные машины, даже если бы они не были необходимы для создания и испытания моделей искус- ственного интеллекта, являются замечательным средством ис- следования, и именно с ними связан взлет исследований по ис- кусственному интеллекту. В 1954 г. А. Ньюэлл задумал создать программу для игры в шахматы. К. Шеннон, отец теории ин- формации, уже предложил пригодный для этого метод. А. Тью- ринг, один из первых специалистов в области информатики, уточнил этот метод и промоделировал его вручную. В корпора- ции Рэнд Дж. Шоу и Г. Саймон объединились в работе по про- екту Ньюэлла. Их поддержал коллектив психологов из Амстер- дама (руководитель А. де Гроот), который изучал стиль игры
14 ГЛАВА 1 крупных шахматистов. Язык программирования, специально со- зданный этой группой, предназначался для того, чтобы в ма- шине было легко манипулировать информацией в символьной форме, работать с системой указателей и обрабатывать списки. Это был язык программирования ИПЛ1 (1956), явившийся предшественником языка Лисп (J. Mac Carthy, 1960). Первой программой искусственного интеллекта стала программа “Ло- гик— Теоретик”, предназначенная для доказательства теорем в исчислении высказываний. Ее работа была впервые продемон- стрирована 9 августа 1956 г. Программа для игры в шахматы NSS (Newell, Shaw, Si- mon) была создана в 1957 г. Ее структура и структура програм- мы “Логик — Теоретик”, представление о “желаемых ситуа- циях” и “эвристиках” (правилах, которые позволяют сделать выбор при отсутствии точных теоретических оснований) приве- ли позже к концепции Универсального Решателя Задач. Эта программа, анализируя различия между ситуациями и конст- руируя цели, хорошо решает головоломки типа “Ханойская башня” или вычисляет неопределенные интегралы. Специалисты в области информатики начинают интересо- ваться непосредственно искусственным интеллектом, и некото- рые уже пишут ставшие затем знаменитыми статьи, как, напри- мер, Дж. Маккарти, М. Минский, Г. Саймон. Создаются новые программы. Дж. Гелернтер (Gelernter, 1960) показывает, что его программа доказательства теорем из школьной геометрии может работать лучше, чем ее создатель! Чтобы доказать, что треугольник АВС, у которого два угла у основания (углы при вершинах В и С) равны, является равнобедренным, программа вместо классического доказательства из учебников, заключаю- щегося в построении высоты, опущенной из вершины А на осно- вание, просто применяет теорему о равенстве треугольников АВС и АСВ\ Результат очевиден... Программа ЕРАМ (Elementary Perceiving and Memorizing Program — элементарная программа для - восприятия и запо- минания) задумана Е. Фейгенбаумом для моделирования пси- хологических ситуаций. Программы, работающие с запросами на естественном языке, были созданы давно, найдя применение при поиске ин- формации в базах данных. Например, программа БЕЙСБОЛ (Green et al. 1961) отвечала на вопросы о результатах прошед- ших бейсбольных матчей, а программе СТЫОДЕНТ (Bobrow, 1964) было доступно решение алгебраических задач, сформули- рованных на английском языке. Весьма большие надежды возлагались исследователями на работы в области машинного перевода. В этой сфере продол-
ИСКУССТВЕННЫЙ' интеллект 15 жают работать большие группы исследователей. Они ориенти- руются прежде всего на использование синтаксического ана- лиза и информацию, получа^емую из словарей (метод ключевых слвв). И хотя этого недостаточно, как было доказано в сообще- ниях Дрейфуса (Dreyfus, 1972) и Лайтхилла (Lighthill, 1973), тем не менее исследователи потратили годы до того, как осоз- нали, что автоматический перевод не является изолированной проблемой и требует для успешного осуществления наличия такого необходимого этапа; как понимание. Новый подход в формальной логике, основанный на приве- дении рассуждений к противоречию, появился в 1965 г. (Дж. Робинсон). Этот подход позволяет формализовать многие задачи и дать их машинную интерпретацию. Его успешно ис- пользовали для доказательства теорем (Слейгл, Грин, Коваль- ский) и верификации программ (Кинг, Уолдингер). Этот же подход послужил отправной точкой при создании оригинального языка программирования — языка Пролог, который обладает мощностью логики первого порядка и был создан А. Колмрауе- ром в 1971 г. (гл. 3). Исследования в области искусственного интеллекта сопро- вождаются разработкой языков программирования новых поко- лений и созданием все более изощренных систем программиро- вания. Это дает возможность при разработке программ для ЭВМ использовать наши обычные методы рассуждения и обыч- ный словарный запас. Более того, языки программирования Лисп, Пролог, PLANNER, QA4 (называем здесь только наибо- лее важные из них) позволяют с помощью концепций цели и утверждения моделировать и формализовать логический вывод в решении задач; языки MACSYMA и REDUCE позволяют производить формальные манипуляции с математическими вы- ражениями; язык TMS позволяет осуществлять управление при ненадежных сведениях и проверять соответствие последних друг другу. Описанные выше результаты начинают использоваться в ро- бототехнике при управлении работой неподвижных или мобиль- ных роботов, действующих в реальном трехмерном простран- стве. При этом возникает проблема создания искусственных органов восприятия. В системах технического зрения восприни- мающим устройством служит телекамера, а при распознавании зрительных образов все большую роль играют методы анализа зрительных сцен, связанные с определением очертаний предме- тов (Гузмащ Уолц, Уинстон), а также выявлением, предметов, т. е. частично скрытых другими предметами, находящимися на первом плане. Качество решения подобных задач с тех пор все время повышается.
16 ГЛАВА 1 До 1968 г. исследователи работали в основном с отдельными “микропространствами”: они создавали системы, пригодные для таких специфических и ограниченных сфер приложения, как игры, евклидова геометрия, интегральное исчисление, “мир ку- биков”, обработка коротких фраз с небольшим словарным за- пасом. Почти во всех этих системах использовался один и тот же подход — упрощение комбинаторики, базирующееся на уменьшении необходимого перебора альтернатив на основе здравого смысла, применения числовых функций оценивания и различных эвристик. Обычно исследователь ограничивается только этими средствами, однако к настоящему времени уже реализованы десятки систем в различных областях применения, которые по уровню начинают соперничать с человеком. Приме- рами таких систем могут служить так называемые “игровые микрокомпьютеры”, ориентированные на такие игры, как шах- маты, игра го и некоторые азартные карточные игры. Однако экспертам предстоит судить, насколько велики достигнутые здесь успехи. 1.5. Заключение В начале 70-х годов произошел качественный скачок в ис- следованиях по искусственному интеллекту. Это объясняется двумя причинами. Во-первых, все исследователи постепенно осознали, что всем ранее созданным программам не хватает самого важного — глубоких знаний в соответствующей области. Различие между экспертом и обыкновенным человеком состоит в том, что у экс- перта имеется опыт в данной области, т. е. годами накопленные знания. Поэтому для существенного улучшения результатов ра- боты какой-либо программы искусственного интеллекта тре- буется не просто усовершенствовать эвристики или какие-то числовые коэффициенты, с которыми работает программа, а на- против, необходимо использовать в ней методы логических рас- суждений и накопленные в опыте знания, представленные в символьной форме. Во-вторых, возникает конкретная проблема: как передать эти знания программе, если ее непосредственный создатель ими не обладает. Ответ ясен — сама программа должна их вы- делять из данных, получаемых от эксперта. Исследователи столкнулись с необходимостью снабдить системы искусственно- го интеллекта возможностями, которых нет в обычных языках программирования, а именно: программы искусственного интел- лекта должны уметь сами собирать информацию (например, информацию такого типа: “Париж, 10 февраля, погода хоро-
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ 17 шая”), хранить эту информацию и использовать только при на- личии достаточных оснований. В данном случае имеется раз- граничение между заключением о каком-то факте и использо- ванием этого факта. В противоположность этому обычцый язык программирования позволяет выражать только . выполнимые задания или указания. Отмеченная особенность является существенно важной, так как эксперт обеспечивает систему отдельными изолированными фактами, не зная заранее, в какой момент она решит принять их во внимание. Исследования по решению задач и пониманию естественного языка объединяет одна основная проблема — представление знаний. К 1970 г. было создано множество программ, основанных на этих идеях. Первая из них —- программа DENDRAL. Она пред- назначена для порождения структурных формул химических соединений на основе информации, поступающей от масс-спект- рометра. Программа была разработана в Станфорде при уча- стии нобелевского лауреата Д. Ледерберга. Эта программа на- биралась опыта в процессе собственного функционирования. Экспертом в нее было заложено много тысяч элементарных фактов, представленных в виде отдельных правил. Рассматри- ваемая система явилась одной из первых экспертных систем, и результаты ее работы поразительны. В настоящее время си- стема поставляется потребителям вместе со спектрометром. Разумеется, представляется идеальным, когда программа сама выводит используемые правила логических заключений, основываясь на полученном опыте, т. е. обучается. Именно это было реализовано группой DENDRAL в Стэнфордском исследо- вательском институте. В программе METADENDRAL исполь- зуется несколько общих правил, позволяющих отсекать неперс- пективные варианты при рассмотрении возможных фрагментов структур соединений. Кроме того, в процессе работы программа сама выводит и последовательно уточняет частные правила по- строения структурных формул. Вначале это делается для от- дельных связей химического соединения, а затем строится структура всего соединения. Это особенно удобно для малоиз- вестных групп химических соединений и позволяет использовать данную систему при редактировании соответствующих публика- ций в международных периодических изданиях в области химии. Терри Виноград разработал систему SHRDLU (1971)., кото- рая моделирует робота, манипулирующего кубиками. С робо- том можно говорить по-английски. Система интересуется не -дальт .синтаксисом фраз, но и правильно понимает их смысл, ^^1&^&^С^^^Рческим и прагматическим знаниям о своем ФизикО-Тв£ИИЧвсад| 1 ИНСТИТУТ I Q
18 ГЛАВА 1 -----j——--------------, ,-------г- ,-----------—-------' “мире кубиков”. Она умеет устранять двусмысленности, пони- мает метафоры, проверяет свои поступки и дает отчет о своих действиях. В конечном счете она показывает в реальных усло- виях, что все это стало возможным благодаря хорошей про- грамме, которая управляет действиями такого робота. Число исследователей, посвятивших себя целиком искусст- венному интеллекту, составляет во всем мире несколько сотен, но достигнутые ими результаты касаются каждого из нас. Об этих результатах много говорят средства массовой информации, и нередко можно услышать о “роботах” будущего; На самом деле необходимо хорошо представлять себе, что эти исследова- ния являются долгими и трудными,, так как в отличие от иска- теля чудодейственных рецептов исследователи в области искус- ственного интеллекта пытаются постепенно воссоздать и ввести в ЭВМ опыт и знания специалистов всех областей знания. В общем случае эта информация отсутствует и нужна дли- тельная работа с экспертом, чтобы выявить все, что было неосо- знанно отобрано и запомнено им за время своего совершен- ствования в какой-то конкретной области деятельности. Для решения этой проблемы разработаны специальные языки и си- стемы представления информации. Но для ее решения необхо- димо также собрать больше информаций, чем ее содержится в каком-либо словаре или энциклопедии. Эта задача не является невыполнимой, так как уже разработаны соответствующие ме- тоды и устройства. Кроме того, она увлекательна, так как поз- воляет узнать много нового о самом человеке и его разуме — ибо в действительности именно человек является основным объ- ектом изучения, и можно быть уверенным, что когда эта зада- ча будет решена, программы искусственного интеллекта будут иметь самостоятельную ценность независимо от современных компьютеров.
Глава 2 ПРЕДСТАВЛЕНИЕ ЗАДАЧИ 2.1. Введение Смысл слова задача как синоним слову проблема происхо- дит от значения греческого слова “баллейн” — бросать ’ (за- дача — “объект, брошенный вперед”). Это слово на француз- ском языке (ргоЫёте) родственно таким словам, как бал (bal), парабола (parabole), гипербола (hyperbole), символ (symbole), шабли (chablis). Помимо обычных задач, с которыми мы стал- киваемся ежедневно, имеется другой тип задач, с которыми мы знакомимся еще в начальной школе. Их существенной характе- ристикой является то, что они “полностью определены”, т. е. четко описаны на подходящем каждому случаю языке. Чаще всего это язык математики. Способность к более или менее глу- бокому пониманию этого слова, связанных с ним “правил игры”, его неявных указаний могут привести к разделению уче- ников на “физиков” и “лириков”. Цель второго раздела данной главы — показать, что этот вопрос не так прост и человечество потратило тысячелетия на то, чтобы после множества попыток создать концепции, используемые сегодня, и этот процесс еще не закончен. К сожалению, большинство задач, с которыми встречаемся мы в реальной жизни после завершения школьного образова- ния, не являются полностью определенными. Чаще всего они описаны только частично и формулируются не нами, а кем-то другим, кто’использует различные средства передачи информа- ции, различные представления окружающей реальности: голос и интонацию, жесты, рисунки. Основным средством передачи информации при этом служит естественный язык. Однако с точки зрения решения задач он обладает четырьмя существен- ными недостатками: естественный язык неполон, избыточен, не- однозначен и неточен. 2.2. Естественный язык Очевидно, что большая часть информации в обычном диа- логе не выражается определенно и ясно. Обычно предпола- гается, что оба собеседника одинаково хорошо знают тему раз- говора. Однако, если эта гипотеза не подтверждается, стано- вится возможной полностью ошибочная интерпретация его
20 ГЛАВА 2 содержания. Применение так называемых технических требова- ний, в которых используются строгие спецификации; помогает устранить данный недостаток естественного языка. В естественном языке избыточность часто используется для того, чтобы отметить важность определенных моментов задачи, но при этом ничего не говорится о том, что настоящие трудно- сти при решении задачи связаны именно с этими моментами. Язык существенно неоднозначен (без этого нам было бы просто невозможно общаться). Однако неполнота и неодно- значность могут привести к полностью ошибочной интерпрета- ции. Наконец, обычный язык является грамматически некор- ректным и парадокс состоит в том, что это самый несуществен- ный недостаток естественного языка. 2.3. Постановка задачи Поставить задачу означает прежде всего понять условия за- дачи (т. е. удалить неполноту, избыточность и неоднозначность) или, другими словами, найти соответствующее представление. На этой стадии часто используется другой тип представления, сильно отличающийся от языка, — графическое представление. Зрительная система человека является великолепным средством сбора и обработки информации. На самом деле задача понята только тогда, когда найдено такое представление, в котором все элементы задачи представлены без избыточности и много- значности. В этом случае пространство поиска решений хорошо определено и чаще всего основная трудность решения уже вы- явлена. При этом прагматика и семантика задачи представлены в основном в формализованном виде. Задача становится одно- временно и более абстрактной, и более строгой. В этом случае говорят о задаче в замкнутой форме или о замкнутой формули- ровке задачи. 2.4. Задачи в замкнутой форме В наиболее общем виде условия задачи математически мо- гут быть записаны следующим образом: Найти в заданном множестве X точки х, удовлетворяющие множеству заданных ограничений К(х). Примером такой постановки может служить сформулирован- ная в неявном виде задача Бине: “из множества целых нату- ральных чисел х выбрать такие числа, которые удовлетворяют уравнению х3 + 84 = 37х”. Примечания. Г. Задание пространства X означает в общем случае одновременное (но неявное)гзадание структуры X и раз-
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ 21 решенных операций над X. Знание X является определяющим в исходных данных. 2. Первоначально полученную замкнутую формулировку за- дачи можно в общем случае снова перевести в другую форму, чтобы с учетом ограничений К(х) уменьшить пространство X и улучшить таким образом представление задачи. Задача ре- шается именно в процессе последовательных изменений пред- ставлений, причем последняя замкнутая формулировка дает не- посредственно решение задачи. Существуют два,основных варианта представления задачи в замкнутой форме. Вариант 1 Пространство содержит исходное состояние SO, заданы ко- нечное состояние S1 и конечный перечень операторов ОаЬ, кото- рые позволяют перейти от одного состояния Sa к другому со- стоянию Sb. Речь идет о том, чтобы найти путь от SO к S1. В качестве примера рассмотрим “игру в пятнадцать’’: 50 = 2 □ 6 7 S1 = 1 2 3 4 12 9 10 3 5 6 7 8 15 5 1 8 9 10 11 12 4 13 14 11 13 14 15 □ Здесь операторы ОаЬ имеют следующий смысл: переход из од- ного состояния в другое производится последовательным пере- мещением занумерованных фишек на пустое место. Замкнутая формулировка задачи в рассматриваемом варианте имеет вид X — (Последовательность операторов). Решение х есть на самом деле определенная последователь- ность х — {ОаЬ, ОЬс...Otu, Ouv), где Sa = SO, Sv = SI. Множество ограничений K(x) выражается в правиле следо- вания операторов, причем конечное состояние для оператора является начальным состоянием для последующего. Вариант 2 Здесь речь идет о классической формулировке задачи на до- казательство в математике:
22 ГЛАВА 2 Получить С(х), исходя из Н(х). Примером задачи в такой постановке является следующая задача: Показать, что для всех п, п е N Этот вариант сводится к предыдущему, если положить SO = = Н(х) и Sl = C’(x). Существенное отличие состоит, однако, в том, что операторы перехода от одного состояния к другому не заданы. Искусство математика как раз и заключается в том, чтобы отыскать те операторы, которые окажутся полезными для данного условия задачи. Часто конечное состояние С(х) вовсе не задано. Тогда наша задача формулируется следующим образом: “Рассчитать У, i3” и становится совсем неопределен- ной, так как критерий остановки процесса решения оказывается субъективным. Обычно ожидается, что в процессе решения за- дачи результатом будет выражение “более простое”, чем на- чальное. Однако простота выражения также не является строго определенным понятием с математической точки зрения. 2.5. Общий подход к решению задачи Подход человека к решению задачи включает семь основ- ных этапов: 1. Выяснение смысла условий задачи. 2. Первые выводы из условий задачи. 3. Проигрывание ситуации. 4. Обдумывание. 5. Выбор наилучшего представления — поиск замкнутой формулировки задачи. 6. Частичное (возврат к этапу 2) или общее решение задачи. 7. Проверка и обобщение решения. Этап 1 существенно зависит от наших органов восприятия (слуха и зрения). Более того, поскольку человек обычно обла- дает ограниченными способностями к немедленному запомина- нию, необходимо длительное осмысление условий задачи. На этапе 2 используются накопленные человеком знания, чтобы, во-первых, восполнить недостающую в условиях задачи инфор- мацию, и во-вторых, заменить длинные словесные фразы, со- держащиеся в условиях задачи, на более подходящие и удоб- ные для преобразований представления (такие, например, как рисунки, графы, алгебраические выражения). Отметим, что уже начиная с 1962 г. простые программы, ос- нованные на использовании ключевых слов, были способны ре-
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ 23 шать несложные задачи из области физической кинетики (Bob- row, 1962) и теории вероятностей (Gelb, 1964). Этап 3 является по крайней мере для человека основопола- гающим. Речь идет прежде всего о том, чтобы, возвращаясь к этапам 1 и 2, удостовериться, что ничто не пропущено и нет су- щественной ошибки в интерпретации условий задачи. Во вто- рую очередь речь идет о том, чтобы определить, в чем же со- стоит сложность задачи. Этап 4 также является основным. На этом этапе необходи- мо очистить нашу память от “фактов-паразитов”, связанных с первоначальной формулировкой задачи, и цайти лучшие опера- торы для новой замкнутой формулировки задачи. Отметим, что на этом этапе нередко практикуется, следующий прием: на вре- мя отвлекаются от задачи и занимаются чем-нибудь другим. Мы по своей природе настолько программируемы, что забыва- ние является часто единственным способом автоматически про- гнать из памяти старые идеи и создать условия для возникно- вения но'в'ых, “Отвлечение" от задачи является прекрасным ме- тодом ее решения. ‘ На этапе 5 достигается формулировка задачи в Замкнутой форме, т. е. ей придается полный, однозначный и безизбыточ- ный вид. Трудность решения задачи на этом этапе можно оце- нить более точно, исходя из размера пространства поиска X, сложности ограничений К(х) и числа разрешенных операций. На этапе 6 почти всегда удается получить наилучшее представ- ление благодаря малому пространству поиска. После того как новая замкнутая формулировка задачи получена, цикл решения можно повторить снова, начиная с этапа 2. На -этапе 7 процесс решения задачи заканчивается. Затем полезно вернуться к первому этапу, чтобы обсудить решение с заказчиком, удостовериться в адекватности решения исходной формулировке, проверить, как ведет себя полученное решение в предельных точках, а также оценить степень влияния сущест- венных входных параметров на результат. Интересно исследо- вать общность использованного подхода, рассмотрев такие вопросы: • Можно ли обобщить данную задачу, сохранив используе- мый метод решения? •; Существуют ли другие задачи, к которым может быть успешно применен тот же метод решения? • Существуют ли другие методы решения для той же задачи? Проиллюстрируем проблемы, типичные для первого и вто- рого этапов решенйя задачи, рассмотрев ситуации, представлен- ные на рис. 2.1—2.4..
24 ГЛАВА 2 Пример с фигурой, изображенной на рис. 2.1, хорошо изве- стен. Изображенная здесь фигура может рассматриваться как Рис. 2.1. Рис. 2.3. куб с передней гранью, расположенной внизу слева, или же, на- оборот, как куб, в качестве передней грани которого рассматри- вается грань, расположенная справа вверху (в предыдущем рассмотрении она была задней). Этот пример доказывает, что наша зрительная система постоянно осуществляет интерпрета- цию изображения. Это становится более очевидным при рас- смотрении рис. 2.2. Поворачивая рисунок, можно попеременно видеть в нем то дом, то пляжную кабинку, то брусок, срезан- ный “в угол” с одного конца. На рис. 2.3 требуется провести Рис. 2.4. Рис. 2.5. через каждую из 9 точек ломаную линию, не отрывая каранда- ша от бумаги так, чтобы получилось не более 4 линейных фраг- ментов. Если при решении этой задачи пытаются провести ло- маную прямую внутри квадрата, состоящего из девяти точек, то решения найти невозможно. Однако приведенная формули- ровка задачи на самом деле не накладывает такого ограниче- ния. (Решение задачи показано на рис. 2.5.) Что касается задачи на рис. 2.4, где требуется построить 4 равновеликих тре- угольника, используя для этого 6 спичек, то 2 лишних ограни- чения, которые мы, как правило, подразумеваем, и которых йет в условиях задачи, должны быть сняты, чтобы отыскать реше- ния. Другими словами, спички могут пересекаться и решение не обязательно должно быть плоским. Теперь легко находятся два
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ 25 решения задачи: одно в плоскости (рис. 2.6), другое решение — объемное (рис. 2.7). Следующий пример касается задачи, сформулированной на обычном разговорном языке. “Один жестокий король заточил в подземелье молодую де- вушку за то, что она не захотела выйти за него замуж. Истек год заключения, но девушка не отказалась от своего решения. Тогда король приказал вывести ее во двор замка и предложил ей следующее. Король выберет среди камешков двора два (черный И белый) и спрячет один в правой руке, а другой в ле- вой. Если девушка выберет руку, в которой окажется белый камешек, она будет освобождена, но если в руке окажется черный камешек, девушка выйдет замуж за короля. Девушка приняла эти условия с большой тревогой, которая переросла в ужас, когда девушка заметила, что король поднял с земли только черные камешки! Как же ей поступить?” При формальном подходе задача, поставленная таким обра- зом, не имеет решения. Однако на самом деле нарушение коро- лем условия задачи о выборе из двух камешков разного цвета обернулось против него. Девушка выхватила один камешек из рук короля и как бы нечаянно уронила его на землю, где его нельзя было отличить от других таких же камней. “Ах, изви- ните меня, — воскликнула девушка, — но теперь по цвету того камешка, который остался у Вас, Ваше Величество, мы опреде- лим цвет того камешка, что решит мою судьбу.” И так как это был черный камешек, то девушка стала свободной. Эти простые примеры показывают, что первый и второй этапы решения^ задачи в общем случае частично перекрывают- ся. Отсюда, в частности, вытекает, что задача в том виде, как она “понята”, не имеет решения, и только отыскивая решение, выделяют истинную задачу, устраняя лишние ограничения.
26 ГЛАВА 2 Другой; но относительно часто встречающийся случай, когда мы не можем в явном виде представить условия задачи, отно- сится к решениям типа “все или ничего”. В этом случае реше- ние возникает мгновенно после внутренней подсознательной ра- боты. В качестве примера приведем следующую задачу. “Допустим Вы одни в пустой комнате, Где имеются два иден- тичных железных бруска, один из которых намагничен, а дру- гой— нет. Необходимо определить, какой из брусков намагни- чен. Бруски тяжелые, твердые, прочные. Ничего другого у Вас не имеется”. Такое условие является единственным в своем роде. Мы обезоружены. Число операторов, т. е. возможных действий, Рис. 2.8. Два квадрата со сторонами (а+ 6), используемые;При доказатель- стве теоремы Пифагора. крайне невелико. Велико искушение опустить руки и признать, что задача не имеет решения. Поразмышляйте еще немного прежде, чем прочтете следующее: решение задачи существует, и оно очень простое. Ситуация несколько похожа на предыдущую. Проблема в том, чтобы “разорвать” симметрию. Но в данном случае ре- шение должно-основываться на знании физики и на том, что единственными предметами, доступными для манипуляций, яв- ляются эти два бруска. Магнитное притяжение проявляется со- вершенно симметрично в отношении обоих брусков, за исключе- нием единственного места, а именно середины намагниченного бруска. Этот участок не намагничен. Достаточно приставить ко- нец одного из брусков, например бруска А; к середине другого бруска В, и если притяжения не происходит, намагничен бру-4 сок В, а если бруски притягиваются, намагничен брусок А. Третий этап, связанный с проигрыванием ситуации, является наиболее важным в начале решения. Прежде всего покажем на
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ 27 очень простом примере, как уже этот этап может помочь найти интересные решения. Например, как доказать теорему Пифагора, используя ли- нейку и экер (прямоугольный чертежный треугольник)? Есте- ственной является мысль рассматривать экер в качестве прямо- угольного треугольника из теоремы, где а и b — его катеты, а с — гипотенуза. Чтобы возникла величина (а + Ь) на чертеже, надо расположить экер вдоль линейки двумя различными спо- собами. Полученные в результате построения два квадрата рав- ной площади со стороной (а + Ь) показаны на рис. 2.8. Пло- щадь S большого квадрата по построению равна (а + Ь)2, и если Т есть площадь треугольника, то площадь S правого боль- шого квадрата равна 47’ -|~ с2, а площадь S равного ему левого квадрата равна 47’ + а2 + Ь2, что доказывает теорему. 2.6. Пример полного решения задачи Рассмотрим пример, в котором охватывается весь процесс ре- шения от первых этапов до получения замкнутой формулиров- ки задачи и ее последующего решения. “Пусть имеется шахматная доска, каждая сторона которой содержит 100 клеток. Все 10 000 полей доски заняты черными шашками. В нашем случае разрешенными ходами являются “модификации”, т. е. операции замены в каком-то ряду (строке или столбце) всех шашек ряда черного цвета на белые и белых на черные. Спрашивается, Можно ли за конечное число ходов получить 1990 белых шашек, начиная с позиции, когда все шашки были черными?” На обычном языке это условие задачи легко формулируется и понимается. Однако, во-первых, ответ на поставленный воп- рос не возникает сам по себе, а во-вторых, “проигрывание си- туации” затруднительно, так как доска размером 100 X Ю0 не является обычной. Чтобы уловить смысл задачи и сделать неко- торые первоначальные заключения, т. е. создать очевидные пред- ставления условий, естественно рассмотреть задачу с умень- шенными параметрами, например использовать доску размером 4 X 4 или в качестве доски использовать абстрактный квадрат со стороной неопределенной длины. Первый вывод заключается в том, что как только сделан первый ход, то тут же появляются и белые шашки. Этот общий вывод устраняет странность, бросающуюся в глаза при знаком- стве с условиями задачи. Дело в том, что в них говорится о бе- лых шашках, хотя речь вести о них имеет смысл, только начи- ная со второго хода' Другие заключения появляются после того, как будут проведены несколько партий на модели доски.
28 ГЛАВА 2 Порядок следования этих заключений-выводов определяется индивидуальными особенностями человека, решающего задачу. 1. Если дважды подряд модифицируют один и тот же ряд, исходная позиция не изменяется. 2. Порядок ходов при модификациях безразличен. Это опре- деляется тем, что разные строки, как и столбцы, не имеют меж- ду собой общих шашек. У пересекающихся строки Li и столб- ца Cj имеется только одна общая шашка на их пересечении, ко- торая и не изменит цвета с при “одновременной” модификации строки и столбца, тогда как остальные шашки этих строки и столбца изменят цвет на противоположный. Отметим, что данный вывод о независимости результата от порядка являясь ным для таковым ветствует четвертой стадии раз- вития интеллекта (по Пиаже) и не формируется обычно ра- нее десятилетнего возраста, ход, номер ряда не является суще- важным является лишь число ша- а не место их расположения на Рис. 2.9. Зоны расположения белых и черных шашек на шахматной до- ске. ходов-модификаций, практически очевид- взрослых, не является для детей. Он соот- 3. После того как сделан ственным, так как в задаче шек того или иного цвета, доске. 4. На основании двух первых заключений можно сделать вывод, что порядок ходов в задаче не является существенным и результирующее состояние ряда то же при 2п 4- 1 ходах, что и при одном ходе-модификации. Аналогичным образом, состояние ряда одинаково как при 2п ходах, так и при 0 ходах. 5. На основании третьего вывода можно строки, которые были модифицированы один раз, перенести в верхнюю часть доски, а столбцы, которые также были модифицированы один раз, перенести в левую часть/доски. Таким образом, доска ока- жется разбита на четыре зоны, которые показаны на рис. 2.9. Прямоугольные зоны на доске слева вверху и справа внизу за- полнены черными шашками, причем одни из них перевернуты дважды, а другие ни разу. Прямоугольные зоны слева внизу и справа вверху заполнены белыми шашками, причем они все пе- ревернуты по одному разу. 6. Число строк L в верхних и число столбцов С в левых прямоугольниках соответствуют рядам шашек, модифицирован- ных один раз.
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ 29 7. Представленная на доске позиция обладает симметрией относительно строк и столбцов. Если (L, С) — решение задачи, то и (С, L), полученное вращением позиции на 90°, также будет решением. 8. Рассматриваемая позиция обладает еще и центральной симметрией. Если (L, С) — решение, то и (100 — С, 100 — L) также будет решением задачи. Это свойство уже менее очевид- но, чем предыдущие. Примечание. Ниже приведены некоторые рассуждения, ко- торые не являются доказательством. В данном случае формали- зация условий задачи затруднена, так как описанные на обыч- ном языке они носят неполный и неоднозначный характер. Именно поэтому необходим переход (и это общий необходимый этап для всех задач) к замкнутой форме условий задачи, где все четко определено и согласовано. Теперь сформулировать эти условия уже легко. В задаче величины L и С являются целочисленными. С их помощью под- считывается число модифицированных рядов. Так число белых шашек составит: вверху — LXU00 — С) и внизу — СХ X (ЮО — L). В результате замкнутую формулировку задачи можно записать в виде 100 (Z, + Q — 2ТС = 1990. (2.1) Очевидно, что никогда нельзя получить нечетное число бе- лых шашек. На этом этапе для получения нового, более общего представления о задаче целесообразно ее несколько обобщить. Ее можно сформулировать так: путь р — середина доски и п — число, равное половине заданного числа белых шашек. Тогда, если разделить на 2 обе части равенства (2.1) и использовать для записи обозначения р и п, получим р (LС) — LC = п. (2.2) Итак, во-первых, трудности решения задачи связаны с цело- численным характером уравнения (2.2); во-вторых, равенство (2.2) напоминает уравнение конуса: (ху— ах — by — с = 0); в-третьих, решение этого уравнения затрудняется тем, что в него входят как линейные члены p(L + С), так и квадратич- ные — LC. Оба последних заключения по поводу уравнения (2.2) можно резюмировать следующим образом. Так как конус обла- дает двумя осями симметрии, используем этот факт и сделаем равенство (2.2) более компактным и удобным для последую- щего применения. В этом случае можно исключить линейный член из равенства (2.2). Сделаем замену переменных, положив
30 ГЛАВА 2 L = l + а, С — с 4- а. В результате получим р {I + с + 2а) — (/ + а) (с + а) = п, 2ар + р(1+ с) — а (/ + с) — 1с — а2 = п. Положив а = р, добиваемся того, что в равенстве останутся только квадратичные члены. Такая замена, вообще говоря, не является произвольной, так как на самом деле она отражает тот факт, что распределение шашек по цвету на доске является симметричным по отношению к центру доски. Теперь замкнутая формулировка условий задачи приобретает новую форму 1с = р2 — п, (2.3) где 1 = L — р, с = С — р. Выражение (2.3) определяет представление условий задачи в трехмерном пространстве, причем слева и справа от знака равенства находятся целые числа. Целое число, стоящее в пра- вой части, на самом деле известно: р2 = so х 50 - 1990/2 = 1505. Для существования решения необходимо, чтобы число 1505 было разложимо на простые множители, сопоставимые с разме- рами доски. Итак, мы имеем 1505 = 5 X 7 X 43, а так как р = = 50, то —50 X I С +50, —50 +50. В данном случае существуют два решения, удовлетворяю- щих этим условиям. Первое решение /==5X7, с = 43, £ = 85, С = 93 Qi наоборот). Второе решение / = —35, с = —43, £=15, С = 7. Таким образом, имеются два варианта получения на доске 1990 белых шашек. С другой стороны, существуют такие числа для белых ша- шек, получение которых невозможно. Например, если п= 1984, имеем р2— п = 2500 — 992 = 2X2X 13X29, и тогда одна из двух величин — либо I, либо с — превышает число 50, что недо- пустимо ни для одного решения задачи. Наконец, имеется особый случай, когда либо I, либо с равно нулю, т. е. L или С равно 50. Это вырожденный случай, и ка- ково бы ни было здесь значение другой неизвестной, единствен- ное число, которое удовлетворяет условиям задачи, будет п = = р2 = 2500.
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ 31 Все задачи этого класса могут быть решены одний и тем же методом (включая сюда и задачи не только на квадратной, но и на прямоугольной доске). Что касается других методов реше- ния задач с условиями типа (2.1), т. е. в целых числах, то мы найдем их в гл. 3 и 6. Следующий раздел главы взят из книги Д. Пойа “Как ре- шать задачу” (George Poiya, How to solve it, 1956). 2.7. Что нужно сделать, чтобы решить задачу? 1. Понять задачу. • Что является неизвестным? Каковы исходные данные? Каковы условия задачи? • Можно ли удовлетворить условиям задачи? Достаточно ли заданных условий для отыскания неизвестной? Являются ли условия задачи недостаточными, избыточными или противоре- чивыми? • Сделайте рисунок. Введите соответствующие обозначения. • Выделите отдельные части условия задачи. Можете ли вы их сформулировать? 2. Составить план решения. • Определите взаимосвязь между исходными данными и не- известной. • Возможно, вам следует рассмотреть какие-то дополни- тельные задачи, если не удается непосредственно найти эту взаимосвязь. • В конце концов вы должны получить план решения. • Вы уже встречали эту задачу? Или, может быть, вы встречали похожую задачу? • Может быть, вы знаете задачу, связанную с этой? Изве- стна ли вам какая-нибудь теорема, которая может быть по- лезной? • Рассмотрите искомое и попытайтесь вспомнить задачу, которая вам уже известна и в которой отыскивалось то же сА- мое или нечто подобное. • Перед вами задача, которая связана с рассматриваемой и которую вы уже решали. Можете ли вы использовать резуль- таты, полученные при ее решении? Можете ли вы воспользо- ваться использованным методом решения? Может быть, следует ввести какой-то дополнительный элемент, чтобы воспользовать- ся этим методом? • Могли бы вы сформулировать задачу по-другому? Смогли бы вы дать еще одну формулировку задачи? Обратитесь мыс- ленно к определениям.
32 ГЛАВА 2 • Если вы не можете решить задачу, которая вам предло- жена, попытайтесь решить задачу, связанную с ней. Не можете ли вы припомнить задачу, которая была бы связана с вашей, но была бы разрешима? Более общая или более частная зада- ча или аналогичная вашей? Смогли бы вы решить часть за- дачи? Оставьте только часть условий, необходимых для другой части задачи. В какой мере может быть теперь определена не- известная, как можно ею варьировать? Можете ли вы извлечь из данных что-то полезное? Не приходят ли вам на ум другие данные, которые могли бы помочь определить неизвестную? Можете ли вы изменить неизвестную, или исходные данные, или и то и другое, если это необходимо, так, чтобы новая неиз- вестная и новые данные лучше соответствовали друг другу? • Вы использовали все исходные данные? Вы использовали условия задачи в полном объеме? Вы учли все существенные стороны задачи? 3. Выполнить план. • Выполняя принятый план решения, проверяйте каждый его этап, каждый элемент последовательно один за другим. Очевидно ли вам, что этот элемент плана корректен? Можете ли вы доказать его корректность? 4. Проверить полученное решение. • Можете- ли вы проверить полученный результат? Можете ли вы проверить проведенные рассуждения? • Можете ли вы получить результат, отличающийся от уже полученного? Можете ли вы это понять с первого взгляда? • Можете ли вы воспользоваться полученным результатом или методом решения для какой-нибудь другой задачи? 2.8. Из истории развития и преподавания математики Собственно математике предшествует длительная предысто- рия порядка четырех тысяч лет. Высшие животные и совсем маленькие дети воспринимают в окружающем мире две основ- ные абстрактные сущности: число и форму. Таким образом, арифметика и геометрия длительное время были двумя отдель- ными фундаментальными науками. В древности различение чи- сел человеком не было вполне ясным и точным. В первобытных обществах человек не различал две совокупности, содержащие почти равные количества элементов. Он едва умел считать: один, два, много. В латыни понятие “много” обозначается словом tres, продолжающем и сейчас жить во французском языке в виде слова trois (три)!
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 33 Звездные миры были замечены наблюдателями, принадле- жавшими к самым древним цивилизациям, которые постоянно наблюдали скопления звезд на небе. Мы знаем также, что шу- меры Урука и Ниппура еще три тысячи лет тому назад уже пользовались лунным календарем. Им пришла идея представ- лять числа с помощью символов. При этом Луна обозначала единицу, а другие небесные объекты — последующие числа. Необходимость делать расчеты и затем записывать их резуль- таты привела к использованию более удобных обозначений. Вертикальной или наклонной чертой стали обозначать единицу в Финикии, Сирии, Древней Греции, Южной Аравии, Индии. Совокупности из пяти, десяти или двадцати единиц стали обоз- начать специальными символами, образованными от их назва- ний. Все это были аддитивные системы счисления, т. е. закоди- рованное ими число представляло собой сумму записанных сим- волов. В Вавилонии была изобретена своя 60-ричная система счис- ления. Ее основные символы имели значения 1, 10, 60, затем 600, 3600, 36 000 и т. д. Эта система используется и в наши дни, в частности в астрономии для определения мер времени и угловых мер. Многие народы использовали идею представле- ния чисел при помощи букв своего алфавита. Стали придавать особый смысл определенным числам, что породило кабалистиче- ские вычисления. Число, соответствующее какой-либо букве, становится функцией положения буквы в слове. Стала ощу- щаться необходимость в обозначении понятия “ничего”. Проис- хождение нуля до сего времени остается неясным. Можно счи- тать установленным, что в индийскиих текстах шестого века нуль обозначался точкой. В астрономических записях древних греков нуль обозначался буквой О, являвшейся начальной бук- вой греческого слова ov6ev, обозначавшего “ничего”. Современное написание цифр нашей десятичной системы счисления пришло к нам из Западной Индии через арабов. Только в 13 в. эти цифры проникли в Италию через флорентий- ских купцов. Их использование стало повсеместным в 15 в. Следы истории их появления остались в словах “цифра” и “зе- ро” (нуль), которые происходят от арабского слова sifr (zero). С изобретением книгопечатания (1440 г.) цифры принимают окончательную форму. Использование запятой в вещественных числах распространяется только в XVIII в. Четыре арифмети- ческих действия знали еще египтяне, но их представление ча- сто было очень неудобным. Так, смежное расположение чисел обозначает сложение, а греческая буква ф — вычитание. Пере- писчики в средние века выработали окончательную форму 2 Ж.-Л. Лорьер
34 ГЛАВА 2 знака + из слова et (и). Знак — появился из обычая отделять в счетах чистый вес от веса тары с помощью горизонтальной черты. Отметим, однако, что Марсель Коэн в своей интересной книге “Великое изобретение — письменность и ее эволюция” пишет, что знаки + и — появились как сокращения слов plus (плюс) и minus (минус). Современные знаки умножения и де- ления были введены в 17 в. Равенство обозначалось в Европе 17 в. знаком оо, который использовался астрономами для обо- значения созвездия Тельца. Одновременно для той же цели ис- пользовалось латинское слово aequalis. Оно сначала было уко- рочено до ае, а затем превратилось в знак =. Тогда символом оо стали обозначать число 1000. Около 1660 г. Дж. Уоллес стал обозначать этим знаком бесконечность. Мы рассказываем обо всем этом по двум причинам. Во-пер- вых, чтобы показать, что человечество потратило многие ты- сячи лет для “приручения" числа, а наука и вовсе развивается только несколько веков. Математика возникла не в один день, и ее детство'еще недалеко от нас. Что же удивительного в том, если у какого-то школьника встречаются трудности в овладении предметом, когда человечество затратило так много времени, чтобы выработать представление чисел и операций. Во-вторых, вопрос о представлении конкретных или абст- рактных объектов является центральным для искусственного интеллекта. Дать представление чего-то означает прежде всего умение выделить из общей массы объект, выявить его важность и практическую ценность. Отсюда следует, что его свойства должны быть определены и переведены в форму, удобную для манипулирования с ним. Таким образом, дать представление означает понять. Если сегодня биология начинает объяснять представление наследственной информации в генах живых су- ществ, то нейрологи и психологи еще далеки от того, чтобы дать объяснение тому, каким образом в нашем мозге закодиро- ваны и организованы наши знания. Не исключено, что исследо- вания в области искусственного интеллекта дадут какие-то от- веты на этот вопрос. । Уже во времена Евклида (третий век до нашей эры) гео- метры умели обозначать абстрактные объекты с помощью букв. Папус Александрийский (третий век), а затем Диофант (чет- вертый век) постепенно вводят подобные обозначения для не- известных чисел. Франсуа Виет, докладчик в Государственном совете при Генрихе IV, в своем трактате “Искусство анализа” первым ввел систематическое испЬльзование такого буквенного представления и таким образом является праотцом современной алгебры. В сочинениях Виета встречаются, например, такие вы-
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 35 ражения: Г Н in D . — F in Z) aequebitur A F + D Первые буквы алфавита (А и D) заменяют неизвестные ве- личины, слово in стоит вместо знака умножения, линейная фор- ма записи выражений еще неизвестна. В современных обозна- чениях это выражение выглядит так аУ - by _ b + y Виет уже умеет оперировать с такими выражениями. Напри- мер, он выводит из предыдущего выражения следующее: “ (F + D) так относится к (Н— F), как D к А”. Это дает ему возможность решать уравнения. Декарт в XVII в. нормализует и расширяет этот формализм. Он ввел в обращение наши знаки операций +, —, *, / и предло- жил употреблять последние буквы алфавита для обозначения неизвестных. Символ х пришел к нам от арабов (от слова says, обозначающего какой-то предмет, нечто). Именно Декарт от- казался от использования классических обозначений, пришедших из греческого и древнееврейского письма, в пользу современных обозначений. Наконец, Декарт объединил науки о числах и фи- гурах, заложив основы аналитической геометрии, и тем самым установил глубокое единство математики, которое было еще углублено в последующие века. Индексы и показатели появляются довольно поздно. Так Эйлер (1707—1783) использует выражение х*х*х для х3, и только Эварист Галуа (1811—1832) первым начинает пользо- ваться индексами. Но еще Жордан и затем сам Гильберт в на- чале нашего века не приняли этого новшества и продолжали писать в тяжелой и неудобочитаемой манере, когда порядок букв в алфавите играл роль неявной индексации. Функциональ- ные символы были введены Лейбницем и Иоганном Бернулли. Знак суммирования У, был введен Эйлером. Введение обозначений для функций проходило не без труд- ностей, причем единогласия в этой области не имеется еще и до сих пор. Постоянно смешиваются сама функция f и ее зна- чение в точке f(x). Часто пишут Г + а(/(х)) вместо T’ + a(D- Производная почти всегда смешивается с ее значением. Эта ошибка вызывается принятыми обозначениями. Еще более во- пиющими являются такие ошибки в случае частных производ- ных. Проблема обозначений усложняется, когда требуется 2*
36 ГЛАВА 2 рассматривать выражение как функцию от одной из его состав- ляющих. Так, в физике или механике пишут y(t), рассматривая у как функцию времени, а затем записывают t/(x); рассматри- вая ее как функцию положения, и наконец, просто у как функ- цию вообще. Такие обозначения являются неприемлемыми из-за их непо- следовательности и сложности для начинающего. Но, с другой стороны, проблема усложняется тем, что невозможно ввести свой символ для каждой функциональной зависимости. Черч и Карри в 1950 г. предложили Х-запись: символы Хх перед каким-либо выражением трансформируют его в функцию от х. Таким образом' линейная функция от х записывается в виде Хх(ах + ^). Это представляет собой весьма элегантное решение проблемы. Здесь лежит начало языка программирова- ния Лисп, созданного Маккарти в 1960 г. Символическая ло- гика и язык теории множеств возникают очень поздно. В 1891 г. Пеано ввел знак принадлежности е. Включение обозначается как ос или <, и затем позже Хаусдорф вводит в 1920 г. обозна- чение сз. Именно это обозначение сегодня является предпочти- тельным. После различных попыток ввести собственные обозна- чения сегодня снова наиболее распространенными для обо- значения пересечения, объединения и импликации являются обозначения Пеано П, U, Последний символ является обрат- ным к символу включения. Так, если Е F, то (хе£)э ^(хе/7). Гильберт пользуется стрелкой -> для обозначения импликации. Такое обозначение совпадает с обозначением ото- бражения в теории множеств и со знаком переписывания. Шко- ла Бурбаки предпочитает для импликации знак =>, который широко используется сегодня. Что касается нас, то мы предпо- читаем, как и логики, пользоваться обозначениями Пеано. Чтобы сделать наглядными логические рассуждения, Эйлер использовал идею диаграмм типа кругов, отражающих множе- ства и получивших название диаграмм Венна (1834—1923). Льюис Кэрролл (1882—1898) предложил другой тип диаграмм, которые сохраняли свойства сопряженности между множеством и его дополнением. Это нашло применение в булевой алгебре. Под влиянием символов (J и (] логические ИЛИ и И стали обозначаться соответственно V и А. Отрицание иногда обозначается знаком —, иногда чертой сверху или знаком ~ (тильда), Так как все эти знаки имеют и другое значение, то Хейтинж предложил в 1937 г. использо- вать для обозначения отрицания,<нак “I, который принят в этой книге. Квантор существования 3 был также введен Пеано. Рассел и Уайтхед (1903) дополнительно ввели еще квантор всеобщно-
ПРЕДСТАВЛЕНИЕ ЗНАНИИ 37 сти, для обозначения которого они просто заключали перемен- ную в скобки. Только гораздо позже (в 1920 г.) был введен для него знак V. Г. Фреге (1848—1925) ввел знак утверждения, для которого он использовал обозначение Н. Так, выражение “НД” означает “по Д”. Группа французских математиков, публикующая свои труды в виде монографий “Элементы математики” под псевдонимом Никола Бурбаки, как бы “узаконила” использование значитель- ного числа таких символов и ввела в свою очередь еще ряд новых символов (среди них уже упоминавшийся знак =>, обо- значение С для дополнения множества и многочисленные обо- значения в теории групп). Эти монографии, переведенные на многие языки мира, сделали многое для стабилизации обозна- чений, манеры и стиля современной математики. Однако посте- пенно формальный язык стал сильно отличаться от обычного языка. Там, где в обычном языке встречаются “разделители" (союзы) “и”, “или”, “так как”, математик предпочитает исполь- зовать такие группирующие символы, как круглые, квадратные или фигурные скобки и горизонтальные черточки. Символ равен- ства, обозначающий идентичность двух объектов, предпочитают использовать в качестве разделителя. В результате между обы- чным языком и языком математики образовалось определенное смешение способов выражения. Поэтому очень наивно выгля- дят некоторые математические выражения, например “для вся- кого у = ах + Ь”, в котором символ у может иметь двоякий смысл. На самом деле это выражение следовало бы записать так: У у, у = ах + Ь, тогда как предыдущую запись, строго го- воря, надо прочитать так: каково бы ни было равенство типа у — ах + Ь. На практике часто путают обычное значение знака =, описанное выше, и его роль в качестве оператора присваивания. Таким образом, идентичность, выражаемая с помощью знака равенства, например такая, как (а — Ь)2 = а2 — 2аЬ + Ь2, яв- ляется таким же правилом переписывания, как х + 0->0 или х-1-^х. Знак = служит также для задания определений, на- пример в выражении tgx — sin x/cosx, и, кроме того, еще и вдля ввода сокращенных обозначений. Например, положим и — „= (ах+ b)/(x2 + 1) или х', х" = (— b ± д/д)/2, где правая нйасть используется в виде самостоятельного блока. 11 Другой тип неопределенности, присущей обычному языку, встречается и в математическом языке. Например, когда опре- ! деляют какую-то группу G, вначале постулируют, что- для всех g из G существует е, такое, что ge = g и eg = g. И затем про- должают: Vg, geG, Sg-1, g~*eG, g~1g = e, gg~1==e. Тут, "Однако, имеется некоторая неоднозначность математического
38 ГЛАВА 2 языка, связанная с тем, что переменная е, существование кото- рой определяется вначале, не имеет никакого отношения к пе- ременной е из второй половины определения, хотя для их обо- значения использована одна и та же буква е. Такого рода неод- нозначности не могут не вызывать определенных затруднений у тех, кто разрабатывает системы автоматического доказательст- ва теорем. В связи со сказанным выше любой перевод с обычного язы- ка на язык математики должен производиться с осторож- ностью. Например, во фразе на французском языке “Un triang- le rectangle est tin triangle qui a un angle droit” (Прямоуголь- ный треугольник — это треугольник, в котором один угол прямой), трижды встречается неопределенный артикль un (всо- четаниях со словами “прямоугольный треугольник”, “треуголь- ник” и “прямой угол”). Однако если в первом случае артикль имеет смысл универсальности (любой прямоугольный треуголь- ник), то в третьем случае он употреблен в смысле существова- ния (т. е. “имеется, существует именно прямой угол”). Глаголы “быть, есть, является” служат иногда признаком того, что вво- дится какое-то определение, иногда признаком какого-то свой- ства, а иногда признаком принадлежности. Союз “или” используется иногда в качестве “или исключи- тельно” (например, белое или черное), а иногда как “или вклю- чительно” (например, много или мало), что соответствует двум различным понятиям в математике. Уже на ранних этапах обучения детям говорят о таких псев- доматематических выражениях, как: “два на два дает четыре” и “больше на меньше дает меньше”. Этот тип необъясняемого рискованного приравнивания -часто вызывает у детей непони- мание, из которого потом возникают неожиданные следствия. Например, учитель спрашивает: “Какое целое следует после п?” И ученик отвечает: “О”. “Пусть целое 7”. “Но”, — прерывает себя ученик, — “q не есть целое число, это буква”... Или, напри- мер, такое упражнение: «Укажите множество значений х алфа;- вита, таких, что х есть гласная”. Но каков же должен быть от- вет? Что это множество пустое, так как х есть согласная?.. j Таким образом, перевод условий задачи с естественного языка на формализованный является непростой задачей. Этот первый этап решения присутствует в каждой научной дисцип- лине: алгебре, геометрии, математическом анализе, химии, фи- зике. Специалисты по исследованию операций, которым посто- янно приходится описывать на формализованном языке слож- ные ситуации, назвали этот процесс моделированием. Однако и язык математики не лишен условностей, связан- ных с тем, что часть информации не задается в явном виде, а
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 39 подразумевается. Значение символов часто неявно содержится в самих символах. Например, “неизвестные” обозначаются бук- вами х, у, z\ целые величины обозначаются обычно буквами i, j, k, I, m, n, p, q; для вещественных величин используются буквы г, s, t; угловые величины обозначаются буквами грече- ского алфавита а, 0, 0, Ф; для функций используются символы f, g, /1; множества обозначаются прописными буквами. Некото- рые буквы, такие, как е, g, i, л, зарезервированы для обозначе- ния специальных величин. Кроме того, язык математики воспри- нял и некоторые недостатки естественного языка. Так, например, “группа Ли” не имеет отношения к группам. Поэтому учащийся должен уметь читать между строк и понимать с полуслова. Теперь посмотрим, что требуется от учащегося, и какова история преподавания математики. Греческие “школы” времен Сократа (пятый век до нашей эры), Платона и Аристотеля (четвертый век до нашей эры), Евклида (третий век до нашей эры) справедливо знамениты. “Элементы геометрии” Евклида долго оставались образцом строгости и ясности изложения. Около 290 г. Папус Александ- рийский опубликовал свою “Математическую коллекцию”, а около 370 г. Диофант опубликовал свою “Арифметику”. После оригинальных и важных достижений древних греков Европа пережила долгий период застоя точных наук. И только италь- янское Возрождение дало новый толчок как исследованиям, так й преподаванию наук. До этой эпохи занятия математикой были прерогативой эли- ты. Ею занимались в философских кружках и светских салонах. Впрочем именно учитель философии преподавал математику в колледжах. Кроме того, техникой счета занимались также в некоторых специальных учебных заведениях — школах архи- тектуры, астрономии, навигации, военного искусства. Великая французская революция, осуществив реформу шко- лы, поставила преподавание точных наук на тот уровень, кото- рый в основном сохранился до наших дней. Тогда же была введена и метрическая система. В 1794 г. Лаканаль и Монж основали Политехническую школу. В 1808 г. в Сорбонне была организована кафедра трансцендентальной математики. (Сор- (бонна с момента своего основания в 1227 г. Робером де Сорбо- ном была теологическим колледжем.) С тех пор учебные программы лицеев и колледжей рассчитаны на тех, кто претен- дует на поступление в Политехническую школу и Парижский университет. Итак, учащимся преподают математику по программе, а не учат математическим навыкам и умениям. Очень малое число авторов интересуется феноменом открытия, методами
40 ГЛАВА 2 “активного" обучения, индуктивными рассуждениями, изучением способов мышления, эвристикой в педагогике (здесь речь идет о том, чтобы заставить ученика самого открыть то, чему его хо- тят научить), дидактикой научных дисциплин (от греческого “преподавать”, здесь речь идет об изучении самого преподава- ния как явления в его познавательных аспектах и с точки зре- ния техники преподавания, а также об оценке этого явления во всех его сложностях). Селестен Френе создал в 1940 г. школу нового типа, в кото- рой основное внимание уделялось педагогике сотрудничества и группового обучения. Имеется очень мало публикаций, в которых математики объясняли бы, как именно они пришли к какому-то важному результату. Можно даже сказать, что традиционное редактиро- вание математических текстов все сделало для того, чтобы скрыть самые первые индуктивные шаги к будущему резуль- тату. Рассуждение по большей части представляет собой обрат- ное тому, что первоначально подразумевалось. Доказательство представляет собой очищенную аргументами эвристику. Перво- начальные представления изменены и закодированы путем ис- пользования математических обозначений, и наконец, введенные объекты получают окончательный вид. Педагоги сегодня вели- колепно осознают эти проблемы, но решить их не просто. Соз- дание “современной” математики было попыткой, хотя и не вполне успешной, решить некоторые из этих проблем. В искус- ственном интеллекте исследователи из разных сфер деятельно- сти интересуются как раз этим эвристическим этапом. 2.9. Представления Наш мозг воспринимает не окружающую реальность, а мо- дель этой реальности, которая формируется с помощью наших органов восприятия: зрительной, слуховой, обонятельной, вкусо- вой и тактильной системами. Затем эта модель получает пред- ставление в нервной системе с помощью нейронов и их синап- сов. Нам почти неизвестен физиологический механизм, с по- мощью которого информация кодируется и запоминается и как осуществляется доступ к ней. Согласно К. Лоренцу это пред- ставление является визуальным отображением реальности. У приматов необходимость в интеллекте возникла потому, что они были принуждены, чтобы выжить во враждебном мире, “планировать” свои действия и поступки, “размышлять”. Мно- гочисленные следы этого преобладающего влияния отношений с окружающим миром на нашу систему мышления сохранились в лексике современного языка, например: видеть, схватить, по-
ПРЕДСТАВЛЕНИЕ 'ЗНАНИЙ 41 нять; уровень, план, глубина; очевидный,, скрытый, темный. Это тот вид лексики, который связан с абстрактными понятиями и служит для их выражения. Несмотря на то что способность к абстрактному восприятию является свойством именно человека, тем не менее это свойство не является врожденным. Ребенок вырабатывает в себе эти абстрактные понятия постепенно, шаг за шагом, постигая физические инварианты только после дол- гого ученичества. Согласно Пиаже, способность к внутреннему представлению о весе или объеме объектов формируется у че- ловека к 13—.14 годам. Недостатком при этом является только то, что мало-помалу это абстрактное представление о мире ве- дет индивидуума к чистому абстрактному мышлению, уже неза- висимому от всякой опоры на окружающее и отделенное от лю- бого немедленного действия. В заключение отметим, что представления, которые мы ис- пользуем, когда речь идет о печатных и рукописных текстах, гравюрах, нотных записях, математических формулах, рисун- ках, фотографиях, являются существенно графическими. Осо- бую роль среди них в этой книге играют те, что связаны с ма- тематическими формами записи и обозначениями. 2.9.1. Математическая форма записи Все обычные системы записи содержат, с одной стороны, символы, представляющие объекты, и, с другой стороны, сим- волы, представляющие операторы, позволяющие связывать объекты между собой. Так, в выражении х ф у—1 х, у явля- ются объектами, а знаки -фи — операторами. Операторы могут связывать некоторое множество объектов (например, операторы -ф и —), два объекта (бинарные операторы *, /, Q, П> V, А), а также относиться к одному объекту (унарные опе- раторы V , log, sin). Операторы типа “если ... то, ... иначе ...” (“если да ... то. если нет ...”) встречаются в языках програм- мирования. В общем случае правильно построенное выражение 'или терм представляет собой n-арный оператор вместе с п объ- 'ектами. По отношению к n-арному оператору говорят также, "что его вес равен п. Правильно построенное выражение само может рассматри- ваться как новый объект, который в свою очередь может быть ‘ связан с другими объектами с помощью какого-то оператора, следуя тому же закону образования выражений, что и ранее. В результате мы получаем терм — n-арный оператор вместе с п термами. Такое определение терма через*другие термы назы- вается рекурсивным. Оно имеет смысл только тогда, когда ап- риорно существуют исходные термы, являющиеся объектами.
42 ГЛАВА 2 Среди этих исходных объектов & общем случае некоторые могут быть заменены другими объектами или даже термами (переменные), а другие — не могут быть заменены (константы)'. Так, в тригонометрическом выражении sin2 х + cos2 х = 1 х тло- жет быть заменен любым термом, чего нельзя сказать ни о сим- волах 1 и 2, ни о символах sin и cos. Эти понятия будут уточ- нены в гл. 3 при рассмотрении формальных систем. 2.9.2. Линейные формы записи Книгопечатание привело математиков к тому, что они стали записывать свои формулы в виде линейной строки, читаемой слева направо в европейском мире. В этой форме записи, назы- ваемой линейной, существуют три возможности расположения оператора: впереди или позади термов, которыми они управ- ляют, или же между ними. Находят применение все эти три формы записи, но они не являются равнозначными. В наиболее общей форме записи, называемой инфиксной (или нефиксированной формой), операторы расположены среди термов и, чтобы облегчить чтение, приходится добавлять новые символы — скобки: (),[],{}, которые не входят в основной набор символов. Они не очень удобны при письме, и ими поль- зуются, только чтобы устранить неоднозначность или разделить на части слишком длинное выражение. Кроме того, для устра- нения неоднозначности условились об определенной иерархии применения операторов. Например, в алгебре выражение а — b + с будет интерпретироваться как (а — Ь) + с, а не как а—(Ь-\-с). Свойства ассоциативности и коммутативности не- которых операторов (и особенно операторов + и *) неявно подразумеваются в обычном математическом анализе. Напри- мер, пишут 2 * х * у, или х * 2 * у, или у * х * 2, причем чаще всего оператор умножения * при записи формул опускается. Однако фантазия математиков идет дальше, и, например, унар- ные операторы записываются на трех уровнях. Основные вари- анты записи таковы: sin А, В, С*, dD/dt, Е*, F, G', | G |. Знак — является одновременно унарным и бинарным оператором. Сле- довательно, обычная нефиксированная форма записи выраже- ний далека от определенности и строгости. В математической логике предпочтительной является пре- фиксная форма записи. Каждый оператор в этом случае запи- сывается перед термами, которыми он управляет. Таким обра- зом, обычная запись “х оператор у" приобретает вид “оператор ху", причем запись “оператор z” не изменяется. В этой форме записи любые скобочные системы становятся ненужными, а лаконичность и определенность формы записи с
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 43 расположением оператора в начале каждого терма делает ее (после некоторой тренировки) весьма удобной для использо- вания. Выражение (р дэ q) р, записанное в инфиксной форме, по- лучает в префиксной форме вид ZDZJpqp. Выражение (Т) log (у+'у/у2 — b/sin х) будет выглядеть так tog + У л/ — | г/2/ft sin х. Основная теорема префиксной формы записи. Последователь- ность S символов является правильно построенной в форме польской префиксной записи, если и только если: 1) ранг (S) = — 1; 2) ранг (подпоследовательности слева от S)^0, причем ранг (оператора) = вес (оператора) — 1, ранг (пустой последовательности) = О, ранг (n-го символа) =±= п—1, ранг (переменной) = ранг (константы) = —1, ранг (S1 соединенной с 52) = ранг (31) +ранг (S2). Доказательство этой теоремы проводится по индукции на множестве символов S. Важным следствием этого результата является возможность построения алгоритма для отыскания в заданном выражении места, где заканчивается терм, который начинается в заданной позиции. Так, например, для идущей ниже последовательности симво- лов (Т) (с соответствующими им рангами) имеем для терма, который начинается стрелкой, его окончание на знаке 2: log + к V — t у 2 / b sin х 0 10 0 122 0100 —1 < 10—1 Заметим, что запись в инфиксной форме, если она дополне- на скобками, может рассматриваться как префиксная запись и s поддается верификации с помощью описанной выше процедуры. При этом открывающая скобка рассматривается как бинарный оператор, а закрывающая скобка — как константа. Другие ран- ги остаются при этом неизменными. Тогда, например, выраже- ние с бинарным оператором будет выглядеть так: ( а бинарный-оператор Ь ) 1010-1
44 .1 ГЛАВА 2 В суффиксной (или постфиксной) форме записи оператор по- мещается сразу после соответствующих термов и выражение “х оператор у" будет записано как “ху оператор”, а выражение “оператор г" запишется как “z оператор”. Выражение (Т) в суффиксной форме записи выглядит так: У У 2 f b х sin / — V + log Эта форма записи удобна, в частности, когда хотят оценить, т. е. вычислить, представленное выражение; например, при ма- шинных вычислениях или при компиляции языков программи- рования формулы, введенные в инфиксной форме, переводят в постфиксную форму. В такой форме записи при прочтении вы- ражения слева направо удается вычислить его значение за один проход (рис. 2.10а). у у 2 . 4 b х sin / — у- log 112 4 ------ 1 80 —л/2 -> -1 -» —80 -> 81 Рис. 2.10а. 2.9.3. Нелинейные формы записи При типографском способе печати линейная форма записи в виде строк не дает наглядного представления о структуре вы- ражений. Все символы выглядят равнозначными, хотя известно, что некоторые из них являются терминальными (переменные и константы), а другие.нет. Если быть точным, то следует отме- тить, что каждый оператор управляет заданным числом извест- ных термов. Чтобы отразить этот факт, используются представ- ления выражений в форме чертежей или диаграмм. Примеры таких графических схем (графов) представлены ниже: _ „ п-арный оператор Бинарный оператор / i у if 't2 il i2 .... trt Графы такого типа получили название деревьев. Они хоро- шо соответствуют нашим зрительным представлениям, напри-
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 45 записи символов в том по- log х Рис. 2.106. Представление выраже- ния (Т) в виде дерева. ценность представления опреде- мер, о таких выражениях, как выражение (Т), граф которого представлен на рис. 2.106. Следует отметить тот факт, что такая форма записи содер- жит и три другие формы записи: • префиксная форма выявляется при просмотре дерева сверху вниз и слева направо 1 рядке, в котором они при этом встречаются; • постфиксная форма об- разуется при просмотре дерева в последовательности, обрат- ной предыдущей; • инфиксная скобочная форма записи образуется при проекции дерева на горизон- тальную ось, причем симво- лы каждого последующего уровня заключаются в скобки. Как уже отмечалось выше, ляется тем, насколько удобно его обрабатывать. В математике основными процедурами обработки являются следующие: под- становка одного терма вместо другого, группировка (объедине- ние) двух термов, удаление терма. Все эти операции соответствуют очень простым операциям с соответствующим деревом, построенным для данного выражения, перемещению (перестановке) какой-либо ветви, локальной модификации тер- минальных символов — листьев, удалению какой-то ветви. Вме- сто этого при обычной инфиксной записи мы переписываем вручную построчно все выражение целиком. 2.9.4. Машинное представление выражений Память ЭВМ характеризуется большим объемом и высокой скоростью обращения к ней, что позволяет избежать ограниче- ний, присущих возможностям человека, передав ЭВМ обработку структур типа дерева. При этом каждому символу какого- либо выражения соответствуют три определяющие его характе- ристики: собственно имя символа, имя символа-“сына”, распо- ложенного слева от основного символа, и имя символа-“брата”, расположенного справа. “Сыновьями” являются первые симво- лы соответствующих термов. Множество имен символов выра- жения последовательно образует столбец таблицы S, множе- ство имен “сыновей” дает столбец G таблицы, а множество имен “братьев” — столбец D. Все три столбца, объединенные
46 ГЛАВА 2 в таблицу, охватывают все множество выражений, предназна- ченных для обработки заданной программой, причем их количе- ство может быть весьма значительным. Идея машинного пред- ставления выражений иллюстрируется рис. 2.10в. Надо отметить, что представленные на рис. 2.10в элементы а и b сами могут быть деревьями. Поэтому соответствующие им элементы столбцов G и D не есть сами а и Ь, а являются лишь ссылками (их называют указателями или индексами) на места, где находятся а и Ь. Оператор G Оператор а ь Рис. 2.10в. Машинное представление выражения (Т). Если соответствующие элементы столбцов G и D на уровнях а и & не пусты, они позволяют продолжить просмотр дерева. Терминальные вершины дерева или листья, являющиеся пе- ременными или константами, не имеют “сыновей”. В этом слу- чае соответствующее значение G равно пустому символу 0. Таким образом, для данного индекса i имеем S (i) = имя символа; G(i) = индекс “сына” слева от s(i) в столбце 5; D[i) = индекс “брата” справа от s(i) в столбце S. При такой форме записи ничто не обязывает к тому, чтобы символы, следующие друг за другом, в каком-то выражении вновь встречались в порядке возрастания индексов, так как на самом деле единственно важным является просмотр выраже- ния, задаваемый столбцами G и D. Множество столбцов таблиц S, G, D образует списковую структуру, которая удобна для обработки символов на ЭВМ. Уже встречавшееся нам выражение (Т) log (z/ +Vi/2 —б/sin х ) представлено на рис. 2.11 в виде списка. Замечания 1. Само выражение маркируется заголовком списка, т. е. ин- дексом его первого символа в системе S, G, D. Следовательно, в нашем примере выражение (Т) будет обозначено числом 112. 2. Чаще всего в столбце S содержится на самом деле не имя символа, а индекс, который отсылает к специальному ма- шинному словарю, используемому программой. 3. Такое представление удобно, если приходится работать с операторами, степень которых (порядок оператора) выше двух, и с операторами переменной степени. Например, оператор + может быть записан как -)-xyzt вместо х + у + z + t.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 47 112 log 113 0 113 + 119 0 119 У 0 121 120 * 140 218 121 135 0 135 — 136 0 136 255 137 137 / 138 0 138 ь 0 139 139 sin 140 0 140 X 0 0 255 У 0 256 256 2 0 0 431 t 433 0 432 — 431 0 433 / 434 0 434 л 0 435 435 4 0 0 Рис. 2.11. Списковое представление выражения (7).
48 ГЛАВА 2 4. При использовании рассматриваемого представления вы- полнение фундаментальной операции замещения переменной термом (операции подстановки) существенно облегчается. На- пример, допустим, что в выражении (Т) нужно заменить х на (I — п/4). Последний терм уже присутствует в списке, пред- ставленном на рис. 2.11, например, с индексом 432. В этом слу- чае для выполнения подстановки достаточно изменить номер слева от х, т. е. G (139), и положить G (139) =432. В этом случае указатель 140 становится ненужным, так как он не соот- ветствует никакому элементу в G или D. 5. Не запрещается нескольким различным указателям номе- ров соответствовать одному и тому же элементу списка, но это тем не менее не рекомендуется. Например, если у должно быть в свою очередь заменено на (/— л/4), желательно повторно записать этот терм, чтобы отдельно выполнить, две подстановки у в (Т), так как необязательно, чтобы последующая обработка замещаемых х и у была бы идентичной. 6. Иногда списки забиваются узлами, ставшими ненужными, поэтому для помещения в них новых триплетов предварительно запускают программу-чистильщика — “сборщик мусора”. 2.10. Использование графических моделей в области искусственного интеллекта В искусственном интеллекте интересуются автоматической обработкой информации, связанной с такими ситуациями, для которых неизвестен заранее алгоритм решения. В данной книге особое внимание уделено трем областям приложения методов искусственного интеллекта: автоматическому доказательству теорем; машинному решению задач; пониманию машиной фраз естественного языка. Особый интерес при этом вызывают спо- собы представления и использования знаний. Ведь если какое- то поведение и заслуживает наименования “разумного”, то лишь потому, что при этом используются гибкие представления, обобщенные схемы, разумные абстракции, точно отражающие окружающий нас мир. 2.10.1. Представление знаний при автоматическом доказательстве теорем В математике, как и в других областях, мы встречаемся с двумя уровнями представлений. К первому уровню относится представление объектов, с которыми производятся те или иные манипуляции (математические понятия, формулы, выражения). Ко второму уровню относится представление знаний об этих объектах (отношения, теоремы, методы доказательства).
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 49 Рассмотрим представление объектов, например, в геометрии. В ней фундаментальную роль играют представления объектов в виде геометрических фигур. Программы, доказывающие тео- ремы в планиметрии, реализуют в машине с помощью графов наши обычные построения, проводимые с помощью циркуля и линейки. В представлении знаний существенным является то, о чем не говорится в учебниках по математике и на лекциях, а именно Рис. 2.12. Роль представления в математике. каким образом и как находят доказательство. На самом деле способ действий математика включает три различные фазы (Пастр, Пойа, Мериалдо): 1) понять теорему, заданную на формальном языке, т. е. перевести ее в некоторое внутреннее представление; 2) доказать теорему в этом внутреннем пред- ставлении, используя для этого все накопленные и адаптирован- ные к этому внутреннему представлению знания; 3) перевести найденное еще неполное доказательство в строгое математиче- ское доказательство, вновь введя символическую формализацию обычного математического языка. Роль представления в мате- матике графически иллюстрируется рис. 2.12. Прежде чем пере- ходить к примерам доказательств, отметим роль, которую иг- рает в доказательстве теорем “хороший рисунок”. Роль рисунка, чертежа, правильно отражающего условия теоремы, определяется тем, что, он представляет собой прежде всего квинтэссенцию используемой информации, отражает наи- более существенные ее аспекты, связанные с доказательством. Так, например, два элемента х и у могут быть связаны в усло- вии теоремы многочисленными бинарными отношениями ^2, ..., Rk. На схеме, приведенной ниже,
50 ГЛАВА 2 дается графическое представление записи: “хВду А xR^y А... .../\xRky" (Банди, Пастр). При представлении простых алго- ритмов обработки графические схемы могут быть использованы для эффективного отображения последовательности выводов (дедукций). Для транзитивного бинарного отношения R, напри- мер = или с или е, использование графического представле- ния позволяет перевести выражение xRy A yRz в форму х у г, из которой непосредственно получается х z. При этом для получения доказательства в более компактной форме зрительно “очевидные” этапы могут быть опущены. Ис- пользование при доказательстве чертежа или рисунка часто по- зволяет отсекать ложные подцели. Если какое-либо свойство не находит подтверждения на чертеже, оно наверняка является ложным, и бесполезно терять время на попытку установить его. Более того, графическое представление помогает открытию. Если какое-то свойство проверено на. чертеже, можно предуга- дать доказательство соответствующей теоремы. Мы все исполь- зуем этот способ при геометрических доказательствах. Чертеж полезен при определении симметрии переменных и является по- мощником в непосредственном выявлении эквивалентных ситуа- ций. Кроме того, наличие чертежа позволяет легко вводить в случае необходимости новые удобные элементы доказательства что широко используется в геометрии. Отметим в заключение, что графические представления в виде чертежей, рисунков, схем и связанные с ними алгоритмы обработки информации позволяют в удобной форме получить представление о структурах связанных с ними концепций, т. е. об их семантике, тогда как перечисление их формальных свойств, что обычно характерно для учебников и монографий, описывает только их синтаксис. Рассмотрим несколько примеров графических представлений. На рис. 2.13, а и б приведено представление множеств в топо- логии (Мериалдо). Точки, обозначенные на рисунках цифрами, называются атомами. Каждый атом является представителем, подмножества, которому он принадлежит. Если атом соответст- вует пустому подмножеству, он удаляется. Таким образом, от- ношения принадлежности, включения, равенства представ- ляются и запоминаются в сжатом виде. Кроме того, по диаграммам Венна легко составить простые алгоритмы, кото- рые, основываясь на этом представлении, позволяют добавлять множество, получать пересечение множеств, приравнивать их, проверять правильность включения, определять дополнение множества. Так, утверждение, что множество В включено в множество А тогда и только тогда, когда для каждого ребра, связываю-
ПРЕДСТАВЛЕНИЕ ЗНАНИИ 51 щего вершину В с атомом i, существует ребро, связывающее . также и вершину А с атомом I, представлено на рис. 2.13,6. Теперь рассмотрим теорему Т1, но прежде сделаем некото- рые определения: запись А обозначает замыкание множества А Рис. 2.13. Графические представления множества в топологии (а) и машин- ное представление диаграмм Венна (б). (наименьшее замкнутое множество, содержащее множество А), а запись А* обозначает границу множества А(А* — Ап[А). Теорема Т1: А * = (А— А)11([АПА). Программа при доказательстве теоремы использует граф, оперируя, таким образом, только множествами. Все множества, используемые при этом, построены в соответствии с заданными Рис. 2.14. Построение множеств [А и [А. определениями. Например, построение множеств [Л и [А пока- зано на рис. 2.14. Затем программа конструирует множество А* = Ап[А, пусть на рис. 2.14 это атомы 2 и 4. Аналогичным образом А — А == {2} и [А П А = {4}, что и доказывает теорему. Конечно, программа не испытывает затруднений с доказа- тельством, что может случиться с человеком при увеличении числа имеющихся множеств. Это связано С тем, что все отно- шения между множествами отражены в графе и это значитель- но упрощает доказательство. Более сотни теорем из области
52 ГЛАВА 2 теории множеств и топологии были доказаны этой программой за время ~ 1 с на ЭВМ типа ИБМ 4331. Теперь рассмотрим пример из области геометрии (Buthion, 1979). “Задана окружность (С) и две точки А и В вне окруж- ности. Построить прямую (D), проходящую через точку А, ко- в точках С и D, находящихся на равных расстояниях от за- данной точки В”. Для нас практически невозможно ре- шить эту задачу, не построив чертеж. Мы предполагаем, что задача решена и строим соот- ветствующий чертеж, как по- казано на рис. 2.15. Програм- ма будет делать то же самое. Она называет и строит необхо- димые элементы: прямую (D), находит точку I — середину от- резка CD. На самом деле в программе чертеж представ- ляется в виде таблицы, где на- торая пересечет окружность (С) Рис. 2.15. Пример задачи с геомет- рическим построением. ходятся имена элементов, отражена их сущность, их “степень свободы”, их возможные “представления”. Степень свободы элемента есть скаляр, который показывает, является ли эле- мент полностью известным, частично известным (здесь это пря- мая (D), которая должна пройти через точку Л) или совсем неизвестным. Представителями прямой являются все точки, принадлежащие ей. В начале решения строка таблицы будет выглядеть так (А) Прямая 1 В, I (Имя) (Сущность) (Степень свободы) (Представители) Теперь задача заключается в том, чтобы полностью определить (D). Программа рассматривает равнобедренные треугольники COD и BCD. В этих равнобедренных (по построению) треуголь- никах, имеющих общее основание — хорду CD, отрезки 01 и В1 являются медианами и высотами, пересекающими хорду CD в одной и той же точке / под прямым углом, принадлежащей отрезку ВО, являющемуся частью прямой (ДА'). Таким обра- зом, задача решена. В таблице программа отражает этот факт с помощью следующей строки: (А) Прямая О (А'), В, I, О (Имя) (Сущность) (Степень свободы) (Представители)
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 53 Теперь рассмотрим пример на свойства функций (D. Pastre, 1978). Около 15Q теорем элементарной теории множеств об об- разах и прообразах, функциях, конгруэнтностях, отношениях порядка, порядковых числах были доказаны программой DATE, которая работала почти как математик, и, в частности, ею была доказана приводимая ниже теорема Т2. Теорема Т2. Пусть имеются три отображения f; А -> В, g.B-^C, h:C-+A. Если из трех функций k\~h<>g°f, k2~ Рис. 2.16. Пример графического построения, используемого программой DATE для доказательства теоремы Т2. = fohog, k3 = g °f °h две какие-либо функции являются сюръ- ективными, а третья — инъективной, то f, g и h являются биек- тивными. Программа в процессе этого доказательства Должна, в ча- стности, показать, что если есть инъекция и если /г2 и k3 — сюръекции, то функция h является сюръекцией. Чтобы выпол- нить это доказательство (оно самое трудное среди шести от- дельных доказательств, составляющих доказательство теоремы Т2 в целом), программа использует чертеж, приведенный на рис. 2.16. Отправляясь от какого-то элемента Xi, принадлежащего мно- жеству А, нужно отыскать элемент х, принадлежащий множе- ству С, такой, что h(x) = Х[. Программа, используя чертеж, проводит построение точек х2, х3, х4, таких, что х2 = f(xi), х3 — = g(x2), х4 = h{x3). Известно, что k3 = g°f ° h, является сюръ- екцией и, следовательно, существует элемент х3 из множества С такой, что k3(x5) = х3. Затем программа DATE строит точки х6 и X?, связанные с точкой х3 соотношениями x3 — h(xs) и X7=f(x6).
54 ГЛАВА 2 Теперь из построения следует, что, с одной стороны, g(x7) = х3, а с другой стороны, &i(x6j =£i(xi) = х4. Однако так как kx по предположению является инъекцией, следова- тельно, обе точки с необходимостью совпадают (точки Xi и Хб). Наконец, строится точка Х5, удовлетворяющая соотношению /i(x5) = Xi, что и требовалось доказать. Описанные выше три примера показывают различные роли, которые играют графические представления при разумных рас- суждениях, и особенно то, как их использование дает возмож- ность ввести естественным образом новые объекты. 2.10.2. Графические представления в решении задач Общим методом решения задач является разбиение задачи на подзадачи (метод сведения к подзадачам), которые совмест- но удовлетворяют требуемым условиям. Задача считается ре- шенной, когда каждая из подзадач в отдельности решена. Од- нако для решения отдельной подзадачи, может быть использо- вано множество методов, причем каждый из них порождает Узел И SB2 SB.1 SBn Узел ИЛИ —- SB11 SB12 SB1p Рис. 2.17а. Схема сведения задачи к подзадачам. новую подзадачу. Поэтому достаточно решить какую-нибудь одну из этих новых подзадач, чтобы решить и ту подзадачу, ко- торая их породила. Этот процесс имеет типичную древовидную структуру, и в этом случае принято говорить о дереве И—ИЛИ (оно показано на рис. 2.17а). Эта схема позволяет наглядно представить процесс эффективного поиска решения человеком или машиной. В предельном случае (идеальном, но редко встре- чающемся) дерево вырождается в единственную ветвь, и в этом случае поиск становится линейным, без проверок других ветвей. В этом случае говорят об алгоритме. Представления объектов в виде графов используются, на- пример, в исследовании операций, где рассматриваемые объек- ты по своей природе являются графами, например в задаче
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 55 отыскания оптимального способа доставки почты во Франции, которая связана с наличием реальной почтовой сети. При этом исходными данными задачи являются графы железнодорожной, Рис. 2.176. Граф последовательности работ. Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно, автомобильной или авиационной связи между селениями. Дру- гим примером может служить задача минимизации общего вре- мени выполнения какого-то множества работ при условии, что наложены ограничения относительно последовательности их вы- полнения во времени. В этом случае удобно использовать ори- ентированные графы (например, в методе ПЕРТ), которые от- ражают эти ограничения. На рис. 2.176 представлен граф (S1), показывающий, что работа 7\ продолжительностью d\ должна быть завершена до того, как начнет выполняться работа Т2. На рис. 2.17в показан граф (S2), означающий, что работы Т\ и Т2 являются взаимно исключающими и вместе не могут быть вы- полнены. Тут проявляется существенное свойство любого мате- матического моделирования: одна и та же модель может пред- ставлять различные задачи. Задачи, где присутствуют только ограничения типа (S2), эквивалентны задаче о раскраске гра- фа. Задачи, где имеются только ограничения типа (S1), экви- валентны отысканию пути максимальной длины на графе. 2.10.3. Графические представления в задачах на понимание естественного языка Первые исследования проблемы понимания естественного языка основывались на синтаксическом анализе предложений и последовательном изучении слов. В качестве основной цели при этом выдвигались автоматический перевод и автоматическая обработка документов. Сегодня исследователи убеждены, что , этого недостаточно и для понимания текста программы необ- ходимо обеспечивать семантической информацией типа той, что находится в словарях, а также значительным объемом
56 ГЛАВА 2 информации прагматического типа, описывающей мир, в кото- ром мы живем, наше поведение в нем и наши поступки. Первые контекстно-свободные грамматики Хомского были легко представимы с помощью правил переписывания. Вскоре появилась необходимость в разрешении относительных дву- смысленностей, например в местоимениях, и во временной при- остановке процесса анализа фразы на данном уровне, чтобы G12 Величина G11 Значение Рис. 2.18а. Граф считывания данных. перейти на низший уровень анализа и затем снова вернуться к прерванному анализу. Графы переходов или ATN (Augmented Transition Net- works — расширенные сети переходов) в настоящее время обычно используются для одновременного синтаксического и семантического анализа предложений. Вершины этих графов представляют собой слова из одного и того же^семантического семейства, либо графы, из чего и вытекает существенно рекур- сивный характер такого представления. Так, программа Б. Ши- шечи (В. Chichetchi, These Zeme cycle, Paris, 1979) понимает за- дачи по электричеству, используя транзитивные графы при счи- тывании исходных данных (рис. 2.18а). Например, программа распознает такую фразу: «Частота напряжения V составляет 50 Гц». Очевидно, что определенные слова важны для понима- ния, а другие могут быть опущены в тексте (например, герц), без изменения при этом результата анализа фразы. Любая фраза, соответствующая определенному пути на этом графе, за- ранее пригодна. При этом элемент dll сам является графом различных возможных описаний характеристик электрического тока и представлен на рис. 2.186. Такой граф позволяет авто- матически распознавать, например, не только предложение “напряжение V равно 10 В”, но и фразу: “Эффективное значе- ние переменной разности потенциалов составляет 80 В и сила тока — 5 А”. По мере распознавания текста такой системой он переводится во внутреннее представление, которое обобщает все специфические сведения, содержащиеся в обрабатываемом тексте. Это внутреннее представление часто называют «семан- тической сетью» (Симмонс, Кордье, Лопес). Сеть, которая вна- чале пуста, непрерывно увеличивается, модифицируется, кор- ректируется в процессе анализа. Она может содержать как точные сведения, так и сведения просто вероятные или услов-
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 57 W1 Рис. 2.186. Граф описаний характеристик электрического тока. Рис. 2.18в. Семантическая сеть с разбиениями. ные. На рис. 2.18в дан пример машинного представления транс- форматора в программе (М. Lopez, 1979). Определенные вершины графа сгруппированы в блоки, которые выделены рамками, объединяющими концептуальные совокуп- ности или связанные подмножества сведений. 2.11. Изменение представлений Поиск хорошего представления в ходе решения задачи яв- ляется почти всегда необходимым этапом на пути к решению. j-Существует множество задач, когда мы пользуемся прежде щсего зрением и руками для выработки единственного “сиюми- нутного” (непосредственного) представления об окружающем мире, таком, каким мы его воспринимаем непосредственно в данный момент. В этом случае нет необходимости ни в какой абстрактной модели задачи, но в свою очередь это ведет к бес- полезным попыткам и поискам “на ощупь” обобщения идеи, ре- шения, которое могло бы быть использовано при решении дру- гих задач.
58 ГЛАВА 2 Задача о четырех шахматных конях Шахматная доска и передвижение фигур на ней зачаровы- вало многих авторов. На основе шахмат созданы многочислен- ные головоломки. В данном случае речь идет о том, чтобы за минимальное число ходов изменить на противоположное поло- жение двух черных и двух белых коней. В задаче используется шахматная доска размером 3X3. Исходная позиция задачи о Рис. 2.19а. Исходная позиция в за- даче о четырех конях. . четырех конях представлена на рис. 2.19а. Кони “ходят” (перемещаются по доске) при- вычным образом: на одно поле горизонтально и на два — вер- тикально за ход либо, наоборот, на два поля горизонтально и на одно — вертикально. При знакомстве с задачей нашим первым побуждением является сделать несколько попыток по перемещению ко- ней на настоящей ша-хматной доске, но интуитивно мы пони- маем, что имеется слишком много вариантов получения конеч- ной позиции, причем при таком подходе плохо используется симметрия, присущая этой задаче. Пытаясь промоделировать. ния, первое о чем мы вспоминаем, это декартова система коор- динат. Однако такое представление имеет существенный недо- статок, связанный с трудностью записи перемещения фигур на величины, равные, большие или меньшие единицы или большие или меньшие двух. Однако такие перемещения очень важны в нашем случае и именно они-то и должны быть представлены в удобной форме. Сама по себе шахматная доска почти не иг- рает в задаче существенной роли, и ее физическое представле- ние является только внешней поддержкой решения задачи, так как на самом деле единственно существенным является учет, связей между ходами, сделанными при переходе от позиции к позиции (вспомним, например, кубик Рубика). Отсюда выте- кает, что следует дать имена, т. е. свои обозначения различным
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 59 позициям, как, например, на рис. 2.196. Теперь мы знаем, что черный конь может переместиться на поле А за один ход с поля Н или поля F. В свою очередь на поле Н конь сможет попасть либо с того же поля А, либо с поля С, на поле С — с поля D, на него — с поля I, на поле I — с поля В, на него — с поля G и, наконец, на G — с поля F, начиная с которого конь сможет вновь попасть на поле А. Этот маршрут в виде окружности, проходящей в Рис. 2.20. Путь коня с поля А. Рис. 2.21. Решение задачи о четырех конях. указанном порядке через все позиции, изображен на рис. 2.20. Представление, получаемое с помощью этой диаграммы, нагляд- но и удобно для использования. На рисунке не представлено поле Е, но это соответствует реальной ситуации, так как данное поле не участвует в задаче ни при каком ходе коня ни в од- ной позиции оно недостижимо. Все другие ситуации отражены, и это позволяет использовать ту же кольцевую диаграмму и для других коней. Новая формулировка задачи теперь состоит в том, что нуж- но так переместить по этой окружности черных коней на Л и С, а белых коней на G и 1, чтобы за один ход конь перемещался на одну позицию справа или слева по окружности. Решение за- дачи теперь практически очевидно: достаточно лишь повернуть на полоборота по окружности весь ансамбль фигур так, чтобы С попало на G, А — на /, G — на Си С — на А. Это вращение, которое соответствует четырем ходам каждого коня, или шест- надцати ходам всех фигур, дает решение задачи — минималь- ное число ходов для изменения исходной позиции на противо- положную (рис. 2.21). 2.12. Язык Лисп В задачах искусственного интеллекта возможность машин- ной манипуляции с символами настолько важна, что уже в 1956 г. Ньюэлл, Шоу и Саймон разработали язык программиро-
60 ГЛАВА 2 вания ИПЛ, с помощью которого можно было обрабатывать списки. ИПЛ является одним из предшественников языка про- граммирования Лисп (LISP — List Programming), разработан- ного Дж. Маккарти в 1960 г. Среди языков программирования Лисп занимает особое ме- сто. Наиболее популярным он стал в среде специалистов по ис- кусственному интеллекту в США, где в качестве стандартного получил распространение его диалект COMMONLISP [G. L. Steel, 1984]. К сожалению, этот язык пока не получил широкого распро- странения в информатике в целом '). К его достоинствам спе- циалисты относят точность, определенность, лаконичность и удобство в работе. Лисп — хорошее средство для представления древовидных структур (о которых уже говорилось выше), ко- торые в свою очередь служат основой символьной обработки, составляющей базу большинства программ в области искусст- венного интеллекта. Именно поэтому подавляющее большин- ство программ искусственного интеллекта составлено на языке Лисп. Следует однако отметить, что в настоящее время инструмен- тарием для обработки списков обладают и такие развитые язы- ки программирования, как Фортран, ПЛ/1, Паскаль, Ада и др. 2.12.1. Основные элементы языка Лисп Синтаксис Выражения языка Лисп называются также S-выражениями. Такое S-выражение представляет собой либо атом, лйбо список. Атом представляется каким-либо алфавитно-цифровым име- нем (т. е. в сущности числом). Список представляет собой не- которую внутреннюю часть, заключенную в скобки. Синтаксис языка Лисп в форме Бэкуса — Наура определя- ется следующим образом: (S-выражение) :=(атом) :=(список) • (список) := ((внутренняя часть)) ° В нашей стране с Лиспом знаком лишь довольно узкий круг специа- листов, работающих в области искусственного интеллекта. Это отчасти объ- ясняется отсутствием хороших современных учебников. Издательство «Мир» готовит перевод учебного руководства по одному из наиболее распростра- ненных в настоящее время диалектов языка Лисп — COMMONLISP, исполь- зуемому как на микроЭВМ, так и на больших ЭВМ и рабочих станциях. — Прим. ред.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 61 (внутренняя часть) :=(пусто) := (3-выражение) (S-выражение)(внутренняя часть) (пусто) := (атом) цепочка алфавитно-цифровых символов без пробелов или специальных символов (,),;, Таким образом, всякое S-выражение представляет собой на- бор атомов и списков, например: ((КОРОЛЬ ФЕРЗЬ) ((ЛАДЬЯ) (СЛОН)) ПЕШКА). Элементарные функции Как и во всех языках программирования, некоторые предва- рительно определенные атомы являются функциями, аргумен- ты которых представляют собой следующие за ними S-выраже- ния. В свою очередь аргумент сам может быть функцией, кото- рую нужно вычислить. При этом надо иметь возможность определить, что представляет собой данный элемент — значение выражения L или же символьное имя L какого-то 3-выражения. В первом случае перед выражением ставится апостроф, напри- мер 'L, или же пишут в развернутой форме: (QUOTE L). Апо- строф запрещает вычисление следующего за ним S-выражения, которое воспринимается программой в этом случае без изме- нений. Для задания выражения используется функция SETQ: (SETQ (атом) '(S-выражение)) ->(S-выражение), где значение S-выражения не вычисляется. Стрелка в данном случае означает “выдать в качестве величины”. В общем слу- чае всякое S-выражение, поступающее в машину, тут же вычис- ляется. Так, например, при использовании апострофа имеем (SETQ G 'F)-+F. Кроме этого, функция SETQ связывает полученный при ее при- менении результат с атомом: G-+-F. Две фундаментальные функции CAR и CDR позволяют осу- ществлять обработку списков, если последние не пусты. Функ- ция CAR определяется следующим образом: (CAR 'Снепустой список>) первое подвыражение списка. Ниже приводятся примеры использования функции CAR: (CAR'(А В С))-> А (CAR'((А) В)(А)
62 ГЛАВА 2 (CAR 'А) -> ошибка; А не есть список. (CAR'( )) ошибка или NIL (в зависимости от используе- мого диалекта Лиспа). Функция CDR определяется следующим образом: (CDR 'Снепустой список>)-> список, составленный из того дополнения из внутренней части, которое осталось бы при при- менении к исходному списку функции CAR. Примеры использования функции CDR: (CDR '(А В С)) -+ (В С) (CDR'((А) В)-> (В) (CDR'A)—>( ); по соглашению (CAR (CDR' (А В С)) -------* (В С) ------------------+ В Не совсем обычные обозначения функций CAR и CDR сло- жились исторически в процессе первой реализации языка Лисп на ЭВМ типа ИБМ 7094, они являлись относительными адре- сами регистра и декремента регистра. Наличие в языке этих двух функций и разнообразных их сочетаний является очень удобным при программировании задач искусственного интел- лекта. Для этого, в частности, используются следующие сокра- щенные формы записи: (СADR S) = (CAR (CDR S)) (CADR '(А В C))^ В (CADDAR S) (CAR (CDR (CDR (CAR S)))). В Лиспе имеется функция CONS, действие которой противо- положно действию функций CAR и CDR. Она определяется следующим образом: (CONS (s-выражение) (список)) —> список Пример действия функции CONS: (CONS 'А '(ВС)) ->(А В С). ; Второй аргумент функции CONS может быть пустым списком ( ), который может также обозначаться как NIL. Например: (CONS 'A NIL) -> (А). . В общем случае, каково бы ни было выражение S, имеем (CONS (CARS) (CDRS)) = S.
ПРЕДСТАВЛЕНИЕ ЗНАНИИ 63 Ниже рассмотрено обычное машинное представление объек- тов и алгоритм вычисления (оценивания) значений выражений в Лиспе. 2.12.2. Машинное представление и оценивание выражений 1 Для интерпретатора программ на языке Лисп ячейки памя- ти ЭВМ сгруппированы попарно, и каждая из них содержит указатель, который на рисунках изображается стрелкой. Рис. 2.23. Пример графа. Н I 12 I | ГН—Г | .1 * I Г~|~Т~ф~~! >г Г >3 А В Рис. 2.24. На рис. 2.22, а показана некоторая ситуация, а на рис. 2.22, б соответствующая ей физическая реализация. Два указателя на схеме играют роль первого указателя-“сына” и первого указа- теля-“брата”. Например, команда (SETQ L1 '(АВ)) создает структуру, показанную на рис. 2.23. При этом используются следующие соглашения: отсутствие указателя обозначается символом (/>; атомы обрабатываются отдельно (для указания на них используется специальный маркер).
64 ГЛАВА 2 Рис. 2.25. d Рис. 2.26. L8 L9 L7 Рис. 2.27. L4 = ((TOUT (EST DANS) L6 L5 (TOUT) (ЕТ REC IPROQUEMENT)) Рис. 2.28. )5 ( (TOUT 1 2 (EST CANS) (TOUT) ) 3 3 4 (ЕТ RECIPROQUEMENT) ) 4 2 5 5 1 некоторого 5-выражения есть то, на что указывает CAR первый “сын”. CDR некоторого первый “брат”, взятый из внутренней части выражения и за- ключенный в скобки. S-выражения есть то, на что указывает
ПРЕДСТАВЛЕНИЕ ЗНАНИИ 65 Чтобы определить выражение по его схематическому пред- ставлению, нужно просмотреть представление, следуя указате- лям, расположенным слева, на наибольшую глубину и затем по правым указателям (внешний просмотр). При записи выраже- ния каждой стрелке, не заканчивающейся на атоме, соответст- вует открывающая сквбка, а каждому символу </> — закрываю- щая скобка и каждому атому — сам атом. Таким образом, при- веденная на рис. 2.24 схема соответствует списку L2: ((A) (В)). Кроме того, интерпретатор постоянно ведет список сво- бодных ячеек, предназначенных для заполнения. На рис; 2.25 это представлено схематически, где головная ячейка обозначена символом d. Так, например, задание списка (SETQ L3 (CONS 'С L2)) соответствует перемещению указателя d от предыдущей задан- ной отметки, если атом С не существует, и его образованию либо помещению указателя “брата” С в голову списка 2 (рис. 2.26). Схема образования списка L3 представлена на рис. 2.27, где L3 —это (С (А) (В)). Другой пример представления списка показан на схеме, со- ответствующей списку L4, включающему списки L5, L6, L7, L8, L9 (рис. 2.28). Вычисление значения списка Ниже приведен пример вычисления значения в языке Лисп с помощью функции EVAL, когда используется внутреннее представление в Лиспе, в котором скобкй не применяются. В языке Лисп выполнение какой-либо команды (которая сама является выражением) означает просто вычисление значения соответствующего входного выражения. Оно просматривается программой в последовательности, задаваемой указателями- “сыновьями”, а затем учитывается последний из встреченных указателей-“братьев”. После этого учитываются указатели- сыновья”, связанные с этим последним, и так далее, пока не получается окончательное значение выражения. Затем вычисле- ние повторяется снова, охватывая выражения более высокого уровня, и так до тех пор, пока не будет определено значение всего исходного выражения. Те части всего выражения, которые ожидают (в процессе всего оценивания) вычисления значений их аргументов, называются иногда “квазарами”. Процедура EVAL(S), где S-выражение языка Лисп во внут- реннем представлении. EVAL(S) Если S есть атом ТОГДА возврат <-значение S 9 Ж.-Л. Лорьер
66 ГЛАВА 2 ИНАЧЕ ЕСЛИ Sl= QUOTE ТОГДА возврат *-S2 ИНАЧЕ S1 с необходимостью есть функция иначе ошибка ЕСЛИ 31 указывает на специальную обработку: ; не оценивать определенные аргументы ; и/или принять определенное число ; аргументов ; принять определенное число переменных, например, для AND, ; RPLACA... ТОГДА выполнить эту обработку ИНАЧЕ применить EVAL ко всем элементам S2 последовательно и затем рекурсивно использовать их найденные значения. Окончательно: возврат < SI (EVAL (S2)) КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ Здесь учитывается, что 'L эквивалентно выражению (QUOTE L). 51 означает первого “сына” для выражения 5, а 52 — элементы выражения 3, представляющие собой множе- ство “братьев” выражения 51. Необходимо отметить, что в языке Лисп любая программа сама по себе является S-выражением. В частности, в Лиспе данные имеют ту же структуру, что и программы, и также яв- ляются выражениями. Результат выполнения программы в Ли- спе также является программой. Соответственно этому 5-выра- жение в Лиспе является программой. Это свойство языка Лисп позволяет создавать программы, которые могут перестраивать сами себя. Так как для функции EVAL целые (например, —4) и веще- ственные (например, 3.1416) числа, а также пустой список NIL и символ Т (истина) являются одновременно их собствен- ными значениями, то перед ними апостроф не ставится. • Примеры вычисления значений выражений: (CAR '(А))-*А (CDR '(A))->NIL (CAR 'А) -> ошибка
ПРЕДСТАВЛЕНИЕ ЗНАНИИ 67 (CDR 'А)~>NIL ; по соглашению. (CAR '((А)))-*(А) (CDR '(А (ВС))) -> ((ВС)) ; внимание! (CAR '(CDR (А ВС))) -> CDR ; апостроф запрещает ; вычисление. (CAR (CDR (А В С))) ^-ошибка ; А должно быть ; функцией. Функция EVAL может быть применена дважды: (SETQ А 'В)->В (SETQ В'С)>С А -+В В (EVAL А) ^С ; далее более сложные ; случаи. (CAR (CAR (CDR (CDR '((А В) C (D E) ) ) ) ) ) 1 2 3 4 56 66654321 квазар аргумент <--------- ; удаляются скобки, удаляется S2 (С (D Е)) ---------------------------с-------------------------- ; удаляются скобки, возврат S1 ((D Е)) ----------------------------<- ; аналогично (D Е) ♦ О (CAR (CAR (CDR '(CDR ((А В) С ( D Е ) ) ) ) ) ) ; mo;.3toe самое выражение, но с измененным положе- ; нием апострофа, так что последнее СОК здесь не ; вычисляется -------<----------s-- ' (((А В) С (D Е))> -*• (А ((А 8) С (D Е) В) (CAR (CAR '(CDR (CDR ((А В) C (D E))))>) ; теперь выражение после алостродоа имеет ; форму (СОК х) и к нему применяют < ®R -> ошибка, так как функция САК определена толоко для списка. Сдвигая апостроф еще на позицию, Имеем (CAR '(CAR (CDR (CDR (А В) C (D £))))) -> CAR. з*
68 ГЛАВА 2 2.12.3. Другие функции Лиспа Предикаты (принимают значения Т или NIL) (АТОМ (S-выражение)) -> Т, если и только если значение S- выражения есть атом или имя функции, иначе NIL. Например: (АТОМ 'А) (ATOM NIL) ->Т (ATOM 'CAR) -> Т (АТОМ '(А В))-* NIL (NULL (S-выражение))-*?’, если и только если значение выражения есть NIL, иначе NIL. Например: (NULL (CDR '(ATOM))-*?1 (EQUAL (S-выражение 1) (S-выражение 2))-*Г, если и только если значения обоих выражений равны. (EQ (S-выражение 1) (S-выражение 2))->Г, если и только если значения обоих выражений равны. (EQ (S-выражение 1) (выражение 2))-»?’, если и только если значения обоих выражений одинаковы и пред- ставляют один и тот же физический список (т. е. размещены в одном и том же месте памяти). Например: (EQUAL '(А В) '(А В))-*Г; тогда как (EQ '(А В) '(A B))->NIL; так как список (А В) создан дважды, в двух различных местах. (AND (S-выражение)’); указано некоторое число аргументов, которые вычислены слева направо; если при этом встречено NIL, возвращается значение NIL, иначе значение последнего выражения. (OR (S-выражение)’); в отличие от предыдущего, если при просмотре встречается значение, отличающееся от NIL, оно возвращается, иначе NIL. (NOT (S-выражение)) -* Т, если и только если значение выра- жения есть NIL.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 69 Функции Выбор между несколькими возможностями осуществляется в Лиспе с помощью функции COND, которая записывается в виде (COND ((/1) (rl>) (</2> <г2» (</п) (rn)) Символы t указывают на выражения, относящиеся к прове- ряемым условиям, а символы г указывают на выражения, отно- сящиеся к результатам. Значения выражений ti вычисляются в порядке возрастания индексов. При этом, как только встре- чается какое-то выражение ti со значением, отличающимся от NIL, функция COND вычисляет соответствующее значение ri и возвращает значение последнего выражения из ri. Если все ti имеют значение NIL, оно является окончательным значением COND. Некоторые ri могут отсутствовать. В этом случае, если ti является первым t, значение которого отличается от NIL, возвращается значение ti. Функции построения списков Две функции APPEND и LIST так же, как и функция CONS, формируют списки. Функция APPEND определяется следующим образом: (APPEND -<список 1> Ссписок 2> ...Ссписок п>) — список, образованный из списков 1, 2, ..., п, из кото- рых удалены скобки первого уровня. Например: (APPEND '(A) NIL '((В) (С))) — (А (В) (С)). Функция LIST определяется следующим образом: (LIST cS-выражение 1> <5-выражение 2> ...<;3-выраже- ние п>)->(В-выражение 1 S-выражение 2 ... S-выражение п). м, В данном случае скобки остаются. Кроме того, в отличие от ' функции APPEND эта функция позволяет использовать в каче- Э1стве аргументов также и атомы, например: к (LIST '(A) NIL '((В) О)-* ((A) NIL ((В) (С))) (LIST 'A NIL) ->(А NIL). В следующих разделах будут приведены синтаксические оп- ределения еще нескольких функций, позволяющих строить спи- ски в языке Лисп.
70 ГЛАВА 2 Функция LENGTH: (LENGTH <5-выражение>)-> число “братьев” первого уров- ня в S-выражении. Например: (LENGTH '((А В) С (£)))-► 3. Функция REVERSE: (REVERSE <3-выражение>) -> строит S-выражение из “братьев” первого уровня исходного выражения в обратном по- рядке. Например: (REVERSE '(А (В С) D))^(D (В С) Л). Функция SUBST (функция подстановки): (SUBST <5-выражение 1> <5-выражение 2> <5-выраже- ние результат замещения выражением 1 всех вхождений выражения 2 в выражение 3. При этом выражение 2 должно быть атомом. Например: (SUBST 'А 'В '(А В С))-^(А А С). Функция MEMBER: (MEMBER (атом) (список))—> NIL, если и только если исход- ный атрм не появляется в качестве “брата” первого уровня в исходном списке. Например: (SETQ М '(А В (С D) Е)) (MEMBER 'F Af)-* NIL (MEMBER 'С M)-> NIL (MEMBER 'В M)^(B (C D) Е) Функция RPLACA: (RPLACA (список) (3-выражение))замещает CAR списка на указанное выражение. Например: (SETQ G '(А В С)) -> (А В С) (RPLACA (CDR G) 'D) -> (D C) Следует отметить, что функция RPLACA производит такое же действие и на исходный список: G (A D С). Функция RPLACD является симметричной по отношению к функции RPLACA. Она воздействует на CDR своего первого аргумента. Числовые функции При записи числовых функций всегда используется форма префиксной польской записи. Ниже приводятся числовые функ- ции, смысл которых очевиден.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 71 (PLUS 2 3)->5; функция может иметь несколько аргументов (PLUS 1 2 3 4 5)—> 15 (DIFFERENCE 5 2)^3 (TIMES 4 5)->20 (QUOTIENT 8 2)->4 (MAX 5 8 7 6) >8 (MIN 5 8 7 6) ->5 (ADD! 6)->7 (SUB1 7) >6 (SQR7’ 16) >4 (EXPT 2 3) >8 (MINUS 3)^-3 (ABC -3)->3 (MAX (MIN 2 4 6) (MAX 3 5 2))->5 (ATOM (PLUS 1 2 так как аргумент, являющийся выражением, имеет значение 6, которое является атомом. Ниже приводятся три предиката с числовыми аргументами. (LESSP AH N2)->T, если и только если АН < А72. (GREATERP А71 N2)-^>T, если и только если N1 > N2. (ZEROP А71)->Г, если и только если 1V1=O. Функция REMAINDER определяется так: (REMAINDER N1 N2) -достаток от деления АН на N2. Если в приведенных выше выражениях А'1 и N2 не являются числовыми, выдается сообщение об ошибке. В Лиспе предус- мотрена возможность проверки того, является ли данное выра- жение числом: £(NUMBERP (S-выражение)) Т, если и только если значение выражения является числом. < Итерации: MAPCAR и APPLY (MAPCAR '(функция) (S-выражение)) — выражение, образо- ванное применением первого аргумента (который должен быть функцией, известной системе) ко всем элементам заданного S- выражения. Например: (MAPCAR 'ADD1' (4 8 3))->(5 9 4). Исходная функция должна быть функцией одного аргумен- та, чтобы была возможность ее соотнесения с “братьями”
72 ГЛАВА 2 первого уровня исходного выражения. (APPLY'(функция) (S-выражение))->здесь исходная функция применяется к указанному выражению. Например: (SETQ А '(4 5 8 1))->(4 5 8 1). (APPLY 'PLUS А)->18. В последнем примере необходимо использовать указанную функцию присваивания, так как без нее проверка функции (PLUS А) даст на выходе ошибку, поскольку PLUS требует числового аргумента. Две описанные выше функции, называемые итерациями, по- зволяют элегантно и просто переносить действия любых функ- ций на элементы списка. 2.12.4 Лямбда-функция. Определения и свойства Определение лямбда-функции Лямбда-запись, предложенная Черчем в 1930 г., позволяет в Лиспе локально использовать какую-либо функцию, не давая ей собственного имени. Лямбда-функция определяется следую- щим образом: ((LAMBDA (X) (S-выражение l)j (S-выражение 2))—«-значе- ние (S-выражения 1), в котором все вхождения X замещены значениями (S-выражения 2>, где X — переменная, S-выраже- ние 1 — тело лямбда-функции, S-выражение 2 — аргумент. Примеры использования лямбда-функций: ((LAMBDA (X) (EQUAL X 'КАРАНДАШ)) 'КАРАНДАШ) -> Т (MAPCAR '(LAMBDA (/) (TIMES I I I)) '(1 2 3 4)-> ->(1 8 27 64). Отметим, что во втором примере обязательным является ис- пользование апострофа перед лямбда-функцией. Свойства, связанные с атомами. Функции PUTPROP и GET Таблицы и индексы не имеют смысла в языке Лисп. Чтобы говорить о некоем свойстве, связанном с каким-то объектом, и о его значении, используют функцию PUTPROP: (PUTPROP (атом 1) (список) (атом 2)). Эта функция “связывает” свойство, выраженное именем атома 2, с объектом, представленным атомом 1, и с конкрет- ными значениями свойства, представленными в исходном спи- ске. Например: (PUTPROP 'ПЬЕР '(ЖАН ЖАК) 'ДЕТИ)-> (ЖАН ЖАК).
ПРЕДСТАВЛЕНИЕ ЗНАНИИ 73 В этом примере рассматриваемая функция физически свя- зывает (с помощью указателей) объект ПЬЕР через свойство ДЕТИ со значениями этого свойства, а именно: детьми Жаном и Жаком. Чтобы узнать, обладает ли объект данным свойством, ис- пользуется функция GET: (GET (атом 1) (атом 2)) значение свойства, задаваемого атомом 2 в точке, определяемой атомом 1, если оно существует; иначе NIL. Например: (GET 'ПЬЕР 'ДЕТИ)-> (ЖАН ЖАК). 2.12.5. Создание новых конструкций в языке Лисп В языке Лисп имеется возможность создавать новые функ- ции. Для этого используется функция DEFUN: (DEFUN <атом> «р1> <р2> ... <рп>) <5-выражение», где атом представляет собой имя функции, которую хотят создать, pi, ..., рп — формальные параметры или связанные перемен- ные, а (S-выражение) представляет собой тело функции. В качестве первых простых примеров построим две уже из- вестные функции, как если бы их в системе не было. (DEFUN LONGUEUR (L) (COND ((NULL L)0) ; если L есть NIL, то 0 (T (ADDГ (LONGUEUR (CDR L)))))) ; иначе добавляется 1 и удаляется CAR. ; так может быть воссоздана функция ; LENGTH —> LONGUEUR; система возвращает имя функции. Также просто задается функция REVERSE, которая изме- няет на обратный порядок следования “братьев” первого I. уровня: Ь (DEFUN REVERSE (S) (COND ((NULL S)S); если L есть NIL, to S (T (APPEND (REVERSE (CDR (S)) (LIST (CAR S))))))) -> REVERSE • Теперь построим функцию UNION — функцию объедине- ния двух множеств, представленных списками, состоящими
74 Г Л Ар A 2 только из атомов: (DEFUN UNION (Е F) ; результат будет помещен в F (COND ((NULL E)F) ((АРР (CAR E)F) (UNION (CDR E) F)) ; если первый элемент e из E уже ; принадлежит F, то продвигаются ; дальше в Е. ; АРР — функция, которую предстоит ; еще построить; ; иначе нужно добавить е к F и ; продолжить аналогично ; предыдущему. (Т (UNION (CDR Е) (CONS (CAR Е) F))))-> UNION Построим функцию двух аргументов АРР-. (DEFUN АРР (А X) ; Атом А имеется в X? (COND ((NULL X) NIL) ; нет, если множество X ; пусто ((EQUAL A (CAR X)) Т) ; да, имеется ; иначе погружаются ; дальше в мно- ; жество X (Г (АРР A (CDR X))))) —>АРР Например: (UNION '(А В С D Е) '(ZUBDY)) -► (Е С A Z U В D Y) • Теперь построим функцию PIMP для определения списка элементов последовательности uit которая задана следующим образом: ( и„/2, если ип четное, M"+1 { иначе Зм„ + 1. . (DEFUN PIMP (и) (PRINT и) ; печатаются последовательные значения (COND ((EQUAL и 1) NIL); останов, если и=1 (ZEROP (REMAINDER и 2)) ; случай ; четного и:
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ 75 (PIMP (QUOTIENT и 2))) (Г (PIMP (ADD1 (TIMES и 3)))))) ->PIMP Например: (PIMP 17)-* 17 52 26 13 40 20 10 5 16 8 4 2 1. • Опишем функцию FILTRE, или “сопоставление с образ- цом”, которая сравнивает две цепочки символов F (по форме) и Е (по содержанию). Эта функция является частным случаем ал- горитма унификации, рассмотренного в гл. 3. Символы из F и Е сопоставляются по одному слева направо. Если они идентичны, процесс продолжается. Однако некоторые символы из F могут быть специальными символами, например +, *, и желательно, чтобы, например, с символом + из F были бы сопоставимы любые символы Е. Тогда функция FILTRE бу- дет давать например, (FILTRE '(А С) '(А В Символом * из F, например,, должно сопоставляться некото- рое число символов из Е, например: (FILTRE (А В С)) Т. Тогда функция FILTRE определяется следующим образом: (DEFUN FILTRE (F Е) (COND ((AND (NULL F) (NULL E)) T) ; F и E пусты ((OR (NULL F) (NULL E)) NIL); одно из мно- ; жеств пусто. ((OR (EQUAL (CAR F) (CAR E) (EQUAL (CAR F)' + )) ; случай ; с символом + (FILTRE (CDR F) (CDR E))) ((EQUAL (CAR F) '*) ; случай с символом * (COND ((FILTRE (CDR F) (CDR E))) ((FILTRE F(CDR E))))) (T NIL))) ; иначе неудача -> FILTRE В последней функции COND части, относящиеся к результа- ту, пусты. В этом случае, как известно, результатом является часть самого теста. В одном случае символ обработан анало- гично символу +, а в другом осуществляется переход в Е к сле- дующему символу, не сдвигаясь в F, и затем вновь происходит обращение к функции FILTRE. Это означает, что * как бы “аб- сорбировала” данный символ. Рассмотрим пример работы
76 ГЛАВА 2 функции FILTRE: (FILTRE ('(* В К + М * Z)'(В А О В А В К L М Y Z))->Т Форма LET позволяет воздействовать на значения иденти- фикаторов, которые затем используются в качестве аргументов выражений. Функция LET помогает отказаться от многократ- ных расчетов одних и тех же величин. Она задается следующим образом: (LET (имя 1 S-выражение 1) (имя 2 S-выражение 2) (имя п S-выражение п)) (выражения)*)—> значения выражений, имена которых были заменены значениями исходных выражений. Ниже дан пример использования LET: (DEFUN PGGD Ml М2) (LET ((M (REMAINDER Ml М2))) (COND ((ZEROP M) М2) (Г (PGCD М2 M)))))) Функции FEXPR и MACRO Функция FEXPR не вычисляет значений своих аргументов. Ее синтаксис задается следующим образом: (DEFUN (имя функции) FEXPR (параметр) (тело)). Ниже дается пример использования этой функции: (DEFUN ПЕЧАТАТЬ FEXPR (Р) (PRINT Р)) -> ПЕЧАТАТЬ (ПЕЧАТАТЬ ЭТУ ФРАЗУ) ->(ЭТУ ФРАЗУ) ->Т. К функциям типа FEXPR относятся функции QUOTE, SETQ, COND. Функция типа MACRO сначала производит интерпретацию тела функции, после чего вычисляется ее значение. Эта функция используется следующим образом: (DEFUN (имя функции) MACRO (посредством) (гело)). В качестве примера рассмотрим построение классической процедуры ЕСЛИ ... ТО ... ИНАЧЕ. При этом в качестве пара- метра будет список: (ЕСЛИ ПРОВЕРКА ДЕЙСТВИЕ 1 ДЕИ-
ПРЕДСТАВЛЕНИЕ ЗНАНИИ 77 СТВИЕ 2). Так как выражения ПРОВЕРКА, ДЕЙСТВИЕ 1, ДЕЙСТВИЕ 2 неизвестны при вызове, используется функция подстановки SUBST, чтобы надлежащим образом ввести эти выражения в функцию COND, значения которой будут вычис- ляться: (DEFUN ЕСЛИ MACRO (. (SUBST (CADR X) (SUBST (CADDR А) (SUBST (CADDDR X) '(COND -»ЕСЛИ ( 'ПРОВЕРКА 'ДЕЙСТВИЕ 1 'ДЕЙСТВИЕ 2 (ПРОВЕРКА ДЕЙСТВИЕ 1) ДЕЙСТВИЕ 2)))))) Выражение (SUBST х у г) производит подстановку х вместо каждого у в выражении z. Отметим, что каждое использование функции SUBST оказывает воздействие на всю последователь- ность действий программы. Определенная выше функция MACRO сама производит трансформацию своей собственной программы. 2.13. Графы 1 Обобщение символического представления выражений в виде деревьев приводит к понятию графа. Граф G есть множе- ство объектов х (называемых вершинами), на котором задано Рис. 2.29. Пример графа. бинарное отношение. Это множество обозначается следующим образом: G = (X, R). Отношение 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 не ориентированы и называются ребрами. В противном случае
78 ГЛАВА 2 порядок расположения вершин и и v в паре (и, v) из R является существенным, и такие пары вершин называются дугами. Наи- более естественной интерпретацией графа представляется схема связей между точками, например телефонная или дорожная сеть (в общем случае являются неориентированными), или электрические сети (являются ориентированными в случае ис- пользования постоянного тока). Определения Граф G' = (У, У) называется частичным (или партитивным) графом графа G = (X, U), если и только если У = X и V cz U. Он является подграфом, если и только если У с X и если V — = U — W, причем W={(v,w), где v е (X — У) или w е е (X— У)}. В этом случае из G удалено некоторое множество вершин вместе со ^всеми инцидентными им дугами. Если и = = (х, у) принадлежит U, то х называется начальной вершиной и, а у — конечной вершиной и и соответственно х есть вершина, предшествующая вершине у, а у — вершина следующая за х. Степенью вершины называют число соседних с ней вершин, т. е. число вершин, которые являются предшествующими и после- дующими по отношению к рассматриваемой вершине. Путем от вершины а к вершине Ь на графе G = (X, U) на- зывают конечную последовательность вершин графа G(ci, С2....сп), такую, что Ci = а, сп — b и щ(с,, ct-i) принадлежит U. Если G является неориентированным графом, достаточно, чтобы в приведенном выше определении либо пара (с,, c,-i), либо пара (ct-i, с») принадлежала G; тогда говорят о цепи От а к Ь. Контуром (циклом) называют путь, который заканчивается на своей начальной вершине (а = Ь)'. Если для каждой пары вершин а и b из G существует цепь от а к Ь, то граф G называют связным (или сильно связным, если существует путь). Использование графов позволяет представлять многочис- ленные различные ситуации (в том числе, уже упоминавшиеся выше различные сети). С их помощью можно моделировать основные формы связи и подобные им отношения, материаль- ные или информационные потоки, химические формулы, сим- вольные выражения в общем случае, так как деревья являются частным случаем графов (графики функций в математическом анализе также являются частным случаем, поскольку они яв- ляются графическими изображениями множеств точек (х, f(x)). В гл. 4, 5 и 8 рассмотрены многочисленные примеры полез- ности использования графов и их больших возможностей при моделировании.
Глава 3 ФОРМАЛЬНЫЕ СИСТЕМЫ 3.1. Введение В формальной логике разрабатываются методы правильных рассуждений, представляющих собой цепь умозаключений в ло- гически последовательной форме. Рассуждения в ней изучаются с точки зрения формы, а не смысла, и с этой целью в обычных рассуждениях выделяются определенные элементы, которые мо- гут замещаться в них произвольным образом какими-то други- ми элементами. Например, в хорошо известном силлогизме (обычно приписываемом Аристотелю, но в действительности принадлежащему Г. Оккаму (1349 г.)) “Люди — смертны, Сократ — человек, следовательно, Сок- рат смертен” в обоих случаях вхождения слов “человек (люди)”, “смертен (смертны)”, “Сократ” могут быть заменены любыми другими словами и при этом само рассуждение останется формально допустимым. Таким образом, уже простая замена таких слов в рассуждениях символьными обозначениями позволяет строить обобщенные суждения на основе подобных рассуждений. Так, в приведенном примере абстрактная модель этого рассуждения принимает следующий вид: “Если все х суть у и если z есть х, то z есть у". В силлогистике, создателем которой был Аристотель, как раз и начали систематически применяться такие замещающие символы, позднее получившие название переменных (впервые они встречаются в “Органоне”). Однако при формальном описании рассуждений, подобных тем, что встречаются в обычном языке, недостаточно введения одних только переменных. В этом случае возникает необходи- мость в словах типа “если, тогда, или, и, так как, следователь- но”, а также в таких глаголах, как “есть, принадлежит, влечет, следует”, которые играют фундаментальную роль в рассужде- нии. Это фундаментальные элементы представляют собой сло- ва — связки формального рассуждения и не допускают никаких замен. Например, рассматриваемый нами силлогизм тут же раз- рушается, если заменить в нем второе по порядку следования “если” на “или”. Такие фиксированные, незаменяемые элемен- ты называются операторами.
80 ГЛАВА 3 Отметим, что в обычном языке союз «или» может принимать различные значения. Иногда он означает «или то или другое, или и то и другое вместе» (это или включительное), а иногда «или» означает «одно из двух — либо то, либо другое» (это или исключительное). Аналогично глагол “есть, является” означает иногда включение, иногда равенство, а иногда принадлежность. В связи с этим возникает необходимость использовать различ- ные символы для обозначения и отражения различных значений и оттенков, подобных слрв. Одна из задач формальной логики — выявление неоднознач- ностей и изучение отдельных этапов рассуждений или выводов, когда шаг за шагом строго доказывается их правильность вне зависимости от используемой интерпретации и не остаются не- ясности ни на одном этапе. Став составной частью философии и имея в числе своих со- здателей таких великих ученых, как Аристотель, Авиценна, Абе- ляр, Кант, Лейбниц, формальная логика с течением времени при- обретает все более математический характер. Благодаря ре- зультатам, которые были получены в этой области Д. Венном, Г. Булем, А. Морганом и затем стали использоваться в других научных дисциплинах, начинает осуществляться мечта Лейб- ница о разработке и практической реализации универсальной символики. Однако здесь необходимо отличать формализован- ные рассуждения от аргументации, используемой людьми в уст- ной или письменной обычной,речи, хотя первоначально логика была теорией правильной аргументации. Лишь начиная с трудов Г. Фреге, затем Г. Пеано и, нако- нец, с монументального труда Б. Рассела и А. Уайтхеда «Осно- вания математики» (1913 т.), формальная логика полностью отделилась от разговорного языка и выделилась в самостоя- тельную дисциплину, базирующуюся на собственной знаковой системе. При этом возникли новые и серьезные проблемы, в ча- стности следующие: 1, Не приводит ли к порочному кругу идея изучения на фор- мальном уровне с помощью собственных формализмов самой формальной логики? 2. В какой степени допустимо распространение математиче- ских. методов на логику? 3. Каким образом переходить от логического символизма, свободного от смыслового содержания, к конкретной интерпре- тации, связанной с той или иной предметной областью? Интересно отметить, что уже начиная с времен Древней Гре- ции “Начала” Евклида считались примером строго дедуктив- ного рассуждения. И лишь только в 1882 г. М. Паш сформули- ровал в явном виде несколько фундаментальных гипотез, кото-
ФОРМАЛЬНЫЕ СИСТЕМЫ 81 рые до этого времени только подразумевались (например, ут- верждение о том, что между двумя любыми несовпадающими точками всегда найдется третья точка, отличная от первых двух). В 1895 г. Д. Гильберт предложил программу построения всей математики на основе ограниченного числа аксиом. Одна- ко в 1931 г. К. Гедель своей знаменитой фундаментальной тео- ремой показал, что такая программа неосуществима. Он также указал на внутренние ограничения теории формального вывода и вообще формальных систем. Важность подобного подхода, связанного с теорией теории или метатеорией, отмечается на протяжении всей книги. 3.2. Определение формальной системы Формальная система представляет собой совокупность чисто абстрактных объектов (не связанных с внешним миром), в ко- торой представлены правила оперирования множеством симво- лов в чисто синтаксической трактовке без учета смыслового со- держания (или семантики). Формальная система определена, если: 1. Задан конечный алфавит (конечное множество символов). 2. Определена процедура построения формул (или слов) формальной системы. 3. Выделено некоторое множество формул, называемых аксиомами. 4. Задано конечное множество правил вывода, которые поз- воляют получать из некоторого конечного множества формул другое множество формул. Эти правила могут быть представ- лены в виде Ui и U2 и ... Up-^Wl и W2 и ... Wn, где Ui и W, — формулы формальной системы, а стрелка -^- чи- тается как “влечет” или “следует”. 3.2.1. Дополнительные определения Формальную систему иногда называют также аксиоматикой, или формальной теорией, или еще проще — множеством формул. Алфавит, который заранее предполагается конечным, иногда называют словарем. При этом в нем различаются константы, переменные и операторы (примеры в разд. 3.2.3). Способ построения формул (п. 2 определения формальной системы) определяет конкретную синтаксическую конструкцию
82 ГЛАВА 3 формул Или грамматику формул, которые представляют собой правильно построенные последовательности символов. В отли- чие от этого в п. 4 определения формальной системы заданы разрешенные правила вывода формул друг из друга. Формальное доказательство (или просто доказательство) определяется как конечная последовательность формул Afi, М2, ..., Мг, такая, что каждая формула Mi либо является ак- сиомой, либо при помощи одного из правил вывода выводима из предшествующих ей формул М,, где / Ci. Формула t называется теоремой, если существует доказа- тельство, в котором она является последней, т. е. Mr = t. В ча- стности, всякая аксиома является теоремой. Если t есть тео- рема, то этот факт кратко обозначается так: Hi. Правила вывода (п. 4 определения формальной системы) называют также правилами словообразования или правилами вывода заключения. В принципе они позволяют определять, яв- ляется ли данная формула теоремой данной формальной си- стемы. Отметим также, что в соотношении {теоремы} cz {формулы} cz {цепочки символов из алфавита} включение множеств является строгим. Различают два типа правил вывода: Г) правила, применяе- мые к формулам, рассматриваемым как единое целое (в этом случае их называют продукциями, правилами продукций или продукционными правилами)-, 2) правила, которые могут при- меняться к любой отдельной части формулы, причем сами эти части являются формулами, входящими в формальную систему. В этом случае говорят о правилах переписывания. Так, в обыч- ной математике следующее правило вывода: х < у и у < z влечет х < г применяется к формуле как к целому (в данном случае к пред- ложению математического анализа) — это продукция (с двумя антецедентами, или посылками). Слово “влечет" для краткости при использовании продукции часто заменяется стрелкой В отличие от предыдущего правило х — х Н 0 имеет смысл при любом виде входящего в него в качестве подвыражения х. Оно является правилом переписывания, и в этом случае для обозначения слова “влечет” используется специальная стрел- ка ь- Разумеется, и продукция, и правило переписывания имеют только одно направление вывода — слева направо. Правило пе- реписывания действует в обоих направлениях, если только за- даны два правила: а>—>Ь и bt—>а. Иначе при использовании одностороннего правила переписывания как двустороннего
ФОРМАЛЬНЫЕ СИСТЕМЫ 83 в рассуждениях может получиться порочный круг (что часто случается с детьми). Замечание. Множества, указанные в пп. 3 и 4 определения формальной системы, не обязательно должны быть конечными: достаточно, чтобы они были рекурсивно перечислимы. Однако в последующем изложении мы будем предполагать, что они яв- ляются конечными. 3.2.2. Правило подстановки Правило подстановки пригодно для использования в любой формальной системе. Чтобы применить правило вывода к ка- кой-нибудь формуле М, принадлежащей к некоторой формаль- ной системе, надо совместить левый элемент правила Q с М. Это осуществляется при помощи подстановок в Q и/или в М. Подстановка заключается в замещении всех вхождений какой- либо переменной на формулу из формальной системы, которая не содержит этой переменной. 3.2.3. Примеры формальных систем Пример 1. Формальная система (JP) 1. Алфавит == {а, Ь, □}. 2. Формулы: символ или какая-либо последовательность символов а или Ь, или □. 3. Одна аксиома: а □ а. 4. Одно правило вывода: Ci □ с2->- Ьщ □ Ьс2. Принято, что в этом правиле вывода символы с\ и с2 озна- чают какие-то последовательности символов а или Ь формаль- ной системы (JP) и могут быть замещены любыми последова- тельностями символов а или Ь. Символы Ci и с2 не являются символами формальной си- стемы (JP). Они служат только посредниками для формализа- ции правил вывода. Учитывая способ образования формул не- замещаемые символы а и Ь называют константами, а незаме- щаемый символ □ — оператором. Из определения данной формальной системы непосредствен- но вытекает следующий способ получения допустимых формул, т. е. формул, выводимых согласно правилу п. 4 определения данной формальной системы: достаточно рассмотреть лишь все комбинации, получаемые при последовательном применении правила 4 к аксиоме 3 нашего примера. В результате мы имеем а □ а b а □ а Ь Ь Ь а □ a b b Ь b Ъ а □ a b b Ъ и т. д.
84 ГЛАВА 3 Очевидно, что, например, выражение ЪааЬ □ abba не могло бы быть допустимой формулой в данной формальной системе. Мы еще вернемся к рассмотрению этой системы в разд. 3.5. Пример 2. Формальная система (DH) Д. Хофштедтер в своей объемистой книге “Гедель, Эшер, Бах — золотой венок вечности” прослеживает проявление идеи рекурсии и автоморфизма в логике, теоремах Геделя, информа- тике, странных рисунках Эшера, футах, канонах и экспромтах Баха. Приводимая ниже формальная система (DH) взята из первой главы этой книги: 1. Алфавит: М, I, U. 2. Формулы: любая последовательность символов данного алфавита. 3. Одна аксиома: MI. 4. Правила вывода: правило 1: ml ^-mlU (продукция); правило 2: Мпг-> Мпгпг (продукция); правило 3: IH^—^U (правило переписывания); правило 4: UU (правило переписывания). То, что правило 1 является продукцией, означает в данном случае, что оно применяется только, если последняя буква теоремы есть I. В этом случае, например, из теоремы MIUMIUMI выводится теорема MIUMIUMIU. Отметим, что символ m не принадлежит символам данной формальной си- стемы, а просто играет роль некоего слова. Правило 2 позволяет из теоремы MUI вывести теорему MUIUI при условии, что MUI является теоремой. Правило 3 позволяет, например, сделать переход от теоремы MUIIIUM к теореме MUUUM. Последнее правило 4 указывает, что всякая цепочка из двух рядом стоящих символов U может быть просто удалена из теоремы. Например, теорема MUUUUMM равно- значна теореме МММ. Ниже приводятся примеры использова- ния правил вывода данной формальной системы: а) MI (аксиома); б) МП (правило 2 применено к а); в) М1Ш (правило 2 применено к б); г) мини (правило 1 применено к в); д) MIUU (правило 3 применено к г); е) MI (правило 4 применено к д).
ФОРМАЛЬНЫЕ СИСТЕМЫ 85 Читателю предлагается; используя правила вывода данной формальной систему, решить задачу, предложенную Д. Хоф- штедтером: получить теорему MU из исходной аксиомы данной формальной системы. 3.3. Разрешимость и интерпретация формальных систем 3. 3.1. Разрешимость ; Первым вопросом, который возникает при задании формаль- ной системы, является вопрос об инверсии, т. е. о том, возмож- но ли, рассматривая какую-либо формулу формальной системы, определить, является ли она доказуемой или нет. Другими сло- вами, речь идет о том, чтобы определить, является ли данная формула теоремой или не-теоремой и как это доказать. В мате- матике предполагается,, что при задании формальной системы существует хорошо определенный способ действий, который за конечное число шагов позволит получить ответ на данный воп- рос. Такой способ, если он существует, называется процедурой решения, а соответствующую формальную систему называют разрешимой. Однако основная трудность заключается в том, что такие процедуры существуют далеко не всегда, даже для таких простых и фундаментальных теорий, как исчисление предиктов первого порядка (разд. 3.5). Причина этого состоит в следую- щем. Даже если применить правила словообразования (т. е. правила построения формул, правила вывода) последовательно ко. всем возможным объектам формальной системы и формаль- ная система такова, что имеется Принципиальная возможность полного перечисления ее теорем (даже при бесконечном их чис- ле), то все же не существует никакого подходящего способа в общем случае, чтобы перечислить все не-теоремы. В данном случае эту проблему нельзя решить и с помощью комбинаторных методов, так как если после какого-то числа проведенных операций еще не получено, определенного ответа на вопрос о характере рассматриваемой формулы, то нет воз- можности определить причину этого: то ли рассматриваемая формула не является теоремой, то ли, сама формальная систе- ма не является разрешимой. Поэтому говорят, что множество теорем формальной системы необязательно является рекурсивно перечислимым. 3. 3.2. Интерпретация Формальные системы являются не просто игрой ума, а всег- да представляют собой модель какой-то реальности (либо кон- кретной, либо математической).
86 ГЛАВА 3 Интерпретация представляет собой распространение исход- ных положений какой-либо формальной системы на реальный мир. Интерпретация придает смысл каждому символу формаль- ной системы и устанавлйвает взаимно, однозначное соответст- вие между символами формальной системы и реальными объек- тами. Теоремы формальной системы, будучи однажды интерпре- тированы, становятся после этого утверждениями в обычном смысле слова, и в этом случае уже можно делать выводы об их истинности или ложности. Отметим, что речь идет о замыкании или логическом завер- шении понятия математического подхода. Вначале математик изучает реальность, конструируя некоторое абстрактное пред- ставление о ней, т. е. некую формальную систему. Затем он до- казывает теоремы этой формальной системы. Вся польза и удобство формальных систем как раз и заключаются в их абст- рагировании от конкретной реальности. Благодаря этому одна и та же формальная система может служить моделью многочис- ленных различных конкретных ситуаций. Наконец, он возвра- щается к исходной точке всего построения и дает интерпретацию теорем, полученных при формализации. Необходимо, конечно, чтобы для данной формальной системы всегда существо- вала по крайней мере одна интерпретация, в которой каждая теорема данной формальной системы была бы истинной. Конкретная формальная система является тем более инте- ресной, чем больше существует для нее различных интерпрета- ций. В таком случае наличие даже какого-то одного формаль- ного доказательства уже обеспечивает получение различных конкретных результатов. В современной математике большой интерес вызывают формальные системы самого общего харак- тера, которые исследуются в теории категорий и теории мо- делей. 3. 3.3. Доказательство и истинность Из приведенных выше определений существует уже по по- строению глубокое различие между концепциями доказатель- ства и истинности. Эти понятия относятся к двум различным областям. Априорно ничто не гарантирует, что всякое утверж- дение, истинное в обычном смысле слова, соответствует какой- то доказуемой формуле. Ведь не только то истинно, для чего у нас есть доказательство! На самом деле имеются четыре варианта взаимоотношений между доказательством и значением истинности, поскольку формула, с одной стороны, может быть теоремой (обозначается
ФОРМАЛЬНЫЕ СИСТЕМЫ 87 символом Т на схеме, изображенной на рис. 3.1) либо не-теоре- мой (NT), а с другой стороны, ее интерпретация может быть истинной (V) либо ложной (F). Первый вариант (Т, V), когда интерпретация истинна, не представляет проблемы. Если формула доказуема и соответст- вует определенной интерпретации, значение которой ложно, то такая интерпретация просто не представляет интереса. Вариант Рис. 3.1. Четыре класса сочетания теорем (Г) и не-теорем (NT) и значений истинности ИСТИНА (V) и ЛОЖЬ (F). (Т, F) исключается из рассмотрения и может использоваться для определенной корректировки рассматриваемой формальной системы таким образом, чтобы с ней остались связанными т'Ьлько те интерпретации, значения которых истинны для всех теорем системы. Теперь рассмотрим^варианты (NT, V) и (NT, F), соответствующие не-теоремам. Что касается варианта 4, то весьма желательно, чтобы значение “ложь” было бы присвоено всем не-теоремам; однако это не всегда возможно (разд. 3.4.1). Тем не менее наиболее часто используемые формальные систе- мы относятся именно к этому случаю, как, например, логика высказываний (которую называют также пропозициональной логикой или исчислением высказываний). Логика высказыва- ний рассмотрена в разд. 3.4. Наиболее сложным является вариант (NT. V), когда не всегда можно избежать трудностей, заключающихся в том, что ‘могут существовать не-теоремы данной формальной системы, которые в определенных интерпретациях являются истинными, причем такие интерпретации часто оставляются для рассмотре- ния. В качестве примера назовем знаменитое утверждение Фер- ма: “Для всякого целого п > 2, уравнение в целых числах хп + Уп — zn не имеет решения”. Вполне возможно, что оно яв- ляется истинным в обычной интерпретации, где используемые
88 ГЛАВА 3 символы имеют обычный арифметический характер. Это ут- верждение проверено с помощью ЭВМ, на которой оно просчи- тано до значений п = 10 000. Однако остается возможность того, что оно недоказуемо в существующей арифметической ак- сиоматике. Еще более неприятным является тот факт, что (как показано в разд. 3.6) существуют формальные системы, в кото- рых класс формул (NT, V) не является пустым ни при какой интерпретации! Сюда относится и проблема наличия ограничений формализ- мов. Одни из них связаны с формой представления (записи) интерпретации, в то время как другие ограничения от этого не зависят. Однако во всех случаях существует одна и та же про- блема: исходя из аксиом и правил вывода, во-первых, как сде- лать хороший выбор исходных из них для быстрого получения доказательства конкретной формулы в качестве теоремы и, во- вторых, как доказать, что некая формула недоказуема в данной формальной системе? В общем случае проблема, поставленная таким образом, является неразрешимой. Зная, что комбинаторные методы в нашем случае неэффек- тивны, мы будем подходить к проблеме исследования формаль- ных систем со строго формальной точки зрения, что позволит получить результаты, выявляющие формальные свойства фор- мальных систем. В свою очередь это позволит значительно усо- вершенствовать и сами комбинаторные методы. Например, если в данной формальной системе не употребляется какая-то кон- станта (например, Д) ни в аксиомах, ни в правилах вывода, то она не может появиться и ни в одной теореме. Другим подоб- ным примером является следующий: если никакое правило вы- вода данной системы не порождает формулы, более Длинной (т. е. содержащей большее число символов), чем теорема, к ко- торой оно применяется, то всякая теорема большего размера, чем аксиома, может быть удалена из рассмотрения. В этом слу- чае всегда можно получить результат за конечное число шагов, так как дерево поиска уменьшено в этом случае до конечной величины ^L", где L— число символов в алфавите, а п — длина доказываемой формулы. Фундаментальная важность такой метатеории показана ниже при рассмотрении двух введенных ранее формальных си- стем, а также двух классических формальных систем: логики высказываний и исчисления предикатов первого порядка. Именно такой подход позволил трем великим математикам Черчу, Геделю и Тарскому получить к 1930 г. весьма общие ре- зультаты, относящиеся к формальным системам. Эти результа- ты рассмотрены в последующих разделах данной главы.
ФОРМАЛЬНЫЕ СИСТЕМЫ 89 3. 3.4. Примеры формальных доказательств Пример 1. Формальная система (JP) Эта система определена в разд. 3.2.3 *>. В ней в качестве ак- сиомы и правила вывода определены Н а □ а с1 □ с2—> Ьсг □ Ьс2 Теоремы в этой системе получаются следующим образом: Ьа □ ba, bba □ bba, bbba □ bbba, ... Очевидно, что теоремы здесь совпадают с формулами вида b ... Ьа □ b ... Ьа, где символ Ь повторяется по р раз до и после символа □. В со- кращенном виде это может быть записано"^ Ьра □ Ьра, где по соглашению выражение &р обозначает р-кратную конка- тенацию Ь, причем Ь° соответствует пустому символу. Это наше соглашение уже вводит фактически метаобозначение, поскольку возведение в степень не является операцией исходной формаль- ной системы. Отметим, что при рассмотрении этой формальной системы необходимо использовать систему более высокого уровня — формальную арифметику. Замечание. Необходимость различать язык и метаязык воз- никает в ситуациях, когда естественный язык выполняет одно- временно две различные функции: • указание соответствующего фрагмента в произведении; • определение на языке грамматики этого же языка. . Это различие является фундаментальным для информатики, _ где специальные программы (компиляторы) предназначены для преобразования на язык другого уровня исходных программ. с Определение какого-либо языка программирования в форме . Бэкуса — Наура задает формальную систему, которая опреде- 7 ляет допустимые выражения этого языка: (Программа) := (Команда) [(Программа) (Команда) На самом деле данная система несколько отличается от системы в разд. 3.2.3, к которой автор еще вернется в разд. 3.5. — Прим. ред.
90 ГЛАВА 3 Эта запись означает, что программа представляет собой команду или программу с последующей командой: (Команда) := ’(Комментарий) ((Строка) [(Метка) [(Метка) (Строка) (Комментарий) := Пусто [(Буква) (Комментарий) и т. д. Таким образом, все символы между угловыми скобками последовательно определены. Построим процедуру решения для формальной системы (JP): подсчитывается число р — число вхождений символа b в головной части формулы — кандидата в теоремы, затем про- веряется, является ли символ, который следует за Ь, символом а, следующий за ним — символом □, и затем проверяется, сле- дует ли за этим символом □ вновь р символов b и после них последний символ а. Если проверяемая формула удовлетворяет этим условиям, она является теоремой. В противном случае она есть не-теорема. Теперь введем две интерпретации системы (JP). Первая интерпретация. Условимся, что символ а представ- ляет нуль, символ Ь обозначает последующее целое число за числом, стоящим справа от него на множестве целых чисел, и символ □ обозначает знак равенства. Тогда аксиома интерпре- тируется как 0 — 0 и является истинной. Последовательность теорем отображается последовательностью равенств 1 = 1, 2 = = 2, ..., р — р, которые все истинны. В противоположность этому формула 1=2, которая не вытекает из- интерпретации какой-либо теоремы, является для нас очевидно ложной. (Эта формула следует из не-теоремы Ьа □ ЬЬа.) Таким образом, имеется корректная интерпретация системы (JP) в обычной арифметике с полным соответствием Т V и NT F. При этом клетки 2 и 3 на рис. 3.1 являются пустыми. Вторая интерпретация. Теперь пусть а обозначает предло- жение: “Сократ смертен”, знак □ — идентичность двух предло- жений, и символ Ь означает отрицание. Тогда аксиома форму- лируется следующим образом: “Сократ смертен” идентично “Сократ смертен”, что рассмат- ривается нами как истинное выражение. Первая теорема Ьа □ Ьа приобретает следующую форму: “Сократ бессмертен” идентично “Сократ бессмертен”, что истинно. (Отметим, что на самом деле здесь не имеет значения то, был ли Сократ' смертен или нет, так как оба предыдущих выражения утверждают только, что ложь идентична лжи, а истина — истине.)
ФОРМАЛЬНЫЕ СИСТЕМЫ 91 Рис. 3.2. Дерево ветвлений для MU. Но для формулы bba □ а, которая является не-теоремой в (JP), соответствующее выражение формулируется следующим образом: “отрицание того, что Сократ бессмертен, идентично тому, что Сократ смертен”. Это выражение также истинно в противоположность тому, что имелось в первой интерпретации. В этой интерпретации третий класс (NT, V) (рис. 3.1) уже не пуст и рассмотренное выше, последнее выражение никогда не будет интерпретацией какой-либо теоремы из (JP). Пример 2. Формальная система (DH) Формальная система (DH) (рис. 3.2) имеет следующие пра- вила вывода: 1) ml-^mlU, 2) 3) 4) UU^ . С учетом поставленной выше задачи вопрос заключается в том, является ли формула MU теоремой в системе (DH), вы- водима ли она из аксиомы MI. Проведем формальное исследо- вание системы (DH) на метауровне. Прежде всего очевидно, что в системе (DH) могут порож- даться только формулы, начинающиеся с символа М. Действи- тельно, оба правила — продукции 1) и 2)—не изменяют на- чало слов. С этой точки зрения MU может являться теоремой. Впрочем, для достижения цели необходимо устранить по край- ней мере один символ /, уже‘имеющийся в аксиоме. Для этого можно использовать только правила 2 и/или 3, так как правила 1 и 4 оставляют неизменным число символов в формуле.
92 ГЛАВА 3 Правило 3 уменьшает общее число символов I на 3 единицы, а правило 2 напротив, каждый раз удваивает это число. Следова- тельно, правило 2 создает только четные числа символов I, тог- да как правило 3 уменьшает их только на 3 единицы. Таким образом, чтобы получить число символов /, равное нулю, нуж- но применить правило 3 к формуле, содержащей число симво- лов I, кратное трем, причем их должно быть только 3 до по- следнего применения правила 3. А так как правило 2 порож- 13 26 Рис. 3.3. Схема возможных переходов системе DH при использовании пра- вил 2 и 3. дает только четные числа символов I, то оно не сможет поро- дить такие формулы. Следовательно, MU не является теоремой формальной системы (DH). Отметим, что для получения этого результата снова был ис- пользован результат из другой формальной системы — фор- мальной арифметики (и это не случайно), состоящий в следую- щем: для того чтобы число 2k делилось на 3, необходимо, чтобы на 3 делилось и число /г, так как числа 2 и 3 не имеют общих делителей. А так как правила 2 и 3 не могут порождать число символов /, кратное трем, и в аксиоме не содержится число /, кратное трем, то невозможно и получение таких формул. Приведенные выше рассуждения можно более кратко и про- сто представить с помощью новой формальной системы, модели- рующей правила 2 и 3 системы (DH): Аксиома: i = 1 (число символов I в аксиоме (DH))\ Правило 2: i — 21 (результат действия правила 2); Правило 3: i -> i — 3 (результат действия правила 3). Необходимо определить, можно ли в этой системе получить I = 0. Нельзя получить формулы с числом символов I, кратным трем. Формулы типа М, MUU, MIJIU... не могут быть теорема- ми в (DH). На рис. 3.3 показаны возможные переходы между формулами в системе (DH) при использовании правил 2 и 3. Полученную формальную систему над I можно упростить с помощью схемы, показанной на рис. 3.2, где возможными воз- вратными шагами являются только шаги с уменьшением на 3 единицы за шаг имеющегося числа единиц 1. Действия по мо- дулю 3 отражают этот существенный факт. При / = i по мо-
ФОРМАЛЬНЫЕ СИСТЕМЫ 93 дулю 3 (второе изменение первоначального представления), так как правило 3 оставляет / неизменным и так как 2i подмодулю 3 равно (2г — i) по модулю 3 и равно —/, то получаем” новую формальную систему над /: Аксиома: j = 1; Правило 3: / = — j. Необходимо определить, можно ли в этой формальной си- стеме получить / = 0. Очевидно, что получение MU в системе (DH) не может быть осуществлено, поскольку / не могут попеременно прини- мать значения +1 и —-1. 3.4. Исчисление высказываний Эта формальная система, которую называют также логикой высказываний или пропозициональной логикой, определяется следующим образом. 1. Алфавит: • Пропозициональные буквы р, q, г, s, t, ...; • Логические операторы “I, 2D (читаются соответственно “не” и “влечет, следует”); • Скобки (,); 2. Построение формул (или пропозициональных форм)-. • Любая пропозициональная буква суть формула. • Если пг есть формула, то и (т) также является фор- мулой. • Если т есть формула, то и ~1т также является формулой. • Если nii и т2 являются формулами, то и выражение т\ 2D т2 также является формулой. 3. Аксиомы: (Al) (m( 2D (т2 о mJ. (А2) (пц 2D (т2 2D Ш3)) 2D ((mt 2D Ш2) 2D (пц 2D т3)). . (АЗ) (~| 2D ОТ]) 2D (mj 2D/П2). Здесь т\, т2, т3 являются пропозициональными формами или формулами. 4. Одно правило вывода (правило модус поненс, или пра- вило отделения): Если mi и (mi 221 m2) суть теоремы, то т2 есть следствие mi (т. е. т2 выводимо из mi). Формально это правило записывается следующим образом: (mt) и (m! 2D т2) -> т2. Начиная с момента создания этой формальной системы, ис- пользовалась ее интерпретация, моделирующая рассуждения
94 ГЛАВА 3 обычной логики, где буквы рассматриваются в качестве выра- жений. Так, в частности, в этом смысле оператор ~| является отрицанием, а оператор дз — логической импликацией. Надо отметить, что в исчислении высказываний ни аксиомы, ни един- ственное правило вывода не используют специальных пропози- циональных букв. Поэтому последние являются полностью вза- имозаменяемыми, так что если, например, Н (р о ~| q) дэ (г дз s), I'd й1 Н (/ дэ “I s) => (q о г). В исчислении высказываний разрешено вводить любые но- вые пропозициональные буквы, называемые свободными пере- менными. В этой системе не имеется констант. В ней могут ис- пользоваться другие символы, кроме заданных выше, например логическое И, обозначаемое символом А. Такие символы могут быть определены в рамках данной формальной системы: mi А т2 по определению эквивалентно формуле ~|(miZDm2). Логическое ИЛИ, обозначаемое символом определяется ана- логично: т\ V т2 эквивалентно формуле |( \mi А ~1т2). Логи- ческая тождественность или эквивалентность, обозначаемая символом = , определяется следующим образом: mi == щ2 по определению эквивалентно формуле (mi дз т2) А (т2 zd mi). Рассматривая эти определения с общей точки зрения, можно заключить, что они обогащают первоначально введенную фор- мальную систему, которая отражает обычные законы дедуктив- ного мышления. В частности, можно отметить, что три закона логики, сформулированные Аристотелем, в рассматриваемой формальной системе являются строго доказуемыми. К этим законам относятся следующие: — закон тождества, или (р дэ р); — закон исключения третьего, или (р V Пр); — закон противоречия, или П(р А 1р). Последний закон гласит, что никакая теорема не может од- новременно являться и теоремой, и не-теоремой. В качестве примера доказательства в исчислении высказы- ваний приведем доказательство приведенного выше закона тож- дества: “Для всякого р выполняется р дэ р”. Формула (Р ((Р => р) => р)) в (Т1) является аксиомой и, следовательно, теоремой (Т1). Она соот- ветствует аксиоме (А1), где формула пг2 представлена цепочкой символов (р дд> р), а формула mi — цепочкой из одного символа р. Аксиома (А2) позволяет представить в качестве теоремы следующую формулу: ((р => ((р дз р) дэ р)) о ((р дэ (р дз р)) э(рэ р))), (Т2) где (р дэ р) соответствует т2,,а р — mi и т2.
ФОРМАЛЬНЫЕ СИСТЕМЫ 95 Теперь первая формула построена: теорема (7Т) суть пер-1 вая часть, заключенная в скобки в (Т2). Правило модус поненс утверждает, что Н «р (р о р)) => (р о р)). (ТЗ),’ Итак, сама формула (р^>(р±эр)) в соответствии с аксио-’ мой (Л1) при подстановке р вместо т\ и т2 представляет собой теорему. Правило модус поненс, примененное еще раз, приводит к теореме (74) Н(р=эр). (Т4) Эта формула уже точно выражает закон тождества. Другие основные теоремы доказываются аналогично в не- сколько этапов: Р^ППр; -](pVp)^ripA~l<7); (р =d q) == (-] р V q). Теорема (р =э q) (~lpV q) утверждает, что доказатель- ство формулы (р => q) эквивалентно доказательству формулы (~lpVp). Это принцип рассуждения от противного (см. прин- цип резолюции в разд. 3.10). Для исчисления высказываний могут быть получены некото- рые метатеоремы так же просто, как и для формальных систем (JP) и (DИ). Таким образом, р—>~|2ftp; (р М) ^р А <?; (р=>?) и (q=>r)-+(p=>r). Отметим, что в этих последних выражениях “«’’ относится к элементам металингвистики и не является формулой исчисления высказываний. Это то же самое “и”, которое проявлялось в оп- ределении правила модус поненс. Символ “м”, в частности, не есть то же самое, что символ А в исчислении высказываний, так (р гз q) и (q =з г) означает на самом деле, что имеются две теоремы (р q) и (р => г). Такие теоремы полезны и даже необходимы для упрощения доказательств. В частности, они позволяют создавать новые правила вывода. В качестве примера доказательства метатео- ремы рассмотрим теорему (р =з (р о г)) =з (р зз (р о г)), кото- рая является тривиальной в исчислении высказываний для про- позициональных букв р, р и г. Ниже доказан аналогичный, но более сильный результат, который значим для некоторых
96 ГЛАВА 3 формул Р, Q и R в исчислении высказываний. На самом деле будет доказано новое правило вывода (Р зз (Q зэ/?))-> (Q зз (Р зз/?)). Предположим, что (Р (Q зз Р)) является теоремой, кото- рая уже доказана в исчислении высказываний. Поставим ей в соответствие левую часть аксиомы (Д2), подставляя Р вме- сто mi, Q вместо m2, Р вместо т3. Тогда по правилу модус по- ненс получим (Р =з Q) зз (Р =з Р). Обозначив формулу т\ в аксиоме (А1) как У, получим тео- рему (У зз (тзУ)), где т — какая-то формула. Так как У является теоремой, еще одно применение правила модус поненс позволяет вывести (т зз У) либо (т зз ((Р зз Q) зз (Р зз /?))). Теперь, подставив в аксиоме (А2) .т вместо т\, (Р зз Q) вместо m2 и (Р зз Р) вместо т3 и применив в третий раз пра- вило модус поненс, находим (т зз (Р зз Q)) зз (т зз (Р зз Р)). Заменим формулу т на формулу Q и получим в левой части этого выражения снова аксиому (А1). Применив в последний раз правило модус поненс, получаем (Q зз (Р зз Р)), что доказывает новое правило вывода или метатеорему в исчис- лении высказываний, т. е. дает новый способ построения тео- рем типа (Р зз (Q зз Р)) —> (Q зз (Р зз Р)), где Р, Q и Р — формулы исчисления высказываний. Важные замечания об обычных способах записи формул. Из-за недостатков, присущих нашему обычному языку, об- щепринятой является запись теорем в краткой форме: Н => С (гипотеза имплицирует заключение) вместо того, чтобы исполь- зовать корректную форму записи (Н и Н зз С) -* С. Символ “двойная стрелка” (=>) обычно используется для обозначения некой конкатенации логического оператора зз ис- числения высказываний и оператора =>, принадлежащего ме- тауровню описания этой формальной системы, который уже включает правило модус поненс. Много исследований, связанных с исчислением высказыва- ний, было проведено начиная со времен Аристотеля. В 1910 г. Уайтхед и Рассел дали, наконец, строгое формальное представ- ление исчисления высказываний, а также Доказали значитель-
ФОРМАЛЬНЫЕ СИСТЕМЫ 97 ное число теорем, связанных с ним. Интересно отметить, что в их работах исчисление высказываний строилось не на трех, а на четырех аксиомах. Позже Ж. Лукасевич показал, что одна из аксиом является лишней, так как может быть выведена из трех остальных. Выше была описана именно эта форма задания ис- числения высказываний с уменьшенным числом аксиом. При экономном подходе исчисление высказываний может быть по- строено таким образом, чтобы в нем использовался один опера- тор вместо двух, как определено выше. Таким оператором явля- ется “штрих Шеффера” (или дизъюнкция отрицаний), который обозначается вертикальной чертой и определяется следующим образом: р1<7 = Г1р) V Символ | интерпретируется как несовместность высказываний. Ж. Нико, основываясь на использовании этого единственного оператора — связки, показал в 1917 г., что исчисление выска- зываний может быть построено на единственной аксиоме: ip\(q |r)) l(s|(s|s)) IW l<7) I((p 10\(р 10))- Показано, что формальная система, использующая эту един- ственную аксиому и единственный оператор, порождает те же теоремы, что и первоначальное исчисление высказываний. 3.4.1. Интерпретация исчисления высказываний Вполне строго и в достаточно общем виде интерпретация ис- числения высказываний может быть дана следующим образом. Пусть В — множество, состоящее из двух элементов 0 и 1, т. е. В — {0, 1}, где 0 и 1 представляют собой значения “истинно” и “ложно”; • • с — дополнение Множества В в В, определяемое выраже- нием с(х) = 1 — х; • v (как имеющее значение истинно) —В» В в В, при усло- вии что v(x, у) = 1 <=> (х = 0 и у = 1). Пусть теперь <р означает применение множества пропозицио- нальных формул в В, обладающее двумя следующими свой- ствами: ф(“]р) = с(ф(р)), Ф (р => <?) = v (ф (р), ф (q)). Из второго равенства следует, что здесь возможно противоре- чие с Интуицией: если <р(р) имеет значение 1 и ф(д) имеет зна- чение 0, то <р(р => q) = и(1, 0) равно нулю. Иначе говоря, 44 Ж.-Л. Лорьер .
98 ГЛАВА 3 выражение ложь => истина является истинным, т. е. из ложной посылки следует истина. Формула т исчисления высказываний называется тождест- венно-истинной или тавтологией, если и только если при любых значениях составляющих ее элементов выполняется <р(т) = 0. Легко проверить, что три аксиомы, -входящие в определение логики высказываний, суть тавтологии. Рассмотрим это на при- мере аксиомы (Л1): < р (mj зэ (m2 ^i)) == f (<р (рц), ср (trii => m2)) = = у (ср (mJ, v(<p(m2), qp(wi))). Следовательно, при m = (m: з(т2 з ш2)): ф(т)=0, если <p(mj = 1 или если y(q>(m2), <p(mj) =0. Если <p(mj = 1, то ср(т) равно 0. Если теперь ср (mJ =0, то (по определению v) и(ф(/п2), 0) не может равняться 1. Таким образом, для любой интерпретации <р аксиома (Д1) имеет значение 0 (истина) и, следовательно, является тавтологией. Более того, если (mJ и (mi зэ т2) суть тавтологии, то по- скольку <p(mi id m2) — v (<p(mj, ср (m2)) = v (0, cp(m2))=0 no предположению и <p(m2) не может иметь значение 1, то т2 так- же суть тавтология. Это свидетельствует о связи правила моду- са поненса со всеми интерпретациями. Продолжая эти рассуж- дения для более сложных формул, приходим к метатеореме 1: Всякая теорема исчисления высказываний является тавто- логией. Определенный выше класс интерпретации делает исчисление высказываний изоморфным классической алгебре Буля с ее двумя операторами V и А и понятием дополнения, что позво- ляет установить весьма важную метатеорему 2: Всякая тавтология суть теорема исчисления высказываний. Эти метатеоремы в качестве непосредственного следствия имеют вывод о разрешимости исчисления высказываний. 3.4.2. Разрешимость исчисления высказываний Э. Пост доказал в 1921 г. следующую теорему: Формула F доказуема в исчислении высказываний, если р только если она является тождественно-истинной, т. е. истин- ной при всех интерпретациях исчисления высказываний. Таким образом, исчисление высказываний характеризуется: • непротиворечивостью, т. е. t и ~\i не могут быть одновре- менно выводимы;
ФОРМАЛЬНЫЕ СИСТЕМЫ 99 • полнотой, т. е. теоремы точно соответствуют тождествен- но-истинным формулам; • разрешимостью, т. е. существует процедура решения. Действительно, теоремы исчисления высказываний являются тавтологиями, т. е. высказывания принимают значения истин- ности, равные ИСТИНЕ, всякий раз, когда значения истинности ИСТИНА (0) или ЛОЖЬ (1) принимают все пропозициональ- ные переменные, входящие в них. Таблицы истинности элементарных операторов определяются в соответствии с интуитивной интерпретацией. Ниже приведены таблицы истинности для операторов ~i и :э. “I р i i 0 0 q i 0 i 0 p^q 0 0 i 0 В определенной таким образом интерпретации исчисления высказываний выражение р о q имеет значение “ложь” только тогда, когда р истинно, a q ложно. Это выражение (р дэ q) эк- вивалентно выражению ~\р\/q. Обычная интерпретация сим- вола как импликации достаточно неудачна, поскольку выра- жения р щ> q и Пр V q являются истинными, лишь если р лож- но (как говорится^ из ложного можно вывести все, что угодно), а в обычной речи с этим связывается вывод о чем-то плохом, из-за чего возникают недоразумения. Хорошо известный метод таблиц истинности был строго обо- снован в 1932 г. Постом: для того чтобы формула исчисления высказываний была теоремой, необходимо и достаточно, чтобы при интерпретации она принимала значение 0 (истина), каковы бы ни были значения пропозициональных переменных, входя- щих в нее. В табл. 3.1 приведен пример доказательства на основе ис- пользования таблиц истинности. Следует отметить, что в общем случае такое соответствие Чмежду теоремами и истинностными интерпретациями вовсе не является обязательным и рассмотренная выше формальная си- стема (JP) является примером этого. Фундаментальный вывод, состоящий в том, что исчисление высказываний является разрешимой формальной системой, представляет собой теорему уже уровня метасистемы, которую 4*
100 ГЛАВА 3 Таблица 3.1 р Q г q^>r р О Q рзг (4 = э г) => (р = г) (Р = 5?)=>((<7 = r)=>(pz = D) 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 с 1 0 0 0 0 1 1 0 1 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 г.). И хотя данный этап был “пройден” с достаточной строгостью и элегантностью, в дальнейшем в тео- рии чисел возникли серьезные трудности. 3.5. Исчисление предикатов первого порядка Уже упоминавшийся выше силлогизм “Люди смертны...” не может быть представлен с помощью исчисления высказываний. Действительно, для его формализации необходимо ввести кван- тифицированную переменную “человек”, причем множествен- ность, отражающаяся в первой посылке силлогизма, указывает на ее универсальность-. “Всякий х, который обладает свойством “человек”, смертен”. Чтобы выразить этот силлогизм в формализованном виде, необходимо использовать более мощную формальную систему, чем исчисление высказываний. В данном случае высказывания р, q, г, ... уже не могут, как выше, рассматриваться в качестве неких однородных целостностей, и поэтому становится необхо- димым рассмотрение каких-то свободных параметров, связан-
ФОРМАЛЬНЫЕ СИСТЕМЫ 101 ных с ними, называемых индивидными, или предметными пере- менными. Первая посылка нашего примера в формализованном виде записывается так: (Vx) (человек (х) =з смертен (х)), где х является квантифицированной или связанной переменной, а выражения “человек” и “смертен” являются предикатами, где сами предикаты первого порядка не квантифицированы. Фор- мальная система, соответствующая изложенным выше требова- ниям, получила название — исчисление предикатов первого по- рядка (или исчисление предикатов). Определение исчисления предикатов первого порядка. 1. Алфавит: • константы: a, b, с, d, ...; • индивидные переменные: t, и, v, w, х, у, z, ...; • предикаты: А, В, С, D, ...; • логические операторы: П, го; • квантор всеобщности: V (читается “каково бы ни было”...). 2. Построение формул: • формулы исчисления предикатов образуются аналогич- но формулам исчисления высказываний и, кроме того, • каждому предикату приписывается вес k: выражение’ Л(х1, х2, ..., Xk) является формулой, если и только если вес А равен k; • выражение ((VxJ Л(хь х2, ..., х^)) представляет со- бой формулу, в которой Xi есть связанная переменная, a Xi свободные переменные при i 2. 3. Аксиомы: • имеются все три аксиомы (ЛI), (Л2), (ЛЗ) исчисления высказываний; а также аксиомы: • (А4): ((V/) В (/)) zo В (и) («спецификация») • (А5): ((V?) (ш! => т2) => => (VZ) т2), где т.1 и т2 суть формулы, a t не является свободной переменной в mi. 4. Правила словообразования: (mJ и (модус поненс) m1->(V/)mI (обобщение), где t — свободная переменная в т\. Аксиома (Л4), которую называют аксиомой спецификации, очень важна. Она утверждает, что переменная t не содержится свободно в переменной и. Переменная и в этом случае стано- вится свободной переменной. Так же как и в исчислении выска- зываний, в исчислении предикатов вводятся дополнительные
102 ГЛАВА 3 символы V, А и ==. Отметим, что известный квантор существо- вания (читается “существует, найдется”) выражается через квантор всеобщности и другие операторы так: (3x)S(x>n((Vx)W). Всякая формальная система, которая имеет в качестве своих аксиом приведенные выше пять аксиом исчисления предикатов, называется формальной системой первого порядка. Многочисленные обычные теории такого рода являются по существу вариантами исчисления предикатов первого порядка, дополненного одной или несколькими аксиомами и/или прави- лами словообразования. Термин “система или теория первого порядка” означает, что в их формулах действие квантора может распространяться только на предикатные переменные и внутренние символы в формулах. К системам второго порядка относятся такие фор- мальные системы, в которых действие кванторов может распро- страняться и на сами предикаты. В формальных системах более высокого порядка действие кванторов может распространяться на предикаты от предикатов и т. д. Пример доказательства в исчислении предикатов первого порядка. Каков бы ни был предикат D с весом, равным двум, выпол- няется следующее: (Vz/) (Vx) D (х, у) =э (Vx) (Vz/) D (x, y). В самом деле, согласно аксиоме спецификации (Д4), поло- жив t = у, получим, используя левую часть теоремы, что необ- ходимо доказать следующее: (Vz/) (Vx) D (х, у) о (Vx) D (х, z/). Теперь, положив уже t = х, получим (Vx) D (х, у) => D (х, у). Используя последнее правило словообразования в определе- нии исчисления предикатов, получаем D (х, у) гэ (Vz/) D (х, у) (Vz/) D (х, z/) (Vx) (Vу) D (х, z/). Так как метатеорему (Л эВ) и (В дэ С) -> (Д zo С) можно доказать как в исчислении высказываний, так и в исчислении предикатов, то, полагая В = D(x, у) , получим (Vz/) (Vx) D (х, у) дэ (Vx) (Vz/) D (х, z/). Что и требовалось доказать.
ФОРМАЛЬНЫЕ СИСТЕМЫ 103 Аналогично могут быть доказаны и приведенные ниже, сле- дующие важные теоремы исчисления предикатов: (By) (Vx) D (х, у) => (Vx) (Зу) D (х, г/); ((Vx) (V//) D (х, у)) (Зх) (31/) (П D (х, //)); "1 ((Эх) (Зу) D (х, у)) (Vx) (V//) (1D (х, у))-, (Vx) D (х) зэ (Зх) D (х). Первая теорема Геделя: о "полноте” исчисления предикатов (1930 г.) В исчислении предикатов первого порядка все теоремы яв- ляются логически общезначимыми формулами, т. е. являются истинными во всех интерпретациях. Эта теорема в исчислении предикатов аналогична теореме Поста в исчислении высказываний. Однако в отличие от тео- ремы Поста теорема Геделя в исчислении предикатов не приво- дит к эффективной процедуре решения. Более подробно этот вопрос рассмотрен в разд. 6.3. 3.5.1. Формальная арифметика В этом разделе описывается формальная система, которая была .разработана Пеано и которая является расширением ис- числения предикатов. Она известна под названием формальная арифметика, или теория чисел. В формальной арифметике по сравнению с исчислением пре- дикатов дополнительно вводятся одна константа, четыре опе- ратора и девять аксиом. Этой новой константой является 0 (нуль). Дополнительные операторы: а — операция “непосредственно следующий” (например, для числа п это число (п + I)); о(0) = 1; Н----“плюс”, оператор сложения; * — “умножить на”, оператор умножения; =?= — “равно”, оператор равенства, играющий особую роль среди новых аксиом. Оператор о имеет вес, равный единице, а три остальных оператора имеют вес, равный двум. Ниже даны девять новых аксиом, в которых х, у, г обозна- чают любую последовательность символов формальной арифме- тики, не содержащую знака равенства: (А6): (Vx)x + 0 = x (А7): (Vx)x*0 = 0
104 ГЛАВА 3 (А8): (Vx)~| (ст(х)) = 0 (А9): (Vx) (У у) х + ст (z/) = ст (х + у) (А 10): (Vx)(Vz/) х * ст (z/) = x:* у + х (All): (Vx) (Vz/) (ст (х) = ст (у)) =э (х = у) (А12): (Vx)(Vz/)(x = z/)=>(o(x) = ct(z/)) (А13): (Vx) (Vz/) (Vz) (x = у) о ((x = z) => (у = z)) (A14): (A (0) и (Vu) (A (u) zd А (ст («)))) zz> (Vu) A (u) для всякой формулы А (и) данной формальной системы. В последней аксиоме формализуется рекуррентное рассуж- дение, называемое принципом формальной или математической индукции. Многие классические результаты не вошли в явном виде в эту систему аксиом и должны быть специально доказа- ны, как, например, свойство (х = у) (у = х), или в обычной форме записи: (х + у) — (у + х). Формальная арифметика играет исключительно важную роль в математической логике. Выше говорилось, что метатеоремы, используемые в формаль- ных системах (JP) и (DH) (разд. 3.2.3), могут быть получены в рамках формальной арифметики. Теперь установим более четко взаимоотношения между этими двумя простыми формаль- ными.системами и формальной арифметикой. Напомним, что система (JP) определяется одной аксиомой (А): а □ а, и одним правилом вывода (П): т\ □ т2-* bm\ □ □ bm2, где mi и т2 представляют собой какие-либо цепочки символов а и Ь. Символы а, Ь, □ этой системы являются ничем иным, как кодами, в качестве которых могут быть использованы любые другие символы и, в частности, цифровые символы 1, 2, 3. В этом случае аксиома (А) выглядит, как 131, а правило (П) выразится следующим образом: если формула, включающая тх с последующей цифрой 2 с последующей т2, является теоре- мой, то и формула, состоящая из 2, за которой следует ть за- тем 3, затем 2, затем т2, также является теоремой. Операция “следует за" (“с последующим”, “быть сопровож- даемым”) имеет соответствие в формальной арифметике. В обычной арифметике, чтобы построить число х, за которым следует число у, используя десятичную форму представления, достаточно умножить х на соответствующую степень числа 10 и прибавить у. Более строго это записывается так: если у со- стоит из п цифр, т. е. представляет собой число Ею'.сй, Z-0
ФОРМАЛЬНЫЕ СИСТЕМЫ 1С5 где число с(п— 1) не есть нуль, то в этом случае “число х с последующим у" есть не что иное, как число 10" *х + у. Чтобы получить результат от применения правила (П) к этой форме, начиная с правого его конца п,—1 т2= У. 10{*<7(г), i=0 строят число 10"2*2 и добавляют т2. Таким образом, полу- чается число, содержащее (n2 + 1) цифр. Наконец, чтобы по- строить формулу 3, сопровождаемую 2т2, добавляют 3 * I0"2+1 к предыдущему числу. Чтобы получить формулу 2, сопровождаемую т1( начиная с ГП[ = У 10* *<?(/), добавляют 10"‘*2 к гщ. 1 = 0 ' Наконец, чтобы получить «2т132т2», добавляют (2* Ю"1 + т^), умноженное на Ю"2*2, к числу 3 * 10"2+1 + 2 * 10"’ + т2. В общем случае правило (77) -может быть выражено в форме арифмети- зированного дополнения (ПА): Если имеется теорема /П!* 10"2+1 + 3* 10"’ +т2, где числа mi и т2 содержат соответственно П\ и п2 цифр, пусть это будут тх— У 10* * е (Z) и т2— У, 10**d(z), i=l i = l то является теоремой и выражение (2 * 10П1 + mJ * 10"г+2 + 3 * 10"’+14- 2 * Ю"’ + т2. Таким образом, начиная с теоремы 2213221 при щ = п2 == 3, с помощью правила (ПА) порождают теорему (2* 103 + 221) * 105 + 3 * 104 + 2 * 103 + 221, или 222 100 000 + 30 000 + 2000 + 221, или же 222132221. Таким образом, исследование системы (JP) полностью сво- дится к исследованию подсистемы формальной арифметики. Этот же метод может быть использован и для системы (DH). Закодировав символы М, I, U соответственно через 2, 1, 0, по-
106 ГЛАВА 3 лучаем аксиому в виде: 2 1. Правило (ПЗ): III ь->и, например, тогда записывается так: «Если (/И] * 10"2+3+ 1 Г1 * 10”2 + т2) является теоремой (т2 со- держит п2 цифр), то будет теоремой и выражение /«] * 10гаг+1 + т2». Таким образом, теперь система (DH) также “погружена” в формальную арифметику. При таком подходе доказательство' теорем и метатеорем в формальных системах (JP) или (DH) сводится, следователь- но, к доказательствам в формальной арифметике. Разумеется, на этой стадии имеется возможность для каждой арифметизи- рованной формальной системы дать интерпретацию в самой формальной арифметике. Таким образом, в арифметизирован- ной системе (JP) 1 интерпретируется как 1, 2 интерпретируется как “последующее число”; 3 интерпретируется как =. В этом случае, исходя из теоремы 222132221, получаем “истинное” выражение и в обычном смысле: 4 = 4. Таким обра- зом, кольцо замкнулось. Этот тип рассуждений приводит ко вто- рой теореме Геделя. 3.5.2. Вторая теорема Геделя (1931 г.): неполнота арифметики Арифметизацию можно выполнить для любой формальной системы. В частности, можно закодировать с ее помощью и та- кие формальные системы, как исчисление высказываний и ис- числение предикатов первого порядка, а также и саму фор- мальную арифметику! Доказательство Геделя навеяно этим ав- томорфизмом, который установил в формальной арифметике своего рода вариант “парадокса” лжеца. Этот парадокс проис- хождением обязан Эвбулиду (диалектику), принадлежавшему к Мегарской школе (4 век), основанной Евклидом Сократиком. Парадокс формулируется следующим образом: “Эпименид говорит: “Критяне — лжецы”, Однако Эпименид сам критянин...” Такого рода высказывание использовалось критиками ари- стотелевой логики. Оно не имеет формы силлогизма и широко обсуждалось в античной Греции стоиками и их комментатора- ми. На самом деле эта фраза вовсе не является парадоксом, по- скольку если принять гипотезу, что Эпименид — лжец, то ведь и то, что он говорит, является ложью. Если к рассматриваемому высказыванию применить отрицание, то получим в результате высказывание: “Существует критянин, который не лжет”. Это последнее высказывание уже ничему не противоречит. (Класси- ческой ошибкой является плохая формулировка отрицания и затем выведение из нее “парадокса”.)
ФОРМАЛЬНЫЕ СИСТЕМЫ 107 В последующем в течение длительного периода времени в ло- гике не было получено новых фундаментальных результатов, пока Лейбниц и затем уже современные логики, которые вновь исследовали результаты древних авторов, не систематизировали их и не ввели в логику математические методы. В результате этого появилась вторая теорема Геделя: “В формальной ариф- метике существуют формулы т, такие, что ни т, ни ~]т не яв- ляются доказуемыми». Доказательство этой теоремы в данной книге следует в ос- новном доказательству Ж. Ладриера, приведенному в книге «Внутренние ограничения формализмов» (Nauwelaerts et Gaut- hier Villars, 1957 г.), и подходу Д. Хофштедтера. Однако вна- чале приведем результат, который недавно был получен на ос- нове идей К. Геделя. Речь идет о методе “диагонали” (или диагональном рассуждении) Кантора, который в 1873 г. пока- зал, что множество действительных чисел не может быть пере- нумеровано с помощью целых чисел. В процессе доказательст- ва Кантор ограничился рассмотрением действительных чисел, заключенных в промежутке между нулем и единицей. Его идея состояла в том, чтобы построить бесконечный список L из та- ких чисел в виде десятичных дробей и в предположении, что этот список может быть пронумерован. Список L выглядит сле- дующим образом: 0, al bl cl dl . . . 0, а2 Ь2 с2 d2 .. . 0, an bn сп dn ... Сформируем теперь число б (Г) такого же типа, которое од- нако наверняка не является частью данного списка. Для этого достаточно в качестве значения ft-го разряда этой десятичной дроби принять увеличенное на единицу значение ft-го разряда дроби, находящейся в ft-й строке списка L. В результате такого построения мы получаем действительное число 0, (al + 1) (62 + 1) (сЗ + 1) (ftft И- 1) ..., которое, однако, по построению и в силу свойств использован- ных при этом десятичных дробей, отличается от любого числа, входящего в список L. Таким образом, доказательство воз- можности перечисления с помощью натуральных чисел всех дей- ствительных чисел не может существовать. Отметим, что идея доказательства состоит в том, чтобы “заставить” один и тот же номер ft одновременно выполнять две роли. Действительно, при
108 ГЛАВА 3 построении нашего диагонального числа номер k использовался одновременно и как индекс (вертикальный) действительного числа в списке L, и как номер позиции (горизонтальный) ка- кой-то цифры в десятичном представлении числа. Из такого ис- пользования “диагонального” k и родилось доказательство Кантора. Существует другой парадокс, связанный с методом диаго- нали Кантора, который в большей степени приблизит нас к подходу Геделя. Этот парадокс получил название парадокса Ришара (1907). Он в отличие от парадокса Эвбулида связан не с понятием ис- тинности, а с понятием определения. Рассмотрим, как опреде- ляются на обычном языке натуральные числа. Каждое такое число может быть однозначно описано с помощью конечного множества символов; букв, цифр, знаков препинания. Одно и то же число может иметь несколько различных определений. Договоримся, что в качестве определения данного числа будет использоваться наиболее короткое (т. е. содержащее наимень- шее число символов) из всех его определений. Теперь рассмотрим подмножество С целых чисел, определен- ных менее 100 символами. Это подмножество С является конеч- ным, поскольку существует лишь конечное число комбинаций, которые можно составить из конечного множества символов. Однако, поскольку множество всех натуральных чисел является бесконечным, существуют целые числа, которые не принадле- жат подмножеству С. Пусть число г является наименьшим сре- ди них. Тогда можно дать следующее определение для нату- рального числа г: “наименьшее натуральное число, которое не может быть определено, используя менее 100 символов”. Одна- ко именно это определение и сделано в предыдущей фразе с ис- пользованием менее 100 символов. В этом и заключаются про- тиворечие и парадокс, связанный с “зацикливанием” опреде- ления. Первый этап доказательства Геделя состоит в эффективном кодировании числами всех условий, входящих в определение формальной арифметики. Построение “парадоксального” усло- вия приведет в конце концов к знаменитой второй теореме Ге- деля: “Система формальной арифметики содержит некоторое выражение е*, такое, что ни е* и ни ~\е* не являются доказуе- мыми в формальной арифметике”. 3.5.3. Структура доказательства теоремы Геделя о неполноте арифметики Идея доказательства заключается в том, чтобы построить такое выражение, которое свидетельствовало бы о своей собст-
ФОРМАЛЬНЫЕ СИСТЕМЫ 109 венной недоказуемости. Такое построение может быть выполне- но в три этапа: • первый этап — установление соответствия между фор- мальной арифметикой и множеством целых чисел (гедели- зации); • второй этап — построение некоторого специального свой- ства А (х), о котором неизвестно, является ли оно теоремой формальной арифметики или нет; • третий этап — подстановка в А (х) вместо х определенного целого числа, связанного с самим Л(х), т. е. замещение этими числами всех хвЛ(х). Первый этап. Геделизация формальной арифметики Формальная арифметика может быть арифметизирована (т. е. геделизирована) следующим образом: каждой ее теореме ставится в соответствие некоторое число. Однако так как вся- кое число также является теоремой, то всякая теорема может рассматриваться, с одной стороны, в качестве теоремы фор- мальной арифметики, а с другой — как теорема над множест- вом теорем формальной арифметики, т. е. в качестве метатео- ремы, соответствующей доказательству некой теоремы. Таким образом, можно сделать вывод, что система формаль- ной арифметики содержит также и свою собственную метаси- стему. Теперь более конкретно и подробно изложим полученные результаты. Во-первых, мы можем связать с каждым символом и фор- мальной арифметики специальное кодовое обозначение, назы- ваемое в данном случае геделевым номером G(u). Во-вторых, каждой последовательности символов U мы ста- вим в соответствие тот же геделев номер G(U) с помощью не- которой функции композиции f. Пусть G(U) = f(G(ui)), где (м() представляют собой последовательности символов, которые образуют U. В-третьих (и это существенно), каждому доказательству А последовательности аксиом и правил подстановки (или правил замещения) ставится в соответствие число G(A) = f(G(Uj)), где (Uj) обозначает последовательность теорем, используемых при доказательстве Д. Таким образом, всякому доказательству Д в формальной арифметике соответствует некоторое число — его геделев но- мер б(Д). Всякое рассуждение формальной аримеТики преобра- зуется в вычисления на множестве натуральных чисел. Итак, вместо того чтобы производить манипуляции с сим- волами, теоремами, доказательствами, можно воспользоваться
110 ГЛАВА 3 вычислениями на множестве целых чисел. Всякое выражение, подобное, например, следующему: “/ — доказуемо в формаль- ной арифметике", теперь соответствует определенному числу, которое будем обозначать как Dem(t). Сформулируем следующее положение. Формальная метаарифметика содержится в множестве нату- ральных чисел, а оно само содержится в интерпретации фор- мальной арифметики. Эта ситуация с формальной арифметикой напоминает ситуа- цию с естественным языком: ведь нам ничто не мешает исполь- зовать его и для того, чтобы формулировать на нем основные его понятия и правила. Надлежащий выбор функции f позволяет осуществить одно- значный переход от Д к (?(Д), т. е. присвоить два разных числа- номера двум различным доказательствам. Например, можно так выбрать геделевы номера, чтобы каждому символу алфави- та формальной арифметики соответствовало свое простое число, как показано, например, в табл. 3.2. Каждая формула U (со- Таблица 3.2 и - 0 » 1 а ~IV AVa ( )exp G(u) 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°(U1) * 3G (“’) * 5g * ... * P° где Pq — q-e простое число. В свою очередь доказательство, т. е. последовательность из г формул U\, U.......Ur, будет закодирована аналогичным об- разом числом G (Д) = 2е * 3е* 5°("з) (V И наоборот, благодаря такому способу построения номеров ста- новится возможным, исходя из некоторого числа, с помощью разложения его на простые множители (в силу единственности разложения натуральных чисел в произведения степеней про- стых чисел) возвратиться за два шага к показателям степени б(щ), т. е. к примитивным символам формальной арифметики. Конечно, это имеет в основном лишь теоретическое значение, так как номера б(Д) быстро становятся слишком большими
ФОРМАЛЬНЫЕ СИСТЕМЫ 111 для того, чтобы ими можно было манипулировать. Однако сле- дует отметить, что существенным является принципиальная воз- можность этой операции. * Пример. Пусть задано число Т, соответствующее некоторому доказательству и представляющее собой произведение Простых чисел: 2198 102 7125» 2м * gl 981 027 125 * 2" Это разложение означает, что доказательство теоремы содер- жит два этапа: один соответствует числу 1981027125 * 253, а дру- гой— числу 1981027125 * 211. Разлагая снова на простые мно- жители каждое из этих чисел, получим 253 * З5 * 53 * 72 * 1 13 и 211 * З5 * 53 * 72 * 1 13. Из таблицы кодирования алфавита формальной арифметики (табд. 3.2) находим, что нашим геделевым номерам для этих двух чисел 53, 5, 3, 2, 3 и 11, 5, 3, 2, 3 будет соответствовать следующее доказательство; Из формулы х*0 = 0 следует формула 1*0 = 0. Таким образом, в метаарифметике получено значение исход- ного числа из формальной арифметики. Второй этап. Лемма Геделя Всякому числу Т, связанному с доказательством, соответст- вует теорема t, доказуемая в формальной арифметике. “Гедели- зированную” формальную арифметику называют арифметизиро- ванной формальной арифметикой. Поскольку каждая аксиома и каждое правило арифметизированной формальной арифмети- ки соответствуют какой-нибудь арифметической операции, то с помощью систематизированной проверки можно определить, соответствует ли данное число Т доказательству какой-то тео- ремы t. Числа Т и t образуют в этом случае пару сопряжённых чисел. Выражение “Г и t являются сопряженными” представи- мо внутри самой арифметизированной формальной арифметики. Это означает, что существует геделев номер D(T, t), который выражает в цифровой форме это утверждение. Мы подошли к критическому пункту доказательства Геделя. Пусть А является выражением арифметизированной формаль- ной арифметики, которое содержит какую-то свободную пере- менную. Вместо нее можно сделать подстановку какого-нибудь терма. В частности, можно заменить выражение А самим вы- ражением А. В этом случае номер-выражение А выполняет одновременно две различные роли (см. выше построения
112 ГЛАВА 3 Кантора и Ришара): оно одновременно является истинным вы- ражением для подстановки и результирующим термом. Эту.спе- циальную подстановку будем обозначать как S*. Так формула S*'A, п) означает, что число п есть геделев номер, получаемый при выполнении подстановки -* к выражению А: S* (А, п)<=>п есть „* в А“ Затем Гедель строит выражение (о котором неизвестно, пред- ставляет ли оно собой теорему или не-теорему), в которое вво- дит эту подстановку. Выражение имеет следующий вид: ((ВТ) (3t) D (Т, t) AS’(F, п)). Третий этап. Завершающая подстановка В арифметизированной формальной арифметике это выра- жение представлено в цифровой форме. Пусть Е — его. геделев номер. Так как выражение е содержит свободную переменную F, то мы имеем право выполнить подстановку -* над е, заме- щая F числом Е и обозначая /*-замещение Е: -| ((ЗЛ (30 D (Т, t) л S* (£, 0. Это второе выражение обозначим через е*, а его геделев но- мер через Е. Дадим интерпретации выражения е*. Первая интерпретация. Не существует такой пары (Т, t), для которой одновременно выполнялось бы следующее: с одной стороны, Т — номер арифметизированного доказательства тео- ремы t, арифметизированной ею самой, а с другой — было бы S*(E, t), т. е. “t есть *-замещение Е". Но так как S* есть такое же преобразование, как и другие, то оно представимо в тер- мах *, /, ... и в их кодовых обозначениях — геделевых номе- рах и, следовательно, такой номер существует. Тогда, возмож- но, номер Т не существует. Вторая интерпретация. Не существует арифметизированного доказательства Т теоремы t, которое было бы *-замещением Е. Итак, если не существует доказательства, то потому, что t само по себе не является теоремой. Отсюда вытекает третья интер- претация. Третья интерпретация. Выражение, для которого геделев но- мер есть *-замещение Е, не является теоремой арифметизиро- ванной формальной арифметики. Но в этом и заключается про- тиворечие, так как по построению именно само е* является •-замещением Е и номер t есть не что иное по построению, как сам номер Е. Отсюда вытекает последняя интерпретация е*. Четвертая интерпретация, е* не является теоремой арифме-
ФОРМАЛЬНЫЕ СИСТЕМЫ 113 газированной формальной арифметики, т. е. выражение е* про- сто утверждает, что “Я не есть теорема”. Следовательно, возможно одно из двух: • либо е* является теоремой, но тогда формальная ариф- метика противоречива, так как одновременно е* и Пе* явля- ются доказуемыми; • либо е* является не-теоремой. Тогда нет противоречия, но зато то, что утверждает выражение е*, является истинным, но недоказуемым! Следовательно, в формальной системе сущест- вует зона недостижимой истины. После доказательства того, что ~\е* недоказуемо, приходим к следующей формулировке вто- рой теоремы Геделя. Вторая теорема Геделя (1931 г.): Если формальная арифметика непротиворечива, она явля- ется неполной. Класс ft це пуста, Выражения неразрешимы >—t: теорема ЛЛ-1-. не-теорема. Класс 2: пусто по непро- тиворечивости Классы 3 и 4 симметричные (обладают свойством пол- ноты) Рис. 3.4. Вторая теорема Геделя. Это, в частности, для нашего случая означает, что сущест- вует по крайней мере одно выражение е*, такое, что как е*, так и ~|е*, не являются теоремами. Как и в естественной интерпретации формальной арифмети- ки (в которой символ "1 соответствует отрицанию), Строго по- стулируется “либо е* есть ИСТИНА, либо е* есть ЛОЖЬ (т. е. есть ИСТИНА)”, т. е. постулируется непротиворечивость. Отсюда следует, что формальная арифметика не является пол- ностью доказуемой, и в формализации существуют пробелы. Этот вывод распространяется на все те формальные системы, которые содержат аксиомы формальной арифметики. Таким об- разом, понятие истинности не является полностью формализуе- мым, и непротиворечивость какой-то теории не может быть
114 ГЛАВА 3 доказана в рамках этой теории. На рис. 3.4 эта ситуация ото- бражена в виде схемы. Замечание. Выше представлена только схема доказательст- ва, которое одновременно является необычным, строгим и фун- даментальным. Отметим, что если добавить к исходным аксио- мам формальной арифметики аксиому е* или аксиому “|е* (как в других случаях, например для получения неевклидовой гео- метрии), то на самом деле это не сняло бы проблемы. Просто тем же способом было бы найдено выражение е**, которое не- доказуемо. 3.6. Теоремы ограничения в формальных системах Вторая теорема Геделя была первой теоремой ограничения и произвела огромное впечатление одновременно и на математи- ков, и на философов. Она не была единственной теоремой огра- ничения. Ниже мы приведем еще две теоремы ограничения (Тарского и Черча), имеющие большое теоретическое и прак- тическое значение. Теорема Тарского (1935 г.) Существуют формальные системы, для которых всякая ин- терпретация приводит к выражениям одновременно истинным и недоказуемым. Эта теорема является парной (относительно интерпретаций) ко второй теореме Геделя. В сжатом виде она формулируется так: “то, что истинно, всегда недоказуемо” или же “понятие истинности неформализуемо”. Теорема говорит, что в каждой интерпретации существует по крайней мере одна формула, всег- да интерпретируемая как ИСТИНА, которая однако не является теоремой данной формальной системы. Теоремы Геделя и Тарского вводят в рассмотрение интер- претации. Для теоремы Тарского это очевидно, но и результат Геделя базируется на использовании символа отрицания в его обычном значении и постулата непротиворечивости (т. е. невозможности одновременного выполнения в системе t и ~\t, в противном случае легко доказывается, что всякая формула системы является теоремой; однако подобные формальные си- стемы почти не представляют интереса). Теорема Черча (1936 г.) Исчисление предикатов первого порядка неразрешимо. Следовательно, существуют неразрешимые формальные си- стемы. Иначе говоря, для некоторых формальных систем невоз-
ФОРМАЛЬНЫЕ СИСТЕМЫ 115 можно построить системы процедур, позволяющих отличать теоремы от не-теорем. Такие системы называются неразреши- мыми, или говорят, что они не являются, рекурсивно перечисли- мыми. Конечно, хотелось бы обойтись без таких формальных систем, но это невозможно, тем более, что уже исчисление пре- дикатов первого порядка, как показал Черч, является неразре- шимым. Тем более неразрешимой является более мощная фор- мальная система, представленная в “Основаниях математики” Рассела и Уайтхеда. Тарский показал также, что теории групп, колец и тел являются неразрешимыми, а проективная геомет- рия в пространстве вещественных чисел и теория вещественных замкнутых тел являются разрешимыми. Кроме того, доказано, что исчисление предикатов первого порядка является полураз- решимым, т. е. для выражений t, которые эффективно являются теоремами, имеется конечная процедура, которая их доказы- вает. Все эти доказательства основываются на определении процедур решения. Черч идентифицировал понятие эффектив- ной или вычислимой процедуры, т. е. алгоритма, или функцио- нальной рекурсивной процедуры (“тезис” Черча). Независимо от других в 1937 г. Тьюринг формализовал идею вычислительной машины и свел проблему разрешимости к проб- леме останова идеальной вычислительной машины (см. разд. 5.11). Оба подхода оказались в результате идентичными, и было показано, что в общем случае не существует ни рекур- сивной функции, ни машины Тьюринга, с помощью которых можно было бы определить, является ли какая-то заданная формула теоремой (или не является) в данной формальной си- стеме (или в данном “языке”). В частности, неразрешима про- блема останова программы, выполняемой на машине Тью- ринга. Семейство теорем ограничения подобно принципу неопреде- ленности Гейзенберга в физике, установленному несколькими годами ранее (1927 г.) в квантовой механике. Согласно этому принципу, некоторые физические величины связаны между со- бой таким образом, что хотя не существует ограничений на точ- ность измерения каждой из них, тем не менее точность их сов- местного измерения ограничивается значением постоянной Планка. Произведение погрешностей измерения этих двух ве- личин не может быть меньше этой постоянной. Некоторые философы и специалисты по теории информации, как, например, Ж. Лука, Е. Нагель и Д. Ньюман, пытались применить теоремы ограничения к проблемам обработки сим- вольной информации на ЭВМ. Основываясь на этих теоремах, они сделали, на мой взгляд, несколько преждевременный вывод о превосходстве интеллекта человека над машиной. Подобные
116 ГЛАВА 3 аргументы до сих пор используются, чтобы дискредитировать все исследования по искусственному интеллекту. На самом деле результаты, полученные Геделем, Тарским и Черчем, говорят только о том, что некоторые задачи неразрешимы средствами современной математики. Эти ограничения относятся к людям в той же степени, что и к ЭВМ, так же касаются математиков, как и машинных программ. И тем не менее это не привело на- чиная с 1930 г. когда эти теоремы были доказаны, к свертыва- нию математических исследований (наоборот, к их расшире- нию). Некоторые задачи решить невозможно, но зато другие задачи заслуживают того, чтобы их решили. Кроме того, зна- ние задач, которые являются трудноразрешимыми, открывает новые пути для поисков. Гипотезы Гольдбаха, великая “теоре- ма” Ферма по-прежнему еще не классифицированы (не опре- делено, являются ли они доказуемыми или неразрешимыми). Вторая задача Гильберта, сформулированная наряду с 22 дру- гими в 1905 г. (найти метод решения для произвольного уравне- ния в целых числах) была снята с повестки дня в 1970 г. Матиасевич доказал ее неразрешимость. Знаменитая проблема четырех цветов (раскрасить геогра- фическую карту, используя только четыре различных цвета, причем так, чтобы любые две соседние страны имели различ- ные цвета) (гл. 5) была разрешена с помощью ЭВМ в 1976 г. Аппелем и Хакеном спустя более 120 лет после того, как она была поставлена Ф. Гутри. Если задача вам кажется очень трудной, удостоверьтесь сна- чала, что она не относится к одному из известных случаев не- разрешимости, и если это не так, то не отказывайтесь от нее слишком быстро! В заключение приведем формулировки теорем ограничения: Возможны формальные системы, в которых • существуют’формулы tn, такие, что ни т, ни ~\т не являются доказуемыми (теорема Геделя); • во всякой их интерпретации найдутся выражения, истинные, но недоказуемые (теорема Тарского); • не существует алгоритма, чтобы отличать теоремы от не-тео- рем (теорема Черча). 3.7. Алгоритм унификации Описываемый ниже алгоритм предназначен для ответа на вопрос: “Как применить теорему к выражению?” Этот алгоритм не зависит от формальной системы, в которой применяется. Для заданных теоремы и выражения алгоритм выполняет в строгой последовательности, двойной проход в предварительно опреде-
ФОРМАЛЬНЫЕ СИСТЕМЫ 117 ленном порядке. Его сложность линейно зависит от общего чис- ла замещаемых переменных в теореме и выражении. В неявном виде этот алгоритм уже использовался в предыдущих разделах при- некоторых доказательствах в различных формальных си- стемах. Данный алгоритм, разработанный в 1966 г. Ж. Питра и не- зависимо от него Дж. Робинсоном, играет фундаментальную роль в искусственном интеллекте. 3.7.1. Задача Для данной теоремы Т в форме правила переписывания или продукции с антецедентом вида Н ---------->• С (Г) (гипотеза) влечет (заключение) и некоторого выражения Е необходимо проверить, можно ли сделать Н и Е полностью идентичными, т. е. унифицировать Н и Е путем последовательных подстановок свободных перемен- ных в Н и Е. Подстановки, выполненные в С, дают новую фор- му выражения Е в результате применения теоремы Т (с исполь- зованием правила модус поненс). Примеры унификации 1. Пусть алгебраическое тождество (a + b)2 = a2 + 2ab + b2 (71) рассматривается в качестве удобного сокращенного представле- ния правила переписывания: “Если какое-то выражение явля- ется квадратом суммы двух термов, его можно переписать в виде суммы квадрата.первого терма, удвоенного произведения обоих термов и квадрата второго терма”. Пусть, кроме того, имеется выражение x2+(z/+V3)2. (£1) В данном случае легко увидеть совпадение выражений в скобках в (71) и (£1): подстановка у вместо а и д/З вместо b позволяет унифицировать (z/+V3) и левый член тождества (71). 2. Аналогично известное правило переписывания sin2iz + cos2tz 1 (72) применяется к выражению sin23x + cos23x, (£2)
118 ГЛАВА 3 чтобы показать, что последнее также дает единицу (/2). Но унификация с тем же правилом (/2) не получается, если взять выражение sin23x+ cos2x. (£3) Унификация также невозможна при использовании выра- жения cos2 Зх + sin2 Зх, (£4) так как в’этом случае требуется коммутативность относительно знака +• Это затруднение можно устранить с помощью исполь- зования правила и -f- b ।—> b ц, предварительное применение которого к выражению (£4) по- зволяет затем выполнить унификацию выражений (£2) и (/2). 3. Предыдущие примеры представляли собой простейшие случаи унификации. Однако далеко не всегда так просто. В об- щем случае возникает проблема выбора подстановок: ведь мо- жет существовать множество различных способов для получе- ния совпадения подстановок двух формул, причем некоторые способы дают формулы, выводимые из какой-либо более общей формулы. Так, пусть в исчислении высказываний выражение является теоремой, вытекающей из первой аксиомы исчисления высказываний: (Р => (<? р)) (£5) и пусть имеется метатеорема ((£=3Q)^£)-(Q^£). (П) Ниже показаны те возможные “естественные” подстановки, которые, однако, не являются оптимальными. Они приведут к правильному результату — частному выражению, которое, од- нако, не представляет большого интереса. Вспомним “правила игры”: в исчислении высказываний пропозициональные буквы р, q, г... и формулы Р, Q, Р... являются свободными переменны- ми. Все появления какой-либо переменной могут быть замеще- ны термом, не содержащим замещаемой переменной. Чтобы привести к совпадению выражения (Т1) и (£5), можно вначале сделать пробные шаги. Так, подстановка, преобразующая Q в q в выражении (П), дает ((£=)<?)=) R)->-(q=> Р). (EQ){Q/q}
ФОРМАЛЬНЫЕ СИСТЕМЫ 119 Изменим р в (£5) на Р zd q так, чтобы унифицировать на- чальные символы выражений (£5) и (£6) (Р => q) zd (q ZD (Р => q)). (£7) {р/Р zd q} Получим совпадение между (£5), в которой сделана подста- новка, и левым членом теоремы (£1), в которой также выпол- нена подстановка. При этом имеется еще резервная возмож- ность изменения R на величину (q zd (PzDq)). Правый член выражения (£6), как и в предыдущих примерах, дает искомый результат: (<7=>(<7='(£ =э <?))) (£8) {R/(q zd (Р zd q))} Однако, ниже мы увидим, что алгоритм унификации без вся- ких пробных шагов дает нужный результат (pZD(qz=>(PzDq))). (£9) Очевидно, что последнее выражение представляет собой наи- более общий результат. Предыдущий результат соответствовал частному случаю р = q. Ниже описан оптимальный алгоритм унификации, который представляет особый интерес, так как, с одной стороны, дает прямой систематический метод приведения к совпадению двух каких-либо формул с помощью подстановок в них, а с другой — эти!подстановки, полученные без полного перебора, носят наи- более общий характер. 3.7.2. Идея алгоритма Выражение £ и теорему Т будем просматривать парал- лельно и на одну и ту же глубину. Выполним только те унифи- кации, которые необходимы. Если удастся в конце концов прий- ти от гипотезы Н к теореме Т, унификация окажется успешной и результат находится в выражении С, модифицированном с помощью тех же подстановок. Иначе неудача. Во всяком выражении только свободные переменные явля- ются замещаемыми, т. е. те переменные, которые не являются квантифицированными (на них не распространяется действие кванторов V или В). Единственно разрешенными подстанов- ками являются такие, которые замещают свободную перемен- ную х из £ или Н термом t из £ или Н. Имеется только одно ограничение: терм t сам не должен уже содержать переменную х. Поэтому, чтобы избежать всякой неоднозначности и неопределенности, в первую очередь проводится “разделение
120 ГЛАВА 3 имен” переменных из Е или Т, каковы бы ни были их началь- ные имена. Подстановки выполняются только по необходимости. Сим- волы, которые не являются переменными, не могут замещаться. К таким символам относятся либо операторы (например, +, *, ±э, sin...), либо константы (например, 1, 2, ...). Естественно, та- кие символы должны находиться на аналогичных позициях в Е и И, иначе невозможна никакия унификация. Фундаментальная идея, лежащая в основе алгоритма, свя- зана с процедурой просмотра выражения: вначале основной оператор, затем каждый из подтермов, которыми он управляет, начиная, например, с самого левого. Каждый подтерм при этом просматривается параллельно: основной оператор, подтерм и так далее до переменной или константы. Удобным для этого является представление выражения в виде дерева (рис. 3.5). Рис. 3.5. Представление выражения x2-f- (х+уТ)2 и порядок его просмотра в соответствии с алгоритмом унификации. Порядок просмотра носит префиксный характер: каждый сим- вол обрабатывается в той последовательности, в которой он встречается при спуске по дереву сверху вниз и слева направо (в порядке номеров, показанных на правой части рис. 3.5). Используя этот порядок просмотра (вначале вглубь), для задания последовательности просмотра введем -индексы е и h: е~ индекс текущего символа в выражении Е и h — индекс те- кущего символа в выражении Н. В общем случае принцип рекуррентности формулируется следующим образом: пусть все символы в выражениях Е и Н совпадают вплоть до символов с индексами е и h, не включая их; попытаемся привести к совпадению символы с индексами е и h соответственно в Е и Н. Имеются четыре возможных ва- рианта ситуаций, при которых каждый из символов с индекса- ми е и h соответствует (либо нет) какой-то замещаемой перемен- ной. Если подстановка должна быть сделана, она выполняется с помощью определенной процедуры, называемой SUB. Ниже описана эта процедура подстановки.
ФОРМАЛЬНЫЕ СИСТЕМЫ 121 3.7.3. Процедура подстановки Процедура подстановки SUB работает со следующими дан- ными: v — наименование переменной, которая должна быть за- мещена; t — терм, который подставляется вместо этой перемен- ной; е, 1г — индексы. После выполнения подстановки достига- ется совпадение выражений Е и Т, включая термы с индексами е и h. Текст процедуры представлен ниже. Выделенные курсивом наименования соответствуют элементарным функциям, которые здесь не рассматриваются подробно, так как их выбор опреде- ляется конкретным способом выполнения процедуры. Значения индексов е и h изменяются вне процедуры подстановки. Процедура SUB ДАННЫЕ: v, t, е, h (свободная переменная, терм, индекс в выражении Е, индекс в выражении Н). РЕЗУЛЬТАТЫ: ЛОЖЬ, если иначе ИСТИНА и новые значения Е, Т, SUB «-ИСТИНА. ПРОСМОТРЕТЬ t, начиная с подстановка невозможна, е, h. начала ЕСЛИ тёкущий-символ = v ТОГДА SUB*-ЛОЖЬ ВОЗВРАТ (случай неудачи 1) КОНЕЦ БЛОКА ЕСЛИ КОНЕЦ ПРОСМОТРА е «- индекс-терм-текущий-терм-начинающийся в е Н^индекс-терм-текущий-терм-начинающийся в h {Обработанные части в Е и Н не представляют больше ника- кого интереса, и, следовательно, нет необходимости в про- смотре вплоть до индексов е и h, так как начальные части Е <и Н совпадают.} И) (2) У (3) 3 (4) Рис. 3.6. Представление выражения t = + V3-
122 ГЛАВА 3 ПРОСМОТРЕТЬ Е, начиная се ЕСЛИ текущий-символ = v ТОГДА заместить текущий-символ на t. КОНЕЦ БЛОКА ЕСЛИ КОНЕЦ ПРОСМОТРА ПРОСМОТРЕТЬ Т, начиная с h ЕСЛИ текущий = символ = v ТОГДА заместить текущий-символ на /. КОНЕЦ БЛОКА ЕСЛИ КОНЕЦ ПРОСМОТРА Занести в память подстановку (а, /) КОНЕЦ ПРОЦЕДУРЫ SUB Пример подстановки Если в предыдущем выражении (рис. 3.5) переменную х же- лательно заменить выражением (z/ + V3)> процедура выпол- Рис. 3.7. Новый вид выражения Е после подстановки. Конец процедуры SUB: х няется следующим образом: v = х, t = у + д/з, е = 3, /г=1. ПРОСМОТР /: возможная подстановка (рис. 3.6); е-<-4 индекс следующего тер- ма в Е\ h^5 индекс следующего тер- ма в Я; ПРОСМОТР Е, начиная с е: текущий символ х встречается снова при индексе 7 и замещает- ся термом t. Результирующее вы- ражение показано на рис. 3.7. ПРОСМОТР Т-. в данном слу- чае нет объекта для просмотра. замещен только в той части выра- жений, которая необходима для унификации в предположении, что начальные их части уже унифицированы. Ниже описан сам алгоритм унификации. 3.7.4. Тело алгоритма унификации Процедура УНИФИКАЦИЯ ДАННЫЕ: Е (выражение) Т — (Н, С) теорема-(гипотеза, заключение)
ФОРМАЛЬНЫЕ СИСТЕМЫ 123 РЕЗУЛЬТАТ: ИСТИНА и новое Е = новое С со списком вы- полненных подстановок, если унификация прошла успешно. ЛОЖЬ иначе е *- начальное-выражение (Е) (s(e) — символ из е в Е) h<- начальное-выражение (Н) (s (/г) — символ из h в Н) ПРОСМОТРЕТЬ параллельно Е и И, начиная с е и h. ПОКА h конец-выражения (Н) ЕСЛИ s (е) ¥= s (/г) ТОГДА {Если равенство уже имеется, то продолжают прямой просмотр} {Вначале оба случая, когда символ из е является опера- тором: константы рассматриваются как операторы) ЕСЛИ х(е)-оператор ТОГДА ЕСЛИ 5 (й)-оператор ТОГДА унификация ЛОЖЬ; ВОЗВРАТ; {случай неудачи 2} ЕСЛИ НЕТ t<— терм-дебютант из е в Е; {s(h) является свободной переменной, в которой заме- щается терм /} SUB (s(A), t, е, h). КОНЕЦ БЛОКА ЕСЛИ ЕСЛИ НЕТ {случай, когда символ из е является переменной} ЕСЛИ s(А)/оператор ТОГДА SUB (s(Zi), s(e), e, h) {переменную заменить на переменную: простое изменение одного из наи- менований} ЕСЛИ НЕТ t <— терм дебютант из h в Н\ SUB (s(e),f,e,/i) КОНЕЦ БЛОКА ЕСЛИ КОНЕЦ БЛОКА ЕСЛИ ЕСЛИ SUB = ЛОЖЬ ТОГДА УНИФИКАЦИЯ*-ЛОЖЬ; ВОЗВРАТ; КОНЕЦ БЛОКА ЕСЛИ
124 ГЛАВА 3 КОНЕЦ БЛОКА ЕСЛИ КОНЕЦ УНИФИКАЦИЯ <- ИСТИНА ВОЗВРАТ; Список выполненных подстановок. {Новое выражение Е представляет собой заключительную часть С теоремы Т, в которую делались подстановки}. КОНЕЦ УНИФИКАЦИИ 3.7.5. Завершение работы алгоритма унификации Процедура завершается, когда доходят до конца выраже- ния Н. Выражение Е может иметь больший размер, чем выра- жение Н, если теорема Т представляет собой правило перепи- сывания. Поскольку правые ветви деревьев, представляющих выражения Е и Н, могут разрастаться, необходимо показать, что процесс на самом деле завершен. Известно, что в начале процесса число переменных, заме- щаемых в выражениях Е и Н, является конечным. С одной сто- роны, во время выполнения процедуры не создается новых пе- ременных, а с другой, каждая подстановка, которая замещает переменную термом, не содержащим ее, приводит к уменьше- нию общего числа обрабатываемых переменных. Следова- тельно, алгоритм унификации является сходящимся при числе подстановок, большем или равном первоначальному числу сво- бодных переменных в Е и Н. Приведем примеры работы алгоритма. 1) E = a-\-b "I Случай неудачи 2: Т^х*у->у*х ) операторы не унифицируемы 2) £ = sin2 a + cos2 а Аналогично предыдущему Г == sin2x + cos2 х —> 1 ) (операторы — константы) 3) E = logVa—logV2*a 1 Случай неудачи 1 Т = х — х—>0 J (в процедуре SUB) Вначале выполняется подстановка logVa вместо х. Выра- жение Т принимает в результате новый вид: log л]а — log 0- Таким образом можно унифицировать функции log и д/ , но затем необходимо сделать подстановку 2 * а, а это запре- щено (случай неудачи 1 в процедуре SUB). 4) Рассмотрим вновь пример из исчисления высказываний,
ФОРМАЛЬНЫЕ СИСТЕМЫ 125 который уже встречался нам выше: E = (p=>(q=> р)) При этом будем использовать для наглядности древовидную структуру представления выражений (рис. 3.8—3.10). Два первых символа в выражениях Е и Н являются одним и тем же оператором гэ: продвигаются вперед по обоим де- ревьям. В Е встречается какая-то переменная (пусть это будет р), тогда как в Н знак тэ указывает на начало некоторого тер- ма t. Следовательно, нужно изменить р в t, где t есть поддерево (рис. 3.9). Рис. 3.8. Унификация в исчислении высказываний. (Выражение) ' (Гипотеза) (Заключение) Рис. 3.9. Унификация (продолжение). Уже исследованные символы представлены точками. Лодстановкч t в R? еде: t а э 4 : р приводит к завершению просмотра Н и дает : Рис. 3.10. Унификация (окончание).
126 ГЛАВА 3 В выражении Е встречается связка в той позиции, в кото- рой в выражении Т встречается Р. На рис. 3.10 показан Даль- нейший ход унификации. Как видно из рис. 3.10, унификация в данном случае про- шла успешно. Выражение Е преобразуется в выражение F: (Qd (? □(/>=> Q))) при помощи подстановок p/Pz^Q и R/q zd (PtdQ). Другими словами, выражение Е и часть гипотезы Н теоремы Т приве- дены к виду (Р о Q) о (Р дэ (Р => Q)), чтобы получить выражение F. В результате нормализации, ис- ходя из выражения Е и теоремы Т, приходят к результату (Р =э q) ДЭ (г ДЭ (р дэ <?)) -> (q дэ (г дэ (р => ?))). Левый член этой продукции является наиболее общей тео- ремой, какую только можно получить, исходя из Е и Т. Отме- тим для сравнения, что результат, полученный в разд. 3.7.1 в итоге пробной попытки, является лишь частным случаем. 3.7.6. Незамещаемые переменные До сих пор предполагалось, что переменные в выражении Див теореме Т играют одну и ту же роль, однако это не всегда так. Действительно, какова бы ни была рассматриваемая фор- мальная система, уже по определению переменные теоремы яв- ляются во всех случаях замещаемыми. Это вытекает из того, что с самого начала предполагается, что эти переменные яв- ляются универсально Т’-квантифицированными и становятся свободными в силу аксиомы спецификации. Однако часто встре- чаются и ситуации, когда “переменные” в Е не являются заме- щаемыми. Случай, когда s(e) является переменной из Е, a h обозна- чает начальную часть терма, соответствует ситуации, представ- ленной в третьем примере унификации, когда она невозможна (последняя подстановка недопустима в процедуре подстановки: случай неудачи 3). Это отражает тот факт, что переменные в Е в противоположность переменным, входящим в теорему, не всегда являются свободными, даже если сами кванторы удале- ны в процессе записи, ведь в общем случае с выражением про- изводятся определенные манипуляции при его вычислении или оценке. (Например, в выражении Зх2 + 4х — 6 = 0 переменная х не является свободной и любая подстановка на место х являет- ся недопустимой.) Следовательно, фигурирующие в них пере-
ФОРМАЛЬНЫЕ СИСТЕМЫ 127 менные становятся в результате все более ограниченными (свя- занными) и их нельзя законным образом замещать каким-либо термом. В частности, возможно, что различные “переменные”, становятся взаимозависимыми. Переменные любой теоремы являются свободными (или не-, мыми) переменными. Напротив, в общем случае переменные какого-то выражения являются связанными. В этом случае го- ворят о полу унификаций, или фильтрации. Так, в алгебре пра- вило приведения Т = а + (Ь — а) >—> b является вполне допустимым. Когда же пытаются его приме- нить к какому-то текущему выражению, например Е = х + у, то первая подстановка, когда а замещается на х, является до- пустимой. Теорема Т переходит в Т1: Т1==х+(Ь — х)^Ь. Однако вторая подстановка, при которой переменная у заме- щалась бы термом (Ь — х), здесь в принципе недопустима, так как, например, при решении какой-то системы уравнений отно- сительно неизвестных х и у эта система связывает “перемен- ные” х и у между собой. (Если, однако, желательно выполнить эту подстановку, то следовало бы ввести преобразование (у заменяется на b — х) в качестве условия, связывающего переменные х и у, для всей последовательности решения задачи. При помощи этого усло- вия выражение Е может быть сведено к переменной Ь, остаю- щейся свободной.) Рассмотрим более конкретный пример. В поле вещественных чисел правило переписывания, приве- денное ниже, является допустимым: ег * ег е2г (Г) Это правило может быть использовано для упрощения сле- дующего выражения: gX-З * (Лу-З _ g2 Первая подстановка заменяет z на х — Зв теореме Т, кото- рая принимает вид ^х — 3 jj. ^х — 3 । ^2 (х — 3) Вторая подстановка замещает х на 2у в теореме Т; унифи- кация является успешной и заключительная формула теоремы
128 ГЛАВА 3 Т имеет вид g2(2t/-3). Однако здесь неявно использовано дополнительное условие х = 2у при последней подстановке. В свою очередь при решении уравнения (7?) мы получаем е2(2у-2> _ е2 либо у = 2 (и, следовательно, х = 4). Однако на самом деле выражение (/?) может быть решено непосредст- венно без использования теоремы (Т), и тогда ех+2у~ь = е2 либо х + 2у = 8. Очевидно, что здесь получено общее решение для выраже- ния (/?), тогда как решение, полученное раньше при унифика- ции, представляло собой только частные случаи. Здесь символы х 'и у, связанные между собой равенством (R), не являются переменными, замещаемыми в обычном смыс- ле. Если, однако, требуется заменить их термами, необходимо ввести соответствующие условия и впоследствии проанализиро- вать полученные решения. При унификации нужно с осторожностью относиться к таким ложно свободным переменным, которые естественным образом появляются в исследуемых выражениях. Такого рода перемен- ные принято называть неопределенными. Они могут быть заме- щаемыми только при условии последующей проверки допусти- мости. Без такой предосторожности при использовании алго- ритма унификации легко получаются ложные заключения. 3.7.7. Реализация алгоритма унификации Алгоритм унификации с учетом сделанных выше замечаний может быть использован в различных областях математики: алгебре, арифметике, тригонометрии, логике, дифференциаль- ном и интегральном исчислении. Без особых сложностей алго- ритм унификации может быть обобщен для правил вывода (по- рождающих правил) с многими антецедентами Н\ и Н2 и... Нп С. При унификации этот алгоритм применяется к каждой тео- реме рассматриваемой предметной области; при заданной тео- реме он применяется к каждому подвыражению исследуемого при этом выражения. Ниже представлена общая форма про- цедуры доказательства. Общая процедура доказательства ПРОЧЕСТЬ {т — множество допустимых продукций или правил переписывания в данной предметной области; т представляет собой данные, связанные с про- цедурой в самом общем смысле}.
ФОРМАЛЬНЫЕ СИСТЕМЫ 129 ПРОЧЕСТЬ {в= исследуемое выражение}. ПОВТОРИТЬ ДЛЯ каждой теоремы Т из х ПОВТОРИТЬ ДЛЯ каждого подвыражения Е из в УНИФИКАЦИЯ (Е, Т) КОНЕЦ ПОВТОРИТЬ НАД Е КОНЕЦ ПОВТОРИТЬ НАД Т ЗАПИСАТЬ в {в = выражение, модифицированное в соот- ветствии с т} Выполнение процедуры прекращается, когда уже никакая теорема не может быть применена ни к какому подвыражению. Приведенное выше описание процедуры представляет собой только ее принципиальную схему, которая может быть и неэф- фективной, если множество х теорем является достаточно боль- шим. Определенные правила при этом могут иметь более высо- кий логический приоритет, чем другие. Более того, порядок при- менения теорем не является безразличным в смысле окончатель- ного результата 8, который в общем случае может зависеть от этого порядка. Если желательно изменять в так, чтобы при этом достигалась какая-либо заданная заранее цель, то необходимо проведение сравнительного исследования различных порядков применения теорем в х и/или выбора позиций различных выра- жений Еве. Следовательно, необходимо разумно управлять этим процессом в соответствии с функцией цели и контекстом общей процедуры унификации. При этом возникает фундаментальная проблема: описанная общая процедура может оказаться бесконечной. В частности, возможна ситуация, когда х будет содержать, например, два таких правила: х—-хн>0 и Он->х —х. На самом деле то же явление зацикливания может порож- даться и одним единственным правилом, таким, например, как x + yi—>у + х или х *-у у * х. Правило такого типа вызывает бесконечные преобразования двух термов из в, следующих друг за другом, например, 5 Ж.-Л. Лорьер
130 ГЛАВА 3 при таком наборе правил: и * (v/w) н-> (u * v)jw, tgx н-> sin x/cosx, (и*о)/йь-»о, sin х t—> cos x * tg x, где происходит зацикливание по выражению sin х. Проблема зацикливания решается с помощью двух спе- циальных процедур: процедуры нормализации для выражения и процедуры запрета для теорем. Нормализация основывается на том, что определенные пра- вила применяются только при наличии определенного условия, которое запрещает повторное применение правила вывода; ина- че это может привести к потере полученного перед этим резуль- тата. Таким образом, например, теорема коммутативности для оператора умножения у *х*—* х * у будет применяться к выра- жению, содержащему х и у только тогда, когда масса перемен- - ной х будет меньше массы переменной у. Здесь масса перемен- ной представляет собой числовую функцию, характеризующую желаемый порядок следования переменных, входящих в рас- сматриваемое выражение. В этом случае выражение записы- вается в виде, например, 2 * а, а не в виде а *2, или x*y2z, а не zx'y2. Применение запрета. При ничем не ограниченном использо- вании некоторых порождающих правил возможны не только полезные, но и нежелательные преобразования, в частности, это может быть связано с унификацией текущего выражения. Так, например, совместное использование правил х — х>—->0 и 0>—*х— х должно быть запрещено. Аналогичным образом при использовании правила tg х >—> sin x/cos х должно быть запре- щено использование двух правил инверсного перехода от сину- са и косинуса к тангенциальным термам: sin х I—tg х * cos х и cos хн-> sin x/tg х. Возможен случай, когда применение некоторых правил ока- зывает влияние и на использование каких-то других правил, применение которых до этого было запрещено. Это тот случай; когда в результате применения некоторого правила структура, рассматриваемого выражения изменяется в такой “достаточ- ной” степени, что вероятность возврата к предшествующему; состоянию становится несущественной. Необходимо отметить, что имеется еще один способ устра- нить зацикливание. Он заключается в том, чтобы каждый раз' проводить апостериорную проверку получаемого выражения на
ФОРМАЛЬНЫЕ СИСТЕМЫ 131 совпадение с выражениями, уже полученными ранее. Однако такой способ устранения зацикливания требует больших затрат. Используя две процедуры — нормализацию и запрет-разре- шение, алгоритм унификации осуществляет автоматически фор- мальные преобразования выражений. Таблица 3.3. Правила переписывания для упрощения алгебраических выра- жений -U)>- >0 TO 0 + х F— -» X T1 0 * х ь- ->0 T2 1 * X F— -> X T3 - (-Х) ь- -> X T4 X * (—у) t- > (—X) * у 75 > (—x) * у T6 X * (l/ * ( —z)) 1- > (—X) *(y*z) T7 z* (x + у) н 4>Z*X-j-Z*J T8 X + ( —X) H ->0 T9 X + X t— -> 2 * x T10 C1*x + C2*xf- ->(C1 +C2)*x Til X * (y/x) F— -> У T12 X *(y/z) H -+(x*y)/z T13 (x/z) + (y/z) H -> (x + y)/z T14 x/1 h -> X T15 x/x 1— -> 1 T16 В табл. 3.3 представлено множество правил переписывания, позволяющих выполнять в машине все обычные правила преоб- разований алгебраических выражений для их упрощения. В этих правилах С1 и С2 обозначают константы, свободные пе- ременные обозначаются буквами х, у, z. Предполагается, что для записи выражений в правильной единообразной форме ис- пользуются следующие соглашения о массе переменных: кон- станты всегда помещаются перед переменными, —х — после -f-х, х — перед у и т. д. 3.8. Примеры использования унификации , Ниже приведены примеры использования больших возмож- ностей, предоставляемых алгоритмом унификации во многих об- ластях практической деятельности человека. 3.8.1. Проблемы аналогии В настоящее время хорошо известны различные тесты на уровень интеллектуального развития, которым подвергаются претенденты на ту или иную работу. К ним относится и тест 5*
132 ГЛАВА 3 с использованием семейства геометрических фигур, представлен- ных на рис. 3.11. Требуется найти среди фигур 1—3 нижнего ряда рис. 3.11 такую фигуру х, которая бы соответствовала условию: фигура С так соотносится с этой фигурой х, как фи- гура А с фигурой В. Таким образом, следует определить, какая Рис. 3.11. Геометрические тесты. аналогия существует между фигурами А и В, с одной стороны, и фигурами Сих — с другой. Другими словами, речь идет о том, можно ли унифицировать фигуру С с левой частью “теоремы” А -> В. Затем предусматривается проверка результата унифи- кации на соответствие одному из трех предлагаемых ответов. Однако что означает здесь А -> В? Фигура А может быть описана просто как совокупность форм, связанных между со- бой некоторыми отношениями (так же как в алгебре формулы представляют собой совокупности переменных, связанных меж- ду собой с помощью арифметических операций). Таким обра- зом, фигура А может быть описана следующим образом: А == (точка, треугольник, прямоугольник) И (прямоугольник ВНУТРИ треу- гольника) ‘ И (точка ВНЕ треугольника) И (точка ВНЕ ' прямоугольни- ка) Слова, выделенные прописными буквами, обозначают здесь отношения, смысл которых очевиден. Аналогичным образом по-
ФОРМАЛЬНЫЕ СИСТЕМЫ 133 лучаем для фигуры В: В = (прямоугольник, треугольник) И (прямоугольник СЛЕВА-ОТ треуголь- ника) И (прямоугольник ВНЕ треугольника) Кроме того, приняв за начальное значение размеры фигур А, следует дополнить описание В указаниями на размер его фи- гур относительно А: И (РАЗМЕР прямоугольника — 2) И (РАЗМЕР треугольника = 1) Теперь теорема Т есть не что иное, как (описание А) -> (описание В), или А = (точка, треугольник, прямоугольник) И (прямоугольник ВНУТРИ треугольника) И (точка ВНЕ треугольника) И (точка ВНЕ прямоугольника). В = (прямоугольник, треугольник) И (прямоугольник СЛЕВА-ОТ треугольника) • И (прямоугольник ВНЕ треугольника) И (РАЗМЕР прямоугольника = 2) И (РАЗМЕР треугольника = 1) Подобным образом получаем описание фигуры С: С = (окружность, треугольник, точка) И (точка ВНЕ треугольника) И (треугольник ВНУТРИ окружности) И (точка ВНЕ окружности). Задача заключается в следующем: Можно ли унифицировать описание А с описанием С? Представим основные этапы алгоритма унификации для дан- ного случая. Отметим, что здесь порядок подвыражений не яв- ляется существенным: какое-то отношение из А может унифи- цироваться с каким-то отношением из С независимо от того, в каком порядке они появляются в описаниях соответствующих фигур. Более того, как это обычно принято, изменим наимено- вания переменных из А и В с тем, чтобы выполняемые подста- новки носили наиболее общий характер в Т. В рассматривае- мых фигурах некоторые переменные в А и С по воле случая имеют одни и те же наименования, хотя в действительности не имеется никаких оснований для того, чтобы “треугольники” из А и В были бы в обязательном порядке как-то связаны с “тре- угольником” из С. Теперь описание теоремы Т == (А->В),
134 ГЛАВА 3 принимает следующий вид: = Ь, с) в (с, Ь) А И (с СЛЕВА-ОТ &) И (с ВНУТРИ Ь) И (с ВНЕ 6) и (а (а ВНЕ Ь) ' " (РАЗМЕР с = 2)\ и ВНЕ с) И и (РАЗМЕР . 6 = 1) Отметим, что эти новые описания сделаны в соответствии с гипотезой, что формы объектов из А и В не учитываются и су- щественным являются лишь взаимные отношения между ними. Начнем унификацию описаний из Л и С в том порядке, как они расположены в С. Отношение “точка ВНЕ треугольника” может рассматриваться как идентичное следующему отноше- нию: “а ВНЕ Ь”, которое в применении к А читают так: а есть точка, b есть треугольник. На этой стадии мы знаем, что суще- ствует другая возможность, связанная со вторым случаем вхож- дения отношения ВНЕ в Л и с тем фактом, что порядок рассмо- трения подвыражений не играет роли. Такой возможностью яв- ляется унификация подвыражения “точка ВНЕ треугольника” в С с подвыражением “а ВНЕ с” в А. Рассмотрим вначале пер- вый случай. Подстановки, описанные выше, приводят к новому описанию А: - А == (точка, треугольник, с) И (с ВНУТРИ треугольника) И (точка ВНЕ треугольника) (унифицировано с первым отношением из С) - И (точка ВНЕ с) Следующее отношение в С: “треугольник ВНУТРИ окруж- ности”. Здесь имеется единственная возможность унификации, связанная с отношением “с ВНУТРИ треугольника” описания А. Но мы встречаемся с третьим случаем неудачного примене- ния алгоритма унификации: для идентификации этих двух вы- ражений нужно, с одной стороны, изменить с в треугольнике, что можно сделать; но изменить таким же образом треугольник внутри окружности нельзя, так как это запрещено, как уже ука- зывалось в 3.4.3. Последний запрет связан с тем, что перемен- ные в выражении (в данном случае в выражении а) не могут считаться независимыми. Таким образом, Окружность и Тре- угольник не являются унифицируемыми, так как они взаимоне- зависимы в С и играют фактически роль констант. Поэтому остается только попытаться использовать упомянутую выше вторую возможность для унификации: унифицировать “точка ВНЕ треугольника” в С с выражением “а ВНЕ с” в А.
ФОРМАЛЬНЫЕ СИСТЕМЫ 135 Для этого замещают точку на а и треугольник на с. Тогда теорема (А->В) приобретает следующий вид: Л = (точка, Ь, треугольник) И (треугольник ВНУТРИ Ь) И (точка ВНЕ Ь) _И (точка ВНЕ треугольника)* ' В = (треугольник, Ь) И (треугольник СЛЕВА-ОТ Ь) И (треугольник ВНЕ Ь) И (РАЗМЕР треугольника = = 2) Ч И (размер &= 1) Звездочкой отмечено отношение, которое уже унифицировано. Следующим отношением в С является отношение “треуголь- ник ВНУТРИ окружности”. Это отношение идентифицируется единственным образом с подвыражением “треугольник ВНУТ- РИ Ь" с помощью подстановки теперь уже окружности вместо Ь. В результате получаем следующий вид теоремы Т: А == (точка, окружность, тре- угольник) И (треугольник ВНУТРИ ок- ружности) И (точка ВНЕ окружности) И (точка ВНЕ треугольни- чка) * ( В = (треугольник, окружность) И (треугольник СЛЕВА-ОТ окружности) И (треугольник ВНЕ окруж- ности) И (РАЗМЕР треугольника = 2) ( И (РАЗМЕР окружности = 1) Последним замещаемым в С отношением является отноше- ние “точка ВНЕ окружности”. Оно непосредственно идентифи- цируется со вторым отношением из А. Если применить к выра- жению С теорему Т = (А->В), т. е. произвести те же преобра- зования в С, которые позволили перейти от Л к В, то получим описание выражения D, которое представляет собой выраже- ние В, преобразованное подстановками, позволившими унифи- цировать А и В, т. е. a/точка, 6/окружность, с/треугольник. D = (треугольник, окружность) И (треугольник СЛЕВА-ОТ окружности) ' И (треугольник ВНЕ окружности) И (РАЗМЕР треугольника = 2) ; И (РАЗМЕР окружности = 1) ^Указанные здесь размеры взяты по отношению к размерам пер- воначальной фигуры, пусть в данном случае этой фигурой бу- дет С. Теперь остается определить, возможно ли идентифициро- вать это описание с одной из фигур, предложенных в качестве ^варианта ответа. Эта задача снова связана с унификацией, по- скольку речь идет об унификации двух описаний (вне зависи- мости от порядка отношений). Этот последний этап является тривиальным в Данном случае, поскольку на самом деле здесь нет никакой разрешенной подстановки по той же причине, что
Л 136 ГЛАВА 3 и в случае с “переменными” из выражения С. Правильный от- вет: третья фигура справа в нижнем ряду на рис. 3.11. Отметим, что результат можно было получить гораздо бы- стрее, если учесть, что А и С содержат только по одному отно- шению типа “х ВНУТРИ г/”. Начав с унификации этих отноше- ний, мы получим следующее: С заменим на треугольник, а Ь — на окружность. Затем делаем замену а на точку и получаем результат. 3.8.2. Замечания по задачам типа геометрических тестов Часто мы неосознанно используем неявную процедуру уни- фикации при ответах на тесты, подобные тем, что описаны в разд. 3.8.1. Однако этим не исчерпываются проблемы зритель-’ ного восприятия. Во-первых, человеческий глаз вместе со зри- тельной системой в целом является уникальным устройством обработки информации, преобразующим, в частности, рисунки в такие геометрические описания, когда они становятся про- стыми и легкими для узнавания. Так что проблема машинного зрения состоит вовсе не в том, чтобы снабдить ЭВМ одной или двумя телекамерами, а в том, чтобы научиться распознавать образы. Во-вторых, совсем неочевидно (хотя это неявно предпола- гается в предыдущем разделе), что существует некоторое стан- дартное описание объектов и отношений. Одно .и то же отно- шение может быть описано различным образом, например: “треугольник СЛЕВА-ОТ окружности” или “окружность СПРАВА-ОТ треугольника”. То же явление обнаруживается каждый раз, когда отноше- ние допускает использование ' инверсного варианта, например ВНУТРИ и ВНЕ, ВВЕРХУ И ВНИЗУ. Это приводит к необхо- димости специальных изменений внутри самого алгоритма уни- фикации, чтобы можно было определить все возможные подста- новки. Иными словами, кроме того, что сами выражения могут быть громоздкими, еще и число эквивалентных описаний (кото- рое растет экспоненциально) может быть очень большим. С этим связан вопрос об эффективности алгоритма унифи- кации и релевантности описаний. При этом возникает проблема слишком подробной информации, так как всегда можно сделать более подробное описание на использованном нами символиче- ском языке. Начальный этап соответствует в действительности более точному описанию рисунка на бумаге. Так, к описанию фигуры А можно добавить, что точка расположена не просто вне треугольника, но также и слева и сверху от него. В фи- гуре С, наоборот, точка находится на среднем уровне справа.
ФОРМАЛЬНЫЕ СИСТЕМЫ 137 Рис. 3.12. Тесты Каттели. "Таким образом, унификация не может выполняться точно. Что- 1 бы она прошла успешно, необходимо перемещаться внутри опи- ' сания, как это было сделано в нашем примере. В этом случае " информация, которая описывает более точно относительное по- ложение точек, не рассматривается в качестве релевантной, что подтверждается впоследствии тем, что точки из А и С исчезают из конечного Описания в В и D. Третье замечание относится к языку описания. Он не задан и не является общим для всех, каким, например, может быть обцчный математический язык. Он не является ни очень
138 ГЛАВА 3 Хороший набор фигур Плохой набор Хороший набор Плохой набор Рис. 3.13. Несколько задач М. Бонгарда. э 7 16 35 74 7 и О Т Q С 1 4 7 11 14 17 41 ? 691 602 513 4 24 335 ? 2 4 5 6 , 4 3 4 4 4 ? 13 50 27 26 55 14 111 8 ? В Е 1 N I ? К £283MS96 а- Рис. 3.14. строгим, ни очень формализованным. Поэтому словарь отноше- ний между объектами должен быть эффективно расширен, чтобы могли быть приняты в учет и другие характеристики: ТПП-ЛИ- НИИ (сплошные, штриховые, пунктирные...); ЦВЕТ (белый, черный, серый,...); ОРИЕНТАЦИЯ (например, по отношению к оси симметрии). Используя эти расширения языка, сложные фигуры могут исследоваться автоматически, как, например, серия тестов Q1 Каттели (рис. 3.12). ; Тесты, использующие различные последовательности чисел, букв или домино, часто являются более трудными, так как, во-
ФОРМАЛЬНЫЕ СИСТЕМЫ 139 первых, обычно не предлагается никаких вариантов ответов и, во-вторых, в общем случае допустимым является большое число унификаций и, следовательно, может быть множество логически приемлемых ответов. На рис. 3.13 показано несколько задач советского ученого М. Бонгарда. Требуется определить принцип, по которому каж- дая группа из 12 фигур разделена на две части: “плохую” справа и “хорошую” слева. На рис. 3.14 приводится пример другого ' набора тестовых задач. Необходимо определить все множество данных (т. е. сле- дующий неизвестный элемент), используя каждый раз их огра- ниченное исходное число. Форма задания таких тестов всегда имеет вид U\ -> U2 Ш -+ ...Ui-^7 При этом надеются огра- ничить двусмысленность и неопределенность задачи, давая воз- можность отфильтровывать возможные преобразования, остав- ляются только те варианты построения членов заданной началь- ной последовательности, которые успешно работают на всех этапах от члена U\ до Ui. В конце концов остается выбор уже только между несколькими возможностями. В действительности всегда существует бесконечное число кривых, которые можно провести через конечное число заданных точек (здесь точки иг- рают роль исходных заданных значений, а кривые представляют собой законы преобразования исходных значений в последую- щие). К этому же типу относятся тесты, приведенные на рис. 3.13. По этой причине критикуются сейчас (й критикова- лись раньше) все эти тесты на определение “коэффициента ум- ственного развития”. В действительности, чтобы выделять за- конные преобразования, необходимо в конечном счете ввести критерий “простоты”, который совершенно субъективен. 3.8.3. Использование алгоритма унификации при автоматическом доказательстве теорем Теперь мы можем составить эффективные программы для доказательства каких-либо теорем в простых формальных си- стемах: ниже мы воспользуемся банком пробных задач для те- стирования программ, которые возникают при использовании принципа резолюции (разд. 3.9) или в экспертных системах (гл. 7). Однако остается проблема, которую надо решить, чтобы пе- ренести на ЭВМ алгоритм унификации: необходимо отсечь от дерева поиска те его части, которые ведут к бесконечным процедурам.
140 ГЛАВА 3 3.8.4. Метод Сиклосси и Маринова Некоторые правила переписывания при их применении дают, в частности, такую правую часть выражения, к которой снова применимо то же правило. Такие правила будем называть экс- тенсивными. Очевидно, использование таких правил порождает бесконечное множество формул, поэтому их применение должно быть как-то ограничено. Например, в исчислении высказываний правило р<—>ППр является экстенсивным. Программа может определить сама, используя алгоритм унификации, является ли выполняемое правило экстенсивным или нет. Правила типа х + у ь—> у + х, будучи применимы последова- тельно дважды к одному и тому же выражению, оставляют его в результате неизменным. Такие правила не могут приводить к бесконечной процедуре поиска, и они являются на самом деле только псевдоэкстенсивными. Сиклоши и Маринов предложили рассматривать экстенсивные правила только тогда, когда обой- тись без них невозможно. Эти правила в таком случае приме- няются не более одного раза для уровня текущего поиска, а полный поиск по всем другим правилам отсекается. Благодаря такому подходу они получили в 1971 г. гораздо лучшие резуль- таты, чем при ручном способе решения. Ниже приводятся два примера доказательства, в которых используется эта простая эвристика (не зависящая от рассматриваемой области) для от- сечения экстенсивных правил. Пример 1. Исчисление высказываний Пусть заданы шесть правил вывода: 1: р /\ q>-> q Д р 2: р А (<? Д г) н-> (р Д q) Д г 3: р /\ (р :=> q) q 4: “) q Д (р => q) i—> “| p 5: ~] “] p*->p 6: и одна теорема, которую нужно доказать: (5^10 А В первый момент используется экстенсивное правило 6. По- иск проводится таким образом, что к уже встречавшимся ранее выражениям правила вывода больше не применяются и они помечаются в качестве “мертвых”. Заключение доказываемой теоремы используется только в качестве условия остановки — сам поиск проводится перебором вслепую.
ФОРМАЛЬНЫЕ СИСТЕМЫ 141 Дерево поиска показано на рис. 3.15. На нем узлы зануме- рованы в порядке их получения в процессе доказательства тео- ремы. Процесс идет вначале в ширину: выполняются все воз- можные преобразования на одном и том же уровне для того же самого выражения и лишь потом осуществляется переход на следующий уровень. С исходным выражением Н (узел 1) может быть унифици- ровано в данном случае только правило 1. Затем, несмотря на Правило 7 Правило 6 (S э *11) Л I Правило 6 Правило в г: m S э 11) л i Правило 1 | 5: t л (11 s э “I t) э: (s э 1 Т1л t 7: TlU(s э П I) 4: (s э It) ATlt {Правило / 8*. “I з Рис. 3.15. Порождающее дерево для теоремы (st) Л / s- повторные задания выражения Я, правила 2 — 5 уже не могут быть к нему применены. Тогда в действие вступает правило 6, применяемое последовательно ко всем элементам исходного вы- ражения Я, образуя самостоятельный уровень. Таким образом, правило 6 унифицируется тремя различными способами с Я, об- разуя при этом три новых выражения (узлы 2 — 4), к которым применяется в свою очередь правило 1. Последующее примене- ние правила 4 приводит процесс к успешному завершению до- казательства в случае узла 7 (рис. 3.15). В приведенном доказательстве для простоты выполнены не все унификации. Прежде всего пропозициональные буквы из ги- потезы доказываемой теоремы не рассматривались в качестве замещаемых переменных (полуунификация). Кроме того, не рассматривалось применение правила 6 к выражению (s zd zd~1/)AZ, взятому как целое. Пример 2. Элементарная теория групп Заданы 6 правил вывода: 1: а + & н-> ft + а 2: а + (Ь + с) н-> (а + Ь) + с 3: (# + b) — b н->а 4: а ।—> (а -р Ь) — b
142 ГЛАВА 3 5: (а — Ь) + с ь—> (а + с) — b 6: (а + Ь) — с н-> (а — с) + b С их помощью необходимо доказать следующую теорему: (а + й) + с н-э-а (Ь + с). Попытайтесь доказать эту теорему самостоятельно. Так как данная алгебра весьма ограниченна по сравнению с той, которую мы знаем, наша обычная стратегия в этом случае не приводит Ь> *с в: (Ь * с) ♦ а 9: а * (с ♦ 2: е 51 (с ♦ Ь) + а S1 S1 10: b * (а S1 а ♦ (Ь ♦ 81 b * (с ♦ в) Рис. 3.16. Порождающее дерево для теоремы S1 (а+ 6) + сн-»а + (& + с). к успеху и продвижение вперед идет с большим трудом. Пра- вило 1 полагается системой псевдоэкстенсивным, а правило 4 — экстенсивным. Впрочем, система будет неявным образом исполь- зовать следующую метатеорему: поскольку правило 4 не дей- ствует, могут применяться только правила 1 и 2. Решение полу- чается за 11 шагов, причем используются только правила 1 и 2. Ход решения представлен на рис. 3.16. При тех же правилах вывода доказательство более интерес- ной теоремы (а + с) — (b + с) I—> а — Ь требует уже 351 шага или нескольких секунд работы процес- сора ЭВМ. С помощью программы, описанной выше, не были получены какие-то важные результаты в математике, однако в отличие от многих других систем автоматического доказательства (и в этом заключается ее основное отличие от них) эта программа может находить новые теоремы — достаточно лишь дать ей воз- можность двигаться в обратном направлении. Она выявляет большие возможности ЭВМ в обработке символьной информа-
ФОРМАЛЬНЫЕ СИСТЕМЫ 143 ции: самые длинные доказательства требуют всего лишь не- скольких секунд машинного времени. В тех случаях, когда проблемы символьного доказательства не являются основными (например, в системах автоматизации программирования), создаются просто хорошие подпрограммы. Кроме того, чтобы доказать промежуточные результаты в той области математики, которая не является основной для систе- мы автоматического доказательства, поступают, например, сле- дующим образом: математик, специализирующийся в топологии, получает необходимый результат, работая традиционным обра- зом с литературой. Усовершенствование метода Сиклоши и Маринова связано с сохранением разбиения на два класса задаваемых правил вы- вода: с одной стороны, на “обязательные” правила, соответст- вующие нормализации — упрощению выражений, а с другой стороны, на “необязательные" правила (в частности, экстенсив- ные, “опасные” для использования). Это разбиение позволяет, впрочем, усовершенствовать сам процесс вовлечения в доказа- тельство этих “необязательных” правил. Ниже приведены два доказательства теорем, в которых используются эти идеи. 3.8.5. Решение тригонометрических уравнений. Процедура PRET (М. Grandbastien, 1974) Исходные условия в данном случае задаются в следующем виде: Р (trigo (х)) = константа, где Р (trigo (х)) обозначает полином от тригонометрических функций (sin, cos, tg, ctg) переменной x. Чтобы решить эти уравнения, программа уже заранее должна быть знакома с ре- шением двух типовых случаев ( trigo(x) = c, (Bl) I a cos (х) + b sin x = c. \J (B2) Отметим, что здесь следовало бы подумать о сведении ре- шения заданного уравнения к решению уравнения относительно новой переменной t, где t — (tg x)/27V. N означает наибольший общий делитель знаменателей в Р. Можно попробовать выпол- нить замену t = eix/2N по формуле Эйлера. Однако в обоих слу- чаях степень результирующего уравнения в общем случае полу- чится слишком высокой для того, чтобы оно могло быть алге- браически разрешено. Однако смысл такой замены переменных заключается в том, чтобы показать идентичность этих уравнений с точки зрения
144 ГЛАВА 3 тригонометрии, а не для того, чтобы их решить. Когда речь идет об идентичности, то в действительности достаточно лишь показать, что некий полином равен нулю. Процедура PRET основывается на выборе цели (в данном случае В1 или В2) и достижении ее всеми возможными сред- ствами. sin* х * 1/4 ИЛИ 1/2 (1 * cos 2х) = 1/4 сов* х = 3/4 sin х» * 1/2 cos1 х-сов 2х » 1/4 Рис. 3.17. Узел ИЛИ в схеме доказательства. sin х = О (sin x)(1- 2cosx) =0 | И | 1 - 2.сое х = 0 Рис. 3.18. Узел И в схеме доказательства. Общая последовательность действий представляет собой ите- рацию из трех шагов: • Шаг 1. Использовать обязательные правила, если это возможно. • Шаг 2. Использовать какое-то необязательное правило, подобранное соответствующим образом. • Шаг 3. Выделить среди рассматриваемого множества вы- ражений наиболее подходящее выражение. • Вернуться к шагу 1. Каждый из этих трех шагов рассмотрен ниже более подроб- но. Вначале рассмотрим подробнее выполнение шага 3. По по- строению последовательность поиска представляет собой древо- видную структуру, причем каждое исследуемое выражение по- рождает несколько дочерних. Если каждое из этих дочерних выражений было порождено различным правилом, начиная с предшествующего материнского выражения, то такая связь между ними обозначается как ИЛИ, и чтобы решить исходное уравнение, необходимо и достаточно решить одно из эквива- лентных дочерних уравнений (рис. 3.17). Если исходное материнское выражение представляет собой произведение нескольких рыражений-сомножителей (в левой ча- сти-), а правая часть уравнения представляет собой нуль, прихо- дится решать отдельно уравнения для каждого из сомножите- лей. В этом случае порождаются подзадачи, причем связь та- кого рода обозначается как И (рис. 3.18).
ФОРМАЛЬНЫЕ СИСТЕМЫ 145 На каждом шаге решения необходимо выбрать выражение, которое будет обрабатываться программой. Этот выбор произ- водится с помощью функции оценивания из дочерних выраже- ний последнего узла ИЛИ, причем программа оставляет выра- жение с наименьшей степенью сложности. Для всякого выра- жения е сложность С(е) определяется следующим образом: С(е) = (число сомножителей первого уровня) 4-(число различных аргументов) 4- (сумма степеней, отличных от единицы). Эта оценка является довольно простой, но достаточно эффек- тивной, так как С(е) возрастает очень быстро, если выбрано неудачное выражение, что приводит к отсечению соответствую- щей ветви решения. В этом случае программа переходит к дру- гому узлу е, до тех пор пока оценки дочерних выражений не получатся достаточно малыми. На шаге 2 запускаются в действие необязательные правила вывода (НП). Эти правила являются упорядоченными и при- меняются везде, где только возможно. Данные правила пред- ставляют собой правила переписывания. Полный перечень этих- правил приведен в краткой форме записи в табл. 3.4, где trigo обозначает обратную тригонометрическую функцию. Совокуп- ность необязательных правил была определена эксперименталь- но — отбирались те правила, которые либо не всегда применимы в тригонометрии, либо порождают более сложные выражения (правило g), либо удаляют нас от конечной цели (например, Таблица 3.4. Перечень необязательных правил вывода в тригонометрии a) trigo и ± trigo v ।—> 2 trigo (и + v)/2 trigo (u ± v)/2 b) sin 2x i—> 2 sin x cos x cos 2x i—> 2 cos2 x — 1 c) sin и sin v cos и cos v d) trigo (u + o) e) trigo“ и sin2 и cos’ и f) trigo (—u) trigo (л ± u) trigo (n/2 ± u) trigo (n/4 ± u) g) trigo (2x) Л) sin2x sin x cos x i) tg и j) sin u/cos и k) cos2'« i—> 1/2 (cos (u — v) — cos (u + v)) i—> 1/2 (cos (u — v) + cos (zz + v)) i—>f (trigo u, trigo o) i—(trigo au) j—» 1/2 (1 + cos 2u) i—> 1/4 (cos 3u + 3 cos u) (trigo (zz)) <—> f (trigo (u)) I—(trigo (zz)) I-» f (trigo (zz)) i—> f (tg x) I—> 1 — cos2 X i—> 1/2 sin 2x i—> sin u/cos и t—>tgu 1/(1 + tg2 u)
146 ГЛАВА 3 правило с), либо формируют экстенсивные комбинации (пра- вила i и /) (табл. 3.4). Шаг 1 на самом деле состоит из трех отдельных шагов. В первую очередь программа пытается, если это возможно, упростить задачу, сведя ее к подзадачам путем разложения на множители и создания узла И. Если это не удается сделать, программа пытается упростить выражение путем замены пере- менной, приводя его к выражению, в котором имеется только одна переменная или единственная обратная тригонометриче- ская функция. Если ничего из этого сделать не удается, исход- ное выражение стандартизируется путем унификации с по- мощью обязательных правил (ОП) вывода в заданном порядке. Эти правила сведены в 10 групп, приведенных ниже в перечне обязательных правил вывода (табл. 3.5). С помощью программы PRET более ста примеров были ре- шены за несколько секунд на ЭВМ СП 10070. Приведем два подобных примера. Таблица 3.5. Перечень обязательных правил вывода а) Развитие (правило переписывания): (а + Ь)п -> сумма. Ь) Подавление радикалов (продукция): у/а — с а — с2. с) Преобразование суммы в произведение: sin и + sin v -> 2 sin ((и + о)/2) cos ((и — о)/2). d) Разложение На множители (правило переписывания): ап — bn I—> (а — Ь) (полином). е) Удаление котангенса, если в выражении имеется только один аргумент ctg х 1/tg х. f) Удаление тангенса, если в выражении имеется только один аргумент tg х ।—* sin x/cos х. g) Если синус и косинус в выражении появляются с нечетными степенями, а • то производится деление на cos х с целью получения выражении (JP (tg х) = 0) V (Р (cos х) = 0). h) Если синус и косинус встречаются в выражении с четными степенями, то с целью получения выражения P(tgx)=0 применяется правило sin2 XI—>1 — cos2x. i) Если выражение е симметрично относительно синуса и косинуса, то х г—> х + л/4. j) Если в выражении встречаются члены, имеющие знаменатели, то приве- сти все выражение к общему знаменателю.
ФОРМАЛЬНЫЕ СИСТЕМЫ 147 Пример 1 Уз tgx — 4sin2x = 0 (I) Здесь невозможны ни разложение на множители, ни замены на стандартные переменные. Однако можно применить обяза- тельное правило f: Уз ——- — 4sin2x = 0. (II) Применение ОП(/) дает при cosx=/=0 Уз sin х — 4 sin2xcosx = 0. (Ill) Теперь исходное выражение преобразовано и программа возвращается к шагу I, производя разложение выражения (III) на множители, вынося sinx за скобки: sin х (Уз — 4 sin х cos х) — 0. Это выражение приводит к двум задачам типа И: sin х = 0, (IV) которая тривиальна, и Уз —4sinxcosx = 0. (V) Это последнее выражение становится текущим. Для него ис- пользование обязательных правил ни- , чего не дает, но применение (НП) (ft) НТ к подвыражению nJ sin х cos х i—* 1/2 sin 2x 1 * iv . v- VI приводит к выражению, дающему реше- ние задачи: Рис. 3.19. Дерево реше- ния для уравнения sin2x = y3’/2. Уз tgx —4 sin*x = 0. На рис. 3.19 показано дерево решения для выражения Уз tgx —4sin2x = 0. Пример 2 sin (n+ 1)х 4- sin (n — l)x — sin 2x = 0 (I) Никакое обязательное правило не пригодно для выраже- ния (I). Необязательное правило (а), напротив, приводит нас
148 ГЛАВА 3 к выражению 2 sin nxcosx — sin 2х = 0, (II) сложность которого составляет 4 4-3 + 0 = 7, тогда как слож- ность исходного выражения (I) была равна 3 + 3 + 0 = 6. В действительности то же правило (а) применяется также для группирования не только к термам 1 и 2 выражения (I), но „.. ,J vl v(.. VII .. и VIII IX-- X-. и XI XII Рис. 3,20. Дерево решения для уравнения sin(n-f-l)x + sin(—1)х— sin2x = 0. также к термам 1 и 3 или 2 и 3. Таким образом, программа одновременно порождает еще выражения (III) и (IV), имеющие ту же степень сложности, равную 7: 2 sin —у—* cos ^-3- х + sin (п — 1) х — 0, (III) 2 sin п ~--3 х cos х + sin (п + 1) х = 0. (IV) Теперь программа применяет необязательное правило (Ь) к исходному выражению, получая выражение (V), степень сложности которого составляет 5 + 3 + 0 = 8: sin (п + 1) х + sin (п — I) х — 2 sin x cos x = 0. (V) Программа затем обращается к выражению с наименьшей сте- пенью сложности — пусть это будет выражение (II). Теперь необязательное правило (&) применяется снова и приводит к выражению 2 sin пх cos х —- 2 sin х cos х — 0, (VI) которое тут же разлагается на множители 2cosx(sinnx — sinx) = 0. (VII)
ФОРМАЛЬНЫЕ СИСТЕМЫ 149 Из этого выражения порождаются две подзадачи (VIII) и (IX) (рис. 3.20). Обязательное правило (с) преобразует разность (IX) в произведение sin пх— sin х — 2 sin—2—* cos——х, (X) и задача, таким образом, в общем, решена. Дерево для нее приведено на рис. 3.20. 3.8.6. Решение арифметических задач. Процедура PARI (D. Bourgoin, 1978) Математические знания в программе PARI сконцентрирова- ны в специфических модулях. Общая идея решения задачи со- стоит в том, чтобы выбрать одну из задач, имеющую решение, и затем сделать все возможное для того, чтобы свести исход- ную задачу к ней. Программа решает задачи с целочисленны- ми переменными, используя шесть модулей, которые могут об- рабатывать определенные подзадачи. Последние играют роль усовершенствованных обязательных правил вывода. (Модуль />: произведение = константа. Этот модуль исполь- зует разложение числа на простые множители или делители, например: хг/= 5=>(х = 5, у = 1) ИЛИ (z/ = 5, х = 1). (Модуль 2): конгруэнтность. Модуль делает заключения о простых равенствах, основываясь на разложениях небольших чисел (2, 3, 5, 7, 11), чисто комбинаторным способом. Этот мо- дуль выводит необходимые условия, которым должны удовлет- ворять неизвестные величины, например 5x = 2z/ + 1=>х есть нечетное число. (Модуль 3): делимость. Этот модуль делает заключение о делимости, основываясь на фундаментальной лемме Гаусса: “Если а есть взаимно простое число с b и делится на произве- дение Ъс, то а делится на с”, например 3 делится на 7z=>3 делится на z. (Модуль 4): равенство. Этот модуль умеет находить частные решения простых уравнений путем последовательных испыта- ний (идеальным случаем здесь было бы использование непре- рывных (цепных) дробей), например 7х —-5//= 11 имеет место частное решение х = 3 и у = 2.
150 ГЛАВА 3 (Модуль 5): обобщенное евклидово деление. Модуль рассчи- тывает частное и остаток от деления полинома на полином, на- пример (х2 — 2х + 1) деленное на (х— 3) дает (х2 - 2х + 1) = (х - 3) (х + 1) + 4. (Модуль 6}: индукция. Этот модуль умеет находить, исходя из начального значения и рекуррентного отношения, формаль- ное выражение для общего члена последовательности, на- пример u„ = 3u„_1 +4; щ = 5а=>«п = З"-1 (5а+ 2) — 2. Эти модули используются в сервисных программах для нор- мализации выражений, выполнения подстановок, сообщения о результатах, найденных в текущих соотношениях. Конечной целью всей программы является отыскание решения в явном виде либо в полной форме, либо в форме простого условия, ха- рактеризующего решение, либо описание доказательства того, что решения не существует. На каждом этапе рещения адекватность каждого из модулей текущей задаче проверяется с помощью игры шести триплетов. Каждый из них для каждого из шести модулей измеряет реле- вантность модуля, трудность его применения (которая оцени- вается по числу переменных и максимальным степеням) и ре- зультирующие ожидаемые издержки, связанные с последующим продолжением решения задачи в этом случае. Имеются точные критерии, позволяющие решать, какой из триплетов выбрать и, следовательно, какой из модулей применить. Ниже приводятся три примера решений с использованием метода PARI. Пример 1. Найти два простых числа р и q, таких, что р2 = 8<7+1. Модуль “делимость” лучше всего соответствует заданным условиям. Он “считает”, что имеется уравнение относительно q, и формирует новое условие делимости: 8|р2 —- 1, т. е. 8 деленное на (р2 — I). Модуль ’’конгруэнтность" не дает здесь ничего нового (р, и q уже известны как нечетные числа, так как они являются простыми числами). Но тот же модуль становится теперь наи- лучшим кандидатом для прямого исследования, начального ус- ловия и конгруэнций по модулю 3, порождая выражение (р по модулю 3)2 = 2(р по модулю 3) + 1.
ФОРМАЛЬНЫЕ СИСТЕМЫ 151 Если р^Опо модулю 3, то р, являющееся простым числом, может быть только равным 3; отсюда следует 9 = 8q + 1 и при <7=1. Получаем решение р — 3, q — I. Если р = 1 по модулю 3, то конгруэнтное уравнение при- нимает вид 1=2(р по модулю 3)+ 1; пусть q = 0 (по модулю 3), т. е. q — З (как простое число), тогда р2 = 8-3 + 1 и р = 5, но это противоречит предположению, что р = 1 по модулю 3. Если р = 2 по модулю 3, то получаем 4 = 2 (q по модулю 3) + 1; пусть снова q = 0 (по модулю 3) и, следовательно, <7 = 3, тогда р2 _ 25 и р = 5, что в данном случае удовлетворяет пред- положение р = 2 по модулю 3. Итак, задача имеет два решения: (3; 1) и (5; 3). ’ Пример 2. Найти целые положительные х и п, такие, что 5х3 - 6х2 + 7х + 8 х2 - Зх + 4 п- Для заданной задачи наиболее пригоден модуль «евклидово деление», в результате применения которого получаем тожде- ство 5х3 — 6х2 + 7х + 8 = (х2 — Зх + 4) (5х + 9) + 14х - 28. Трехчлен (х2 — Зх + 4) должен быть общим делителем обеих частей этого тождества и, следовательно, должен делить и «остаток» (14х — 28). Модуль «делимость» формирует здесь новое условие: х2 —Зх + 4|14х —28, к которому снова применяется модуль “евклидово деление” для получения нового тождества 14 (х2 - Зх + 4) (14х - 28) (х - 1) + 28. Трехчлен (х2 —- Зх + 4) должен снова делить обе части этого тождества, и, в частности х2 — Зх + 4|28;
152 ГЛАВА 3 пусть k(x2— Зх + 4) = 28, где k — целое число. Модуль “про- изведение = константа” играет здесь роль ключа для проверки значений k — ±l, ±2, ±4, ±7, ±14, ±28. Программа выпол- няет решение 12 уравнений второй степени, соответствующих этим 12 возможным значениям k, например k = +14 дает х2 — Зх + 4 = 2, т. е. х = 1 и х = 2; Л = ±7 дает х2 — Зх = 0, т. е. х = 0 и х = 3. Множество решений в целом представляет собой набор чи- сел 0, 1, 2, 3, 5. Но это еще не есть заключение, получаемое программой, которая знает, что пока получена только после- довательность эквивалентных значений, а не последователь- ность необходимых условий. Для получения последних необхо- димо проверить, удовлетворяет ли каждое полученное решение исходному выражению. При проверке отсекается решение х = 3, и окончательными решениями задачи будут числа 0, 1, 2 и 5. Пример 3. Найти все целые п, такие, что J^2i = n(n+1). (I) Здесь используется модуль “индукция”. Вначале он прове- ряет условие задачи (I) для случая п — 1:2 — 1(1 + 1). За- тем он делает в условии (I) подстановку (n + 1) вместо п, чтобы попытаться доказать, что оно не теряет силу при пере- ходе от п к (n+ 1). Отдельно взятый общий член ряда усло- вия (I) порядка (п + 1) будет иметь вид £ 2Z + 2 (п + 1)? = (п + 1) ((п + 1) + 1). «=1 Используя теперь (I) в качестве правила переписывания, по- лучим п (п + I) + 2 (п + 1) = (л + 1) (п + 2), или, после сокращения (п + 1) в обеих частях этого равенства в силу того, что (n + 1) есть целое число, получаем тривиаль- ное равенство п + 2? = п + 2. Таким образом, первоначальная теорема доказана по ин- дукции. Несколько задач, решенных программой PARI 1. Найти а и Ь, такие, что а\Ь и а| (Ь +1).
ФОРМАЛЬНЫЕ СИСТЕМЫ 153 2. Доказать тождества: (2г — I)2 = п (2ге + .1=1 Е 4 (г + 1) О’ + 3) (Z + 5) = п (п + 1) («2 + 13/г + 52) + бОлг, 1 = 1 п / п \2 1=1 \i=l J nr2 (« + 1) (2« + 1) + багп (га + 1) + бпа2 — 6 £ (а + ir)2 = 0. i = l ( щ = За + 2; 3. Пусть задана последовательность ( о I un+i — Зип 4- 2. Показать, что «-й член этой последовательности может быть записан как ип — abn. 4. Решить относительно переменной z следующую систему уравнений: 2х3 + ху + 7 = 0, р (100 - <?) + q (100 - р) = 1978, х2 4-8z = 3 4-2у2. 5. Для. каких значений х выражение (х2 + 8kx — 3k2) делит без остатка выражение (4х4 4~ 35Ах3 + 5&2х2 — 65k3 х + 21£4)? 6. Доказать конгруэнтность следующих выражений: (ЮЛг-f- + 7)10 +1 SS 0(10), (6/1+ 1)-26й+14- 1 = 0(3). 7. Показать что 52п и 25" имеют одинаковые остатки при деле- нии их на 7. 8. Найти значение х, такое, что 5J4х2 + 1 и 13|4х2 + 1. 9. Доказать, что если р и 8р2 — 1 есть взаимно простые числа, то число 8р2 — 1 является составным. 10. Показать, что равенство р2 + q2 — г2 + s2 4- t2 не имеет решения в числах р, q, г, s, t, взаимно простых с числом 2 и превосходящих его. И. Определить все целые п(пе/А'), такие, что 6 чисел («4-1), (п + 3), (п + 7), (п 4- 9), («4-13), («4-15) будут взаимно простыми. Все программы, описанные выше, обеспечивали получение доказательства только уже предложенной теоремы или нахож- дение решения заданной задачи. Действия математика совсем другие: он не знает заранее теорем, которые он ищет, и он не имеет никакого априорного критерия остановки. Математика
154 ГЛАВА 3 ведет в поиске его ’’интуиция11 или тот род знания высшего уровня, который позволяет ему одновременно и управлять свои- ми поисками, и упрощать себе работу, опуская при поиске не- интересные детали. Иначе говоря, действия математика направ- ляет некоторая метатеория. Существуют программы, которые также эффективно исполь- зуют метатеорию. Ниже описана первая среди них — програм- ма Ж. Питра (1966 г.). 3.9. Программа Ж. Питра для исчисления высказываний 3.9.1. Иерархия метатеорий Теорема представляет собой высказывание в некоторой формальной системе. Метатеорема является высказыванием о теоремах формальной системы и представляет двойной интерес. С одной стороны, она позволяет сократить доказательства, из- бегая повторения классических промежуточных этапов и, бо- лее того, выполняя непосредственный переход от спуска по де- реву (рис. 3.21, а). С другой стороны, метатеорема позволяет осуществить наилучший глобальный обзор поиска и сконцент- рировать внимание на наиболее важных направлениях, не за- гружая память несущественными результатами. Манипуляции с мататеоремами могут осуществляться с по- мощью формальной системы второго по отношению к исходно- му уровня. При этом необходимо использовать обозначения, отличающиеся от обозначений исходной системы для новых операторов. Так, модус поненс является правилом вывода, ко- торое позволяет порождать теоремы и, следовательно, является также метатеоремой. Эта метатеорема может быть записана следующим образом: Р, p^q-+q, т. е. если р есть теорема и если р щ> q есть теорема, то и q яв- ляется теоремой. Здесь запятая и стрелка являются соответ- ствующими аналогами в метаязыке для символов А и => и языка исходной системы.
ФОРМАЛЬНЫЕ СИСТЕМЫ 155 Метатеоремы могут быть доказны в рамках исходной фор- мальной системы. Так, мы уже доказали выше, что fc исчисле- нии высказываний из всякой теоремы вида Р о (Q то /?) можно вывести (используя правило модус поненс и подстанов- ки) новую теорему Q гэ (Р /?). Этот результат, являющийся метатеоремой в исчислении вы- сказываний и записываемый в виде Р (Q то Р) -> Q (Р => R), применим ко многим выражениям исчисления высказываний. Отметим, что удобным средством для создания метатеорем яв- ляется использование в этих целях мета-метатеорем. Например, высказывание ’’если из а можно вывести b и если из b можно вывести с, то можно вывести с из а“ является мета-метатеоремой, которая выражает транзитивность дедук- ции. (Это свойство является очень ценным в фундаментальных теориях). Чтобы это отразить, в записи для импликации и конъ- юнкции в метаязыке будем использовать новые символы ; и О*. Тогда предыдущая мета-метатеорема о транзитивности де- дукции запишется следующим образом: а->6; Ь->сО->а->с. Вполне логично для таких порождающих мета-метатеорем, широко используемых математиками, создать некую общую программу. К сожалению, существуют важные мета-метатеоре- мы, применяемые только в какой-то данной формальной систе- ме. Так, например, мета-метатеорема . р.=> q О> рq не является теоремой во всех формальных логических теориях. Действительно, нужно внести особый оператор самого языка — символ zd, который не обязательно существует во всех теориях. В общем случае все мета-метатеоремы, в которых фигури- руют операторы исходной формальной системы, являются узко специальными. Необходимо, следовательно, создать какое-то средство для доказательства мета-метатеорем. Для этого опре- деляют мета-мета-метатеорию. На этом уровне достигается уже такая степень общности, которая сегодня достаточна для всех областей математики. Таким образом, выражение ’’Если
156 ГЛАВА 3 а, b -* с является метатеоремой, то аО*Ь—>с является мета- метатеоремой" представляет собой мета-мета-метатеорему уни- версальной пригодности. 3.9.2. Метатеории рассматриваемой программы Программа Ж. Питра работает в различных аксиоматиках исчисления высказываний. Она использует восемь мета-мета- теорем, приведенных ниже: 1) а, b —> с О* b, а -> с 2) а, а —> b О* а -► b 3) v а о* а 4) v, а --* b О* а -* b 5) a; a->bO->b 6) а * 6-*сО*а-*с 7) a-+b; b, с >do->a, с ->d 8) а^>Ь; с, d-*aO->c, d>b Эти мета-метатеоремы ш (коммутативность антецедентов) (упрощение) (где v — переменная, не фигурирующая в а) (где v — переменная, не фигурирующая в а) (модус поненс метатеории) (транзитивность дедукции, 1-я форма) (транзитивность дедукции, 2-я форма) (транзитивность дедукции, 3-я форма) юльзуются математиками. Чтобы иметь возможность доказывать другие мета-метатеоремы, про- грамма содержит («знает») пять мета-мета-метатеорем. В них символ ! обозначает конъюнкцию, а символ О-О* дедукцию (вывод) в мета-мета-метаязыке. Ниже приведены эти мета- мета-метатеоремы ((1VLM.M) -теоремы); 1) а, b -> с 0-0* а о* b -* с 2) а, -* с 0-0* v-* ао* и, Ь-+с (переменная v не фигурирует ни в а, ни в Ь, ни в с) 3) а, b -* с .0-0* с -* v О* a, b->-v 4) а! а О* b -* с 0-0* b -* с 5) а -> bl а-> bo> с, d^-eO~O->c, d—*e На рис. 3.22 приведены обозначения операторов конъюнкции (И) и импликации в языках различного уровня. Приведенные выше выражения дают возможность быстро получить важные результаты в уже знакомых нам формальных системах. Они также используются в программе в ходе работы алгоритма унификации, который приводит к совпадению раз- личных (мета)*-теорем с соответствующими частями выражений,
ФОРМАЛЬНЫЕ СИСТЕМЫ 157 Язык М~язык ММ-язык ммм-язык И А / 1 Импликация э —► -е*- о о» Рис. 3.22. Обозначения логических операторов в языках различного уровня, приведенных выше. Так, например, когда в какой-то специаль- ной теории доказана формула р, q > р A q, то третья МММ-теорема позволит нам вывести из нее следую- щую мета-метатеорему: (р ^q->r)C»(p, q -> г). Чтобы программа могла создавать что-то новое, необходи- мо решить две фундаментальные проблемы: • Как отбирать интересные результаты? • Как выбирать контрольные задачи для испытания про- граммы? Отбор результатов При использовании мета-, мета-мета- и мета-мета-мета- теорем программа сталкивается с проблемой комбинаторного взрыва, связанного с необходимостью хранения большого коли- чества информации. Для устранения этого недостатка были за- программированы три общие идеи: 1) выражение считается тем более интересным, чем меньше символов оно содержит; 2) продукция считается тем более интересной, чем ближе анте- цедент к консеквенту (напомним, что продукция — это порож- дающее правило, т. е. (мета) *-теорема с одним или нескольки- ми антецендентами); 3) лучше затратить время на отбор выражений для архива, чем терять его в бесполезных проверках выражений. Продукции обрабатываются особенно просто. Необходимо принимать строгие меры, чтобы Не хранить много различных версий некоторой наиболее общей формы, не производить за счет транзитивности дубликатов уже известных результатов. Например, если уже получено, что а -> b и b с, то не нужно хранить в памяти выражение а->с, так как программа сама легко получит этот результат. В противоположность этому ре- зультаты, полученные при использовании продукций (которые
158 ГЛАВА 3 дают простой результат после значительно более сложных рас- четов), всегда сохраняются. Полезность какой-либо продукции оценивается в зависи- мости от того, что уже порождено, и тех выражений, которые могут быть еще произведены. Надо отметить, что результаты, которые могли быть отвергнуты вначале, затем сохраняются и аналогично результаты, отвергнутые как бесперспективные в одной системе, могут быть оценены как интересные в другой. Программа заносит в архив только наиболее простые продук- ции в данный момент, т. е. те продукции, которые содержат наибольшее число операторов и пропозициональных пере- менных. Случай с теоремами является более сложным, так как если продукции уже по их определению состоят из антецедентов и консеквента, что позволяет легко производить сопоставление, то теоремы содержат лишь последовательности символов дан- ного языка. Реальная полезность теоремы заключается в том, что она связана с возможными интерпретациями данной фор- мальной системы. Поэтому связи между языком и метаязыком, возникающие в процессе проверки продукций какой-либо тео- ремы, рассматриваются только с этой точки зрения. 3.9.3. Выбор контрольных задач для испытания программы При отборе и проверке результатов программа работает сле- дующим образом. Вначале рассматривается результат, считаю- щийся наиболее существенным. Ниже приводится описание по- следовательности рассмотрения этих результатов. Если это теорема, к ней применяются все продукции, у которых антеце- дент упрощает результат (т. е. увеличивает его полезность). Если рассматривается продукция, которая упрощает исходное выражение, ее применяют ко всем хранящимся в архиве про- граммы теоремам и ко всем продукциям, которые усложняют исходные выражения, используя их в качестве антецедентов. Если это продукция, которая усложняет исходное выражение, она применяется к упрощающим продукциям, так же как и к продукциям с несколькими антецедентами. Выполняются не все возможные испытания и проверки продукций и теорем. Это свя-. зано с тем, что программа хранит наряду с каждым таким вы- ражением комбинации, в которых оно уже участвовало. По- этому такие операции не повторяются. Из сказанного выше видно, что, несмотря на значительный объем проводимых испытаний, машинное время и память, зани- маемая при этом, остаются в приемлемых пределах, так как не все результаты хранятся в памяти.
ФОРМАЛЬНЫЕ СИСТЕМЫ 169 Результаты Программа работает с шестью формальными теориями, по- строенными Расселом, Лукасевичем, Гильбертом, Бернеем и Шеффером. Она отыскивает все основные теоремы, причем ино- гда дает для них оригинальные доказательства. При этом исполь- зуются все заданные метауровни. Программа умеет работать и на уровне предположений: ей задается конкретное выражение и требуется его доказать. Используемые программой стратегии в этом случае мало отличаются от обычных. Она просто инвер- тирует свои продукции, чтобы перейти от предположения к ак- сиомам. Во всяком случае, программа преуспела в том, что смогла сама доказать некоторые теоремы, которые ее созда- тель не смог доказать. Приведем беспристрастное суждение об этом самого Лукасевича: “Нужно быть очень опытным и ис- кусным в построении логических доказательств, чтобы суметь вывести из трех аксиом логики закон коммутативности (рзз> (q зэ г)) зз> (q зэ (р зэ г)) или даже закон упрощения рзэ(ргэр)“. Программа Ж- Питра эффективно доказывает оба этих утверждения в рассматриваемой аксиоматике. Пример доказательства Аксиомы: Tl: (p=>(q=) г)) => ((р =>q)zz>(pZD г)) Т2: p=>(q=>p) ТЗ: (“| р => Д д) зэ (<; => р) Продукция. Ml: р, (р => q)-+q. Продукция Ml вначале порождает две \1ета-метатеоремы благодаря МММ-теоремам, которыми располагает сама про- грамма. Для удобства мы будем использовать при доказатель- стве форму нотации, принятую в программе (префиксную поль- скую запись), только лишь для теорем. Программа получает следующие первые результаты: zz>pqo+p-+q AJAf 1 из Ml и I р —> зз> рг О-> р, q-+r ММ2 из ЛИ и II Например, ММ2 выводится из мета-мета-метатеоремы II и из Ml с использованием подстановки р зз> q для а, р для b и q для с, где запятая употребляется в том смысле, как она исполь- зуется в мета-метатеореме I программы. Таким образом, по- лучаем (о-+зэ рр)о> (о, p-*q) или р-> зэ qrO+p, q-+r, что дает ММ 2. Рассмотрим теперь часть порождающего дерева, которое приводит нас в данном случае к интересной теореме:
Таблица 3.6. Доказательство теоремы (1 р zd р) zd р Т2 +ММ1 р -> => qp М2 ТЗ +ММ1 zd 1 р -> zd qp М3 Т1 +ММ1 zd р zd qr -> zd zd pq zz> pr M4 М4 +ММ2 zd p zd qr, zd pq pr M5 Продукция M5 порождает ММ--теорему: zd p zd qr o* zd pq -> zd pr ммз Т? +ММЗ rDpq^DDpp M6 Т2 +М6 PP T4 М2 + первый антецедент M5 zd pq, zd rp ->zd rq M7 Продукция M7 порождает ММ-теоремы: zd pq p> zd qr -> zd pr MM4 zd pq o> zd rp > zd rq MM5 ТЗ +ММ5 zd p zd Tqlr-* zd p rq M8 Т2 +ММ4 zd zd pqr —> zd qr M9 М4 +М9 zd p zd qr q zd pr MIO Т4 +М10 zd p zd => m T5 Т5 +М4 ZD ZD p ZD pq ZD pq T6 Тб +ММ1 zd pzD qq-> ZD pq Mil Тб +ММ5 dd p dd q tz> qr zd p dd qr M12 Т1 +М9 ZD ZDpq ZD ZDrp ZD rq . T7 Т7 4-ММ1 ZD pq -> ZD ZD rp DDrq M13 Т7 +М10 ZD ZD pq ZD ZD qr ZD pr T8 Т8 +ММ1 ZD pq ZD ZD qr ZD pr M14 Т2 +М14 ZD ZD ZD pqr ZD qr T9 T9 +ММ5 ZD p ZD ' ZD qrs ->ZZ) p ZD rs M15 Т1 +М15 ZDZDpZDqrZDqZDpr T10 тю 4-ММ4 ZD ZD p ZD qrs "> ZD zd q ZD prs M16 ТЗ +М9 =>~]p^pq Til тп +ММ4 zi zd pqr ->zz~\pr M17 М14 +М17 ZD pq ZD 1 <7 ZD pr M18 М18 +М8 ZD 1 p<7 -> ZD 1 <7 ZD rp M19 М19 +М11 ZD1PP-»ZD Ipp M20 Т4 +М20 => П PP T12 Т12 +МЗ zd pl Ip T13 Т13 +М13 zd ZD pq ZD p n q T14 Т14 +М8 ZD ZD ] PQ ZDlpp T15 Т15 +М13 ZD^pZDlgrZDpZDlr? T16 Т16 +М12 => => 1 p => 1 qp => 1 pq T17 Т17 +М16 ZD OlpZD] <7<7ZD1<7P T18 Т18 +ММ1 ZD 1 p ZD 1 <7<7 -> ZD 1 qp М2Г Т1^ +М21 zdIpIzdIpp T19 Т19 +МЗ ZD ZD 1 ppp T20
ФОРМАЛЬНЫЕ СИСТЕМЫ 161 (~\р ~у р)г=> р. Чтобы достичь этого результата только своими средствами (полностью автономно), программа строит 5 мета- метатеорем, 21 метатеорему и 21 теорему, используя описанные выше процедуры. Отметим при этом важные результаты, по- лученные попутно в процессе общего доказательства,— это теоремы Т4, Т7, Т8, T9, Til, Т12, Т13, Т15. Само доказатель- ство теоремы в целом приведено в табл. 3.6. Другие теоремы, доказанные в данной аксиоматике и при других наборах аксиом, можно найти в работе (Pitrat, 1966). 3.10. Принцип резолюции и язык Пролог 3.10.1. Принцип резолюции В 1930 г. Эрбран в докторской диссертации по математике предложил оригинальный метод доказательства теорем в фор- мальных системах первого порядка. Общая идея метода состоит в том, чтобы получить некоторое заключение С, исходя из ги- потез Н\, Н2, ..., Нп, т. е. чтобы доказать теорему Т . Hl A Н2 А ... А Нп^С, достаточно доказать противоречивость формулы F Д1 АЯ2Л ... А//ПЛПС, в которой отрицание заключения добавлено к исходным гипо- тезам. Такое доказательство можёт быть существенно проще прямого вывода. Для доказательства противоречивости фор- мулы У7 достаточно показать, что F является не-тёоремой, так как в ней содержится подвыражение вида (рЛПр). Эрбран предложил эффективный способ доказательства за конечное число подстановок в формулу F, когда исходное выражение Т является теоремой. Ниже эта проблема рассматривается более -подробно. <3.10.2. Теорема Эрбрана Доказательство противоречивости формулы F основывается >на использовании отрицания. Теорема Эрбрана гарантирует, ;что существующее противоречие может быть всегда достигнуто за конечное число шагов, каковы бы ни были значения истин- ности, даваемые функциям, присутствующим в гипотезах и за- ключениях. Теперь приведем некоторые определения, которые потре- буются нам в дальнейшем. И) Ж.-Л. Лорьер
162 ГЛАВА 3 Для начала будем считать, что операции выполняются толь- ко над стандартными выражениями, представляющими собой дизъюнктивные формы Ci, которые называются предложениями: CZ = (LZ1 V LZ2 V ... V Lin.\ Формула F представляет собой конъюнкцию предложений: F = ACi. Ниже мы увидим, что подобная стандартизация все- гда возможна для формул первого порядка. Входящие в пред- ложения Ci литералы L/* не содержат символов Д, V, Э, или до. Пусть Е представляет собой множество предложений, Go — множество констант, появляющихся в Е, и для всякого натурального числа i множество Gz представляет собой объеди- нение множества G,_i и всех термов fk(ti, t2, tmk), где f* — функция mk аргументов-термов t/ (j = 1, 2, ..., mk) из G(_b Пусть оо G(£)= U Gi. Множество G(E) по определению является универсумом Эрбрана множества Е. База Эрбрана В(Е) некоторого множе- ства предложений Е представляет собой множество всех ато- марных формул множества Е, т. е. таких формул, каждая из которых содержит либо не более одного предиката, либо от- рицания предиката. Доказательство теоремы Эрбрана состоит в построении такого дерева А над элементами В(Е), что 1) Е — корень дерева Л; 2) всякая вершина дерева А является подмножеством Е, случайным образом означенным; 3) всякий путь, исходящий из корня дерева, не может со- держать одновременно р и ~]р, где р — какая-либо формула. Ассоциировать (сопоставить) какое-то конкретное значение истинности с формулами, построенными над В(Е), означает просто выбрать какой-то конкретный путь на А. Противоречие выявляется, когда приведенное выше условие 3 уже не удовлет- воряется. Теорема Эрбрана гарантирует, что это достигается всегда, когда Е невыполнимо (т. е. противоречиво). Теорема Эрбрана (1930 г.). Необходимым и достаточным условием того, чтобы множество предложений Е было невыпол- нимым, является существование конечного противоречивого множества полностью означенных подформул из Е. Это множество может быть построено в виде дерева описан- ного выше типа с помощью простого метода, связанного со сле- дующим фундаментальным результатом.
ФОРМАЛЬНЫЕ СИСТЕМЫ 163 Теорема о резолюции. Пусть имеется формула F1 в стан- дартной форме представления Fl =Ct А С2 А ... A (р V L0 А • • • A (“I р V L/) А • • • А Ст, и пусть имеется формула F2: Р2 = Р1 А (Lt V L,). Тогда если формула F2 противоречива, то и формула F1 также противоречива. Доказательство. Для доказательства теоремы достаточно показать, что F1->P2. Случай, когда Li = ср, является триви- альным, так как достаточно показать, что если Е2 = Lj проти- воречиво, то Е\=р А(ПрУ' Lj) также противоречиво и Ck для k =/= t и k =/= j не влияют на ре- зультат. Для логики первого порядка выполняется тождество (П А V В) == (А дэ В) и, следовательно, El = р А (р дэ Lj). По правилу модус поненс и метатеореме р имеем q р Д q : El = Lj, что приводит к требуемому результату FI-+F2, В противном случае, когда L/ эн <р, доказательство анало- гично, если учесть, что р = ~1 Пр: BIMpV L^ Д Пр либо Е1^(ППрУ Д)АПр = (Пр=эД)АПр и, следовательно, снова El = Li и FI -> F2. В общем случае Е1 имеет вид Е1=(рУ £г) А (Пр V L/) й, как и в предыдущем случае, получаем г p\f Li^lLiTD р и П Р V Lj->pn Lj. Следовательно, Д1^(-]Д^р) a(p=>lz). Используя теорему (а дэ Р) А(Ь дэ с)-+а дэ с, получаем Ll->nLi=3 Lj 6*
164 ГЛАВА 3 либо Ei+LiVL. и, следовательно, F1 F2. Таким образом, формула F2 выводима из формулы Fl и предложение L, V L, нового не добавляет, так как если F2 про- тиворечиво, то противоречиво и F1. Более того, процесс после- довательных “резолюций”, установленный таким образом, яв- ляется полным, т. е. если формула Е противоречива, то резо- люция докажет это противоречие за конечное число шагов, что как раз и гарантирует теорема Эрбрана. Предложения С( = (р V £>) и С,-= (~]р V Lj) называются родительскими предложениями к предложению, называемому резольвентой. Lt V L,. Разумеется, если предложения Ct и С,- содержат переменные, что в общем случае имеет место в ло- гике первого порядка, то с помощью процедуры унификации может быть найден общий литерал р. Несколько унификаций могут дать этот литерал как дерево формул, которое нужно построить, чтобы получить доказательство, т. е. противоречие. Примеры резолюций 1) Исчисление высказываний. Пусть формула F1 = И s A q Л (р V П <?) А (П р V «) из четырех предложений представлена в виде следующей конъ- юнкции: Cl A С2 Л СЗ А С4. Первая резолюция между С1 и С4 приводит к резольвенте С5 s |р. Вторая резолюция между С2 и СЗ дает С6 = р. Это предложение С6, унифицированное с предложением С5, дает пустую резольвенту: следовательно ис- ходная формула F1 является противоречивой. Иначе геворя, мы только что установили, добавив резольвенты к гипотезам, следующую теорему: q Л (рУ П q) Л ("1 р V s) => s. 2) Логика первого порядка. Пусть даны х, у, z, t, v — пять переменных, а, b и с — три константы, Р, Q и R— три каких-то предиката и следующее выражение F1: Fl Р (х, у} Л Q (О Л R(v) Л (W, г) V П Q(&) V П Q (с)). Унификация дает три подстановки и три возможные резоль- венты, исходя из F1: S = {х/а, y/z} дает F2 = Q (6) V “I Q (с), S' — {t/b} дает F'2 — “~| Р (a, z) V ~] Q (с), S" = {t/с} дает F"2 = ~\Р(а, z) V ~1 Q (Ь).
ФОРМАЛЬНЫЕ СИСТЕМЫ 165 В этом случае доказательство будет также завершено, когда Lt и Lj окажутся пустыми, т. е. когда внутреннее противо- речие возникает при построении резольвенты. В данном случае это относится к и второму предложению в F1. Подстановка S'” — {t/b} дает F3 — ~]Q(c), т. е. снова , то же предложение, a S”” = {Vе} — резольвента и F4 = (пустое предложение). Та- ким образом, F1 было противоречиво. 3.10.3. Практическая организация доказательств по принципу Эрбрана Если все предложения представлены в стандартной форме, т. е. в виде конъюнкций, то использование знака А становится лишним. Для порождения дерева достаточно хранить эти пред- ложения, записанные непосредственно друг за другом. Во время выполнения резолюции предложение-резольвента добавляется к уже имеющимся (без изменения предшествующих предло- жений) так, чтобы сохранялись другие возможности подстано- вок, как это показано ниже. После выполнения подстановки S в верхнюю часть всего набора предложений помещается- эле- мент HQ(&) V ~|Q (с). Каждое предложение хранится в единственном экземпляре. Кроме того, если резольвента С1 является менее общей, чем предложение С2, уже имеющееся в хранимом наборе, то она не сохраняется, т. е. если существует подстановка S, такая, что S-C2 = Cl, то Cl отбрасывается. Таким является случай, когда Cl = Q(a), a C2 = Q(t). Порядок расположения предложений в наборе при их хранении не является существенным в силу коммутативности оператора А. Число литералов в какой-то конкретной резольвенте равно сумме литералов в предложениях, предшествующих ей (пред- ложениях-предках), уменьшенной на две единицы. Таким обра- зом, оно возрастает, за исключением тех случаев, когда одно из двух родительских предложений имеет не более двух литера- лов. Противоречие обнаруживается в конце концов с помощью двух унитарных родительских предложений, т. е. предложений с единственным литералом. Приведение к нормальной конъюнктивной форме Необходимо показать теперь, каким образом любое выраже- ние логики первого порядка может б^ггь преобразовано в конъ- юнктивную нормальную форму. Алгоритм такого преобразова- ния состоит из шести основных этапов. 1) Приведение к "пренексной” форме. На этом этапе пере- водятся в головную часть все кванторы. При этой операции
166 ГЛАВА 3 необходимо сохранять порядок следования кванторов, так как коммутативность отсутствует. Боле того, квантифицированные переменные переименовываются в случайном порядке в соответ- ствии со следующими теоремами: (Q1 х) А (х) * (Q2 х) В (х) -> (QI х) (Q2 у) (Л (х) * В (х)), где Qi — означает либо V, либо В и * означает либо V, либо А. Аналогичным образом (Vx) [Р (х) о (Эх) Q (х)] (Vx) [Р (х) => (By) Q (у)]. Например, если исходная формула Е имела вид (Vx) (Р (х) => ((Ну) (Р (у) VlR(a, х, у)) => (V г) (П S(у, z)))), то после этого этапа она принимает следующую форму: (Vx) (Ну) (Vz) (Р (х) => ((Р (у) V П Р (а, х, у)) => (П S (у, z)))). 2) Удаление кванторов существования. Эта идея принадле- жит математику Сколему (1927 г.). Она связана с тем, что вся- кая переменная, на которую распределяется действие квантора существования, в действительности является функцией перемен- ных, на которые распространяется действие квантора всеобщ- ности. Каждая из них в процессе сколемизации замещается но- вой функцией. Выражение Е в этом случае при y = f(x) при- нимает следующий вид: (Vx) (Vz) (Р (х) ((Р (/ (х)) V П Р (а, х, f (х))) => (П S (f (х), г)))). 3) Удаление кванторов всеобщности. Теперь все -перемен- ные, которые имеются, подвержены действию кванторов все- общности. Кванторы можно опустить и выражение Е записы- вается следующим образом: (Р (х) лэ ((Р (f (х)) v ~1 Р (а, х, f (х))) лэ (-] s (/ (х), z) )У). Если к этому моменту еще остаются кванторы существования, они находятся в головной части выражения и могут быть устра- нены аналогично предыдущему. 4) Удаление символов =э и Здесь используются 2 тео- ремы: А «-> В (А лэ В) А (В лэ А), А т=> В (П А V В), которые применяются столько раз, сколько необходимо. Наша формула в этом случае приобретает вид ("1Р (х) V ("I (Р (/= W) V ~1 Р (а, х, f (х))) V "I S (f.(x), z))). Используются только три оператора: V, А, ~1.
ФОРМАЛЬНЫЕ СИСТЕМЫ 167 5) Уменьшение радиуса действия отрицаний. Теоремы -|(Л7В)->("1ЯЛ~1В), -](Д АВ)^(-|ЛУ~1В) позволяют распространять действие оператора отрицания толь- ко на одиночные предикаты. Выражение Е имеет вид (ПР(х) V((nP(fW)APW x,f(x)))VWW, z))). 6) Перевод выражения в конъюнктивную форму. Этот этап предназначен для приведения формул к следующему виду: Cl Л С2 Л ... Л Ci Л • • • Л Сп, где предложения Ci содержат уже только связки V и Для этого используются теоремы дистрибутивности 4V(BVC)^(A VB)A(XVC) (Д Л В) V С->(Л V Q Л (S V С). Теперь выражение Е записывается следующим образом: (1Р(х) V((lP(fW) V z))A A(PW х, fW) V~WW, z)))). И наконец, получим (-|PWV(-|P(fW) V“lS(fW, z)))A Л (и P W V R (a, X, I W) V 1 s (f W. z)). . .. .. В результате использования метода резолюции после уда- ления скобок, которые не имеют смысла в дизъюнктивных вы- ражениях, набор предложений приобретает следующий вид Я Р W V R (а, х, f W) VW W, z), П P W V П M W) VW W, z). Необходимо отметить, что отдельные этапы в описанном выше алгоритме могут быть выполнены и в другой последова- тельности, чем это представлено в алгоритме. Например, кван- "торы могут удаляться в последнюю очередь. Первым реализовал на ЭВМ идеи Ж- Эрбрана Дж. Робин- сон в 1963 г. 3.10.4. Примеры доказательств с помощью принципа Эрбрана Приведем полное доказательство, которое могло бы быть получено программной системой Робинсона. Допустим, что мы хотели бы доказать утверждение: “кисть является частью человека”. Для этого нам придется использовать понятия
168 ГЛАВА 3 бинарного предиката А и его свойства транзитивности. Запись А (х, у) означает, что х является частью у, а свойство транзитив- ности предиката представляется выражением А (х, у) А А {у, z) id zd А (х, z). Последнее выражение может быть представлено в виде следующей дизъюнктивной нормальной формы, в которой используются обозначения, принятые в языке программирова- ния Пролог: — А (х, у) V — А (у, z) V + А (х, г), где в дальнейшем —Р заменяет последовательность символов ПР, а +Р — символ Р для всякого предиката Р, что позволяет избежать символов V в предложениях. В гипотезах в нашем примере используются четыре кон- станты т, b, t, h, обозначающие соответственно “кисть", “ру- ка”, “тело”, “человек”. Итак, в нашем случае к гипотезам А (т, b), A (b, t), A(t, h) добавляется отрицание заключения: —А(т, h). Таким образом, программа работает с пятью пред- ложениями, неявно объединенными с помощью операции А: О — А (х, у) — А (у, z) + А (х, z) С2 + А (т, Ь) СЗ + A (b, t) С4 + А (/, h) С5 — А (т, /г) Мы дадим здесь те резолюции, которые позволяют наибо- лее быстро прийти к противоречию. (Найденное собственно про- граммой эффективное дерево решения содержало на самом деле другие предложения и другие пути.) Итак, при решении за- дачи последовательно выполняются следующие резолюции: Родительские предложения с номерами унифицированных литералов Подстановки Резольвента С5 + С1 3 С6 + С2 Cl -F С1 3 С8 • 1 + СЗ С9 + С4 {x/m, z/ft} {у!Ь} {x/b, z!h} {y/t} <P C6 — A (m, y) — A (y, h) C7 — A(b, h) C8 — A(b, y)~ A(y, h) C9 — A (t, h) CIO □ Последняя резолюция в качестве результата имеет пустое предложение, что означает получение противоречия, и, следо- вательно, в данной системе аксиом теорема А (т, h) доказана.
ФОРМАЛЬНЫЕ СИСТЕМЫ 169 Рассмотрим теперь более сложный пример использования метода резолюции. Пример. Если в какой-то группе квадрат любого ее элемен- та равен нейтральному элементу группы, такая группа яв- ляется коммутативной. Для описания того факта, что некоторая композиция двух элементов данной группы по определенному закону приравни- вается к третьему элементу этой группы, используется преди- кат 1: I (х у, z), если и только если х, y = z. Свойства нейтрального элемента группы е записываются следующим образом: 4- 1 (е, х, х) и + I (х, е, х). Очевидно, что обе переменные х здесь являются независимы- ми, так как квантифицированы раздельно. Мы их будем запи- сывать последовательно в виде х1 и х2, чтобы не произошло пу- таницы в процессе унификации. Напомним, что еще до выпол- нения унификации и, следовательно, начала любой резолюции необходимо различным образом переобозначить переменные, которые первоначально были квантифицированы независимо в предложениях. Этот процесс называется разделением пере- менных. Если i(y') обозначает сколемовскую функцию, которая дает инверсное значение какого-то элемента у, то мы имеем + / (/ (у), У, в) и + I (У, i (У), в), но здесь также обе переменные у являются независимыми и их следует разделить. Теперь нам необходимо выразить ассоциативность правила о среднем члене пропорции в соответствующих обозначениях. Это выполняется в два этапа. Вначале рассмотрим ассоциатив- ность слева х (у г) (ху) z. (AG) Располагая единственным предикатом равенства I, необхо- димо использовать промежуточный переход. Пусть ху = и, yz = v и хи = w. — являются гипотезами, тогда выражение (4G) имеет следующий смысл: при наличии этих трех Ьипотез имеет- ся также и uz = хц). Этому выражению эквивалентно предложе- ние в дизъюнктивной нормальной форме (4 КВ А С) □ Д V 1 В V “I С V D),
170 ГЛАВА 3 Таблица 3.7. Доказательство коммутативности в группе, в которой V х х, х = е, методом Эрбрана или методом резолюции С1 С2 СЗ С4 С5 С6 С7 С8 С9 + I (е, xl, х!) + I (х2, е, х2) + /(;(</l), yi, е) + I (г/2, L (у2), е) + 1 (хЗ, хЗ, е) — 1 (х4, у4, и4) — I (у4, z4, о4) — I (х4, v4, и>4) + I («4, z4, w4) — I (х5, у5, u5) — I (y5, z5, t>5) — I (u5, z5, ®5) + / (x5, об, o>5) + I (a, b, c) — I (b, a, c) Родительские-, предложения Подстановки Резольвенты C5 + C7.1 {x5/x3, y5/x3, u5/e} CIO — I (x6, z6, v6) — — / (e, z6, w&) + + / (хб, об, K>6) C8 + C10.1 {x6/a, z/§!b, v6/c} CH — I (e, b, w7) + I (a, c> «»7) Cl 1.1 + Cl {te>7/ft} C12 + / (a, c, 6) C9 + C7.4 {x5/6, »5/a, a?5/c] C13 — / (ft, y8. «8) — — I (y8, z8, a) — — I (u8, z8, c) C5 + C13.1 {x3/6, x/8/6, uS/e} C14 — 1 (b, z9, a) — I (e, z9, c) C14.2-) Cl {z^/c} C15 — I (6, c, a) C15 + C6.4 {u4/b, z4/c, w4/a} C16 — 1 (xlO, у 10, b) — — I (у 10, c, vlO) — — I (xlO, vlO, a) C12 + C16.1 {xlO/a, х/10/с} C17 — I (c, c, nil) — I (a, oil, a) C17.1 + C5 (хЗ/c, nll/e} C18 — / (a, e, a) C18+ C2 {x2/a} C19 □ что соответствует — I (х, у, и) — 1 (у, z, v) — I (х, v, w) + I (и, г, w). (AG) Аналогичным образом выводится и ассоциативность справа — / (х, у, и) — / (у, z, и) — I (и, z, w) + I {х, v, w). (AD) Заданное свойство описывается выражением + I (х, х, е). Наконец, отрицание заключения записывается в виде (Vx) (у*/) (V2) ((ху = z)=> (ух = z)), так как выражение 1(Лэй)н>-](-|Л V S) ЯП Л Д ЯВ->АА П В
ФОРМАЛЬНЫЕ СИСТЕМЫ 171 записывается в виде (На) (36) (Вс) (аб = с) А (Ьа с). Элементы а, Ь, с рассматриваются как три константы. До- казательство должно привести к выводу о невозможности их существования. Это отрицание представляется в виде двух предложений + I (а, Ь, с) и — I (Ь, а, с). Общая схема доказательства методом резолюции приведена в табл. 3.7. 3.10.5. Анализ проведенных доказательств Хотя приведенные доказательства не были вполне нагляд- ными, тем не менее их легко перевести в обычную форму за- писи, начиная с заключения, например: (Vz/) tn 6= у => у & h b ф h (рука не принадлежит человеку) (Vz/) b 6= у у ф h t ф h. Отсюда противоречие. Множество других резолюций может быть выполнено, и много других путей ведет к пустому предложению. В общем случае выгодно иметь систему предложений с единственным предикатом, так как в этом случае увеличивается число воз- можных резолюций. Так, при рассмотрении второго доказатель- ства можно обнаружить, что в конце концов ооа предложения гипотез об инверсных i(x) не используются: все этапы, содер- жащие резолюции с СЗ или С4, удалены. Программа, которая их не содержит, менее стеснена в выборе (например, необ- ходимо более ста шагов, чтобы получить табл. 3.7). В доказа- тельстве, отраженном в этой таблице, "первым существенным этапом является этап С12, который утверждает, что наряду с гипотезами имеется и выражение ас — Ь. Этот результат пред- ставляет собой лемму, поскольку затем поиск вновь начинает- ся в новом направлении, чтобы получить С13: ((by — «) A (yz = а)) =э (иг с) С16: ху = b о х (ус) =£ а С17: а(сс)^а. Это приводит к противоречию, так как сс = е. Отметим, что умножение слева на с использовалось “интуи- тивно” в этой резолюции.
172 ГЛАВА 3 3.10.6. Стратегии Важной проблемой, связанной с проблемой “комбинатор- ного взрыва” числа резолюций, остается проблема соответ- ствующего выбора предложений и литералов для унификации. Этот выбор должен выполняться так, чтобы пустое предложение достигалось наискорейшим образом. В данном случае также не имеется общего метода. На каждом этапе конкретный выбор за- висит от текущего контекста задачи. Однако некоторые страте- гии выбора вне зависимости от текущего состояния процесса решения задачи, приводящие к ограничению числа возможных резолюций, все же разработаны. Пользуясь ими, важно не по- терять полноты метода, т. е. гарантию получения хотя бы ка- ким-то одним способом необходимого доказательства. Ниже мы приведем несколько таких стратегий. Стратегия унитарности. Одно из родительских предложений должно всегда иметь единственный литерал. Эта стратегия оче- видно не является полной, так как если набор предложений не содержит предложения с единственным литералом, то работа программы заканчивается. Приведенные выше доказательства могли быть получены с помощью этой стратегии. Стратегия исходных данных. В этом случае одно из предло- жений является одной из гипотез или отрицанием заключения. Данная стратегия была использована в первом примере дока- зательства методом резолюции. Стратегия поддержки. Используются одно из родительских предложений и доказываемое заключение или одно из предло- жений, вытекающих из них. Систематически удаляются от ре- зультата резолюции, двигаясь от него в обратном направле- нии и пытаясь подняться по дереву решения к гипотезам, запре- щая всякую резолюцию вне. исходной системы. Эта стратегия является полной, но очень длинной, так как она опирается на структуру, которая не всегда является эффективной. Линейная стратегия. Одно из предложений является пред- ложением предшествующей резольвенты, а другое — одним из ее “предков” или исходным предложением. Эта стратегия (улуч- шенный вариант стратегии исходных данных) является полной и одной из наиболее эффективных. В литературе встречаются и другие стратегии. Следует от- метить, что пересечение любых двух из описанных выше страте- гий приводит к более ограниченному варианту, в частности ре- зультирующая стратегия может быть неполной, хотя исходные стратегии и были полными. Теперь остается рассмотреть проблему выбора литералов. Они обычно выбираются вне родительских предложений, когда
ФОРМАЛЬНЫЕ СИСТЕМЫ ' 173 возможны многочисленные унификации. В общем случае лите- ралы задаются заранее и программы выбирают из них первую же пару, использование которой приводит к успешному резуль- тату. Когда нумерация литералов передана от «родителей» к резольвенте, получают стратегию, называемую стратегией замка (лок-стратегия), которая является полной и эффективной. 3.10.7. Преимущества и ограничения метода резолюции Метод доказательства, основанный на принципе резолюции, представляет интерес, так как является систематическим. Боль- шое число публикаций, трактующих вопросы “автоматического доказательства”, посвящено методу резолюции начиная со вре- мени появления работ Эрбрана и реализации этой идеи Робин- соном в 1965 г. Невозможность определить эффективную стра- тегию решения для всех областей приложения приводит к сле- дующему выводу: для заданного набора предложений либо доказательство получается очень быстро на ЭВМ, либо оно не получается вовсе. Однако эффективность программ резко падает с увеличением числа предложений. Проблема заключается в том, чтобы определить тот момент, когда надо остановить про- грамму, поскольку при этом существуют две опасности: во-пер- вых, взрывное увеличение числа предложений, а во-вторых, воз- можность преждевременного прекращения работы перед самым моментом получения решения. Практическая значимость и оригинальность метода резолю- ции определяются его двумя свойствами, описанными ниже. 1. Управление движением по дереву И-ИЛИ, обычно необ- ходимое при. всяком доказательстве, в данном случае отсут- ствует. Эту функцию выполняет стандартизованный набор пред- ложений, причем может быть определена очень простая про- цедура обработки “выбор + унификация". 2. Гипотезы, предположение и промежуточные предложения играют здесь одну и ту же роль. Доказательства получаются при одновременном движении в двух направлениях: от гипотез к заключениям и от заключений к гипотезам, причем доказа- тельство достигается, когда оба эти пути просмотра встречаются друг с другом (рис. 3.23). Существенным недостатком метода является то, что уже по построению он предназначен только для доказательства теорем. Он не пригоден для того, чтобы изобретать или придумывать некоторые предложения, а затем уже доказывать их, как это обычно делает математик. К тому же, если предположение не является теоремой, резолюция может привести к построению бесконечного дерева решения. Таким образом, метод резолюции
. 174 ГЛАВА 3 интересен благодаря простоте и систематичности, но, к сожале- нию, применим только для ограниченного числа случаев (доказа- Гипотеза Рис. 3.23. Схема получения доказательства методом резолюции. тельство не должно иметь большую глубину, а число потенци- альных резолюций не должно быть большим). 3.10.8. Язык Пролог и применение метода резолюции Начиная с 1972 г. А. Кольмрауер разрабатывал со своей группой сотрудников в г. Марселе систему автоматического дока- зательства, построенную на базе логики первого порядка и методе Эрбрана—Робинсона. Для задания какой-либо задачи системе в терминах предикатов пользователь системы применял язык Пролог, причем система автоматически выдавала ответ (если он существовал), используя для этого унификацию и метод ре- золюции. Таким образом, Пролог может рассматриваться как декларативный язык, где единственными входными данными яв- ляется формальное определение задачи. Так как пользователь заинтересован в эффективном решении своей задачи, то для него важно получение этого решения в явном виде и с этой точки зрения доказательство, основанное на опровержении спе- циальным образом сконструированного предложения, получае- мого методом резолюции, не является для него достаточным. Поэтому в 1969 г. для устранения этого недостатка Грин пред- ложил ввести в исходный набор предложений “ответный” пре- дикат, связанный с заключением: И заключение (x)V вывод (х), либо заключение (х)А вы- вод (х), чтобы система обеспечивала решение в явном виде и выдавала х пользователю. Покажем теперь на примере, что дает исполь- зование языка Пролог. Предположим, что требуется произвести вызов некоторого лица по телефону. Наши данные будут представлены в виде че- тырех предикатов Т, V, А и т. е. надо соединить по те- лефону лицо Р по номеру телефона п, А (х, /). Лицо х находится в месте I, причем место I имеет номер телефона т. Предположим, что Пьер хочет навестить своего друга Жана.
ФОРМАЛЬНЫЕ СИСТЕМЫ 175 Тогда V (у, z) означает, что лицо у посетило лицо z. Следова- тельно, мы имеем для начальной точки, что V = V (Пьер, Жан). Теперь следует отразить полезные свойства используемых предикатов: если у посетило z и если z находится в е, то, следо- вательно, у также в е (предложение С2). Если Р находится в / и если / имеет номер телефона п, можно соединить по теле- фону Р с номером п (предложение. С1). В языке Пролог знаки V не используются внутри предложе- ний, а отрицания, как обычно, обозначаются знаком —. Пролог автоматически производит разделение переменных в ходе после- довательных резолюций. Все предложения, относящиеся к од- ному и тому же заключению (и, следовательно, соединенные знаком +), должны следовать друг за другом. Пролог позво- ляет использовать только предложения хорновского типа, т. е. такие предложения, которые содержат по крайней мере один положительный литерал, причем он должен находиться во главе предложения. Приведенная ниже система предложений пол- ностью удовлетворяет этим требованиям: Cl: + J(x, т} — А(х, т), С2: + А (у, ё) - V {у, z) - A (z, е), СЗ: + А (Жан, контора — Жан) С4: (Пьер, Жан) С5: + Т (контора — Жан, 46-54-32-10). С6: —/(Пьер, п) — вывод (п)! Обработав эти предложения, Пролог непосредственно дает ответ 4654-32-10. Приводимые ниже резолюции понятны пользователю. В них используется стратегия поддержки и замка. Пролог разверты- вает исследуемое дерево вначале в глубину, выделяя единствен- ное отрицательное предложение. Остальные предложения обра- батываются в их естественном порядке. Литералы систематиче- ски исследуются, начиная слева направо. Для новой резолюции предпочтительно используется последняя полученная резоль- вента : С6 + С1.3 {х/Пьер, т/п} С7.1 + С2 {у/Пьер, efl} С8.Ц-С4 {z/Жан} С9.1 + СЗ {//контора — Жан) С10+С5 {«/46-54-32-10} С7: — А (Пьер, Z) — Т (/, п) — вывод (п) С8: - V (Пьер, г) - А (г, Г)-Т (I, п) - — вывод («) С9: — А (Жан, Z) — Т (I, п) — вывод (п) СЮ: — Т (контора — Жан, п) — вывод (п) СП:-вывод (46-54-32-10)
176 ГЛАВА 3 Выходной предикат становится здесь единственным литера- лом, причем ответ печатается системой. Ответ, выдаваемый Прологом, может быть не только кон- стантой, но и формальной переменной, как, например, в сле- дующем случае: если х является “отцом” для у и если z яв- ляется “дедом” для у (С1) и все имеют “отцом” (С2). Кто яв- ляется “отцом” некоего /? Здесь исходные условия представляются в следующем виде: Cl: + GP(z, у)-Р(х, у)Р(х, у) С2: +Р(р(и), и) СЗ: — GP (о, t) — вывод (ц), что приводит к следующим резолюциям: C3 + C1{z/d, у/t} С4 + С2 {х/р (u), u/t} С5+’С6 {о/p (и), u/P(t)} С4: — Р (х, t) — Р (х, х) — вывод (о) С5: — Р (v, р (/) — вывод (о) С6: — вывод (р (р (/))) вывод: р (р (/)) В этих примерах обнаруживается богатство возможностей системы, а также возможность. ее использования во всех про- странствах, где деревья доказательства не слишком велики. Важной областью применения системы является реализация за- просов к базе данных. В тех случаях, когда необходимо извлечь из базы показатели, имеющие желаемые атрибуты, язык логики обеспечивает необходимую мощность для языка запросов. Си- стемы типа Пролога, получив запрос, тут же начинают отыски- вать ответы на него без каких-либо специальных предваритель- ных этапов. Другой областью, где находит применение Пролог, является управление роботами. Здесь речь идет о роботах, которые спо- собны решать задачи “в уме” и, исходя из этого, строить план действий. Тот же способ запоминания с помощью предикатов позволяет запоминать план, построенный с помощью резолюций. Робот может ходить, передвигать какой-то объект, влезать на ящик. Пусть, например, Е (х, у, z, s) суть предикат, который имеет следующий смысл: “Робот — х, ящик — г, бананы —у опреде- ляют состояние s”. Тогда М(xl, yl, si) — состояние, достигаемое роботом, переходящим от xl к yl, выходя из состояния si; Р(х2, z/2, s2) —состояние, достигаемое роботом, передвигаю- щим ящик от х2 к у2, начиная с состояния s2; G(s3)— состояние, достигаемое роботом, взбирающимся на ящик из состояния s3;
ФОРМАЛЬНЫЕ СИСТЕМЫ 177 а, Ь, с — первоначальные позиции робота, бананов, ящика (состояние sO); A (s4) — предикат, отражающий тот факт, что робот может достать бананы из состояния s4. Исходные предложения имеют следующий смысл. Робот может: идти к ящику Cl: + Е (с, у, с, М {t, с, s)) — Е (I, у, с, $) двигать ящик С2: +£(t», у, v, Р(х, v, w)) — E(x, у, х, w) взобраться на ящик СЗ: + Е U, У, х> G (s)) — Е (х, у, х, s) (первоначальное состояние) С4: + Е (a, b, с, sO) взяТь бананы С5: + A (G (z))— E(b, b, b, G (z)) (отрицание цели) C6: — A (w) — вывод (Л (&>)) Пролог легко решает это упражнение, но ему приходится сделать для этого ~50 унификаций. Решение можно получить гораздо быстрее, используя для этого следующую стратегию: идти от цели, не используя дважды одно и то же предложение в какой-то ветви дерева, а используя только последнюю резоль- венту й исходные предложения: Родительские предложения Подстановки Резольвенты С5 + С6 {w/G (z)} C7: - E (b, b, b, G (z)) — — вывод (Л (G (z))) С7 + СЗ . {x/b, y/b, г/s} C8: -E(b, b, b, s) - — вывод (Д (G (s))) С8 + С2 {v/b, y/b, s/P (x,. b, w)} C9: — E (x, b, x, w) — — вывод (4 (G (P (x, b, w)))) С9 + С1 {x/c, y/b, w/M. (t, c, s)J CIO: — E(t, b, c, s) — — вывод (Д (G (P (c, b, M (t. С10+С4 {t/a, s/sO) C, S))))) Cl 1: — вывод (Д (G (P (c, b, M (a, c, sO))))) Начиная с исходной позиции, робот идет (М) от а к ящи- ку с, который он двигает (Р) в b под бананы, и теперь ему оста- ется только взобраться на него (G).
Глава 4 КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ Введение Существуют четыре основных способа решения какой-либо задачи: 1. Применение явной формулы. 2. Использование рекурсивного определения. 3. Использование алгоритма. 4. Метод перебора, метод проб и ошибок и др. Несомненно, первый способ является “наилучшим”: мы исполь- зуем найденную и доказанную ранее формулу, которая во всех случаях дает решение поставленной задачи. К подобному “лобовому” подходу сводится решение таких задач, как определение нулей квадратного уравнения, опреде- ление названия дня, соответствующего произвольной дате, опре- деление силы тока в заданной электрической схеме. Собственно задача математики и состоит в том, чтобы найти явные фор- мулы для решения как можно большего числа возможных за- дач. Если такая формула существует, сложность задачи оказы- вается связанной с эффективностью вычислений. По определе- нию в формулу может входить только конечное число символов и операций, и это верно для любого числа параметров, включен- ных в эту формулу, т. е. для любой размерности п входной за- дачи. Следовательно, в этом случае сложность постоянна (не за- висит от п) и равна 0(1). Мы предполагаем, что сложность лю- бой операции (т. е. +, —, /, * и т. д.) не зависит от разряда чисел, над которыми она производится, т. е. сложность пропор- циональна числу операций. 4.1. Примеры хороших алгоритмов Пример 1. Подсчитайте сумму п чисел натурального ряда. Вы знаете соответствующую явную формулу, обладающую постоянной сложностью: в ней используется одна операция сло- жения, одна операция умножения и одна операция деления: Е « = («*(«+1))/2. г-1 Пример 2. Подсчитайте сумму квадратов п чисел натураль- ного ряда.
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 179 Возможно, вы знаете и умеете доказывать, что . i' £ i2 = («*(« + 1) * (2га + 1 ))/6. i-1 Пример 3. Подсчитайте сумму кубов п чисел натурального ряда. Вы чувствуете, что перечень примеров можно продолжить... Но здесь у математики эстафету принимает информатика. Если только мы умеем определять конечный процесс вычислений, по- зволяющий прийти к решению, нас не испугает отсутствие эф- фективной формулы. В связи с заменой формулы на процесс возникает новый вопрос: через сколько этапов мы получим ре- шение? Ответ на этот вопрос составляет цель данной главы. Часто, исходя из условия задачи, мы располагаем неявной формулой подсчета, в которой решение определяется рекурсив- но, постепенно. Так, сумма 5 (га) га. чисел натурального ряда определяется формулами S(ra) ==-S(« — 1) + га и 5(1) = 1, т. е. она описывается как процесс, легко представимый в хоро- шем языке программирования: ПРОЦЕДУРА 5 (га): сумма га чисел натурального ряда ЕСЛИ n=#l ТО 5 (га)«-5(га — 1) + га ИНАЧЕ 5(га)«-1 КОНЕЦ "ЕСЛИ" КОНЕЦ ПРОЦЕДУРЫ Чтобы подсчитать 5(5), система вызовет процедуру 5 с фор- мальным параметром га, равным 5. Поскольку 5=#1, система знает, что для подсчета результата ей необходимо прибавить 5 к значению 5(4), которое она опять-таки должна вычислить. Она снова вызывает процедуру 5. Кроме того, система записы- вает в стековую память, что, когда она будет знать значение 5(4), она должна прибавить к нему 5, чтобы получить тот от- вет, который от нее требовался вначале. Эту информацию мы можем представить в виде + 5 S (4)
180 ГЛАВА 4 Следующий вызов процедуры разворачивает подсчет 5(4), и мы получаем + 5 + 4 5(3) и так далее вплоть до + 5 + 4 + 3 + 2 5(1) При этом вызове процедуры, наконец, 5(1) может быть подсчи- тано по явной формуле: 5(1)-*-1. Системе не надо больше за- полнять стек, и теперь, чтобы получить ответ, она освобождает полученный стек в обратном порядке. Интуитивно мы видим, что описанный выше процесс эквивалентен итеративной схеме; 5*-0 ПОВТОРЯТЬ ДЛЯ /е[1, п] | 5<--5-Н КОНЕЦ ЦИКЛА по i В обоих случаях сложность вычислений составляет О(п), по- скольку число операций сложения, которое нужно выполнить в каждом из них, является величиной такого порядка. Если ис- кать сумму квадратов п чисел натурального ряда, оба приведен- ных алгоритма легко модифицировать. В общем случае сумма чисел степени р требует п— 1 операций сложения и п операций возведения в степень р: Отсюда следует, что для решения тех задач, для которых неизвестны эффективные явные формулы, необходимо уметь строить алгоритмы приемлемой сложности. В частности, класси- ческим и довольно удобным способом является использование с самого начала рекурсивной записи, которую часто легко осу- ществить и которая всегда кратка и элегантна. Если же слож- ность соответствующего алгорйтма слишком велика, информа- тик должен последовательно, исходя из рекурсивной формулы, находить, все более явные формулы и так до тех пор, пока не будет получен алгоритм вполне приемлемой сложности. Замечание. Теоретическая сложность, о которой здесь идет речь, подтверждается совершенно реальной сложностью, ощу- щаемой человеком, работающим за терминалом. Так что уси- лия информатиков-теоретиков по понижению сложности алго- ритмов решения некоторых распространенных задач вполне обоснованны. Пример 4. Предположим, что мы хотим узнать 30-е число Фибоначчи. Это число определяется как Е(30) с помощью
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 181 формул F (п) = F (п - 1) + F (п - 2), Е(2) = 1, Ы1)=1. ' Числа Фибоначчи, введенные Леонардом Пизанским, сыном Бо- наччи (1540 г.), входят в описания некоторых процессов, проис- ходящих в природе (например, процесса воспроизводства насе- ления; число F(ti) при этом является количеством людей в мо- мент времени и), и в описания некоторых областей математики (в частности, в доказательство неразрешимости десятой теоре- мы Гильберта о решении диофантовых уравнений). Явная формула. Формальное решение и подсчет общего чле- на последовательности путем поиска линейной комбинации ре- шений в виде г”, где г — нуль трехчлена х2 — х—1, приводят к точному выражению (к формуле Бине) F (п) = [(1 + УГГ - (1 - V5-)W V5"). Но мы можем не знать этого подсчета. Кроме того, эта формула относительно сложная. Для того чтобы убедиться в этом, доста- точно подсчитать вручную Е(3) или, тем более, ^(Ю). На са- мом деле задача даже полностью не решена, поскольку алго- ритм использования формулы нужно еще уточнить. Осуществ- лять ли раскрытие внутренних скобок по формуле бинома? Как вести подсчет: формально — с символом V 5 или .численно — с величиной 2,236068... и d десятичными знаками (и какое зна- чение установить тогда для d)? Очевидно, что, хотя результат должен быть целым, он не будет таковым, пока мы остаемся в рамках конечной арифметики независимо от того, как мы счи- таем — на микрокалькуляторе или на большом компьютере. Следовательно, встает вопрос: до какого “соседнего” целого числа нужно округлять? Как быть абсолютно уверенным в ре- зультате? Теперь рассмотрим два других подхода. Рекурсивная форма. Для этой четко сформулированной за- дачи рекурсивное программирование является решением с непо- средственной подстановкой: ПРОЦЕДУРА F (п): подсчет п-го числа Фибоначчи ЕСЛИп>2 ТО F(n)^F(n-l) + F(n-2) ИНАЧЕ F (п) 1 КОНЕЦ "ЕСЛИ" КОНЕЦ ПРОЦЕДУРЫ
182 ГЛАВА 4 Но опять-таки, как и в первом решении, возникает одна сложность. Подобно тому как мы делали это при подсчёте сум- мы чисел натурального ряда, смоделируем развертывание ре- курсивного алгоритма в информационной системе. Начало по- строения стека для подсчета /•'(30) выглядит следующим об- разом: И так _ вплоть до достижения одного из двух явно заданных результатов: В этом конце стека удается осуществить успешные подста- новки, и тогда система возвращается... к F(4), которое она снова разворачивает. Поскольку в любом случае единственные известные результаты (f(2) и Р(1)) равны 1, в конечном итоге система делает столько операций сложения, сколько единиц со- держится в F{п). Так как F(30) равно 832 040 и стек управле- ния вызовом процедуры F является величиной того же порядка, то здесь непосредственный рекурсивный метод непригоден. Оче- видно, что объем памяти и время, необходимые для работы этого алгоритма, совершенно неприемлемы. Поэтому нужно пе- рейти от сложности, составляющей O(F(n)) (т. е., по сути дела, экспоненциально зависящей от л, которое входит в явную фор- мулу), к более разумной сложности. Итеративные алгоритмы. Чтобы уменьшить эту дорогостоя- щую из-за большой глубины рекурсивность и избежать много- кратного повторения одних и тех же расчетов, можно преобра- зовать приведенную выше рекурсивную схему в рекуррентную. Иными словами, мы расчленим задачу, предположив, что она решена до определенной точки, т. е. до некоторого значения i из п. Затем мы выведем из него F(j) по крайней мере еще для
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 183 одного значения /. Для этого выдвигается гипотеза рекуррент- ности. В нашем случае естественно предположить следующее. Пусть F(l), F(2), ..., F(i) уже получены. Начнем с 1 = 2. При этом задача решена полностью, когда i = п. Если i^=n, приведенная в определении формула E(i+1) = =F(z) + E(i—1) позволяет распространить рекуррентную гипо- тезу на одну ступень дальше; следовательно, нам известны Е(1), Е(2), ..., F(i), F(t+ 1). Более того, приведенная в опре- делении формула показывает, что члены Е(1), Е(2), ..., F{i—2) в данном рекуррентном соотношении не участвуют. Вся необхо- димая информация содержится в тройке [i, F(i), F(i — 1)]. Пусть в соответствии с гипотезой эта тройка известна; тогда мы можем вывести из нее следующую тройку: [г + 1, F (i + 1), F (/)] [г + 1, F (I) + F (г - 1), F (01- Тем самым мы упростили гипотезу рекуррентности и нашу схему подсчета. Итак, у нас есть искомый итеративный алго- ритм. ' Оказывается, нам не нужно было запоминать вектор. Г[1, п] целиком, а достаточно было двух его значений. Назовем эти значения и и и: и соответствует F(i), a v — F(i—1). Тогда от тройки [i, и, у] мы можем перейти к тройке [Z-{- 1, «+ и, и] *-*—х + 1 {новое значение i} w<-u {сохранение прежнего значения и} ы<—и+и {новое значение и по приведенной в определении формуле} v+-w {новое значение v = прежнее значение u = F(i)} Начальные условия и тест остановки программ уже были указаны, так что полный алгоритм рассматриваемого третьего типа записывается следующим образом: Процедура Фибоначчи:- F (п) г *- 2; и ч— 1; v *- 1; {Рекуррентная гипотеза: [/, F(i) = u и F (i —-1) = ц] известны} ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА i Ф п | z<-i4-1; w<— и, «<-«-{- v, уч— w, КОНЕЦ ЦИКЛА по i РЕЗУЛЬТАТ и Конец процедуры
184 ГЛАВА 4 Очевидно, что этот алгоритм имеет сложность порядка О(п) вместо прежней О(Е(и)). Для подсчета F (п) необходимо со- вершить п — 2 итерации, каждая из которых включает 1 тест остановки, 2 операции сложения и 4 присвоения значений. Та- ким образом, мы достигли приемлемой сложности и “хорошего”, т. е. полиномиального, вполне реализуемого алгоритма. Разработка алгоритма не всегда столь проста: часто прихо- дится манипулировать более сложными структурами, чем числа или обычные арифметические выражения. В следующем раз- деле рассмотренный выше, принцип развивается на более слож- ных примерах, для которых в конце концов удается получить полиномиальный алгоритм. Затем мы составим полный список “хорошо решаемых” на сегодняшний день задач. Однако для некоторых задач, по-видимому, невозможно найти хорошие ал- горитмы. Этой проблеме посвящен разд. 4.4. Пример 5. Произведите сортировку п чисел с помощью сравнений. В качестве чисел возьмем, например, регистрационные но- мера или индексы каталога. Операция сортировки неупорядо- ченных элементов чрезвычайно распространена в информатике. Сначала теоретически установим нижнюю границу сложности этой задачи. Разумеется, никакой явной формулы в привычном смысле этого слова здесь нет. Необходимо определить эффек- тивный процесс упорядочения п заданных чисел, например в пе- рекрестном порядке. Чтобы осуществить это, нам нужно тем или иным способом сравнить числа попарно. Основная элемен- тарная операция здесь—тест на сравнение двух чисел: “Что больше—а или 6?” Итак, заметим, что подлежащие упорядоче- нию п чисел априори могут быть представлены на входе п\ раз- личными способами. При этом t последовательно выполненных тестов позволяют различить на сбалансированном дереве высотой t в лучшем слу- чае 2( ситуаций, каждая из которых соответствует одному из листьев (рис. 4.1). ’ Оказывается, что t элементарных операций позволяют изу- чить не более чем п чисел, где п такое, что 2'>п! (4.1) Если перейти к логарифмам и использовать формулу Стур- i линга, по которой п! = пл+1/2 при п->оо, мы увидим, что ниж- няя граница сложности t для сортировки методом сравнений со- :ставляет t = п log2rc. (4.2)
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 185 Следовательно, чтобы рассортировать множество из п элемен- тов, нам потребуется по крайней мере O(nlog2n) тестов. Теперь рассмотрим, как действует элементарный алгоритм, сортировки. При сортировке массива первой приходит мысль выбрать наибольший элемент, поместить его в начало и затем Рис. 4.1. Дерево тестов для сортировки массива. проделать то же самое для оставшегося массива, т. е. действо- вать по схеме: ПОВТОРЯТЬ ДЛЯ 1) {первые (/—1) элементов ( рассортированы} k<-i ‘ ПОВТОРЯТЬ ДЛЯ G+ | ЕСЛИ xk<xr ТО k<-j КОНЕЦ ЦИКЛА по / поменять xt и xk КОНЕЦ ЦИКЛА по i Внутренний цикл дает (п — 1) тестов при каждой итерации, т. е. всего (п — 1) + (п — 2) + ... + 2 + 1 = п ^-11 тестов для п подлежащих сортировке абсолютно произвольных чисел; сле- довательно, этот алгоритм обладает сложностью порядка О(п2) (рис. 4.2). Однако этот метод можно улучшить. В приведенном алго- ритме мы каждый раз теряем информацию, “забывая” резуль- таты тестов сравнения, полученные на предыдущем этапе. 1 2 3 4 5 6 7 8 20 7 84 75 45 78 30 9 к = 3 84 7 20 75 45 78 30 9 к = 6 84 78 20 75 45 7 30 9 ... • • • . .. Рис. 4.2. Пример сортировки первого типа.
186 ГЛАВА 4 Сэкономить на количестве сравнений можно за счет замены цикла “повторить для /” на своего рода “турнир”: на некотором этапе мы сравниваем х, только с х,- + 1, а затем “победителя” этой пары сравниваем с “победителем” соседней пары. Если на входе стоят числа 20, 7, 84, 75, 45, 78, 30, 9, то получится кар- тина, приведенная на рис. 4.3. Таким образом мы, с одной стороны, уменьшаем число тес- тов, необходимых для нахождения максимального элемента, а с другой, получаем сведения, нужные для продолжения поисков. Теперь высота дерева составляет log2n (неравенство (4.1)). Следовательно, в худшем случае требуемое число операций в п раз больше, чем число тестов, необходимых для изучения де- рева из п элементов, т. е. nlog2n. Согласно соотношению (4.2), по крайней мере по порядку величины сложность этой сорти- ровки является оптимальной. (В действительности для реализации этой сортировки на компьютере надо уточнить способ управления деревом, запоми- нающим числа, и способ осуществления обменов между рассор- тированными и нерассортированными элементами. Поскольку сначала дерево не задано, все это имеет значение. К дереву мы приходим постепенно, проходя через стадию “упаковки” — Рис. 4.3. Пример сортировки второго типа. структуры, в которой во всех вершинах, подчиненных некото- рому узлу, стоят числа, не превышающие число, расположенное в данном узле.) Как бы то ни было, мы имеем, таким образом, пример не- тривиальной задачи, для которой можно представить оптималь- ный полиномиальный алгоритм. Пример 6. С задачей найти кратчайший путь из одной точки в другую мы сталкиваемся в жизни ежедневно: путешествуя на автомобиле, в метро, а также при решении некоторых математи- ческих головоломок. Возьмем в качестве примера граф, изобра- женный на рис. 4.4; требуется попасть из точки 1 в точку 6 по такому пути, чтобы сумма расстояний, указанных на каждом ребре, была минимальной. > Обычно говорят не о расстояниях между вершинами, а о стоимости ребер. По интуитивным соображениям полный пере-
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ -ЗАДАЧ 187 бор всех возможных путей, ведущих из начальной вершины, в конечную, бесполезен. В самом деле, очевидно, что следует ограничиться только элементарными путями, т. е. путями, кото- рые проходят через каждое ребро графа не более одного раза (при условии, что стоимости положительны). Кроме того, естественно использовать ите- ративный процесс распростра- нения минимальных путей, на- чиная с вершины 1. Начав с вершин, соседних с вершиной 1, т. е. связанных с ней только одним ребром, мы будем по- степенно подсчитывать эти пути так, чтобы в любой за- данный момент времени для 4 Рис. 4.4. Задача нахождения крат- чайшего пути. любой заданной вершины мы были уверены, что минимальное расстояние до вершины 1 из- вестно точно и возвращаться назад не придется. Иначе говоря, на каждом этапе множество вершин разделено на два подмно- жества S* и S, такие, что • для каждой вершины из S* известно минимальное расстоя- ние до вершины 1; • для каждой вершины из S это расстояние неизвестно. Рис. 4.5. Доказательство алгоритма: путь w. Вначале множество S* сводится к вершине 1. Переход неко- торой вершины из подмножества S в S* произойдет тогда, когда мы сможем доказать, что никакой другой путь из еще непрове- ренных не окажется короче, чем уже известные пути. Так, в на- шем примере из вершины 1 на первом шаге мы можем попасть в вершины 2 и 3; поскольку стоимость пути до вершины 3 строго больше стоимости пути до вершины 2, расстояние между верши- нами 1 и 2 (оно равно 4) является минимальным независимо от того, какие неизвестные пути позволят нам вернуться из 3 в 2 (рис. 4.5).
188 ГЛАВА 4 Чтобы построить полный алгоритм, уточним и систематизи- руем приведенные рассуждения для графа с произвольными по- ложительными стоимостями. Обозначим D*(i) расстояние между вершиной 1 и вершиной z, teS*; D(i) (на заданном этапе) наилучшее известное расстояние от вершины 1 до вершины i, i^S; l(i, j) стоимость ребра (z, /). На любом этапе множе- ства S* и S характеризуются следующим свойством: 1) Если zeS‘, то D (z) = D‘ (z). 2) Если i ф S*, то i е= S и D (/) = MIN [D (А) + I (k, /)], fe е S*. (k, i) e U где U — множество ребер графа. 3) Z)(z) является минимальным известным расстоянием от вершины 1 до вершины i. Итак, вначале 3* = {1} при £)*(1) = 0 и для всех вершин, отличных от 1; таким образом, все они попадают в 3. Теперь мы, сохраняя введенные обозначения, обобщим пред- ставленную выше (для вершин 2 и 3) аргументацию и сформу- лируем следующее утверждение. Утверждение. Пусть j <= 3, причем / такое, что D(j) яв- ляется наименьшим из цсех D(i), где i^S. Тогда £>(/) является минимальным расстоянием от 1 до j. Таким образом, для jeS: Т) (/) = MIN [D (z)] =>D (/) — £)’(/), т. е. при этом условии (на каждом этапе ему обязательно удов- летворяет по крайней мере одно /) мы имеем право перевести j из 3 в 3*. Чтобы доказать это свойство, нам нужно доказать, что не существует более короткого пути из 1 в ], чем уже имеющийся путь с зафиксированной суммарной стоимостью D(j). Рассмотрим путь w, ведущий из 1 в /. Пусть wi является частью w и идет из вершины 1 в первую из вершин, не принад- лежащих 3* (она обозначена через k); w2 является при этом до- полнением к wi (см. рис. 4.5). Общая длина w равна сумме длин путей a»i и w2. Следова- тельно, по построению, длина Wi больше или равна D(k), кото- рое в рассматриваемый период является минимальным расстоя- нием от 1 до k. Но, согласно нашему утверждению, которое нужно доказать, Кроме того, длина пути w2 неот- рицательна. Следовательно, длина w в целом не может быть меньше D(j). Тогда вершина / переходит из 3 в 3*. Таким об- разом, если число вершин равно п, этот процесс завершается после и — 1 итераций и полученный алгоритм имеет следующий вид:
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 189 {Инициализация} {(/ — множество ребер графа} О—►£)(!); [2,3,... ,n]->S {п — число вершин графа} ДЕЛАТЬ Vz, IeeS: ЕСЛИ (l,i)e(7 ТО ИНАЧЕ 4-оо->£) (i) {Итерация} , ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА S =/= 0: {Определение выходной вершины} ВЫБРАТЬ /еЗ, такое, что D(j) — = MIND(i), ieS S<-S-{/} {Определение расстояний D} ДЕЛАТЬ Vx, ieSn (j,i)<=U D.(i)*~MIN[£>(i), P(/)-H(M)] КОНЕЦ ЦИКЛА КОНЕЦ Теперь развернем этот алгоритм на примере графа, приведен- ного на рис. 4.4. • Инициализация: 1 2 3 4 5 6 D 0 4 11 ОО об оо • Итерация 1: 3 = (2, 3, 4, 5, 6); выходная вершина / = 2, MIN = 4, (2, 3)е(/и £> (3) = MIN [11, 4 4-5] = 9 (2, 4) G= U и D (4) = MIN [оо, 4 4- 2] = 6, (2, 5) 6= U и D (5) = MIN [оо, 4 + 8] = 12, (2, 6) e(7 и D (6) = MIN [оо, 4 4-7] = 11. • Итерация 2: S = {3, 4, 5, 6} и j = 4, MIN = 6, (4, 5)е(/ и £>(5) = MIN[12, 6 4-1] = 7, (4, 6)е=(/и £)(6) = MIN[11, 64-10]= И. • Итерация 3: S = {3, 5, 6} и / = 5, MIN = 7, (5, 3) е U и D (3) = MIN [9, 4 4-5] = 9, (5, 6)ё=[/ и D(6) = MIN[11, 7 4-3] = 10. • Итерация 4: S = {3, 6} и / = 3, MIN = 9, (3, 6) G= U и О (3) = MIN [10, 9 4-3] = 10. • Итерация 5: S= {6} и / = 6, и затем КОНЕЦ.
190 ГЛАВА 4 Кратчайшему пути из вершины 1 в вершину 6 соответствует суммарная стоимость 10. Можно заметить, что в приведенном алгоритме порядок пе- рехода вершин из S в S* зависит одновременно и от вхожде- ния/невхождения ребер во множество U, и от их стоимости: модификация стоимостей меняет порядок перехода даже без из- менения графа. Кроме того, этот алгоритм выдает минималь- ные расстояния от вершины 1 до других вершин единым бло- ком (по крайней мере если мы не остановим работу алгоритма в момент, когда выбранная конечная вершина — в нашем при- мере 6 — вдруг перейдет в S* до его полного завершения, как это могло бы произойти). Наконец, мы можем оценить число элементарных операций, необходимых для выполнения этого алгоритма: поскольку ребро графа по определению связывает две вершины и на этапе выявления расстояний £>(i) анализи- руются две вершины (вершина, только что перешедшая в S*, и некоторая другая вершина из S), то в данном случае каждое ребро рассматривается только один раз. Если т — число ребер графа, на этап выявления расстояний для всего множества ите- раций потребуется т сложений и т сравнений. Кроме того, если множество S представлено характеристиче- ским вектором, при выборе минимального значения Dn(j) для определения выходной вершины нужно |S| сравнений, т. е. на п всем множестве алгоритма мы получаем У, (н — k), или /г = 1 п(п—1)/2 сравнений. Следовательно, предложенный алгоритм требует порядка (n2 + т) сравнений и т сложений. Учитывая, что операции сравнения и сложения выполняются в сопостави- мое время и что в любом графе по определению т п2 (по- скольку ребро связывает две вершины), мы можем сказать, что данный алгоритм обладает сложностью О(п2). Этот алгоритм впервые был предложен в 1957 г. Моором, затем в 1959 г. Дейк- строй, а его варианты были разработаны Данцигом (1960), Уайтингом и Хиллиером (1960). Хотя мы рассматривали пример, в котором связи между вершинами, называемые ребрами, могут проходиться в обоих направлениях, иногда ситуация навязывает однонаправленность прохождения; такой граф называется ориентированным. На- правление прохождения связи обозначается в этом случае стрелкой, а ориентированная связь называется дугой. Все вы- воды, полученные выше, остаются в силе, поскольку направлен- ность прохождения связи в рассуждениях не участвовала; до- статочно определить U как множество дуг.
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 191 Если дуга (i, /) принадлежит множеству U, мы назовем i предшествующим /, а / — следующим за i. Пример 7. Задача упорядочения. В мастерской по сборке автомобилей работа разбита на оп- ределенное число операций известной длительности. Эти опера- ции должны следовать друг за другом во времени с учетом от- ношений логического следования, которые обусловлены физиче- скими условиями. Информация, которой мы располагаем, све- дена в табл. 4.1. Таблица 4.1 Операция Код операции Длительность в часах Отношения следования. Штамповка корпуса Закрепление шасси Установка коробки скоростей и мотора Сборка Установка руля Кабель и электропроводка Закрепление колес Установка дверей Окраска Стекла Отделочные работы и обору- дование салона Проверка и контрольные изме- рения А 1 - В 2 А. С 2 В. D 3 В. Е 2 С. F 5 D, Е. G 1 С. Н 1 В. 1 2 D, Н. J 1 F, 1. К 4 F, 1. L 2 J. Какова минимальная длительность сборки, если предполо- жить, что в нашем распоряжении имеется квалифицированная рабочая сила, способная обеспечить параллельное выполнение операций там, где это возможно? Для ответа на поставленный вопрос мы обозначим каждую операцию точкой и проведем между точками связи, соответст- вующие отношениям следования. Мы получим таким образом граф, причем на этот раз ориентированный (поскольку отноше- ние “I предшествует /” является асимметричным и отражается дугой, ведущей от i к /). Кроме того, обозначим длительность операции х как стоимость соответствующей дуги. Добавив две фиктивные операции (а, отмечающую начало сборки, и и, со- ответствующую концу работы), мы получим граф, приведенный на рис. 4.6. Из этого графа видно, что по построению © следует за опе- рациями G, К и L. Кроме того, он содержит в сжатой и доступ- ной форме всю информацию, необходимую для решения
192 ГЛАВА 4 поставленной задачи. Условия, связанные с отношениями логи- ческого следования (такие, как “С раньше Е", “В раньше С”, “А раньше В”), выстраиваются в заданном порядке в цепочки; на графе им соответствуют различные пути (в нашем случае путь аАВСЕ). Найти минимальную длительность сборки озна- Рис. 4.6. Ориентированный граф для задачи упорядочения. чает то же самое, что определить на графе с заданными стоимо- стями, соответствующими продолжительности операций, путь от вершины а до вершины и, обладающий максимальной суммар- ной стоимостью. Здесь нужно искать именно максимум: в этом случае все остальные пути обладают не более чем равной дли- тельностью и поэтому максимум соответствует минимальной возможной длительности реализации множества операций. Отметим, что, поскольку стоимости здесь по-прежнему поло- жительны, а мы ищем максимум, то искомый путь мог бы ока- заться бесконечным. Действительно это было бы так, если бы существовало подмножество дуг, такое, что (М х2), (х2, х3)..' (хр_1, хр), где Хр = х,, т. е. подмножество вершин, где мы могли бы ходить по кругу неопределенно долго. Такое подмножество вершин в теории гра- фов называется циклом. Однако подобная ситуация в рассмат- риваемой задаче упорядочения невозможна: в самом деле, тог- да получилось бы, что операция Xi — хр является предшествую- щей по отношению к самой себе, а это в системе логически обусловленного следования было бы аномалией и соответствую- щая работа не могла бы быть выполнена. Если учесть отсутствие циклов, рассмотренный в предыду- щем разделе алгоритм можно улучшить. Поиск максимума, а не минимума, роли не играет. Мы снова ограничимся элементар- ными путями (т. е. будем брать каждую дугу не более одного раза). Основная идея остается прежней: вес D(i), присвоенный произвольной вершине, постепенно уточняется с помощью соот-
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 193 ношения вида £>(/) <- МАХ [£>(/) + I (j, /)], пока он не перестанет меняться. Однако при специальном вы- боре порядка вершин можно свести процедуру- к одному этапу Для графа, приведённого на рис. 4.6, максимальное расстояние от а до А и В известно. Если мы знаем расстояние до В, то нам в свою очередь известны максимальные расстояния от а до С, D и Н. Сравнивая D(H) + I(H, I) и Z(Z?, I), можно опреде- лить максимальное расстояние от а до I и т. д. Вершины графа можно рассматривать также в таком порядке, чтобы мы попа- дали в произвольную вершину I, когда все предшествующие ей вершины уже проверены. Этот алгоритм может эффективно ра- ботать благодаря следующему свойству: Свойство. Ациклический граф обладает по крайней мере од- ной вершиной, которой не предшествует никакая другая вер- шина; такая вершина называется корнем. В самом деле, предположим, что это не так, и отметим ка- кую-нибудь вершину. По предположению Х\ не является кор- нем, и существует по крайней мере одна входящая в нее дуга (х2, JCi)- Теперь отметим вершину х2 и повторим разметку, начи- ная с х2. Эта процедура задает, таким образом, бесконечную последовательность вершин (xi, х2, х3, ..., х*, ... ). Но по- скольку число вершин в графе конечно, эта последовательность должна содержать повторяющийся цикл, что противоречит ис- ходному предположению. Данное свойство, позволяющее запустить алгоритм, мы бу- дем использрвать неоднократно: действительно, достаточно исключить из множества дуг U те дуги, которые выходят из предшествующего корня, чтобы затем определить новую, не имеющую предшественников вершину, максимальное расстоя- ние которой от а может быть вычислено непосредственно. Дока- жем теперь более строгую теорему. Теорема. Граф G— (X, U) не имеет циклов в том и только том случае, если существует взаимно однозначное отображение v множества вершин X в интервал целых чисел от 1 до п, где п= |Х| такое, что V(xi, х2), (хь х2) е U: v(xO < v(x2). Другими словами, с помощью взаимно однозначного отобра- жения v мы можем перенумеровать все вершины так, чтобы все предшественники некоторой произвольно . выбранной вершины имели меньшие номера. Во-первых, очевидно, что, если G включает цикл (хь х2, ... . . . . Xk), мы не сможем построить подобного отображения, по- скольку в противном случае, согласно предположению, имело бы 7, Ж.-Л. Лорьер
194 ГЛАВА 4 Рис. 4.7. Перестроенный граф для задачи упорядочения. место соотношение: V (Xj) < V (х2) < . . . < V (xfe) < V (%!), что вообще невозможно. И наоборот, если граф О не содержит циклов, существует корень, которому мы придадим номер 1: v(S) — 1. Теперь уда- лим из G эту вершину и все выходящие из нее дуги. Но- вый граф, полученный в результате такого удаления, очевид- но, не содержит циклов: в нем есть корень с номером 2 и т. д. Если бы в какой-нибудь момент существовала некоторая дуга (хь х2) из U, v(xi) < v(x2), где х2 — корень, в то время как еще принадлежит остальной части графа, то получилось бы противоречие. Следовательно, функция v действительно существует, и у нас есть эффективное средство для ее по- строения. Алгоритм построения функции классификации вершин В этом алгоритме каждая дуга из множества U рассматри- вается только один раз, поэтому он обладает сложностью по- рядка О(т). В соответствии с предложенной процедурой мы можем перестроить граф задачи упорядочения из нашего при- мера. На рис. 4.7 изображены множества У*, называемые так- же пластами. Инициализация: 1->р; Х-+Т; 0->Л Построение:
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 195 ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА 7 #= 0: {Yk — множество вершин, не имеющих предшест- венников} ДЕЛАТЬ Vz, is=Yk\ р + 1 ^р ДЕЛАТЬ V/, jel, (z,/)f=£/: Исключить (z,j) из U. T-Yk-+T-. k+1-^k КОНЕЦ ЦИКЛА КОНЕЦ Первый пласт, несомненно, а, второй — А, третий — В; дуги ВС, BD, ВИ исключаются, и тогда С, D и Н принадлежат пласту Yt. Дуги CG и СЕ, DF и DI и, наконец, HI исключены. У6 состоит из единственной вершины F; исключаем FJ и FK.', следовательно, У7 состоит из / и К. Наконец, последние пласты У8 и У9 составляют вершины L и со. Замечание. Когда перед глазами имеется рисунок, нумера- ция не является обязательной; поэтому на рис. 4.7 мы ее опу- стили. Теперь мы получаем: £>*(!) = 0; £>*(2) =0. Затем: j = 3, £)* (3) = 0+1 = 1; 7 = 4, В* (4) = 1+2 = 3; 7 = 5, О* (5) = 1+2 = 3; 7 = 6, Д’(6) = 1+ 2 = 3; 7 = 7, D* (7) = МАХ [3 + 1; 3 + 3] = 6; 7 = 8, Г>‘ (8) = 3 + 2 = 5; 7 = 9, D' (9) = 3 + 2 = 5; / = ю, В* (10) = МАХ [3 + 3; 5+ 2] = 7; 7 = 11, В* (11) = МАХ [6 + 2; 7+ 5] = 12; 7=12, В* (12) = МАХ [6+ 2; 7+ 5] =12; 7=13, £>’(13) = 12 + 1 = 13; 7=14, £>*(14) — МАХ [5+ 1; 12 + 4; 13 + 2]= 16. Таким образом, длина максимального пути на графе для задачи упорядочения (рис. 4.6) составляет 16 единиц. Чтобы обнаружить путь, во время каждой итерации мы отмечаем предшествующую вершину, которая дала реальный максимум при подсчете D*. Идя в обратном направлении от со, мы снова берем эти данные и получаем в конце концов путь oABCEFEm. 7*
196 ГЛАВА 4 Использованный нами метод известен под названием метода потенциалов', он был введен Бернардом Роем в 1960 г. Более распространенный, но более трудоемкий американский вариант метода для решения этой задачи называется методом PERT (Program Evaluation and Review Technique); он был разрабо- тан в NASA и в RAND в 1954 г. Эти методы постоянно используются для реального решения конкретных задач, главным образом в строительной индустрии, а также в различных отраслях машиностроения (в автомобиле- строении, кораблестроении и самолетостроении). Помимо вычисления минимального срока выполнения проек- та, эти методы позволяют получить список так называемых “критических” операций, т. е. операций, лежащих (при графи- ческом представлении) на самом длинном из возможных путей. По определению всякое увеличение длительности любой из критических операций обязательно отразится на сроках поста- вок. Другим полезным следствием нашего алгоритма является информация о распределении в процессе сборки объема работ, выполняемых представителями различных профессий. В перестроенном таким образом графе для определения мак- симального пути мы располагаем следующим тривиальным ал- горитмом: {Инициализация} D*(l)<—0; D* (2) I (1,2). ПОВТОРЯТЬ ДЛЯ /, D* (/) <-MAX [D* (/) + / (г, /)] | (/. !) s и КОНЕЦ ЦИКЛА Действительно, новые численные обозначения таковы, что (Z,/) е U => i < Таким образом, все пути, приводящие в /, мо- гут проходить только через вершины, номера которых меньше j и для которых D* уже вычислено. Пригодность алгоритма дока- зывается с помощью индукции по /. Для каждого отдельного значения итерация требует /— 1 сложений и / —- 2 сравнений, поэтому в конечном итоге в дан- ном алгоритме используется п(п—1)/2, т. е. О(п2) элементар- ных операций. Нумерация v(x) вершин графа, иллюстрирующего рассмат- риваемый пример (рис. 4.6), приводится в следующей таблице: Имя вершины а А В С D Е F G Н 1 / К L СО v(x) 1 2 3 4 5 8 10 9 4 7 12 11 13 14
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 197 Наконец, поскольку в этом классе задач данные никогда не известны точно, для отслеживания критического пути и общей длительности в случае^ когда длительности операций парамет- ризованы и колеблются в заданных интервалах по известным вероятностным законам, были разработаны вспомогательные способы подсчета. Подробное рассмотрение всех этих способов не входит в задачи данной главы. Здесь мы хотели показать на конкрет- ных примерах суть алгоритмических действий: анализ задачи. Рис. 4.8. Семь мостов через Преголю: задача об эйлеровом цикле. с целью ее перевода в сжатую и удобную форму (граф); изу- чение в выбранном ограниченном пространстве новой задачи и проверку на каком-нибудь примере метода, основанного на про- стых идеях; обобщение, а затем оформление и доказательство алгоритма. Пример 8. Топологическая задача Рассмотрим знаменитую задачу об “эйлеровом цикле” на графе. Она состоит в том, чтобы узнать, существует ли на гра- фе определенной) вида (таком, как изображен на рис. 4.8) цикл, который проходит по каждому ребру только один раз и возвращается в исходную точку. Разумеется, необходимым условием является связанность графа, т. е. существование цепочки ребер, позволяющей пройти из Одной произвольно взятой точки графа в другую. Еще одно необходимое условие касается числа ребер, привязанных к каждой вершине: поскольку мы не можем дважды пройти по одному и тому же ребру, нужно, чтобы всякому входу соответ- ствовал выход. Чтобы в связанном графе существовал эйлеров цикл, в нем не должно быть вершин нечетной степени (степень — число ре- бер, выходящих из данной вершины). Как мы докажем ниже, это условие фактически является до- статочным. Для ответа на вопрос о существовании эйлерова цикла это условие предлагает полиномиальный алгоритм» и.
198 ГЛАВА 4 кроме того, для реального построения этого цикла в случае его существования оно дает алгоритм, совпадающий по порядку сложности с числом ребер на входе. Необходимое условие. Оно является очевидным. Поскольку цепочка, проходящая через все ребра, входит в каждую вер- шину и выходит из нее, то для возвращения в исходную вер- шину нужно, чтобы все лежащие на нашем пути вершины имели четное число ребер. Достаточное условие. Оно является менее очевидным. Мы будем рарсуждать по индукции для т, где т —- число ребер графа. В соответствии с нашим предположением составим последо- вательно цепочку Ф, выходящую из произвольной вершины s. Чтобы быть уверенными, что мы не пройдем дважды по одному и тому же ребру, условимся вычеркивать из графа каждое пройденное ребро. Пока Ф ведет в некоторую вершину х, от- личную от s, мы всегда можем продолжить цепочку по крайней мере на одно ребро. В самом деле, в начальный момент каждая вершина обладает некоторым четным числом ребер и в теку- щей вершине х из этого числа обязательно сохраняется некото- рое нечетное'число (т. е. по крайней мере одно ребро), потому что при каждом прохождении через данный пункт вычерки- ваются два ребра. Если мы не можем продолжить цепочку Ф, это означает, что мы вернулись в s. Если в этот момент все ребра исходного графа были пройдены, теорема доказана. Если нет, то у нас осталось некоторое подмножество ребер, распределенных по нескольким связанным компонентам (здесь, разумеется, не рас- сматриваются компоненты, которые сводятся к изолированным вершинам). Обозначим эти компоненты связности через Gi, G2, ... ..., Gk. Поскольку с самого начала предполагалось, что граф G связанный, то цепочка Ф пересекается с каждой из этих ком- понент по крайней мере в одной точке. Пусть g\, gi, ..., gk — такие точки пересечения для каждой компоненты G,-. Так как при любом i подграф G, является связанным и об- ладает по построению менее чем т ребрами и вершинами чет- ных степеней, он допускает в соответствии с индуктивной ги- потезой эйлеров цикл Ei. Исходя из этого соображения, мы строим, причем именно в указанном порядке, новую цепочку, включающую • цепочку Ф от вершины s до вершины g\\ • эйлеров цикл Ei в подграфе Gi от вершины gi до вер- шины gi',
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 199 • цепочку Ф. от вершины gi до вершины g% и т. д. При этом мы все время остаемся уверенными в том, что с помощью це- почки Ф мы сможем вернуться из gk в s, где s е G*. И наконец, доказательство, , вперйые проведенное Леонардом Эйлером в 1736 г., завершается утверждением того, что петля на един- ственной вершине образует эйлеров цикл. Проверить приведенные необходимые и достаточные условия в каждой вершине нетрудно, причем суммарная сложность со- ставляет О(п). Чтобы реально построить эйлеров цикл, запи- шем сначала процедуру Эйлера E(w), которая задает для про- извольного графа эйлеров цикл с началом в вершине w: Процедура Эйлера: Е (w) u<-w, о*-Ф ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА v Ф w, {Пусть (и,и) — первое, еще не отмеченное, ребро, выходящее из вершины и} Отметить (u,v) фч-ФЦ (u ,v) {продолжить цепочку Ф} и< -v КОНЕЦ ЦИКЛА КОНЕЦ ПРОЦЕДУРЫ Эйлера Теперь легко записать полный алгоритм получения эйлерова цикла. Следуя доказательству теоремы, мы будем строить цепочку, постепенно ее дополняя: Ф*-£(х) {Исходная цепочка} ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА в графе G существуют . неотмеченные ребра: {Пусть Л —вершина, расположенная одновременно на цепочке Ф и на неотмеченных ребрах} Провести конкатенацию цепочки, заданной с по- мощью процедуры Эйлера Е(Н) и цепочки Ф КОНЕЦ ЦИКЛА В этом алгоритме процедура Эйлера E(w) обрабатывает каждое ребро графа G не более одного раза. Следовательно, выбирая, как указано, подходящую вершину h, мы освобож- даемся от реального построения связанных компонент. Тогда в худшем случае каждое ребро будет проверяться дважды. Сложность обобщенного алгоритма, таким образом, совпадает
200 ГЛАВА 4 по порядку величины с числом ребер исходного графа, т. е. со- ставляет О(т). Итак, мы имеем прекрасный линейный алго- ритм решения задачи Эйлера. Замечание. Ниже мы рассмотрим задачу, близкую задаче Эй- лера. Эту задачу изучал Гамильтон, и в его честь она получила название задачи Гамильтона; она состоит в поиске на произ- вольном графе цикла, проходящего на этот раз не через все ребра, а через все вершины (гл. 5, задача о коммивояжере). Оказывается, что эта новая задача вовсе не относится к тому же классу, что и предыдущая. Многие математики, в течение нескольких веков занимавшиеся задачей Гамильтона, так и не смогли построить для нее, как это удалось сделать для задачи Эйлера, хороший (т. е. полиномиальный) алгоритм. Другими словами, мы не умеем решать обобщенную задачу определения цикла, проходящего через все вершины графа. 4.2. Список хорошо решаемых задач (полиномиальные алгоритмы) Итак, мы убедились, что всякий раз, когда для решения не- которой задачи нам известна явная математическая формула, сложность задачи оказывается постоянной (не зависящей от данных); разумеется, это случай идеальный. В этот класс задач попадают, 'например, решение невырож- денных систем линейных уравнений, подсчет заработной платы и большая часть классических задач из школьного курса фи- зики, сводимых к системе уравнений. Ниже мы дополним этот список рядом задач, требующих привлечения других типов данных. Вначале напомним две последние задачи: И Рассортировать множество из п чисел. (Сложность по- рядка О (п log п).) Найти эйлеров цикл на графе из т ребер. (Сложность порядка О(т).) Для других типов задач также были получены результаты, которые мы приведем без их доказательств. Обнаружить в тексте длиной п некоторое слово. (Слож- ность п-О(п).) Здесь речь идет о том, чтобы найти, например, в архиве все случаи вхождения одного или нескольких заданных слов — де- скрипторов или ключевых слов в библиографических ссылках. Очевидный алгоритм, включающий две петли на буквах текста, а затем на буквах слова, здесь непригоден, поскольку его слож- ность слишком велика (она составляет О (пХ число букв в сло- ве)). Он был улучшен, и его сложность перестала зависеть от
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 201 длины искомого слова: в любом случае каждая буква текста анализируется только один раз. Это удалось осуществить путем “обмена пространства на время”: мы избегаем бессмысленных проверок, помещая в память слова в виде “диаграммы пе- реходов”. Построить покрывающее дерево минимальной стоимости (т — число ребер) и сложностью O(znlogm) (Kruskal, 1956; Prim, 1957; Tarjan, 1977). 'Здесь речь идет, например, о построении в небольшом го- роде сети водоснабжения. Возможны некоторые сочленения, каждому соответствует своя стоимость строительства; каждая вершина (клиент) должна быть подключена к сети. Источник, подсоединенный к сети, обеспечивает необходимое давление воды в сети. Если водопровод проходит по всем точкам (“по- крывающая” сеть) и не образует циклов (“дерево”), к сети бу- дут подключены все клиенты. Итак, нужно построить дерево с минимальной общей стоимостью сооружения сочленений. Ока- зывается, что в данном случае тривиальный алгоритм, состоя- щий в выборе ребра с минимальной стоимостью, не образую- щего циклов с уже отмеченными ребрами (и так до тех пор, пока не будут достигнуты все вершины), во-первых, дает опти- мальное дерево, а, во-вторых, обладает минимальной слож- ностью. Многие другие задачи из теории графов также решаются за полиномиальное число шагов. Перечислим главные из них. Кратчайший путь на графе, состоящем из п вершин и т дуг. (Сложность 0(m«-n).) (Ford, 1965; Dijkstra, 1959; Dant- zig, 1960; Floid, 1962.) На заданном графе с проставленными стоимостями мы оты- скиваем путь, связывающий два фиксированных пункта, для которого сумма стоимостей ребер минимальна. Обратная зада- ча поиска максимального пути обладает той же степенью слож- ности. Связанные компоненты. (Сложность O(n2).) (Tremaux, 1882; Tarjan 1972.) Речь идет об определении подмножеств вершин (связанных компонент), таких, что две вершины, принадлежащие одной и той же компоненте, всегда связаны цепочкой дуг. Именно так мы определяем, например, в некотором проекте подмножества операций, не зависящих друг от друга. Транзитивное замыкание. (Сложность O(n2).) (Nolin, 1964; Warshal, 1965; Roy, 1965.) Для каждой вершины находим множество вершин, с кото- рыми она связана. Алгоритм поиска аналогичен предыдущему.
202 ГЛАВА 4 Максимальное паросочетание. (Сложность O(n5/2).) (Ber- ge, 1962; Edmonds, 1965; Gabow, 1973; Bartnik 1978.) На произвольном графе нужно найти максимальное подмно- жество ребер, не встречающихся друг с другом ни в одной вер- шине. Одна из теорем Клода Берже содержала необходимое и достаточное условие максимальности некоторого множества. Однако доказательство того, что это условие может быть прове- рено за полиномиальное время, удалось провести Джеку Эд- мондсу уже позже. Кроме того, для любого немаксимального множества он предложил эффективное улучшение; в своей из- вестной статье “Пути, деревья и листья" он придумал термин “хороший алгоритм” и продемонстрировал его значимость. Задача о паросочетанйи относится к многочисленным зада- чам класса распределений, или, иначе, к задачам дизъюнктив- ного упорядочения (операции, взаимно исключающие друг друга в пределах одного и того же интервала времени: организация смен экипажей, транспортных средств, расписаний рабочего времени). И Максимальный поток. (Сложность O(n3). (Ford и Fulker- son, 1950; Gondran и Minoux 1978.) Речь идет о том, чтобы пропустить между двумя пунктами максимальный “поток”, если известно, что каждая дуга обла- дает некоторой максимальной пропускной способностью, превы- сить которую мы не можем. Эта модель используется для опти- мизации загрузки судов, иногда поездов и самолетов. Благодаря настойчивой работе исследователей с годами удалось достичь уменьшения степени сложности некоторых за- дач из теории графов. Приведем только один пример. Проверка планарности графа. (Сложность О(п).) Граф является планарным в том и только в том случае, если мы можем изобразить его на плоскости так, что его ребра имеют общие точки только в вершинах. В 1930 г. для выполнения этого теста Куратовский предло- жил метод, сложность которого составляла О(п6). До 1970 г. было получено несколько полиномиальных методов понижаю- щихся степеней сложности — вплоть до ()(п2). В 1970 г. Хопк- рофт и Тарьян разработали метод сложностью порядка O(nlogn), и наконец, в 1974 г., улучшая его, они добились ми- нимальной сложности О(п). Еще более необычно обстоит дело с задачами, для которых в течение продолжительного времени не было известно полино- миального алгоритма, и при этом никто не мог Доказать ни того, что такого алгоритма не существует, ни того, что данная задача является необходимо сложной в силу эквивалентности
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 203 задачам этого класса. Именно таким статусом долгое время обладало линейное программирование. Линейное программирование. Речь идет о решении в пространстве R" системы линейных уравнений вида АХ~Ь, где А — матрица размером т X п с заданными элементами; X — вектор, состоящий из п положительных действительных не- известных, XeR"; b — вектор из т заданных свободных членов. В случае необходимости множество решений X сокращается с сохранением тех решений, которые минимизируют какой-либо (также линейный) функционал вида сХ, где с — вектор с п за- данными коэффициентами. Такая формулировка позволяет моделировать огромное чис- ло задач большой размерности и большой значимости (в плане ожидаемой материальной выгоды), причем из различных обла- стей: сюда относятся управление производством, доставка гру- зов, оптимизация перегонки нефти, производство и распределе- ние электрического тока. Вот уже 25 лет линейное программи- рование способствует успеху в области исследования операций; оно принесло известность Г. Данцигу — создателю метода, ис- пользуемого сегодня для решения этого класса задач. Однако алгоритм Данцига, называемый симплекс-методом, базируется на некоторой эвристике использования градиента (т. е. локального оптимума), если его достижение обеспечива- ется выпуклостью пространства поиска и может получиться так, что мы попадем туда только после того, как пройдем экспоненциальное (зависящее от т и п) число точек или ите- раций. Итак, вот уже в. течение 20 лет симплекс-метод, постоянно дополняемый и улучшаемый, используется — и весьма эффек- тивно! — во всем мире. Даже для задач большой размерности (например, т — 1000, п — 40 000) при теоретической сложности порядка О(пт) на практике отмечалась сложность порядка О(пя). Затем в 1979 г. Хачиян предложил для задачи линейного программирования полиномиальный алгоритм, существенно от- личающийся от симплекс-алгоритма. И хотя он объясняет экс- периментальный успех симплекс-метода, у него мало шансов “свергнуть” его с трона окончательно: при решении реальных задач симплекс-метод вполне пригоден. Основное достоинство алгоритма Хачияна состоит в следую- щем: наконец, установлено,что некоторое семейство алгоритмов
204 ГЛАВА 4 вычислительной математики сходится с заданной точностью за полиномиальное число этапов. Кроме того, алгоритм Хачияна завершает список полино- миальных, т. е. хорошо решаемых, задач: ведь в действительно- сти они очень немногочисленны! Разумеется, перечисленные выше задачи не исчерпывают всего многообразия формулировок для существующих частных случаев. Для некоторых задач (например, для проблемы изо- морфности двух произвольных графов), как и для линейного программирования до открытия Хачияна, не существует поли- номиального алгоритма, хотя их эквивалентность каким-либо экспоненциальным задачам не доказана. Очевидно, что класс задач, не решаемых за полиномиальное время, намного больше, чем класс полиномиальных задач. Да- же если не учитывать задач, для которых время подсчета заве- домо должно быть экспоненциальным, у нас остается обширный загадочный класс, включающий задачи, теоретически допу- скающие полиномиальную сложность, но пока еще не имеющие хорошего ;i пчцгма решения. 4.3. Классификация задач по степени сложности Как показывает опыт, любое более или менее близкое зна- комство с той или иной областью формирует у каждого из нас “интуитивное представление” о том, что одна задача является “более трудной”, чем другая. Это чисто субъективное понятие не может нас удовлетворить. Однако можем ли мы определить истинную сложность задачи? Понятию сложности и классификации вытекающих из него задач посвящен этот раздел. Сначала поговорим о различии между математикой и ин- форматикой: в информатике недостаточно высказать утвержде- ние о существовании некоторого объекта в теории и даже недо- статочно найти конструктивное доказательство этого факта, т. е. алгоритм. Мы должны учитывать противоречия простран- ства и времени, навязываемые нам миром, в котором мы жи- вем: необходимо, чтобы решение можно было вычислить, ис- пользуя объем памяти и время, приемлемые для человека или машины. Поскольку любой метод разрабатывают для решения не- скольких однотипных задач с различными исходными данными, естественным критерием качества метода в целом является ре- шение наихудшего из всех возможных случаев, допускающих применение рассматриваемого метода. Говоря конкретно, опре- деляющим в конце концов является общее число элементарных
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 205 операций. Для наглядности нужно выразить это число через размерность входных данных решаемой задачи. Таким образом, сложностью процедуры называется выражен- ная в виде функции от размерности входных данных верхняя граница числа операций, необходимых для выполнения этой процедуры. Сложность задачи — это сложность наилучшего алгоритма, известного для ее решения. Следовательно, она зависит от уров- ня развития методов решения. По существу здесь возникают два основных вопроса: 1. До какого состояния можно улучшать данный алгоритм? Известны ли для отдельных случаев методы оптимальной слож- ности? Каково число задач, которые хорошо решаются, т! е. за- дач невысокой степени сложности (например, п или п2, где п — размерность входных данных)? 2. Приводит ли учет степени' сложности к иной классифика- ции задач и предлагаются ли какие-нибудь методы для перехо- да из одного класса в другой, от “трудной” задачи к более “простой”? Ниже будут даны ответы на эти два вопроса. Они показы- вают, что для решения многих задач “классических” алгорит- мических методов явно недостаточно и что перспективными яв- ляются исследования в области искусственного интеллекта. 4.3.1. Три класса задач Самыми лучшими являются линейные алгоритмы, которые обладают сложностью порядка (а*п — Ь) и называются также алгоритмами порядка О(п) (где п— размерность входных данных). Такие алгоритмы реально существуют. Например, подсчет суммы чисел, состоящих из п\ и п^ цифр, способом, с которым все знакомятся в начальной Школе, требует подсчета не более «1 + «2 одноразрядных чисел и не более чем max(ni, п2) запо- минаний. Перемножение двух одноразрядных чисел, прибавление числа и запоминание — все это элементарные операции, кото- рые может выполнить любая машина. Таким образом, данный алгоритм сложения в целом имеет сложность порядка O(ni + 4- пг); при этом, разумеется, приведенное выражение показы- вает только порядок величины: постоянные факторы в нем не учитываются" (вот почему исчезают подсчеты, связанные с за- поминаниями). Другие хорошо известные алгоритмы — деление, извлечение квадратного корня, решение уравнений второй степени —
206 ГЛАВА 4 в результате обобщения этой линейности попадают в первый класс — класс полиномиальных алгоритмов. Класс Р: полиномиальные алгоритмы Мы называем “хорошей”, или принадлежащей классу Р, за- дачу, для которой известен алгоритм, сложность которого со- ставляет полином заданной, постоянной и не зависящей от раз- мерности входной величины п степени. Класс Е: задачи, экспоненциальные по природе Экспоненциальной по природе считается задача, сложность которой не менее порядка fn (где f — константа или полином от п), например, в случае, когда число ожидаемых ответов уже само по себе экспоненциально. К этому классу относятся задачи, в которых требуется по- строить все подмножества некоторого множества, все клики (т. е. полные подграфы) некоторого графа или же все подде- ревья некоторого графа. Действительно, можно доказать, что число выходов в этом случае представляется в виде (полином от п)п. Имеются некоторые задачи со сложностью, которую можно описать формулой г>п 2 2 где п — размерность входной величины, т. е. зависит от данных. К ним относятся задачи распознавания правильных выра- жений на языках, имеющих относительно несложные алфавиты и правила построения единиц. Заметим, что при небольших значениях п экспоненциальный алгоритм может быть более быстрым, чем полиномиальный. Однако различие между этими двумя типами задач велико и всегда проявляется при больших значениях п. На практике существуют задачи, которые заранее не могут быть отнесены ни к одному из рассмотренных выше классов (ни к классу Р, ни к классу Е). В их условиях не содержатся экспоненциальные исчисления. Однако для многих из них до сих пор не разработан эффективный (т. е. полиномиальный) ал- горитм. Задачи, не попадающие ни в класс Р, ни в класс Е К этому классу относятся следующие задачи:
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 207 • Решение систем уравнений с целыми переменными (Dio- phante, 410). • Определение цикла, проходящего через все вершины не- которого графа (цикл Гамильтона) (Hamilton. 1870). • Существование среди заданных подмножеств некоторого избранного семейства, покрывающего данное множество. • Составление расписаний (и соответственно раскрасок), учитывающих определенные условия (и соответственно бинар- ные отношения). • Существование множества значений логических перемен- ных, которые позволяют сделать значение произвольного задан- ного логического выражения ИСТИННЫМ (Cook, 1971). • Оптимизация пути коммивояжера через сеть городов. • Отбор файлов при запросе в информационный банк дан- ных для получения информации с наименьшей стоимостью. • Размещение обслуживающих центров (телефон, телеви- - дение, срочные службы) для максимального числа клиентов при минимальном числе центров. • Оптимальная загрузка емкости (рюкзак, поезд, корабль, самолет) при наименьшей стоимости. • Оптимальный раскрой (бумага, картон, стальной прокат, отливки), оптимизация маршрутов в воздушном пространстве, инвестиций, станочного парка. • Диагностика (болезни, поломки, дефекты печатных схем). Этот список можно продолжить. Проблема состоит в следующем: можем ли мы надеяться, что какие-либо из этих задач попадут в класс Р? К сожалению, в настоящее время ни для одной из этих за- дач не найдено полиномиального алгоритма. Более того, для всех перечисленных задач была доказана взаимная эквивалентность, т. е. если все-таки удастся предста- вить для одной из этих задач хороший (т. е. полиномиальный) алгоритм, то все они автоматически будут решены. Наиболее удобный класс Р— множество полиномиальных задач — уже обсуждался выше в разд. 4.2, где мы отметили, что этих задач слишком мало: формальные задачи, которые люди сегодня умеют решать хорошо (т. е. алгоритмически и полиномиально), образуют весьма небольшое семейство. Все остальные задачи являются трудными и по определению отно- сятся к области искусственного интеллекта. Наконец, отметим, что, даже если для сформулированной на обычном Языке задачи полиномиальный алгоритм суще- ствует, необходимость узнать это, сформулировать и смодели- ровать условия задачи так, чтобы ее можно было обработать
208 ГЛАВА 4 хорошим алгоритмом, опять приводит к неполиномиальной сложности. 4.4. Класс NP-. недетерминированные полиномиальные задачи 4.4.1. Два семейства машин Когда для решения задачи мы не располагаем ни явной формулой, ни рекурсивным выражением приемлемой сложно- сти, нам остается два последних способа: построение действен- ного алгоритма подсчета или метод перебора. Если мы говорим, что сложность задачи полиномиальна, это означает, что в лю- бом случае, не прибегая к перебору, мы достигнем решения за полиномиальное число шагов. Абстрактной моделью такого полиномиального алгоритма является черный ящик, умеющий выполнять только заданное множество элементарных операций: +, —, *, /, ИЛИ, И, ЧИ- ТАТЬ, ПИСАТЬ, ЕСЛИ... ТО..., ПОВТОРЯТЬ. В заданный мо- мент этот автомат находится в строго определенном состоянии; за один шаг он совершает единственное действие, обусловлен- ное этим состоянием. Затем он переходит в следующее состоя- ние, и все начинается сначала. Такой автомат называется так- же детерминированной машиной Тьюринга (ДМТ). Механизм перебора, т. е. продвижения на ощупь, совершая предварительные попытки (а в некоторых задачах без этого обойтись нельзя), можно смоделировать с помощью другой, тоже весьма абстрактной, машины Тьюринга, называемой неде- терминированной (НДМТ). Помимо обычного набора инструкций в такой машине су- ществует специальная инструкция “ВЫБОР [Е] ”, которая со- здает столько копий текущего состояния, сколько существует элементов во множестве Е. По соглашению машина останав- ливается в тот момент, когда одна из возникших ее копий до- стигает инструкции КОНЕЦ. Опишем на этом новом языке недетерминированные алго- ритмы для двух простых задач. Задача 1. Разрешимость логического выражения Пусть дано логическое выражение Е. Оно включает симво- лы V (ИЛИ), Л (И), (НЕ) и логические переменные q\, q2, ..., qn- Нам нужно так подобрать значения qt, чтобы при этих значениях выражение Е(д}, q2, ..., qn) было ИСТИН- НЫМ. Например, если Е (<7i V П V ~] 7з) A (7i V q2 V 74) А (7з V Д 74) Л (Л 71), то подойдет множество (ЛОЖЬ, ИСТИНА, ЛОЖЬ, ЛОЖЬ).
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 209 Алгоритм для НДМТ запишется в следующем виде: ПОВТОРЯТЬ ДЛЯ /е=[1,п] | qt<- ВЫБОР [ИСТИНА, ЛОЖЬ] КОНЕЦ ЦИКЛА по i ЕСЛИ £(^,<72,... ,<?„) ТО УСПЕХ; КОНЕЦ ИНАЧЕ неудача. Итак, этот алгоритм создает 2п = 16 копий самого себя, и, в частности, двенадцатая копия приводит к успеху. В таком случае выражение Е называется разрешимым. Задача 2. Раскраска географической карты в 3 цвета. Речь идет о раскрашивании на плоской карте стран Р2, ..., Рп с помощью трех карандашей различных цветов, при- чем любые два граничащих друг с другом района должны быть раскрашены различно. Недетерминированный алгоритм: цвет (Р\)<-с{ {раскрасить страну так же, как смежные страны} ПОВТОРЯТЬ ДЛЯ г <=[!,«] ЕСЛИ Р] смежна с Pt ТО цвет (PJ *- с2 КОНЕЦ ЦИКЛА по г ПОВТОРЯТЬ ДЛЯ /ге[1,«] ДО ТЕХ ПОР ПОКА существуют нераскрашенные страны ЕСЛИ страну Pk можно раскрасить только в цвет / ТО цвет (Pk)+-j КОНЕЦ ЦИКЛА по k ЕСЛИ все страны раскрашены ТО КОНЕЦ ИНАЧЕ: пусть Pmin —страна с наименьшим индексом, которую можно раскрасить либо в цвет jlt либо в цвет /2: цвет (Pmin) ВЫБОР [/i,/2] Видно, с какой легкостью НДМТ позволяет записывать алгоритмы перебора. Она освобождает программиста от какого бы то ни было управления возвратами. Все происходит так, как если бы копии текущего состояния, каждая из которых в ко- нечном итоге является продуктом детерминированной машины, работали параллельно, никак не затрагивая проблему техниче- ской осуществимости этого. Число таких детерминирован- ных машин на самом деле произвольно. Поскольку это число
210 ГЛАВА 4 экспоненциально по природе, очень быстро происходит “взрыв” (см. два предыдущих случая). Замечание 1. В предыдущих случаях каждая отдельная ко- пия является детерминированной, а число шагов — следова- тельно, и сложность каждой копии — полиномиально (в двух предыдущих случаях оно фактически линейно). Если обобщить сказанное выше, всякий алгоритм, который может быть выпол- нен за полиномиальное время на недетерминированной маши- не Тьюринга, мы будем называть недетерминированным поли- номиальным алгоритмом, или сокращенно NP. Следствие, ко- торое непосредственно вытекает из этого определения, можно записать в виде PczNP, т. е. множество задач, полиномиальных на ДМТ, входит в NP, поскольку ДМТ является частным случаем НДМТ. Замечание 2. Для того чтобы перейти из NP в Р, нужно “совсем немного”. Так, во второй задаче, если мы допускаем только два цвета, предыдущий алгоритм дает ответ (возможно или невозможно), не используя ту петлю, в которой фигури- рует ключевая инструкция “ВЫБОР”. Вывод о характере ответа достигается за О(п) шагов без какого бы то ни было возвращения назад: НДМТ сводится к ДМТ. В первой задаче множество возможных значений с самого начала ограничено двумя элементами. Однако в этом случае простота вычисления зависит от числа логических переменных внутри одной пары скобок. В самом деле, предположим, что их число не более двух и подлежащее оценке выражение приведено к нормальному виду А (Г/ V Si), i-l где г(- и Si обозначают либо qj, либо ~\q/. Поэтому, когда мы фиксируем значение первого терма, например в данной паре скобок — ri, эта пара скобок может сразу принять значение ИСТИНА, и тогда мы перейдем к (t + 1)-й паре. Если получить решение на первом же шаге не удалось, вид второго терма, т. е. Si, позволяет сразу, т. е. не прибегая к инструкции “ВЫБОР”, а исходя из условия, получить то значение, которое должна принять эта соседняя переменная. Если вплоть до i —п данный процесс распространения ограничений проходит успешно, алго- ритм сразу выдаст ответ в виде вектора (qt, qi, ..., qn); в про- тивном случае рассматриваемое выражение неразрешимо.
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 211 Итак, граница между классами Р и NP является резкой, причем проходит она по очень близким значениям: п — 2 и п = 3. Однако, остается вопрос, являются ли недетерминированные машины заведомо более мощными^ т. е. могут ли они решить больше задач, чем детерминированные, или же, более коротко, равны ли Р и NP7 или. Р = РМ В настоящее время ответа на этот вопрос пока нет. 4.5. Список задач класса NP В этот список попадают следующие задачи: • Разрешимость логического выражения. • Трехцветная раскраска графа. • Построение клики из k вершин на неориентированном графе. • Покрытые множеств: пусть давно семейство F подмно- жеств Ei некоторого множества Е; требуется найти подсемей- ство G из F, такое, что У Е, = у • Разбиение множества: то же условие, что и в предыду- щем случае, но, кроме того, обязательно требуется Ei П Ej — Ф (для всяких Ei, Е/, принадлежащих G). • Существование гамильтонова цикла на неориентирован- ном графе. • Задача о рюкзаке: для переменных х,-, принимающих зна- чения 0 и 1, найти решение уравнения ^Jaixj = b (й/ и Ь — заданные целые числа). В более общем виде это решение диофантова уравнения (т. е. уравнения в целых числах). • Разбиение на две части: пусть дано п чисел yj из мно- жества N; требуется разбить их на два непересекающихся под- множества /1 и /2, таких, что
212 ГЛАВА 4 • Существование на ориентированном графе такого имею- щего вид цикла маршрута коммивояжера, общая стоимость которого меньше заданного- числа Ь. Данный список можно продолжить: большая часть совре- менных задач фактически относится к классу NP. Кроме того, не следует забывать, что названные задачи являются модель- ными. Каждой из них соответствует несколько реальных форму- лировок условий задачи, таких, как упорядочение операций; распределение персонала; оптимизация перевозок, ректифика- ции, размещения предприятий; управление производством; про- ектирование в области электроники или архитектуры. Чтобы доказать, что некоторая задача из данного списка принадлежит классу NP, достаточно выписать недетерминиро- ванный алгоритм, который решает ее с полиномиальной слож- ностью. Например, рассмотрим задачу существования на ори- ентированном графе G гамильтонова цикла со стоимостью, меньшей или равной Ь. Кг - 1 {Пункт отправления} S*- -{2,... , п} {Множество вершин, которые нужно посетить} стоимость « nv <— 1 -0 {Общая стоимость} {Число уже посещенных городов} ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА преемник (vnv) 0: {Преемник (t'nt)) обозначает допустимое (не содержащее паразитных циклов) множество городов, в которые можно попасть из ВЫБОР (преемник (ппо)) nv <— nv + 1 стоимость *-стоимость + стоимость (дуга (ип0_1, vnu)) КОНЕЦ ЦИКЛА ЕСЛИ nv — п И стоимость ТО успех: КОНЕЦ ИНАЧЕ неудача Каждая копия этого алгоритма действительно приводит к полиномиальному числу шагов, точнее п, причем независимо от значения Ь; следовательно, задача существования цикла стои- мостью, не большей Ь, попадает в класс NP. Замечание. Задача об оптимальном гамильтоновом цикле не попадает в класс NP. В самом деле, в качестве подзадачи в нее входит доказательство несуществования циклов, по стои- мости превышающих Ь. Следовательно, к классу NP эта зада- ча не относится. Она является дополнительной по отношению
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 213 к рассмотренной выше, так как теперь мы отыскиваем те цик- лы, которые не являются решениями той задачи. Однако нельзя утверждать, что если некоторая задача Q принадлежит классу NP, то и дополнительная к ней задача Q тоже входит в NP. На первый взгляд такое положение не соответствует “ин- туиции”, поскольку в классе Р аналогичное утверждение яв- ляется справедливым. Но перейти к дополнительной задаче в классе NP означает поменять местами в соответствующем не- детерминированном алгоритме все случаи успехов и неудач. Для задачи Q конечный успех означает неудачу во всех ветвях исходного недетерминированного алгоритма. Следовательно, для получения ответа нужно подождать, пока закончат работу все ДМТ. Сложности суммируются, а поскольку число ДМТ не обязательно полиномиально, ничто не обеспечивает того, чтобы Q е NP при Q е NP. В частности, для задачи существования на графе G гамиль- трнова цикла стоимостью, не меньшей Ь, нам не удается напи- сать соответствующий недетерминированный алгоритм; следо- вательно, данная задача не относится к классу NP и главным образом потому, что разность между b и реальной стоимостью некоторого гамильтонова цикла заранее может быть сколь угодно велика (она не. ограничена полиномом, зависящим от числа городов, которые нужно посетить). Итак, задача об опти- мальном маршруте коммивояжера не попадает в класс NP. Из задач на оптимизацию в класс NP попадает только за- дача поиска существования решения с заданной стоимостью. В общем случае задача оптимизации в настоящее время не мо- жет быть отнесена к какому-либо классу. 4.6. Изучение задач типа NP с помощью классов эквивалентностей Сначала мы докажем, что задачи, имеющие различные условия, но относящиеся к классу NP, на самом деле эквива- лентны. Приводимые ниже определения позволят в первую очередь уточнить, что мы понимаем под эквивалентными зада- чами. Определение 1. Задача Q сводится к задаче R тогда и толь- ко тогда, когда для всякого решения s задачи R существует функция g(s), которую можно вычислить полиномиально и ко- торая является решением задачи Q.. Тогда Q является Частным случаем R и можно записать: Q^R.
214 ГЛАВА 4 Это, кроме того, означает: если мы умеем решать 7?, то мы умеем решать и Q. Определение 2. Если одновременно Q-+R и R-+Q, то мы говорим, что Q и Р эквивалентны. Определение 3. Задача называется МР-сложной тогда и только тогда, когда к ней сводима любая задача из клас- са NP. Замечание. Утверждение, что задача является А^Р-сложной, не обязательно означает ее принадлежность классу NP. Полезность этого определения подтверждается следующей теоремой, которая служит исходным пунктом при установлении многочисленных отношений эквивалентности между задачами. 4.7. Основная теорема (Cook, 1971) Задача разрешимости логического выражения является NP-сложной. Итак, данная теорема утверждает, что решение любой за- дачи из класса NP (т. е. такой задачи, которую можно обрабо- тать на НДМТ за полиномиальное время) может быть получено из решения задачи разрешимости с помощью некоторой транс- формации, которая тоже полиномиальна. Или, иначе, для ре- шения произвольной задачи класса NP достаточно уметь ре- шать задачу разрешимости: Любая задача класса NP-*- задача разрешимости. Этот результат впервые получен Куком (1971 г.) в связи с изучением вопросов автоматического доказательства теорем и является более тонким математическим результатом по срав- нению с классическими теоремами о неразрешимости в фор- мальных системах [Church, 1932; Godel, 1931; см. гл. 3]. При доказательстве этой теоремы, которое мы приведем ниже, нам придется уточнить формальную модель НДМТ. Недетерминированная машина Тьюринга (НДМТ) состоит из считывающе-записывающей головки, регистрирующей ленты, разделенной на ячейки, в которых записаны символы си, 02, или аг. Она характеризуется конечным множеством внутренних состояний F и семью свойствами: 1) в каждый момент времени головка имеет доступ только к одной ячейке регистрирующей ленты; 2) в любой момент времени каждая клетка содержит один символ; 3) в данный момент допускается только одно состояние; 4) изменять можно только ячейку, находящуюся под голов- кой;
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 215 5) остальные действия (перемещение головки, изменение внутреннего состояния, инструкция “ВЫБОР”) могут быть выполнены только с помощью функции Defw, опре- деляющей машину М; 6) исходным состоянием может быть любое возможное со- стояние; 7) конечным называется состояние, связанное с первым ус- пехом (по отношению к последней неудаче). Теперь, когда задана недетерминированная машина Тьюрин- га М, описываемая по предложенной выше схеме, и, помимо этого, задача Q произвольной размерности п, которую можно решить на этой машине, мы построим в явном виде логическое выражение Ем, q, такое, что Em,q разрешимо <=>Q можно решить на М за полиноми- альное время. Важным моментом является то, что доказательство разреши- мости выражения Em,q можно проводить с помощью любого полиномиального алгоритма. “Q можно решить на М за поли- номиальное время” означает, что существует по крайней мере одна Последовательность состояний 0о, 01, 02, ..., 0m, где • 0i е Def^i(0<-i) {0i — является “законным ходом”}; • 0о — исходное состояние; • 0m — конечное состояние, причем m^Zp(ti), где р— неко- торый полином; • никакая другая законная цепочка состояний 0О, 01, ..., 0/г не имеет больше чем р(п) ячеек, т. е. в ней не более р(п) шагов. Выражение Em.q, которое мы построим ниже, будет имити- ровать цепочку 0о, 01, ..., 0m. В него войдет ряд переменных. Каждое присваивание значений этому множеству ^переменных соответствует не более чем одной последовательности законных состояний. И наконец, значение ИСТИНА данное выражение принимает тогда и только тогда, когда существует набор зна- чений, который соответствует последовательности, приводящей к успеху. Используем такие переменные, которые допускают точное описание рассматриваемой НДМТ; они бывают трех типов. • t(i, 0) = 1 тогда и только тогда, когда считывающё-записы- вающая головка установлена на ячейку i в момент вре- мени 0 (1 i tn, 1 0 п) . • и {j, 0) = 1 тогда и только тогда, когда в момент времени 0 машина М находится в состоянии /, причем это состоя- ние является единственным (1 [; где f — число воз- можных состояний из множества F; 1 0 т).
216 ГЛАВА 4 • v(i, k, 0) == 1 тогда и только тогда, когда в момент вре- мени 0 i-я ячейка на регистрирующей ленте машины М содержит k-й символ 1 k и, наконец, 1 С 0 т). Число символов г постоянно и не зависит от п, так что число введенных логических переменных составляет ~т2, т. е. яв- ляется полиномом, зависящим от задачи, размерность которой на входе составляет п. Теперь свойствам машины М 1—7 мы поставим в соответ- ствие семь логических выражений (А)— (G). А. Головка проверяет одновременно только одну ячейку. V0, 1^0<т, т т т 52 Z (г, 0) = 1 и, следовательно, Ц £ t (*, 0) = 1. i=i . 9=1 i=i Это выражение содержит т термов; следовательно, условие А записывается с помощью т2 термов. В. В любой момент времени в каждой клетке имеется только один уникальный символ. V0, 1 <0^т, Vi, 1 i <7 т, i обозначает ячейку с номером i. Г Мы получаем X у (Л k, 0)= 1. *=1 Поскольку г не зависит от п, условие В записывается с по- мощью т2 термов. С. М может находиться в данный момент только в одном состоянии. V0, 1<0^т, £«(/, 0) = 1. /-1 Условие С записывается с помощью т термов, так как число состояний f не зависит от машины М. ' D. На ленте может изменяться только ячейка, находящаяся под головкой. VZ, 1 sO‘ -С т, V£, V0, 1 <Z0<Zw, (ц (I, k, 0) = 1) ((/ (г, 0) = 1) V (у (Л k, 0 + 1) = 1)),
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 217 т. е. если i-я ячейка находится под считывающей головкой ма- шины М.и в ней содержится символ k, то • либо головка считывает i-ю ячейку в момент времени 9; • либо в момент времени 0 4- 1 i-я ячейка все еще содержит k-я символ. Это хорошо согласуется с условиями А и В. Условие D за- писывается с помощью О (/и2) символов, поскольку г —кон- станта. Е. Каждое новое состояние может быть получено только с помощью функции Defw, определяющей машину М, т. е. в мо- мент времени 0: ЕСЛИ i-я ячейка содержит символ /, ЕСЛИ головка считывает ячейку I, а М находится в состоя- нии k, ТО следующее состояние является одним из состоя- ний Def^fi, /, &)• Это утверждение типа х =ф- у мы будем записывать в виде ~]х V у или в данном случае после преобразования трех по- сылок: (о (i, k, 0) = 0) V (« (/, 0) = 0) V (t (i, 0) = 0) V [» (i, kt, 0 +I) = = 1 Д u(jh 0+ 1)=1 Ai(zz, 0+ 1)=1], где l обозначает произвольное состояние из Defw(i, j, k). Поскольку машина M является недетерминированной, для любой тройки (i, /, k) существует более чем одна тройка DefM(i, j, k), но при этом таких троек всегда конечное число. Таким образом, для фиксированных i, j и k независимо от п приведенное выше выражение имеет ограниченную длину. По- скольку число состояний f само является постоянным, условие Е записывается с помощью О(т2) термов. F. Исходное состояние является законным, т. е. когда мы обозначаем с помощью индекса 1 состояние в момент времени 1, самая левая ячейка автоматически получает номер 1: (u(l, 1) = 1) A (i(l, 1)=1), Кроме того, ячейки с номерами от 2 до п + 1 содержат исход- ное условие Q, а другие — пусты, т. е. если пустой символ за- кодирован единицей, то ( A (o(i, /,•, !) = 1)W A (w(i, 1, 1) = 1)). \2<i<n + l /\n+2<i<m / Следовательно, условие F имеет длину О (т). F^((u, 1, l)=l)A((i, 1, 1)==1)( A u(i, jit 1) = ПХ X( A V(i, 1, 1) = 1Y
218 ГЛАВА 4 G. Свойство 7 утверждает, что в конечном счете существует искомое состояние Л, представляющее собой успешное завер- шение работы алгоритма. Допуская, что начиная с этого момента машина остается в данном состоянии (конкретно Л1 будет находиться в состоя- нии Л в момент времени т = р(п)), мы получим u(Л, т). Полное условие Н для решения задачи Q с помощью маши- ны М записывается в виде Н = А/\В AC AD /\Е AF Л G. По построению данное условие выражается с помощью не более чем О(/п3) термов, причем оно является выполнимым тогда и только тогда, когда машина М решает задачу Q. Действительно, если последовательность состояний 0Ь02, ..., 0т ведет к 0д, тем самым определены те значения переменных I, и, г, которые присваивают Н значение ИСТИНА. И наоборот, если значения переменных известны, через функцию Def« они соответствуют последовательности законных состояний. Так как мы не накладывали на нашу недетерминированную машину М никаких ограничений, мы доказали, что любая за- дача, которую можно решить на М (любой язык, понимаемый машиной Л1), полиномиально сводима к задаче разрешимости логического выражения. 4.8. Класс Л/Р-полных задач С помощью теоремы Кука для всех задач Q ее NP одновре- менно устанавливается отношение сводимости “Q -> логическая разрешимость”. Но отношение сводимости является транзитив- ным. Поэтому если нам удастся доказать, что логическая раз- решимость сводима к некоторой задаче Q1( которая сама сво- дится к Q2, и т. д, то мы получим класс эквивалентных задач. Это фактически заставляет уточнить границы класса III путем разбиения его на две части в зависимости от того, смогли ли мы доказать принадлежность/непринадлежность задачи классу NP. Определение. Задача называется АР-полной в том и только в том случае, если она является АР-сложной и попадает в класс NP. Для лучшего понимания проблемы рассмотрим рис. 4.9. Получение результата Р = NP сегодня кажется невероят- ным. Для большинства действительно сложных классических задач была доказана принадлежность к классу NP-сложных. Но, что еще более удивительно, почти все они попадают в класс WP, т. е. являются jVP-полными, и, следовательно, в этом смысле
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ все они эквивалентны. Если бы мы научились решать одну из них за полиномиальное время, то мы бы смогли решить все задачи данного класса за промежуток времени того же порядка величины. . Напомним два других свойства УУ/’-полных задач: мы не знаем, являются ли они неполиномиальными, и не знаем для их ~№-сложные К ним сводится- любая задача из NP NP- полные 'NP-сложные Зада чи, которые можно решить _за палиномиаль- ное время на ДМТ Задачи, которые можно решить за полиномиаль- ное время на НДМТ Прочие задачи Рис. 4.9. Пример сортировки первого типа. решения детерминированного полиномиально ограниченного алгоритма. Приведем для примера несколько доказательств эквивалент- ности. Идея состоит в том, чтобы перевести задачу из одного класса задач в другой. Трудность заключается в том, что мы не умеем как следует решать основную задачу — задачу логической раз- решимости. Но принципы моделирования и преобразования ус- ловий могут успешно использоваться в конкретных случаях. В действительности при изучении этих проблем никогда не следует упускать из виду, что даже если теоретическая принад- лежность некоторой общей задачи Q к классу 7V А полных дока- зана, любая конкретная задача с уточненными данными может быть все-таки решена. Не является невозможным решение этой уточненной задачи за полиномиальное время. Единственное, что утверждает теория: для общего случая не существует единого полиномиального алгоритма. 4.9. Несколько доказательств эквивалентности задач В настоящее время получено доказательство эквивалент- ности обширного семейства задач. Сводимость задач, о которых вначале было известно, что они принадлежат классу NP, к за- даче Кука была доказана либо непосредственно, либо косвенно (с помощью транзитивности) с использованием дерева, изобра- женного на рис. 4.10.
220 ГЛАВА 4 Чтобы доказать, что задача Q является VP-полной, мы каж- дый раз должны доказывать, что: • Q попадает в класс VP; • Q является .VP-сложной. Однако, поскольку Кук доказал, что для всякого Q ge NP Q сводится к задаче разрешимости логического выражения, остает- ся доказать, что логическая разрешимость сводится к Q. Иначе Разрешимость логического выражения Клика мощностью К Существова- Покрытие пае гамильто- . нова цикла 1 Разрешимость трехлитераль - ноео логического выражения Разрешимость системы урав- нение} в целых числах Гамильтонов цикл У поря во чение с К- штрасрами Рюкзс1к Раскраска Разбиение на * вве части раэ бдение Максимальная К-разрезка Рис. 4.10. Доказанные отношения сводимости в классе VP-полных задач. говоря, необходимо и достаточно построить полиномиальное пре- образование, которое позволяет перейти от задачи разреши- мости к задаче Q, причем это преобразование должно быть та- ким, чтобы любому решению задачи Q можно было поставить в соответствие некоторое решение задачи разрешимости логиче- ского выражения. Сначала докажем, что задача разрешимости логического вы- ражения— даже гораздо более простого по форме, чем общий случай, рассматриваемый в теореме Кука, — является тем не менее эквивалентной задаче в общем виде. Пример 1 • Задача разрешимости логического выражения, приведен- ного к нормальной конъюнктивной форме (НКФ), является VP-полной. • Задача разрешимости логического выражения, приведен- ного к НКФ и имеющего не более трех литералов в одном опе- раторе, является VP-полной. Некоторое выражение является приведенным к НКФ, если оно записывается как логическое произведение (операция Л) сумм (операция , V) элементарных единиц, называемых лите-
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 221 ралами; каждый литерал —это либо q, либо ~]q, где q обозна- чает логическую переменную. Выражение из условия Н в до- казательстве теоремы Кука может быть приведено к НКФ. В са- мом деле, если перейти от переменных', принимающих значение О и 1, к логическим (1 -<=>- ИСТИНА, 0-Ф=>ЛОЖЬ), то суммы Z t(i, 0) = 1 ie/ могут быть записаны в виде (V t(i, 9) А (~Ш, 0) V “Щ/, 0))\. lie/ {i,/)e/*/ I v i i / Первое заключенное в скобки выражение (или оператор) со- держит информацию о том, что по крайней мере одна из пере- менных истинна; во втором операторе утверждается, что в каж- дой из ]/|Х(Р1 — 0/2 пар не могут быть истинными обе пе- ременные одновременно. Таким образом, условия А, В и С приводимы к НКФ. Стан- дартизация условия D достигается благодаря тому, что во всех случаях осуществляется замена символа s=>: х<=>у заменяется на (Ox V у) Л (х V ~1у), т. е. на выраже- ние, приведенное к НКФ, общая длина которого а в худшем случае удваивается. Условия Е, F, Q приводятся к НКФ с .по- мощью замены типа переменных — с булевых (0 — 1) на логиче- ские (ИСТИНА —ЛОЖЬ). Итак, длина выражения Н была умножена на константу, и поэтому результат Кука сохраняет свою значимость и для вы- ражений, приведенных к НКФ. Следовательно, в дальнейшем мы можем ограничиться рассмотрением множества выражений, приведенных к НКФ. Среди них первыми очевидными кандидатами в задачи клас- са NP являются выражения, содержащие не более трех лите- ралов в одном операторе (так называемые «3-НКФ»). 1. Задача о разрешимости 3-НКФ попадает в класс NP, по- тому что очевидно, что для НДМТ можно установить некоторый алгоритм, число этапов в котором постоянно и равно 3: ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА существует необработан- ный оператор Ct {Ct- = f (х, у, ?)} х<-ВЫБОР [ИСТИНА,ЛОЖЬ] у ВЫБОР [ИСТИНА, ЛОЖЬ] 2^- ВЫБОР [ИСТИНА, ЛОЖЬ] ЕСЛИ Ci = ЛОЖЬ ТО неудача КОНЕЦ ЦИКЛА ЕСЛИ все операторы обработаны ТО успех; КОНЕЦ
222 ГЛАВА 4 2. Задача разрешимости произвольного логического выраже- ния сводится к задаче разрешимости 3-НКФ. Приводимое ниже преобразование позволяет перейти от про- извольного оператора, включающего i литералов, к трехлите- ральному оператору; после введения i—3 новых переменных у выражение (xj V х2 V ... V х,) принимает вид Ui V х2 V г/i) А (х3 V П г/i V у2) А (х4 V "1 У> V у3) Л (x5V “1 у3 V V г/4) • • Ur-2 V ~1 г/х-4 V г/г_3) A (х^ V -Ч V ~1 г/(_3). Как можно легко доказать индукцией по I, эти два выраже- ния формально эквивалентны. Пусть имеется некоторое решение выражения, записанного в иксах, например Xi„ = ИСТИНА. Зададим теперь у,- = ИСТИНА для / i0 — 2, У) = ЛОЖЬ для / > z0 — 2. Тогда выражение, записанное в иксах и игреках, тоже имеет значение ИСТИНА. Наоборот, если существует множество значений z//, придаю- щих этому выражению значение ИСТИНА, значение по крайней мере одного х,- должно быть ИСТИНА, так как значение пер- вого оператора непременно ИСТИНА. Следовательно, мы полу- чаем ЕСЛИ у^ = ЛОЖЬ ТО X] или х2 ИСТИНА и тогда КОНЕЦ; ИНАЧЕ {гл = ИСТИНА} ЕСЛИ yt_3 = ЛОЖЬ ТО xt или хг-1 ИСТИНА и тогда КОНЕЦ; ИНАЧЕ {yt = ИСТИНА, г/1_з = ЛОЖЬ} ТО обязательно сущест- вует i0, 1 A io :С i — 4 такое, что yia = ИСТИНА, £A0+i = Л°ЖЬ; следовательнб, | xIQ+2 = ИСТИНА КОНЕЦ УСЛОВИЯ КОНЕЦ УСЛОВИЯ Так, например, при i = 4 и указанном преобразовании вы- ражение (xi V х2 V х3 V х4) приобретает вид (xi V х2 V t/i) А A (х3 V х4 V причем оба выражения эквивалентны.
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 223 Поскольку новое выражение содержит ровно 1 — 2 трехлите- ральных операторов на каждый оператор, включающий перво- начальное число литералов (t 4), общее число термов в но- вом выражении менее чем в 3 раза больше исходного. Итак, мы можем задачу разрешимости произвольного логи- ческого выражения свести за полиномиальное время к задаче разрешимости 3-НКФ- Пример 2. Задача существования К-клики на произвольном графе является /УР-полной. {Клика — подмножество попарно связанных вершин; К-кли- ка -— клика мощностью К} 1. Эта задача принадлежит классу NP, поскольку каким бы ни был граф, существует С„ (т. е. полиномиальное число) под- множеств, состоящих из К вершин. В каждом цз них достаточно проверить существование ребра между двумя произвольными вершинами. Следовательно, нужно выполнить О (К2), тестов. 2. Задача разрешимости сводится к задаче существования К-клики. Пусть дано произвольное выражение Е, приведенное к НКФ и содержащее К операторов: . С, Д С2 ... A Ск, где С, = V Xij, а х>/ — переменная или ее отрицание. В соответствии с этим выражением построим граф, каждая, вершина которого соответствует паре (х, I) , где х является ли- тералом г-го оператора С, из выражения Е, и дуга которого связывает (х, I) и (у, j) тогда и только тогда, когда i=^j, т. е. этим двум вершинам соответствуют различ-. ные операторы; х Ф ~] у, т. е. эти два литерала не являются отрицанием друг друга. Перед тем как продолжить доказательство, изобразим при- мер такого графа. Если выражение Е имеет вид (xt V ~] х2 V “I х3) A Ui V х2 V х4) А (х3 V П х4) А ( П х{), результирующий граф имеет девять вершин — столько же, сколько литералов содержится в Е. Ребро связывает два лите- рала, входящие в различные операторы, причем значение этих литералов может быть одновременно ИСТИНА (рис. 4.11). Существование в этом графе К-клики соответствует, следо- вательно, случаю, когда для выражения Е существует множе- ство из К литералов, принадлежащих К различным операторам
224 ГЛАВА 4 Рис. 4.11. Окончательный граф для задачи о А-клике. (т. е. в данном случае всем) и способных одновременно прини- мать значение ИСТИНА. И наоборот, если выражение разрешимо, т. е. если для пере- менных существует множество истинностных значений, таких, что каждый оператор принимает значение ИСТИНА, то в каж- дом из К операторов существует по крайней мере один литерал, имеющий значение ИСТИНА. По построению этому множеству литералов в нашем графе соответствует множество из К при- надлежащих к разным операторам и взаимно не исключающих друг друга — а в силу этого связанных друг с другом — вершин, т. е. А-клика. В рассматриваемом случае К = 4, и мы получаем клику (Пх3С1, Х2С2, Пх4С3, ~]xiC4) или же клику (Пх2, G, х4С2, х3С3, ЙХ1С4), поскольку (~IxiCi) присутствует всегда. Пример 3. Задача о существовании решения системы урав- нения в целых числах (УЦЧ) является АР-полной. 1. Эта задача относится к классу NP, поскольку она может включать лишь конечное число различных выборов (число зна- чений переменных). 2. Задача разрешимости логического выражения сводится к задаче УЦЧ с помощью полиномиальной трансформации. Действительно, построим УЦЧ вида Ах — b с п булевыми неизвестными Ху, находящимися во взаимно однозначном соот- ветствии с неизвестными из исходного выражения Е(х, = 1 в УЦЧч=>хг — ИСТИНА в Е) с К условиями, если Е. содержйт К операторов. Пусть для элементов ац из A (l^i^K,
КЛАССИЧЕСКИЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ 225 1 в том й только том случае, если X/ является литералом Cz; — 1 в том и только том случае, если “] Xj является литералом Cz; О в остальных случаях. Отсюда следует, что i-му условию, накладываемому на УЦЧ, со- ответствует i-й оператор, если в качестве второго члена bi этого условия мы возьмем bt — 1 — | {//~] xf —- литерал из CJ |. ’ Очевидно, что Ct будет удовлетворено в том и только в том слу- чае, когда по крайней мере один «положительный» литерал (со- ответствующий значению йц = 1) имеет значение ИСТИНА или когда по крайней мёре один «отрицательный» литерал (т. е. хщ = — 1) имеет значение ЛОЖЬ. Это двойное условие записывается также в УЦЧ: Е S xi >bit i t где Jt = {//х; — литерал из CJ, J7 = Ц/~] х} — литерал из С,}. В соответствии с определением bi последнее неравенство можно также записать следующим образом: * i 1 i Следовательно, если E удовлетворено, то по крайней мере один X/ из равен 1 или же один Xj из Ji равен 0 для любого Z, 1 i k. В самом деле, если х/0=1, где /о входит в Ji, то справедливо выражение (1), поскольку во всех случаях меньше, чем |. ' i В другом случае, когда х/о = О, где /о входит в Л, это пред- полагает в первую очередь, что 1; так как сумма xz для j Jt является положительной^ неравенство (1) выполнено, поскольку i 8 Ж.-Л. Лорьер
226 ГЛАВА 4 Таким образом, с помощью указанного полиномиального преобразования всякому решению УЦЧ можно поставить в со- ответствие некоторое решение задачи разрешимости логического выражения. В частности, для того же выражения Е, которое рассматри- валось выше при установлении отношения эквивалентности классов задач Е == (х> V х2 V “I *3) А (х1 V х2 V х4) Д (х3 V V “I *4) A (~1 Xi), определяемая выше система уравнений в целых числах имеет вид Х[ — х2 — x3^s — 1 {оператор CJ, Х[ + х2 + х4 I {оператор С2}, х3— х4^0 {оператор С3}, — Х[ 0 {оператор С4}. Очевидное решение этой УЦЧ (из-за {С4}) является Xi=0. Сумма {Ci}-j-{C2} в этом случае дает х4 — х3^0— условие, из которого при объединении с {Сз} получаем Х4 — х3 = 0. После этого имеем — х2— х3 1 {CJ, х2 + х4 > 1 {С2}. Отсюда в зависимости от значения хг мы получаем два решения: (0, 1, 0, 0) и (0, 0, 1, 1). . Очевидно, что они могут быть в свою очередь поставлены в со- ответствие двум кликам мощностью 4 из предыдущей задачи.
Глава 5 МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА Методы перебора традиционно применяются при решении большинства задач. Им посвящена большая частц данной главы, а также последующие гл. 6 и 7. 5.1. Решение задач с помощью перебора Класс комбинаторных задач Сущность любой комбинаторной задачи можно сформулиро- вать следующим образом: «Найти на множестве X элемент х, удовлетворяющий сово- купности условий К(х), в предположении, что пространство поиска X содержит некоторое конечное число различных точек». Подобные ситуации возникают всегда, когда мы имеем дело с дискретными по природе элементами: логические голово- ломки; проблемы пополнения запасов на складе; выбор реше- ния из множества возможных; выбор места расположения но- вого завода; прохождение пути по графу; доказательство тео- рем. Во всех этих случаях пространство поиска X является конечным и дискретным. Последнее означает, что все точки X отделены друг от друга. Именно при решении таких задач мо- гут использоваться методы перебора. Метод полного перебора Когда требуется найти элемент, принадлежащий некоторому конечному множеству, мы можем перебирать все элементы, пока не найдем подходящий. Этот метод надежен, прост и пре- красно работает, если мощность множества не превышает 103 для ручного подсчета или 109 при подсчете на машине. Схема действий следующая: 1. Взять первый еще не рассмотренный элемент х0 из мно- жества X. 2. Проверить совокупность условий К(хо)- 3. Если какое-либо условие не выполнено, ^начать сначала. 4. Если выполнены все условия, х0 является решением (если нужны все решения, вернуться к п. I). 8*
228 ГЛАВА 5 Такой метод явного перебора можно легко усовершенство- вать: вместо рассмотрения всего элемента х0 можно ограни- читься некоторым его фрагментом, достаточным для проверки выполнения/невыполнения условий К(%). В 1891 г. Э. Люка Рис. 5.1. Прохождение лабиринта. в «Математических досугах» описал метод решения задач о про- хождении лабиринта, представленного на рис. 5.1. Метод Люка состоит в следующем: 1. Из клетки, в которой мы находимся, надо идти по еще не исследованному пути. 2. Если все пути, ведущие из этой клетки, уже исследованы, надо вернуться на один шаг назад по тому пути, которым мы пришли в данную точку. Итак, вместо порождения всех подмножеств данного множе- ства X (X — клетки лабиринта) мы рассматриваем лишь под- множества, образующие допустимые пути, и останавливаемся, когда встречаем тупик. Систематизация этого метода привела к появлению наиболее общей схемы решения задач, комбина- торных по природе: речь идет об имплицитном переборе. Наи- более благоприятным случаем перебора является случай, когда мы можем определить градиент. 5.2. Градиентные методы Градиентные методы часто используются при решении кон- кретных задач: суть состоит в том, что для скорейшего дости- жения вершины надо продвигаться по самому крутому склону. Если мы на автомобиле хотим пересечь город с севера на юг, мы стараемся сохранить это направление как можно дольше, а когда условия движения заставляют нас отклониться от него, мы стремимся сделать это отклонение как можно меньшим. Стратегия градиента, или «подъема в гору», заключается в по- пытке достичь главного оптимума через последовательность ло-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 229 кальных оптимумов (рис. 5.2). Как показывает опыт, эта стра- тегия вполне удачна, хотя, когда поисковое пространство не яв- ляется выпуклым, она становится малоэффективной. Каждой конкретной ситуации ставится в соответствие неко- торая числовая оценка, достигающая экстремума в той вер- шине, к которой мы стремимся, и на каждом шаге выбирается Выпуклое пространство Вогнутое пространство (УК) К е С ,13 (Vac) хе Е,(Уу) у eY Ска: + (1 - к)у) е Е Рис. 5.2. Метод градиента. то действие, которое дает максимальное приращение оценоч- ной функции по сравнению с текущим состоянием. К градиент- ным методам относятся симплекс-метод в линейном програм- мировании (разд. 5.3), Л*-процедура (разд. 5.4), методы после- довательных приближений в численном анализе, минимаксные 1 Рис. 5.3. Задача о стрелках. методы и альфа-бета процедура (разд. 6.2), динамическое про- граммирование (разд. 5.9), метод ветвей и границ, метод раз- . деления и оценки (разд. 5.4). Пример 1. Пусть дано пять стрелок, находящихся в положе- нии So; нужно перевести их в положение S&, причем разрешены только такие действия, при которых одновременно переворачи- ваются две соседние стрелки (рис. 5.3). Пять разрешенных действий a, b, с, d и е — повороты стре- лок (1,2), (2,3), (3,4), (4,5), (5,6). Поскольку для любого действия а из этого множества а2 означает возвращение к ис- ходному положению, достаточно рассматривать лишь последо- вательности элементарных действий. Если в качестве оценочной
230 ГЛАВА 5 функции ситуации S мы решим выбрать функцию f(S), озна- чающую число стрелок, находящихся в правильном положении, то мы получим: f(S0) = /(000101) = 2 и f(Ss) = f(111111) — 6. Действие а позволяет перейти от So к Si = (110101), где f(Si) = = 4. Действие d позволяет перейти от Si к S2 = (110011), где f(S2) = 4, и, наконец, действие с позволяет достичь цели —по- ложения Sb (очевидно, что порядок действий не имеет значе- ния). Отметим, что на втором шаге мы были вынуждены пройти Рис. 5.4. Примеры неудачного применения метода градиента. через уровень, на котором значение функции f(S) оставалось постоянным. Однако наш маршрут тесно связан с характером оценочной функции, и поэтому, если бы мы взяли в качестве f(S) функ- цию, выражающую максимальное расстояние между двумя не- верно расположенными стрелками, этот маршрут был бы иным, поскольку тогда f(S0) = 4, f(Si) = 2, f(S2)=l. Метод градиента не гарантирует получения решения (за ис- ключением случая, когда пространство отображения f(S) яв- ляется выпуклым), так как могут возникнуть ловушки трех ти- пов: второстепенные вершины, гребни и плато (рис. 5.4). В последнем случае, который часто встречается в различ- ных задачах, при подходе к решению в самом конце обнаружи- вается огромный срез, по которому неизвестно, как продвигаться дальше, и из-за этого приходится пересматривать саму оценоч- ную функцию. Но для случаев, когда пространство f(S) яв- ляется выпуклым, при удачном выборе оценочной функции ре- шение достигается быстро и легко. Например, это верно для алгоритмов, рассмотренных в разд. 4.1, где f(S)— минимальное расстояние до исходной точки (в задаче поиска наикратчайшего пути) и f(S) — число сортируемых элементов (в задаче о сорти- ровке).
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 231 5.3. Линейное программирование Рассмотрим систему неравенств вида АХ Ь, где XeR", А — матрица размерностью тХп с действительными элемен- тами, X — вектор-столбец размерностью (1 X п), состоящий из неизвестных действительных чисел, а b — заданная вектор-стро- ка размерностью (mXl)- В общем случае т < п и система является неопределённой. Решения находятся по значениям не- которой функции дохода, т. е. по специальному фактору, зна- чение которого должно быть максимальным. Пример. Мастерская по производству нестандартной мебели получила одновременно два заказа. Для изготовления одного комплекта первого тйпа нужно одиннадцать заготовок и 3 ч ра- боты, для второго — 4 заготовки й 5 ч работы. В распоряжении мастера имеется 46 заготовок и 32 ч времени; кроме того, он знает, что в первом заказе Он получит’14 фр. за каждую вещь, а во втором только 7 фр. Как он должен организовать свою работу? Если х\ и х2— число предметов мебели, сделанных по каж- дому из заказов, мы получаем 1) 11*! + 4х2 46 (условие по фурнитуре), 2) 3xj + бх2 32 (условие по времени), 3) Zs 14xt + 7х2 (условие максимума). Пусть имеется некоторая система линейных неравенств типа АХ Ь при МАХ[С-Х]. Поскольку равенствами манипулиро- вать проще, чем неравенствами, обычно вводят вспомогатель- ные переменные у\ и у2, называемые невязками, с помощью ко- торых нашу систему можно записать в следующем виде: 11х, + 4х2 + Z/i — 46, 3xt 4- 5х2 4- у2 == 32, MAX [14Х, 4-7х2], или, если использовать матричную запись, г 11 4 1 МАХ 350 L 14 7 0 о- 1 0. - Х{ ~ х2 Vi -У2- г461 Идея состоит в том, чтобы, исходя из очевидного решения Xi=0, х2 = 0, i/i==46, z/2 = 32, улучшить его за счет макси- мально возможного увеличения значения той переменной, кото- рая дает наибольшее приращение функции дохода Z.
232 ГЛАВА 5 Используемый нами градиент в данном случае задается не- посредственно последней строкой, и очевидно, что на первом этапе наиболее «доходной» является переменная хь Итак, за- пишем Х1 = 46/11— (4/1 1)х2-(1/1Ш или, в матричной форме, Г 1 0 4/11 5- 12/11 1/Н о - -3/11 1 ♦ X = Г 46/11 32 - (3 • 46)/11 _о 7-56/11 -14/11 0_ _ —644/11 Следовательно, функция дохода Z равна 644/11, когда Xi стре- мится к своему максимальному значению, т. е. 46/11, х2 остается равным 0, а у2 = 32 — (3-46)/11 = 214/11. На самом деле мы осуществили обычное перемещение вдоль оси хь которое по- казывает, что Z может продолжать увеличиваться — на этот раз при возрастании х2, чей градиент составляет 7 — 56/11 =21/11. Теперь коэффициент при х2 во . втором уравнении равен 5 — — 12/11, или 43/11, и мы получаем х2 = 214/43 + (3/43) у{ - (1/43.) г/2. В матричной форме имеем г1 0 1/11+ 4-3/11 -43 О 1 -3/43 .0 0 — 1.4/11 4- 3- 21/11 -43 -46/11 —4-214/11 -43 ' = 214/43 _-14-46/11 - 21- 214/11 Это новое преобразование и вытекающие из него линейные ком- бинации показывают, что все градиенты, все относительные выигрыши в Z (последняя строчка предыдущей матрицы) отри- цательны или равны нулю. Таким образом, оптимум достигнут; он составляет Z* = MAX Z = 14 -46/11 4- 21 - 214/11 • 43 = 68,033 при Xj = 102/43 = 2,371 и х2 = 214/43 = 4,977. В двумерном пространстве Xi X *2 можно непосредственно изобразить пространство поиска и интерпретацию этого гра- диентного алгоритма (разработанного Данцигом (1959) и из- вестного как симплекс-метод (рис. 5.5)).
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 233 ' Выйдя Из начала координат (точка 0: = Лг^О), мы сле- дуем по линии самого крутого склона (в соответствии с выра- жением Z 14xi -{- 7х2) и попадаем в точку Pi, а затем в точку Р2, которая является допустимой, удовлетворяет уравнениям АХ^Ь и находится на максимальном расстоянии от начала прямой Z. Система уравнений имеет решение только в действительных числах. Приемлемое для мастера решение получается только Рис. 5.5. Симплекс-метод в линейном программировании, в том случае, если заказы первого и второго типов повторяются достаточно часто, чтобы разумно округлять получаемые коли- чества предметов мебели до соответствующих целых: Xi = 2 и х2 = 5. В противном случае задача, в которой X/ могут быть только целыми числами, существенно отличается от предыду- щей, поскольку пространство поиска не является в этом случае непрерывным и вряд ли может быть выпуклым. Принципиально другие методы, используемые для задач последнего типа, рас- смотрены в гл. 8. В матричной форме симплекс-метод легко может быть рас- пространен на случай произвольного числа переменных и урав- нений. Процедура сводится к последовательности линейных комбинаций, которые выбираются по результатам проверки зна- чений градиентов. Когда они все становятся отрицательными, процедура завершается. 5.3.1. Формализация симплекс-алгоритма ‘ Симплекс-алгоритм,1 сложность которого не является поли- номиальнрй, использует несколько простых свойств, выполняю- щихся для линейных задач.
234 ГЛАВА 5 1, Неравенства aiXiа2х2-j~ ... -h апхп^ b определяют ограниченные гиперплоскостями замкнутые выпуклые подпро- странства на R'1. 2. На пересечении некоторого конечного числа выпуклых подпространств образуется выпуклое тело, которое мы будем называть полиэдром, если оно ограничено, и политопом — в про- тивном случае. 3. Любая точка некоторого полиэдра может быть описана как линейная комбинация вершин, или точек-экстремумов, ко- торые являются пересечениями исходных гиперплоскостей. Число этих точек конечно и не превышает С™ в R” (если мы имеем m гиперплоскостей (неравенств)). 4. Оптимум не может быть достигнут в точке, расположен- ной строго внутри политопа (см. определение выше), потому что тогда мы могли бы с помощью линейной комбинации по- строить на границе полиэдра точку, в которой функция дохода Z принимала бы более высокое значение. Если задача не вы- рождена, т. е. если ранг (детерминант) матрицы А не равен т, то значение Z может быть улучшено за счет продвижения по гиперребру до следующей вершины. 5. Мы будем называть базовой квадратной матрицей мат- рицы А любое подмножество индексов из множества [1, /п], ко- торому соответствует базовая квадратная матрица В, выделен- ная из А и имеющая ранг п. Сказанное выше эквивалентно утверждению: «Оптимум системы линейных неравенств Ах b может быть достигнут при решении уравнения с базовой квад- ратной матрицей матрицы Л». Если матрица А разбивается на матрицы В и N и система записывается в виде Вхв + Nxn — b, то базовое решение определяется единственным способом: xN = 0 и Вхв — Ь. Симплекс-алгоритм работает только с базовыми квадрат- ными матрицами, имеющими решение (т. е. с такими, в кото- рых Хв 0), и переходит от одной вершины к другой, используя метод градиента. На каждом этапе из базовой квадратной мат- рицы удаляется один индекс: одна из переменных обращается в нуль, а другая попадает в базовую квадратную матрицу, т. е. произвольная переменная принимает ненулевое значение. Схо- димость обеспечивается конечностью числа вершин политопа. 5.4. Градиентные методы в теорий графов Иногда метод градиента позволяет получить вполне опреде- ленное решение «в лоб>. Рассмотрим пример такой задачи из
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 235 области теории графов. В ней моделируются некоторые конк- ретные ситуации: проектирование телекоммуникационных или вычислительных сетей, обработка анкет, автоматическая клас- сификация. Задача формулируется следующим образом: Задан связный граф со стоимостями дуг G — (X, U). Тре- буется построить частичное дерево A=(X, V*), имеющее мини- мальную общую стоимость. Дерево — это связный ациклический граф А — (X, V); по формуле Эйлера он содержит |Х|:— 1 ребер. Если использовать метод градиента, по которому нужно рас- сматривать дуги графа. G в порядке возрастания стоимостей, то получается первый алгоритм решения этой задачи, предло- женный Крускалем в 1956 г: Алгоритм построения минимального дерева — Расположить ребра графа G в порядке возрастания стоимостей; У<-Ф — До тех пор пока существуют необработанные ребра: [ ЕСЛИ первое из них не образуют цикла с V ТО добавить его к У. Конец. Замечание. Данный алгоритм содержит |Х| этапов. 5.4.1. Доказательство алгоритма Крускаля Обозначим стоимость дерева (X, V), полученную в резуль- тате последней итерации описанного выше алгоритма, через L. Докажем, что не существует дерева, имеющего стоимость мень- ше L. В самом деле, пусть среди множества деревьев имеется дерево (X, V*), стоимость которого L* является наименьшей. Де- ревья (X, У*) и (X, У) имеют по (|Х| — 1) ребер каждое. Пусть ребро Vi (1 — 1)— первое из числа ребер, входящих в У и не входящих в У* (если такого ребра не существует, то ре- зультат доказан). Добавление щ в У* должно привести к обра- зованию цикла. На этом цикле непременно существует ребро v0, которое не входит в У. Но тогда граф (X, V* + Vi— v0) так- же является деревом, поскольку содержит (п—1) ребер и не имеет циклов. При этом добавление ц0 в граф (X, {щ, ц2, .., Vi-\}) не приводит к образованию цикла, поскольку этот граф является поддеревом дерева У*, а это означает, что стои- мость (ио) > стоимость (У/). (Здесь мы без потери общности предполагаем, что все стоимости различны.)
236 ГЛАВА 5 Из этого мы, наконец, получаем, что стоимость дерева (X, V* + Vi — v0), равная £* + стоимость (и,-)— стоимость (и0), меньше, чем предположительно оптимальная стоимость £*, что противоречит исходному предположению. Тип алгоритма, выбирающий объекты в том порядке, в ко- задаются оценочной функцией, А тором они получил название «жадного». Он приводит к ус- пеху во всех тех случаях, ко- гда задача может быть сведе- на к определению пересечения двух семейств, принадлежа- щих к не зависящим друг от друга частям одного и того же множества, называемым мат- роидами (Gondran и Minoux, 1979). Пример. Во французской системе высоковольтных линий электропередач обнаружить дерево, имеющее минималь- ную сумму расстояний, если все исходные данные пред- ставлены в графе, изображен- ном на рис. 5.6. Ребра расположены в порядке возрастания следующим обра- зом: AC, FG, EF, ЕН, II, CD, GJ, AD, DG, ВС, CF, FI, HI, AB, 00 46 D 330 Й 380 610 310 170 ЗдО 445 Н 360 Рис. 5.6. Граф тропередач. I системы 90 420 480 J линий элек- BE, BF, CH. Алгоритм Крускаля позволяет последовательно сохранять ребра AC, FG, EF, ЕН, IJ, CD и GJ, и ребро AD ис- ключается, поскольку оно образовало бы цикл с уже включен- ными в дерево ребрами АС и CD. Затем добавляются ребра DG и ВС. Как можно заметить, все вершины уже достигнуты и ми- нимальное дерево получено. Распространение данного алгоритма на случай обобщенных поисковых задач приводит нас в область искусственного ин- теллекта, к методам, получившим название «эвристического поиска». 5.5. Эвристический поиск Широкий класс задач можно разрешить следующим спосо- бом: Этап 1. Выбрать из множества возможных действий некото- рое действие. Этап 2. Осуществить выбранное действие и изменить теку- щую ситуацию.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 237 Этап 3. Оценить ситуацию. Этап 4. Отбросить бесполезные ситуации. Этап 5. Если достигнута конечная ситуация — конец; если нет, выбрать новую исходную ситуацию и начать сначала. До сих пор для этапов «принятия решений» (этапы 1, 3 и 5) мы использовали одну и ту же численную функцию. Теперь уточним эту схему. В табл. 5.1 перечислены общие идеи и стра- тегии поиска, которые используются человеком и/или суще- ствующими программами. Таблица 5.1. Методы эвристического поиска Этап 1. Выбор действия • с учетом соответствия цели: — уменьшение некоторого нежелательного различия, — непосредственное решение той или иной подзадачи; • с учетом опыта: — повторение прошлого, — обнаружение ключевого действия; • с учетом необходимых условий: — решение, обусловленное анализом ситуации, — исключение неосуществимого варианта; • с учетом фактора случайности: предпочтение отдается разнообразию. Этап 3. Оценка ситуации • по аналогии: — известна сама задача, — известна подзадача; • по величине расстояния до цели: — расстояние между двумя ситуациями, — количество усилий, затрачиваемых на поиск; • по математическому критерию: — составление перечня необходимых и/или достаточных для получе- ния данного решения характеристик, — численная оценочная функция, — верхние и нижние границы, — сумма стоимостей, выбранных подходящим способом; • по ожидаемому выигрышу (критерий, связанный с прошлым опытом): — простота ситуации, — коэффициент расширения поиска, — любой другой критерий (сложность задачи, затрачиваемое на ее решение время и т. д.). Этап 5. Выбор следующего шага • двигаться только вперед: — систематическое развитие последней порожденной ситуации; Ф выполнять все действия параллельно: — поочередное выполнение всех действий; Ф в качестве исходной выбирать самую многообещающую ситуацию: — в отношении оценочной функции, — в отношении незначительного числа входящих в нее действий; Ф идти на компромисс между: — глубиной поиска, — оценкой ситуации.
238 . ГЛАВА 5 Если в соответствии с табл. 5.1 в некоторой задаче на обна- ружение дерева с минимальным весом мы решаем на каждом шаге добавлять в искомое дерево по одному ребру, на первом этапе выбрать ребро с минимальной стоимостью, а на пятом этапе вернуться по дереву, следуя по пути его формирования, то тогда мы имеем дело с доказанным выше алгоритмом Кру- скаля. Однако возможны и другие варианты этого алгоритма, которые, как можно доказать, также приводят к решению: в про- цессе построения дерева (X, V) мы можем как прибавлять ребра, так и отбрасывать их; на первом этапе можно отказаться от сор- тировки ребер и взять первое попавшееся; на третьем этапе, если в V имеется цикл, мы исключаем из X принадлежащее этому цик- лу ребро, обладающее наибольшей стоимостью; на пятом этапе мы исходим из текущего дерева (X, V). Если учесть свойство связности, получим другие варианты. Даже если все эти алго-. ритмы сходятся, они не обязательно предполагают одно и то же число элементарных операций. Первый из них имеет слож- ность порядка О(п3); второй (без сортировки) фактически имеет такую же сложность; лучший из известных алгоритмов обладает сложностью О(п2). Симплекс-алгоритм также попадает в класс методов, опре- деляемых по табл. 5.1: действир соответствует включению в ба- зовую квадратную матрицу одного индекса и исключению из нее другого. На первом этапе мы выбираем индекс наиболь- шего градиента (тогда на втором этапе, чтобы сохранить при- надлежащее полиэдру решение, непременно появляется выход- ной индекс); на пятом этапе мы снова исходим из текущего решения. Отметим, что в общем случае при таком типе поиска нет никакой гарантии, что на пятом этапе не возникнет снова ситуа- ция, уже рассмотренная на одном из предыдущих шагов и дан- ный алгоритм даст эффективное решение, если оно существует. Оба замечания учитываются в более изысканной версии общего метода градиента, разработанной Хартом, Нильсоном и Рафаэ- лем (1968 и 1972) и известной под названием «алгоритм А*». 5.6. Алгоритм А * Всякой ситуации 5, полученной из исходной ситуации в ре- зультате определенной последовательности действий, придается численная оценка ад=ад + ад, где g(S)— реальная текущая стоимость ситуации S, h (S) — эв- ристическая функция, которая оценивает стоимость наилучшей
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 239 последовательности действий, начинающейся с 5 и заканчиваю- щейся решением. Следовательно, f (3) является мерой стоимости решений, «подчиненных» ситуации 3, т. е. решений, включаю- щих то же подмножество исходных действий, что и 3. Так, на- пример, когда каждому действию соответствует элементарная стоимость С(31,3г, а), представляющая собой стоимость пе- рехода из Si в Зг с помощью действия а, подсчитать функцию g(S) очень просто: она равна сумме стоимостей действий, кото- рые надо выполнить, чтобы дойти до данной точки от исходной ситуации 3. Так как стоимости предполагаются положитель- ными, функция g(S) будет строго аддитивной. Алгоритм А* Этап 0. Создать поисковый граф R — (E, А), в котором So<-E {исходная ситуация} f (30)<— О {в дальнейшем Е разделяется на два под- множества ситуаций; О (открытые) и F (закрытые)} 0*Зс; f<s. . ДЕЛАТЬ ДО ТЕХ ПОР ПОКА О =# 0: Этап 1. На множестве О выбрать ситуацию S, такую, что f (S) минимально: 0*0 — 3; F+-F + S . ЕСЛИ S является решением, ТО конец. Этап 2. ЕСЛИ S не является решением, ТО развертывать ситуацию 3 путем построения ситуаций 3; (O^j^ns), полученных из 3 путем выполнения воз- можных действий. Этап 3. Для каждой порожденной ситуации подсчитать f (Si): f(SA = g (St) 4- h (S,) {при h (Si) C h* (Sz)} Этап 4. Включить в О не входящие ни в О, ни в F ситуации вместе с соответствующими значениями оценочной функции; для тех St, которые уже входят в О или F, установить: /(SO«-min (f (S/) — старое, f (S() — новое); В случае принадлежности kF: сделать F<-F — Sf, 0<-0 4-Зг. КОНЕЦ ЦИКЛА "до тех пор пока" КОНЕЦ А*
240 ГЛАВА 5 В алгоритме А* в отношении функции h предъявляется сле- дующее основное свойство: если h*(S) является минимальной стоимостью всей последовательности действий, позволяющей получить решение, исходя из ситуации S, то h.(S) является ниж- ней границей /i*(S); кроме того, h.(S) должна быть положитель- ной. Таким образом, 0</z(S)</i‘ (S). Следовательно, функция f(S) является оценочной для оптималь- ной функции f*(S), определяемой выражением f(S) = g*(S) + A-(S), где f*(S)—наилучшая стоимость решений, проходящих через 5, £*(•$)—наилучшая стоимость пути от So до 5, h*(S) — наи- лучшая стоимость пути от S до цели. Теорема. Алгоритм А* приводит к цели за конечное чисЛо шагов, если существует конечная последовательность действий, которая ведет от исходной ситуации к решению. Доказательство. Сначала'заметим, что если число возмож: ных действий для каждой ситуации всегда конечно и число са- мих ситуаций тоже конечно, то алгоритм А* заведомо сходится. В самом деле, ведь каждая итерация вычеркивает из множе- ства О одну вершину и добавляет в него некоторое конечное число новых; при этом поисковый граф останется конечным, и его проверка потребует лишь конечного числа итераций. Итак, допустим, что поисковый граф бесконечен и условия нашей теоремы выполняются. Будем рассуждать от противного и предположим, что алгоритм А* работает неограниченно долго. Это возможно только при условии, что само множество О возра- стает ' бесконечно. Покажем, что В этом случае наименьшее из значений f(S) также оказалось бы бесконечным и тогда, следо- вательно, не могло бы существовать решения за конечное число шагов. Пусть для всякой ситуации S u*(S)— минимальное число действий, необходимых для того, чтобы попасть из So в S (алго- ритм А* не обязательно достигает стоимости v*(S), и поэтому она остается неизвестной). Несмотря на это, поскольку любая дуга имеет строго положительную стоимость, для оптимальной стоимости g*(S) мы получаем g-(S)>s-u-(S).. Тем самым реальное значение g(S), вычисляемое алгорит- мом А*, удовлетворяет неравенству g(S)^g'(S)>ev-(S).
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 241 Поскольку эвристическая функция h(S)^0, из этого также вы- текает, что f(S)^g(S)>ev'(S). Таким образом, если v* (Х)->- оо, f(S) также становится беско- нечным и никакой конечной последовательности действий не существует. Докажем теперь, что на каждом этапе работы алгоритма вплоть до его остановки в множестве О обязательно присут- ствует вершина S2, такая, что Л(Х2)<Г(Х0). Пусть существует конечная последовательность действий и си- туаций, ведущая от Хо к цели. Тогда S2— первая из входящих в эТу последовательность ситуаций, которая принадлежат также множеству О. Такая вершина S2 существует до тех пор, пока алгоритм Л* не завершит работу. Как и для любой другой си- туации, f(S2) = g(Sz)+. h(S2), но здесь g(S2) g* (Х2) (так как по определению S2 все предыдущие ситуации принадлежат F). Кроме того, по построению алгоритма А* выполняется неравен- ство /г(Х2) h*(S2). В конце концов мы получаем f (S2) < g' (S2) + h' (S2), t. e. f (Sz) < Г (S2). В частности, если исходная последовательность была оптималь- ной, то f(Sz)^f'(SQ). Итак, предположение о бесконечности f и тем самым о беско- нечности работы алгоритма А* оказалось противоречивым (при условии, что существует решение с конечным расстоянием даже для локально бесконечных графов). Кроме того, найденное ре- шение обладает оптимальной стоимостью. Если бы алгоритм Л* остановился в узле Х3, для которого f(X3) > f*(So), то в соответ- ствии с приведенным выше доказательством получилось бы, что существует узел Х2, такой, что f(S2)^f*(So), и, следовательно, на этапе 1 был бы выбран не узел Хз, а узел Sz- В самом деле, любой узел 5, полученный в результате работы алгоритма Л*, имеет стоимость f (X), которая не превышает f*(So), поскольку в противном случае X либо был бы узлом-решением, либо не был бы выбран. Конечно, значения функции f должны быть как можно бли- же к значениям f*(So), оставаясь при этом меньше их. Алгоритм будет тем эффективнее, чем больше значение h(S). Действи- тельно, легко доказать, что если h2(S) > hi(S), то любая вер- шина, полученная с помощью функции h2, может быть получена
242 " ГЛАВА 5 и с помощью /ii. Если функция h обладает свойством монотонно- сти по отношению к локальным стоимостям, т. е. если A(S2)<A(S1) + C(SI, S2, а), мы можем доказать, что для каждой полученной вершины ал- горитм А* уже построил оптимальную последовательность, за- канчивающуюся в этой вершине. При этом последовательность значений функции f(S) для полученных вершин может быть только неубывающей, что обес- печивает быструю сходимость алгоритма. Последний случай является вариантом алгоритма Моора — Дейкстры (1957) поиска кратчайшего пути на графе (разд. 4.2). Несомненно, большим недостатком этого алгоритма является его поведение при отсутствии решения поставленной задачи. Пример применения алгоритма А* Рассмотрим знаменитую головоломку, которую изобрел ге- ниальный Сэм Лойд, — игру в 8. На 9-клеточном поле перейти от конфигурации 2 8 3 1 2 3 So — 1 6 4 к конфигурации Sj = 8 □ 4 7 □ 5 7 6 5. (Символ □ обозначает пустую клетку: за один ход на ее место можно поставить фишку, стоящую в любой клетке, соседней по горизонтали или вертикали.) Число ходов должно быть мини- мальным. Выберем в качестве оценочных функций: g(S) — число ходов от So до Sb и h (S) — число фишек, расположенных не на своих местах. Итак, мы имеем 1) g (S) g' (S) (по построению g), . ' 2) h(S)^h* (S) (по условию задачи). Монотонность А ничем не гарантирована. На рис. 5.7 представ- лено поисковое дерево, полученное с помощью алгоритма А*, причем f (S) — g (S) + ft (S); справа от каждой ситуации приво- дится пара значений — g(S) и A(S). Было предложено несколько вариантов этого алгоритма. Так, наиболее общая форма^функций f(S) была определена в работе (Pohl, 1970): <... f (S) = (I — a) g (S) А~ где а — действительная константа, выбираемая на отрезке от 0 до 1. Таким образом здесь указывается определенный баланс
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 243 2 1 2 1 7 8 6 □ 3 4 - 5 (0.41 з 8 6 7 2 1 7 2 1 □ 3 4 5 [1.5J 5 П .33 2 1 7 8 □ 6 г з 2 8 3 5 7 12.4} 6 5 12.3} 8 6 3 8 6 2 1 7 1 7 □ 4 5 [3.4] 2 [3.2] [4.1] 2 8 [5.2] Рис. 5.7. Алгоритм А* 2 8 6 2 8 6 3 4 5 3 4 5 3 4 5 г □ [5.0] для игры в 8: 8 6 5 3 4 0.5] 8 1 8 3 4 5 [2.3] 2 7 8 1 6 3 4 5 [3.4] 8 1 6 3 4 5 [3.3J дерево поиска в оценке между бесспорной составляющей g(S) и составляю- щей эвристической h(S). Алгоритму А* соответствует значение а = 1/2. Случай а=1—чисто градиентный метод. Другой крайний случай — а = 0— ведет к методу полного перебора. В действительности коэффициент а не обязательно должен оставаться постоянным в течение всего поиска: можно умень- шать. его значение по мере нашего продвижения вперед, когда эвристическая оценка теряет свою значимость; для некоторой конкретной задачи наилучшие значения а могут быть приняты апостериори для минимизации числа получаемых ситуаций с по- мощью определенной программы. Наконец, поиск может идти в двух направлениях: вперед от исходной ситуации, а также од- новременно от целевой ситуации через инверсию возможных действий; поиск останавливается, когда одна и та же ситуация встречается в обоих поисковых графах. Критические замечания. Алгоритм А*, как и другие гради- ентные алгоритмы, рассмотренное^ выданной главе, является строго численным, поэтому исключается формальный анализ каждой ситуации. Алгоритм основан на оценке стоимости неко- торого решения. Но существует большое число задач, для кото- рых эта оценка не имеет смысла, потому что, например, в них необходимо найти единственное осуществимое решение. Он не
244 ГЛАВА 5 дает способа подсчета интеграла, решения системы уравнений или установления медицинского диагноза. Нельзя заранее обна- ружить тупики и петли. Так, если в игре в 8 (рис. 5.7) заменить верхний ряд исходной ситуации на (823), то чтобы доказать, что эта задача не имеет решения, алгоритм А* должен будет исследовать абсолютно все возможные случаи и поэтому ока- зывается бесполезным. Следовательно, рассматриваемый тип ал- горитма может использоваться только при решении задач, воз- никающих в малоизвестных пространствах, т. е. там, где мало информации (плохое знание контекста, недостаток опыта, отсут- ствие формальных аргументов). Задача о взвешивании На обычных рычажных весах найти из двенадцати шариков один, не совпадающий по весу ни с одним из одиннадцати ос- тавшихся (мы не знаем, существует ли такой шарик и является ли он легче или тяжелее). Число взвешиваний должно быть ми- нимальным. Эта задача довольно известна, но нас сейчас интересует, каким именно образом приступить к ее решению. Конечно, мы можем сравнивать шарики на весах попарно. Поскольку от дру- гих отличается не более чем один шарик, мы может быть уве- рены в том, что получим ответ не более чем за 12 взвешиваний (11 сравнений шарика № 1 со всеми остальными +1 определе- ние характера различия). Если, наоборот, мы решим начать со взвешивания “шесть против шести”, то мы, очевидно, ничего не узнаем. Таким образом, первый вопрос, который возникает в данной ситуации, как определить число шариков в каждой чаш- ке весов при первом взвешивании (естественно, рассматривают- ся только взвешивания равного числа шариков). Ответ на этот вопрос можно получить, определив оценочную функцию и ее градиент. Каждое взвешивание должно увеличи- вать имеющуюся информацию о множестве шариков. Следова- тельно, речь идет о том, чтобы сделать как можно меньшим ма- тематическое ожидание числа неизвестных шариков (здесь имеется в виду вероятностное ожидание, так как до последнего шага мы ни в чем не уверены). Итак, если мы начинаем с b шариков (26 п) на каждой чашке, то коромысло либо по- кажет равенство (и тогда останется (12—26) шариков с неиз- вестным весом), либо наклонится в одну сторону (и тогда (12 — 26) шариков обязательно имеют стандартный вес, а из взвешенных шариков о шариков являются более легкими либо более тяжелыми, причем эти два случая, разумеется, исключа- чают друг друга). Допустим, что 6 шариков обладают неизвест- ным весом.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 245 В качестве оценочной функции f(b), вычисляющей, насколько выгодно начать взвешивание с 26 шариков, естественно выбрать в каждом случае число шариков неизвестного веса, умноженное на вероятность появления этого случая. Поскольку существует Ст способов выбора k объектов из т, вероятность получить ра- венство составляет СпДиг, так как для этого мы должны были бы оставить нестандартный шарик, а выборку производить из оставшихся 11 шариков. Вероятность отклонения коромысла в ту или иную сторону является дополнительной к 1 по сравне- нию с предыдущей. Так как Cm-i = ((m— 1г)1т)Ст, оценочная функция f.(b) имеет вид f (b) =а^-(12 - 2Ь) + (1 - -^9 b = = -Ь[(12 - 26)2 + 262]. Минимум функции можно получить путем дифференцирова- ния, так как f(±oo)= оо; следовательно, b должно удовлетво- рять уравнению —2-2(12 — 26)+46 = О, т. е. 6 = 4 (в общем случае, если имеется п шариков, 6 = п/3). Конечно, данное значение лишь указывает "на наилучший путь к решению, не использующий интуицию. Следуя по нему, легко получить решение за три взвешивания. Интересно, что эти взвешивания можно задать заранее независимо от резуль- татов каждого из них. Обозначив шарики буквами от А до L, мы получаем, например, следующую схему: 1-я чашка 2-я чашка 1) А В С D Е F О Н 2) А В С Е D I J К . 3) В Е G I С Н К L Она позволяет различать 12-2 = 24 возможности. В самом деле, легко доказать, что 3 является минимальным числом взвешиваний. Поскольку в результате каждого звеши- вания возникают, три возможности, два взвешивания позволяют различить только 3-3 = 9 случаев, а этого недостаточно. Сле- довательно, метод градиента привел здесь к оптимуму. 5.7. Неявный перебор с распространением ограничений Решим методом Люка одну классическую задачу, условие которой существенно отличается от условия задачи о лабирин- те: расположить на шахматной доске размером п\п наиболь-
246 ГЛАВА 5 шее возможное число ферзей так, чтобы никакие два ферзя не попадали под удар. Поскольку известно, что ферзь может бить по своей гори- зонтали, своей вертикали и обеим диагоналям, очевидно, на та- кой шахматной доске можно расположить не более п ферзей. Но существует ли такое расположение в действительности? 5.7.1. Первый способ решения Рассмотрим горизонтали по очереди. Пусть имеется доска размером 4X4. Поместим первого ферзя в первой клетке пер- вой горизонтали (рис. 5.8). Очевидно, что в этом случае с учетом заданных ограничений ни в одном решении второй ферзь нё может стоять на пересече- C1 С2 СЗ C4 С1 С2 СЗ С4 L1 □ 11 □ L2 L2 □ L3 L3 L4 L4 Рис. 5.8. Задача о размещении фер- зей на шахматной доске. Рис. 5.9. ферзя. Выбор ПОЛЯ Для вторе го нии первой вертикали и второй горизонтали (иначе одно из ус- ловий 7С(х) оказалось бы невыполненным), а также второй вертикали и второй горизонтали. Для второй горизонтали пер- вым не приводящим сразу же в тупик вариантом является раз- мещение второго ферзя в третьей вертикали (рис. 5.9). Выбрав эти два варианта, мы не мо- жем поместить третьего ферзя на третьей горизонтали: на пе- ресечении с вертикалями 1 и 3 из-за первого ферзя, а на пе- ресечении с вертикалями 2 и 4 — из-за второго. Это частич- ное решение, при котором уда- Рис. 5.10. Второй вариант .выбора поля для второго ферзя вГ ‘задаче! о'четырех ферзях. ; Ч'змн ется разместить лишь двух ферзей, не может составить часть полного решения, по- v скольку мы не сумеем найти третьей горизонтали. Следовательно, мы место для ферзя на должны пересмотреть допрос о размещении второго ферзя. По- ставим его на четвертую вертикаль (рис. 5.10) .
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 247 Поскольку размещение третьего ферзя на переселении с первой вертикалью нарушает условия К(х), мы поставим его на вторую вертикаль. Размещение четвертого ферзя на верти- калях 1, 2, 3 или 4 вступает в- противоречие с заданными ус- ловиями. Следовательно, нужно вернуться, к последнему развет- влению, когда мы выбирали место для второго ферзя.'Но при С1 С2 СЗ С4 и П L2 |~| L3 ' L4 Рис. 5.11. Третий вариант размеще- ния двух первых ферзей. С1 С2 СЗ С4 L1 □ L2 О L3 □ L4 о Рис. 5.12. Решейие задачи о четырех ферзях. этом не осталось ни Одной вертикали, на которой можно было бы его'разместить. Следовательно, на самом деле нужно вер- нуться к вопросу о размещении первого ферзя. Поставим его на пересечении первой горизонтали со второй вертикалью. Раз- мещение второго ферзя на пересечении с первой, второй и третьей вертикалями невозможно; поэтому поставим его на четвертую вертикаль (рис. 5.11). На третьей горизонтали условиям удовлетворяет первая клетка, а иЗ-за невозможности расположить четвертого ферзя на 1 и 2 вертикалях место для него остается только на четвер- той вертикали (рис. 5.12). Итак, одно решение нашей задачи мы получили. На самом деле мы получили их все. Действительно, ведь мы рассмотрели все решения, в которых первый ферзь стоит на первой или вто- рой вертикали, а другие решения, соответствующие размеще- нию этого ферзя на третьей или четвертой вертикали, выводят- ся из двух1 предыдущих благодаря наличию симметрии по вертикальной Оси. Таким образом, в целом на доске разме- ром 4 X 4 для нашей задачи существуют только два реше- ния. Чтобы распространить этот метод на решение других задач, введем одно обозначение. Для каждой; горизонтали, т. е. для каждого ферзя, у нас заранее имеются п вариантов размещен ния. Каждый из них соответствует одной из вертикалей шах- матной доски (в данном случае h == 4). Итак, обозначим каждое частичное решение, содержащее k ферзей, которые расположены на Л первых горизонталях, через 1 •
248 ГДАВА 5 вектор и: v = (yi, У2....yk), ' ' ' где yi обозначает номер вертикали, на которой помещен 1-й ферзь. Поиск, который мы вели, фактически состоит в прохож- дении по дереву в соответствии со схемой, изображенной на рис. 5.13. . Сначала мы шли по этому дереву в глубину. Мы спускались все ниже и ниже, причем двигались все время слева направо, Рис. 5.13. Дерево поиска для случая неявного перебора. до тех пор, пока нам не попадался какой-либо тупик. Отметим, что одно и то же дерево, может быть использовано как для по- лучения одного решения (тогда мы останавливаемся, как толь- ко оно будет найдено), так и для получения всех возможных решений. Каждый раз, когда пространство поиска X будет иметь структуру шахматной доски, для решения Такой задачи (она Имеет вид [х? х е X, К(х)]) мы сможем вести поиск по дереву данного типа. Если говорить более точно, то использованный нами характер структуры шахматной доски, обусловливающий введенное векторное обозначение и тип поиска, обладает свой- ствами декартова, произведения. Поскольку мы рассматривали шахматную доску кайн6бъёдй’нёнйё п одинаковых строк (гори- зонталей), пространство X является ничем иным, как произ-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 249 ведением ... ХК„, в котором Yi обозначает i-ю горизонталь шахматной доски, включающую п клеток. Тогда неявный перебор сводится к вы- полнению следующего алгоритма: -* Общий алгоритм неявного перебора: ENUM Enum . . , {Принцип: мы перечисляем все элементы множества X; X является декартовым произведением множеств Yit Множества Yt выбираются в естественном порядке от 1 До п} г<-1; Подсчитать Уг. ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА i >Т Проверить элементы множества X ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА У^ пустое мно- L жество Л Проверить все элементы мно- жества У, Выбрать из множества Y{ некоторый элемент рг; {чтобы больше не рассматривать ту же ситуацию, мы исключаем выбранный элемент из У,} ЕСЛИ i<п ТО В соответствии с К(х) подсчитать У/+1 z-< i 1 {Продвигаемся дальше по X} ' ' ЕСЛИ НЕТ напечатать решение г<1,г/2> КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по Уг {Возврат назад} ,м ; ) А I - i*—i—1 ... 3 атнцоао ’КОНЕЦ ЦИКЛА по г /хеш ипу КОНЕЦ Enum Ф-' ' -Д ; . - t... . ► .,‘.’8 ’. ‘ В задаче о восьми ферзях эта схема принимает вид, описанный .ниже. ’ ' '
ГЛАВА 5 250 Восемь ферзей. Первый вариант < Шахматная доска является декартовым произведением из 8 строк У, (z меняется от 1 до 8). Поиск ведется по I, возрастаю- щему от 1 до 8. В произвольный момент времени на любой го- ризонтали col (i) обозначает текущий элемент У,-, т. е. первую вертикаль: {еще не проверенная вертикаль по z-й горизонтали} /«-1; {показатель горизонтали} colli)-*— 1 ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА z > 1 ’Проверка: ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА [col (i) 8] col (i) col (z) +1 Проверка на совместимость с предшествующими размещениями: ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА zpe=[l, z —1] ЕСЛИ ферзь (z, colfi)) находится под ударом ферзя (zp> col (zp)) ТО вернуться к узлу ’Проверка {частичная неудача: проверяется следующая вертикаль} КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по 1Р ЕСЛИ z < 8 ТО col (I + z) <— 0 {частичный успех} i +i + 1 ’ ЕСЛИ НЕТ напечатать решение col (z) {полный успех} КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по col {Возврат назад} z *- z — 1 КОНЕЦ ЦИКЛА по z КОНЕЦ задачи о восьми ферзях Теперь мы улучшим этот алгоритм двумя способами.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 251 Импликации, связанные с выбором места для ферзя Среди фигурирующих во множестве К(х) условий Л/(х), где j = 1, 2, ..., т, могут быть условия, содержащие неболь- шое число неизвестных, т. е. достаточно простые для того, что- бы знание первых координат у\, у2, ..., у к уже позволило точ- но вывести необходимую информацию о выполненности/невы- полненности К(х) при фиксированном значении переменных (уь У2, •••, Уь). Эта информация касается различных возмож- ных значений для тех неизвестных, которым значения еще не присваивались (т. е. для у,, где i k). Так, в задаче о четырех ферзях выбор значения уг = 1 вле- чет за собой следующую информацию: у2 3, у3¥= 1, Уз ¥= 3, У4 #= 1 и 1/4 #= 4. Выбор значения у2 — 3, из которого вытекает, что у3 =# 2 и уз #= 4, заводит в тупик, поскольку, объединив импликации, мы видим, что для размещения четвертого ферзя не осталось никаких возможностей. Именно благодаря этим со- ображениям возникает вторая идея о том, как улучшить метод перебора. 5.7.2. Второй способ решения Чтобы избежать сложных тестов, нужно постепенно вводить в рассмотрение эти импликации и, выбрав вариант размещения очередного ферзя, выявлять возможные значения k-й перемен- ной из области ее определения У. Кроме того, мы должны иметь возможность вернуться назад. Для этого каждому множеству удобно поставить в соответствие вектор, в котором одновремен- но перечисляются допустимые и недопустимые значения, причем при последних указывается номер ферзя, являющегося причиной запрета. Обозначим через Lk вектор такого типа, содержащий перечень возможностей выбора для множества У*. Вначале для всех k Lk+-0. На последующих этапах запись £*(/)= О озна- чает, что j — одно из еще допустимых значений для у*; запись Lj(/)=i, где i положительно, означает недопустимость значе- ния / для множества Yk с указанием на первый по счету номер ферзя, являющийся причиной запрета. Таким образом, в задаче о . четырех ферзях мы получаем последова- тельно k=\, L1 = L2 = L3==L4 = (O, 0, 0, 0), У1=1. т
252 ГЛАВА 5 Импликации, связанные с первым выбором: Li = (l, 1, 1, 1), Л2 = (1, 1, 0, 0), А3 = (1, 0, 1, 0), L4 = (l, 0, 0, 1). Тогда #2 = 3 (непосредственно вытекает из того, что 1 и 2 за- прещены из-за L2). Импликации, связанные со вторым выбором: L2 = (l, 1, 2, 2), А3 = (1, 2, 1, 2), Л4 = (1, 0, 2, 1). На данном этапе вектор L указывает на отсутствие возможно- стей для размещения третьего ферзя. Нужно вернуться назад. Это несложно сделать: мы возвращаемся к моменту размеще- ния второго ферзя (при этом £2=(1, 1, 1, 0)), одновременно уничтожая импликации, связанные с предыдущим вариантом выбора: Z3 = (l, 0, 1, 0), 14 = (1, 0, 0, 1). Заметим, что мы записываем L2 =(1, 1, 1, 0), так как мы те- перь знаем, что все происходит так же, как если бы значение #2 = 3 было запрещено вследствие размещения первого ферзя. Следовать такому алгоритму очень легко: проверьте это, на- пример, на шахматной доске, закрывая “запрещенные” клетки жетончиками с номерами. Векторам L в этом случае будут со- ответствовать горизонтали, в которых разрешенные клетки сво- бодны, а на запрещенных лежат жетончики. Теперь алгоритм проверки метода неявного перебора при- нимает описанный ниже вид. Восемь ферзей. Второй вариант Если в первом варианте мы проверяли выбранные значения на совместимость уже после того, как выбор был сделан, то здесь используются априорные импликации: как только выби- рается место для какого-либо ферзя, все свободные, но находя- щиеся под ударом клетки становятся запрещенными. В векто-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 253 ре возможных значений они отмечаются номером соответствую- щего ферзя. V« е [1,8],Vu е [1,8] lib (и, v)«-0 {все клетки свободны} Z«-l ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА i 1 ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА coZ(Z)<8 col (Z) — первый элемент множества такой, что lib (Z, col (/)) = О col (Z) <— первый нуль из lib(i,j)', если их нет, coZ(z) = 9 /<- col(i) {проверка на совместимость заменена действенными запретами} lib (Z, /) «- Z ПОВТОРЯТЬ ДЛЯ Zse[Z+ 1, 8] ПОВТОРЯТЬ ДЛЯ i е[1, 8] ЕСЛИ lib Ik, I) = О ТО ЕСЛИ клетка Ik, I) находится под ударом ферзя, стоящего в клетке (Z, /), ТО lib Ik, l)^i КОНЕЦ ЦИКЛА по I КОНЕЦ ЦИКЛА ПО k ЕСЛИ Z<8 ТО Z<—Z+ 1 {частичный успех} ЕСЛИ НЕТ напечатать решение [coZ(0] КОНЕЦ ЦИКЛА по col {Возврат назад} ПОВТОРЯТЬ ДЛЯ /ге[г+ 1, 8] {Восстановить свободные клетки} ПОВТОРЯТЬ ДЛЯ Z е= [1, 8] ЕСЛИ lib Ik, l) = i ТО lib (.k, Z)<-0 КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по Z КОНЕЦ ЦИКЛА по k lib{i, col (i))^ I—1 и, , s Z *—Z — 1 {теперь клетка It, colli)) запрещена из-за (Z — 1) ферзя} КОНЕЦ ЦИКЛА по Z
254 ГЛАВА 5 Теперь для решения нашей задачи мы имеем способ, очень похожий на метод Люка прохождения лабиринта (рис. 5.14). Выбор порядка расстановки ферзей После первой модификации метода оказалось, что приня- тый порядок расстановки ферзей, при котором множества У], Y2....Yn рассматриваются последовательно в естественном порядке, не обязательно является оптимальным. Очевидно, воз- можно, что некоторое множество У,- (i > k) не будет содержать ни одного подходящего элемента, хотя в соответствии с приве- денным выше алгоритмом мы должны продолжать перебор до уровня k. Если вектор Li содержит только один нуль, то, каким бы ни было значение I, надо приравнять значение yt индексу этого нуля и вывести из полученного значения новые импликации. Кроме того, предлагаемая модификация метода имеет обяза- тельное следствие: если степень свободы У* (т. е. число нулей в Lk) равняется не 1, а 2, то множество У* является хорошим кандидатом для продолжения поиска. Итак, можно сказать, что подобный метод перебора наводит на мысль о следующем способе решения. 5.7.3. Третий способ решения Ферзи надо размещать в горизонталях с наименьшими сте- пенями свободы. Речь идет о том, чтобы на каждом этапе рас- сматривать такое множество У/, в котором осталось наимень- шее число вариантов размещения ферзей. Окончательный вид алгоритма приводится ниже. Свободные клетки в каждом множестве У,-, как и прежде, отмечаются в векторах Lt. Поскольку по определению порядок размещения ферзей ужё Уе является естественным (1, 2,..... п), для запоминания реального порядка вводится специальный век- тор выбора ферзей. В ректоре V записываются особые элемен- ты уь, которые были выбраны в каждом из множеств У*. Кроме того, здесь учитываются все вынужденные значения перемен-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 255 ных, т. е. все ситуации, в которых при некотором, заданном k запрещены все у, за исключением одного. Таким образом, вы- бор одного местоположения может повлечь за собой цепочку из нескольких вынужденных значений. Все эти значения запоми- наются в специальном стеке, который представляет собой век- тор, пустой в начале работы, постепенно заполняемый индек- сами всех множеств Yu, для которых мы запоминаем вынужден- ные значения. Степень данного стека, т. е. число входящих в него элементов, обозначается переменной т. И наконец, при возврате назад свободные клетки восстанавливаются, и стек опустошается именно до той степени, которой он обладал перед выбором мёстоположения последнего ферзя. Восемь ферзей. Третий вариант По сравнению со вторым вариантом главный принцип сО’ стоит в том, чтобы рассматривать горизонтали шахматной дреки не в «естественном» порядке, а каждый раз в зависимо- сти от того, какая горизонталь обладает наименьшей степенью свободы, т. е. в какой из горизонталей содержится наименьшее число свободных клеток. п+-0 {сколько раз был осуществлен выбор местоположения} 0 {число размещенных ферзей} V /е [1,8], co/(z)«—О {выбранная вертикаль на горизонтали 1} V/e[l, 8], lib(i, j)+-0 {обнуление свободных клеток} z *- 1 ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА 1 {новая горизонталь} ««-индекс горизонтали, содержащей наименьшее число нулей {обозначим это число через nz(ii)} ЕСЛИ nz (zz) 1 ТО ЕСЛИ nz (z'z) =#= 1 ТО z«-z'H- 1, ch (i)<-ii КОНЕЦ УСЛОВИЯ {новый выбор местоположения} т 1 {размещен еще один ферзь} col (И)«- первый нуль из числа3££рбодрь1Х клеток lib (и,' j) {иногда единственный}:gев lib (И, col («)) *-1 {импликации, связанные с данным выбором местоположения}
256 ГЛАВА 5 ПОВТОРЯТЬ ДЛЯ k(=[i+ 1, 8] ЕСЛИ col(k) = 0 ТО ПОВТОРЯТЬ ДЛЯ Ze= [1, 8] ЕСЛИ lib (k, I) = О ТО ЕСЛИ клетка (k, I) находится под ударом ферзя, стоящего в клетке (Z, j) ТО lib(k, l)<—i {отмечаем при последнем выборе местоположения) КОНЕЦ УСЛОВИЯ КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по I КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по k ЕСЛИ т = 8 ТО напечатать решение [col (г)]; КОНЕЦ УСЛОВИЯ ЕСЛИ НЕТ {Возврат назад: по крайней мере на одной горизонтали нет ни одного нуля) ПОВТОРЯТЬ ДЛЯ &€=[/ +1, 8] ЕСЛИ coZ(fe) = 0 ТО ПОВТОРЯТЬ ДЛЯ Z е= [1, 8] ЕСЛИ lib(k, l) = i ТО lib(k, Z)«-0 КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по Z КОНЕЦ УСЛОВИЯ СОНЕЦ ЦИКЛА по k lib (Z, col (Z)) «- Z — 1; i i — I КОНЕЦ УСЛОВИЯ КОНЕЦ ЦИКЛА по Z КОНЕЦ третьего варианта алгоритма для задачи о восьми фер- зях. Последнинй вариант алгоритма позволяет улучшить каче- ство решения настолько, что случай обычной шахматной доски может быть обработан вручную целиком всего за несколько ча- сов. Продемонстрируем, с какой скоростью поисковое простран- ство может быть проверено с помощью данного метода. Во-пер- вых, отметим, что совершенно не обязательно начинать рассмо- трение с первой горизонтали и первого ферзя. Итак, начнем, например, с четвертой горизонтали. Допустим, что на некотором этапе поиска мы решаем, можно ли расположить первого фер- зя на пересечении вертикали с и горизонтали IV, а второго —
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 257 Рис. 5.15а. Задача о восьми ферзях. на пересечении вертикали f и горизонтали III: уf, с, ., ., .,.). На рис. 5.15а представлена шахматная доска, на которой отмечены соответствующие запреты и импликации. Значения степеней свободы для оставшихся горизонталей соответственно равны 4, 3, затем 3, 4, 5 и, наконец, 4. Для вертикалей степени свободы равны: 3, 4, *, 4, 4, *, 4, 4. Таким образом, одним из трех рядов, обладающих наименьшей степенью свободы, яв- ляется горизонталь V; место для третьего ферзя мы будем искать именно на ней. Если мы решим поместить третьего фер- зя в вертикали а (в первой свободной клетке данной горизон- тали), наша шахматная доска примет вид, представленный на рис. 5.156. Для четвертого ферзя можно было бы поискать место на второй горизонтали, в которой насчитываются лишь две сво- бодные клетки. Однако, чтобы лучше учесть импликации, мы должны рассматривать и вертикали: в вертикалях d и е мы также располагаем только двумя свободными местами. В каж- дой вертикали, как и в каждой горизонтали, может находиться только один ферзь. (Здесь на частном случае задачи о восьми ферзях мы видим, как проявляется косвенное воздействие ус- ловий 7((х), которые позволяют выдвигать разумные предпо- ложения.) Итак, одна из свободных клеток на вертикали d — клетка (VII, d)—заставляет нас вернуться назад, поскольку она на- лагает запрет сразу на обе оставшиеся клетки в вертикали е. Сле- довательно, при данном расположении размещение четвертого 9 Ж.-Л- Лорьер
258 ГЛАВА 5 ферзя является вынужденным. Так как при этом блокируется одна из двух свободных клеток в вертикали е, размещение Рис. 5.156. Задача о восьми ферзях (продолжение). а b с d е f, g h 3 о> 1 2 3 1 ® 2 1 ® 1 3 1 2 2 4 2 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 3 1 1 1 3 2 3 2 1 3 1 Т| 1 2 4 4 3 2 1 4 4 1 6 ® 2 4 1 3 ® 2 1 5 Рис. 5.16. Полное решение. Цифры в кружках обозначают местоположение i-ro ферзя; цифры в квадратиках —вынуж- денное местоположение /-го ферзя. пятого ферзя в клетке (VIII, е) также неизбежно. Клетка (II, Ь) уже была обязательной, а клетка (VII, h) становится таковой. Эти Два вынужденных значения неизбежно приводят
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 259 к размещению следующего ферзя в клетке (I, g)i такое поло- жение является единственным еще разрешенным и совмести- мым со всеми остальными. Поскольку этот ферзь — восьмой, мы получили одно из двенадцати основных решений данной задачи (рис. 5.16). Сохраняя только показатели вертикалей при естественном порядке горизонталей, мы можем сокращенно обозначить это решение как (g, b, f, с, a, d, h, е). Данное решение определяется только выбором местоположения для первых четырех ферзей, поэтому, если мы хотим получить все решения нашей задачи, нужно вернуться к каждому из этих выборов по очереди. Вернувшись вначале к выбору местоположения третьего фер- зя, мы запретим занимать клетку (V, а), отметив ее цифрой 2, поскольку теперь эта клетка связана с выбранным вариантом размещения второго ферзя. Поместим ферзя в следующую сво- бодную клетку (V, е) . Отметив запреты, мы увидим, что на этой стадии клетка (II, d) является обязательной, а в восьмой горизонтали при таких условиях нам не подойдет ни одна клет- ка. Эта ситуация показана на рис. 5.17. Вернемся еще раз назад. Последний вариант размещения третьего ферзя при фиксированном положении ферзей 1 и 2 — клетка (V, g). В этом случае мы получаем несколько горизон- талей со степенью свободы, равной 2. Если поместить ферзя 4 на горизонтали II в клетке (II, Ь), то размещение ферзя 5 в 9*
260 ГЛАВА 5 клетке (VII, а) является вынужденным, но эти два варианта закрывают все возможности в последней вертикали. Выбор другой свободной клетки на горизонтали II—(II, h) влечет за собой такие размещения- (VI, 6), (I, а) и (VII, d), но тогда все остальные клетки уже оказываются под запретом, и мы не мо- жем получить решения (рис. 5.18). Итак, мы доказали, что после осуществления двух первых выборов (VI, с) и (III, f) существует единственное решение, и оно соответствует частич- ному решению у = (., ., f, с, ., ., .). Данная конфигурация была выбрана произвольно. Исходя из этого, мы можем оце- нить усилия, необходимые для построения всех решений. Как только мы фиксируем положение первого ферзя, для второго — если он стоит на соседней горизонтали — остается пять возмож- ностей (кооме случаев, когда цервый стоит в одной из крайних клеток: тогда для второго существует шесть вариантов раз- мещения). Учитывая симметрию шахматной доски (а следова- тельно, и симметричность решений по отношению к вертикаль- ной оси симметрии), мы можем рассматривать только те четыре случая, когда первый ферзь стоит слева от данной оси. Так что в конечном счете нам придется вести поиск, примерно эквивалентный тому, который мы провели для конфигурации (IV, с), (III, f); число вариантов равно 6 + 5 + 5 + 5 = 21. Следует отметить, что это число невелико. Итак, при удачных критериях выбора и эффективном управлении импликациями и возвратами для вывода о пригодности данной конфигурации
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 261 практически достаточно выбрать местоположение для трех ферзей. Для размещения третьего ферзя имеются в среднем только три возможности; следовательно, общее число ситуаций будет составлять 3-21=63 (почти каждая из них дает вариант ре- шения), в то время как вначале речь шла о числе перестановок. Мы перешли от 8! = 40 320 случаев к 63, т. е. выиграли в 640 раз. Если мы захотим сохранить только основные решения, тогда в конце нужно рассортировать полученное множество и отбросить все решения, которые могут быть сведены к некото- рым другим за счет горизонтальной симметрии или вращения. Тогда, наконец, останется двенадцать решений, среди которых полностью симметричным является только первое. Алгоритм, к которому мы в конце концов пришли, осущест- вляет неявный перебор поискового пространства Y, которое разбито на составляющие Уь Уг, ., У*, .... Уп; выбор на множествах У,- происходит в нефиксированном заранее порядке. Кроме того, данный алгоритм интересен тем, что он имеет об- щий характер и пригоден для решения любой комбинаторной задачи: в самом деле, специфика условия задачи о восьми фер- зях не учитывалась нигде. Предложенная общая схема остается верной, если мы пе- рейдем к задачам, не похожим на задачу о ферзях: оптималь- ной раскраске графа, задаче о коммивояжере, автоматизации рассуждений и игре в шахматы. 5.8. Динамическое программирование Динамическое программирование—один из методов реше- ния задач оптимизации. Слово “программирование” здесь не имеет того значения, которое свойственно ему в информатике: в данном случае оно является производным от термина pro- gramme mathematique, обозначающего систему неравенств, ко- торые нужно решить. Основная идея динамического программи- рования состоит в том, что неизвестные соответствующей системы рассматриваются как переменные решения, значения для которых надо выбирать последовательно. Если при этом два различных набора решений приводят к одной и той же ситуа- ции, сохраняется только наилучший из них. Все подходящие значения каждой переменной изучаются параллельно. Следова- тельно, данный процесс относится к типу предварительного не- явного перебора “в ширину”. Пример 1. Директор фабрики должен за три ближайшие ме- сяца выполнить заказ на четыре комплекта одинаковой мебели.
262 ГЛАВА 5 Учитывая стоимость наладки станков, зарплату сотрудников и стоимость хранения изделий, он подсчитывает суммарную стои- мость Xj комплектов мебели (О х, =+ 4) в течение месяца j (1 + / + 3) для всех возможных пар (/, х;). Таким образом, он составляет следующую таблицу: Порядковый номер месяца Число комплектов 0 1 2 3 4 1 10 12 15 20 2 10 14 16 19 23 3 10 10 17 19 — Он старается сделать сумму стоимостей c(i, /) за три месяца минимальной, добиваясь при этом выполнения заказа, т. е. при УСЛОВИИ Х1 + х2 + х3 = 4. По сравнению с полным перебором поиск получается более эффективным благодаря пошаговому изучению (т. е. изучению месяц за месяцем): в конце первого месяца стоимость четырех возможных ситуаций (0, 1, 2 и 3 сделанных комплекта) может быть вычислена непосредственно из первой строки таблицы. Аналогично сумма стоимостей в двух первых строках показы- вает стоимость каждой из пяти возможных в конце второго ме- сяца ситуаций. При этом очевидно, что независимо от решений, которые будут приняты в дальнейшем, для каждой из них нужно рассматривать только минимальную стоимость. Итак, стоимость s комплектов, сделанных в конце второго месяца, составляет min стоимость (у в конце месяца 1) + стоимость (($ — у) в конце месяца 2) Таким образом, до конца второго месяца мы получаем стоимость (з = 0) = 10 + 10 = 20 (1) стоимость (s = 1) = min [1210, 10+ 14] = 22 (2) стоимость (s = 2) = min [15+10, 12+13, 10+ 16] = 25 (3) стоимость (s = 3) = min [20 + 10, 15+ 14, 12+ 16, 10+ 19] = = 28 (4) стоимость (s = 4) = min [20 + 14, 15+ 16, 12 + 19, 10 + 23] = = 31 (5)
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 263 Рис. 5.19, Граф решений в динамическом программировании. Чтобы общее решение было оптимальным, нужно, чтобы любое подмножество решений было оптимальным. Это утверж- дение, которое мы только что использовали, мы уточним в даль- нейшем. Поскольку общее количество сделанной к концу трех меся- цев мебели является заранее заданным, решение получается за счет добавления полученных значений к каждой из четырех единиц: стоимость (s = 4 в конце) = = min [31 + Ю, 28+ 12, 25+ 17, 22+ 19] = 40. (6) Следовательно, оптимальная общая стоимость четырех комп- лектов мебели равна 40. Соответствующие ей переменные реше- ния могут быть найдены, если мы вернемся по уже сделанным расчетам к началу: по формуле (6), х3 — 1 (т. е. в конце вто- рого месяца $ = 3), затем по формуле (4) мы получаем Хг —2 и, наконец, xi = 1. Схема решения данной задачи приводится на рис. 5.19 в виде “графа решений”. 5.8.1. Теория динамического программирования Использованный выше процесс последовательной оптимиза- ции можно применить для большого класса задач. При этом функция, которую нужно оптимизировать, должна удовлетво- рять нескольким условиям самого общего характера. Определение. Функция f от трех действительных переменных, принимающая действительные значения, называется разложи- мой (представимой в виде суперпозиции функций от двух пере-, менных), если
264 ГЛАВА 5 1) существуют две функции g и h, такие, что можно записать V (и, v, w) f (и, v, w) — g(u, h(v, w)); 2) функция g является монотонно неубывающей по отноше- нию ко второй переменной: V(«, У!, у2) У1> y2=>g(u, yi)> g(u, у2). Динамическое программирование основано на следующей теореме. Теорема оптимальности. Для любой разложимой функции f от трех переменных, удовлетворяющей соотношению Ж v, w) = g(u, h(u, v)), справедливо выражение ОРТ [f (u, v, да)] = ОРТ [g (и, ОРТ [g (v, да)])]. (и, v, w) и (a, w) По этой теореме подсчет оптимума некоторой функции от трех переменных сводится к последовательному вычислению двух оптимумов функций от двух переменных. (Ее доказатель- ство можно найти в работе (Lauriere, 1979)). Чаще всего эта теорема используется для функций оптимизации z(xi, х2, ... ..., хп) от п переменных вида z(x{, х2, ..., хп) == [о(Xj), zt(x2, х3, ..., хп)], где R\ — разложимая функция, a zi относится к тому же типу функций, что и z, т. е. также является разложимой. Следова- тельно, можно написать ОРТ z = OPT[/?1[r1(x1), ОРТ/?2[г2(х2), ... ...Хп) Х1 Х2 .... ОРТ[гп(х„)]...], что соответствует схеме динамического программирования, ко- торое обычно называют методом оптимизации, основанным на рекуррентных соотношениях. Исходные предположения легко, в частности, проверить, когда z является суммой элементарных значений одной переменной, как в приведенном выше примере. В настоящее время данный метод успешно применяется в управлении складами, ракетами, технологическими процесса- ми (особенно в химии), в экономическом планировании, в тео- рии игр и в теории вероятностей.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 265 5.8.2. Преимущества динамического программирования Основную теорему можно сформулировать также следую- щим образом: подстратегия оптимальной стратегии может быть только оптимальной (рис. 5.20). Таким образом, выигрыш до- стигается за счет того, что на каждом из промежуточных эта- пов сравниваются все пути, ведущие к некоторой фиксирован- ной ситуации, и в дальнейшем сохраняется только наилучший из Рис. 5.20. Оптимальная стратегия. Подстратегия (а, с, Ь) лучше подстрате- гии (a, d, b) только в том случае, если путь (So, a, d, b, Sn) не является оптимальным. этих путей (вернее, соответствующее ему значение). Итак, предположим, что каждая из переменных решения хд- может принимать Xi значений. Если по методу полного перебора необ- п ходимо запоминать Ц Xt ситуаций, динамическое программиро- i = 1 п вание позволяет свести к изучению У, Xt • St различных слу- /=1 чаев (Si — число возможных ситуаций перед выбором t-й пере- менной). Чаще всего величина S, ограничена условиями задачи. Так, в первом примере Уг, 3Д = 5 и метод динамического програм- мирования дает сложность порядка В некоторых слу- чаях при использовании этого метода можно получить слож- ность, которая полиномиально зависит от входных данных (об- наружение кратчайшего пути, задача о рюкзаке, некоторые задачи упорядочения). Преимущества этого метода могут быть также использованы в системах, рассчитанных на предсказание Недетерминированного будущего: хотя оно определяется только в вероятностных терминах, тем не менее необходимо найти оп- тимальную стратегию. Пример 2. Управление складом в условиях неопределенных требований. Мы должны заказывать продукцию и размещать ее на складе так, чтобы как можно больше увеличивалось мате- матическое ожидание заключения выгодных сделок. При этом выделяются три периода времени. В исходный момент склад
266 ГЛАВА 5 находится на нулевом уровне обеспеченности продукцией. В на- чале любого i-ro периода мы можем закупить х, единиц товара по цене а,-. В течение данного (i-ro) периода с вероятностью Pi(Vi) на склад может поступить требование на г/,- единиц то- вара по продажной цене Vi, причем, если уровень обеспеченно- сти склада продукцией недостаточен и нельзя удовлетворить часть требования, штраф не налагается. В конце третьего периода случайно не проданный товар идет на распродажу по цене 20 за единицу продукции. Значе- ние векторов a, v, р(и) оценивается по приведенной ниже таб- лице (при этом для любого i мы предполагаем, что 0 х,- 2 и 1 С у, 2). Период i 1 2 3 Покупная цена ai 10 10 30 Продажная цена щ 30 30 50 Вероятности pi (1) 0,6 0,6 0,5 Pi (2) 0,4 0,4 0,5 Поскольку количество имеющихся на складе единиц продук- ции S, изменяется от 0 до 4, система может находиться в одном из пяти состояний. Каждый раз между фазами принятия реше- ния появляется дополнительная недетерминированная фаза, переводящая систему из состояния s в состояние max(0, s,-— у,-) с вероятностью p(yi). Если после принятия решения х, прибыль от ситуации s, составляет c(s,), ее математическое ожидание c(wi), зависящее от количества затребованной продукции, равно 2 с (wt) = с (s{) + Е «i-1 где wt = 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) = max [85, -30 + (120 • 0,5 + 90 • 0,5), -60 + (140 • 0,5 + + 110-0,5)1 = 85.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 267 Затем в соответствии с рекуррентным соотношением имеем с2 (0) = max [25, -10 + 30 + 25, -20 + ((30 + 55) • 0,6 + + (60+ 25) 0,4)] = 65; с2(1) = 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,4 + + (30+ 95) 0,6)] = 105. Оптимальная стратегия состоит в том, чтобы в течение пер- вого периода закупить 2 единицы продукции, в течение второ- го — тоже 2 и, наконец, в зависимости от того, сколько к этому моменту будет продукции на складе (0, 1 или 2), в течение третьего периода приобрести 2, 1 или 0 единиц. В соответствии с этой стратегией из-за недетерминированности спроса на скла- де возникают различные ситуации, но в любом случае средний оптимальный результат (105) обеспечен. 5.9. Оптимальная раскраска вершин на графе Раскраска географической карты Задача о раскраске географической карты (рис. 5.21) со- стоит в том, чтобы определить, как нужно раскрасить карту, изображающую на плоской или сферической поверхности раз- личные страны и границы между ними, если известно, что со- седние страны нельзя закрашивать одним цветом. Эту задачу математики пытались решить в течение почти 100 лет. Они пытались доказать результат, известный под на- званием задачи (или гипотезы) о четырех красках (гипотеза — теорема, являющаяся предположительно верной, практически подтверждаемая большим числом случаев, но не имеющая пол- ного формального доказательства): “для раскраски карты на плоской или сферической поверхности достаточно четырех цветов”. В 1976 г. эта теорема была доказана с помощью ЭВМ, ко- торая чисто комбинаторным способом проверила огромное чис- ло вариантов рисунков [Арре! и Haken, 1976]. Первый этап исследования рассматриваемой задачи состоит в упрощении способа представления данных: задача сводится
268 ГЛАВА 5 Рис. 5.21. Фрагмент карты Европы. к изучению несложного объекта, называемого неориентирован- ным графом (как в задачах, рассмотренных в предыдущей главе). Для этого в каждой стране выделяется внутренняя Париж Рис. 5.22. Граф, эквивалентный карте, изображенной на рис. 5.21. точка (например, столица)' и с помощью линий, которые назы- ваются ребрами, связываются все пары точек, принадлежащих соседним странам (рис. 5.22). Тогда задача сводится к раскрас- ке имеющихся на нашем рисунке точек (они называются вер- шинами), причем соблюдается следующее правило: две соеди- ненные между собой вершины должны быть раскрашены в раз- личные цвета. В этом виде задачу можно обобщить следующим
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 269 образом: пусть имеется произвольный граф, т. е. множество вершин и множество ребер, связывающих эти вершины попар- но. Нужно найти наименьшее число цветов, с помощью которых можно его раскрасить, соблюдая то же правило: две связанные между собой вершины должны быть раскрашены в различные цвета. Здесь (в отличие от предыдущего случая) граф не обя- зательно является плоским. Это означает, что необязательно существует такое изображение данного графа на плоскости, при котором никакие два ребра не пересекаются. Именно в таком виде эта задача возникает в самых разных ситуациях (некоторые из них описаны ниже). 5.9.1. Организация конференции Для установления порядка заседаний секретариат попросил всех участников составить список секционных заседаний, в ко- торых они хотели бы участвовать. Подмножество секционных заседаний с участием того или А иного человека должно быть разбито на взаимно не пе- ресекающиеся во времени ча- -уД3 сти. \ \ Пример. Пусть планирует- х \ \ ся 9 секционных заседаний, \ \ Гс обозначенных буквами a, b, I \ \ с, i; каждое из них длится I \ \ полдня. Мы располагаем необ- еЧ \\ ходимым числом аудиторий. Несовместимость заседаний во L времени задается списком со- Рис 523 Граф задачи об организа. ответствующих подмножеств: ции конференции. ае, be, cd, ed, abd, ahi, bhi, dfi, dhi, fgh (существует по крайней мере один человек, который хочет участвовать в работе всех секций, входящих в одно и то же подмножество). Данная задача сводится непосредственно к задаче раскрас- ки графа: заседания секций соответствуют вершинам графа, а несовместимость их во времени — ребрам (рис. 5.23). Итак, за- дача секретариата — организовать конференцию так, чтобы она длилась минимальное число дней (в день проходят два заседа- ния — утреннее и вечернее). 5.10. Алгоритм оптимальной раскраски графа Минимальное число цветов, необходимое для раскраски вер- шин некоторого графа с использованием для пары соседних вершин различных цветов, называется хроматическим числом
270 ГЛАВА 5 графа G и обозначается через y(G). Поиск хроматического числа представляет собой комбинаторную задачу. Введем обо- значения: 5 — множество вершин графа; U — множество ребер графа, т. е. множество пар вида (i, /),. принадлежащих декар- тову произведению S/5, таких, что i связано с /; [1, q} — множество q чисел натурального ряда, т. е. множество q ис- пользованных цветов, В этих обозначениях данную задачу мож- но сформулировать следующим образом: Найти функцию cl (“цвет”): S->• [1, q] такую, что для всякой пары (i, /) из U нужно задать cl(i) cl(j), причем q должно быть минимальным. Мы можем (как в задаче о восьми ферзях) сначала раскра- сить одну вершину и учесть все импликации, связанные с при- своением этого значения, а затем использовать метод неявного перебора до тех пор, пока не раскрасим все вершины. Но здесь мы должны остановиться не тогда, когда исчерпаем все воз- можности, а гораздо раньше — как только мы сможем доказать, что не существует решения лучшего, чем известное нам опти- мальное решение. Общая схема действий приведена в алго- ритме 5а. Алгоритм 5а Найти решение для q цветов; Улучшить это решение: ДО ТЕХ ПОР ПОКА мы не докажем, что искомое хроматиче- ское число больше или равно q, ПОВТОРЯТЬ- q<-q— 1 Найти новое решение для q цветов 5.10.1. Первый этап: поиск решения Предложить первый способ раскраски нетрудно, поскольку в качестве функции cl достаточно взять функцию, такую, что Vi, ci(i) = i, ieS. Полученная таким образом раскраска яв- ляется допустимой: все вершины раскрашены в различные цве- та. В этом случае число использованных цветов q равно мощ- ности множества S вершин данного графа. Улучшая это решение, мы сталкиваемся с такой же пробле- мой, как в задаче о восьми ферзях: для каждой вершины (или для каждой горизонтали шахматной доски) в исходный момент имеется q вариантов раскраски (вместо восьми свободных кле- ток), причем q > q. Поэтому мы снова можем использовать алгоритм ENUM, только нужно уточнить следующее:
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 271 а) как происходит выбор в случае равенства степеней свободы; б) как осуществляется управление импликациями. Для от- вета на вопрос а) воспользуемся как и раньше идеей: выбирать тот вариант, который несет больше информации. Здесь это сво- дится к тому, чтобы рассматривать наиболее связанную верши- ну графа, т. е. вершину, которая накладывает наибольшее чис- ло ограничений. Однако в данной задаче имеется только один тип ограничений: для всякой пары (i, /) из множества U: cl(i) =/= cl(j). Следовательно, наиболее связанная вершина мно- жества S — это вершина, из которой выходит наибольшее чис- ло ребер, принадлежащих множеству U. В графе G = (S, U) число ребер, проходящих через вершину з, мы будем называть степенью вершины з. Итак, в случае равенства вариантов мы будем выбирать ту нераскрашенную вершину, которая обладает наибольшей степенью в графе, состоящем из еще не раскрашен- ных вершин. Как обычно, выбранный критерий не является ни абсолютным (его можно было бы изменить), ни необходимым (без него алгоритм остается надежным); он нужен лишь для повышения эффективности. Так как эксплицитное задание ре- бер графа позволяет фиксировать запреты в явном виде, полу- чение ответа на вопрос в п. б) не представляет трудностей. Ко- нечно, как и в задаче о восьми ферзях, мы должны учесть цепочки импликаций, вынужденные присваивания значений (когда мы можем раскрасить вершину только в один цвет) и случаи, когда продолжать раскраску невозможно (с предусмотрен- ным возвращением назад и восстановлением свободных вер- шин) . На данном этапе становится очевидным, что мы, безусловно, можем построить лучшее решение, чем то тривиальное реше- ние, которое приписывает каждой вершине свой цвет. Для этого достаточно рассматривать только критерий, касающийся степеней вершин графа (мы ввели его при разъяснении пунк- та а)). В самом деле, ведь априори все степени свободы равны, и потому основанный на них критерий не является действенным. Но тогда мы можем построить хорошее решение, используя “жаДный” алгоритм следующего вида: Алгоритм 56 ДО ТЕХ ПОР ПОКА не будут раскрашены все вершины- ПО- ВТОРЯТЬ раскрашивать вершину, связанную с наибольшим числом нераскрашенных вершин, наложить вытекающие отсюда запреты.
272 ГЛАВА 5 Пример 1. В исходный момент вершины графа, изображаю- щего географическую карту, имеют следующие степени: Вершины Л”с- Мад- н сабон рид Па- Брюс- Га- Бер- риж сель ага . лин Люк- сем- Вена Берн Рим бург Степени 1 2 6 4 2 6 3 3 4 3 Мы раскрасим’ сначала вершину “Париж”, одну из двух, обла- дающих максимальной степенью: Icl (Париж). Затем мы наложим запрет на использование цвета I при рас- крашивании шести соседних вершин и одновременно уменьшим на единицу степени всех этих вершин. Таким образом, мы по- лучим вторую строку табл. 5.1. Теперь наибольшей степенью обладает вершина “Берлин”. Поскольку цвет I использовать в этом случае запрещено, мы закрасим ее цветом II: II-> с/ (Берлин). Таблица 5.1. Раскрашивание географической карты Лис- сабон Мад- рид Па- риж Брюс- сель Га- ага Бер- лин Люк- сем- бург Вена Берн Рим 1 2 6 4 2 6 3 3 4 3 Остаточные 1 1 1 1 — 3 2 2 1 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 I I II I II III I III При этом степени вершин изменятся так, как указано в третьей строке табл. 5.1. Выбрав первую по счету вершину, обладаю- щую степенью 2, мы получаем III-> с/ (Брюссель), поскольку связанные с данной вершиной вершины раскрашены в цвета I и II. Теперь мы получили степени, указанные в чет- вертой строке табл. 5.1. Поскольку для вершины “Вена” тре- тий цвет не запрещен, мы можем раскрасить: III->cl (Вена).
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 273 Теперь мы можем раскрасить все оставшиеся вершины: I —> cl (Лиссабон), II с/(Мадрид), 1->с1 (Гаага), III -> cl (Люксембург), IV с/(Берн), II -+cl (Рим). Мы получили решение в четыре краски. Однако мы лишь узна- ли, что для данной карты у 4, но не доказали, что сделать Таблица 5.2. Раскрашивание графа для задачи о конференции а ь с d е f g h i 5 5 2 7 ' 2 4 2 6 5 4 4 1 — 1 3 2 5 4 Остаточные степени 3 3 2 1 1 — 1 0 2 2 1 1 — 3 2 — — 0 —. 0 2 1 1 — — 0 — 0 — 0 ’— 0 I I I I I I I II II II II II Запрещенные цвета III III III IV III IV лучше невозможно. Такой же результат дает теорема Аппеля и Хакена. Пример 2. В первой строке табл. 5.2 приводятся зафиксиро- ванные в исходный момент степени вершин графа для задачи о конференции. Итак, в первую очередь мы раскрашиваем I^cZ(d). Затем, используя промежуточные результаты, приведенные в табл. 5.2, последовательно получаем II -*с/(Л), III >cl (а), IV-+cl(b),
274 ГЛАВА 5 Наконец, когда все оставшиеся вершины оказываются в нуле- вой степени, получаем И->с/(с), П->с/(е), V->cZ(z). Мы можем утверждать, что для второго графа у' 5. Таким образом, мы выполнили все действия на первом эта- пе исходного алгоритма (алгоритм 5а). Теперь пока мы не до- кажем, что искомое хроматическое число равно q, мы должны установить q q — 1 и искать новое решение для этого числа цветов. 5.10.2. Второй этап: поиск оптимального решения Поскольку мы знаем, что число вариантов, возможных для каждой вершины, ограничено числом q, введем векторы L,-, со- стоящие из q компонентов каждый. Но на практике следует учитывать, что любое решение определяется только с точностью до перестановки соседних цветов (в данной задаче цвета I, II или III —всего лишь имена, служащие ориентиром). Таким об- разом, когда мы начали выполнять алгоритм 56, первые из присвоенных значений в примере 1 в примере 2 I -> cl (Париж) I -> cl (d) II -> cl (Берлин) II -> cl (h) III -> cl (Брюссель) III -> cl (a) IV cl (&) были не результатами реального выбора, а условиями договора о том, какие имена дать первым вершинам, которые в любом случае должны были бы быть раскрашены в различные цвета. Их неодинаковая раскраска объясняется просто: все они по- парно связаны. В первом примере Париж связан одновременно с Берлином и Брюсселем, который, в свою очередь, связан с Берлином. Во втором примере d связано с h, а и b; R связано с а и b и, наконец, а связано с Ь. Эти подмножества вершин связаны между собой всеми за- ранее возможными способами. Такие подграфы мы будем назы- вать полными подграфами, или кликами. Из определения рас- краски вершин некоторого графа мы получаем следующее свой- ство (первое): Для раскрашивания клики мощностью р нужно р цветов.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 275 Таким образом, в примере 1 3 у 4, поскольку вершины “Париж”, “Берлин” и “Брюссель” образуют клику мощностью 3. Кроме того, единственная вершина, которая должна быть раскрашена четвертым цветом (Люксембург), оказалась в та- ком положении из-за того, что сама связана с тремя этими вершинами. В действительности подграф, состоящий из вершин “Париж”, “Берлин”, “Брюссель” и “Люксембург”, образует еще одну клику мощностью 4. Отсюда следует непосредствен- ный вывод: в данном примере минимальное число цветов, необ- ходимое для раскраски всех вершин, равно 4 (т. е. у = 4). В примере 2 подобное рассуждение позволяет выделить клику, включающую пять вершин — a, b, d, h, i, и тем самым доказать, что для данного непланарного графа первый вариант раскраски на самом деле был оптимальным, т. е. у' = 5. После этих двух удач невольно приходит мысль: не зани- маемся ли мы решением несуществующей проблемы? Может быть, между максимальной мощностью клики и минимальным числом цветов всегда существует равенство? Отвечая на данный вопрос, следует, во-первых, отметить, что в любом случае это еще не решение задачи: откуда мы знаем, что данная клика яв- ляется наиболее мощной? На самом деле эта задача так же сложна, как и исходная задача о раскрашивании графа. Кроме того, не можем ли мы построить граф, для которого данное свойство не выполняется? Оказывается, если “поиграть” немного с группой треугольйиков (клика мощностью 3), мы получим контрпример, изображенный на рис. 5.24. Для показанного на этом рисунке графа, в котором макси- мальная мощность клики (в дальнейшем мы будем сокращенно обозначать ее через Смаке) равна 3, хроматическое число у в действительности равно 4, т. е. у > Смакс. Так, если мы раскра- сим вершину а в цвет I, b — в цвет II, ас — в цвет III и если при этом мы захотим обойтись тремя цветами, то в соответст- вии с алгоритмом 5а мы получим следующую цепочку импли- каций: вершина d должна быть раскрашена в цвет II, е — в
276 ГЛАВА 5 цвет III, но тогда вершина f оказывается связанной с верши- нами а (цвет I), b (цвет II) и е (цвет III). Следовательно, предположение о возможности использования только трех цве- тов привело к противоречию. Второй контрпример, менее очевидный, приведен на рис. 5.25, где изображен граф, в котором все клики сводятся к парам вершин (т. е. СмаКс==2). Теперь, выполняя алгоритм 5а полностью (что заставляет нас многократно возвращаться к принятым ранее решениям), мы получаем у — 4. Итак, даже на столь маленьких графах и при таких неболь- ших значениях мы пришли к расхождению в две единицы. В действительности существуют графы, которые можно строить таким образом, что разность у — Смакс будет равна произволь- ному заранее заданному целому числу. Таким образом, мы мо- жем быть уверены, что у Смакс (второе свойство). Число Смакс является нижней гранью искомого оптимума. Следовательно, оптимальность нашего алгоритма может быть доказана двумя способами: либо если мы докажем методом не- явного перебора невозможность раскрасить граф в q цветов при условии q > Смаке, либо (в благоприятном случае) если мы сможем найти вариант раскраски в q = Смакс цветов. В любом случае при получении первого варианта раскраски полезно найти клику, обладающую наибольшей мощностью С. Конечно, мы не можем быть уверены, что мы нашли СмаКс, но, поскольку Смакс С, мы заведомо получаем надежную ниж- нюю грань. Чтобы найти такую клику, воспользуемся следую- щим соображением. В этой задаче, являющейся в некотором роде обратной по отношению к задаче о раскрашивании вер- шин графа, степени вершин выполняют еще одну функцию: в исходный момент мы начинаем искать клику в множестве вершин, имеющих наибольшие степени. Получив первую клику, состоящую из С вершин, мы можем, как и в исходной задаче, постараться улучшить полученное решение: можно уверенно от- брасывать все вершины, степень которых строго меньше С. Практически окончательный вариант алгоритма раскраши- вания вершин приведен ниже. Алгоритм 5в {Поиск "большой" клики Ф} ф<-0 ДО ТЕХ ПОР ПОКА существуют непроверенные вершины: проверить вершину s графа G, обладающую наибольшей степенью; если она связана ребрами со всеми вершинами Ф, ТОГДА СДЕЛАТЬ: Ф<-Ф11{5}
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 277 Мы получили клику мощностью С; исключить из G все вершины, степени которых строго меньше С. Начать в новом графе поиск большой клики: ДО ТЕХ ПОР ПОКА полученный граф отличается от графа, полученного в результате последней итерации, и пока существует не менее (С + 1) вершин, имеющих степени большие или равные С. — {Раскраска клики}— р«-1, 0 {число раскрашенных вершин} ДЛЯ КАЖДОЙ вершины s из Ф ДЕЛАТЬ: cl (s) р, р <- р + 1: — {Инициализация} — (число вершин из S), &«-0 {& = число сделанных выборов} L/<-(0, 0, ..., 0), ch(i)*-Q, ДЛЯ КАЖДОГО i е S - Ф: cl (i) 0 ДО ТЕХ ПОР ПОКА /г>0 ПОВТОРЯТЬ: ЕСЛИ т = п ТО напечатать ЕСЛИ НЕТ + 1 Выбрать вектор L{, непустой, в котором cl (г) = 0 ДО ТЕХ ПОР ПОКА Lt содержит не менее двух нулей ПОВТОРЯТЬ: уровень Выбрать цвет yt такой, что £Дуг) = 0 Зарегистрировать этот выбор: cl (i) у стек т*~ т-\- 1 Исключить yt из числа возможных вариантов: Запреты: для каждой еще не раскрашенной вершины s, связанной с вершиной i, ДЕЛАТЬ: Ls{y^<-k • {Импликации} Для каждой еще нераскрашенной вершины I ДЕЛАТЬ: ЕСЛИ Li включает только один 0 ТО идти к "зарегистри- ровать". ЕСЛИ Lt не содержит нулей ТО • {Возврат}:
278 ГЛАВА 5 в пределах от уровня (k) до т, ДЕЛАТЬ: метод, мы теперь можем решить еще одну {Восстановить варианты выбора}: VZ, V/ ДЕЛАТЬ: ЕСЛИ Li(j) = k ТО Lz(/)«-0, (cl (уровень (k))) <- k — 1 {Вернуть свободу выбора цвета}: Для q, лежащих cl (стек (<?)) О т<—уровень (k), Используя этот задачу. 5.11. Задача о коммивояжере Эта задача — одна из самых известных задач в исследова- нии операций: коммивояжер должен встретиться с клиентами, которые находятся в разных городах. Он выезжает из одного города и возвращается в него в конце путешествия. Предпола- гается, что коммивояжер никогда не бывает дважды в одном городе. В каком порядке он должен посетить все города, чтобы суммарное пройденное им расстояние было.минималь- ным? По-видимому, впервые этой задачей стали заниматься бла- годаря одной головоломке, придуманной английским ма- тематиком Гамильтоном в 1859 г. Она состояла в том, чтобы вычислить на графе, приведенном на рис. 5.26, все Рис. 5.26. «Кругосветное путеше- возможные маршруты, кото- ствие» Гамильтона. рыми может воспользоваться путешественник, если места, которые он должен посетить, соединены так, как показано на рисунке. Этот граф породила игра, представляющая земной шар в форме додекаэдра. Данная задача «кругосветного путешествия с возвращением в исходную точку», известная также как за- дача о гамильтоновом цикле, связана с теорией групп, а также (неожиданным образом) с задачей о четырех красках, рассмот- ренной в предыдущем разделе. Особенностью задачи о коммивояжере является необходи- мость дополнительно учитывать расстояния от города до го- рода, которые предполагаются известными. Эти «расстояния»
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 279 можно заменить на количество затраченного времени, стоимость проезда или даже на любые произвольные значения. В общем случае мы даже не предполагаем, что стоимость проезда из i в / обязательно совпадает со стоимостью обратного проезда из / в i. Итак, пусть, например, наш коммивояжер должен посетить поочередно шесть городов (соответствующие стоимости ука- заны в табл. 5.3). Заранее, когда зафиксирован исходный пункт, Таблица 5.3. Матрица расстояний для задачи о коммивояжере Л В с D Е F А 27 43 16 30 26 В 7 —- 16 1 30 25 С 20 13 — 35 5 0 D 21 16 25 — 18 18 Е 12 46 27 48 — 5 F 23 5 5 9 5 — мы располагаем числом различных маршрутов, равным числу перестановок из (и — 1) городов, т. е. (п— 1)!. Подобно задаче об оптимальной раскраске графа, данная задача соединяет в себе простоту условия и сложность решения, обусловленную большими размерами поискового пространства. Как и при рас- краске графа, получить по меньшей мере одно решение — три- виально: ведь из каждой точки мы можем попасть в любую дру- гую. И наконец, общий ход -решения тоже напоминает задачу о раскрашивании графа: Найти решение стоимостью q\ ДО ТЕХ ПОР ПОКА мы не докажем, что искомая стоимость q* больше или равна q, Искать более хорошее решение (новая стоимость q = q— 1). 5.11.1. Первый этап: поиск решения Как и в предыдущей задаче, найти хотя бы одно решение — тривиально, поскольку подойдет любая комбинация шести го- родов. Таким образом, маршрут ABCDEFA представляет собой одно из возможных решений с общей стоимостью 124. Отметим, что способ, при котором мы отправляемся из исходного пункта и всегда выбираем путь с наименьшей стоимостью, безусловно, не является оптимальным и даже может приводить к очень не- удачным решениям. Действительно, условия К(х), в данном
280 ГЛАВА 5 случае заключающиеся в том, что мы должны получить в конеч- ном счете только один цикл, по мере нашего продвижения впе- ред все больше и больше ограничивают возможности выбора, и если вначале мы выберем небольшие значения стоимостей, то значения стоимостей путей в конце работы алгоритма будут обя- зательными и могут оказаться сколь угодно большими. Тем не менее попробуем использовать этот способ. Из го- рода С мы отправимся в город F по дуге CF с нулевой стои- мостью; дуга FC, которая сразу же завершила бы данный цикл, запрещена. Поэтому мы «уедем» из города F, воспользовавшись первой же разрешенной дугой — FB, стоимость которой равна 5; дуга ВС запрещена. Теперь пойдем по дуге BD (стоимость 1), запрещающей использование дуги DC. Дуга DE позволяет уйти из D и запрещает ЕС. ЕВ приводит нас в Л, а дуга АС, нако- нец, вынужденным образом завершает цикл. Ее стоимость равна 43, но она могла бы оказаться еще больше. Мы все-таки за- помним полученное решение ACFBDEA (стоимость 79), которое лучше предыдущего. При построении этого решения мы были вынуждены фор- мировать искомый цикл, постепенно добавляя к последней вер- шине очередной отрезок пути. Мы не обязаны применять этот способ и (как в задаче о восьми ферзях) мы можем выбирать варианты в любом порядке, фиксируя на каждом этапе в мно- жестве, состоящем из п дуг, произвольную дугу, которую впо- следствии мы должны будем запомнить. При этом необходимо соблюдать единственное входящее в К(х.) условие: должен су- ществовать только один цикл. Это означает, что все запомнен- ные к некоторому заданному моменту дуги, во-первых, не должны проходить через одну и ту же вершину более одного раза и, во-вторых, могут образовать цикл лишь в самом конце, когда пройдены все города. Изучая' проблему с этой точки зрения и учитывая предыду- щий опыт, мы можем догадаться, что следует выбирать дуги не с наименьшей стоимостью, а дуги с не слишком высокой стоимостью. Но какие же дуги мы будем считать «дорогостоя- щими»? Очевидно, что данное понятие является относительным: поскольку на каждой горизонтали и каждой вертикали мы должны выбрать только одну дугу, «дорогостоящей» может быть названа любая дуга, стоимость которой существенно откло- няется от минимальных значений, зафиксированных в соответ- ствующих вертикалях и горизонталях. Итак, предположим, что мы должны избегать все дуги, стои- мости которых в нашем примере превышают на 10 единиц минимальные значения, отмеченные по горизонтали и верти- кали.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 281 В табл. 5.4 указаны максимально допустимые стоимости для горизонталей и вертикалей, причем в матрице сохраняются только те дуги, стоимости которых строго меньше хотя бы одной из этих границ. Итак, если по предположению искомый оптимальный цикл пройдет лишь по невычеркнутым дугам, то очевидно, что мы Таблица 5.4. Матрица, в которой устранены слишком дорогостоящие пути А В С D Е F А 16 26 В 7 — — 1 — — 11 С 13 — — 5 0 10 Максимальные значения D 21 16 25 — 18 18 26 по строкам Е 12 — — — -— 5 15 F 17 1 5 5 15 15 Максимальные по столбцам 9 5 11 ' 15 значения 10 1 15 выдвинули слишком оптимистическую гипотезу, так как на са- мом деле ничто не гарантирует, что в этом новом графе, содер- жащем только «хорошие» элементарные пути, существует хотя бы одно решение. Действительно, могло, например, получиться так, что сразу в двух горизонталях оказались бы вычеркнутыми все дуги, кроме одной, причем обе эти дуги стояли бы на одной вертикали. Очевидно, что тогда из двух разных пунктов мы могли бы попасть только в один — соответствующий данному столбцу — город, и, следовательно, задача о гамильтонове цикле не имела бы решения. Что же теперь из этого следует? Были ли мы настроены слишком оптимистично? Из табл. 5.4 видно, что в первой строке мы располагаем единственной возможностью: из А мы можем попасть только в D. Следовательно, дуга DA, по которой можно вернуться обратно, запрещена. Кроме того, поскольку в D мы уже были, мы должны вычеркнуть дуги BD и FD, которые опять привели бы нас в ту же точку (табл. 5.5). Дуга ВА в свою очередь является обязательной, поэтому мы устраняем дуги ЕА и DB (последнее связано с необходимостью исключить паразитный цикл BAD). На небольшой схеме (рис. 5.27) представлено частичное решение. Дуга EF является в данном случае обязательной и запрещает выбор дуги FE.
282 ГЛАВА 5 Таблица 5-5 А в С D Е F А Пб| В 7 — С — 13 — — 5 10 D — 26 25 —. 18 18 Е 12 — -— 5 F — 5 5 — 5 — На этом этапе все степени свободы по горизонтали и вер- тикали равны 2. Поэтому следующую дугу мы должны дей- ствительно выбирать. Например, из самой «дорогой» строки D Рис. 5.27. Частичное решение задачи о коммивояжере. мы можем взять дугу, имеющую наименьшую стоимость. Мы вы- бираем DE, и тогда дуги DC и FE оказываются запрещенными, а дуги FC и FE — обязательными. Итак, мы в конце концов получили гамильтонов цикл — ADEFCBA, и его стоимость (64) меньше, чем лучшая из найден- ных ранее. Таким образом, мы реализовали способ быстрого нахождения хорошего, допустимого правилами маршрута для коммивояжера. Если бы операция устранения дуг в зависимости от их стои- мостей оказалась слишком жесткой и не позволила построить цикл, надо было бы ослабить введенное ограничение, разрешив сохранять дуги, больше отклоняющиеся от минимумов, чем мы установили вначале. Получив хорошее решение, следует перейти к фазе оптими- зации. 5.11.2. Второй этап: поиск оптимального решения Верхняя грань искомого оптимума нам уже известна. Но те- перь, как в теории физических измерений или как при решении задачи о раскрашивании графа, было бы полезно задать еще
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 283 и нижнюю грань. Иначе говоря, не существует ли какого-ни- будь понятия (вроде клики), которое позволило бы нам утверж- дать, что стоимость любого решения заведомо не меньше неко- торой известной величины? Выделим в исходной задаче какую-нибудь подзадачу и зай- мемся рассуждениями. Нужно, чтобы решение этой более про- стой или «маленькой» задачи оказалось обязательно меньшим по стоимости, чем решение исходной задачи. Так, рассмотрим все города по отдельности: ведь в тот или иной момент ком- мивояжер уезжает из каждого города. Но тогда стоимость ре- шения данной подзадачи — «уехать из города х» — не может быть меньше минимального значения соответствующей строки исходной матрицы. Так, для города А, где А В С D Е F А — 27 43 16 30 26 мы получаем минимальную стоимость 16 и, более того, можем вычесть по 16 единиц из всех расстояний, не изменив при этом формы цикла (так как оптимизируемая функция — это про- стая сумма элементарных стоимостей, причем из каждой строки берется по одному слагаемому). Итак, стоимости выезда из го- рода А теперь можно представить следующим образом: А В С D Е F Л — 11 27 0 14 10 Рассуждая аналогично для пяти оставшихся строк, мы вычи- таем из строки А число 16, из В число 1, из С число 0, из D число 16, из Е и F число 5 и получаем табл. 5.6. Таблица 5.6 А В С D Е F А 11 27 0 14 10 В 6 15 0 29 24 С 20 13 — 35 5 0 D 5 0 9 — 2 2 Е 7 41 22 43 0 F 18 0 0 4 0 — Но нам еще нужно, чтобы коммивояжер побывал в каждом из 6 городов только один раз (приезды соответствуют 6 столбцам нашей таблицы). На данном этапе в любой город можно при- ехать, воспользовавшись дугой, стоимость которой после вычитания равна нулю. Исключением является город А,
284 ГЛАВА 5 Таблица 5.7 А В С D Е F А — 11 27 0 14 10 В 1 — 15 0 29 24 С 15 13 — 35 5 0 D 0 0 9 — 2 2 Е 2 41 22 43 — 0 F 13 0 0 4 0 — минимальная стоимость приезда в который составляет 5. Мы можем вычесть из всего столбца эту величину, поскольку под- задача приезда в А обязательно должна быть решена. Новые стоимости приведены в табл. 5.7. Мы вычли величину q: £=16 4-1 + 1 +16+ 5 + 5 + 5 = 48. Но поскольку для получения реального значения q* стоимости искомого оптимального цикла к любому решению q задачи с уменьшенными значениями стоимостей следует прибавлять q, то эта величина удовлетворяет соотношению £ + 7* < Яо, где q0 обозначает наилучшую известную в данный момент сум- марную стоимость. Кроме того, так как коммивояжер приез- жает в каждый город только один раз и уезжает из него тоже только однажды, оптимальная длина маршрута реально состав- ляет длину оптимального пути по сокращенной матрице, уве- личенную на 48. В нашем примере 48 q* 64. Таким образом, возвра- щаясь к методу, с помощью которого мы получили первые ва- рианты маршрутов, мы сможем удалить все дуги, стоимость ко- торых слишком велика. Но на этот раз критерий удаления дуги может быть строгим. В самом деле, рассмотрим разность (q0—q), которая в данном случае равна 16. Она соответствует самому большому «абсолютному» отклонению искомого значе- ния от известного маршрута. Иными словами, любой путь, имею- щий стоимость, которая превышает эту разность, заранее может быть отклонен: поскольку он уже хуже, чем известный нам ва- риант маршрута, он не может быть оптимальным. В частности, мы можем сразу же вычеркнуть все дуги, у которых уменьшен- ная стоимость больше или равна (q0 — q). На данном этапе матрица разрешенных путей на нашем графе представлена в табл. 5.8.
Методы распространения ограничений и перебора 285 Таблица 5.8 А В с D Е F А 11 0 14 10 В 1 — 15 0 — — С 15 13 — — 5 0 D 0 0 9 — 2 2 Е 2 — —- — — 0 F 13 0 0 4 0 — Теперь осталось построить на этой матрице новый маршрут, обладающий, если это возможно, стоимостью, меньшей q0, а по- том начать все сначала — и так до тех пор, пока мы не дока- жем оптимальность. Мы могли бы снова, воспользоваться понятием степеней свободы и, следовательно, начать выбирать маршрут с горизон- тали Е. Но так как для случая неуменьшенной матрицы этот критерий был бы неэффективен, мы будем исходить из стоимо- стей и оценивать относительную выгоду от использования дуг с наименьшими (т. е. нулевыми) стоимостями. На самом деле все эти дуги с нулевыми стоимостями зара- нее не эквивалентны. Идеальный маршрут должен был бы про- ходить только по таким дугам, но он не обязательно существует. В частности, мы не можем приехать в город D одновременно из А и В. Кстати, это доказывает, что q* 49, но непосредственно использовать этот результат мы не будем. Некоторые из дуг с нулевыми стоимостями не могут быть включены в маршрут. Тогда встает вопрос: какова минималь- ная стоимость запрета на «поездку» по дуге с нулевой стои- мостью? Поскольку в любом случае мы должны уехать из города, расположенного в данном столбце, минимальная стои- мость этого перемещения составит сумму минимального значе- ния стоимости по горизонтали (наш нуль не считается) и мини- мального значения стоимости по вертикали. Эта величина, используемая во многих задачах на оптимизацию, обычно назы- вается пошлиной. Она вычисляется для идеального варианта, который состоит в выборе дуги с нулевой стоимостью, и оцени- вает наименьшую стоимость — минимальную пошлину, которую нужно заплатить при отказе от этого выбора. Вытекающая из данной идеи стратегия поиска состоит в том, чтобы каждый раз выбирать вариант, для которого пошлина является максимальной. В задаче о коммивояжере пошлина для некоторой .дуги (i,/), имеющей нулевую стоимость,
286 ГЛАВА 5 записывается в виде г (z, /) = min с (z, k) + min с (I, j). k. k =/= I * l. I i Таким образом, в нашем примере г(D, А) = 0 + 1, r(D,B) = = 0 + 0, r(F,B) = 0 + 0, r(F, С) = 0 + 9, r(A, D) = 10 + 0, r(B,Z)) = 0+l, r (F, £) = 0 + 2,' r(C,F) = 5 + 0, r(F,F) = ==2 + 0. Выбор, который обойдется нам дороже всего, если мы от него сейчас откажемся, связан, следовательно, с дугой AD. Итак, начнем с предположения, что коммивояжер воспользуется дугой AD-, теперь мы должны учесть все привязанные к данному вы- бору импликации. Мы не имеем больше права рассматривать какие бы то ни было дуги, расположенные в строке Лив Таблица 5.9. А В с D Е F А В с D Е F А В 1 —. 15 — — В 0 — 14 .—. —. • С 15 13 .—, 5 0 с 15 13 — 5 0 D — 0 9 2 2 D — 0 9 2 2 Е 2 — — — 0 Е 2 — — — 0 F 13 0 0 0 — F 13 0 0 0 — а б столбце £>; аналогично мы должны, вычеркнуть дугу DA, кото- рая порождает паразитный цикл'. Ниже приводится рабочая таблица (табл. 5.9, а). В этой гипотезе отъезд из города В стоит не менее 1. По- этому мы снова произведем в этой строке преобразование стои- мостей и на то же число увеличим нижнюю границу q(AD) во всех маршрутах, использующих дугу AD: q(AD) — 49 (табл. 5.9,6). Вычислим пошлины: г (В, Л) =16, r(D, В) = 2, r(F,B)=0, r(F,C) = 9, r(F,E) — 2, r(C,F) — 9, r(E, F) — 2. Приняв первое предположение, мы обязательно должны пропустить коммивоя- жера по дуге ВА, поскольку в противном случае минимальная стоимость полученного маршрута (она была бы равна q(AD)-]- + г(В, Л) = 49 + 16) превысит 64 — порог, который мы знаем из уже найденного решения и который мы хотели улучшить. Прохождение по дуге В А в свою очередь вызывает удале- ние всех дуг, расположенных в столбце Лив строке В, а также дуги DB, приводящей к появлению паразитного цикла. В ре-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 287 зультате мы получаем новую таблицу (табл. 5.10,а). После вы- читания двух единиц по горизонтали D, вследствие чего q(AD) остановится равным 51, мы получаем еще один вариант таблицы (табл. 5.10,6). Теперь только дуга СВ (ее стоимость равна 13) является слишком «дорогостоящей» для того, чтобы составить часть маршрута, обладающего стоимостью меньше заданной предельной; действительно, стоимость (СВ)^ qo — ([(AD) — 64 — — 51 = 13. Следовательно эту дугу мы вычеркнем. Таблица 5.10. А В С D Е F А В С D Е F А В С D Е F 13 - - 9 0 0 А В 5 0 С 2 2 D - 0 Е 0 - F 13 - - 7 0 0 5 0 0 0 — 0 0 - б На этот раз мы больше не располагаем возможностью вы- бора: дуга EF осталась в своей строке одна; нужно добавить ее к нашему незавершенному циклу и удалить дугу FE. Кроме того, единственным кандидатом оказалась дуга СЕ (поэтому нет смысла производить в соответствующей строке вычитание), что дает нам ^(/1£)) = 56 и влечет за собой одновременное вхождение в данный цикл дуг DC и FB. В конце концов мы по- лучаем маршрут FBADCEF с суммарной стоимостью 63. Дерево поиска изображено на рис. 5.28. У нас нет гарантии, что полученный цикл является опти- мальным, поскольку на дереве остается еще одна ветвь, кото- рая может привести к результату, обладающему приемлемой стоимостью. Эта ветвь соответствует отрицанию нашего пер- вого предположения, т. е. случаю, когда искомый цикл не про- ходит по дуге AD. Мы восстанавливаем исходную матрицу для этого варианта с учетом необходимых преобразований строки А. Так как мы вычитаем довольно большое число, мы должны вычеркнуть новые дуги — все, стоимость которых не меньше ве- личины (q* — q (не AD)) == 63 — 58 = 5. В результате остается табл. 5.11, из которой видно, что CF (строка С) и FC (стол- бец С) являются обязательными. Если граф содержит более двух вершин, такая ситуация невозможна. Это доказывает, что
288 ГЛАВА 5 Рис. 5.28. Решение задачи о коммивояжере. на данной ветви нет ни одного решения со стоимостью меньше 63 и полученный раньше цикл Является оптимальным. Мы мо- Таблица 5.11 жем также доказать, что это оптимальное решение является единственным. Для этого достаточно опять ввести в предыду- щую матрицу всего лишь одну дугу стоимостью 5 (дугу СЕ).
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 289 Дуги FC и СЕ окажутся обязательными, и мы должны будем включить в наш цикл дугу BD. Но тогда, чтобы не превысить стоимость 63, нам придется рассматривать только нулевые стои- мости. Включение же в цикл дуги DA приведет к тому, что в столбце В будут вычеркнуты все приемлемые дуги. Итак, единственный оптимальный маршрут для нашего ком- мивояжера— это ADCEFBA (стоимость 63). 5.12. Универсальная программа решения задач GPS (General Problem Solver) — известная программа, пред- ложенная Алэном Ньюэллом, Клиффом Шоу и Гербертом Сай- моном в конце 50-х гг. (одна из самых первых программ ис- кусственного интеллекта) и способная решать однотипным способом такие непохожие задачи, как подсчет интеграла, логи- ческие головоломки, доказательство теорем методом исчисления предикатов, грамматический анализ фразы. Задачи, предлагаемые программе GPS, всегда представляют- ся в следующем виде: исходный объект, конечный объект, мно- жество операторов. Операторы позволяют осуществлять преоб- разования над объектами и благодаря этому дают возможность постепенно достичь конечного объекта, который и является целью всей работы. Отметим, что GPS сразу же оказывается в более благоприят- ном положении, чем студент, сидящий перед чистым листом бу- маги, поскольку у студента обычно не бывает списка законных операций: он, наоборот, должен их подобрать сам, а иногда даже изобрести в процессе решения. 5.12.1. Общая стратегия GPS: разбиение на подзадачи В соответствии с «методом редукции» программа GPS всегда разбивает поставленную задачу на более простые подзадачи. Чтобы осуществить разбиение адекватным образом, программа пользуется различиями, существующими между обрабатывае- мым объектом и объектом, который мы хотим получить. Разли- чием между двумя объектами считается любое свойство, при- сутствующее в одном из них и отсутствующее полностью или частично в другом. GPS выбирает-только те операции, которые могут уменьшить различия, отмеченные на данном этапе по- иска. Таким обрЖзом, используемый в программе метод ориен- тирован на средства, позволяющие достичь цели (анализ «цели — средства»), и в этом отношении он близок к спо- собам действий, которые применяет в тех же условиях чело- век. ИО Ж--Л. Лорьер
290 ГЛАВА 5 Цели. GPS различает три главные цели: Л (О, х) С (о, А, х, у) Применить оператор О к объекту х; Найти оператор О, который может уменьшить различие А между объектами х и у, Т (х, у) Преобразовать объект х в объект у. Таким образом, все задачи в исходный момент ориентиро- ваны на первую цель: Т (исходный объект, конечный объект) Методы. Для каждой из трех целей в программе предусмот- рены специальные методы, которые задаются для всех них од- новременно в следующем виде: ЕСЛИ целью является Л (О, а) ТО сравнить вход оператора О с объектом а; обозначим различие через А; ' ЕСЛИ Д = 0 ТО успех КОНЕЦ, ЕСЛИ НЕТ поставить новую цель: C(Q, А, а, Ь) и поставить цель Л (О, а) в очередь. ЕСЛИ целью является С (О, А, х, у) ТО брать операторы по очереди и смотреть, не могуть ли они уменьшить различия А; ЕСЛИ да ТО создать новую цель Л (О, х). ЕСЛИ целью является Г(х, у) ТО обозначим различие между х и у через А; ЕСЛИ А = 0 ТО успех КОНЕЦ, ЕСЛИ НЕТ создать новые цели: С (Q, А, х, у) и Л (Q, х). ЕСЛИ Q применить нельзя ТО неудача, ЕСЛИ можно ТО обозначить полученный новый объект через х' и создать новую цель: Т(х',у). Чтобы повысить эффективность, авторы GPS предлагают учесть относительную значимость возможных различий (под этим подразумевается то, насколько сложно уменьшить разли- чия), хотя это и не является необходимым. Кроме того, они дают таблицу зависимостей, в которой указываются операторы, пригодные для уменьшения каждого типа различий (см. при- водимые ниже примеры). В соответствии с описанными выше методами и в зависимости от характера исходного объекта и первой цели GPS подыскивает одну или несколько целей
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 291 В свою очередь благодаря действию подходящих операторов эти цели раскрываются до тех пор, пока не будет получен конеч- ный объект и пока остаются не полностью раскрытые объекты. Стратегия, которой мы воспользовались, может быть пред- ставлена в виде дерева, называемого «деревом поиска» е! Исходный объект еЗ е4 Объекты, обра- зованные из е1 е5 еб Лоследуйнцие 'объекты Рис. 5.29. Дерево поиска программы GPS. (рис. 5.29). В каждый момент времени GPS выбирает на этом дереве среди еще не обработанных до конца вершин наиболее многообещающую, т. е. такую, в которой различия между обра- батываемым и конечным объектом минимальны. 5.12.2. Задача об обезьяне и бананах Эта задача, предложенная Дж. Маккарти в 1963 г., форму- лируется следующим образом: обезьяна и ящик находятся в комнате, к потолку которой подвешена связка бананов. Обезьяна может перемещаться по комнате, переносить ящик и забираться на него. Достать бананы она сможет только в том случае, если она заберется на ящик, расположенный в точности под бананами. Как она решает эту задачу, которая взрослому человеку кажется тривиальной? 1. Внешние условия Часть А: разное Часть В: операторы Элементы рассматриваемого простран- ства: обезьяна S, ящик С, бананы В, множество мест = {р1 р2, на-С, под-В,. . .) 01. ПОДНЯТЬСЯ. условие: Место (S)— Место (С) действие: Место (В)=на-С 02. ИДТИ, условие; переменная ,х—место действие: Место (S)= х 10*
292 ГЛАВА 5 03. ПЕРЕДВИГАТЬ. условие: переменная х — место Место (З)=т*=на-С Место (3)=Место (С) действие: Место (3)=х Место (С)=х 04. ХВАТАТЬ. условие: Место (С)— пол-В Место (З)=на-С действие: Содержимое (рука S)=B Часть С: D1 = Место различия D2 = Место (С) 03 = Содержимое (рука S) Часть D: 03 труднее, чем 02 порядок различий Часть Е: 02 труднее, чем О1 (уменьшение различий) таблица зависимостей DI D2 D3 01 X 02 X 03 X X 04 X 2. Задание задачи Главная цель Преобразовать исходный объект в конечный Исходный объектs [Место (S) = p1; Место (С) = р2, содержи- мое (рука 3) = 0] Конечный объект = [Содержимое (рука S) = В] Ввод задачи. Программа GPS ничего заранее не знает о тех задачах, которые она может решать: помимо самой за- дачи ей нужно указать пространство, в котором она должна работать. Таким образом, условие задачи содержит две части:
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 293 с одной стороны, общие характеристики; остающиеся значимыми для семейства задач, а с другой —точные данные по интере- сующей нас задаче. Комментарии и замечания. В программе предыдущая таб- лица задается практически в такой же форме, поскольку она легко воспринимается машиной. Значением одноместных пре- дикатов— «Место» и «Содержимое» — являются соответственно место и содержимое указанных переменных. Часть D задает от- носительную сложность таких действий, как изменение места обезьяны 5 и ящика С или, наконец, изменение содержимого руки обезьяны. В таблице, приведенной в части Е, крест соответ- ствует тем операторам, которые заведомо могут быть эффек- тивно использованы для уменьшения различий данного типа. Как уже было сказано, две последние части описания не являются необходимыми: они ускоряют поиск и сокращают за- пись. Решение. Программа должна последовательно уменьшить различия между исходным объектом, который мы обозначим OBi, и конечным объектом, который мы обозначим OBf, дей- ствуя в том порядке, который был ей уже задан. Для этого она будет строить промежуточные цели и объекты, связанные друг с другом естественным образом отношениями преемственности в соответствии с «генеалогическим деревом», организованным .так, как показано на рис. 5.30. На этом рисунке номера целей соответствуют порядку их создания. Сначала мы отмечаем три различия между OBi и OBf. Цель, обладающая приоритетом, состоит в уменьшении различия D3, поэтому вновь созданная цель-2 есть C(O,D3, OBi, OBf). Это различие может уменьшить только оператор 4 и, чтобы попытаться применить его к исходному объекту, создается но- вая цель: цель-3 = А (04, OBi). Однако из-за того, что оба тре- буемых оператором 4 условия в настоящий момент не удовлет- ворены (ящик находится не на том месте — различие £>2; обезьяна находится не на том месте — различие D1), достиже- ние этой цели непосредственно невозможно. Поэтому программа вводит новую цель, благодаря которой исчезнет различие, счи- тающееся наиболее важным (т. е. D2): цель-4 = С (О, D2, OBi, (Место(С)-под-В)), которая в свою очередь порождает цель-5, как только будет найден подходящий оператор. Данная цель тоже не может быть пока достигнута непо- средственно, так как нужно еще уменьшить различие D1. К этому сводится роль целей 6 и 7, которые позволяют сделать
294 ГЛАВА 5 Дает овз Рис. 5.30. Дерево поиска программы GPS для задачи об обезьяне и бананах. так, чтобы «Место(S)» было равно «Место(С)». В достижении цели-7 может быть эффективно использован оператор 02. В результате мы получаем объект ОВ1, отличающийся от исход- ного объекта: ОВ1 = Место (S) = р2, Место (С) — Р2- Содержи- мое (рука S) = 0. Отсюда программа возвращается назад к списку целей, от- метив при этом, что нам удалось уменьшить различие D1. Те- перь первая невыполненная цель — это цель-5, в соответствии с которой нужно ОВ1 поставить на место ОВ1, и тогда новая цель А (ОЗ, ОВГ) введет новый объект ОВ2. ОВ2: Место (З)-под-В, Место(С)-под-В, Содержимое(рука$) = 0.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 295 Таким же образом возвращение к цели-3 порождает еще три подцели: цель-9, 10 и 11. В цели-11 различие £Н уменьшается с помощью единственного уместного оператора 01, и, наконец, в цели-12 обезьяна достает себе бананы. Ценность этого примера состоит в том, что с его помощью можно подробно показать, как несложное обыденное рассуж- дение можно полностью разложить на последовательность эле- ментарных действий. «Механика», с помощью которой достигается данная цель, удивительно проста. Кроме того, мы сумели хорошо направить поиск, потому что мы ввели понятие различия между объек- тами нашего пространства и использовали эти различия, чтобы естественным образом создавать новые цели. Конечно, в менее благоприятном случае может оказаться так, что, создавая последовательность подцелей в соответствии с отношением прямой преемственности, программа зайдет в ту- пик, и в конечном итоге мы увидим, что последняя Цель не мо- жет быть достигнута из-за невозможности применить к ней хотя бы один оператор. Кроме того, не существует запрета на В начале: множество неизученных целей — О Bi ДО ТЕХ ПОР ПОКА остается хотя бы одна неизученная цель Выбрать некоторую неизученную цель В ЕСЛИ эта цель является главной ТО успех. КОНЕЦ, КОНЕЦ УСЛОВИЯ. ДО ТЕХ ПОР ПОКА остается еще непримененный к данной цели способ обработки: Выбрать способ М ЕСЛИ применить ЛИ к В невозможно ТО выбрать другой способ ЕСЛИ можно ТО ЕСЛИ М позволяет достичь цели В ТО отец(В) ЕСЛИ НЕТ ТО . ЕСЛИ М порождает новую цель В* ТО ЕСЛИ В* уже было порождено ТО исключить его КОНЕЦ УСЛОВИЯ ' КОНЕЦ УСЛОВИЯ КОНЕЦ УСЛОВИЯ •КОНЕЦ ЦИКЛА
1 296 ГЛАВА 5 повторное появление в процессе поиска некоторой промежуточ- ной цели. Запоминать ее в этом случае бесполезно, а следуя описанной ниже .общей процедуре, циклов можно избежать. Подход, используемый в программе GPS и изложенный в описанной выше процедуре, характеризуется тем, что выбор осуществляется с помощью таблицы зависимостей и с учетом порядка значимости различий. Ниже мы увидим, как дей- ствует эта программа в совершенно ином контексте: речь пой- дет о доказательстве теорем. 5.12.3. Задача из области формальной логики В данном случае рабочим пространством являются выска- зывания на языке логики первого порядка, но от читателя ни- каких знаний в этой области не требуется: можно рассматри- вать все это как игру, в которой мы должны манипулировать цепочками букв в соответствии с определенными правилами. Кстати, прежде чем эта задача была запущена в программу GPS, два американских психолога О. Моор и С. Андерсон (1954) предложили ее студентам, чтобы постараться понять, как действует человек в подобных ситуациях. Напомним, что в то время алгоритм унификации еще не был известен (см. гл. 3) . Пусть первая (исходная) цепочка символов есть (/? щ> ~]Р) /\ A (~i/?=> Q), а вторая (конечная)—-1(-1QAP). Требуется найти последовательность разрешенных преобразований, позво- ляющих перейти от первой цепочки ко второй. Ниже приведены разрешенные преобразования: , гО) ~1 “| A i-> А rl) А А В ।—> В А А А=> Bi—>B V А г2) A zd В I—> И В zd —| А гЗ} А К А *-> А А у А < » А г4) А А (В А С) (А А В) А С А V (В V С) (А V В) V С r5) А V В ч-* П ( “| А А И 5) л v в <-> П П .4 v П В) г 6) А zd В *-* И А V В г7) А А (В V С) (А А В) V (ДА С) А V (В А С) —> (А V В) A (А V С) г8) А Л В А А /\ ВВ г9) А -> А V X
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 297 Символы г с индексами 1 —11 не входят в правила и являются порядковыми номерами правил. Символ ь—>, расположенный между двумя цепочками симво- лов С1 и С2, читается как “можно также записать”; он озна- чает, что С1 мы всегда можем преобразовать в С2. Двойная стрелка означает, что одновременно Cli—>С2 и С2*—iCl. Кроме того, при переписывании всегда разрешается заме- нить любую букву, встретившуюся в рассматриваемом правиле, на любую другую, при условии что такая замена будет произве- дена по обе стороны знака i— Буква, перед которой стоит символ ~1, может быть заменена на любую другую. Символы, не являющиеся буквами, согласно нашей гипотезе, замене не подлежат. И наконец, некоторое правило может быть применено к данной цепочке, если, используя последовательность различных подстановок, мы сможем установить строгое посимвольное соот- ветствие между левой частью этого правила (т. е. частью, стоя- щей до символа к—>) и некоторой частью рассматриваемой це- почки. Как видно, в этом формализме буквы играют роль пере- менных в классическом исчислении высказываний; подстановка в данном случае означает замену переменной. Таким образом, начав с цепочки (Р о Q) Л S, мы можем применить правило r2 (Р соответствует A, Q— В) и полу- чить (-]Qo-]P)AS. Теперь мы можем применить правило гб (использована замена А на ~IQ и В на ~1Р), в результате чего выражение приводится к следующему виду (П~1<Э V ДР) Л S. Правила г8 — г12 (в отличие от первых восьми правил) позволяют преобразовывать цепочки только целиком. Левые части этих правил [правил продукций (гл. 3)] должны соответ- ствовать полным цепочкам, т. е. таким, для которых не за- фиксировано строгого вхождения в состав других цепочек. Так, г8 позволяет записать (PVQ)AP как (Р V Q) и как Р, но оно не может быть применено к выражению (PAQ)VP.
298 ГЛАВА 5 Построенная с учетом заданных правил подстановки табл. 5.12 соответствует таблице операторов из задачи об обезьяне и бананах: как и операторы, правила преобразуют (согласно определенному закону и при условии выполне- ния некоторых ограничений) одни объекты нашего про- странства в другие. Мы снова можем построить таблицу, указывающую, какие правила могут уменьшить: то или иное различие. • Таблица 5.12. Таблица зависимостей для решения логической задачи с по- мощью GPS rO rl г2 гЗ г4 г5 гб г7 г8 г9 rIO rll г!2 Различия . D1: добавление бук- X вы D2: устранение бук- X ВЫ \ D3: изменение числа X X символов П D4: изменение числа других символов D5: .скобки D6: перемена поряд- X X ка букв Характер возможных различий между объектами здесь бо- лее разнообразен. В самом деле, в двух произвольных цепоч- ках может быть: 1) разное число букв: увеличивающееся (D1) или умень- шающееся (П2); 2) разное число символов (D3); 3) разное число прочих связок (.04); 4) измененная расстановка скобок (05); 5) перестановка порядка букв (06). Анализируя действия, которые оказывают на эти различия наши правила, можно построить таблицу зависимостей (табл. 5.12). Здесь мы не задаем относительного порядка различий. Те- перь для программы GPS имеем: исходный объект OBi = (Р zd ~]Р) А (П7? zd Q), конечный объект OBf = П (~1Q АР). Решение. Первое различие между двумя объектами, зафик- сированное программой, состоит в исчезновении в конечном
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 299 объекте OBf переменной R. Итак, первая порождаемая нами цель — УМЕНЬШИТЬ D2 по переменной R. Как следует из таблицы зависимостей (обозначения остались те же), достичь этой цели можно с помощью правил гЗ (»—>), г 7 (*—i), r8, г11 и г12. Правило г8 (единственное среди всех) может быть не- посредственно применено к левой части OBi; оно порождает новый объект: ОВ1 = /?=э-]Р. Заметим, что при доказательстве теорем в отличие от слу- чаев обычного пространства (в частности, пространства преды- дущей задачи) применение правила не уничтожает исходного объекта; преобразование лишь добавляет в наше пространство новый объект. Это облегчает работу, поскольку нам больше не нужно возвращаться назад, чтобы оказаться в одном из преж- них состояний (в то время как обезьяна не могла одновременно находиться в двух различных местах, здесь все объекты сосу- ществуют во времени). Левые части правил r3 (>—>), fl (<-), rll и г!2 в данный момент не могут быть поставлены в соответствие цепочке О Bi. Итак, мы отмечаем различия и добавляем подцели типа С (О, Л, OBi, левая часть г;), где / = 3, 7, 11, 12. Кроме того, програм- ма GPS отмечает, что правило г8 может быть применено к OBi некоторым другим способом. Общая стратегия GPS в выборе цели, которая станет нашей отправной точкой на следующем этапе, состоит в том, чтобы раскрывать цель, расположенную на дереве поиска, на макси- мальную глубину. В данном случае такой целью является ОВ1. Если сравнить ОВ1 и OBf, то мы обнаружим, что они обладают различиями DI и D2 (поскольку при переходе от OBi к ОВ\ исчезла не буква R, а буква Q). Программа GPS устанавливает, что данная подцель, в ко- торой нужно одновременно уменьшить два различия, является более сложной, чем первичная цель. Поэтому мы оставляем эту подцель и переходим к более глубоко расположенной цели, ко- торая еще не была раскрыта: это соответствует применению правила г8 к правой части OBi. Однако R все еще не исчезло, и мы продолжаем поиск, используя в преобразовании OBi пра- вило г7. „ Таким образом, начальный этап поиска решения данной за- дачи с помощью GPS показан в реальном порядке обработки на приводимой ниже схеме (в фигурных скобках даются некоторые комментарии).
300 ГЛАВА 5 Цель-1: ПРЕОБРАЗОВАТЬ OBi в OBf. Дель-2: УМЕНЬШИТЬ D2 (переменная Р). Цель-3: ПРИМЕНИТЬ г8 к левой части OBi: дает OBI s “] Р. Цель-4: ПРЕОБРАЗОВАТЬ ОВ1. в OBf. Цель-5: УМЕНЬШИТЬ D2 (пере- менная Q). Цель-6: УМЕНЬШИТЬ DI (перемен- ная R). ВОЗВРАТ: {Слишком высокая стоимость по сравнению с Цель-1} {рестарт Цель-2} Цель-2: Дель-7: ПРИМЕНИТЬ г8 к правой части OBi: дает ОВ2 = П Rzd Q Цель-8: ПРЕОБРАЗОВАТЬ ОВ2 в OBf. Цель-9: УМЕНЬШИТЬ D2 (перемен- ная Р). УМЕНЬШИТЬ DI (пере- менная R). ВОЗВРАТ: {Слишком высокая стоимость по сравнению с Цель-1} Дель-2: Цель-10: ПРИМЕНИТЬ г7(<-) к OBi. {Невозможно, и потому порож- дается новая цель} Цель-11: УМЕНЬШИТЬ 04 в левой части О В] (связка V). Цель-12: ПРИМЕНИТЬ гб к OBi {Поскольку непосред- ственно осуществить предыдущее уменьше- ние невозможно} дает OB3=(~]/?VP)A A(~]J?=jQ) Цель-13: ПРИМЕНИТЬ г7 (*-) к ОВ8 | {Новая попытка}
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 301 Цель-14: УМЕНЬШИТЬ 04 в правой части ОВ4 (связка V). Цель-15: ПРИМЕНИТЬ гб к ОВЗ: дает ОВ4 = A(~OBVQ) Цель-16: ПРИМЕНИТЬ г7 (<—) к ОВ4 {Новая попытка} Цель-17: УМЕНЬШИТЬ D3 в левом компоненте правой части ОВ4 (связка V) Цель-18: ПРИМЕНИТЬ гб к правой части ОВ4 ВОЗВРАТ: {Мы опять получаем ОВЗ} {Рестарт. Цель-2} Цель-2: Цель-19: ПРИМЕНИТЬ гЗ к OBi . . . Программа GPS продолжает поиск. Прежде чем прийти к изображенной ниже схеме, она уже породила 52 цели: Цель-53: ПРИМЕНИТЬ гЮ к ОВ2: неудача, условие: найти = Цель-54: ПРЕОБРАЗОВАТЬ OBi в ОВЮ. Цель-55: ПРЕОБРАЗОВАТЬ ОВ1 в ОВЮ {Эквивалентная цель, считающаяся более легкой} Цель-56: УМЕНЬШИТЬ D3 Цель-57: ПРИМЕНИТЬ г2 к ОВ1 дает ОВ11=~1"1 В =>-}/?. Цель-53 {рестарт}: ПРИМЕНИТЬ г 12 к OBI 1 и ОВ2: | дает ОВЮ ^~ПР=э(?. Цель-8 {рестарт}: ПРЕОБРАЗОВАТЬ ОВЮ в OBf. Цель-58: УМЕНЬШИТЬ ОЗ (переменная В) Цель-59: ПРИМЕНИТЬ гО к ОВЮ: дает ОВ13 В гз Q.
302 ГЛАВА 5 Цель-60: УМЕНЬШИТЬ /)4 (связка Г>). Цель-61: ПРИМЕНИТЬ г6(->) к ОВ13: дает 0/314== Р V Q- Цель-62: УМЕНЬШИТЬ D4 (связка V). Цель-63: ПРИМЕНИТЬ г5(->) к ОВ14: даётОВ15=-](-]“|РД-|р) Цель-64: УМЕНЬШИТЬ 03. Цель-65: ПРИМЕНИТЬ гО к 0В15: дает 0016 Цель-66: УМЕНЬШИТЬ 06. Цель-67: ПРИМЕНИТЬ rl: дает 0017 =s ~| (“) Q А О) {Успех} КОНЕЦ. На этих двух примерах мы убеждаемся, что способ рас- суждений, который мы используем при решении этого типа задач “вручную”, несущественно отличается от метода, приме- няемого в GPS. Идея состоит в том, чтобы, решая задачу, вести рассуждения в терминах различий и характеризовать операторы в соответствии с тем, какие различия они способны уменьшить. Конечно, нередко мы хорошо “чувствуем” рабочее простран- ство, что иногда позволяет нам действовать более прямо и ме- нее тупо, чем программа GPS. Но ведь мы также способны и быстро сдаваться там, где GPS продолжает работать и в конце концов добивается результата! На рис. 5.31 приведено дерево поиска для данной за- дачи. 5.12.4. Другие задачи, которые можно решить с помощью GPS Последняя версия программы GPS, разработанная Эрнстом и Ньюэллом (1967), была рассчитана на одиннадцать различ- ных типов задач. Ей требовалось ~ 20 с на каждую порожден- ную цель. Таким образом, для решения задачи об обезьяне и бананах, порождающей 13 целей, требовалось ~4 мин на ЭВМ типа ИБМ 7090 Унивеситета Карнеги — Меллона, США. Формальное интегрирование. Первая задача в этом новом цикле состояла в том, чтобы проинтегрировать функцию tetfdt. Результат е*2/2 получался за 3 мин после порождения 11 це- лей. Выражение [sin2 at cos а<+ t-1] dt интегрируется с резуль-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 303 Рис. 5.31. Дерево поиска программы GPS решения логической задачи. ДЛЯ татом log Z(3a)-1sin3aZ за время приблизительно вдвое боль- шее с порождением примерно в два раза большего числа целей. Отметим, что в данном пространстве конечный объект не слишком хорошо задан. В самом деле, здесь к нему предъяв- лено лишь одно требование — не содержать знака интеграла. Задачи такого типа не становятся от этого более сложными; на- до лишь ввести для возможных различий абсолютную шкалу приоритетов, причем в начале списка будет стоять исчезновение знака интеграла. В данном случае в программу GPS ввели шесть операторов, хорошо приспособленных к шести стандартным
304 ГЛАВА 5 случаям интегрирования, а также четыре оператора диффе- ренцирования. Еще один оператор отмечает, что интеграл суммы равен сумме интегралов. Классические алгебраические действия '—сложение и умножение, а также свойства ассоциа- тивности и коммутативности программируются отдельно и включаются в GPS. Миссионеры и людоеды. Три миссионера и три людоеда находятся по одну сторону реки, через которую они хотят пере- правиться. В их распоряжении имеется лодка, которая может выдержать вес только двух человек. Кроме того, если в какой- то момент число людоедов станет больше числа миссионеров, миссионеры будут съедены независимо от того, на каком бере- гу реки это случится. Как им всем переправиться в лодке на другую сторону реки? В данном случае объекты состоят из двух частей, каждая из которых соответствует тому, что находится на каждом из берегов реки. Каждая часть содержит описание числа миссио- неров, числа людоедов и указание на наличие или отсутствие лодки. Итак, для каждого из двух направлений передвижения мы располагаем пятью операторами преобразования, поскольку на лодке может находиться либо один людоед, либо один мис- сионер, либо людоед с миссионером, либо два людоеда, либо, наконец, два миссионера. Программа GPS, используя характерный для нее подход “цели — средства” и легко имитируемая вручную, строит 57 це- лей и приходит к следующему решению: (3, 3, 1)(2, 2, 0) -> (3, 2, 1)^(3, 0, 0) -> (3, 1, 1, 0)-> (0, 0, 0) <- (1, 1, 1) <- (0, 1, 0) <- (0, 3, 1) <- (0, 2, 0) <- (2, 2, 1) <- На этой схеме берег, с которого началось перемещение, опи- сывается в следующем виде: число миссионеров, число людое- дов, наличие (1) или отсутствие (0) лодки. Отметим, что дан- ное решение является симметричным по отношению к шестому пересечению реки. В действительности это свойство имеет объ- яснение и сохраняется в других примерах той же задачи, как показано Саулом Амарелем (1968). Ханойская башня. Эта задача, придуманная французским математиком Эдуардом Люка, представляет собой головолом- ку, в которой нужно перекладывать кольцо с одного стержня на другой. В начальный момент времени имеются три стержня А, В и С и четыре кольца, каждое из которых по внешнему диа- метру строго меньше предыдущего; все кольца надеты на стер- жень А так, что самое маленькое находится наверху. За один
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 305 ход мы можем переместить одно верхнее кольцо с одного стержня на другой; при этом класть большие диски на мень- шие запрещено. Как переложить все кольца с Л на С? Как и в предыдущих задачах для использования одного из Щести допустимых операторов должны быть выполнены неко- торые условия. В этом примитивном пространстве GPS решает задачу за 46 этапов, не порождая ни одной бесполезной цели, Три монеты. На столе лежат три монеты: две крайние — кверху решеткой, средняя — кверху гербом. Ход состоит в пе- реворачивании двух произвольных монет. Задача заключается Рис. 5.32. Семь мостов через Преголю. в том, чтобы только за три хода перевернуть все монеты так, чтобы они легли одной стороной вверх. В описание объектов включен счетчик, который учитывает это ограничение. Для пол- ного решения данной задачи программе GPS достаточно поро- дить 10 целей. Семь мостов через Преголю. Река Преголя в Калининграде отделяет от берегов два острова, которые соединены друг с дру- гом и с остальной частью города семью мостами (рис. 5.32). В данной задаче операторы соответствуют четырнадцати возможным перемещениям. Задача состоит в том, чтобы выйти из произвольной точки и вернуться в нее, пройдя по каждому мосту Только один раз. Как доказал Леонард Эйлер в 1736 г., решить эту задачу невозможно. Поскольку особых способов решения наша про- грамма не знает, в данном случае она терпит поражение. Един- ственное, что может программа, — перебрать все возможности, но уже после перебора различных способов прохождения по шести мостам объем памяти компьютера оказался исчерпанным. Два кувшина. Имеется неограниченный запас воды и два кувшина на 5 и 8 л. Как налить в маленький кувшин 2 л воды?
306 ГЛАВА 5 После нескольких попыток, обусловленных существенной разницей между двумя крайними ситуациями, GPS решает за- дачу, выделив при этом 24 цели. Отец и сыновья. Отец, два его сына и лодка находятся по одну сторону реки. Отец весит 80 кг, сыновья — по 40 кг каж- дый. Как переправить эту семью на другую сторону, если лод- ка выдерживает только 80 кг? Программа дает ответ, обработав 33 цели. Продолжение последовательности букв. Требуется к после- довательности букв BCBDBE добавить 2 следующие буквы. Подобно другим тестам такого типа, эта задача ставит фундаментальный вопрос о мере простоты результата. В дан- ном случае мы можем допустить, что равным образом подой- дут продолжения BF и ВС. В случае ответа ВС последователь- ность будет повторяться с самого начала. Что касается ответа BF 11 (в принципе более предпочтительного), в общем случае он не является однозначным. Итак, здесь особенно важен тот спо- соб, которым задача записывается для GPS. Эта запись менее очевидна, чем в рассмотренных выше случаях. Объекты задают- ся не в виде последовательностей букв, а в виде частичных по- следовательностей с определенными отношениями между бук- вами. Две буквы могут быть связаны либо отношением тожде- ства, которое указывает на их идентичность, либо отношением следования, указывающим на то, что вторая буква стоит в алфа- вите после первой. Что касается конечного объекта, то на него накладываются три ограничения, которые должны быть выполнены, как только мы преобразуем исходный объект. Первое состоит в том, что должны быть заполнены пробелы- (в нашем случае два имею- шихся пробела заменяются двумя буквами — х и у). Второе ограничение требует, чтобы множество отношений, позволяю- щих описать конечную цепочку, было как можно более простым: если одна и та же цепочка описывается с помощью одного и того же набора отношений двумя различными способами, то более простым считается то описание, в котором операнды от- деляются друг от друга минимальным числом букв. Третье ог- раничение состоит в том, что каждая буква должна участвовать по крайней мере в одном отношении. В основном можно при- менять два оператора: один приписывает двум буквам в после- довательности некоторое отношение, а другой — букве опреде- ленное значение. Кроме того, возможен третий оператор, кото- ” F идет за Е во французском алфавите, и в этом смысле BF должно следовать за ВС, BD, ВЁ. — Прим. ред.
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 307 рый задает порядок прохождения последовательности слева направо. Таким образом, программа GPS постепенно обнару- живает и отмечает присущие последовательности свойства. При- писывая заранее значения буквам х и у, GPS не вслепую, а логически выводит те значения, которые она должна выбрать, чтобы эти буквы вступали в те же отношения, что и буквы, ко- торым они соответствуют. Следовательно, для программы GPS изучение исходного объекта приводит к схеме, показанной на рис. 5.33. Пробегая заданную последовательность слева направо, GPS отмечает отношение тождества между первой и третьей Следование Следование Следование I 1Г----------------II-----------1 - в —С —*------В —»---D —»— В Е -*— х у Тождество Тождество Рис. 5.33. Последовательность букв, которую требуется продолжить. и третьей и пятой буквами. Поэтому, чтобы это отношение было опять подтверждено, GPS должна принять значение В. Остав- шаяся часть последовательности обрабатывается параллельно. В целом для получения правильной последовательности с по- мощью такого индуктивного метода программа порождает 27 целей. Грамматический анализ. Проанализируем фразу естествен- ного языка в соответствии с заданной грамматикой. В число грамматических правил, введенных в нашу программу, входят следующие правила: rl: Фраза содержит именную группу, за которой следует гла- гольная группа, а за ней вновь следует именная группа. г2: Именная группа может состоять из группы прилагательно- го, за которой следует слово, выполняющее функции су- ществительного. гЗ: Именная группа может состоять из слова, выполняющего функции существительного. г4: Группа прилагательного может состоять из слова, выпол- няющего функции прилагательного. Еще одно правило уточняет, что, например, слово porte («дверь» или «несет») может быть либо именем существитель- ным, либо глаголом, fort («форт» или «сильный») может быть либо существительным, либо прилагательным..
308 ГЛАВА 5 Итак, пусть основная цель состоит в том, чтобы квалифи- цировать последовательность символов une epaisse porte ferme le fort (исходный объект) как фразу (конечный объект). По- скольку epaisse (толстый) может относиться только к классу прилагательных, наша программа делает вывод, что porte ис- пользуется здесь как существительное, а также делает предпо- ложение о том, что ferme является глаголом (закрывает), сле- довательно’, fort — существительное. Исходная английская фраза — free variables cause confu- sion (свободные переменные причиняют неудобства)—анализи- руется с помощью 19 целей. Эта задача демонстрирует преиму- щества эвристического метода для некоторых типов алгорит- мов (например, таких, которые используются в синтаксическом анализе). Доказательство теорем. Кроме задачи исчисления высказы- ваний программа GPS может доказывать некоторые теоремы из области исчисления предикатов первого порядка, используя особый метод, получивший название резолюции (он был пред- ложен в 1931 г. Жаком Эрбраном и запрограммирован в 1965 г. Дж. А. Робинсоном — см. гл. 3). Классическая теорема Черча (1965), в которой утверждает- ся, что [[Р (и, у) (Р (у, z) A Р (z, z))] А [Р (и, у) A Q («, !/)]] => [Q (и, г) A Q (z, z)], после упрощения, сколемизации и приведения к требуемому для метода резолюции виду (все предикаты приведены к нор- мальной конъюнктивной форме, а кванторы исключены), может быть доказана с помощью GPS. Доказательство завершается после того, как порождение 59-й цели позволяет обнаружить противоречие. 5.12.5. Заключение Итак, несмотря на то что программа GPS работает доволь- но медленно и порождает иногда большое число промежуточ- ных целей, с ее помощью (используя идею выявления различий между исходным и конечным объектами и возможные спо- собы уменьшения этих различий) можно решать многие нетри- виальные задачи. Улучшив программу GPS за счет использова- ния таблиц зависимостей и задания точного порядка различий, исследователи вернулись к этим идеям, сумев применить их в двух областях: в области формального интегрирования (про-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 309 грамма Saint Дж. Слэйгла, 1963) и в логике (Дж. Кинлэн, 1969). Следует, однако, отметить, что множество задач, решаемых GPS, не очень представительно: все они более или менее одно- типны и ни одна из них не является по-настоящему сложной. Если GPS решает задачу, то это обусловлено тем, что заранее известно, что она умеет обрабатывать данный тип задач, а так- же что в любом случае она может существенно сократить по- исковое пространство. Кроме того, оказывается, что метод различий может при- меняться только в том случае, если при решении не исполь- зуется целостное «видение» задачи, т. е. этот метод «близорук»: он исходит из предположения, что к решению ведет некий не- прерывный путь, что никогда не придется идти в обход и что задачу можо разбить на последовательность элементарных эта- пов, приблизительно равных по значимости. Безусловно, су- ществует большой класс задач (в него, кстати, входят логиче- ские головоломки и формальные задачи), для которых эти ус- ловия не удовлетворяются. В гл. 6—8 мы рассмотрим многие из таких задач. И наконец, следует отметить, что записать условие задачи в необходимом для GPS виде не так просто. Действительно, по- добная запись условия “предугадывает” решение: в каждом случае мы должны задать системе множество подходящих раз- личий, таблицу зависимостей, а также дополнительную инфор- мацию. Кроме того, для описания некоторых ситуаций с по- мощью операторов мы должны быть достаточно “изобрета- тельными” (например, в задачах о семи мостах через Преголю и о продолжении последовательностей букв). Однако вот уже более 25 лет замысел этой программы не перестает восхищать.
Глава 6 ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ В интеллектуальных играх соревнование между участника- ми заключается в том, что они поочередно принимают решения, не зная, какое следующее решение примет противник. Класси- ческий подход, реализуемый мыслящим существом для реше- ния этой задачи, состоит в прогнозировании последующих хо- дов — своих и ответных ходов противника: если я сделаю такой ход, тогда противник может ответить тем или другим ходом, на каждый из этих ходов в моем распоряжении имеется такой-то и Рис. 6.1. Пример дерева при поиске хода в шахматах. такой-то ответ и так далее. Таким образом можно построить де- рево допустимых ходов (рис. 6.1) и возможных игровых по- зиций. В результате более или менее длительного анализа, взвесив все “за” и “против” той или иной позиции, играющий делает ход (назовем его ходом первого уровня), который ему представ- ляется наилучшим. Игровые программы, составленные для ЭВМ, основаны на тех же принципах, и в данной главе содер- жится описание наиболее общих методов их разработки. В начале главы рассмотрен способ программного построе- ния дерева допустимых ходов и преимущества, которые дает его использование. В разд. 6.2 речь пойдет о методах оценки возникающих позиций, для которых Клод Шеннон в 1950 г. ввел понятие оценочной функции. В разд. 6.3 и 6.4 изложены
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 311 основные методы поиска очередного хода и их усовершенство- ванные модификации. Показано также, насколько эти методы аналогичны процедурам решения задач с применением теории графов. ' В конце главы дан анализ рассмотренного подхода и рас- смотрены его недостатки и ограничения. В разд. 6.8 вкратце изложены особенности принципально другого подхода, приме- няемого для решения данной задачи. 6.1. Дерево допустимых ходов Необходимость построения дерева связана в первую очередь с тем, что не существует способов точной оценки исходной пози- ции. Так, в начале шахматной партии невозможно предсказать выигрыш белых или черных при безупречной игре обеих сторон. Построение дерева допустимых ходов в какой-то степени ком- пенсирует этот недостаток. В идеальном случае следовало бы найти весьма большое число ходов, которые в конце концов привели бы к одной из точно определяемых финальных пози- ций: один из королей получает шах и мат; один из противников объявляет вечный шах; один из королей получает пат. К сожа- лению, в большинстве случаев это не так. В начале шахматной партии каждый противник имеет воз- можность сделать 20 различных ходов. Следовательно, после первого обмена ходами на доске уже возможны 400 различных позиций, но, естественно, нельзя заранее определить, какая именно из них возникнет на самом деле. Проводя анализ игры, можно последовательно рассматривать ходы обеих сторон, но заметим, что к середине партии число хЬдов уже достигает 50, а число ветвей дерева будет составлять величину К", где К — постоянное число допустимых ходов на каждом уровне для каждого играющего, а п— порядковый номер хода. На практи- ке для шахмат можно положить К = 40. и для 6 ходов число ветвей составит 406 = 4 096 000 000. При переходе на каждый следующий уровень это немалое число нужно еще умножить на К, что увеличивает объем вычислений, и, в частности, время, необходимое для поиска ходов и оценки конечной позиции. Они экспоненциально растут с увеличением глубины анализа, что де- лает невозможным точный просмотр ситуации на достаточно большую глубину. Даже сверхпроизводительная ЭВМ, которая в состоянии проанализировать 10 конечных состояний в 1 с, за время непрерывной работы со дня образования Солнечной си- стемы, т. е. 4,6 млрд, лет, была бы способна проанализировать “только” ЮХ 4,6 X Ю9 X 366 X 24 X 3600 позиций, что состав- ляет 15-1018 или — 4012 позиций, или 12 ходов, т. е. по 6 ходов
312 ГЛАВА 6 с каждой стороны, что всего в 2 раза больше, чем рассмотрен- ная выше глубина анализа, равная 6. Даже такая ЭВМ не смогла бы рассчитать все варианты всего на 12 ходов вперед! В то же время известно, что средняя шахматная партия про- должается обычно не менее 40 ходов. Именно это противоречие вызывает интерес к игре в шахматы и составляет ее очарование. Впрочем, исследования в области искусственного интеллекта часто направлены на решение задач, аналогичных тем, которые возникают в шахматах — раз- работке методов борьбы с ла- винообразным нарастанием времени анализа игровых си- туаций. При этом основная цель состоит не столько в со- ставлении хорошо играющей программы, сколько в разра- ботке общих методов, которые можно было бы перенести в другие области и с их по- мощью решать другие пробле- мы. Играми, представляющи- Рис. 6.2. Доска для игры в тик- так-ту. ми интерес с точкц зрения искусственного интеллекта, являются такие игры, для которых дерево допустимых ходов невелико, что дает возможность пол- ностью рассчитать все возникающие позиции с помощью совре- менных ЭВМ. Такими играми являются, например, тик-так-ту, двух-, трехходовые шахматные задачи или еще некоторые игры, называемые Ним, для позиций которых удается построить хоро- шую оценочную функцию. В это же число входят и игры со спичками, ставшие популярными благодаря фильму Алена Ресне “Последний год в Мариенбаде”. Игра тик-так-ту ведется на поле из 9 клеток. Оба играющих имеют по три фишки. В первом туре играющие по очереди рас- ставляют свои фишки (по одной за ход) на свободных клетках. Во втором туре, когда размещены все 6 фишек, играющие по- очередно перемещают по одной фишке на свободные соседние клетки. Соседней считается клетка, расположенная в одном шаге от данной. Направления шагов, связывающих клетки, по- казаны на рис. 6.2. Выигрывает тот, кто первым расположит свои фишки по прямой линии. Отметим, что определение последовательности ходов, разре- шенных правилами этой игры, не представляет трудностей и хо- рошо поддается алгоритмическому описанию. Найдем принцип построения алгоритма в общем виде для игр с двумя игроками, в которых используются фишки, расположенные на клетках иг-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 313 Таблица 6.1 Занятость (i, j) Фишка (i, /) Введем п направлений Разрешенные направле- на Состояние поля на текущий момент. Оно может быть пустым, занятым своей фишкой или фиш- кой противника Вид фишки на поле в том случае, когда заня- тость (i, /) =/= пусто Полное число возможных перемещений фишки в игре Те из направлений, которые разрешены для фиш- ки р рового поля. При поиске хода для одного из играющих рассмот- рим последовательно клетки, занятые его фишками. Для каж- дой из фишек опишем перемещения во всех разрешенных пра- вилами направлениях.'Введем для каждой клетки величины, представленные в табл. 6.1. Очевидно, что в игре тик- так-ту имеется 8 возможных направлений перемещения фи- шек. Все фишки имеют одина- ковое значение и могут пере- мещаться во всех разрешен- ных направлениях. Случаи вы- хода фишки за пределы игро- Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах). вого поля рассмотрены ниже. В шахматах существует 16 возможных направлений пере- мещения фигур: 8 рассмотренных выше и 8 “специальных” на- правлений для коня. Для пешек разрешено только одно направ- ление,, для ферзя —8. Каждое направление характеризуется парой чисел (dx, dy), определяющих ,его наклон. В табл. 6.2 приведены значения этих пар для направлений, показанных на рис. 6.3. Таблица 6.2 1 2 3 4 5 6 7 8 dx 1 1 0 — 1 -1 — 1 0 г dy 0 1 1 1 0 -1 -1 -1 Фигура р может перемещаться в каждом из разрешенных для нее направлений на некоторое число шагов, максимум ко- торого обозначим через пpas шах(р). Его величина зависит от вида фигуры:
314 ГЛАВА 6 в шахматах, п pas max = 1 для короля и 8 для ферзя, а для всех фишек тик-так-ту п pas max = 1. Если ход. заключающийся в перемещении фигуры, не приводит к ее выходу за пределы игрового поля и заканчивается на свободной клетке или клетке, занятой фигурой противника с взятием последней в соответствии с правилами, тогда ход Считается допустимым и принимается. В шахматах, кроме того, существуют особенности, связанные с рокировкой, взятием на проходе, запретом на ходы, приводя- щие к шаху своему королю, превращением пешек, которые тре- буют дополнительных усилий по их обработке, но принцип по- иска хода- всегда можно описать следующим образом: ПОВТОРЯТЬ ДЛЯ ВСЕХ полей (z, /) доски ЕСЛИ поле (г, /) занято своей фигурой ТО р<- фигура (г, /); [своя фигура на поле (г, /)] ПОВТОРЯТЬ ДЛЯ ВСЕХ направлений е [1. число направлений] ЕСЛИ направление е множество разрешенных направлений (р) ТО х*—г; у* ! ПОВТОРЯТЬ ДЛЯ ВСЕХ шагов <=[ 1, n pas max (р)] х<—x-f-dx (направление) y<-y-\-dy (направление) ЕСЛИ (х, г/)е в пределах доски И поле (х, у) =/= свое ТО зарегистрировать ход: [(г, /)->(х, р)] КОНЕЦ ЕСЛИ КОНЕЦ ПОВТОРЯТЬ КОНЕЦ ЕСЛИ КОНЕЦ ПОВТОРЯТЬ КОНЕЦ ЕСЛИ КОНЕЦ ПОВТОРЯТЬ Из приведенного выше ясно, что наиболее простой способ огра- ничения дерева заключается в ограничении глубины анализа числом 1. В этом случае необходимо: 1) найти все допустимые ходы; 2) оценить их; 3) сделать наилучший из оцененных хо- дов. Принимая во внимание, что партия должна закончиться вы- игрышем или проигрышем, возможный процесс игры можно представить в виде:
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 315 ЕСЛИ существует выигрывающий ход ТО сделать его; конец. ИНАЧЕ рассмотреть другие разрешенные ходы; пусть с — следующий ход ЕСЛИ существует выигрывающий ответ противника на ход с ТО исключить ход с ИНАЧЕ учесть число возможных ответов противника после хода с (повторный вызов процедуры поиска хода) КОНЕЦ ЕСЛИ Сделать ход, на который противник имеет мини- мальное число ответных ходов КОНЕЦ ЕСЛИ Стратегия «первого тик-так-ту, приведенную лучший ход, используя страте- гию первого уровня. По правилам игры сущест- вует всего 4 допустимых хода: уровня». Рассмотрим позицию в игре на рис. 6.4. Покажем, как найти наи- а: (3,2) ->(3,1) Ь: (2,1) —(3,1) с. (2,1)—>(1,1) 3) Рис. 6.4. Ход черных. d: (1,3) —>(1,2) Ни один из них не является непосредственно выигрывающим, а ход d приводит к немедленному проигрышу, поэтому сразу его отбросим. Один из трех оставшихся ходов, а именно ход а, дает возможность противнику ответить четырьмя ходами, а два дру- гих — тремя. Оба последних хода приведут к выигрышу, в чем можно убедиться, применяя ту же стратегию. Анализ других позиций этой игры показывает, что для нее подобная стратегия является вполне приемлемой. Но при этом необходимо сделать два замечания. Замечание 1. Рассмотренная стратегия первого уровня в принципе может быть применима и к любому уровню. В тех случаях, когда нельзя построить полное дерево ходов, с ее по- мощью можно проводить анализ ходов на любую выбранную глубину, используя определенные числовые значения в возни- кающих ситуациях. Таким числовым значением может быть,
316 ГЛАВА 6 например, число возможных ответных ходов противника. В кон- це концов после полного перебора всех позиций, вместо них ис- пользуют логические величины ВЫИГРЫШ или ПРОИГРЫШ. Замечание 2. Стратегия первого уровня может применяться независимо от вида игры. Она дает хорошие результаты в игре тик-так-ту, позволяя избежать запоминания полного дерева до- пустимых ходов. Ее можно использовать в дебюте и на других стадиях шахматной партии. Она пригодна и в других настоль- ных играх, где все свободные клетки равноценны. В общем слу- чае эта стратегия может быть применима к любой игре с двумя участниками и допускает определенные модификации в зависи- мости от вида игры. На рис. 6.5 приведен пример полного дерева для игры тик- так-ту, содержащего все допустимые ходы для случая, когда черные начинают игру ходом своей фишки в центр игрового поля. При таком ходе победа черных обеспечена при любых ответных ходах противника. Из-за симметрии игрового поля только 2 ответных хода белых являются существенно различ- ными — ходы на клетки а и Ь, рассмотрением которых мы и ог- раничимся. Ходы на клетки с, g и i эквивалентны ходу на клет- ку а, в ходы на клетки d, f и h — ходу на клетку Ь. За счет этого ширина дерева сразу уменьшается в 4 раза. Затем, (для экономии места и времени) мы учтем только наилучшие ходы черных на каждом уровне, т. е. такие ходы,' которые неизбежно приводят к выигрышу. Таким образом, представленное на рис. 6.5 дерево содержит легко определяемую последователь- ность ходов. Заметим, кстати, что кроме первого уровня, все ходы белых являются вынужденными вплоть до восьмого, ко- торый уже не имеет значения, — черные выигрывают в любом случае. В тех же случаях, когда не может быть построена удовлет- ворительная оценочная функция'или если число допустимых хо- дов слишком велико для того, чтобы построить полное дерево, надо найти способ ограничить это дерево. Такая необходимость возникает в шахматах, шашках, игре триктрак, бридже, покере, Отелло, морпионе, го и т. д. Известны два способа ограничения разрастания дерева допустимых ходов по ширине и по глубине. Ограничение по ширине достигается отбрасыванием ходов, ко- торые можно считать слабыми в данной позиции. Например, если ферзь находится под боем, можно не рассматривать ход пешкой на другом конце доски. На самом же деле и здесь воз- никают проблемы, так как такой ход чуть позже может приве- сти к скрытому шаху или вилке. А это в свою очередь может привести к мату или ходу, спасающему оставленного под боем ферзя, а возможно, и к превращению. продвинутой пешки
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 317 Первый ход белых Первый ход черных Третий ход черных (вынужденный) Выигрыш черных На выбор (по жела- нию) Второй ход белых (вынужденный любой другой ход приводит к немед- ленному проигрышу) Второй ход черных (лучший ход) Третий ход белых (снова вынужденный) Конец первого тура Четвертый ход черных (Лучший ход) Рис, 6.5. Полное дерево ходов в игре тик-так-ту. Выигрывает тот, кто де- лает первый ход.
318 ГЛАВА 6 в ферзя. Иначе говоря, мы возвращаемся к не имеющей реше- ния проблеме — оценке произвольной позиции, на основании которой можно было бы точно судить о силе того или иного хода. При попытке уменьшить ширину дерева чаще всего от- брасываются ходы, связанные с жертвами, т. е. такие ходы, ко- торые дают временное преимущество противнику для того, чтобы через несколько ходов добиться выигрышной позиции. Почти все реально используемые алгоритмы в отличие от человеческого разума не допускают никакого ограничения по ширине дерева. Человек обладает гораздо лучшим общим ви- дением позиции, культурой шахматного мышления, собствен- ной стратегией, которой он руководствуется в данной партии, что, несомненно, позволяет ему лучше, если не безупречно, оце- нивать позицию. Для ЭВМ такая оценка не является невозмож- ной (разд. 6.5), но для этого, разумеется, нужно использовать более сложные методы, чем изложенный здесь подход. Однако, если нельзя избежать экспоненциального увеличения времени вычислений за счет уменьшения ширины дерева, это нужно сде- лать за счет уменьшения глубины анализа. Первая идея на этом пути состоит в следующем: раз и на- всегда надо признать, что можно не идти в глубину слишком далеко и что средняя глубина анализа устанавливается на ос- нове несложных предварительных расчетов и разумного време- ни поиска решения, которое зависит от производительности ис- пользуемой ЭВМ. Обычно глубина анализа составляет ~5 (во всяком случае не более 10 “полуходов”— передвижений белых или черных фигур). Вторая идея заключается в том, что глубина анализа не обязательно должна быть одинаковой для всех ветвей дерева. В частности, нежелательно прерывать анализ посередине серии разменов фигур — подобные нестабильные позиции трудно под- даются оценке. Такие Же замечания можно сделать по поводу позиций, в которых взятие фигур происходит вследствие шаха королю противника. В подобных случаях анализ позиций каж- дой из сторон должен прекращаться только тогда, когда пози- ция становится относительно спокойной. Заметим, что подобные идеи впервые были использованы английским математиком Аленом Тьюрингом, который начиная с 1951 г. моделировал эту стратегию на вполне конкретных примерах. 6.2. Оценивание позиций Теперь речь пойдет о том, чтобы каждой позиции S поста- вить в соответствие числовую величину F(S), которая прини- мала бы тем большие по абсолютной величине отрицательные
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 319 значения, чем большим является преимущество противника. Конечно, не существует никакой теории, с помощью которой можно было бы получить для шахмат точный вид функции F, но можно получить лишь знак оценки для некоторых известных дебютов. В отдельных случаях результаты могут быть еще хуже, например при позиционном преимуществе можно полу- чить даже отрицательную оценку. Именно в этом состоит основ- ная причина несовершенной игры программ •’такого типа. И если все-таки используется такой подход, то нужно при каждом пло- хом ходе программы попытаться внести изменения в вид функ- ции F, которые привели бы к устранению ошибки. Наиболее важной частью оценки всегда является мате- риальная сторона: первый член функции F пропорционален алгебраической сумме стоимостей фигур с той и другой сто- роны и называется балансом (В). Стоимости шахматных фигур подсчитываются обычным образом: пешка стоит 1, конь и слон —3, ладья — 5 и ферзь— 1(Х Полный вид функции F имеет полиномиальную форму, где к уже рассмотренному материаль- ному балансу добавляются члены, оценивающие другие аспек- ты игровой позиции: F (S) = аВ + bR + сМ + dC + еР + fA. Если одной из сторон удалось выиграть слона (+3), но при этом проиграть 'пешку (—1), то первый член функции будет равен 2а, где величина коэффициента а, как. и b, с, d, е и f, за- висит от “коварства” программиста. Следующие члены идут в порядке убывания их важности. Величина R учитывает отно- сительную безопасность обоих королей и является тем большей, чем лучше защита короля после рокировки. Коэффициент b должен изменяться в течение партии, t a по мере исчезновения с доски главных фигур может стать нулевым. При этом короли начинают поддерживать свои пешки и даже помогать в атаке, защищая свои собственные фигуры. Член М характеризует подвижность фигур. Он зависит от числа клеток, на которые могут сделать ход фигуры. Для каж- дой фигуры вводится весовой коэффициент, зависящий от ее игровых возможностей. Член С зависит от степени контроля за центром доски, т. е. за полями d4 и d5, е4 и е5. Связанный с ним коэффициент d имеет большие значения только в начале и середине партии. Член Р служит для учета структуры пешеч- ного строя. Он тем больше по величине, чем лучше Пешки за- щищены и внедрены в лагерь противника, а также чем больше у противника сдвоенных, изолированных и незащищенных пешек.
320 ГЛАВА 6 Наконец, последний член А учитывает атакующие возмож- ности позиции и зависит от наличия защищенных фигур за чет- вертой горизонталью, ладей на открытых вертикалях, сдвоен- ных ладей, атакованных полей вблизи короля противника, а также от возможности разменять опасные фигуры противника, объявить шах королю противника или блокировать его фигуры. В некоторых программах оценочная функция учитывает и дру- гие аспекты и содержит большее число членов. Вычисление весовых коэффициентов а, ..., f зависит от терпения программиста, и ничто не мешает изменять их вели- чины во время партии в зависимости от полного числа сделан- ных ходов и/или от числа фигур, оставшихся на доске. Оче- видно, что оценочная функция такого вида допускает жертвы фигур. При этом член В становится отрицательным (у против- ника появляется преимущество по крайней мере на одну фи- гуру), но взвешенная сумма всех остальных членов компенси- рует с ощутимым перевесом эту материальную потерю. В гл. 9 показано, как коэффициенты а, ..., f могут изме- няться в программе в зависимости от обстоятельств. Если бы можно было построить функцию F, абсолютно точно оценивающую позицию, то в программе достаточно было бы найти все допустимые ходы, оценить позиции, к которым они приводят, и сделать ход, приводящий к наилучшей из них. В действительности как нельзя построить дерево, достаточное для достижения позиции, в которой можно было бы отдать яв- ное предпочтение одному из противников, так и нельзя по- строить совершенную оценочную функцию. Необходим компро- мисс между средней глубиной анализа и качеством оценочной функции, а стремление улучшить и то и другое приведет к воз- растанию времени вычислений. В следующем разделе рассмотрена еще одна проблема: как связать конечную позицию, которая достигается при максималь- ной глубине анализа, с эффективным поиском хода на первом уровне. Для ее решения разработан метод, получивший назва- ние метода минимакса, который послужил отправной точкой для машинных игровых программ. 6.3. Метод минимакса и выбор очередного хода Прежде всего отметим, что из-за несовершенства оценочной функции начальной позиции оценка промежуточных позиций, встречающихся по мере продвижения по дереву допустимых хо- дов, ничего не дает, пока не достигнута установленная макси- мальная глубина анализа п. Оценки таких позиций могут ока- заться очень нестабильными. При достижении глубины п сле-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 321 Рис. 6.6. Дерево допустимых ходов с оценками стабильных позиций на раз- личных глубинах. дует исключить из расчетов вклад выбывших из игры фигур и тем самым привести в действие так называемый механизм “успокоения”. На рис. 6.6 показано дерево, не все ветви кото- рого имеют одинаковую длину. Последняя зависит от числа хо- дов, которые нужно проанализировать для достижения спокой- ной позиции. Двигаясь по дереву в обратном направлении, мы присвоили числовые оценки позициям (вершинам), которые хро- нологически предшествуют позициям, связанным с концами вет- вей. Покажем, каким образом мы это сделали. В 1945 г. Оскар Моргенштерн и Джон фон Нейман предло- жили метод, нашедший применение в теории игр. Дополнитель- ное важное предположение при его использовании состоит в том, что оценочная функция, используемая противником, сов- падает с нршей. Выбор хода с нашей стороны определяется максимальным значением оценочной функции для текущей позиции, в то время как противник, наоборот, стремится сделать ход, который ее минимизирует. Таким образом, в наихудшем для нас варианте, везде, где ему предоставляется эта возможность, противник де- лает ход, в результате которого наша позиция становится наи- более слабой. Все происходит так, как будто очередной ход про- тивника отыскивается из условия минимальной оценки позиции данного уровня. И наоборот, поиск своего хода из позиции со- ответствующего уровня мы ведем из условия максимальной оценки позиции. Поэтому метод, предложенный Моргенштерном и фон Нейманом, получил название метода минимакса. По при- веденной схеме, шаг за шагом, выполняется оценка всех про- межуточных узлов (разветвлений дерева). Для того чтобы най- ти числовую оценку данного узла, необходимо знать оценки И Ж..-Л. Лорьер
322 ГЛАВА 6 дереву с помощью метода ми- по Получение оценок восхождением для предыдущего случая. Рис. 6.7. нимакса всех непосредственно следующих из него узлов и присвоить максимальное или минимальное значение в зависимости от при- надлежности уровня. Последовательно продолжая процедуру оценки до корня дерева, т. е. до начальной позиции, в конце концов найдем свой наилучший ход в позиции первого уровня, которому соответствует наиболее высокая восходящая оценка. Отметим, что эта оценка не имеет ничего общего с оценкой, по- лученной применением функции F непосредственно к начальной позиции без учета последующих ходов. На рис. 6.7 приведен пример анализа игры с помощью ме- тода минимакса. В начальной позиции предполагаются, разре- шенными только два хода и k2. Ход k} приводит к позиции pl, которая допускает в качестве ответных ходов k3 и k4. Рас- смотрим сначала ветвь, образуемую ходом k3 и предположим, что допустимыми ходами из этой позиции являются ks, k& и k7. В результате хода k3 возникает позиция, в которой возможны три ответных хода — k3, kg и ki0. Предположим, что наша программа предусматривает макси- мальную глубину анализа, равную 4. Таким образом, в ней предусматривается анализ и нахождение оценок последующих позиций ks, k9, &io. Оценки, получаемые с помощью функции F, выполняются на ветвях нижней части дерева. Если в начальной позиции следует свой ход, то противнику предоставляется оче- редь сделать ход на последнем из рассматриваемых уровней: из трех возможных позиций (с оценками 3, 1 и 4) он, таким обра- зом, выбирает (по крайней мере, если использует ту же оценоч- ную функцию) наиболее слабую, т. е. с оценкой, равной 1.
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 323 Алгоритм метода минимакса имеет следующий вид: МИНИМАКС: (Спуститься до максимальной глубины и оце- нить позицию; выбрать позицию с минимальной или макси- мальной оценкой в зависимости от глубины; перейти к следую- щей ветви того же уровня, если она существует, в противном случае подняться на один уровень} Нам потребуется использовать некоторые вспомогательные процедуры последующего назначения: ПОИСК ХОДА (ПОЗИЦИЯ, ИГРАЮЩИЙ): поиск разре- шенных ходов для текущей, позиции. ПАКЕТ ХОДОВ (ПОЗИЦИЯ, ЛАГЕРЬ): упорядоченное размещение найденных ходов в памяти. ИГРА (ПОЗИЦИЯ, ХОД): определение позиции после дан- ного хода. ХОД НАЗАД (ПОЗИЦИЯ; ХОД): процедура, обратная пре- дыдущей, — определение позиции, существовавшей до сделан- ного хода. ОЦЕНКА (ПОЗИЦИЯ, ГЛУБ): определение числового зна- чения, связанного с позицией. Для упрощения описания алгоритма будем умножать оцен- ки на нечетных уровнях на —1, тогда на любом уровне задача сводится только к нахождению максимума. Кроме того, используются следующие обозначения: ГЛУБ — текущая глубина анализа; МАКСГЛ—максимальная глубина анализа. Другие процедуры, встречающиеся в тексте алгорит- ма, служат для определения следующих величин: ОЦЕНКА (ПОЗИЦИЯ)—оценки текущей позиции; ОЦН (ГЛУБ) — оценки максимального значения, полученного для данного уров- ня; Е (ГЛУБ)—множества допустимых ходов в течение ана- лиза '). *> В тексте алгоритма встречаются переменные и процедуры, назначение которых автором не определено. Переменные: ЛАГЕРЬ—.принимает два значения ±1 в зависимости от того, чья позиция оценивается (своя +1 или противника —1). ПОЗИЦИЯ — размещенная в памяти информация о расположении фигур в данной позиции, которая в дальнейшем используется для вычисле- ния значений оценочной функции, определения последующих по- зиций и т. д. МИНИМАКС—-1) название алгоритма. 2) числовое значение полученной оценки. Процедуры: ЗАГРУЗКА ПАМЯТИ (Е,. ГЛУБ) — включение сделанного хода в множе- ство ходов Е. РАЗГРУЗКА ПАМЯТИ (Е, ГЛУБ)—исключение взятого назад хода из множества Е. • —Прим, перев. 11*
324 ГЛАВА 6 Итак, значение 1 для оценки позиции получается, если мы принимаем решение сделать ход &5 на третьем уровне. То же самое относится и к ходу £6) поскольку противник и в этом слу- чае имеет ответ, позволяющий не допустить наших надежд ня хорошую позицию и получить оценку, равную 1. Из всех ходов на этом уровне только ход А? имеет заметные преимущества. Действительно, в этом случае минимальная оценка позиции, ко- торая может возникнуть после ответного хода противника, рав- на 5. Таким образом, мы получаем оценки трех позиций, возни- кающих в результате последовательных ходов klt k3 и k7. Мы делаем ход, который приводит к позиции с максимальной оцен- кой, т. е. из рассмотренных выше оценок 1, 1 и 5 мы выбираем оценку 5, которая соответствует ходу k?. Это значение стано- вится оценкой позиции после ходов Ai и k3, полученной с по- мощью метода минимакса. На рис. 6.7 показан окончательный результат анализа дере- ва ходов с помощью метода минимакса. Рядом с каждой про- межуточной позицией на рисунке проставлена оценка, подсчи- танная по этому методу. Отметим, что в этой процедуре, как и в решении задачи о восьми ферзях, по мере спуска по ветвям дерева следует де- лать ходы, а при восхождении по дереву брать их назад. Для этого необходимо при анализе позиции на каждом из уровней сохранять в памяти проанализированные ходы. Отметим, что в отличие от времени вычислений, которое, мы видели, резко возрастает с глубиной анализа, требуемый объем памяти яв- ляется не очень большим. Ветви дерева, не соответствующие единственной последовательности найденных с помощью метода минимакса ходов, не должны храниться в памяти. В последую- щем используется только наилучшее числовое значение на каж- дом уровне. Вот почему с этой задачей вполне справляются да- же широко доступные микроЭВМ. Существует еще одна процедура, теоретически эквивалент- ная методу минимакса, с помощью которой всегда получается такой же результат, но заметно быстрее, так как целые части дерева исключаются без проведения анализа. В основе этой процедуры лежит идея Дж. Маккарти: использование двух пе- ременных, обозначенных аир (1961). Однако, несмотря на усовершенствование этой процедуры, к ней не проявляется ин- тереса из-за одного существенного недостатка: партия играется ход за ходом без общего плана. Для человека такой стиль игры неприемлем: сила разума заключается в способности понять ситуацию, развить ее в том или ином направлении, адаптиро- вать стратегию игры к конкретным обстоятельствам.
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 325 В настоящее время разрабатываются алгоритмы, более близ- кие к образу мышления человека. Исследователи в области ис- кусственного интеллекта концентрируют усилия в составлении именно таких программ. Программы, играющие в шахматы, должны учитывать весь многовековой опыт этой игры, в част- ности такие позиционные особенности, как двойное нападение на фигуру, наличие открытых вертикалей, недостатки рокиров- ки, блокировка фигур и т. д. Все эти термины, обычные для шах- матиста, должны быть понятны программе и использоваться в ней. Подобные методы, основанные на глубоком знании предме- та, начинают находить применение во многих других областях: в химии, медицине, математике (разд. 6.8, гл. 7). Алгоритм минимакса ДАННЫЕ: (ПОЗИЦИЯ, ЛАГЕРЬ) РЕЗУЛЬТАТ: (значение оценки позиции = МИНИМАКС) ГЛУБ*-1; ЛАГЕРЬ*-!: Е(1)<-ПАКЕТ ХОДОВ (ПОЗИ- ЦИЯ, ЛАГЕРЬ); ОЦН(1)*---оо ПОВТОРЯТЬ ПОКА ГЛУБ>1 ПОВТОРЯТЬ ПОКА Е (ГЛУБ) пусто ХОД <-ЗАГРУЗКА ПАМЯТИ (Е (ГЛ У Б)) ПОЗИЦИЯ*-ИГРА (ПОЗИЦИЯ,ХОД) ЕСЛИ ГЛУБ = МАКСГЛ ТО ГЛУБ*-ГЛУБ + 1 ЛАГЕРЬ *- —ЛАГЕРЬ Е (ГЛУБ)*-ПАКЕТ ХОДОВ (ПОЗИЦИЯ,ЛАГЕРЬ) ОЦН (ГЛУБ)*--—оо ИНАЧЕ {уровень максимальной глубины: оценка и сравнение позиции) ОЦН (ГЛУБ) *- МАХ [ОЦН (ГЛУБ), ЛАГЕРЬ * ОЦЕНКА (ПОЗИЦИЯ)] {ход назад с уровня максгл) ХОД ^ РАЗГРУЗКА ПАМЯТИ (Е (ГЛУБ)) ПОЗИЦИЯ*-ХОД НАЗАД (ПОЗИЦИЯ, ХОД)
326 ГЛАВА 6 {оставаться на этой глубине пока есть ходы} КОНЕЦ ЕСЛИ КОНЕЦ ПОВТОРЯТЬ {Возврат к началу цикла} ЕСЛИ ГЛУБ=1 ТО МИНИМАКС <-ОЦН(1); конец КОНЕЦ ЕСЛИ ЛАГЕРЬ— ЛАГЕРЬ ГЛУБ < ГЛУБ - 1 {Взятие назад последнего хода на этой глубине} ХОД*--РАЗГРУЗКА ПАМЯТИ (Е (ГЛУБ)) ПОЗИЦИЯ*-ХОД НАЗАД (ПОЗИЦИЯ,ХОД) {Нахождение восходящей оценки по методу минимакса} ОЦН (ГЛУБ)*-МАХ [ОЦН (ГЛУБ) ,ОЦН (ГЛУБ + 1)] КОНЕЦ ПОВТОРЯТЬ КОНЕЦ МИНИМАКС 6.4. Альфа — бета-процедура Основная идея метода состоит в сравнении наилучших оце- нок, полученных для полностью изученных ветвей, с наилуч- шими предполагаемыми оценками для оставшихся. Можно по- казать, что при определенных условиях некоторые вычисления являются лишними. В отличие от метода минимакса, который по сути заключается в построении пространства ходов путем их прямого перебора, в данном методе значительная часть ходов подвергается неявному перебору, проводимому с помощью про- цедуры отбрасывания частей дерева. На примере, приведенном на рис. 6.8, поясняется идея про- цедуры отсечения. Предположим, что узел S соответствует по- зиции, в которой ход принадлежит нам. При этом в нашем распоряжении несколько возможных ходов, два из которых по- казаны на рисунке. В результате одного из них возникает пози- ция А, в результате другого — позиция У. Предположим также, что позиция А уже полностью проанализирована и найдено зна- чение ее оценки (а). Перейдем к анализу позиции У. Допустим, что один ход из этой позиции приводит к позиции Z, оценка ко- торой (полученная по методу минимакса) равна z. Предположим далее, что z «С а. Кроме того, пусть величина s и у являются значениями оценки в узлах S и У. Тогда в лю- бом случае выполняется неравенство у z, поскольку в пози-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 327 Свои а?од: таоо Ход противника : min Свой ах>д: таа? А ос Оцененные позиции Оцениваемые позиции Рис. 6.8. Неглубокое альфа-отсечение. ции Y ход за противником, который из всех возможных ходов выбирает такой, который приводит к позиции с минимальной оценкой. Отсюда следует у z а, а так как очевидно, что s боль- ше или равно а и у, то справедливо соотношение у z а s. Эти неравенства показывают, что неизвестное значение оценки у в узле У не будет оказывать влияния на последующие результаты, и, следовательно, анализ всех последующих ветвей, выходящих из узла У, кроме Z, оказывается бесполезным. Дру- гими словами, после анализа узла Z остальные ветви дерева, выходящие из узла У, могут быть отброшены (альфа-от- сечение) . Эти рассуждения легко распространить на случай, где на первом уровне ход принадлежит противнику. При этом оценка со на глубине 2 должна удовлетворять условию о р (бета- отсечение). Но это справедливо и для узлов, находящихся на существенно различных глубинах дерева, при условии, что они принадлежат уровням одного из противников. Такими узлами являются А и Z на рис. 6.9. Рассмотрим этот рисунок более подробно. Пусть, как и в предыдущем случае, мы должны сделать ход из позиции S и имеем всего две возможности, которые приводят к позициям А и U. Предположим, что полный анализ позиции А уже завер- шен и полученная оценка равна а. Начиная анализ позиции отметим, что после нечетного числа промежуточных ходов, в данном случае равного 3, возникает позиция Z, оценка которой
328 ГЛАВА 6 Рис. 6.9. Глубокое отсечение. равна z. Снова допустим, что найденное значение z меньше а. Для узла У, расположенного на более высоком уровне, не- посредственно следующем за Z, найдем оценку у, которая удов- летворяет соотношению у z, так как ход из позиции У при- надлежит противнику. Покажем, что и в данном случае резуль- тат анализа остальных позиций, вытекающих из вершины У, не может изменить конечного результата, т. е. оценки S. Рассмотрим позицию V. Ее анализ может привести к двум различным результатам: v > у или v — у. Очевидно, что в пер- вом случае результаты анализа других ходов не могут привести к изменению значения оценки v, так как уже известно, что у z, а величина у .в результате такого анализа может быть только уменьшена. Во втором случае справедливо равенство y = v, отсюда с учетом предыдущих неравенств имеем v = у z а, т. е. узел V получает меньшую по величине оценку, чем узел А, и таким образом опять возвращаемся к схеме, при- веденной на рис. 6.8. Окончательно получаем, что в обоих слу- чаях оценка s позиции 5 не зависит от других ветвей дерева, выходящих из узла У, и анализ последних может не проводить- ся (глубокое отсечение типа а).. Рассуждая аналогично, можно рекуррентно спуститься до узла Z, лежащего на уровне произвольной глубины, принадле- жащей той же стороне, что и уровень S. Если в этой позиции ход принадлежит противнику, то, естественно, пределом для
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 329 Начальная позиция S Глубина 1*7пазс Глубина 2= mtn 3* тазе 4----- 5 5 5 4 Глубокое альфа-отесе чение (<х= 5) Рис. 6.Ю. Альфа—бета-процедура отсечения дерева, приведенного на рис. 6.6 анализа позиций на нисходящих ветвях дерева служит уже ми- нимальное значение оценки р. Отсечение типа £ можно выпол- нить всякий раз, когда оценка позиции, возникшей после хода противника (обозначим ее со), превышает значение р. Алгоритм поиска строится так, что при анализе дерева оценки своих хо- дов и ходов противника сравниваются с величинами а и р со- ответственно. В начале вычислений этим величинам присваи- ваются значения плюс и минус бесконечности, а затем, по мере восхождения к корню дерева по описанной выше схеме, нахо- дится оценка начальной позиции и наилучший ход для одного из противников (рис. 6.Ю и табл. 6.3). Таблица 6.3 Ход Наилучшая оценка Позиция на глубине п Оценка позиции Условие Действие Свой а Своя Z z — а альфа-от- сечение Противника Р Противника W W = Р бета-отсе- чение Найденный ход существенно зависит от позиций, лежащих на произвольной глубине и принадлежащих той же стороне. При проведении анализа величине а необходимо присваивать пре-, дельные значения оценки для четных уровней, а величине р —< для нечетных, -начиная с корня (единственной вершины нуле- вого уровня).
330 ГЛАВА 6 Процедура отсечения может быть применена только начи- ная с того момента, когда получены оценки по крайней мере двух конечных узлов. По мере нахождения оценок значение а для каждого уровня постепенно увеличивается, ар — умень- шается. В конце анализа их значения выравниваются. Альфа — бета-алгоритм дает тот же результат, что и метод минимакса, но выполняется быстрее. С его помощью можно по- лучить хорошие результаты при удачно составленной оценочной функции и достаточно большой глубине анализа, что, однако, требует большого объема вычислений. Очевидно, что этот метод можно с успехом использовать при решении шахматных задач на мат в п ходов (п обычно меньше 6). Оценочная функция в этом случае является точной, а достижение максимальной глу- бины анализа потребует разумного времени. В настоящее вре- мя для программ, разработанных для современных микроЭВМ и играющих по этому методу, характерен переход от среднего качества игры к хорошему. В заключение отметим одно интересное свойство: алгоритм находит тем больше ходов за определенное время, т. е. явля- ется тем более производительным, чем более упорядоченно расположены вершины при отыскании каждого хода. В идеаль- ном случае (естественно, недостижимом на практике) вершины на каждом уровне должны располагаться по монотонно убы- вающим значениям оценки. Для приближения к идеальному случаю в некоторых программах, прежде чем применить алго- ритм до глубины, например, 6, сначала используется этот алго- ритм до глубины 2, после чего на основе полученных результа- тов выполняется упорядочивание узлов. Затем вновь прово- дится анализ уже до глубины, например 3, производится новое упорядочивание, и только после этого алгоритм применяется к полной глубине 6. Два первых захода, в течение которых обра- батывается небольшое число вершин, выполняются очень бы- стро и позволяют заметно приблизиться к идеальному упорядо- чению вершин для уровня 6. При этом полное время вы- числений сокращается по сравнению со случаем выполнения анализа сразу на всю глубину без предварительной подго- товки. 6.5. Основные недостатки игровых программ, основанных на анализе дерева ходов Игровые программы, построенные по принципу систематиче- ского перебора допустимых ходов, обладают рядом существен- ных недостатков. Рассмотрим два основных недостатка, прису- щие подобным программам.
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 331 6.5.1. Первый недостаток: полное отсутствие стратегии Очевидно, что при таком подходе к игре, который реализу- ется в подобных программах, каждая новая позиция рассмат- ривается в отрыве от всех остальных. Можно сказать, что про- грамма не ведет игру, а анализирует последовательность позиций, полностью независимых друг от друга. Альфа — бета-про- цедура не позволяет составить единого плана игры, она не дает возможности действовать в соответствии с заранее выбранной стратегией. Все принимаемые решения умещаются в оценочной функции и определяются ее видом! Иными словами, текущая игровая ситуация, определяе- мая, в частности, степенью раз- вития фигур, наличием линий атаки, организацией пешечной защиты, наличием проходных пешек, оценивается всего лишь с помощью нескольких очень просто вычисляемых членов. Конечно же, они не в состоя- нии ни предсказать развитие партии на большое число хо- дов, ни направить партию к заранее определенному выиг- рышному окончанию. Наибо- abcdef g h Рис. 6.11. Окончание партии. Ход белых. лее простые примеры, иллю- стрирующие этот недостаток, часто встречаются в окончаниях. Рассмотрим позицию с тремя пешками у черных против двух пешек у белых, приведенную на рис. 6.11. Каждому любителю шахмат ясно, что выигрыш белых неиз- бежен. Но для его реального достижения требуется составить план на большое число ходов вперед, который обеспечил бы продвижение пешки а2 в ферзи. Своим первым ходом а2 — а4 белые в конце концов обеспечивают себе победу. Шахматист сделает такой ход немедленно, он с неизбежностью приведет к проигрышу обладателя черных фигур, так как его король уже не сможет войти в квадрат пешки а4 (квадрат а4, а8, е8, е4). Пешка а4 может пройти в ферзи самостоятельно без помощи короля. Так как ни одна пешка черных не в состоянии проде- лать то же самое, то для них партия проиграна. Игровые про- граммы, составленные в соответствии с рассмотренными выше методами, часто не способны провести даже такой простой ана- лиз. Покажем, что в данном примере анализ на 10 полуходов вперед (с учетом вынужденного хода короля белых для укло- нения от промежуточного шаха) не достаточен для проведения
332 ГЛАВА 6 пешки а2 в ферзи. На основании этого алгоритм, заложенный в основу подобной программы, придет к однозначному выводу о том, что черные обладают преимуществом — три пешки про- тив двух! Можно сказать, что в программе делается ставка только на гигантскую производительность ЭВМ, но никак ни на способность к формальному мышлению с логическим анали- зом позиций и эффективным поиском решений. В игре против программ такого типа может сложиться впечатление, что про- грамма придумала красивую идею нападения на ту или иную фигуру, однако при ближайшем рассмотрении оказывается, что уже через два хода позиция становится проигрышной, т. е. в действительности никакой идеи и не было! Программы этого семейства “сильны” лишь постольку, по- скольку они в состоянии рассчитывать большое число ходов за ограниченное время. Производительность ЭВМ в принципе влияет одинаково и на. вычисление квадратного корня, и на игру в шахматы. Единственное различие между микропроцессо- ром и большой ЭВМ состоит в скорости вычислений: первые в состоянии к настоящему времени (1986 г.) вычислить тысячу ходов, а вторые (как ЭВМ типа Cyber) —пятьсот тысяч ходов за время ~ 1 мин. Но даже такой производительности может не хватить для систематического перебора всех допустимых ходов. 6.5.2. Второй недостаток: эффект горизонта Необходимость иметь фиксированное значение максимальной глубины анализа в программах, работающих по принципу пере- бора допустимых ходов, как уже говорилось, приводит к двум основным недостаткам. Первый уже рассмотрен выше — про- грамма может не “видеть” (и тем более оценить) последствия хода, которые проявляются на глубине, превышающей заранее установленную. На второй, менее очевидный недостаток обратил внимание Ганс Берлинер (в прошлом чемпион мира по шахма- там по переписке) в своей диссертации в 1974 г. Он получил название эффекта горизонта и является неизбежным следст- вием первого недостатка. Оказывается, что программы, постро- енные по принципу систематического перебора допустимых хо- дов, по природе стремятся все .сделать для того, чтобы все невыгодные события оказались за пределами максимальной глу- бины анализа, т. е. за пределами горизонта. Они не хотят ви- деть надвигающуюся катастрофу и располагают одним средст- вом борьбы с ней — отодвигать неизбежный исход с помощью абсурдных ходов. Рассмотрим пример, приведенный в диссертации Г. Берли- нера (рис. 6.12). Слон белых, расположенный на поле а4, ок- ружен черными пешками, и его потеря неизбежна. Стратегия
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 333 a b с d е f g h Рис. 6.12. Эффект горизонта (Н. Ber- liner, 1974). Ход белых. хорошего шахматиста, играющего белыми, заключалась бы в том, чтобы максимально скомпенсировать эту потерю. В дан- ном случае имеется возможность получить за слона одну пеш- ку и бороться за выигрыш другой (таким образом, перевес остается за белыми, которые в приведенной позиции имеют преимущество в одну фигу- ру— коня). В шахматах приняты сле- дующие обозначения1): К — конь, С — слон, Л — ладья, Ф — ферзь, Кр — король, для пешек специальные символы не используются. Вертикали обозначаются буквами от а до h, горизонтали —цифрами от 1 до 8, знак X означает взя- тие, 4* шах. Таким образом, 1 — <?5 означает, что пешка на вертикали е продвигается пер- вым ходом на один шаг (исходное поле не указывается), а 3 — К X Се7 -f- означает, что на 3-м ходу конь берет слона, рас- положенного на поле е7 и объявляет при этом шах. Если же за белых играет программа рассмотренного выше типа, то она выбирает совсем другую стратегию. Ей достаточно построить ход игры таким образом, чтобы потерю слона выве- сти из поля своей видимости (со своего горизонта), а в этом случае все происходит так, как будто бы слон никогда не бу- дет взят. Это находится в полном согласии с прямолинейной механической логикой альфа — бета-метода: достаточно найти последовательность из большого числа ходов с вынужденными ответными ходами черных, отодвигающую момент взятия слона противником. Так, в рассматриваемой позиции, если глубина анализа составляет 5 полуходов, лучшим ходом, найденным с помощю альфа — бета-процедуры окажется ход е5! С этого хода начинается реализация следующего плана “спасения”: 1—е5 d X « (в противном случае теряется конь /7) 2 — Kd5 и если К X 05, то 3 — Л X 05: (а) если слон уходит с поля е7, то 3 — С&З; (Ь) если b X Са4, то 3 — КХСе7-|-- (G) *> Обозначения шахматных ходов в книге соответствуют принятой в за- падных странах системе обозначений, отличающихся от используемых в на- шей стране тем, что на каждом шаге указывается лишь поле, на которое ставится фигура, совершающая ход. — Прим. ред.
334 ГЛАВА 6 В случае (а) черные, очевидно, должны продолжать 65 X X Са4, но угрожает Л X Cd7. Эту угрозу черные вполне могут отвести ходом 4 — ...Себ, но он уже лежит за пределами глу- бины анализа. В итоге программа, играющая за черных, выиг- рывает пешку вместо слона! В случае (Ь) программа играет СЬЗ. При этом оба коня защищены, а слон якобы спасен! На самом же деле он потерян, так как затем последует ход чер- ных 3 — ...с4. Наконец, в случае (с) взятие черными слона яв- ляется преждевременным щ белые отыгрывают фигуру. Пра- вильный ход на первом уровне программа сможет найти только в том случае, если максимальная глубина на анализе МАКСГЛ для нее равна 7. Для рассматриваемого случая это равносильно анализу 168800 позиций! Эффект горизонта может привести к очень большим поте- рям, и его устранение не представляется возможным, так как он порожден самим подходом к составлению программ. Именно с его последствиями связаны основные отличия игровых про- грамм от игры человека. Он способен причинить много огорче- ний программисту, наблюдающему за игрой своей программы. Известен случай, когда в игре программы Chess 4.4 возникла позиция, в которой пешка достигла седьмой горизонтали. Для программы такая пешка стоит очень дорого, но более глубокий анализ показал бы, что защитить ее невозможно и она будет потеряна. Программа, естественно, играет так, чтобы не поте- рять эту пешку, максимально отдаляет момент потери и... после серии неудачных ходов теряет все накопленное преимущество. В конце концов ее противник берет пешку. (Правда, после этого Chess 4.4 обнаруживает все свои лучшие качества, начинает хорошо играть и выигрывает!) 6.6. Психологические аспекты принятия решения Нелегко точно определить, когда появились первые работы по психологии принятия решения. В 1894 г. во Франции Альф- ред Бине опубликовал работу “Психология шахматистов и лю- дей, выполняющих большие объемы вычислений”. В ней он впервые затронул, в частности, важные вопросы изучения па- мяти человека, его воображения и эрудиции. Он интересовался возможностями абстрактного мышления человека и делал вы- воды на основе своих наблюдений над людьми, которых застав- лял выполнять вычисления или играть в шахматы вслепую и вслух комментировать ход своих мыслей. Впоследствии опыты Бине в области шахматной игры были продолжены и завершены рядом психологов, таких, как Адриан Де Грот, Герберт Саймон и Джон Байлор. Бергсон, первый ком-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 335 ментатор опытов Бине, в 1902 г. высказал такую мысль: ка- жется, что представление в мозге содержит не столько инфор- мацию о собственно физическом мире (в шахматах — это фигу- ры и доска), сколько указание о будущих направлениях раз- вития. В 1920 г., малоизвестный психолог Вюрцбургской школы Отто Сейц разработал первую концептуальную модель процес- сов мышления, которые он описал как линейную цепочку эле- ментарных операций. Сейц, таким образом, выделил элементар- ные операции, дал им определение и в то же время точно описал общие, как ему казалось, процессы, присущие любой чело- веческой деятельности. Он показал, что в процессе принятия решения большую роль играют такие понятия, как интеллек- туальная индивидуальность, существо и частные характеристики решаемой проблемы. По его представлениям движущей силой, которая толкает мышление по этим цепочкам, является “общий закон предвидения результатов”, способность с определенной степенью абстракции рассуждать по плану, двигаясь от одной промежуточной цели к другой. Заслуга и удача исследователей искусственного интеллекта на сегодня состоит в способности эффективно с помощью про- грамм демонстрировать справедливость этих идей. Сейчас вид- но, как сбылись предвидения таких ученых, как Бине и Сейц. Они, несомненно, первыми рассмотрели и научно показали, что такие способности мозга, как мышление и умозаключение, на- ходятся в одном ряду с другими наблюдаемыми на опыте явле- ниями. Они уже на пороге двадцатого века показали, что наши интеллектуальные возможности прежде всего обусловлены дву- мя хорошо различаемыми явлениями: памятью и восприятием. 6.6.1. Память Оперативная память современных ЭВМ, обладающих мак- симальной производительностью, насчитывает от 10 млн. до 1 млрд, двоичных единиц информации. Оперативной называют такую память, которая постоянно доступна для ЭВМ. По анало- гии можно сказать, что наш мозг, в котором мы храним всю необходимую информацию, является нашей оперативной па- мятью в отличие от внешней памяти, которая для ЭВМ пред- ставляет собой диски и ленты, а для нас ее роль играют книги в библиотеках — они снабжают нас внешней информацией, до- ступ к которой осуществляется не так легко. Среднее время доступа к информации, хранящейся в опера- тивной памяти ЭВМ в двоичном виде, составляет в настоящее время ~ 10-9 с. ЭВМ умеет очень быстро выполнять небольшое
336 ГЛАВА 6 число элементарных операций. Но было бы ошибкой считать, что ЭВМ превосходит нас по объему памяти. В человеческом мозге в среднем находится около 10 млрд, нейронов, каждый из которых имеет синаптический контакт с большим числом — от одной до десяти тысяч (точное значение неизвестно) — своих маленьких собратьев. Таким образом, в мозге существует 10 000 млрд, точек обмена информацией (невероятно, не правда ли? Вы, возможно, плохо представляете свое настоящее богат- ство!...). Кроме того, никто сегодня не в состоянии оценить объем информации, содержащейся в одном нейроне; без вся- кого сомнения, он намного больше, чем двоичная единица, при- нимающая значения типа да/нет. Не исключено, что один ней- рон содержит тысячу или миллион таких единиц информации. Возможно, что информация кодируется одновременно во мно- гих нейронах сразу. В любом случае не вызывает сомнения, что мы обладаем гигантской памятью по сравнению с оперативной памятью самых больших современных ЭВМ. Наличие такого громадного объема предполагает, что должен существовать также развитый и эффективный механизм доступа к этой памя- ти. Вот почему почти не удивляет экспериментальное подтверж- дение того факта, что мы непрерывно структурируем наше зна- ние, выделяем множество опорных точек, даем имена новым элементам информации, кодируем, отбираем и, наконец, все это... забываем! Эксперимент также показывает, что часть мозга использу- ется особым образом. Речь идет о существовании так называе- мой кратковременной памяти. Множество образующих ее ней- ронов находится в прямой связи с органами чувств и взаимо- действует с ними. Именно эта часть мозга воспринимает всю новую информацию перед тем, как ее отправить в долговремен- ную память. В кратковременной памяти информация разру- шается очень быстро — если ее не подкреплять, то через 5 с она уже будет разрушена. В долговременной же памяти инфор- мация сохраняется значительно дольше — часы, дни, годы — без дополнительной внешней активизации, только за счет чисто внутренних процессов, которые, возможно, происходят с нами во сне. В то же время чтение из долговременной памяти тре- бует гораздо больше времени, чем из кратковременной — мно- гие секунды вместо сотых долей секунды. 6.6.2. Восприятие Приведем некоторые данные, позволяющие лучше понять трудности решения проблем, связанных с человеческим мозгом. Двухуровневая организация нашей памяти показывает, в ча-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 337 стности, что наиболее важная часть мозга находится в прямой связи с рассмотренными уровнями. С ними связано моделиро- вание восприятия и организация управления мозгом в процессе всей его эволюции. При этом первостепенную роль играет ви- зуальная система восприятия. Кроме того, в мозге возникают структуры, способные эффективно кодировать пространственно- временную информацию, которой мозг буквально “пропитан”. Конрад Лоренц утверждает, что человеческая порода произошла от породы больших обезьян, которые в один прекрасный день в своем восприятии реального пространства пришли к выводу, что жизнь стала сложнее, охота труднее, и они смогли предста- вить себе обстоятельства, опасные для своей жизни. В то же время установилась доминирующая роль пространственных представлений. Действительно, реальное пространство служит нам фундаментальной моделью для описания всех остальных внутренних отношений и представлений. В частности, простран- ственные понятия широко используются в языке; примером мо- жет служить фраза “Вы это ясно видите?” Нам осталось рассмотреть один важный и удивительный мо- мент, который касается экспериментальных оценок объема на- шей кратковременной памяти. Объем оказался очень неболь- шим: кратковременная память человека не может содержать более 7 (±2) элементарных единиц информации. Легко убе- диться, что эта величина мала с практической точки зрения. Мы мгновенно вычисляем, например, произведение 7X8, но для вычисления произведения 72 X 8 нам требуется больше време- ни; сказывается то, что нужно приложить небольшие усилия для управления памятью, на что уходит дополнительное время. Для выполнения умножения 72 X 89 почти всем потребуется бумага и карандаш, которые представляют собой часть нашей обычной внешней памяти. Если запретить использование этих инструментов, операция будет выполняться значительно дольше, так как обмен с нашей долговременной внутренней памятью, как мы видели, требует много времени. Из-за малого объема кратковременной памяти (всего 7 еди- ниц информации) всякая новая информация разрушает преды- дущую. Вот почему оказывается довольно трудно проследить обратный ход своих мыслей. Рассмотрим теперь, что представляет собой единица измере- ния информации, которую мы назвали элементарной единицей. Введем ключевое понятие и дадим ему точное определение. Элементарная единица информации представляет собой блок информации, который мы способны сразу и целиком распознать, закодировать и запомнить. Его величина и содержимое зависят от конкретного индивидуума. Например, если кто-нибудь
338 ГЛАВА 6 диктует громким голосом последовательность из нулей и единиц, вы с большим трудом сможете запомнить с полДюжины после- довательных цифр. Но если эту последовательность слышит специалист по информатике, который привык к работе в вось- меричной системе счисления, в каждом блоке кодирует и запо- минает группу из трех двоичных цифр, то он без труда удер- жит в памяти 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 о 2 7 Запоминаемое число: 5 453 027 Кодировка: ООО: 0 001 : 1 010 : 2 011:3 100 : 4 101:5 110 : 6 111:7 Еще один пример — память музыкантов, которые запоми- нают мелодию по мере ее звучания, что связано с очень высо- ким уровнем организации их долговременной памяти. В отличие от этого слабо натренированное ухо смогло бы запомнить не более двадцати первых нот. Из этого можно сделать вывод, что содержащаяся в кратко- временной памяти информация представляет собой имена бло- ков, размещенных в долговременной памяти данного инди- видуума. 6.7. Исследование психологии шахматистов Рассмотрим (по работам де Грота, Саймона и Виникоффа) два различных аспекта анализа шахматной игру: восприятие и вывод. Особенно выделим работы де Грота, который смог четко разделить предметы исследований и провести их сравнение. Он выполнил анализ протоколов рассуждений шести гроссмейсте- ров (два из них — чемпионы мира), четырех международных мастеров, двух голландских чемпионов и десяти экспертов. 6.7.1. Восприятие Эксперимент заключался в том, что шахматистам показы- валась доска с воспроизведенной на ней позицией, взятой из реальной партии (обычно из ее середины). При этом анализиро- валось движение глаз шахматистов (в определенных случаях оно автоматически регистрировалось с помощью камеры, уста- новленной перед ними). Через время t\ доска убиралась, и после выдержки в течение времени /2 их просили восстановить пози-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ ' 339 цию, которая была у них перед глазами. Обращалось внима- ние, в особенности, на порядок, в котором восстанавливалось положение фигур, и на число правильно поставленных фигур. Эксперимент показал, что глаза шахматистов не очень часто останавливались на какой-либо точке доски — не более четырех раз в 1 с. Во время каждой из этих остановок можно было с по- мощью бокового зрения просмотреть пространство в два угло- вых градуса, т. е. около девяти примыкающих друг к другу полей доски. Более того, последовательность остановок обнару- живала повторяемость даже у гроссмейстеров. Отсюда можно сделать вывод, что восприятие позиции происходило не в гео- метрическом порядке (например, слева направо и снизу вверх), но во всех случаях определялось логическим порядком, который зависит от анализируемой позиции. Взгляд чаще задерживается и возвращается на определенные критические поля, от которых он перемещается по различным направлениям. К ним всегда относятся поля, занимаемые королями и прилегающие к ним. И наоборот, некоторые фигуры и конфигурации полей (напри- мер, для белых это поля /2, g2, h2, JIhl) были «сфотографиро- ваны» взглядом всего лишь один раз. Очевидно, что они соот- ветствуют классическому элементарному блоку информации для специалистов по шахматам. Дольше всего рассматривались, а следовательно, и запоминались, необычные конфигурации, в которых фигуры слишком продвинуты или плохо защищены. В экспериментах выбиралось время наблюдения t\ — 5 с, время выдержки 12 = 30 с, в среднем каждая позиция состояла из 24 фигур. При этом процесс восстановления позиции у всех шахматистов проходил одинаково. Сначала появлялась на доске одна фигура, а затем другие, логически с ней связанные прямой или косвенной защитой или нападением. В сл'учае эквивалент- ности логических связей шахматист сначала рассматривал фи- гуры, характеризуемые наиболее необычным расположением. При таком малом времени наблюдения почти не оставалось надежды на правильное восстановление позиции. Тем не менее гроссмейстерам это удалось в 5 случаях из 14. Полные резуль- таты показывают заметное различие между мастерами и дру- гими шахматистами (табл. 6.4). Отметим, что для гроссмейстеров характерно прежде всего то, что они делали гораздо больше, чем простое восстановление позиции, они еще приводили ее анализ: это единственно вер- ный путь, поскольку именно так шахматист «сживается» с по- зицией. Его вниманием и глазами начинают управлять линии наиболее активных действий, воображение подсказывает инте- ресные ходы, следующие не только непосредственно из данной позиции, но и на несколько ходов вперед.
340 ГЛАВА 6 Таблица 6.4. Оценка качества восстановления шахматной позиции. Для опре- деления счета использовалась функция, предложенная де Гротом, которая учитывает число правильно восстановленных фигур Гроссмей' стеры Мастера Эксперты Шахматисты класса С ‘) Число абсолютно правильных 5 4 0 0 восстановлений из 14 Общий счет из 264 217 217 158 • 119 ') К шахматистам класса С относятся хорошие клубные игроки. Приводимые здесь результаты де Грота относятся к экспе- риментам с реальными позициями. Когда же предлагаемые для запоминания позиции характеризовались случайной расстанов- кой фигур, все шахматисты — от гроссмейстеров до любитейей из клубов — оказывались рав- ны между собой. Никто не справлялся с поставленной за- дачей, все оказались совер- шенно неспособны запомнить позицию за 5 с! .Математик и шахматный гроссмейстер М. Эйве, когда ему на 5 с показали позицию, приведенную на рис. 6.13, про- вел следующий анализ. «Сна- чала я запомнил, что позиция Рис. 6.13. Позиция,- предъявляемая шахматистам на 5 с для восстанов- ления (ход черных). черных никуда не годится». Он восстановил блок фигур во- круг черного короля: король + + ферзь черных + два коня черных + пешка еб + ферзь белых и последний в блоке слон черных /8. Блок фигур, возникший после рокировки белых, был восстановлен сразу без затруднений. Время между размеще- ниями фигур хронометрировалось. Если оно было меньше 2 с, то де Грот считал, что эти фигуры принадлежат одному блоку ин- формации в памяти. Таким образом у Эйве пока выявлены два блока. Он отметил, что предложенная позиция ему слегка на- помнила партию, сыгранную Флором и Фином! (Это не под- дается проверке, но несомненно, что такая аналогия очень помогла Эйве восстановить позицию.) Две пешки а2 и Ь2, а также пешки h7, g6, ладья ft8 также были расставлены вместе, тогда как все оставшиеся фигуры раз- дельно: е5, К&5, JIdl, ЛЬ4, а7. По поводу последней пешки Эйве
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 341 заявил следующее: «Я не рассмотрел правую сторону позиции черных. Но у них должна быть пешка на а7». (Это следует из логики развития партии и присутствие на доске пешек а2 и Ь2 подтверждает этот вывод.) Эйве тем временем продолжает извлекать сведения из своей памяти. Он увидел и другие любопытные особенности позиции: «Атака белых оказывает сильное давление на позицию черных, но в противовес ей у меня две лишние фигуры» (Эйве считает своей сторону, которой принадлежит очередной ход). «Чем по- жертвовать? Очень силен конь белых, но его можно взять хо- дом Л X К65, это действительно неплохо, так как ладья зани- мает странную позицию на й4 и больше никому не угрожает. Теперь я думаю, что выигрыш у черных в кармане, но минуту назад я бы этого сказать не смог». В этих рассуждениях можно проследить связь между вос- приятием и вторым объектом наших исследований — выводом. 6.7.2. Вывод На рис, 6.14 приведена позиция, взятая также из реальной партии, сыгранной самим де Гротом. Он тщательно изучил эту позицию, установил, что белые могут сделать не менее 56 хо- дов, а затем показал ее экс- пертам, которые должны были определить наилучший по их мнению ход. По условиям экс- перимента эксперты должны были рассуждать вслух. Все шахматисты пришли к выводу, что прежде всего сле- дует решить тактическую за- дачу — постараться найти спа- сение для фигур, находящихся под боем, вместо того чтобы сразу составлять план игры на длительную перспективу. Пе- ред тем как обратиться к тщательному анализу результатов размышлений шахматистов, приведем несколько общих выводов, которые будут полезны в дальнейшем. abcdefgtL Рис. 6.14. Анализ позиции (de Groot, 1935). 1) Избирательный анализ позиции. Дерево ходов у гросс- мейстеров содержит от 20 до 76 узлов, что существенно меньше, чем чрезмерное комбинаторное увеличение числа допустимых ходов. Среднее число ходов, предлагаемых шахматистами для
342 ГЛАВА 6 белых в этой позиции, меньше 5. Например, Керес предложил 3 хода, два из них он проанализировал очень подробно, и они оказались наилучшими. 20 шахматистов из 56 возможных хо- дов предложили только 22. 2) Небольшая глубина анализа. Этот факт подтверждается и во многих других случаях. В противоположность широко рас- пространенному мнению большие мастера шахмат очень редко рассуждают на глубину более пяти или шести ходов (здесь, например, оказалась достаточной глубина в четыре хода). Бо- лее того, не было обнаружено никакого различия в глубине анализа у различных групп обследованных шахматистов. 3) Частые возвращения назад. Часто анализ хода или даже целого эпизода повторялся по многу раз. По этому признаку де Грот различает три фазы анализа у шахматистов: а) раз- ведка; б) обработка; в) доказательство. Шахматист в каждом из трех случаев повторяет изучение позиции с различных точек зрения. Свои ходы и ходы против- ника многократно перерабатываются, по мере того как увели- чивается глубина анализа. Задача, которую ставит перед собой шахматист, периодически переопределяется в зависимости от рабочей гипотезы; это происходит беспрерывно до принятия окончательного решения. Все ходы в данной позиции, которые не имеют связи с текущей гипотезой, полностью игнорируются. Шахматисту, помимо всего прочего, необходимо иметь свою оце- ночную функцию позиции, он должен уметь измерять дистан- цию, на которой он находится от текущей гипотезы и от цели, которую он должен достигнуть (табл. 6.5). Таблица 6.5. Средние значения некоторых важных параметров при изучении шахматной позиции исследуемыми шахматистами Число анализиру- емых ходов на 1-м уровне Полное число изученных позиций Максималь- ная глубина . анализа в полуходах Время Число возвратов при анализе Гроссмейстеры 4,8 35 6,8 9' 6" 6,3 Эксперты 3,4 30,8 6,6 10' 8" 6,4 4) Бедность оценок, используемых шахматистами. В прото- колах часто появляются фразы такого типа: «Теперь белые имеют выигрышную позицию с далеко продвинутой пешкой»; «Черные заняли открытую линию»; «Сила атаки подавляет про- тивника».
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 343 Кроме того, при анализе оценивается очень малое число позиций. Оно определяется достижением стабильной позиции, в которой тем или иным образом разрешается проблема, кото- рую ставит перед собой шахматист в данный момент. При этом необходимое решение находится без помощи традиционных оце- нок. Используемые человеком оценки, как и общий анализ пар- тии, основаны на общих, не поддающихся численному описанию концепциях работы мозга, имеющих мало общего с банальным описанием позиции с помощью оценочной функции. При этом непрерывно появляются и исчезают такие понятия, как откры- тое или закрытое пространство (или позиция), контроль (над полями, фигурами, зонами), слабая или сильная позиция. Для оценки позиции и выработки стратегии приближения к цели слу- жат такие абстрактные формулировки, как «ход черных фер- зем», «отступление слона», «защита короля», «пустой ход», «усиление давления», «отступление без потери темпа». Обратимся теперь к деталям и результатам анализа пози- ции, приведенной на рис. 6.15. Большое число шахматистов пришли к выводу, что ход С X Kd5 является наилучшим или поставили его на второе место. Удивительным является то, что этот ход найден в общем без достаточно глубокого анализа. Его действительно легко увидеть, но дерево ходов, с помощью которого его можно полностью обосновать, является весьма гро- моздким. Это обстоятельство наводит на еще одно направле- ние исследований кратковременной памяти. Примером, показы- вающим, что шахматисты имеют тенденцию упрощать анализ с помощью грубых оценок, является реакция Алехина. Он бы- стро высказал свое мнение об этой позиции: «Я с удовольствием сыграл бы за белых... СХК, безусловно, является очень силь- ным ходом, нужно проверить все варианты, но если время под- жимает, то я играю СХ^5». Построение дерева анализа заняло у него несколько минут — быстро сориентироваться в сильно разветвленном дереве невозможно. Даже гроссмейстеры могут в них запутаться. Флор, например, допустил в этой позиции яв- ную ошибку. Рассматривая среди многих других вариант 1. КХСсб &7ХК 2. С X Kd5 сб X С з. схк/6 схс он сказал, что ход 4.КД7 является вилкой на ферзя и ладью черных. Здесь произошла путаница, так как на поле е5 коня больше нет, он не может пойти на dl\ Можно отметить нечто общее, что помогает шахматистам выполнить задание исследователя—это хорошее знание позиций,
344 ГЛАВА 6 1-й ход белых С * Kd5 1-й ход C*Cd5 черных К* Cd 5 (9) евхСа 5 2-й ход C*Kf6 белых 2-й ход CxCfS черных K*Kd5> Фа 8 <Pf3 (f) e6*d5 кдр (f) Кс4 (f) Се1 (f) 3-й ход Kd7 К*Се7 Схе7 белых (а) (с) (е) I I 3-й ход Ход ферзем Ход королем черных 4-й ход белых K*JlfS Ф) К* с 8 (*) Рис. 6.15. Дерево ходов, доказывающее правильность хода С X Kd5 в пози- ции A (de Groot(65)). (а) вилка на ферзя и ладью; (&) выигрыш качества; (с) вилка на короля и ладью; (d) выиг- рыш фигуры и качества; (е) если 2. С X К <25, 3. С X К f6, то выигрыш фигуры; (f) очевидна слабость черного коня на f6 и белые получают сильную атаку; (g) угроза'Вскрытого нападения на слона черных el. Возможность белых ответить четырьмя ходами на ход черных egx С дает основание считать этот ход черных неудовлетворительным. Во всех вариантах белые легко выигры- вают, давление на позицию черных достаточно велико, и все гроссмейстеры останавли- ваются на этой глубине анализа. уже встречавшихся в сыгранных партиях. Алехин сразу заявил, что эта позиция ему напоминает недавнюю партию Бот- винника. Он предположил, что в дебюте был разыгран приня- тый ферзевый гамбит, а позиция соответствует 16-му ходу. Он смог даже восстановить все предыдущие ходы, сыгранные в пар- тии. Очевидно, что это говорит об очень большом числе сыгран- ных и изученных партий, которые Алехин держал в памяти и связывал с ними отдельные ветви дерева ходов анализируемой позиции. Глубокие знания, которые позволяют хронологически вос- становить всю партию, являются в то же время и основой ана- лиза: в этом дебюте белые с самого начала не дают покоя чер- ным, у них очень открытая позиция и преимущество в атаке. В отличие от них черные должны защищаться до конца партии.
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 345 Единственное обстоятельство, которое дает им шанс в финале — это лучшая пешечная защита. Именно в таких ситуациях проявляются различия в культуре шахматистов. Общеизвестно, что слон по силе немного превос- ходит коня, главным образом в конце партии, когда он может свободно передвигаться по доске. Поэтому недостаточно опыт- ные шахматисты исключают ход С X d5, так как в результате этого слон разменивается на коня. Но что касается гроссмей- стера, то он чувствует, что в данной позиции можно найти ре- шающую атаку и завершить партию за небольшое число ходов. А это значит, что общеизвестные сведения не следует принимать в расчет, поскольку существенной характеристикой данной по- зиции является наличие атаки у белых, которую надо разви- вать. Кроме того, к особенностям позиции относятся сильный конь на е5, который угрожает ходом К^7; относительная сла- бость позиции короля черных, возникшая после рокировки; не- защищенная пешка белых Ь2, находящаяся под боем черного ферзя; четыре возможных нападения на фигуры: КХ ^5, СХ/6, С X d5, К X сб. Последние являются наиболее вероятными хо- дами белых и требуют детального анализа. Порядок рассмотрения этих ходов может быть и другим. На практике лучшие шахматисты сначала с помощью параллель- ного отбора получают только некоторые указания, а затем и полное решение поставленной задачи. Далее при анализе партии будем ориентироваться на четыре приведенных выше хода. Так как заранее ясно, что в этой по- зиции сильны ходы конем на dl и ё! с двойным нападением на черные фигуры, то вполне естественным будет стремление устранить черного коня и сохранить при этом белого. Таким образом, размен слона п2, который некоторыми шахматистами был отвергнут, нужно рассмотреть в первую очередь, поскольку он соответствует стилю атаки в этой партии. Теперь понятно, почему шахматисты, в том числе и гроссмейстеры, чаще всего ограничиваются анализом только небольшой части дерева хо- дов, как показано на рис. 6.15. Психологические исследования шахматного анализа позво- ляют сделать три важных вывода: 1. Гроссмейстеры своим мастерством обязаны не объему вы- числений, который они проделывают, а своей способности выде- лить правильный ход. 2. Поиск хороших ходов существенным образом связан со способностями шахматистов к восприятию позиции. 3. Способность к восприятию позиции зависит от широты знакомства с опытам шахматной игры и в особенности от спо- собности ассоциировать с конкретной позицией определенные
346 ГЛАВА 6 структуры, присутствующие в большом числе в памяти шахма- тиста. Психологи изучили также поведение человека при поиске решений в других областях. Ньюэлл и Саймон (1982) анализировали протоколы работы студентов, выполнявших упражнения на логические предложе- ния (гл. 3) и решавших арифметические задачи (гл. 8). Страте- гии этих студентов, знания, которые они использовали, были переведены в форму правил выполнения определенных опера- ций (гл. 7), после чего был довольно верно смоделирован об- щий ход их рассуждений. Мэтью и Томас (1985) опубликовали аналогичные работы, в которых приведены результаты ана- лиза процессов игры в го, расчета электрических цепей, реше- ния проблем механики. Все исследования подтверждают приведенные здесь выводы: основная особенность анализа заключается в том, чтобы в конк- ретной ситуации обнаружить группы «важных» объектов (та- ких, которые участвуют в наибольшем числе взаимных связей). Успех анализа зависит от знания предмета исследования и ка- чества структуризации этих знаний. 6.8. ROBIN — интеллектуальная программа для игры в шахматы В разд. 6.1 описано семейство программ для игры в шах- маты, которые по качеству игры значительно уступают шахма- тистам. Поэтому фундаментальной проблемой для исследователей в области искусственного интеллекта является понимание того, как человеку удается достигать таких высоких результатов, если доступное ему для анализа дерево ходов по своим размерам в тысячи раз меньше, чем для ЭВМ. На основании полученных результатов могут быть разработаны принципы построения игровых программ, отличные от систематического перебора хо- дов. Именно в этом направлении начал работать в 1972 г. фран- цузский ученый Жак Питра (CNRS, Париж). В его работе отправной точкой служило следующее важное обстоятельство: если существует такое большое различие между деревьями, которые анализируются человеком и программой, то, следовательно, речь идет не об одном и том же дереве! Это подтверждают и исследования Бине, де Грота, Саймона. Они показали, что шахматист быстро схватывает существенные особенности позиции, ему «бросаются» в глаза ходы, на кото- рые нужно обратить внимание в первую очередь. Таким обра- зом, хороший шахматист начинает исследование с углубленного
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 347 анализа начальной позиции, очень точные характеристики позво- ляют ему тонко описывать ее потенциальные возможности и сильные стороны, а также выявлять недостатки каждого хода. На основе начального анализа ведется поиск наилучшего хода как по ширине дерева, которое ограничено только ходами, свя- занными с результатами анализа, так и по глубине вплоть до позиций, в которых перестают сказываться нестабильности, вы- званные промежуточными ходами. Следует также учесть еще один важный момент, отличаю- щий мозг шахматиста от игровых программ первого поколе- ния, — при мысленном анализе не соблюдается реальный поря- док ходов-, анализируются невозможные ходы, в первую очередь рассматриваются более поздние ходы, мгновенно рождаются планы, которые развиваются, отвергаются, снова принимаются и так далее до тех пор пока окончательно не будет найден оче- редной ход. Из рассмотренной картины можно сделать вывод, что в мозге шахматиста возникает не что иное, как дерево планов, а не сле- пое дерево ходов, имеющее к тому же и громадные размеры. Программа Жака Питра работает по тому же принципу. Боль- шая часть ходов, найденных с ее помощью, вообще не замечает- ся другими программами, а иногда даже и специалистами! Ее можно отнести ко второму поколению игровых программ, кото- рое существенно отличается от первого и представляет настоя- щий интерес с точки зрения искусственного интеллекта, так как заложенные в его основу принципы можно перенести на многие другие области человеческой деятельности. Приведем сначала пример игры программы Жака Питра, которая называется ROBIN, а затем более подробно рассмотрим принцип ее работы. 6.8.1. Пример анализа, выполняемого программой Встретившись с позицией, приведенной на рис. 6.16, про- грамма начинает поиск хода с ее детального анализа. На этом этапе основной задачей программы является составление воз- можных в данной позиции планов продолжения игры, к кото- рым в данном случае могут относиться: 1) прямая атака на короля противника, начинающаяся хо- дом ФЛ7 +; 2) связка ферзя ходом ладьи на поле el; 3) взятие незащищенного черного ферзя ФХФ- Эти планы на практике могут реализоваться с помощью последовательности элементарных ходов, приближающих
348 ГЛАВА 6 конечную цель, в данном случае нападение на короля или ферзя черных. Эти цели часто сомнительны, иногда просто недости- жимы! Но программа развивает каждый план в таком направ- лении, чтобы оказались возможными ходы, которые не были таковыми сначала, чтобы создавались угрозы, расшатывалась оборона противника, а если достигнуть поставленной цели не abcdefgn Рис, 6.16. Е42. Ход белых. представилось возможным, то чтобы выявились другие пре- имущества. План имеет четко опреде- ленную конечную цель, и про- грамма приступает к анализу позиции, начиная с этой конеч- ной цели, а заканчивает нахо- ждением наилучшего хода на первом уровне, т. е. ходы оты- скиваются как бы в обратном порядке по сравнению с тем, как они делаются в реальной партии. Это может явиться полной неожиданностью и выглядеть неестественно для тех, кто не привык ставить перед собой четкие цели! В рассматриваемой позиции программа до конца разраба- тывает все три плана, но для игры останавливается на плцне 3, против которого у черных нет достаточно сильных ответных ходов. План в общих чертах выглядит следующим образом (приведен вариант плана, приводящий к успеху; программой анализируются также и другие варианты): — программа нацелена на взятие ферзя, занимающего поле е2 ходом Ф X Ф; — для этого белым нужно убрать своего коня с поля g4; — на это последует ответ черных Ф X ФЛ5; — следовательно, белым нужно убрать коня, нападая на фи- гуру противника, как минимум равную ферзю. Это может быть только король; — возникает промежуточная цель — поставить конем шах ко- ролю, находящемуся на поле е7; — прямой шах невозможен, единственными доступными для коня полями вблизи короля являются е5 и /6; — возникает новая промежуточная цель —переместить ко- роля черных; — только ладья белых, расположенная на поле dl, в прин- ципе может сделать это (ходы ферзем нужно отбросить, так как должна сохраниться возможность взятия ФХ$); — поле el не защищено (см. план 2);
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 349 — таким образом, остается только поле d7 для объявления шаха королю; — отсюда следует ключевой ход 1 — Jld7 4-1 со следующими основными вариантами: 1 — JW7-f-Кр X Л 2 — КХ/6 4-. (но не Ке5 4- из-за ФХ К и ферзь уходит из-под боя) ЛХК и 3 — Ф X Фе2. Программа проверяет также ходы 3 — CXf2 4- и 3 — Л X f2, которые ничего не дают чер- ным; — наконец, учитывается возможность для черного короля не принимать отравленный подарок JId7 : 1 — Креб (един- ственный ход). Но это еще хуже, так как следует ход 2 — Фс/5 мат. Безусловно, эта позиция находится в пределах досягаемости предыдущих программ (МАКСГЛ==7 полуходов), но она очень хорошо иллюстрирует возможности поиска наилучшего хода с помощью очень небольшого дерева — всего 305 ходов против 407 или 16-10’° для программы, работающей с помощью пере- бора ходов. Как мы увидим ниже, в сложных позициях ROBIN может спускаться до глубины 20 полуходов и более. 6.8.2. Различные типы планов в шахматах Для программы целью улучшения начальной позиции яв- ляется определение благоприятных ключевых ходов. Они яв- ляются отправной точкой для разработки планов, т. е. линей- ных последовательностей промежуточных целей (или обобщен- ных ходов), которые в конце концов приводят к материальному перевесу. При разработке планов программа учитывает только те ходы, которые так или иначе связаны с поставленной зада- чей. Для ROBIN существуют планы четырех типов, простейший из которых представляет собой простое взятие фигуры против- ника. План типа 1: простое взятие Для каждой фигуры программа определяет число и вид фи- гур, которые на нее нападают и ее защищают, что является несложной и быстровыполнимой задачей. Учитываются также возможные нападения и защиты по вскрытым линиям, т. е. за- маскированные своими фигурами. Затем подсчитывается итог. Если для фигуры число нападений количественно или каче- ственно равно или превышает число защит, то считается, что фигура расположена на позиции простого взятия и начинается разработка соответствующего плана. В предыдущей позиции (Е42, рис. 6.16) мы видели, что ферзь черных находился под скрытым боем. Для черных ладья белых dl и пешка а2 были непосредственно под боем, пешка )2 и конь
350 ГЛАВА 6 g4 могут быть взяты после добавления одной нападающей фи- гуры или устранения по крайней мере одной из защищающих. План типа 2: двойное нападение Очевидно, что существует более опасный для противника случай, чем предыдущий. Он соответствует ситуации, когда одна и та же своя фигура нападает одновременно на несколько фи- гур противника (обычно на две). При этом вероятность полу- чить преимущество увеличивается, так как противник имеет право только на один ход и ча- сто может спасти только одну из своих фигур. Это и есть двойное нападение, частным случаем . которого является связка (ферзь на е2 оказы- вается связанным на предыду- щей диаграмме после хода бе- лых ладьей на el). В качестве одной из фигур, подвергаемых двойному нападению, может оказаться и король, которого другие фигуры защитить не в состоянии. Рис. 6.17. М58. Ход черных. Вопрос, на который ищет ответ программа при разработке такого плана, состоит в следующем: «Существует ли такое поле, что если переместить на него одну из своих фигур, то она бу- дет нападать на две фигуры противника, находящиеся на пози- циях простого взятия?» При поиске такого хода, программа предусматривает опреде- ленную свободу: • поле-мишень может быть занято, тогда промежуточной целью является удаление фигуры с этого поля; • на каком-либо промежуточном поле может стоять фигура, препятствующая нужному ходу, тогда это поле нужно освобо- дить. В примере, приведенном на рис. 6.17, анализ простых взятий показывает, что если ферзь черных займет поле ев, это может привести к взятию короля белых el И пешки а2, т. е. существует возможность двойного нападения на эти незащищенные фигуры. Однако поле еб занято, и для достижения цели нужно сначала удалить занимающую его пешку, а затем еще одну пешку d5, маскирующую поле а2. План типа 3: атака на короля Когда играешь в шахматы, необходимо иметь в виду особую роль, которая отводится королю среди других фигур — если он
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 351 взят, партия проиграна. Это дает богатый материал для планов атаки на короля. При разработке этих планов в качестве начальных рассмат- риваются все ходы, приводящие к шаху: если фигура, объявляю- щая шах, сама не находится под боем или если король против- ника не имеет другой возможности, как только ее взять. Таким образом, в позиции Е42 (рис. 6.16) ход Jld7 + не приводит к возникновению плана в отличие от хода Ф/7 +, ибо во втором случае не остается поля для бегства короля; заранее ясно, что атака гораздо более сильная. Но чтобы ее завершить, нужно, с одной стороны, удалить черную ладью на /8, с другой — защи- тить белого ферзя на f7. Возможность этого будет показана дальнейшим развитием плана. Наконец, на доске существует другой тип фигуры, играющий особую роль — это пешка. Достигнув восьмой горизонтали, она превращается в любую другую фигуру. План хипа 4: продвижение Так как для всякой пешки не следует строить план похода в ферзи, то программа начинает поиск продвинутых пешек только к середине партии и создает такой план только для пе- шек, достигших шестой или седьмой горизонтали. План состоит в продвижении пешки с проверкой, что в результате этого она не будет потеряна. Если продвижению мешает фигура, ROBIN, кроме того, изучает возможности: • удаления этой фигуры; • привлечения на соседнее поле фигуры противника, для того чтобы использовать возможность взятия пешкой по диаго- нали. Все эти начальные планы программа находит одновременно для обеих сторон. Более того, для ограничения исследований только такими планами, для которых имеется надежда на успех против любой защиты противника, программа сохраняет только те из них, которые первоначально не требуют более двух моди- фикаций промежуточных полей. 6.8.3. Язык для разработки планов Элементы языка Для записи ходов мы пользуемся удобными общепринятыми обозначениями типа JI/i7, дХс, 0 — 0. Аналогично, полезно иметь специальный язык для программы, работающей с дере- вом планов, для того чтобы выражать направленность действий или «суперходы» в планах.
352 ГЛАВА 6 Типичным действием является требование модификации поля, для кодирования которого в этом языке используются сле- дующие обозначения: поле в произвольный момент может быть пустым V, занятым своей фигурой А или фигурой противника Е. В двух последних случаях указывается занимающая его фигура. Обозначения действий в планах приведены в следующих при- мерах: Ф£.е2—удалить ферзя противника с поля е2 Е.аА ->^\Е освободить поле а4 от пешки противника и оставить его пустым или занять своей фигурой lz.6z8 >£J>K на пустое поле а8 заставить пойти коня или не менее ценную фигуру противника KA.g4 > Е * убрать своего коня с поля g4. Звездочка слу- жит для уточнения; выполнить это действие надо с сохранением атаки. План двойного нападения на ферзя черных в позиции М58 (рис. 6.17) будет выглядеть следующим образом: A.d~>»V*: удалить пешку черных с поля db, со- хранив атаку А.е6->У * то же для пешки еб ФА.Ьб->е6 переместить своего ферзя с поля Ь6 на еб ФА.еб—>е! ИЛИ а2 уточнение целей двойного нападения Развитие планов После составления планов программа переходит к их более детальному изучению. Каждое действие плана уточняется ука- занием ходов, которые его могут реализовать, т. е. из одного исходного плана возникает множество производных. Отыски- ваются обходные пути для действий, прямое выполнение кото- рых невозможно. Если, например, программе нужно удалить фи- гуру, то: • если она своя, достаточно этой фигурой сделать ход (как в позиции £42, рис. 6.16): KA.gA-*- V *, т. е. белые ходят конем на поле h2 или f2 или еЗ или еб или /6 или Л6 • если фигура принадлежит противнику, нужно выполнить одно из следующих действий: — взять ее; — напасть на нее; — подставить этой фигуре свою фигуру для взятия. В позиции £42 (рис. 6.16) ни один из приведенных выше хо- дов коня не удовлетворяет условию, накладываемому звездоч-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 353 кой (сохранить инициативу), поэтому программа должна пред- принять другое действие: Кр£.е7 ->У * удаление короля равносильно сохранению-ини- циативы. Мы убедились в том, что конь не может ни взять, ни атако- вать, ни быть взятым. Остается ход ладьей, находящейся на поле dl, после чего Kpf.e?-»- V* приводится к виду: JIA.dl-> Л X Кр * взять короля или JlA.dl —>Л+* напасть на него или JIX.dl->JId6, d7 или d8 подставить ему свою фигуру. Для реализации первой из этих задач в данной позиции не существует ни одного хода, поэтому связанный с ней промежу- точный план отвергается. Для выполнения второй задачи су- ществует единственный ход Л d7 (который пригоден и для третьей задачи, так как возможен последующий ход КрХЛ). Далее продолжается развитие этого плана: 1. JId7 Кр X d7 добились перемещения короля. 2. К объявляет шах и 3. Ф X Ф. Для выполнения любых действий программа ставит перед собой ряд промежуточных целей. Приведем еще один пример. Чтобы не допустить взятия (та- кая задача часто ставится в локальных планах), необходимо: • убрать фигуру из-под боя; • поставить на пути другую фигуру (свою или противника). В позиции А!58 (рис. 6.17) один из планов связан с ходом ФеЗ +, но последует немедленный ответ Ф X Ф- Возможность устранения этой опасности состоит в следую- щем: V .g3->“|y (занять поле g3 какой-нибудь фигурой) ФЛ.66->еЗ+ Этой фигурой, в частности, может оказаться пешка против- ника й2, которая сможет выполнить эту роль, если ей подста- вить для взятия другую фигуру. Таким образом, V.g3->-~IV можно записать по-другому: ПЕ./г2->§'3. В реальной позиции только одна фигура может пойти на поле g3. Это ладья g8, для которой единственной причиной такого хода будет выполнение рассматриваемого плана. Теперь 1. JIg3 AXg3 дает 2. ФеЗ+ Се2 12 Ж.-Л. Лорьер
354 ГЛАВА 6 Последний ход найден программой, которая вынуждена не-' прерывно составлять планы и для противника, в данном случае с помощью того же приема — постановки фигуры на промежу- точную позицию. Но в этом варианте простое взятие ФХ«2 при- водит к выигрышу черных. Поэтому программа продолжает со- ставление планов, в которых предусматривается удаление ладьи с поля g3, угрожающей Л X Ф. Очевидно, что самым простым решением является Ф X Л. На это программа немедленно находит ответ, привлекая механизм промежуточных целей: ход СЛ4, с помощью которого черные выигрывают ферзя белых. В процессе анализа программой отвергается большое число планов, что может в действительности привести к следующим последствиям: • решающий ход для осуществления плана стал невозмо- жен (например, из-за потери фигуры); • материальный баланс очень неблагоприятен (или хуже того, который предполагался) даже в случае успешной реализации текущего плана; • план логически невозможен из-за наличия противоречий (например, требуется одновременное выполнение усло- вий ху-> V и Л Л); • невозможно устранить возникшее препятствие (например, из-за отсутствия подходящего хода); • план отвергнут из-за слишком большой доли оптимизма при его составлении: даже если все идет лучшим образом, окончательный материальный итог неблагоприятен. Несмотря на непрерывно происходящий процесс изменения и завершения планов, программа должна помнить основную идею первоначального замысла. Это может быть сделано с помощью специального действия, которое предусматривает в определен- ные моменты времени проверку условий. Например, если перво- начальный замысел заключался в освобождении какого-либо поля, необходимо проверять, что данное поле действительно сво- бодно в нужный момент времени и оно не оказалось случайно вновь занятым в результате ходов, найденных при разработке плана. 6.8.4. Оптимизация защиты: понятие опасного хода На каждом этапе шахматной партии один из противников ищет пути к победе, в то время как другой пытается выровнять положение. В соответствии с этим и программа в каждый мо-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 355 мент времени играет за одного играющего — того, кто проигры- вает при разработке текущего плана. Чтобы найти спасительный ответ, проигрывающий сам со- ставляет планы. В ходе игры он может вновь получить преиму- щество, тогда программа вновь обращается к позиции его про- тивника. В конечном итоге этот шахматист может и проиграть партию, и окончательный анализ тогда покажет, что все по- пытки спасения безрезультатны. Обработка программой дерева планов оказывается очень близкой к человеческому образу мыслей при игре в шахматы. Сначала изучается наиболее многообещающий путь. Затем ана- лизируется, к каким наихудшим последствиям приводит ответ противника. Если найдено оп- ровержение одного из путей, рассматривается другая линия игры на более высоком уро- вне. Таким образом, в игре по- стоянно находятся и отвер- гаются «опасные ходы». Их точное определение дано ниже. Устранение опасности состоит в отражении этих ходов или в устранении их неприятных по- следствий с Помощью других опасных ходов. Сначала ищут abcdefg h Рис. 6.18. М39. Ход черных. спасение против ходов, для отражения которых у другой сто- роны остается наименьшее число своих опасных ходов. Для того чтобы найти план, опровергающий план против- ника, необходимо отразить все опасные ходы плана против- ника. Идея достижения этой цели состоит в различной реак- ции на различные опасные ходы противника. Их можно разделить на 4 типа, каждый из которых рассмотрен в отдель- ности. При анализе опасных ходов учитывается только баланс ма- териальных сил, а сам анализ напоминает процедуру восхожде- ния в методе минимакса. Предположим, что программа ищет для шахматиста J план, который обозначим v(J). Тогда опасным ходом является такой ход противника, который на момент анализа приводит к мень- шему значению оценки, чем ожидается по плану и(/). На рис. 6.18 приведен пример одного из разработанных про- граммой планов, который связан с продвижением черной ладьи с поля d8 на d\, где она не оставляет королю белых ни одного поля для отступления. Этот план можно записать следующим 12*
356 ГЛАВА 6 образом: KAd5—>У отойти конем JlA.d8->dl пойти на поле dl ЛД.^1->ЛХКр Материальный баланс в пользу черных (взятие короля), ход ЛХКр опасен для белых, и программа, которая начинает строить планы за белых, ищет способ его отражения. Она не- медленно найдет способ устранения угрозы: ФХЛо!1 или ЛХЛЛ. Также опасным для белых является и ход KAd5->-V, который может быть ходом КХ КсЗ. Но равновесие и здесь бы- стро восстанавливается с помощью Л X КсЗ. Результат анализа показывает, что для белых не существует больше опасных ходов. Как мы убедились, все угрозы могут быть ликвидированы. Программа возобновляет игру черными. Опасными для черных являются и три только что рассмот- ренных хода белых. Рассмотрим теперь реакцию программы на опасные ходы и ответные способы предотвращения угрозы. Программа вырабатывает 4 типа планов в ответ на опасные ходы: новые взятия, логические разрушения опасных ходов, на- ложения, локальные планы. 1. Новые взятия. Каждый ход в шахматах, кроме рокировки и взятия на проходе, изменяет содержимое двух полей. В ре- зультате последних двух ходов — своего и противника — изме- няется содержимое четырех полей. Программа постоянно сле- дит, не появились ли возможности взятия за счет модификации этих полей. В обычной шахматной позиции подобные действия позво- ляют очень быстро расширить и углубить начальные планы. 2. Логическое разрушение. Здесь речь идет о том, чтобы сделать невозможным опасный ход противника, исключить его из списка опасных ходов. Достигается это за счет воздействия на начальное, промежуточное или конечное поля опасного хода, в результате которого фигура Q лишается возможности сделать опасный ход или вынуждена уйти со своего отправного поля d: QE.d-+]E И наоборот, если на конечном поле а находится своя фигура Р, то необходимо выполнить действие РА.а-+~] А, нейтрализующее опасный ход противника. Другая возможность состоит в перемещении на одно из про- межуточных полей и, расположенных на пути от d до а, про-
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 357 извольной фигуры, например V.u^lV 3. Наложения. Здесь в качестве защиты от опасного хода используется нападение. Программа позволяет противнику осуществить свой план, но пользуется возникающими при этом на доске модификациями полей для реализации контрплана, который начинает действо- вать немного позже. Этот способ защиты очень обманчив. С по- мощью программы Ж- Питра удалось исправить несколько оши- бок, допущенных знаменитыми шахматистами при анализе пар- тий (позиция Т149 на рис. 6.21). Возможность использования наложений обусловлена двумя причинами: • действия плана не являются обязательно выполнимыми в существующей позиции, т. е. они нечувствительны к опреде- ленным изменениям и могут оставаться в силе спустя много ходов; • все начальные планы противника составляются одной и той же программой, поэтому в случае опасности программа легко может поставить себя на место противника. Как только первое действие оборонительного плана стано- вится возможым, программа заносит его вместе с соответствую- щим планом в список подготовленных ответов на последний ход противника. 4. Локальные планы. Здесь речь идет о подготовке косвен- ной атаки на фигуру, которая может сделать опасный ход, с помощью двойного нападения, угрозы мата, взятия фигуры по- сле отступления ее защитника. Каждый подобный анализ похож на' анализ позиции, кото- рый делается вначале с участием всех фигур на доске, но он ограничивается лишь одним полем. 6.8.5. Результаты В этом разделе мы завершаем в общих чертах описание программы ROBIN для иры в шахматы, разработанной Ж- Пит- ра. Мы уже познакомились с основными особенностями этой программы, которые отличают ее от слепых программ, постро- енных с использованием альфа — бета-процедуры. Программа ROBIN действительно способна рассуждать и руководствовать- ся идеей при развитии созданного ею же плана. Для нее не существует никаких предварительных 'Ограниче- ний на глубину или ширину дерева анализа. Дерево, которое
358 ГЛАВА 6 она. строит, является деревом планов, т.. е. последовательностей действий или “метаходов”, используемых для нахождения по- следовательностей реальных ходов. Заранее ясно, что это де- рево гораздо меньше по размерам, чем дерево реальных ходов. Программа выполняет анализ логической последователь- ности действий плана, а не последовательности ходов, наблю- дающейся во время реальной игры. В реальных шахматных партиях программа показывает игру на уровне игры человека. Она находила комбинации, ко- торые ускользали от внимания таких выдающихся шахмати- стов, как Эйве, Ласкер и Смыслов, и от таких аналитиков как дю Мон. Она нашла неточ- ность в комбинациях, найден- ных дю Моном и Таррашем (в одном случае она показала, что противник избегает пора- жения). Рассмотрим пример анализа позиции М42, приве- денной на рис. 6.19. Эта позиция является очень трудной. Однако программа с помощью анализа до глубины 23 полуходов показывает, что если белые будут играть наи- лучшим образом, то выиграют лежит в основе выигрышного на короля черных ходом Л X не имеет возможности для от- Рис. 6.19. М42. Ход белых. ладью черных. Идея, которая плана, состоит в прямой атаке ХЛе8+, после которой король ступления. Успех плана определяется тем, что ферзь черных, занимающий поле сП, перегружен, так как должен защищать од- новременно поля с8 и d8. Для реализации идеи составляется план Р1, который можно записать следующим образом: Р1 ЛХЛ.е8 Л X Kp.g8 Последний ход является опасным для черных (опаснее не- куда!), они его могут отразить взятием фигуры, которая создает опасную ситуацию. Взять ладью е8 могут две фигуры черных — ферзь и ладья. Для белых оба исхода приводят к невозмож- ности реализации плана в таком виде. Тогда в план вводятся изменения и появляется план Р2: Р2 Ф£Д7^ДФД Л£.с8-> Л£ далее по плану Р1
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 359 Чтобы убрать черного ферзя с ключевого поля, программа, как мы знаем, может предложить жертву фигуры. Один из ее вариантов реализуется в плане РЗ: РЗ Ф/1Д4->#4 П ФЯ.67 (можно добиться с помощью ФД X Ф^7 или Ф£ХФ^4) далее по плану Р2 , Достигнув этой точки, программа определяет, что остался еще один опасный ход черных. Их ферзь может сохранить контроль над полем el без взятия белого ферзя, просто отсту- пив на поле Ь5. Такой оборонительный ход черных также должен быть нейтрализован. Для этого белые составляют новый план, кото- рый является вариантом плана РЗ: Р4 ФЕ65->ПФ£ далее по плану Р2 Кроме того, с самого начала в плане Р2 имеется другой опасный ход — Л X е8. Эти два хода предотвращаются одним и тем же ходом бе- лых Фе4. Далее возможны два продолжения: Ф%ФЬ5 или ФХ^с8 Р5 ФА.§4-> с4 ФА X Ф65 “) ФД65 далее по плану Р2 Преследованием ферзя черных белые эффективно добивают- ся выполнения этого плана, основной вариант которого имеет вид 1. Ф§4! ФЬ5 2. Фс4! Ф(17 3. Фс71 Ф&5 4. а4 Ф X а4 5. Ле4 Фй5 6. Ф67 и черные теряют ферзя, иначе Ле8Х- В общем чтобы доказать, что первый ход хорош и что он приводит к выигрышу ферзя черных, необходимо спуститься до глубины 23, а в одном случае — 11 полуходов. На этот ход .черные имеют в своем распоряжении не менее 26 ответов!
360 ГЛАВА 6 Из приведенного анализа ясно, что программа способна играть и действительно играет безупречно. Последнее не всегда получается у играющего шахматиста, которому на практике до- статочно показать, что сделанный им ход выглядит сильным в большей части вариантов. На рис. 6.20 приведена позиция М42, в которой программа нашла лучший ход за белых 1.Ф^4. Его анализ нам не под силу, так как для этого потребовалось бы изучить как минимум 2454 варианта. Эта позиция была предложена Берлинером в его диссерта- в каких случаях иногда бывает необходимо проводить анализ на очень большую глубину. У Берлинера программа нахо- дит правильный ход следую- щим образом: король черных находится в опасности, так как ему недоступны все окружаю- щие его поля, ход белых с ша- хом ФЛ5+ может оказаться фатальным. Программа, рабо- тающая по принципу система- тического перебора, быстро от- бросила бы этот ход после од- ного или двух обменов ходами, защиты ферзя белых от хода так как она не видит способа КХФЛ5. В отличие от этого ROBIN ищет для белых защиту от опас- ного хода КХФ. Локальный анализ поля, которое занимает фигура, делающая опасный ход, выявляет возможность контр- удара— в данном случае связки этой фигуры. Ее можно осу- ществить с помощью ладьи fl, если ввести в действие еще один резерв — заставить пешку /5 отступить с занимаемого ей поля. Это достигается с помощью простого взятия /5 X еб. Одна- ко программа определяет, что если этот ход сделать вначале, то он позволит ладье черных сделать ход Ле8 X еб, что для белых неприемлемо, так как для короля черных открывается путь к спасительному бегству. Поэтому игровым вариантом остается Ф/г5, за котоым сле- дует f5 X еб. Первым ходом объявляется шах королю, который так и не имеет ни одного поля для отступления. Анализ, прове- денный программой, показывает, что потеря ферзя будет ком- пенсирована после нескольких обменов ходами: КЙ5 1. ФА5+
ИГРОВЫЕ ПРОГРАММЫ. ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ 361 Анализ полей, занимаемых королем, позволяет найти следую- щую последовательность ходов: 2. /5Х<?6++ Kpg6 3. Сс2+ Kpg5 4. Л/5+ Kpg6 Были изучены и другие планы. Но этот приводит на пятом ходу к очень сильному двойному шаху: 5. Л/6++ Kpg5 6. Л§6+ КрА4 Ладья gQ защищена слоном с2, и король вынужден продви- гаться в направлении противника! 7. Ле4+ К/4 В игру вступает вторая ладья белых: 8. Л X f4 КрЛ5 Все ходы черных до сих пор являются вынужденными. Бе- лые форсированно реализуют свой план, преследуя удаляюще- гося от своего войска короля, при этом другие черные фигу- ры играть не могут. Продолжение находится без труда. Атака белых ЛЙ4+ является преждевременной из- за опасного хода черных Кр X X ЛЛ4. Однако не допустить этот ход можно простым про- движением пешки: 9.g3. Фигу- ры черных неподвижны, ко- роль парализован: Ю.ЛМХ. На рис. 6.21 приведена по- зиция Т149, в которой Тарраш демонстрирует выигрыш пеш- 8 7 6 5 4 3 2 1 abcdef gh Рис. 6.21. Т149. Ход черных. ки с помощью: 1. СХА2+ 2. Кр X h2 Ф/г4+ 3. Kpgl с последующим Ф X Са4! Его анализ основан на плйне двойного нападения на h2 и Са4. Но программа, которая разрабатывает также планы бе- лых, видит возможное наложение с планом двойной атаки бе- лых на с7 и Л[8 после освобождения поля е5 на первом ходу. Таким образом, план белых наталкивается на ход черных 4.Фе7!
362 ГЛАВА 6 Один из возможных ответов черных состоит в одновремен- ной защите двух фигур с помощью хода 4.CtZ7. Но у белых есть возможность продолжать атаку на защищающих друг друга слона и ферзя, а также готовить угрозу слабозащищен- ной пешке Й7 с помощью ходов JIf4, затем Л/г4 с преимущест- вом белых, которое сводит на нет перевес в одну пешку, полу- ченный на первом ходу. Таким образом, программа ROBIN показала, что анализ Тарраша является неполным.
Глава 7 ЭКСПЕРТНЫЕ СИСТЕМЫ Введение Со временем доля работ на ЭВМ, связанных с обработкой чисто числовой информации, будет постоянно уменьшаться. Уже в настоящее время большая часть программного обеспечения предназначена для работы с информацией более общего вида. В этой главе речь пойдет об одном семействе программ, предназначенных для оказания помощи специалистам в кон- кретных областях знаний, а именно об экспертных системах. К их основным свойствам относятся возможность обработки символьной информации, использование неполных данных для построения логических выводов, взаимодействие с человеком с помощью естественного языка. Первая часть главы содержит формальную концепцию по- строения систем и описание их некоторых конкретных вариан- тов. Во второй части рассмотрены свойства систем, различные способы подготовки информации по специальной тематике, а также современное состояние и перспективы развития подоб- ного подхода к программированному взаимодействию человека и ЭВМ. В первых исследованиях в области искусственного интеллек- та часто ставились слишком грандиозные цели, такие, как ав- томатический перевод на другой язык, доказательство теорем в произвольных областях знаний. Но следует заметить, что человечество в течение веков накопило громадный объем кон- кретных знаний и совершенно очевидно, что традиции, сформи- ровавшиеся в одной области знаний, не обязательно автоматиче- ски переносимы на все остальные. В последние годы системы искусственного интеллекта раз- вивались с учетом именно этого обстоятельства. Сегодня ясно, что для разработки качественных интеллектуальных программ необходима их ориентация на определенные узкие области че- ловеческой деятельности, в которых они должны уметь обучать- ся своей специальности, структурировать полученные знания и правильно их применять. В этой главе рассматриваются системы, работающие с боль- шими объемами знаний. Их целью является достижение резуль- татов, получаемых лучшими специалистами в своих областях, поэтому такие системы и получили название экспертных. Важ- ной особенностью этих систем является то, что они задуманы для использования человеком и оказания ему эффективной
364 ГЛАВА 7 помощи. Необходимым средством для этого является возмож- ность диалога на естественном, языке программы со специали- стом. Кроме того, необходимо, чтобы специалист понимал систему и в случае необходимости мог сообщить ей свои рассуждения и убедить ее в их справедливости. Для этого нужно, чтобы дек- ларативные знания, используемые системой, были отделены от обслуживающих их программных средств и в то же время были доступны непосредственно самой системе. Необходимо также, чтобы выводы системы были простыми и устойчивыми и их можно было легко объяснить. Наконец, самое главное состоит в том, чтобы специалисты и эксперты могли легко передавать системе свои знания, обога- щать ее. Для этого нужно иметь возможность вводить в систе- му знания в произвольном порядке, чисто описательным спосо- бом (не ориентируясь на их будущее использование, в отличие от классических жестко алгоритмических процедур). Сама си- стема должна уметь упорядочивать и структурировать эти зна- ния, сравнивать их с уже имеющимся и строить свою собствен- ную модель знаний. Для примера рассмотрим два реальных диалога с одной экспертной медицинской программой MYCIN: • постановка диагноза; • объяснение системой хода своих собственных рассужде- ний. Кроме того, в разд. 7.2 дан пример корректировки базы зна- ний в режиме диалога. 7.1. Примеры диалогов в экспертной системе 7.1.1. Медицинская диагностика MYCIN: Моя рекомендация будет основываться на возмож- ных типах инфекции и потенциальных путях проникновения возбудителей инфекции. Возбудителями заболевания могут быть следующие микроорганизмы: 1) pseudomonia aeruginosa; 2) klebsellia pneumoniae; 3) escherichia coli; 4) bacteroi'des fragilis; 5) enterobacter; 6) proteus non mirabilis. Пользуясь шкалой от 0 до 4, как вы оцениваете серьезность заболевания Фреда Смита? Пользователь: 3. MYCIN: Наблюдаются ли у Ф. Смита аллергические реак- ции на какой-либо антибиотик? Пользователь: Нет. MYCIN: Вес пациента в килограммах?
ЭКСПЕРТНЫЕ СИСТЕМЫ 365 Пользователь: 70. MYCIN: Моя первая рекомендация состоит в следующем: для того, чтобы охватить варианты болезни 1—6, давать клин- дамицин в дозах по 595 мг в течение 14 дней. Возможно, вы хотите исключить использование некоторых медикаментов? Пользователь: Да, клиндамицина. MYCIN: Для того чтобы охватить варианты 2—6, давайте хлорамфеникол (левомицитин) в дозах по 1 г в течение 14 дней. При этом: 1) Следите за уровнем лейкоцитов у пациента. Для того чтобы охватить вариант 1, давайте гентамицин в дозах по 119 мг в течение 10 дней. 2) Измените дозу в случае почечной недостаточности. 7.1.2. Объяснение системой хода своего рассуждения MYCIN: Произошло ли инфицирование больного в боль- нице? Пользователь: Почему? TEIRESIAS. (Почему важно это знать?) Это поможет опре- делить, к какой категории относится микроорганизм, ответствен- ный за инфекцию. • Уже установлено, что, во-первых, организм грамотрица- телен; во-вторых, это бактерия и, в-третьих, она аэробна или анаэробна. • Следовательно, заражение произошло не во время пребы- вания в больнице. • Почти наверное (0,8), что организм относится к катего- рии энтеробактерий; более того, возможно (0,1 — правило 37), что это pseudomonia aeruginosa. Пользователь: Почему вы не предположили возможности того, что причиной заболевания является стрептококк? TEIRESIAS: Для того чтобы идентифицировать организм как стрептококк, нужно было бы использовать правило 33, но уже известна сложность его второй предпосылки, а именно «морфологический тип — оболочка», поэтому правило 33 не- применимо. 7.2. Функционирование системы MYCIN — TEIRESIAS MYCIN вместе с дополняющими ее программами TEIRESIAS и BAOBAB образуют типичную экспертную систе- му, которая оперирует с большим количеством знаний, задан- ных в описательной форме. Ниже описаны ее цели, достоин- ства и характер функционирования.
366 ГЛАВА 7 7.2.1. Цель Система MYCIN была задумана для оказания помощи вра- чу в режиме взаимодействия врача и системы при постановке диагноза и лечения бактериальных заражений крови. Консультация ведется по-английски с врачом, располагаю- щим всей полезной информацией о пациенте и результатах ла- бораторных анализов. Рассуждения MYCIN в случае отсут- ствия полной информации (результаты лабораторного анализа культур бывают обычно известны только через 24 или 48 ч) основываются на множестве так называемых продукций (про- дукционных правил), выражающих индивидуализированные знания. Система MYCIN способна объяснить свои рассуждения и ответить на вопросы, поставленные на обычном языке. Более того, такая продукционная база знаний может быть видоизме- нена или увеличена, причем в каждый момент система обла- дает моделью своих знаний, т. е. в известном смысле знает, что именно она знает. 7.2.2. Достоинства Достоинством системы MYCIN — одной из самых совершен- ных в области искусственного интеллекта — является то, что ис- пользуемая техника имеет достаточно общий характер, и то, что программа является действующей: она получает результа- ты высокого качества и находит эффективное применение в практике. MYCIN, разработка которой была начата в 1974 г. Шорт- лиффом, образует основное звено в цепи исследований, прово- димых в течение более десяти лет в Стэнфордском универси- тете под руководством Дж. Маккарти в рамках Стэнфордского проекта эвристического программирования. Система разраба- тывалась в тесном взаимодействии с врачами из инфекционно- го отделения медицинского факультета этого же университета. К этому времени Букханан и Фейгенбаум из Стэнфордского университета разработали экспертную систему DENDRAL и METADENDRAL (1968), предназначенную для работы в об- ласти органической химии. Тот же коллектив специалистов раз- работал систему приобретения знаний TEIRESIAS (1974) и программу BAOBAB (1980), которая автоматически создает структуру, основываясь на базе знаний, содержащихся в исто- рии болезни пациента. Впоследствии этот коллектив обратился к другим предмет- ным областям, таким, как авторемонтное дело, лечение менин- гита, диагностика легочных инфекций, оказание помощи при
ЭКСПЕРТНЫЕ СИСТЕМЫ 367 горнорудных изысканиях или генетических манипуляциях — что показывает силу и общность принятого подхода. Следует от- метить, что проблема диагностики, даже ограниченная вполне определенной областью применения, как, например, микробные инфекции, является весьма сложной. В самом деле: а) не существует единого универсального метода лечения инфекционных заболеваний; б) статистика показывает, что, хотя пенициллин дают года- ми каждому человеку из четырех, в 9 случаях из 10 он оказы- вается бесполезным. Отсюда необходимость установления ха- рактера инфекции до начала лечения; в) необходимо также как можно лучше знать инфицирую- щий возбудитель, что' является довольно трудной задачей: для получения достаточно точных характеристик с помощью лабо- раторных анализов требуется 48 ч, еще больше — для получения антибиограммы. Кроме того, необходимо перекрывать новые пути проникновения инфекции; г) во многих случаях инфекция настолько серьезна, что не- обходимо начать лечение еще до того, как известны результа- ты анализов, а в некоторых случаях (например, заражение ви- рулентными бактериями после операции на сердце) и при от- сутствии штатного бактериолога; д) дополнительные сложности вносит недопустимость для пациента некоторых лекарственных средств (аллергии, тяжелое состояние пациента, возрастные ограничения). Любая система, будь то человек или программа, которая приступает к решению этой задачи, должна располагать всей возможной информацией по всем отмеченным пунктам, должна знать, могут ли они взаимодействовать между собой, и, нако- нец, должна принимать решение в течение очень короткого промежутка времени. Это решение является компромиссом, достигаемым в недостаточно изученной ситуации, между тре- буемой эффективностью лечения и требуемым для этого вре- менем. Некоторым утешением может служить то обстоятельство, что эта сложная проблема на самом деле весьма ограниченна в том смысле, что для ее решения, нет необходимости в знаниях по общей медицине, по теоретическим моделям инфекций или по устойчивости микробов к антибиотикам. Мы увидим, что представление знаний в декларативной форме с помощью продукций вполне годится для рассматривае- мой области и что оно облегчает диалог с пользователем на естественном языке, причем программа действительно в состоя- нии пояснять ход своего рассуждения. Наконец, система,
368 ГЛАВА 7 постоянно учитывающая новые данные, может быть хорошим учителем, способным помочь специалисту использовать свои знания. 7.2.3. Описание Система состоит из базы знаний, представляющей собой заданное множество правил, и четырех главных программ, ко- Рис. 7.1. Принципиальная схема системы MYCIN. торые взаимодействуют между собой по схеме, изображенной на рис. 7.1. ' Правила Основная совокупность знаний — это база знаний, состоя- щая примерно из 400 правил продукций, каждое из которых содержит множество посылок, описывающих некоторую ситуа- цию, и множества действий, которые нужно предпринять в от- вет, если посылки окажутся удовлетворенными. Каждое правило имеет следующую форму: Если и Р2 и ... Pt, то di и а2 ... и ац где Pi — посылки или условия. В системе MYCIN они представлены следующим образом: (предикат) (объект) (определение) (оценка) Примеры. MYCIN, правило 85. Если 1) место нахождения культуры — кровь, и 2) микроорганизм — граммоотрицателен, и 3) микроорганизм имеет вид палочки, и 4) пациент относится к группе риска, то с уверенностью 0,6 микроорганизм представ- ляют собой pseudomonia aeruginosa. MYCIN, правило 217. Если 1) микроорганизм — бактериален и 2) местонахождение культуры — стерильно, то можно реко- мендовать терапию с использованием следующих средств: хло- рамфеникола, клиндамицина, тетрациклина, линдомицина, ген- тамицина.
ЭКСПЕРТНЫЕ СИСТЕМЫ 369 MYCIN располагает стандартным набором из 24 цредика- тов (например, «есть», «тот же самый», «известен», «принадле- жит к» ...), 11 объектами («микроорганизм», «культура», «ле- карство» ...) и 80 определениями («идентичность микроорга- низма», «чувствительность», «местонахождение» ...), которые служат для описания рассматриваемого случая. Правила представляются на естественном языке. Одна груп- па правил предназначена для диагностики, другая — для по- строения рецептов лечения. Кроме того, с каждым правилом связан коэффициент надеж- ности (КН), принимающий значения от 0 до 1, который выра- жает большую или меньшую достоверность заключения экспер- та. В самом деле, знание в этой области никогда не бывает абсолютно надежным. Точно так же и наблюдаемые факты — симптомы — не являются чаще всего независимыми и надеж- ными. Мы увидим, что MYCIN в работе использует факторы правдоподобия, которые, кстати, не подчиняются вероятностным закономерностям. Примерное рассуждение Факты, относящиеся к внешнему миру, представляются в виде триплетов, оцененных коэффициентом уверенности (КУ), который может принимать значения от —1 до 1. Примеры. Идентификация микроорганизма: Е. coli 0,7. Идентификация микроорганизма: klebsiella 0,4. Чувствитель- ность микроорганизма: пенициллин — 0,9. Коэффициент уверенности КУ, полученный из нового, факта, выведенного из правила с коэффициентом надежности КН, за- дается формулой КУ = КН X min КУру, где КУну обозначает коэффициент уверенности для /-й посылки. Модель допускает сосуществование многих возможных зна- чений одного и того же параметра. Если в процессе рассуждений два различных правила при- водят к одному и тому же заключению, но с разными значе- ниями КУ, равными КУ1 и КУ2, то они взаимно усиливают друг Друга: КУ = КУ1 + КУ2-КУ,ХКУ2. Всякий факт, для которого абсолютное значение КУ меньше 0,2, рассматривается всей системой как малонадежный и исклю- чается из базы фактов.
370 ГЛАВА 7 Некоторые авторы критически относятся к такому подсчету и предлагают другие решения (Friedman, 1981; Dayle 1979; Swartout 1981). Механизм формирования заключений Само рассуждение ведется в обратном порядке, отправляясь от микроорганизмов — возможных причин инфекции — к симп- томам. При этом конструируется дерево И/ИЛИ. Сначала задается цель. Затем система рассматривает все правила, заключения которых приводят к этой цели. Левая часть (звено И) каждого правила, если это возможно, оцени- вается и строится коэффициент уверенности КУ результата (абсолютное значение) как минимум из значений коэффициен- тов уверенности в посылках. Если этот КУ 0,2, формируется правая часть с коэффициентом уверенности, равным произве- дению полученного КУ на коэффициент надежности правила. Если КУ < 0,2, правило ничего не дает (исходная гипотеза от- вергается). В случае когда некоторые посылки не могут быть оценены, они соединяются вместе и рассматриваются как промежуточные подцели (звенья ИЛИ) и система повторяет процесс (см. схему из разд. 7.3.1). Если система не приходит ни к какому выводу, она запра- шивает новую информацию, относящуюся к пациенту, т. е. си- стема не задает лишних вопросов врачу (который этого не лю- бит) до тех пор, пока он не испробует все возможные варианты (что позволяет ему, кроме того, сформулировать осмысленный ,вопрос). Этот исчерпывающий перебор, основанный на правилах про- дукций, сближает систему MYCIN с системами доказательства теорем, также оперирующими в относительно узком простран- стве поиска. Некоторые другие средства дополняют описанную стандарт- ную процедуру. В системе MYCIN делается обобщение цели. Так вопрос: «Является ли данный микроорганизм кишечной па- лочкой?» обычно преобразуется системой в вопрос: «Какова природа микроорганизма?» Если получение ответа на подоб- ный вопрос стоит системе не слишком дорого, она за счет этого может обойтись без дополнительных вопросов, обращенных к пользователю. Система MYCIN использует для каждой цели абсолютно все релевантные правила с учетом коэффициентов надежности, так как в этой предметной области желательно взвешивать ва- рианты и составлять суждения о каждом возможном случае. Лишь в том случае, когда вывод полностью определен (КУ — 1),
ЭКСПЕРТНЫЕ СИСТЕМЫ 371 возможно более раннее прерывание процесса использования правил. Для повышения эффективности работы системы MYCIN не- обходимо, чтобы она всегда имела право расспрашивать врача об обстоятельствах, которым тот не придает значения, но кото- рые ему известны как данные текущего лабораторного анализа. Кроме того, система в течение всей работы сохраняет в памяти след всех своих знаний, в частности запоминается вся история болезни, что полезно по трем причинам: 1. Происходит исключение бесполезных вычислений, а также ложное смешение информации в процессе ее поиска. 2. Это обеспечивает способность MYCIN объяснить эксперту, как и почему она приходит к своим окончательным заключе- ниям (см. разд. 7.4). 3. На этом основывается знание того, какой вопрос нужно задать эксперту на следующей фазе, если в полученной прежде информации обнаруживается ошибка. Метаправила Система может работать со своим собственным представле- нием знаний и наделена способностью к рассуждениям по от- ношению к так называемым профилям и метаправилам. Профили приписаны каждому из 24 используемых предика- тов и дают системе возможность знать, какие определения управляют применимостью рассматриваемых предикатов. Они дают выигрыш в объеме вычислений, постоянно показывая, со- держится ли данное определение многократно в посылках раз- личных правил. Таким образом, профили позволяют произво- дить первую быструю и грубую оценку посылок. Эта оценка показывает, если следовать простой логике, будет ли данное правило применимым и нужно ли внести его в список ожи- дания или оно совсем неприменимо к рассматриваемой ситуа- ции. Метаправила — это символические данные, по структуре ана- логичные тем правилам, которые используются в системе MYCIN для поиска решения. Метаправила выделяют те страте- гии, которые позволяют избежать полного перебора вариантов, указывая путь наилучшего приближения к данной подцели, а также выбор самих правил и метаправил. Например, первое метаправило касается главной цели MYCIN — «рекомендовать терапевтическое лечение пациента». Оно выглядит следующим образом: Если разыскивается способ лечения, нужно рассмотреть в следующем порядке правила, позволяющие: 1) получить клинические сведения о пациенте;
372 ГЛАВА 7 2) найти микроорганизмы, если они существуют, которые могут быть причиной данной инфекции; 3) выделить из них наиболее правдоподобные микроорга- • низмы; 4) найти все потенциально полезные лекарства; 5) выбрать из них наиболее подходящие, оставив возможно меньшее число вариантов. Другим примером метаправила является метаправило 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) Таким образом, метаправила, имеющие тот же формат, что и основные правила, просматриваются для каждой подцели. Они могут приводить в порядок множество правил или уменьшать общее число правил, используемых в ходе анализа, редуцируя дерево поиска, образуемое разными правилами. Каждое ребро дерева требует доступа ко всей имеющейся информации, мета- правила тесно связаны с данным ребром, и поиск приспосабли- вается к текущему контексту. Именно эти структуры управления и соответствующие эври- стические данные выявляются в метаправилах, а не извлекаются из тела программы.
ЭКСПЕРТНЫЕ СИСТЕМЫ 373 Наконец, поскольку интерпретатор системы MYCIN вызы- вает правила по их содержимому, а не по имени, система есте- ственным образом приспосабливается к любым дополнениям и изъятиям правил или другим модификациям базы знаний. 7.2.4. Объяснения, предоставляемые системой, и диалог на естественном языке При разработке концепции системы MYCIN важное требо- вание состояло в том, чтобы программа могла объяснить свои действия для того, чтобы сделать их понятными врачу, а также сделать их более убедительными. Легкость встроенного диалога позволяет пользователю задавать вопросы системе в любой мо- мент. Способность к пониманию вопросов и объяснения осуществ- ляются элементарным интерпретатором вопросов на основе клю- чевых слов и жестких форматов ввода-вывода. Функционирова- ние этого интерпретатора в значительной степени облегчается благодаря стандартной форме представления знаний (правила продукций) и требует достаточно простой схемы перебора. Мы не будем здесь вдаваться в подробности относительно обра- ботки естественного языка программы TEIRESIAS, описывае- мой ниже; это не входит в наши намерения и не составляет основного содержания книги. 7.2.5. Приобретение новых знаний. Система TEIRESIAS TEIRESIAS — интерактивная программа, предназначенная для оказания помощи эксперту в разработке системы, функцио- нирующей в области, характеризующейся большой массой зна- ний. Это промежуточная программа (интерфейс), ведущая диа- лог с экспертом на естественном языке с целью освободить его от анализа отдельных частностей. Система TEIRESIAS может не только непосредственно использовать свои знания, но также заниматься их изучением, обобщением и обсуждением (Тире- зий —имя слепого предсказателя в трагедии Софокла «Царь Эдип»). Предусмотрена также возможность ведения диалога между двумя специалистами. Первый вариант системы TEIRESIAS был некоторым обоб- щением системы MYCIN, предназначенной для диагностики и лечения инфекционных заболеваний крови (R. Davis, Stanford, 1976). Ее целью является создание возможности простого пере- хода к другой предметной области и помощь эксперту при кон- струировании базы знаний. С тех пор такой подход получил широкое распространение (разд. 7.4).
374 ГЛАВА 7 Единственное важное предположение состоит в том, что представление (в форме правил продукций) и введенные поня- тия— правильные и что допустимо лишь просто расширение или модификация базы данных. Все происходит так, как будто профессор-эксперт читает свой курс. Затем он дает учащемуся новые задачи, внимательно следит за их решением и исправляет ошибки. Пример работы программы TEIRESIAS с комментарием Проиллюстрируем работу системы TEIRESIAS, основываясь на диалоге, представленном на рис. 7.2, который был описан Дэвисом. Для большей наглядности медицинские термины были вручную заменены биржевыми (например, кишечная палочка перешла в Американскую телефонную и телеграфную компа- нию, инфекция — в инвестицию, принять лекарство — купить акции и т. д.). Система TEIRESIAS принимает во внимание мнение экс- перта после каждого сеанса консультации с ним. TEIRESIAS: Являются ли следующие объекты для инвестиции в самом деле наиболее подходящими, а именно корпорация Вариан и Американская телефонная компания (АТТ)? Так ли это? (1) Эксперт: Нет. TEIRESIAS: Каких-то компаний не хватает? Эксперт. Да. Диджитал Эквипмент и Дейта Дженерал. TEIRESIAS: Вошла ли в приведенный перечень какая-либо фирма, ко- торая не должна туда входить? Эксперт. Да. АТТ. TEIRESIAS: Желаете ли Вы, чтобы я произвела поиск ошибок? Эксперт: Да. TEIRESIAS: Итак, начнем с АТТ. (2) Я использовала правило 27, так как: I) область инвестиций не уточнена; 2) ожидаемая выгода выше на 10%; 3) инвестиция рассчитана на продолжительный срок. Таким образом, АТТ — правдоподобный выбор с коэффициентом надеж- ности 0,4. Верно ли само это правило? Эксперт: Да. TEIRESIAS: Нужно уточнить одну из его посылок? Эксперт: Да, посылку 1. (3) TEIRESIAS: Я не пришла к определенному заключению относительно области инвестиций. Нужно ли мне ввести какие-то уточнения? Эксперт: Да. Усовершенствованную технологию. TEIRESIAS: Все попытки поиска правил, которые могли бы сделать вы- вод об области, где применяется усовершенствованная технология, окончи- лись неудачей, так как все явные посылки оказались ложными (таково впе- чатление от двух рассмотренных мною правил). . Верны ли эти два правила? Эксперт: Да. TEIRESIAS. Следует ли применить одно из них? Эксперт: Нет. (4)
ЭКСПЕРТНЫЕ СИСТЕМЫ 375 TEIRESIAS: Не хватает ли какого-либо правила? Эксперт: Да. TEIRESIAS: Хорошо, тогда мне нужно иметь правило, из которого я могла бы сделать вывод о том, что в нужной области применяется усовер- шенствованная технология. Могли бы вы указать мне такое правило? Эксперт: Если предел обложения клиента налогом составляет 50 % и если клиент внимательно следует тенденциям развития рынка, то очевидно с коэффициентом 0,8, что инвестиция осуществляется при условии использова-. ния высокого уровня технологии. (5) TEIRESIAS: Назовем новое правило R383. Вот, как я его понимаю: Если _ 11 предел налога, который платит клиент, составляет ‘50 (%; 2) недавно на рынке произошел скачок цен; 3) клиент внимательно относится к использованию своих ценных бумаг, то инвестироваться должна отрасль с высоким уровнем технологии (0,8). Согласны ли Вы с этим? (0) Эксперт: Нет. TEIRESIAS: Нужно ли изменить посылки? Эксперт: Да, измените посылку 2. TEIRESIAS: Предположите, что посылка 2 изменена на 2' «клиент вни- мательно следит за рынком». Согласны ли Вы? Эксперт: Да. (7) TEIRESIAS: Вы хотите теперь еще отменить посылку 3. Согласны? Эксперт: Да. (8) TEIRESIAS: (Идет повторение R383.) Затем: я не люблю критиковать Рэнди, но знаете ли Вы, что, вообще говоря, правила’, касающиеся областей инвестиций, в которые входит предел налогообложения и способ слежения клиента за положением на рынке, означают, что клиент имеет опыт в во- просе инвестиций? Должна ли я попытаться сформулировать третью по- сылку? Эксперт: Да. (9) TEIRESIAS: Как бы Вы отнеслись тк такой формулировке: в вопросе инвестиций клиент имеет известный опыт? Эксперт: Согласен. (10) TEIRESIAS: Большинство подобных правил дает также заключение о желательном классе риска для инвестиций. Скажите, должна ли я попы- таться привести здесь подобное заключение? Эксперт: Нет. TEIRESIAS: (Идет повторение скорректированного правила R383). За- тем: Пожалуйста, обоснуйте кратко, почему Вы использовали это правило. Эксперт: Система не поняла, что требуется уточнение области инвестиций, а это привело к тому, что правило 27 было применено неправильно. TEIRESIAS: R383 было присоединено к базе знаний. Консультация бу- дет использована для эффективной проверки обоснованности правила. Рас- полагайтесь поудобнее. Это может потребовать много времени. Результаты. Для инвестиций предлагаются: корпорации Вариан, Дейта Дженерал, Диджитал Эквипмент. Кажется, что теперь все исправлено, не так ли? Эксперт: Да. Рис. 7.2. Диалог с программой TEIRESIAS. Цифры в скобках обозначают ссылки на помещенные ниже комментарии. 1. Именно здесь после результатов, выдаваемых системой MYCIN, включает- ся в работу TEIRESIAS. Первая фаза состоит в выявлении ошибки. 2. Экспериментально выделенные эвристические данные были заданы про- грамме в форме метаправил. Одно из них говорит о соглашении: а) рассма-
376 ГЛАВА 7 тривать Проблему в целом; б) первое предпочтение отдавать выводу, кото- рого не должны были получить. 3. Эксперт указывает, что данное правило не должно было быть применено. В противном случае TEIRESIAS указала бы ему, что не хватает некоторого другого правила, противоречащего принятию АТТ. 4. Положительный ответ возможен в случае, если бы была ошибка при оценке посылки за счет объявления ее ложной другим правилом. 5. Выявление ошибки путем точных и подходящих вопросов происходит до- вольно быстро. На этом втором этапе система интерпретирует новое пра- вило. 6. Ошибка в формулировке системы TEIRESIAS произошла из-за элемен- тарного лингвистического пословного анализа (даже не синтаксического) английской фразы пункта (s), где предикат «есть» (is) ассоциируется с объектом «рынок» (market). При этом система думает о посылке того типа (тенденция рынка есть...), который представляет собой модельную фразу, известную системе (разд. 7.3.2), усиленную здесь следующим далее англий- ским предлогом «ир». 7. После этого ошибка легко исправляется. Второй выбор оказался правиль- ным. Предложение 3 отменяется, так как уже нельзя, как прежде, предпо- лагать, что фраза распадается на две независимые посылки, потому что система хорошо знает, что слово «внимательно» не может быть использовано дважды. Это объясняется тем, что тексты и число возможных вариантов анализа невелики, так что необходимые корректирующие тесты легко про- делать. 8. Вот первый текст на понимание в его завершенном виде: • Чтение оригинального текста на английском языке. • Преобразование в форму внутреннего представления. • Повторный перевод на английский и предъявление пробного текста. В конце этой фазы удовлетворяются требования эксперта, на последнем этапе система сама определяет, удовлетворена она или нет. 9. В следующем разделе объясняется механизм создания системой нового правила. 10. Во всяком случае правило должно быть применимо к текущей ситуа- ции— «умеренный эксперимент» (см. программу Уотермана для игры в по- кер, разд. 7.3.2). Работа системы Система просит эксперта сделать свой собственный вывод в следующих случаях: 1) Основой для вывода является программа необычного типа, а не до конца понятый метод исследования, опирающийся на систему простых правил описательного характера. 2) Система благодаря способности запоминать последствия своих действий предвидит такие из них, которые мешают полу- чению правильного заключения. Получив подсказку, система может скорректировать как возможные предположения, так и ожидаемые эффекты от них. 3) Система считает необходимым задать конкретный вопрос: «В этой определенной ситуации что знаете вы и чего не знаю я?»
ЭКСПЕРТНЫЕ СИСТЕМЫ 377 Модели правил, систематизирующие знания, позволяют про- грамме TEIRESIAS не только использовать эти знания, но и предугадывать то, что ей может встретиться. Модели правил. Модели правил высокого уровня представ- ляют собой краткие обобщенные описания подмножеств правил более низкого уровня, объединенных какими-либо общими свой- ствами. Модель правила состоит из четырех частей: • список примеров, представляющий собой просто то под- множество правил, на основе которых создается модель; • описание характерного элемента подмножества, где по- сылки и выводы характеризуются часто появляющимися призна- ками с учетом взаимной корреляции этих признаков. Для полу- чения этих сведений используются методы статистического ана- лиза; • два списка правил: один — специфичных правил, другой — общих правил. Они придают множеству моделей вид дерева, корнем которого является наиболее общая концепция. Построением моделей правил занимается сама программа TEIRESIAS при достаточном увеличении ее базы знаний, начи- ная с того момента, когда в ее распоряжении оказывается несколько правил, относящихся к одной и той же об- ласти. Пример модели правил. Модель: «х является-областью-ин- вестиций». Примеры: R116, R80, R95, ... Описание: — посылки: доход составляет/продолжительность состав- ляет/тенденция состоит в/ — корреляции: (доход, продолжительность)/(опыт, внима- ние). Заключение: область/риск. Более общая модель: «область-инвестиций». Менее общая модель: «предприятия-обслуживания-населения-яв- ляются-областью-инвестиций». Когда программа TEIRESIAS ожидает получения нового правила (фаза 3 в приведенном на рис. 7.2 примере), она про- бегает дерево моделей, начиная от корня, в поисках того, что она уже знает по поводу этого правила. В данном примере наи- более специфичная из известных моделей позволяет сделать вы- вод, что возможной областью инвестиций является развитая тех- нология. Частота появления предикатов в модели облегчает доступ к модели на естественном языке, а корреляции между появле- нием этих предикатов позволяют проверить, что эксперт не за- был ничего важного.
378 ГЛАВА 7 Использование моделей дает возможность компенсировать слабость проводимого в системе лингвистического анализа. Бла- годаря им проявляется важное свойство системы — тенденция понимать только то, что она хочет понять. Кроме того, дерево моделей правил позволяет программе делать выводы в малознакомых областях, для которых опреде- лено малое число правил. Можно сказать, что она знает то, чему следует обуч‘аться в первую очередь и может задавать во- просы на эту тему (но она не может определить, сколько еще осталось узнать и не имеет никаких средств для того, чтобы сразу оценить правдоподобность нового для себя факта). С по- мощью дерева моделей программа сама систематизирует и структурирует знания, получаемые беспорядочным образом от эксперта, что в конце концов служит для его же пользы. 7.2.6. Результаты испытаний системы и анализ недостатков Система MYCIN-TEIRESIAS написана на языке Лисп для ЭВМ PDP-10. Пятеро специалистов, не входящих в один науч- ный коллектив, провели 15 сеансов испытаний системы, во время которых проверялись правильность лечебных рекоменда- ций, уместность заданных вопросов, наличие незаданных, но важных вопросов. В 72 % случаев эксперты выразили согласие с системой, в большинстве остальных случаев они сами не смогли прийти к единому мнению. Многие экспертные системы, обзор которых приведен ниже .в разд. 7.3, имеют общие черты с программами типа TEIRESIAS. В качестве примера можно привести систему PUFF, предназна- ченную для оказания помощи при диагностике легочных забо- леваний. Для подготовки ее к работе необходимо, чтобы экс- перты потратили примерно 50 ч на ввод специальных знаний, а затем около 10 человеко-недель требуется для окончательной настройки системы. Не вызывает сомнения, что системы, работа которых осно- вана на правилах и метаправилах, в полной мере обеспечивают решение проблемы сбора и использования больших объемов знаний, по крайней мере в определенных предметных областях. В разд. 7.7 дан общий обзор характеристик и предположи- тельных свойств таких систем, их преимуществ и недостатков. В частности, более детально рассмотрены следующие недостатки системы MYCIN-TEIRESIAS: • Слабость средств обработки естественного языка. Более сильные средства ввел А. Бонне в программу BAOBAB, где мак- симально использовались априорные знания о предмете, запи- санные с помощью фреймов (Bobrow 1975). В результате уда- лось добиться лучшего понимания системой вводимых правил
ЭКСПЕРТНЫЕ СИСТЕМЫ 379 и содержимого медицинских карт больных (разд. 7.6), но все проблемы при этом снять не удалось. Недостатки программы MYCIN, связанные с необходимостью модификации правил или требований ввода пакета из нескольких связанных друг с дру- гом правил, в той же степени будут проявляться и в программе TEIRESIAS. • Программа TEIRESIAS заранее предполагает, что спра- ведливость вновь вводимого правила может быть в дальнейшем подвергнута сомнению, но при этом банк знаний содержит точ- ные сведения. В противном случае могут возникнуть дополни- тельные проблемы. Даже с учетом отмеченных недостатков система в целом хо- рошо управляема и оказывается весьма полезной. Она эффек- тивно управляет специализированными знаниями, при вводе ко- торых эксперты не придерживаются никакого порядка. Система использует модель этих знаний, которую она сама же создает, для ведения диалога с экспертами, постоянно совершенствуя свои знания, т. е. набираясь опыта. В целом MYCIN-TEIRESIAS относится к числу лучших ин- теллектуальных систем,.являясь очень простой по замыслу и в реализации. Специалисты легко прогнозируют ее поведение, а принимаемые ею решения могут быть легко проверены. 7.3. Продукционные системы Цель этого раздела состоит, с одной стороны, в более точ- ном определении того, что представляет собой экспертная си- стема и как можно ее программировать, а с другой — показать состояние области экспертных систем на сегодняшний день. Продукционное правило представляет собой выражение вида MG^MD, в котором левая часть MG описывает определенную ситуацию, представленную в соответствии с формальными правилами ра- бочего пространства, а правая часть MD представляет собой действие, выполнение которого предполагается в случае обна- ружения соответствующей ситуации. Такое правило очень по- хоже на теорему, а цепочка правил, связанных через заключе- ния MD, MG и посылки, напоминает силлогизм. В рассматри- ваемых ниже системах в качестве базы знаний используются множества таких правил, а способ получения вывода представ- ляет собой модус поненс (из р и р q следует .7). Благодаря этому результаты работы системы легко получают объяснение. Другие достоинства продукционных систем приведены в разд. 7.4. Метод обработки информации с помощью продукционных правил не является формальным аналогом приемов, применяе-
380 ГЛАВА 7 мых в системах с использованием традиционных процедур (разд. 7.5). Впервые метод продукций был предложен Е. По- стом (Post, 1936) и использован для определения языков и фор- мальных грамматик (Chomsky 1963). С 1974 г. он находит широкое применение в многочисленных программах, которые получили уже знакомое нам название экспертных систем. Они (b) : Н.К (R1) А * Е (R2) a *0 Н-*-А <R3) (R3) Н ♦ А А-*Е <R1) (R4) Е Л G * С £ А К-*0 <R5> (R5) ЕЛК*В (R2) (R6) О Л Е Л К ♦ С ОЛЕА К-*-С (R6> (R7) Q Л К Л F ♦ А (С) Рис. 7.3. Примеры вывода при движении по цепочке вперед. применяются в специальных областях, где решение задач осно- вано на логических выводах, но имеет исключительно познава- тельный- аспект. В основе экспертных систем лежат продук- ционные правила, поддерживающие весь объем доступных зна- ний. Эти знания представлены в модульном виде и могут быть легко модифицированы с учетом того, что их содержание не меняется при выполнении программ. На рис. 7.3 приведен при- мер вывода в такой системе. Посылки А, В, ... могут быть простыми логическими пред- ложениями типа «истина или ложь», как в системе MYCIN, или предикатами с переменными или еще какими-либо соотноше- ниями. Богатство языка и легкость выражения с его помощью знаний, естественно, увеличиваются с развитием используемого формального аппарата (разд. 7.4 и др.). Любопытно, что те же продукционные системы в настоящее время используются психологами для моделирования некото- рых интеллектуальных процессов и успешно конкурируют с дру- гими методами^ Например, Ньюэлл (Newell, 1972) полагает, что формальный аппарат подобных систем можег служить хорошей моделью для описания передачи информации между кратковре- менной и долговременной памятью человека и управления на- шими знаниями. Следовательно, использование таких систем в области искусственного интеллекта не является случай- ностью. 7.3.1. Структура продукционной системы Система в целом состоит из базы знаний, которая содержит множество продукционных правил, рабочего пространства (или базы фактов) и программного интерпретатора.
ЭКСПЕРТНЫЕ СИСТЕМЫ 381 Рабочее пространство в начале работы содержит формули- ровку поставленной задачи, а затем в нем появляется множе- ство фактов, которые программа смогла установить к теку- щему моменту времени. Это пространство играет роль кратко- временной памяти, а факты, которые оно содержит, являются Рис. 7.4. Элементарный цикл интерпретатора. утверждениями, касающимися статического описания задачи и различных способов обращения к долговременной памяти. По- следняя содержит базу динамических знаний, которая состоит из операторов преобразования, выраженных в форме правил. Эти правила могут содержать переменные, значения которых уточняются и приводятся в соответствие с известными фактами
382 ГЛАВА 7 с помощью процедур «квазиунификации» или «фильтрации» в процессе каждого сеанса работы интерпретатора. Унификация является фундаментальным механизмом, кото- рый лежит в осцове работы продукционных систем. В целом она позволяет ответить на вопрос, существуют ли такие комбинации подстановок переменных, которые позволяют получить две ло- гически идентичные формулы, и является составным элемен- том безупречно определенного алгоритма резолюции (гл. 3). Заключение, полученное из* правил с многими посыл- ками: (ft, f2, f3) узел И нескольких различных продукционных правил: (yf, у 2) узел ИЛИ ;Рис. 7.5. Дерево вывода при движении по цепочке назад (те же данные, что и на рис. 7.3). Интерпретатор является основной частью системы и пол- ностью управляет порядком выводов, выполнение которых всегда можно представить в виде последовательности похожих друг на друга элементарных циклов (рис. 7.4). Отметим одну важную проблему, состоящую в выборе порядка выполнения правил. В дальнейшем нами будут рассмотрены некоторые под- ходы к ее решению. Различие между продукционными системами заключается в том, что в одних системах новая информация, полученная с помощью выводов, просто прибавляется к базе фактов, а в других — прибавляется с разрушением и замещением уже при- сутствовавших там фактов (Newell, 1971). Движение к цели при работе системы происходит естествен- ным образом (как при доказательстве теоремы) и может быть легко представлено с помощью И/ИЛИ (рис. 7.5). В действительности дерево может быть пройдено в одном из двух направлений: или от фактов к заключению, или от заклю- чения, которое в этом случае рассматривается как предполо- жение, к фактам. В первом случае говорят о движении по це- почке вперед (рис. 7.3), во втором —о движении по цепочке назад (рис. 7.5). Чаще всего выбирается второе решение, так как оно лучше учитывает структуру фактов, которые, с одной стороны, не являются независимыми, а с другой — многие из
ЭКСПЕРТНЫЕ СИСТЕМЫ 383 Рис. 7.6. Общая схема современной продукционной системы. них не относятся к рассматриваемой проблеме, т. е. такой под- ход позволяет прежде всего избежать комбинаторного взрыва числа возможных цепочек, так как лишь в немногих случаях заключения можно заранее предвидеть и как-то ограничить пе- ребор вариантов. В частности, он принят в программах MYCIN и DENDRAL (разд. 7.3.4). ' Большую часть вычислительной работы в этом случае вы- полняет интерпретатор Лисп с помощью рекурсивных процедур. Общая схема системы приведена на рис. 7.6. Заметим, что хо- роший интерпретатор должен давать возможность проходить по цепочке правил вперед или назад в зависимости от практиче- ских потребностей. 7.3.2. Используемые предположения при разработке продукционных систем и области их применимости Доступ к содержащимся в системе знаниям и их использо- вание основываются на некоторых предположениях.
384 ГЛАВА 7 Прежде всего необходимо, чтобы специалист в данной об- ласти мог описать ситуацию. Рассматриваемая область знаний должна быть хорошо разработана и основываться на твердых концепциях, в противном случае надо было бы опуститься до такого уровня детализации, что объем создаваемой базы знаний превысил бы всякие разумные пределы (Nilsson, 1980). Структура изучаемого пространства Прежде всего необходимо объявить действующие в данном пространстве правила. Входящие в них параметры, с помощью которых описывается изучаемая ситуация, должны быть слабо связаны между собой, в противном случае левые части правил становятся очень длинными и запутанными. Другими словами, изучаемое пространство должно быть слабо связанным, тогда каждое действие в нем над элементарными знаниями будет за- трагивать лишь небольшое число параметров. Одно-единственное правило может охватывать большую часть знаний человека. Например, правило «Правдоподобно, что микро- организм типа палочки в грамотрицательной крови является Е. Coli» основано одновременно на знаниях из области физио- логии и на клиническом опыте. Схемы заключений В рассматриваемом пространстве должна быть справедлива простая схема заключения типа модус поненс (из р и р => q сле- дует q) или ее вариант модус толленс (из ~\q и р q следует .»• Цель исследования должна быть хорошо определена и уточ- нена (поэтому возможно движение назад по цепочке правил). Более предпочтительными являются дискретные переменные по сравнению с непрерывными. Это позволяет избежать резкого увеличения объема базы фактов. Решаемые задачи не должны состоять в последовательном достижении нескольких сильно связанных друг с другом подцелей, в противном случае нужно использовать классический процедурный подход. Априорные следствия из предположений, обеспечивающих применимость продукционной системы Эту модель не следует применять для проблем, сложных по своей постановке или по характеру решения (например, слож- ные комбинаторные проблемы). Кроме того, модель по природе ориентирована больше на модификацию области, чем на ис- пользование свойств инвариантности. Тавтологии, определения или формальные отношения зависимостей в действительности не связаны с каким-либо единым основным механизмом. Они
ЭКСПЕРТНЫЕ СИСТЕМЫ 385 могут быть учтены другими схемами заключений, к которым относятся «демоны» (Hewitt, 1981), «классы подобия» (Bundy, 1979) (разд. 7.4), “приоритетные прерывания” (Gascuel, 1981). 7.3.3. Варианты, используемые в концепции продукционной системы Следует отметить два важных момента, касающихся пред- ставления знаний и структуры управления, когда речь идет об обработке информации в таких системах. Содержимое базы экспертизы Для того чтобы адаптировать базу знаний к той или иной области, ее содержимое должно изменяться в зависимости от предмета. При этом для правил чаще всего применяется фик- сированный формат, а для ограничения числа разрешенных уни- фикаций используемые параметры стандартизуются. В системе DENDRAL левая часть правила является названием структуры (граф молекулы), а правая описывает возможные преобразо- вания графа в спектрограф. Пример такого правила выглядит следующим образом: “Эстроген-* развал молекулы ((14—15), (13—17)) и пере- дача водорода (1,12)”. Такая условная запись позволяет выразить правило сжато и эффективно. Наконец, многие современные системы допускают в прави- лах вызов процедур с последующей традиционной (числовой) i обработкой данных, хотя часто посылки и выводы правил сами > являются базовыми фактами, над которыми выполняется только проверка или модификация. Структура управления Проблема управления состоит в разрешении конфликтов ме- жду правилами, готовыми к выполнению. Выбор правила имеет (Важное значение не только для производительности системы, но (•главным образом для того чтобы она могла совершенствоваться ни “понимать” то, что она делает. В настоящее время в литературе упоминаются три больших (-'Семейства структур управления, основанных на следующих пцринципах: , • Исчерпывающий перебор. • • Выбор правила с помощью оценки. • Управление с помощью метаправил. Исчерпывающий перебор. Данный тип управления исполь- зуется в системе MYCIN. Эта стратегия удобна в тех случаях, 113 Ж.-Л. Лорьер
386 ГЛАВА 7 когда ответ на точно поставленный вопрос отыскивается путем взвешенного анализа всех возможных выводов и комбинаторика в исследуемом пространстве невелика. Выбор правила с помощью оценки. Самый общий тип оценки состоит в выборе первого встретившегося правила, удовлетво- ряющего соответствующим условиям (см. работы в области психологии Уотермана или Моргана). С помощью этого способа производится эффективное упорядочивание правил, однако он сводит на нет наиболее фундаментальное свойство продукцион- ной системы — простота модификации базы знаний. В других вариантах оценки сначала отыскивают все пра- вила-кандидаты, а затем выбирают из них правило с макси- мальным значением оценки, полученной с помощью того или иного следующего критерия: 1) динамическая оценка приоритета правил в зависимости от их вклада в достижение цели; 2) приоритет правил устанавливается в зависимости от важ- ности используемых фактов; 3) критерий специализации: выбирается наиболее специфичное правило (критерий, используемый в интерпретаторе Лисп); 4) выбор, определяемый графом, устанавливающим связь ча- стичного порядка с правилом (DENDRAL) или осуществляемый с помощью программы (Gascuel, 1981); 5) выбор последнего использованного правила; 6) выбор правила, в котором упоминается последний использо- ванный факт. Управление с помощью метаправил. В первом приближении этой структуре можно отдать предпочтение перед всеми осталь- ными, поскольку логика вывода при этом становится подобной самим правилам. Действие программы в каждый момент вре- мени сильно зависит от состояния системы, а метаправила позволяют определить, что нужно предпринять в первую очередь в каждой конкретной ситуации. При этом используются те же идеи, что и при доказательстве теорем (Hewitt, 1972). Заметим, что во всех случаях структура управления тре- бует от системы, чтобы все сообщения проходили через базу фактов. Сам принцип продукционных правил запрещает им об- ращаться друг к другу (в точности наоборот по сравнению с тем, что происходит для процедур в классическом программи- ровании) (см. разд. 7.5 для более подробного сравнения). Важ- ное свойство метаправил заключается в том, что с их помощью элементарные правила могут быть добавлены в систему, а так- же модифицированы или исключены, т. е. система становится способной к самоорганизации.
ЭКСПЕРТНЫЕ СИСТЕМЫ 387 Эффективность продукционной системы Время вычислений и получения выводов растет вместе с про- изведением числа правил на число записей в базе фактов. Наи- более важным фактором является число безуспешных попыток, предпринятых для выполнения правил. Можно построить раз- личные фильтры, которые перед унификацией исключают бес- полезные правила и факты. Дермотт (Dermott, 1978) предла- гает четыре таких фильтра и приводит соответствующие формулы оценки времени их работы. Решение, принимаемое многими авторами, состоит в выполнении данного правила и после- дующем переносе выведенных фактов с реактивацией только таких правил, в которых эти факты упоминаются как посылки. Кроме того, в некоторых интерпретаторах предусматривается оценка выражений, общих для нескольких правил, только один раз за цикл и даже сохранение результатов вычислений при переходе от одного цикла к друТому, когда соответствующие факты не изменяются (Gascuel, 1981), (Ghallab, 1981), (Forgy, 1981). Простые и доступные эвристические факты используются здесь с полной отдачей: при минимальных затратах времени они упрощают поиск соответствия между правилами и фактами. Другим средством уменьшения числа попыток является ав- томатическая организация элементарных фактов в более слож- ные структуры для получения представления более высокого уровня. При этом с увеличением разнообразия рассматривае- мых объектов уменьшается вероятность успеха унификации и одновременно уменьшается число бесполезных попыток. В ра- боте (Minsky, 1975) была предложена структура прототипов типичных ситуаций (фреймов), использовавшаяся во многих си- стемах (разд. 7.5). Таким образом, если правила не содержат переменные, за- дача решается относительно просто. И наоборот, если исполь- зование переменных разрешено и, кроме того, число правил и число фактов представляются большими величинами (сотни и тысячи соответственно), то решение проблемы представляется затруднительным, комбинаторный взрыв может быть устранен только с помощью метазнания (разд. 7.7). Теперь перейдем к обзору существующих экспертных систем. 7.3.4. Экспертные системы, использующие продукционные правила Система DENDRAL Назначение. Получение подробной формулы органического вещества исходя из его грубой формулы и масс-спектрограммы. J3*
388 ГЛАВА 7 Разработчики. Станфордский университет. Букханан, Фей- генбаум, Ледерберг (лауреат Нобелевской премии по медицине 1958 г.). Сазерленд и Массачусетская спектральная лаборато- рия. DENDRAL представляет собой результат исследований, на- чатый в 1964 г. Ледербергом, который создал систему для ока- зания помощи химику при проведении химического анализа органических веществ (структура и кодировка молекул с уче- том топологических ограничений). В то время вера в возмож- ности систем искусственного интеллекта была удивительной: существовали модные течения по созданию общих программ, способных делать все, включая доказательство теорем и реали- зацию универсального принципа решения задач (Feigenbaum, 1971). Система DENDRAL начиналась с программы обычного типа. (Davis, 1977). Она была полностью переделана в 1967 г., так как к тому времени она уже стала малоуправляемой. Характеристики. Используемый метод принадлежит к по- иску, основанному на перечислении. Одна комбинаторная про- грамма обслуживает все возможные структуры с учетом огра- ничений, накладываемых на данные. Она очень эффективна и работает гораздо быстрее, чем химик. Когда желаемая формула получена, можно предсказать спектр вещества с помощью пра- вила вида “Такая-то атомная конфигурация-*такой-то распад” и сравнить его с реальными наблюдениями. Обычный способ действий состоит в том, что задания поме- щаются в так называемую записную книжку (агенда). Это де- лается по той причине, что при выполнении заданий могут быть выполнены несколько правил и все, кроме одного, должны ждать своей очереди, или потому, что одно правило может тре- бовать выполнения нескольких заданий. Записная книжка пред- ставляет собой структуру данных, с элементами которой свя- заны приоритеты, определяющие порядок доступа к этим данным. Фундаментальным представлением, которое используется в системе DENDRAL как для обозначений в самих правилах, так и для связи с экспертом, является граф структурной хими- ческой формулы. Система DENDRAL повседневно используется химиками Стэнфордского университета. С ее помощью подго- товлено 25 статей, опубликованных в специальных химических журналах. Система META-DENDRAL Назначение. Автоматические выводы об используемых в DENDRAL правилах фрагментации молекул. Данные представ-
ЭКСПЕРТНЫЕ СИСТЕМЫ 389 ляют собой типы фрагментации в пробах, взятых в сравнительно простых веществах. Исходное положение. Узким местом в системе DENDRAL является получение правил на основе данных, которые предо- ставляются химиками в весьма неупорядоченном виде (Bucha- nan, 1978). Ставилась задача быстрого выделения множества правил, наилучшим образом описывающих имеющиеся дан- ные. Характеристики. Здесь также используется комбинаторный метод. Перебираются всевозможные графы для данного веще- ства, при этом каждая конфигурация делается левой частью но- вого правила. Правая часть образуется из таких высоковероят- ных пиков в спектрограмме, которые могут быть признаны интересными после статистического изучения образцов. Все по- лученные правила затем проверяются и приводятся в порядок согласно следующим четырем процедурам: а) устраняется избыточность; б) объединяются правила с одинаковой левой частью; в) если имеется правило, содержащее одну негативную по- сылку, делается попытка его уточнения с целью устранения этой посылки; д) строится обобщение правил, содержащих одни и те же положительные посылки и одни и те же результаты. META-DENDRAL строит такие множества правил, которые успешно конкурируют с правилами, создаваемыми квалифици- рованными экспертами. META-DENDRAL создала новое мно- жество правил в малоизученной области. После тщательного обсуждения химиками было сделано сообщение в международ- ном обзоре по химии (1976 г.). Система была перенесена также на случай изучения спектров магнитного ядерного резонанса. При этом она стала создавать, отправляясь от беспорядочных и приближенных данных, более сложные правила, чем это де- лалось экспертами (Buchanan, 1978). Программа Уотермана (Waterman, 1970) Назначение. Выявление эвристик для игры в покер путем обучения. р Разработчики. Уотерман описывает экспериментальную ин- .теллектуальную систему, в которой предусмотрено четкое раз- деление между программой и эвристиками. Кроме того, про- грамма способна к расширению своих возможностей в ходе игры и корректировке множества применяемых при этом эвристик. Характеристики. Применяемые эвристики берутся в форме правил продукций, которые постепенно корректируются. Кроме
390 ГЛАВА 7 того, программа способна конструировать новые пра- вила. Каждая отдельная ситуация в игре представляется в виде вектора с семью компонентами (номер руки, ценность комбина- ции, величина ставки, использование противником блефа (да или нет), отношение комбинация/ставка, произведена замена карт (да или нет), стиль (игры противника). Методы рассужде- ний выражаются как функции этого вектора. Принятие решения и обучение в программе Уотермана. Структура управления правилами имеет особый характер: пра- вила располагаются не произвольным образом, а в некотором заданном порядке и выполняется первая успешная унификация в соответствии с этим порядком. Из-за этого исправление любой ошибки оказывается достаточно сложным, более того, любая модификация приводит к трудно предсказуемым послед- ствиям. Выход, предлагаемый Уотерманом, состоит в следующем: четко формируется новое правило, которое точно описывает данную ситуацию с новой правой частью, корректирующей оши- бочное решение. Тем самым возникают две возможности: либо уже существует правило, которое можно модифицировать так, чтобы получить тот же эффект, что и новое правило, либо та- кого правила не существует. В последнем случае обучение про- исходит очень просто: новое правило ставится непосредственно перед ошибочным правилом. Первый же случай разделяется на два в зависимости от того, расположено ли подлежащее моди- фикации правило до или после ошибочного правила. Если оно находится перед ним, то поля определения символических зна- чений параметров левой части расширяются таким образом, что они включают значения параметров из нового правила, т. е. старое правило обобщается. Если правило стоит после ошибоч- ного правила, происходит обратный процесс: программа выде- ляет правила, расположенные между ошибочным и модифици- руемым правилами (включительно); поля параметров в них ограничиваются с целью исключения всех преждевременных комбинаций. Опасности, подстерегающие подобную схему управления, многообразны: трудность проверки вручную влияния продукци- онных правил на ход игры, создание избыточных- правил, кото- рые система должна периодически исключать, неустойчивость поведения программы в фазе обучения. Автор сообщает о мно- гих сериях экспериментов на автоматическое обучение и обуче- ние с учителем, которые доказывают эффективность обучения и дают хорошее поведение системы в игре с использованием всего двух десятков правил в заключительной фазе.
ЭКСПЕРТНЫЕ СИСТЕМЫ 391 Программа демонстрирует меняющийся стиль игры, кото- рый трудно охватить противнику. Но если это свойство и хоро- шо для покера, оно может иметь серьезные недостатки в дру- гих областях. Семейство систем MYCIN-TEIRESIAS Назначение. Помощь в диагностике и лечении, помощь в получении знаний в области бактериальных заражений крови. •Разработчики. Э. Шортлиф (Е. Shortliffe, 1974), Р. Дэвис (R. Davis, 1976), Стэнфордский университет, коллектив под руководством Букханана и Фейгенбаума (Buchanan — Feigen- baum). Характеристики. Полезная, активно используемая програм- ма. Система знает, что она знает и что нужно знать. Это помо- гает ей объяснять свой метод рассуждения, отвечать на вопро- сы, обучать эксперта, а затем давать ему советы, используя ме- дицинскую терминологию (разд. 7.2). GUIDON. Эта система обучает тому, о чем MYCIN рассуж- дает. Она предназначена для студентов-медиков Стэнфордско- го университетз. Знания, выраженные в правилах системы MYCIN, отфильтровываются с помощью набора правил, отно- сящихся к педагогике. (Clancey, 1979). Несмотря на то что ис- следование ситуации в системе MYCIN производится вслепую, метбдом полного перебора, этого оказывается вполне достаточ- но для постепенного обучения этим правилам новичков. При этом стратегия диагностики должна быть тщательно по- добрана: зубная боль несравнима по своей тяжести с менинги- том. Поэтому медики-информаторы Стэнфордского университета ' пришли к необходимости дальнейшего разделения правил на некоторые группы для того, чтобы, с одной стороны, выделить иерархию клинически определенных ситуаций, а с другой — со- хранить их взаимосвязи. Созданная новая система знаний полу- чила название NEOMYCIN (Clancey, 1981). х ONCOCIN. Э. Шортлиф описывает весьма актуальную си- хстему помощи в лечении рака. Концепция ONCOCIN во многих отношениях отличается от концепции MYCIN: к • За больными должно вестись наблюдение; для каждого ^больного ведется и подытоживается клинический протокол те- рпения его болезни. Таким образом, время выступает здесь в d качестве основного параметра. Признаки заболевания уже яв- ляются переменными, а не постоянными (это обстоятельство при- водит к фундаментальным изменениям в структуре машины вы- 11 вода: вычисление посылок теперь не является простым делом). • Область применения настолько обширна, что необходима классификация правил по контексту их применения.
392 ГЛАВА 7 • По этой же причине система должна постоянно контроли- ровать 'совместимость и полноту всего множества правил. • С целью устранения длинных и дорогостоящих сессий вопросов — ответов при отсутствии данных правила сами пы- таются присвоить значения неизвестным параметрам. • Стратегия поиска не сводится более к полному перебору, а исходит из поставленной цели. SU/Х и некоторые другие системы Назначение. Идентификация и локализация объектов, по- сылающих сигналы в пространство (Nii, 1978). Разработчики. Система разработана Е. Фейгенбаумом и П. Нием (Е. Feigenbaum, Р. Nii, 1976), для слежения за разви- вающимися ситуациями и знаниями. Мгновенная память для запоминания фактов устроена по типу классной доски, исполь- зованной в системе HEARSAY из Университета Карнеги — Мел- лона (Erman, 1975). Характеристики. Правые части правил точно определяют действия, которые фактически являются вызовами процедур: вычисление того или иного параметра или замена той или иной гипотезы на другую. Таким образом, правила служат в основ- ном для исключения возможности комбинаторного взрыва. VM (Feigenbaum, 1979). Это продукционная система для по- мощи сиделкам в отделении реанимации. Она непосредственно воспринимает состояние различных клинических показателей и постоянно следит за их изменением. Она поднимает тревогу в случае серьезной аномалии. CRYSAZYS — производная от системы SU/Х, предназначен- ная для определения структуры белка с помощью карты плот- ности электронов в трехмерном пространстве, получаемой ме- тодом рентгеновской кристаллографии. Белковые молекулы протеинов настолько сложны, что методы полного перебора систем DENDRAL и M.YCIN оказываются непригодными и тре- буется более богатая структура управления правилами (Engel- more,.1979). MOLGEN. Это еще одна экспертная система, созданная тем же коллективом ученых. Предметом ее применения является молекулярная биология; исходными являются различные “ору- дия”, предназначенные для расчленения, связывания,’ включе- ния и уничтожения молекул ДНК, эффекты, вызываемые таки- ми модификациями, и состояние химической технологии. Речь идет о том, как и каким образом достичь цели, которая ставит- ся генетиками. Основная трудность состоит в том, чтобы заста- вить взаимодействовать в базе знаний правила продукций, опе- рирующие разнообразной информацией из биологии, химии,
ЭКСПЕРТНЫЕ СИСТЕМЫ 393 технологии преобразований, топологии, генетики (Friedland, 1979). RITA. Система создана в фирме Rand коллективом, состоя- щим из Андерсона, Гилдогли и Уотермана. Она моделирует способ выработки концепций (Anderson, 1976). PROSPECTOR. Экспертная система для оценки достоинств горнорудных районов (Duda, 1980; Konolidge, 1979). В ней од- новременно используются правила продукций и семантическая сеть (Waterman, 1978). Правила системы компилируются и рас- полагаются в виде графа. Использование системы позволило обнаружить в Британской Колумбии залежи молибдена, пред- положительная стоимость которого достигает миллиона дол- ларов. DIPMETER. Система создана в исследовательской лабора- тории Шлумбергер Долла (Davis, 1981). Ее объектом является анализ сигналов при физических измерениях в геологической скважине. Кроме правил системы типа MYCIN, база знаний включает процедуры извлечения значимых форм сигнала. Глав- ная цель состоит в установлении символической связи между результатами измерений и истинной природой геологических пластов. LITHO. Анализ подпочв геологических срезов, произведен- ных лабораторией в Кламаре (A. Bonnet, 1982; J. G. Ganascia, 1988). DRILING ADVISOR (1982). Реализация начата с созда- ния машины логического вывода KS300 Teknowledge и предна- значалась для компании ELF Aquitaine. Система ориентиро- вана на анализ несчастных случаев при бурении нефтяных скважин. CASNET. Система обладает моделью рассуждений несколько более развитой, чем система MYCIN, позволяющей не только ставить диагноз и осуществлять уход за больным, отслеживая развитие глаукомы и соответственно изменяя предлагаемые системой лечебные рекомендации. В . этом классе систем нахо- дятся также и другие конкретные системы. HEADMED. Психофармакология (Feigenbaum, 1979, 1977). INTERNIST (Университет Питтсбурга). Экспертная система для медиков-интернов. Большое число областей и болезней че- ловека закодированы многими десятками специалистов и вне- сены в систему. Полная система содержит многие тысячи пра- вил по 80 отдельным темам. SACON. „Советчик инженера" в механике (Michie, 1980). SOPHIE. Помощь в обучении на компьютере технике обна- ружения неисправностей в электрических цепях (Anderson, 1979).
394 ГЛАВА 7 EL и NASL (Sussman, 1975, McDermott, 1978)—помощь при изучении электрических цепей. Три последние системы используют моделирующие програм- мы для проверки гипотез. NUDGE. Поиск распределения времени в тех случаях, когда задача плохо поставлена. Кроме того, появились системы, использующие правила про- дукций в игровых программах. Среди них PARADISE для игры в шахматы (Wilkins, 1979), система Куинлэна (Quinlan) и си- стемы Попеску (Popescu, 1984), Фаллера (Faller, 1985) для игры в бридж. Для понимания связной устной речи — система HEAR- SAY 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 коллективом из
ЭКСПЕРТНЫЕ СИСТЕМЫ 395 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 задается цель, позволяющая осущест- влять непрерывное управление процессом поиска. PEC.OS (Barstow, 1979). Система переводит на язык Лисп абстрактные алгоритмы, предназначенные для работы с симво- лами, выборками и графами. Представление объектов и тех- ника программирования выбираются с помощью примерно 400 правил, которые могут приводить ко многим различным вер- сиям программы, оцениваемых и используемых с помощью бо- лее общей системы автоматического синтеза программ PSI. АРЕ. Экспертная система программирования. Она авто- матически пишет программы на языке Лисп, исходя от абстрактных спецификаций алгоритмов и типов данных. Порож- денные при этом рекурсивные программы (деревья, бинарный поиск и т. д.) могут содержать примерно 60 строк кодов. Аб- страктные типы данных включают списки, файлы и неупорядо- ченные массивы, таблицы, деревья.
396 ГЛАВА 7 Цель авторов — прийти к новой теории программирования, основанной на модульных представлениях о правилах базы зна- ний системы. TROPIC. Система описана Латомбом (Latombe, 1977). Это универсальная программа, облегчающая работу в таких обла- стях, как архитектура и электротехника. Она обладает эффек- тивным механизмом управления советами и хорошо организо- ванным механизмом возврата, полезным для анализа игры в шахматы. AGE. Создана Нийем и Айелло (Nil, 1978). Система вклю- чает алгоритм систематического обобщения вводимых в нее правил. ARGOS-П. Разработка Кэйрола, Фейда и Фэрренея (Cayrol, 1979, 1976, Farreny, 1980). Это общая система, которая пред- назначена для имитации принятия решений роботом. В част- ности, исследован логический аспект управления таким роботом: исполнение правил можно произвольным образом откладывать и возобновлять с помощью введения формальных объектов. CAMELIA (Vivet, 1984). Речь идет об экспертной системе, помогающей формулировать теоремы интегрального исчисле- ния, строить бесконечные ряды, решать алгебраические и ариф- метические задачи. Она написана на языке Лисп и использует программу REDUCE для вычислений в базе данных. Ее ориги- нальность состоит в том, что она строит план решения для всех возникающих задач, основываясь на метаправилах стратегиче- ского характера. Кроме того, она может при необходимости оценивать посылки правил, например таких: если .... и положительное (/) = истина и .... то ... где f—может быть произвольным формальным выражением, содержащим, в частности, неизвестные параметры; посылка “положительное f” становится для системы CAMELIA новой подцелью, которая достигается с помощью рекурсии. В настоящее время эта система ориентируется на использо- вание метазнаний для модификации сложных правил с тем, чтобы приспособить эти правила к существующей ситуации. GOSSEYN (Fouet, 1984). Система используется в механиче- ском производстве для конструирования штампованных деталей и производства картеров для автомобильных двигателей (2000 правил). MUSCADET (Pastre, 1984). Речь идет о системе, предназна- ченной для доказательства теорем в некоторых разделах чистой математики, таких, как теория множеств, теория топологиче-
ЭКСПЕРТНЫЕ СИСТЕМЫ 397 ских векторных пространств, где система MUSCADET доказала целый ряд трудных теорем. База знаний системы содержит спе- цифические правила для отдельных областей математики, уни- версальных математических знаний, а также общую стратегию ведения доказательств. Все типы знаний (правила, метаправи- ла, метадействия) интерпретируются одним и тем же механиз- мом. Пастр (D. Pastre) для описания своей базы знаний исполь- зовал помощь квалифицированных математиков. Основной вы- вод состоит в том, что эксперты оказываются неспособными формулировать логические правила в абстрактной форме. Вмес- то этого они рассуждают с помощью примеров, прибегая к част- ным случаям и используя рисунки. Они неожиданно могут на- долго задуматься перед тем, как сделать первый шаг при реше- нии проблемы, или оказаться не в состоянии ответить на вопрос, почему ими был выбран именно этот, определенный метод. При- веден пример теоремы, доказанной с помощью MUSCADET за 14 этапов (применяется около 200 правил): “Если U — окрест- ность 0, то существует V — также окрестность 0, содержащая- ся в U, центрально симметричная относительно 0”. Обучающиеся системы Прежде всего назовем систему Гольдштейна PONTIUS-0, которая моделирует поведение человека, обучающегося управле- нию самолетом. Известный успех имела система AM, созданная Ленатом, (Lenat, 1975), которая предназначена для свершения математи- ческих «открытий». Отправляясь от некоторых исходных поня- тий, AM порождает новые понятия и судит о достоинстве ис- пользуемых продукционных правил с помощью оценочных функ- ций. В частности, AM порождает четыре различных способа умножения: путем подстановки с итерацией, путем повторного сложения способом, аналогичным нумерации элементов декар- това произведения, и путем нахождения кардинального числа множества разбиений некоторого множества. Аналогично возни- кает понятие простого числа (рис. 7.7) и формулируется основ- ная теорема арифметики. “Понятие” “простого числа” в системе AM Дугласа Лената формируется в процессе ее работы. Фасеты (или слоты) таких понятий постепенно заполняются средствами самой системы. Кроме того, система способна создавать свои собственные новые понятия путем обобщения или уточнения старых по- нятий, В правой части каждого правила содержится явное указание, в соответствии с которым может произойти разветвление этого правила на несколько других. Система развивается на основе
398 ГЛАВА 7 примеров, которые она формирует и обобщает, пользуется мно- гочисленными эвристическими моделями поведения человека, т. е. по своей природе ее рассуждения носят индуктивный харак- тер. Недавно Ленат описал новую систему EURISCO, которая является обобщением системы AM. Она может действовать в Имя: простые числа Определение Начало: число делителей (х)=2 Предикат: простое (х), если (для всех z) (z/x влечет z=l или z=x) Итерация: (для всех х, х > 1): для i = 2 до х— 1: нет (г/х) Примеры: 2, 3, 5, 7, 11, 13, 17, 19, ... Особые случаи: 2, 3 Выход за границы: 0 и 1 Число контрпримеров: 12 Обобщение: Число, число с четным числом делителей, число с нечетным числом де- лителей Специализация: Единственная факторизация, пара простых, сумма простых Предположения: утверждение Гольдбаха, предельные делители Аналогии: Двойственность, числа с малым числом делителей и с определенным числом делителей Интерес: Связь с умножением, делимость и все операции, связанные с ними Оценка: 800 Рис. 7.7. Пример представления высокого порядка. произвольной области и конструировать собственные правила, используя метазнания (Lenat, 1983). Аналогично работает система BACON-З, созданная Лэнгли (Langley, 1979). Она ориентирована на физику и способна за- ново открыть законы Кеплера, Кулона и Ома. Система APS Уотермана (Waterman, 1979) способна стрсщть общие модели для выполнения арифметических операций, для обучения словам и для продолжения отрезков последовательностей. Список пра- вил упорядочен, а обучение состоит в том, чтобы помещать но- вые правила в этот список на разумно выбранное место. Отме- тим, однако, что этот выбранный порядок работы системы является одновременно попыткой обойти- чисто декларативный характер продукционных систем и преодолеть ограничения на- шего познания в области психологии человека. Наше знание, воз- можно, локально упорядоченное в некоторых важных случаях, во всей своей полноте таковым не является. Митчелл, Банержи и др. (Mitchell, 1981) описали систему формального интегрирования, способную к совершенствованию
ЭКСПЕРТНЫЕ СИСТЕМЫ 399 своих возможностей по мере ее применения: сначала первооб- разная определяется путем полного перебора, затем программа выделяет из дерева решения полезный путь (или пути). Таким образом она выделяет простые правила математической переза- писи, которые она использовала, уточняя контекст их примене- ния, и тем самым преобразует их в правила продукций в обыч- ном смысле. Затем выполняются обобщения каждой конкретной функции в своих контекстах для всего класса подобных функ- ций: синус, например, превращается в произвольную тригоно- метрическую функцию и т. д. В свою очередь неверно применен- ные правила сохраняются для того, чтобы в дальнейшем не упо- треблять их в том же контексте. Посылки могут стать слишком общими или слишком частными. Они тогда модифицируются с помощью упражнений. Авторы отмечают существенное усовер- шенствование преобразований, наступающее после такого обу- чения. ANA. Система Макдермота (McDermott, 1979) способна научиться и запомнить способ выполнения новой задачи, опи- раясь на методы, которые оказались полезными при решении предыдущих задач, т. е., рассуждая по аналогии, ANA модели- рует поведение автоматического управляющего магазином, тор- гующим красками; она конструирует новые правила продукций, перебирая прежние ситуации и применяя их к новым возникаю- щим ситуациям до тех пор, пока не возникнет очевидной ошиб- ки в связи этих ситуаций. Эта система показывает еще раз, что очень простые механизмы — в данном случае механизмы обуче- ния — легко и естественно могут быть применены к различным моделям, при этом применение правил продукций оказывается весьма эффективным. Программа моделирования ACT. Программа, авторами кото- рой являются два психолога Дж. Андерсон и П. Клин (Ander- son, 1979) из Университета Карнеги — Меллона, заслуживает специального упоминания потому, что она, с одной стороны, но- сит универсальный характер, а с другой — способна к обучению. Эта система была создана с целью промоделировать поведение человека на основе классических экспериментов по «формиро- ванию понятий» в психологии. Изучение системы ACT можно проводить в двух формах: в форме препозициального графа, подобного классическим семан- тическим сетям в системах искусственного интеллекта для де- кларативной части, и в форме системы продукций для процедур- ной части. Добавления к множеству продукций и его модифика- ция достигаются четырьмя различными способами: назначения, подкрепления, обобщения и распознавания (Anderson, 1979).
400 ГЛАВА 7 PS. Продукционная система Ричнера (Rychener, 1976) по- зволяет переписывать в форме системы продукций такие разные программы, как: • STUDENT Боброва, которая решает алгебраические за- дачи, сформулированные по-английски; • ЕРАМ Фейгенбаума, способная выполнять тесты на пра- вильное продолжение последовательностей букв; • GPS Ньюэлла, Шоу и Саймона, которая выполняет зада- чи, поставленные В различных областях; • программа Пердо и Берлинера, которая играет окончания шахматных партий; • программа Морана, которая строит английские фразы, описывающие ситуации в мире кубиков; • SHRDLU Винограда, которая решает задачи и ведет диалог по-английски также в мире кубиков. В следующем разделе представлено другое семейство экс- пертных систем, объединенных использованием предикатов первого порядка и специального метода вывода, известного под названием принципа резолюции. 7.4. Экспертные системы, основанные на логике предикатов первого порядка Существует классический язык, специально созданный для моделирования формальных человеческих рассуждений,— это язык математической логики. На самом деле правило продук- ций “ситуация -> возможное следствие” представляет собой теорему, несколько необычно формализованную: это логическое выражение, состоящее из утверждений, которые могут быть интерпретированы как истинные или ложные. Единственное раз- личие состоит в том, что все экспертные правила заранее до- пустимы (аксиомы) даже в том случае, если их невозможно до- казать. Таким образом, правила продукций очень близки к пра- вилам преобразований, известным в математике: формальным преобразованиям выражений, преобразованиям в полугруппах, в формальных грамматиках, в логарифме Маркова. Для луч- шего понимания экспертной системы представляется привлека- тельным использовать формализм, принятый в логике. Большинство из рассмотренных выше экспертных систем хо- > рошо описывается логикой высказываний (гл. 3), в которой все существенные понятия выражаются константами. Сейчас мы опишем последовательно две важные системы, а именно PROLOG и SNARK, основанные на формализме логики преди- катов первого порядка (с переменными) и некоторых их прило- жений. На самом деле язык программирования Пролог, раз-
ЭКСПЕРТНЫЕ СИСТЕМЫ 401 работанный Алленом Кольмрауэром (1971), в контексте реше- ния задачи понимания естественно-языковой фразы, был создан еще до появления самого понятия экспертных систем. 7.4.1. Язык Пролог Пролог — язык программирования, единицей которого яв- ляется не команда, а теорема логики предикатов первого по- рядка (разд. 3.1.10). Теорема содержит переменные или пара- метры, относящиеся к квантору всеобщности: эти переменные могут быть замещены любым правильно построенным выраже- нием языка. Переменные принадлежат n-арным предикатам. За- пись Р(х1, х2, хп), где xi — переменные, а Р — п-арный предикат, интерпретируется так: Р(х1, х2, ..., хп) истинно (Colmerauer, 1971 и Roussel, 1975). Сами предикаты в языке Пролог не могут быть включены в сферу действия кванторов. (Если предикаты находятся • под знаками действия кванторов, речь идет об исчислении предикатов высших порядков, т. е. 2-го 3-го и т. д.) (Huet, 1978). Пролог — специальный интерпретатор для формул логики предикатов первого порядка. Его действие распространяется на предикаты, приведенные к нормальной дизъюнктивной фор- ме. Любое предложение (дизъюнкция предикатов) записывается в виде (~1 V 1 h2 V • • • V “1 V (С, V С2 V . • • V Су), что, очевидно, интерпретируется в виде h{ A h2 Д ... A hi о Сх А С2 А • • АС,. Характерной особенностью языка Пролог является то, что он имеет дело только с хорновскими предложениями, т. е. с предложениями, которые имеют самое большее один “положи- тельный” литерал (справа), другими словами, только одно за- ключение Сх. Язык запрещает иметь дело с дизъюнктивными заключениями типа Сх V С2. Под литералом понимается любой терм hi или из предложения, представленного в нормальной форме. , Различные реализации языка Пролог фактически являются производными от версии языка на Фортране (Roussel, 1975), опирающейся на переносимый интерпретатор (Battani, 1973). В основном Пролог получил распространение в Португалии (Co- elho, 1980), Эдинбурге (Warren, 1977), Венгрии (Szeedi, 1977) и Японии. В Японии программа создания ЭВМ “пятого поколе- ния” предусматривает его использование в качестве микро- программного языка завтрашнего дня. Машина EPILOG, соз- данная Сансонне и Алии, уже дает пример высокоэффективного
402 ГЛАВА 7 языка программирования Пролог (Тулуза, Университет П. Са- батье, 1982). Все интерпретаторы для языка Пролог на самом деле яв- ляются иллюстрацией доказательства теорем с использованием принципа резолюции. Этот принцип, предложенный еще Эрбра- ном (Herbrandt, 1931), был заново воссоздан и запрограммиро- ван Робинсоном в 1965 г. (Robinson, 1965). Он является обобще- нием метода доказательства от противного: принцип резолюции состоит в том, что доказывается противоречивость предложения р A ~\q и тем самым доказывается справедливость импликации р zd q. Этот метод априори является полным и позволяет дока- зывать все теоремы данной формальной системы, но связан с большим объемом комбинаторных вычислений и недостаточно естествен для человека. Обычно мы очень редко рассуждаем от противного. Тем не менее интерпретирующие программы оказы- ваются эффективнее нас... На самом деле любое предложение языка Пролог может быть интерпретировано двумя способами: 1) процедурным об- разом через интерпретатор и 2) чисто логически или деклара- тивно как простое утверждение теоремы в рабочем простран- стве (гл. 3). Программирование на языке Пролог представляет интерес по трем причинам: 1) предложения непосредственно выражают полезные утвер- ждения (теоремы); 2) интерпретатор содержит полностью запрограммированный алгоритм унификации; 3) дерево поиска, рождаемое множеством попарных унифи- каций, обрабатывается в системе автоматически. • Кроме того, резолюция может направляться стратегией, ко- торая фиксирует приоритет определенных предложений, являю- щихся кандидатами для унификации (разд. 3.6). Предложения отбрасываются в порядке их появления, а внутри каждого пред- ложения литералы отбрасываются справа налево. Эта страте- гия является полной. Версия, реализованная в Марселе, использует глубокий по- иск с применением запрограммированной процедуры возвраще- ния назад, что приводит к неполной, но более эффективной стратегии. Для этого употребляется символ /, который играет роль ловушки, препятствующей любому возврату к литералу, который расположен слева от этого символа. Система Пролог предоставляет также возможность, поль- зуясь простым формализмом, описывать и решать задачи. Поль- зователю для формулировки своей задачи остается только найти подходящие предикаты.
ЭКСПЕРТНЫЕ СИСТЕМЫ 403 7.4.2. PEACE — экспертная программа на языке Пролог PEACE, разработанная в Тулузе Динкбасом в 1979 г., пред- ставляет собой пример экспертной программы, написанной на языке Пролог и предназначенной для анализа и синтеза элек- трических цепей. Для цепи, показанной на рис. 7.8, с заданными величинами сопротивлений, индуктивностей и емкостей и не содержащей Рис. 7.8. Схема электрической цепи для PEACE. источников тока, проблема нахождения результирующего импе- данса между точками А и D сводится к доказательству теоремы impedance (A, D, *Х). Результат, получаемый методом от противного, будет содер- жаться в окончательном значении переменной *Х. Сама цепь представляется с помощью предкатов “равно”, “ветвь”, “кратный узел”, позволяющих записать следующие условия: «ветвь (А, В, L'^» вместе с «равно (/.{, Lp а)» и «равно L *’ CjceJ или “кратность узла (В, 5)”. Основополагающие знания об электротехнике, необходимые для системы PEACE, сводятся к четырем преобразованиям це- пей, изображенных на рис 7.9а. Кроме того, система PEACE должна уметь производить дей- ствия с комплексными числами. Сначала система Пролог дей- ствует только во множестве целых чисел. В дальнейшем ее база
404 ГЛАВА 7 знаний была расширена до действий во множестве рациональ- ных (с повышенной точностью), и, наконец, до действительных чисел. Правила определения комплексных чисел также достаточно просты. Параллельная схема После дова тельная схема н— z*+ z« Схема „ „ Звезда Схема „ Треугольник " 11 X Z; Рис. 7.9а. Преобразования в системе PEACE. Преобразования электрических цепей описываются на языке Пролог с помощью предикатов. Например, второе правило при- нимает вид «Последовательные (Zi, Z2) ветвь (х, t, Zi) А ветвь (/, у, Z2) /\ различные (t, у) Л простой узел (/) А вычеркнуть (ветвь (х, /, Zj)) А вычеркнуть (ветвь (t, у, Z2)) плюс (Zb Z2, Z) А присоединить (ветвь (х, у, Z))» Внутренняя стратегия PEACE для преобразования цепи со- стоит в последовательном применении преобразований в ука- занном выше порядке. Этот порядок соответствует минималь- ному числу остающихся неясными узлов в сети. Узнавание допустимых преобразований в любой момент происходит с по- мощью алгоритма унификации и осуществляется языком Про- лог. Таким образом, каждое преобразование позволяет опреде- ленным образом модифицировать базу данных. Доказывается, что этот процесс неизбежно сходится к цепи, содержащей две точки. Решение было получено чисто алгоритмическим способом. В подобной системе любая форма знаний — факты из базы данных, процедуры, резолюции, схемы контроля — представлена единым способом с помощью конъюнкции предложений. Такое единообразие представления является также основной характе- ристикой другой системы — МЕСНО.
ЭКСПЕРТНЫЕ СИСТЕМЫ 405 7.4.3. Система МЕСНО и решение задач механики на языке Пролог Система МЕСНО решает с помощью исчисления предикатов задачи механики, включающие материальные точки, наклонные плоскости, нити, блоки. Задачи формулируются на обычном языке. МЕСНО способна контролировать свои правила вывода и ведущийся ею поиск решения. Для этого она использует ме- таинформацию, содержащуюся также в форме правил. Система была разработана А. Банди и др. (A. Bundy et al., 1979) в Уни- верситете Эдинбурга. Первая задача этой программы состоит в том, чтобы пони- мать высказывания, сделанные на естественном языке, в случае, когда из-за обширности области это невозможно сделать просто по ключевым словам (Bobrow, 1975; Charniak, 1978; Gelb, 1965). Здесь даже для простой постановки проблемы тре- буется глубокое погружение в мир физических явлений. Вторая задача — обучение тому, чему, как правило, не обу- чают в курсах механики: как именно происходит решение урав- нений, как конструируются модели, как организуется изучение задачи. Необходимо четко выяснить,’ в чем именно состоит от- личие эксперта от новичка: оба знают примерно одни и те же основные факты и формулы, но первый всегда способен найти им эффективное употребление. Их отличает также степень зна- ния общей модели и структуры контроля. Коллектив ученых Эдинбургского университета имел для глубокого анализа этих отличий два важных отправных пункта. Первый — книга Марп- ля (D. Marple), в которой исследуются протоколы того, как инженеры из Кембриджа составляют уравнения. Это исследо- вание проведено достаточно хорошо, чтобы можно было опре- делять предложения, готовые к непосредственному кодированию в виде программы. Второй отправной пункт подготовил сам Банди. Анализируя методы решения человеком линейных и квадратных уравнений, он выявил совокупность стратегий, та- ких, как “перегруппировка”, “изолирование”, “привлечение”, которые могут быть выражены на языке Пролог. Оставалось изложить и привести в систему остальное, в частности найти хорошие правила вывода, способные строить длинные дедуктив- ные цепи, начиная от формулировки задачи на естественном языке до ее полного решения. Пример Две частицы с массами b и с связаны тонкой нитью, пере- кинутой через блок. Найти ускорение частицы массой Ь. Синтаксический и семантический анализ этого предложения (относительно простой) начинается с глаголов и опирается на
406 ГЛАВА 7 законы механики. В данном случае анализ приводит к появле- нию 22 единиц, необходимых для формулировки предложений: имеется (частица, pl) правый-конец (SI, el) имеется (блок, р/1) получить (Si, mil) масса (pl, ml, время-1) коэффициент-трения (pH, 0) ускорение (р2, accel, 90°, время-1) имеется (частица, р2) левый-конец (S1, е2) имеется (период, время-1) измерение (m2, с) масса (р2, m2, время-1) измерение (ml, b) дано (ml) имеется (нить, S1) фиксированный-контакт (el, pl, вре- мя-1 ) фиксированный-контакт (е2, р2, вре- мя-1) ’• фиксированный-контакт (р/1, mil, время-1) масса (S-, 0, время-1) ускорение . ((pl, accel, 270°, время-1) дано (m2) найти (accel) По методу Марпля отыскивается уравнение, которое выражает искомую величину accel в зависимости от данных ml, m2 и g. Гравитационную постоянную g программа МЕСНО добавляет к условию cajwa. На первом этапе составляются уравнения для сил, действующих на частицы. Например, для частицы pl имеем т\ X g + натяжениеЛ = ml X accel. Введение новой неизвестной “натяжение-1” требуется ис- пользуемыми правилами. Программа “знает”, что эта величина имеет смысл натяжения и ей не хватает еще одного уравнения для решения задачи. Тогда она использует тот факт, что натяг жение на другом конце нити должно быть тем же самым и со- ставляет уравнение для сил, действующих на частицу р2. Ис- ключая переменную “натяжение-1”, программа получает резуль- тат. Испытания программы проводились и на других, более сложных примерах. Описание системы База физических знаний • Система имеет упрощенное представление о мире, подчи- няющемся законам ньютоновской механики. Она может рабо- тать только с объектами 0, 1 или 2 измерений. Точка — нуль- мерный объект, и ее роль может играть частица с массой или простая отметка на плоскости. Линия представляет собой одно- мерный объект и имеет два не совмещенных друг с другом конца. Эти простые понятия используются при описании многих других объектов. Например, блок, человек, груз могут быть описаны как точки, а такие объекты, как шнур, нить, брус, планка, хотя и обладают различными физическими свойствами, могут быть представлены в виде линий.
ЭКСПЕРТНЫЕ СИСТЕМЫ 407 Связь между объектами описывается с помощью предика- тов. Имя предиката определяет вид связи, а аргументы служат для уточнения находящихся в связи объектов, их порядка, ус- ловий объединения, направлений и знаков. Конкретная ситуа- ция определяется значениями аргументов при вызове. Пример связи приведен на рис. 7.96. “АС” определяет вызов процедуры Формулы (СИЛЫ, | I I (частица, угол, время). А) „I 1_____2 -------——--- имя, ситуация, срорму- лиррбка АС: (масса, (частица,М, время) составляющая-ускорения > связь между (частица, угол, время, 4} параметрами Суммарные - силы (частица, угол, время, fj] Рис. 7.96. Пример связи между объектами. типа “создать”, которая выполняется с помощью модуля по- иска названных величин. Очевидно, здесь могут потребоваться глубоко рекурсивные структуры базы знаний, поскольку, напри- мер, такое понятие, как ‘‘суммарные силы”, принадлежит обла- сти данных другой формулы. Логика управления Логика управления системы МЕСНО написана на языке Пролог, но запрещает нормальную для Пролога стратегию ре- шения: все действия МЕСНО последовательно разлагаются в подцели с помощью одного из 150 правил вывода из базы знаний. Каждой выделившейся подцели присваивается обозна- чение D для “непосредственный”, АС для “с созданием” или SC для “без создания”. Эти обозначения используются на рис. 7.10 для пояснения стратегии решения. Нормализация. Если возможно, каждая подцель сначала уточняется в соответствии с законами механики (если отыски- вается ускорение, то обычно по отношению к земле) или выра- жается с помощью предикатов, более удобных для системы. Вывод. МЕСНО ищет правило, правый член которого соот- ветствует поставленной цели. Посылки этого правила опреде- ляют новые подцели. Поиск ведется в глубину сначала с неиз- менным порядком правил. Правила МЕСНО управляют созда- нием новых объектов, необходимых для решения задачи.
408 ГЛАВА 7 Подцель Тип D, АС или sc Рис. 7.10. Логика подцелей в системе МЕСНО. Классы подобий. Работа системы МЕСНО основана на свой- ствах используемых в ней предикатов, которые могут быть транзитивными, симметричными или рефлексивными. Они сгруп- пированы в классы подобия, которые изоморфны деревьям, об- разованным множеством предложений Пролога. Корень дерева является единственным представителем класса и может быть унифицирован, как и другие правила. На- пример, правилу равенства соответствует следующая аксио- матика: равно (а, /^«—представитель (а, корень) А представитель (Ь, корень) представитель (а, а)«-является (а, корень) представитель (а, корень)«—дуга (а, Ь)/\ представитель (Ь, корень) которая позволяет упорядочить в дереве все равные элементы. Кроме равенства в системе имеются еще три предиката: “та же позиция”, “единица.измерения” и “период времени”, которые
ЭКСПЕРТНЫЕ СИСТЕМЫ 409 относятся к точечным объектам, занимающим в данный момент одинаковую позицию, величинам одинаковой природы, выра- женным в различных единицах, отрезкам времени. Выполнение Первый шаг. Сначала система МЕСНО не рассматривает уравнения или соотношения, которые вводили бы новый объект (вызов подцелей только вида D или SC). Это ограничение впос- ледствии отбрасывается. Прогнозирование. Система МЕСНО использует семантиче- скую информацию о физическом мире для того, чтобы решить, является ли промежуточная цель приемлемой или для прогнози- рования свойств решения: длина должна быть положительным числом, угол по отношению к плоскости меньше 180°. Даже та- кая форма знания влияет на выполнение правил равенства и принятие решения. Метод Марпля. Для нахождения неизвестной величины х си- стема МЕСНО последовательно выполняет следующие дейст- вия: а) описывает неизвестную, т. е. уточняет ее физическую природу (например, что это — масса), и определяет связанные с ней понятия (ускорение, направление движения, время); б) ищет соотношения, т. е. составляет список возможных фор- мул; в) находит подходящее уравнение, т. е. отбирает из пре- дыдущего списка наилучшую подходящую к данной ситуации формулу, ориентируясь на смысл известных параметров, г) проверяет, является ли найденная формула действительно независимой от уже известных уравнений, чтобы из нее можно было определить другие неизвестные. Формальные алгебраические вычисления. Кроме классиче- ских методов, основанных на правилах переписи, применимость которых определяется самим Прологом, вычислительный модуль использует фактическую информацию в процессе решения для исключения физически невозможных ситуаций типа неустойчи- вого равновесия (в частности, в задачах движения по траекто- риям типа русских гор) (Borning, 1981). Включение в систему правил, специфичных для каждой за- дачи, осуществляется шаг за шагом, главным образом с по- мощью составления протоколов решения. При этом за основу берется либо метод Марпля или разработанные самими авто- рами методы. Результаты Система реализована на ЭВМ DEC-10 с памятью 80К слов и с длиной слова 36 бит. Блок естественного языка содержит 900 предложений, модуль вычитания — 600 предложений,
410 ГЛАВА 7 алгебраические вычисления — 200. Интерпретатор Пролог зани- мает 20К памяти. Испытания системы проводились главным образом по трем направлениям: механические блоки, движение частиц при по- стоянном ускорении, движение частиц по сложным траекториям. Только часть задач может быть сформулирована на естествен- ном (английском) языке, остальные задачи необходимо форму- лировать в терминах предикатов. Разрабатываются также осно- вы решения задач, включающие рычаги, сооружения, снаряды, Рис. 7.11. Задача на движение ча- стицы. моменты инерции, относитель- ные скорости, гидростатику. Приведем пример формули- ровки задачи: Частица, нахо- дившаяся в состоянии покоя, начинает движение из точки Р. При заданном радиусе R1 найти наименьшую величину R2, при которой частица со- вершит полный оборот по ок- ружности С1. (Окружности С1 и С2 являются касательными друг к другу в точке Q (рис. 7.11).) Чтобы сформулировать эту задачу в логике первого по- рядка, окружности разрезают на три связанные друг с другом части с помощью позиционных отношений. Условия можно описать с помощью 20 единичных предложений, которые играют для системы ту же роль, что для нас рисунок. В литературе описывается полное решение с помощью си- стемы МЕСНО некоторых сложных задач, условия которых (записанные на обычном языке) занимают более одной стра- ницы текста. 7.4.4. Преимущества Пролога и исчисление предикатов В первую очередь отметим, что преимуществом экспертных систем, написанных на Прологе, является единообразие пред-, ставления элементов: факты, правила выводов, сложные про- цедуры, управляющие структуры выражаются в единой форме соединительных • правил. Из единства механизма вычислений при реализации принципа решения следует простота програм- мирования и семантическая простота программ. Эксперимен- тально показано, что эффективность Пролога превышает эф- фективность Лиспа. Поэтому экспертная система MYCIN была
ЭКСПЕРТНЫЕ СИСТЕМЫ 411 полностью перепрограммирована на Прологе, в результате чего ее эффективность существенно возросла (Warren, 1977). Кроме того, Пролог предоставляет возможность доступа к дереву до- казательства, средствам ввода-вывода, составляющим правилам и механизму возврата назад при движении по дереву доказа- тельств. Но главный интерес к Прологу, без сомнения, вызывает воз- можность составления программы, управляющей выполнением правил (т. е. непосредственно процессами получения выводов) и работающей на метауровне. Это важно при работе с базой знаний большого объема. Пролог позволяет также использовать правила как аргументы для предикатов более высокого уровня и, таким образом, использовать возможности логики второго порядка. При этом новые знания могут быть введены или иск- лючены командами AJOUT и SUPP. Язык управления для Пролога Эрве Галлер и Клодии Лассерр предложили (1979 г.) мета- язык для управления выводом с помощью включения в Пролог и в нормальную стратегию метаправил двух типов. По прави- лам первого типа Мета-L определяет символ для унификации в только что усвоенном правиле. Правила второго типа Мета-С служат для выбора предшественника-правила среди множества правил-кандидатов. Правила Мета-L служат для локальной об- работки контекста, “заморозки” некоторых кандидатов или для включения обязательного возврата. Идея состоит в том, что если какое-либо действие может не выполняться, его продолже- ние оказывается бесполезным. В результате выполнения правил Мета-С каждому правилу-кандидату присваивается приоритет в зависимости от определенных условий, связанных с унифи- кацией. Например, правило Meta-C(P, L, k, Д С2 А - - - А Сп утверждает, что при выполнении условий Сь С2, ..., Сп каж- дое правило, унифицируясь с правилом ~1Р V L, получает при- оритет k начиная с того момента, когда R унифицируется с сим- волом, удерживаемым на предыдущем этапе. Эти метаправила дают пользователю возможность для адаптации стратегии к конкретной проблеме. Система METALOG, написанная в Тулузе М. Динкбасом, предоставляет в распоряжение пользователя команды, управ- ляющие стратегией, и метаправила. Такого рода управляющие предикаты обеспечивают системе Пролог большую эффектив- ность.
412 ГЛАВА 7 Сравнение исчисления предикатов в Прологе и продукцион- ных систем Между условиями Хорна, используемыми Прологом, и про- дукционными правилами существует сходство. Различия ка- саются прежде всего того, что связано в Прологе с предпро- граммируемыми управляющими структурами (разд. 7.4.1). Принцип резолюции с линейной стратегией вывода однозначно определяет тип и порядок предпринимаемых попыток. Тем не менее в Прологе остается возможность модифицировать эту стратегию. Преимущества Пролога состоят в полностью запрог- раммированном общем алгоритме унификации и в механизме управления деревом поиска И-ИЛИ, связанным со свойствами интерпретатора. Таким образом, в отличие от продукционных систем Пролог постоянно увеличивает число правил (предложений), поскольку каждое решение добавляет в систему новое предложение до по- лучения пустого правила. С другой стороны, системы, основан- ные на исчислении предикатов и принципе резолюции, смешивают базу правил и базу фактов. Отметим, в частности, что предпо- ложения и выводы играют одинаковую роль и поиск может на- чинаться как с предположений, так и с выводов в обратном порядке. Направление поиска неявно уточняется при каждой ре- золюции и может меняться. В классических же продукционных системах правила обрабатываются только в одном направлении. Если в Прологе сначала не предусмотрена схема вывода с помощью коэффициентов уверенности, то ясно, что интерпрета- тор можно легко дополнить возможностями вычислений КУ, как, например, в системе MYC1N. Используя модульность, в Прологе легче выполнять исправление или добавление единицы знаний, чем в продукционных системах. Однако Пролог все же остается процедурным языком программирования высокого уровня и может вызвать затруднения у неподготовленного спе- циалиста-эксперта. Безусловно, существует и другое решение (кроме использо- вания Пролога) для интерпретации логики первого порядка. Оно состоит в использовании обычной-дедукции. модус поненс: из р и (р дэ q) следует д, или модус толенс: из q и (р дэ д) следует "] р (в отличие от системы MYCIN, которая работает по обратной цепочке, и от Пролога, который начинает одновременно в двух направлениях). При движении по дереву поиска необходимо ча- стичное возвращение назад. Однако обычный, понятный для экспертов вывод делается с помощью модус поненс.
ЭКСПЕРТНЫЕ СИСТЕМЫ 413 Система SNARK (Symbolic Normalized Acquisition and Rep- resentation of Knowledge), к краткому описанию которой мы переходим, является попыткой дальнейшей разработки в этом направлении. 7.4.5. Язык SNARK — пример языка первого порядка Язык SNARK построен на логике первого порядка и пред- ставлении знаний в реляционной форме. В противоположность системе MYCIN, которая ограничивается пропозициональным исчислением, здесь предусматривается постоянное использова- ние переменных. Фраза “природа(х) =человек” означает в SNARK “для каждого х, который является человеком”. Точ- ная форма связанного с этим силлогизма имеет вид «если природа (х) = человек, тогда смертен (х) — истина». SNARK из факта “природа (Сократ) = человек” выводит факт «смертность (Сократ) = истина». Это правило выполняется для всех тех х, для которых природа (х) = человек. Используемые отношения являются по соглашению бинар- ными. В записи правил переменные фигурируют в скобках. Система предусматривает также возможность “вложенного” определения свойств, как во фразе «возраст (крыша (х)) = min (150, возраст (стена (у)))». Ссылки на объекты производятся не с помощью имен, а только через совокупность связанных с ними свойств. Таким образом, геологический объект G, размещенный под слоем С, имеющим рифтовую, природу и возраст, превышающий 100 лет, будет описан следующим образом: под (C) = G природа (G) = рифт возраст (G) > 100 В SNARK могут быть выражены чисто математические отно- шения. Например, свойство транзитивности понятия “под”: ЕСЛИ под (х) = (у) ЕСЛИ под (y) = (z) ТО под (x) = (z) Из этих свойств следует, что язык SNARK является языком, близким к семейству языков Пролога, но отличается тем, что
414 ГЛАВА 7 в нем используется не резолюция, а естественная дедукция и он не ограничен предложениями Хорна. Порядок посылок, как и порядок правил, не имеет значения. Однако такая гибкость ввода знаний достигается ценой угрозы комбинаторного взрыва. Действительно, подготовительной операцией для оценки явля- ется замена переменной правила множеством объектов базы фактов. Угроза комбинаторного взрыва устраняется с помощью стратегии динамической оценки правил, идея которой заклю- чается в том, что оценка начинается с известных в данный мо- мент величин и последующего распространения символьных значений (гл. 8.). Таким образом, система SNARK обладает обычными свойст- вами декларативного языка, такими же, как и экспертные си- стемы (модульность, повествовательные знания) и решающие программы (возможность формальной обработки, формули- ровка предположений и движение по цепочке назад, нормализа- ция и унификация выражений). В настоящее время он исполь- зуется в геологии, медицине, археологии, математике, системах автоматизированного обучения, физике, антропологии, управле- нии АЭС и в комбинаторных задачах оптимизации для карточ- ной игры в бридж. Ниже более подробно изложено его частное применение — формальное вычисление интегралов. Вычисление неопределенных интегралов в системе SNARK База знаний в этом случае состоит главным образом из эв- ристических правил, которые определяют стратегию добавления в конкретной ситуации. При вычислении интеграла, например если интегрируемое выражение представляет собой сумму (или сумму, возведенную в некоторую степень), следует разложить интеграл на сумму интегралов. В системе SNARK соответст- вующее правило записывается следующим образом: Пример 1 ПУСТЬ интегрируемое-выражение (/) = (е) ЕСЛИ сумма (е) -истина ТО i <— интеграл (первый член (е)) + интеграл (второй член (е)) Если выражение е содержит тригонометрическую функцию, то может быть рассмотрена замена переменной. Пример 2 ПУСТЬ интегрируемое-выражение (г) = (е) ПУСТЬ член (е) = (0 ПУСТЬ головной-оператор (/) = arctrigo ТОГДА замена-переменной (е) = (/)
ЭКСПЕРТНЫЕ СИСТЕМЫ 415 Отметим следующее: 1. Вызов этих правил происходит только по необходимости, т. е. когда по крайней мере одна из посылок соответствует од- ному из заключений предыдущих правил. 2. Переменная (е) играет роль глобальной переменной. С ее помощью описываются все обрабатываемые объекты и выпол- няются на них ссылки. Такое возможно только при благоприят- ных обстоятельствах, которые встречаются не во всех прило- жениях. 3. Некоторые посылки играют роль определений. Их описа- ние включает слово ПУСТЬ. В этом случае оценка правила начинается с части ПУСТЬ, а часть ЕСЛИ тестируется, только когда известны аргументы. 4. В базе фактов также присутствуют переменные величины (в математическом смысле слова). 5. Для передачи параметров предусмотрен определенный механизм. Так выражение “замена-переменной (е) = (/)” реги- стрируется как в BF, а результатом его обработки является вы- полнение правила замены переменной, которое записывается следующим образом: “если необходимо осуществить замену пе- ременной y = f(x), нужно выразить e-dx как функцию только от у и dy". Пример ЕСЛИ замена переменной (е) = f(x) ТО вычислить dy = производная f (х) • dx унифицировать (е, у, dy) (а) проверить на отсутствие (е, х) (Ь) Два последних действия выполняются следующим образом: а) Везде в выражении применять два правила y-+f(x) и dy->f(x)dx. б) Проверить, что после этой операции интегрируемая вели- чина не содержит переменную х. При сравнении с классическим программированием обнару- живается следующее: 1. Не надо упорядочивать правила. 2. Правила независимы: они связаны только с помощью промежуточных утверждений над единственной глобальной пе- ременной е — интегрируемым выражением, которое может ви- доизменяться по ходу решения; например, I — ke = k е или I = J el + е2.
416 ГЛАВА 7 3. Одному и тому же интегралу могут соответствовать не- сколько правил. Начальный выбор правила определяется с по- мощью приоритета, связанного со сложностью выражения под знаком суммы. В случае неудачи делается другой выбор. 4. Полный набор правил для исчисления интегралов содер- жит 86 правил стратегического характера, 368 правил вычисле- ний тригонометрических, степенных и логарифмических выра- жений. 5. Полный набор правил (стратегий интегрирования) должен быть относительно большим. Практика показывает, что какие- то правила могут быть забыты, другие — недостаточно точны. Наглядность записей на языке SNARK упрощает выполнение необходимых модификаций. В этом смысле он довольно близок к обычному языку записи математических выражений. Трудно даже представить себе, скольких усилий потребовало бы выпол- нение той же работы на классических языках программи- рования. 6. Язык SNARK позволяет описывать как очень общие пра- вила (приведенный выше случай), так и весьма специфические, например: I = [ 1/V-Зх2 4- 6х —- 2 ] dx ЕСЛИ характер (е) = дробь ПУСТЬ знаменатель — ЕСЛИ дробная степень (d) = истина ПУСТЬ (/) = первый-член (d) ЕСЛИ полином (/)== истина ЕСЛИ степень (/) = 2 ТО идентифицировать (t, ay2Ь) ЕСЛИ (а < 0) А (Ь = 0) ТО замена-переменной (е) = (/) выражение R) = -^-cos0 Роль переменных в системе SNARK В предложенном представлении переменные пересылаются в записи базы фактов. Они играют 4 различные роли, соответ- ствующие хорошо известным в программировании стандартным ситуациям, которые описываются в том же формализме функ- циональных обозначений: 1) индексация содержимого базы (связный список); 2) параметризация правил (передача аргументов); 3) вызов цели (подпрограммы); 4) управление деревом поиска (приведение в порядок стека). Рассмотрим эти роли более подробно.
ЭКСПЕРТНЫЕ СИСТЕМЫ 417 I, Индексация. Каждая переменная базы фактов имеет значе- ние; связанное с объектом, который определяется с помощью известных в данный момент соотношений (рис. 7.12). В част- ности, может оказаться, что он не обладает ни именем, ни ха- рактерными свойствами. Кроме того, имеется прямой доступ ко всем записям, определяющим одно свойство и имеющим одно значение (снова приходим к реляционной схеме базы данных). Рис. 7.12. Объект в базе фактов SNARK. Параметризация. Переменные правил являются формальны- ми переменными, замена которых происходит в соответствии с правилами математики. Правила можно рассматривать как тео- ремы, действующие для всех семейств объектов, для которых справедливы предположения. Вызовы правил осуществляются с помощью значений параметров, поскольку именно .значения объектов базы управляют выполнением правил. Вызов подпрограммы. Конкретный результат работы правила зависит от значений переменных, и его получение может быть связано с вызовом новой цели. Например, запись “замена пере- менной (е)” позволяет запомнить возможную цель замены пе- ременной. Данное обстоятельство будет затем учтено каким- либо другим правилом. Это представляет собой оригинальный метод вызова процедуры, поскольку в любой момент могут конкурировать между собой несколько целей-процедур. Тогда окончательный выбор осуществляется с помощью правил более высокого уровня (метаправил), которые учитывают трудности достижения различных целей. Управление деревом поиска. По природе решаемые задачи Требуют возврата назад в процессе решения. Это происходит в тех случаях, когда правило выполняется слишком рано, не- удачно определен набор переменных или поставленная задача не имеет решения и надо проверить другие возможности. Мы сно- ва приходим к управлению классическим деревом, которое иног- да осуществляется с помощью рекурсивных программ. В этом случае глубина рекурсии5 заранее неизвестна и может достигать очень больших значений. Индексация переменных позволяет осу- ществить управление гораздо проще: задание конкретного на- бора выполняемых правил определяет параметр индексации, 14 Ж.-Л. Лорьер
418 ГЛАВА 7 основанный 'на всех фактах, йзвестных на данный момент. Рассмотрим, «апр.имер, выражение е, которое после замены переменной и обозначим через ev. Если впоследствии .решение задачи зашло в тупик, информация о ev теряется и поиск возоб- новляется от первоначального выражения. В этом случае стра- тегию использования дерева, поиска можно определить с по- мощью метаправил и отдать предпочтение выражению наимень- шей сложности, т. е. управление поиском осуществляется извне программы (“режим попыток” (Nilsson, 80), (Farenny, 85)). С помощью логики первого порядка системы SNARK можно, например, за несколько дней составить и реализовать блок правил для формального интегрирования. Время вычисления интеграла в среднем составляет 1 с на ЭВМ тцпа .ИБМ 370/168 для интегралов вида , (x3arcsin х)/(1 — x2) dx. Выигрыш во времени, реализации по сравнению с классиче-? скими методами очевиден. За 10 с может быть выведена в среднем тысяча? фактов. В.ажная характеристика системы состоит в том, что вывод, т. е. нахождение последовательности используемых правил, легко осуществляется в каждом случае. Более того, используя Начальные знаний, ‘ система по Требованию находит поддерево поиска, которое окажется полезным для доказательства какого- либо факта. Благодаря этому подобные экспертные системы Становятся автоматизированным инструментом подбора полез- ных свёдёний. ' Мы рассмотрели несколько экспертных систем, при разра- ботке которых используется декларативный подход (база зна- ний независима от программы). Полезно сравнить их работу с работами классических информационных систем. В частности, в разд. 7.5 поставлены проблемы мощности и эффективности используемых языков, описаны современные направления ис- следований. ' В разд. 7.6 мы попытаемся сформулировать преимущества и недостатки декларативного подхода к созданию экспертных си- стём по Сравнению с обычным процедурным подходом, исполь- зуемым специалистами по информатике. . В разд. 7.7 рас- смотрены выражения, с помощью которых осуществляется управление самим языком:, фундаментальное отличие эксперт- ных систем от систем с правилами перезаписи сострит в мета- знании. -I
’ ЭКСПЕРТНЫЕ, СИСТЕМЫ , 419 ---~*-ь---,-----— ——j. .... ......—....., и ...... ». 7.5. Сравнение.декларативного и процедурного подходов ‘ Эти два подхода возникли вместе с первыми успешными реализациями экспертных систем, Использующих базу знаний в форме продукционных правил типа: . ’ , MG ' MD Частично опйсаннай ситуация —-> Ожидаемое заключение' Например, информация ; •- ‘ “Все американские политики лжецы” вводится в форме > ЕСЛИ характер (х) = политик ЕСЛИ-государственность (х) == американец , , ТО лжец (х) == истина . Эти. подходы возникали также и в цлассичесдом программи- ровании. Они привели к противостоянию аппликативного ц по- велительного, рекурсивного и итеративного, статического и ди- намического, функционального и описательного, вообще в про- тивостоянии между процедурами и описаниями. Идеал, конечно же, заключается в описании (задачи, программы, знания) неза- висимо от используемых методов. При декларативном подходе к продукционным правилам и экспертным системам доступ к информации осуществляется с помощью унификации или огра- ниченной унификации (называемой сравнением с образов и фильтрацией) (Waterman, Hayes-Roth, 1979; Nilsson, 1980; Farreny, 1980]. Ответ на вопрос “Лжец ли он?” отыскивается с помощью двух обращений к. базе фактов. А из утверждения “Он честный политик” выводится с помощью унификации “Он не аме- риканец”. . . . . - Напротив, в процедурном подходе необходимо заранее пред- видеть вопросы и составить процедуру для ответа на каждый из них. Если кто-то является политиком, то, чтобы узнать, че- стный он или нет, необходимо проверить его государственную принадлежность и т. д. По сути процедура дает поток инфор- мации и дает синтаксическое описание его'преобразования. Что касается декларативных формулировок, то они цо опре- делению выражают, фактическое знание чисто повествоватёль- ным образом независимо от его будущего использования. Это знание пополняется неупорядоченно и имеет полностью модуль- ную структуру. Отметим здесь основной момент, что деклара- тивные формулировки выражают отношения с помощью, семан- тической информации. 14*
420 ГЛАВА 7 7.5.1. Критика «процедурной» информатики или «языки программирования не являются языками» Слово ordre во французском языке имеет два значения: 1) действие, с помощью которого руководитель проявляет свою волю (командовать, заставлять, приказывать), и 2) правильное расположение, последовательность или связку (ряд, вереница). Оказывается, что оба значения этого слова соответствуют двум фундаментальным свойствам современных языков программиро- вания, а точнее свойствам алгоритма. Запись алгоритма на языке программирования 1) состоит исключительно из инструкций (первое значение); 2) представляет собой строго определенную последовательность последних (второе значение). Из этого следует, что на доступных языках программирова- ния нельзя выразить фразы: “На Парижской бирже повышается курс доллара” или “Женевское озеро очень приятно в хорошую погоду”, так как они не содержат ничего, что могло бы быть выполнено в определенном порядке. Кроме того, если нет дополнительной информации, они независимы , друг от друга. Были предприняты попытки устранить одно из этих драко- новских ограничений, связанное с порядком инструкций, с по- мощью новых примитивов (First t, Next i, т. e. первый и следую- щий). Оказалось, что в определенных случаях порядок следова- ния инструкций может быть изменен без изменения алгоритма, а к языкам программирования, обладающим таким свойством, применяется термин “без последствия” (в них одна и та же пе- ременная не используется дважды). Исследования в этой обла- сти оказались связанными с такими проблемами, как паралле- лизм в программировании, сети Петри, программные схемы. .Но в Действительности основная проблема программирова- ния состоит совсем в другом: мы с трудом составляем алгорит- мы, потому что само это понятие нам несвойственно. Програм- мируя, мы решаем настоящую головоломку. Мы составляем алгоритм из разрозненных кусков, потому что в действительно- сти наше знание является модульным и каждый такой модуль содержит от четырех до шести строк. Кроме того, как поедоставить в распоряжение ЭВМ инфор- мацию типа: “ЭДС U, сопротивление и ток I, протекающий по электрической цепи при комнатной температуре, связаны между собой законом Ома U — RI"? Если подобную информацию можно поместить в базу дан- ных, останется только умело ею распорядиться, т. е. 1) обращаться к ней только при необходимости;
ЭКСПЕРТНЫЕ СИСТЕМЫ 421 2) в случае возникновения такой необходимости иметь в виду; что не только U является функцией Я и /, но и /? —функция U и / и I — функция U и R. Даже если из трех значений U, R и / неизвестными являются два, то все равно можно использовать некоторые соотношения, например для двух параллельно вклю- ченных сопротивлений справедливо/?1//?2 =72//1. Очевидно, что, когда применяется этот закон, он должен в свою очередь использовать другие законы, в данном случае законы алгебры и анализа (упрощение, нормализация). Таким образом, для языков программирования требуется полная ин- формация. Для работы алгоритма необходимы все те данные, использование которых было предусмотрено при его составле- нии. После того как алгоритм отработал, уже невозможна ни- какая параметризация, нет никаких степеней свободы. Ставящий диагноз врач, работающий над проектом инже- нер, доказывающий теорему математик вынуждены использо- вать неполно описанные ситуации. Из этих неполных данных они выуживают все, что возможно, а затем, в случае необходи- мости, продолжение работы строят на гипотезах. Каждая возни- кающая ситуация является Новой. Ходом их рассуждений не управляет никакая полная и заранее установленная схема, их действия совершенно не похожи на работу привычных алго- ритмов. Эти замечания говорят о том, что классическое программи- рование не включает громадную область обработки информа- ции. Речь идет о всех тех областях, где человек использует фактическую информацию, обособленные правила, неполно описанные стратегии и приемы. Обработка таких данных по природе не является алгоритмической. Конечно же неплохо иметь в распоряжении подобный алгоритм, но. к Сожалению, это не всегда возможно. Совершенно новый подход к решению подобных проблем, как мы уже видели, используется в экс- пертных системах, появление которых связано с конкретными потребностями в различных приложениях (биология и химия) и с трудоемкостью составления программ. 7.5.2. Управляющие структуры в экспертных системах Заранее ясно, что управляющие структуры экспертных си- стем (ЭС) и процедурных программ (ПП) должны сильно раз- личаться. В ЭС управление является “открытым”. Правило может быть вызвано в любой момент вне зависимости от дру- гих правил в базе фактов, описывающей данную конкретную ситуацию. Происходит чередование циклов выбора и выполне- ния правил, а после каждого цикла все перестраивается,
422 ГЛАВА 7 порядок выполнения правил определяется динамически. В ПП управление сильно локализовано. Основным средством управле- ния является последовательный порядок выполнения инструк- ций, таких, как ЕСЛИ-ТО-ИНАЧЕ1, ДЕЛАТЫ, ПОВТОРЯТЬ ПОКА, которые работают с небольшой, частью параметров, опи- сывающих данную ситуацию. Ход выполнения инструкций го- раздо меньше связан с данными, небольшие изменения во вход- ных данных, как правило, мало влияют на выполнение про- цедуры. В ЭС информация легко доступна. Способ ее использо- вания неявно подразумевается и не определяется содержимым Таблица 7Л. Сопоставление ЭС и ПП Знания Управление Вывод Процедурные про- граммы (ПП) Экспертное системы ОС) Кодирован- ные инструк- ции Данные правила и факты Кодированные инструкции Данные в форме метаправил- Черный ящик Доступный, явный, прозрачный правил. Этим занимаются метаправила и интерпретатор. Об- ратная ситуация наблюдается в ПП. Механизм управления прозрачен, а информация растворена .в самих процедурах и ис- пользуемых представлениях данных (табл. 7.1). Использование ЭС необходимо при наличии больших баз знаний, в то время как для решения локальных задач наиболее подходят процедурные программы. Этому не противоречит то, что в правых частях некоторых правил предусматривается вы- зов процедуры; Для сохранения основного принципа и преиму- ществ ЭС необходимо, чтобы такие процедуры не вызывали взаимно друг друга и всегда располагались в конце цепочки (в правой части правил). 7.5.3. Продукционные правила и процедуры. Примеры Два следующих примера иллюстрируют общий принцип ра- боты продукционных систем, причем в неблагоприятных слу- чаях, когда процедуры являются итерационными. Эти примеры являются классическими и показывают, что всегда можно, не вводя дополнительных переменных, четко разделить операции в элементарных модулях, выраженных в форме условных пра- вил. Во втором примере, где в отличие от первого все сделано
ЭКСПЕРТНЫЙ СИСТЕМЫ 423 для полного разделения правил и их управляющей структуры, мы приведем хорошо известное свойство продукционных систем. ’ ',' • /' - ; > Пример 1. Инверсия цепочки символов с помощью алгорит- ма Маркова. (RD (R2) (R3> wy ** у 1* X % % (R4) х% (R5) % (R6) X ^х Символы #= и % являются управляющими и не могут заме- щаться. хну могут унифицироваться с любой непустой цепоч- кой символов. Список правил упорядочен сверху вниз. Правило (R5), которое определяет пустое действие, отмечает конец про- цедуры. Инверсия цепочки символов слова МОТ для предыдущей си- стемы Маркова: мот н* лют (R6) Н* 0ТЛ1 (RD Н* Х0ТЛ1 (Й6) >-> ТЛЛ1 (RD н* /Т#0Л1 (R6) • н» (R6) Н» НТХОЛ! (R2) 1-» ТИхОЛ! (R4) J—* ТМ0Л1 (R3) I-*TOKXM (R4) М ТОМИ (R3) Н- ТОМИ (R4) Н* TOM (R5) I I II ..... II I 11 При Выполнении этой процедуры берутся последовательно все символы цепочки и помещается слева от уже инвертирован- ных, а затем удаляются управляющие символы. Пример 2. Имеются три следующих правила, в которых че- рез Cl, С2 и СЗ обозначены произвольные последовательности точек, возможно пустые [Post, 1936]: (Правило/) //С1/С2/->/С2/ (Правило г) /С1/С2/->/С1/С2// (Правило т) /- С1/С2/СЗ/1С\1С2[С2С31
424 ГЛАВА 7 Символ / является незамещаемой константой. Входная по- следовательность имеет вид /..../••../ р точек q точек Эти три правила выполняют умножение двух целых чисел р и q, представленных в единичной системе. В данном случае пра- вила унифицированы с входной последовательностью в произ- вольном порядке. Кроме того, они рассматриваются как продук- ционные, и унификация должна производиться с их левыми частями (разд. 7.3.4). Таким образом, если входная последова- тельность имеет вид-/.../..../, то последовательно получим с помощью правила i :/.../....// с помощью правила т (СЗ — пустая) с помощью правила т :/./..../......../ с помощью правила т ........../ и с помощью правила f :/.........../ Замечание. С момента появления информатики мы привыкли мыслить в терминах процедур, а_ не в терминах перезаписи. По- этому не удивительно и заранее ясно, что продукционные си- стемы для нас в некотором роде чужеродны. Но как вы думае- те, не напоминает ли приведенный выше пример манеру счета маленьких детей? В обоих приведенных примерах механизм вычислений пред- ставляется громоздким. Более предпочтительным был бы фор- мализм языков программирования, так как эти ситуации яв- ляются явно алгоритмическими. В отличие от этого формализм продукционных правил, представляющий собой множество не- упорядоченной информации, обладает преимуществом, которое । • заключается в повествовательном типе формулировок, незави- симых одна от другой, как в случаях утверждения наблюдаемых фактов или правил решения математических теорем, граммати- ческих правил, постановки медицинского диагноза, химических Исследований, разработке фюзеляжей самолетов, электронных схем (разд. 7.2). И не исключено, что после определенного чис- ла попыток будет сформирован пакет правил и оформлен в виде законченной процедуры. 7.5.4. Производительность экспертных систем Формализм продукционных правил представляет собой не что иное, как внешнее представление знаний. Большая часть систем “компилирует” базу правил, чтобы получить эффектив-
ЭКСПЕРТНЫЕ СИСТЕМЫ 425 ное внутреннее представление, которое выражается в структу- рировании знания путем группировки в списки правил и посы- лок (как в Лиспе). Мы опишем две такие системы: POLITICS, разработанную Дж. Карбонеллем (1978) и использующую структуру вложенных правил, более богатую чем исходный формализм, и PROSPECTOR (Duda, 1980), использующую мультиграфы. Отметим также машины вывода OPS и TANGO, которые интересны тем, что применяют другие пути оптимиза- ции выполнения правил с помощью их внутреннего представле- ния с уменьшением времени вычислений за счет использования большего объема памяти. В обеих системах интерпретация усту- пает место компиляции, так как. облегчается определение фазы выполнения правил. Важно отметить, что структуризация зна- ний возлагается на систему, поскольку в общем случае она пре- терпевает глубокие изменения при изменении базы правил. В последнее время некоторые специалисты по информатике используют моделирование с помощью сетей Петри (Petri, 62). Между этим моделированием и внутренними представлениями в экспертных системах существует глубокая связь. В частно- сти, “предикатные” сети Петри являются не чем иным, как пов- торным открытием продукционных систем, основанных на ло- гике первого порядка. Отметим также, что модульность систем правил является существенным показателем производительно- сти систем. Действительно, активизация правила происходит ассоциативным образом, а не в порядке, строго заданном про- цедурой. Правила активизируются и, возможно, выполняются, активизируя тем самым новые правила, и т. д. В общем случае, поскольку могут быть выполнены сразу несколько правил и все, кроме одного, должны ждать своей оче- реди, а также поскольку каждое правило может требовать вы- полнения нескольких заданий, задания' обычно помещаются в очередь в “записную книжку” (агенда). Записная книжка пред- ставляет собой структуру данных, доступ к элементам которой регулируется с помощью приоритетов или, в более общем слу- чае, предикатов. Нет необходимости рассматривать случаи, ко- торые не соответствуют данной ситуации (инструкции и тесты в классическом программировании). Базой фактов или базой данных вызываются только те правила, которые нужны. Для различных данных также весьма различны выводы и решения. Представляется, что это должно быть непременным условием высокой производительности. Не следует обвинять случай, если сам человек не заботится о правильном построении алгоритма. Даже для такого тривиального случая, как умножение двух чисел, мы всякий раз учитываем имеющиеся данные: более длинное число пишем вверху, кроме тех случаев, когда оно
426 . ГЛАВА 7 содержит нули, единицы или повторяющиеся цифры, а более ко- роткое — внизу, если это возможно. Практика показывает, что отладка правил осуществляется просто и быстро. Всего лишь несколько минут требуется после обнаружений ошибки при выполнении правила на ее исправле- ние и/или Добавление нового правила. В отличие от этого в программе-обнаруженная ошибка не всегда может быть легко исправлена из-за “системного эффекта”, связанного с последова- тельным выполнением инструкций. На исправление ошибки в этом случае может потребоваться, например, несколько часов. Она должна выполняться обязательно программистом, который в данном случае выступает в роли дорогостоящего и медлитель- ного посредника между экспертом и программой. Структурированные правила в системе POLITICS Жесткая структура ЕСЛИ-TO, использовавшаяся до сих пор, может быть легко дополнена и преобразована в структуру ЕСЛИ-ТО-ИНАЧЕ, а также использоваться во вложенных структурах ЕСЛИ. Рассмотрим это решение ниже. Его очевид- ное преимущество состоит прежде всего в том, что условия выполнения приближаются к собственно действию, а также ста- новится более экономной запись посылок, общих для несколь- ких ситуаций. Подобные системы были предложены И. Голстей- ном (1977) и Дж. Карбонеллом (1978). Например, программа Карбонелла POLITICS вызывает пра- вила по их контексту, используя спочерк» (Schank, 77) как результат исследований свойств естественных языков. Затем вы- полнение Осуществляется много раз. Цель системы POLITICS — моделирование поведения человека в различных политических ситуациях со своими предубеждениями и мнениями. Ниже показана форма представления внутренних правил этой си- стемы: ЕСЛИ У передвигает свои войска к границам X и 1СЛИ X — малая страна и У— большая страна и ЕСЛИ X втянута в военный конфликт и нуждается в помощи и победа X помогла бы У в достижении своих собственных целей То цель Удвоенная помощь X ИНАЧЕ ЕСЛИ главной задачей У Является расширение своего политического влияния ТО цель У=завоевать X
ЭКСПЕРТНЫЕ СИСТЕМЫ 427 Присутствие мине- рала порфирной меди типа А Глубинное окружение И Началь- ные ^-Вулканические остатки -Протектони чес кое месторож- дение благоприятный уровень эрозии Рис. 7.13. Часть сети выводов, образованная интерпретатором системы PROSPECTOR из набора классических продукционных правил. Стрелки указывают на предположения, позволяющие получить заключение. - факты Семантическая сеть системы PROSPECTOR Система PROSPECTOR предназначена для оказания Домощи при исследованиях в горной промышленности. Внутреннее пред- ставление правил в ней немного отличается от представления в предыдущей системе и является более эффективным. Для получения выводов здесь используется граф, вершинами кото- рого являются элементарные предложения. Правило представ- ляет собой подмножество дуг, связывающих вершины. Подмно- жество помечено И для посылок одного и того же правила, ИЛИ для идентичных заключений, получаемых с помощью не- скольких правил (рис. 7.13). Последовательные выводы из начальных фактов получаются очень просто с помощью переноса указателя в этом графе. Оп- тимизация достижения искомой цели (конечная вершина графа) производится с помощью классических методов, применяемых в искусственном интеллекте: поиск по дереву И-ИЛИ, алгоритм продвижения A* (Nilsson 1980) (гл. 2). Эти внутренние представления очень близки к семантиче- ским сетям и фреймам, используемым при описании естествен- ного языка (Minsky, 1975, Winograd, 1982, Pitrat, 1982).
428 ' ГЛАВА 7 Связь описываемых систем с сетями Петри В 1962 г, Петри предложил, а в 1970 г. Холт развил общее представление процессов в форме графов. Холт назвал это представление «сетями Петри». Такие сети являются ориенти- рованными графами, вершины которых представляют собой либо «позиции» (обозначаемые окружностями), либо «пере- ходы» (обозначаемые вертикальными отрезками). Позиций мо- гут содержать «жетоны». Если все позиции, предшествующие Рис. 7.14. Пример сети Петри. Выполнение Т1 включает в работу Р2 и РЗ. Затем выполнение Т2 й ТЗ включает в работу Р4 и Р5, но только один из, них может быть актйвным. Затем сеть возвращается в начальное состояние. переходу, содержат жетон, то такой переход называется актив- ным. В этом случае ой выполняется, а каждая предыдущая пози- ция теряет жетон и передает его следующей позиции (рис. 7.14) . Очевидно, что графы переходов, кай й конечные автоматы, являются частными случаями сетей Петри. Преимущество по- следних заключается В том, что они представляют не только сам процесс, но также и его управление, элементами которого являются жетоны и выполняемые правила. Они позволяют так- же моделировать процессы параллельной обработки и синхро- низации, что является основой обработки информации, в частно- сти для систем с продукционными правилами, Можно отметить еще два полезных свойства сетей Петри: 1) Выявление возможности конфликта между правилами (воз- можность одновременного выполнения правил). 2) Внутреннее представление набора правил Для интерпрета- тора с целью оптимизации времени решения. Зисман (1978) предложил следующую модификацию набора правил Для обращения цепочки символов, приведенную в разд. 7.5.3. В правой части каждого правила указывается пра- вило, которое система попытается выполнить после данного пра-*
ЭКСПЕРТНЫЕ СИСТЕМЫ 429 вила: (Р1) Ф -+ Д (Р4) (Р2) ху -* Ф х Д (Р2) (РЗ) ->=/=л(Р1) (Р4) =#= -Д(Р4) Отметим, что в такой записи один из символов можно; не указывать и число правил уменьшается на два. Представление Рис. 7.15. Представление системы продукционных правил в форме сети Пет- ри. Для простоты переходы не указаны, имеются два типа жетонов:. <исти-. на» V и «ложь» F в зависимости от истинности левой части правила. этого набора правил для интерпретатора в форме- сети полу- чается сразу же (рис. 7.15) . Очевидно, что представление, в ко- тором стрелки соответствуют обычной последовательной пере- даче управления в программах и условным переходам, должно предназначаться только одному интерпретатору. Оно далеко от идей продукционных систем и от возможностей модульного про- граммирования, Оно великолепно оправдывает себя в качестве внутреннего представления и с небольшими модификациями было использовано под именем ATN (Woods, 1972) для ана- лиза письменных текстов (Kayser, 1981). 7.5.5. Итоги сопоставления процедурного и декларативного подходов Отметим в заключение, что фундаментальное различие ме- жду обычными программами и системой правил заключается не в процедурном характере первых и более или менее декла- ративном вторых, но главным образом в том, что во втором случае структура управления полностью отделена от информа- ции, вводимой в форме правил, и поэтому эти правил^ могут вводиться в беспорядке. В данном случае существенным свой- ством является отсутствие упорядоченности. Оно определяет
430 ГЛАВА 7 действительно декларативный язык, основанный на продукцион- ных правилах или других логических построениях. Практиче- ский интерес представляет его абсолютная модульность (неза- висимые единицы информации, связь между этими единицами осуществляется только с помощью базы фактов, отмена упоря- доченности, возможность возвращения назад при выполнении правила). 7.6. Различные типы знаний и их представления В настоящее время целью исследований в области искус- ственного интеллекта является создание таких систем, которые, е одной стороны, могут использовать большое количество зна- ний, передаваемых им специалистами, а с другой — способны вступать в диалог и объяснять свои собственные выводы. Это предполагает наличие эффективного управления большой по объему и хорошо структурированной базой знаний, строгое раз- граничение между различными уровнями знаний (разд. 7.6.1), наличие множества удобных представлений для правил, схем предикатов или прототипов (разд. 7.6.2) и четко определенный процесс обмена информацией между различными источниками. Наконец, необходимо, чтобы система знала, что она знает. Если попытаться провести аналогию с людьми, то подобное ме- тазнание означает постоянное использование в течение жизни информации о каждом прожитом дне. Если, например, вы за- были имя приятеля, встреченного на улице, то ваше метазнание состоит в том, что либо вы его имя знали, но забыли, либо этого имени никогда не знали. Впрочем, мы постоянно исполь- зуем важные эвристические правила, основанные на подобном метазнании, такие, как «если бы это была правда, то я бы это знал». Они зависят от двух важных параметров: значимости имеющего к ним отношения факта и степени нашей собствен- ной компетентности в данной области. В действительности каж- дое человеческое знание сразу же требует метазнания, связан- ного с тем местом, которое мы отводим данному знанию в ряду другой информации, как мы к нему относимся, для каких целей оно нам полезно, к какому семейству принадлежит. Все эти мо- менты рассматриваются в следующих разделах, посвящённых описанию реальных информационных систем. 7.6.1. Различные типы знаний Выделим восемь основных типов знаний по следующим при- знакам.
ЭКСПЕРТНЫЕ СИСТЕМЫ 431 ,J) Базовые элементы, объекты реального мира. Они связаны с непосредственным восприятием, не требуют обсуждения.и дог бавдяются к нашей базе фактов в том виде, в котором они по- лучены. < 2) Утверждения и определения. Они основаны на • ба-» зовых элементах и заранее рассматриваются как досто- верные. 3) Концепции. Они представляют собой перегруппировки или обобщения базовых объектов. Для построения каждой концеп- ции используются свои приемы. Например, в системах МЁСНО (Bundy, 1979) или AM (Lenat, 1977) они построены на основе примеров, контрпримеров, частных случаев, более общих или аналогичных концепций. 4) Отношения. Они выражают как элементарные свойства базовых элементов, тац и отношения между концепциями. Кроме того, к свойствам отношений относятся их болыпёе или меныпее правдоподобие, большая или меныпая связь с данной ситуа- цией. Еще раз отметим,что представление знаний, в экспертных системах близко к моделям, используемым в базе данных,. Таким путем построена реляционная, (обобщенная) мо- дель базы данных в системах OPS, PROLOG, SNARK и TANGO..,. Пара понятий. «свойство — значение^ (relationship entity) хорошо известна в семантических сетах; фреймы и скрипты яв- ляются не-чем цным, .как наиболее простыми бинарными отно- шениями., Некоторые экспертные системы (INTERNIST, ВАО* BAB, SPHINX) в качестве базы фактов используют уже базы существующих данных. ' > 5) Теоремы и правила перезаписи, Они являются-частным случаем продукционных правил с вполне определенными свой- ствами. Теоремы не представляют никакой пользы без эксперт- ных правил их использования. Явное присутствие теорем в экс- пертных Системах представляет главное отличие’от систем уп- равления классическими базами Данных (СУБД), в которых они либо отсутствуют, либо программируются. -Модификация или добавление новых теорем является весьма трудоёмкой, хотя и необходимой процедурой, так как нужйо обеспечить хорошее структурированное управление базой данных и оптимизировать получение ответов (Gallaire, 1978). 6) Алгоритмы решений. Они необходимы для выполнения определенных задач. Во всех случаях они связаны со знанием особого типа, поскольку определяемая ими последовательность действий оказывается оформленной в блок ,в строго необходи- мом порядке в отличие от других типов знания, где элементы
432 ГЛАВА 7 информации могут появляться и располагаться без связи друг с другом. Очевидно, что очень трудно работать с длинными процеду- рами, состоящими из большого числа различных действий. Ис- пользование чистых алгоритмов ограничено очень частными случаями, большая часть которых имеет дело с обработкой чис- ловой информации. Человек же должен уметь работать со мно- гими другими типами информации и оказывается, что ЭВМ в отличие от простого калькулятора может помочь человеку в подобных неалгоритмических ситуациях. 7) Стратегии и эвристика. Этот тип представляет собой врожденные или приобретенные правила поведения, которые позволяют в данной конкретной ситуации принять решение о не- обходимых действиях. Он использует информацию в порядке, обратном тому, в котором она была получена. В качестве при- мера можно привести рассуждение типа: «Я знаю, что это действие приводит к такому-то результату (информация типа 4), поэтому, если я хочу получить именно этот результат, я могу рассмотреть это действие». Человек постоянно пользуется этим типом знаний при восприятии, формировании концепций, реше- нии задач и формальных рассуждениях. Появление экспертных систем связано с необходимостью принятия в расчет именно этого фундаментального типа чело- веческих знаний. 8) Метазнание. Без сомнения оно присутствует на многих уровнях и представляет собой знание того, что известно и опре- деляет значение коэффициента доверия к этому знанию, важ- ность элементарной информации по отношению ко всему мно- жеству знаний. Кроме того, сюда же относятся вопросы орга- низации каждого типа знаний и указаний, когда и как они могут быть использованы. Этому вопросу посвящен разд. 7.7, в котором* показано, как он решается в конкретных систе- мах. 7.6.2. Различные представления знаний в существующих системах Приведем краткий список наиболее распространенных в на- стоящее время методов. Фундаментальное различие между ними состоит в простоте модификации знания. В таблице ниже они приведены в порядке от наиболее процедурного (наиболее за- стывшего, структурированного) до наиболее декларативного (наиболее открытого, свободного, неупорядоченного). Такая
ЭКСПЕРТНЫЕ СИСТЕМЫ 433 классификация является несколько грубой, но правильно отра- жает идею. Методы Раздел в книге Библиографическая ссылка Процедурные «закрытые» Декларативные, «открытые», «неупорядочен- ные» 1. Конечный авто- мат 2. Программа 3. Скрипт (схема) 4. Семантическая сеть 5. Фрейм (прототип) 6. Графы, сети 7. Формальная спе- цификация 8. Исчисление пре- дикатов 9. Теоремы, прави- ла перезаписи 10. Продукционные правила 11. Предложения на языке 5.1 (Markov, 1954) 5.1 (Meyer, 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) 6.1 (Huet, 1978) 2.3 Shortliffe, 1976) (Pitrat,, 1981) Напомним, что конечные автоматы, программы, исчисление предикатов и системы с продукционными правилами с теорети- ческой точки зрения эквивалентны друг другу, поскольку их в принципе можно свести к универсальной машине Тьюринга, хотя их «эксплуатационные характеристики» сильно разли- чаются. Такие формальные понятия, как фреймы, скрипты, семанти- ческие сети, возникли из реальных потребностей искусственного интеллекта и приносят большую помощь в понимании языка (Charniak, 1978; Cordier, 1979; Pitrat, 1982). Фреймы (или прототипы) предложены Минским в 1975 г. и представляют собой сложные структуры данных, описывающих какую-либо типичную ситуацию, напрймер ожидание в аэро- порту или участие в семейном обеде. Фрейм состоит из позиций (слотов) для размещения объектов, характеризующих данную ситуацию. Позиция может быть передана другому фрейму. Кроме того, он содержит информацию о выполняемых действиях (заполнение позиций, присвоение значений по умолчанию, акти- визация), о том, как следует поступать в типичных и нетипич- ных случаях, о влиянии соседних фреймов. Скрипт или схема представляет собой описание стереотип- ного сценария действий с участием определенных объектов. Скрипты связаны с текущей культурой и необходимым для
434 ГЛАВА 7 понимания таких предложений, как «Я вошел в ресторан, офи- циантка принесла мне меню» (Schank, 1975). Они могут вызы- вать другие скрипты и обладают большими, нем фреймы, возможностями для описания динамических аспектов зна- ния. , Семантические сети — это графы, которые часто представ- ляют собой объединение двух предыдущих понятий и объектом описания которых являются элементы окружающего мира и связи между ними. Они имеют много общего с реляционными моделями баз данных. Изображения и графы эффективно используются для дока- зательства теорем (Buthion, 1975), (Pastre, 1978). Они оказы- вают большую помощь в проверке отсутствия зацикливания этапов, в полном и эффективном хранении задачи в памяти, в организации ввода новых элементов. 7:6.3. Способы использования знаний и доступ к ним Имеются четыре способа использования, простой информа- ции в форме ; Р=><7- ' . /'" .. '<" Примером этого может служить «каждый человек ошибается». Самый непосредственный способ состоит в прямом использо-j вании его смысла в формулировках типа: < “Нечто ошибается, и я могу доказать, что это нечто т- чело- век”. Второй способ, использующий метазнание и обратный ход мыслей, состоит в следующем: > ' Г “Если я хочу доказать, что нечто ошибается, то возможная; подцель состоит в том, чтобы показать, что. это нечто —чело- век”. Оба первых способа используют модус поненс, два сле- дующих используют отрицание предложения q и модус толенс: а) “Если нечто не ошибается, оно не может быть человеком”, б) “Если я хочу доказать, что нечто не является человеком, то я могут попытаться показать, что оно не ошибается”. Отметим, что принцип решения и, в частности, использую- щий его язык Пролог применяют единый формальный подход к описанию этих способов вывода. С практической точки зрения использование информации за- висит от параметров, которые характеризуют ее правдоподо- бие. Каждая система обработки информации должна быть в со- стоянии ответить на такие вопросы, как: • Какая часть утверждения А является истиной? • С какой степенью уверенности эксперт согласен с заклю- чением?
ЭКСПЕРТНЫЕ СИСТЕМЫ 43 5 • Какова средняя вероятность достижения цели с использо- ванием Л? • В какой мере следует оказать предпочтение А перед дру- гими? Некоторые системы, основанные на продукционных прави- лах, используют процессы приближенного вывода, учитываю- щие эти обстоятельства. Системы, применяющие продукцион- ные правила, описаны выше. В следующей разделе показано возможное различие между этими системами и подходом к ре- шению тех же проблем с помощью логики первого порядка, от- мечены также преимущества и недостатки подобного моделиро- вания знаний. 7.6.4. Преимущества й недостатки продукционных систем Начнем с недостатков. Выделим из них три главных, с ко- торыми связаны определенные ограничения, лежащие в основе используемого формализма. Они относятся к концепции, фор- мулировке и использованию правил. 1. Трудность составления продукционного правила, соответ- ствующего элементу знания. Нужно, чтобы рассматриваемая об- ласть уже была достаточно изучена и установлены хорошие при- митивы и чтобы уровень детализации не был излишне подроб- ным^ иначе потребовалось бы иметь по одному правилу на каждую ситуацию и неясно, как человек смог бы разобраться в таком обилии информации. 2. Трудность записи правила. Единый формат записи ЕСЛИ- ТО-прйводит к громоздким выражениям в левой части и повто- рению тех же посылок в схожих ситуациях; с его помощью трудно выразить сложные правила. Но мы видели (разд. 7.5.4), что жесткий синтаксис, громоздкие записи представляют и оп- ределенные преимущества. Во всех случаях проблема «поймать знания> остается главной при написании экспертной системы. 3. Трудности использования. Связаны не с самими прави- лами, а с единой системой их связи. При этом база фактов иг- рает роль кратковременной памяти, которая реально смодели- рована в разработанной Ньюэллом (Newell, 1975) системе “познавательной психологии” PSC. В ней запрещен взаимный прямой вызов одного правила из другого, и она неудобна для выполнения алгоритмов в обычном смысле слова. Однако именно благодаря ей система в каждый момент времени точно знает, что она делает и что она знает. К преимуществам относится следующее. 1. Модульность. Системы устроены так, что каждая единица информации может быть удалена, изменена или добавлена
436 ГЛАВА 7 независимо от всех остальных. Знания вводятся неупорядоченно, как в словаре или энциклопедии. Практика показывает, что это является естественным способом пополнения своих знаний для эксперта. Как ни странно, многочисленные американские авторы (Дэвис, Ньюэлл, Куинлан, Стэфик) нарушают это правило, т. е. проблема реорганизации решается у них довольно плохо. 2. Модифицируемость. Если добавляется или модифицирует- ся какое-либо правило, то все, что было уже сделано ранее, остается в силе и к новому правилу не относится. Таким об- разом, каждое изменение обладает свойством аддитивности и локальности. В отличие от этого в процедурных программах подобные взаимодействия ограниченны, любая модификация является трудной и может привести к непредсказуемым последствиям. 3. Доступность чтения. • Для нас это преимущество, безусловно, имеет место. Как уже говорилось выше, наше собственное знание является мо- дульным, поэтому продукционные системы нам кажутся более близкими, более легкими для чтения. Этим преимуществом нельзя пренебрегать, поскольку подобные системы в первую оче- редь предназначены для врачей, биологов, архитекторов и т. д. Во многих областях реально существуют добавляемые знания и соответствующие базы правил. (Например, автоматизирован- ные экспертные обучающие системы.) • Для машины. Более простой проверке поддается база знаний, представленная в форме правил, а не в форме процедур. Противоречия или избыточность в действительности легко опре- деляется с помощью синтаксической обработки: ЛАВ->-С и АЛВ->ПС одновременно невозможны; из DAE^F^-G следует EAF-+G с помощью “подпо- сылки”; таким образом, первое правило является лишним. Может быть также обнаружена семантическая несогласован- ность: АЛВ-+С неприемлемо, если по определению и из свойств А и В с необходимостью А -> ~1В. 4. Способность к самообъяснению. Это свойство связано од- новременно и с правилами, и с их структурами внешнего управ- ления. Система легко прослеживает цепочку правил, которую она использовала для получения вывода, так же как и исполь- зовавшиеся метаправила.
ЭКСПЕРТНЫЕ СИСТЕМЫ 437 Однородное представление знания, определяемое установ- ленным форматом, разрешает создавать модели правил, кото- рые позволяют получить ответы на некоторые вопросы и преду- смотреть большую часть изменений в случае обнаружения ошибки в базе данных. 5. Эффективность. Практика доказала гибкость и компе- тентность таких систем, как MYCIN, PROSPECTOR и R1. Эти системы являются уже не лабораторными игрушками, а высо- копроизводительными устройствами. Они оказались достаточно эффективными и выдерживают сравнение с процедурными си- стемами во многих областях, примеры которых приведены, в частности, в работе (Rychener, 1978), Их структура управления позволяет принимать в расчет мно- гочисленные параметры, характеризующие ситуацию. Причина эффективности продукционных правил заключается в том, что эти правила учитывают конкретные данные в каждом случае. 7.7. Метазнание Метазнание представляет собой любое знание о знании. Оно является фундаментальным понятием для систем, которые не только используют свою базу знаний такой, как она есть, но и умеют на ее основе делать выводы, структурировать ее, абстра- гировать, обобщать, а также решать, в каких случаях она мо- жет быть полезна. Ввод знаний в систему является задачей не только специалистов в данной области, но и самой системы, которая должна управлять этим процессом. В разд. 7.7.1 рас- смотрены элементарные объекты метазнания, а в разд. 7.7.2 — стратегии и типы выводов. 7.7.1. Метазнание объектов окружающего мира Решение проблем, охватывающих большие объемы знаний, требует умения обращаться с очень сложными и весьма раз- личными типами данных как по содержанию, так и по взаимо- связи с другими элементами системы. Требуемая информация должна не только присутствовать в программных комментариях и в мыслях разработчика, но и быть доступной самой системе. Таким образом, с каждым элементарным объектом может быть связано смысловое значение — концепт. Например, в системах МЕСНО и MYCIN каждый из концептов содержит следующую информацию: а) описательную часть, которая уточняет характеристики и структуру данных; б) указатель на все известные примеры концепта;
438 ГЛАВА 7 в) связи с другими концептами; ’ ! г) указатель в иерархии схем на группу концептов того; Же се- мейства. Когда формулируется новое правило, которое содержит сло- во или группу слов, неизвестных системе, она их анализирует с помощью имеющихся концептов, используя контекст и после- довательность слов правила. Более того, если некоторые свой- ства известны из других примеров того же концепта, то система в состоянии запросить у пользователя уточнения этого сйой- с¥ва для данного случая. При необходимости она также обна- руживает нарушения связи между кОнцёптами. ‘ Подобные системы имеют возможность фиксировать все кон- цепты одного и того же иерархического уровня, изменение, вне- сенное экспертом в один из них, а также оценивать важность изменений, внесенных в базу данных, если в определенную структуру добавляется новый пример. Кроме того, продукционные правила могут характеризовать- ся моделями правил (описанными в разд. 2.3): Эти модели соз- даются и управляются системой и учитывают периодичность ис- пользования правил. Они занимаются проверкой соответствия межДу новым правилом и базой, кроме того, именно они указы-' вают эксперту на главные тенденции множества правил даже В том случае, когда самих правил эксперт не знает: Именно они обогащаются с каждым новым примером по мере роста мно- жества правил. В системе МЕСНО, например, сами формули- ровки задач связаны с формой метазнания. Система постоянно пытается распознать в формулировке стандартную ситуацию. Когда ей это удается, она дополняет множество фактов всеми физическими гипотезами, справедливыми для данного случай. 7.7.2. Метазнание стратегий . В продукционных системах стратегии также представлены в форме метаправил, поскольку они затрагивают сами правила. Они являются изолированными и доступными для системы. Эвристические законы управления поиском решения используют эти метаправила в качественном и декларативном виде, вместо того чтобы использовать количественные оценки. С примене- нием числовых оценочных функций связан риск ошибки: они плохо читаемы, отражаемый ими частичный порядок приводит к сложным вычислениям, любая модификация приводит к воз- можности появления ошибки. Стратегии, заданные в форме метаправил, являются более четкими и Определенными. Выводы метаправил указывают на действия, которые необходимо предпринять в рассматриваемой
ЭКСПЕРТНЫЕ СИСТЕМЫ 439 ситуации. Таким образом они реализует полезный потенциал, заключенный в множестве правил, и дают двойной эффект: 1) исключают определенные правила, не подходящие к дан- ной ситуации, и тем самым уменьшают дерево поиска; 2) осуществляют частичную классификацию других прарил, частично упорядочивая ветви дерева поиска. Конечно же, можно и дальше увеличивать число уровней знания, строя дополнительные этажи над уже имеющимся и увеличивая это .сооружение по мере роста интеллектуальности самой системы. При этом мы добиваемся большей общности, так как тот же интерпретатор получает возможность работать в различных областях, а также большей устойчивости, так как более развитые модели не чувствительны к изменениям базы элементарных знаний. По этой причине система CRYSALIS (Engelmore, 1979) включает три отдельных уровня правил. Она предназначена для анализа протеинов, и размеры ее пространства поиска очень важны с комбинаторной точки зрения. Классический подход в данном случае неприменим. Правила сначала группируются в подмножества (неразобщенные). Каждое подмножество пред- назначено для определенной обработки и используется при вы- полнении соответствующих условий. Соответствие между Конеч- ными классами й подмножествами правил устанавливается с по- мощью цравил заданий, которые составляют второй уровень знаний. Эти правила определяют, как следует выполнить дан- ное задание наилучшим образом. Наконец, третий уровень относится к мета-метаправилам, ко- торые определяют подцели и выражают их в зависимости от правил задания. В примере, приведенном ниже, показан порядок выполнения системой одного из правил задания, в посылках которого со- держится заданно ПРОВЕСТИ-МЕЖДУ-ТОЧКАМЙ, а также указывается, какому правилу должно быть отдано предпочте- ние при выполнении задания: ЕСЛИ два гипотетических элемента протеина а и Ь уже размещены с Коэффициентом правдоподобия для каждого из них не менее 0,4 И ЕСЛИ число остаточных элементов в последовательности ab не более 5 ТО использовать правила, предназначенные для задания ПРОВЕСТИ-МЕЖДУ -ТОЧКАМИ Такой способ группировки правил обладает преимущест- вами и недостатками. Преимущество заключается в том, что
440 ГЛАВА 7 управление осуществляется в самом правиле, каждое правило содержит собственные соображения по применению (см. систему AM Лената (1977)). Такая же руководящая идея (план) может быть легко обнаружена и в семействе правил. Недостаток за- ключается в том, что посылки правил могут оказаться очень громоздкими. Однако существует и альтернативный путь решения этой про- блемы, важной с точки зрения эффективности и ясности систем. Он состоит в разрешении все более и более сложных структур посылок в правилах. Эти вопросы затрагиваются при рассмот- рении внутреннего представления наборов правил, описанного в разд. 7.5.4. Работа Виленски (1981) «Метапланирование» посвящена управлению планами действий независимо от области примене- ния. Он предложил метастратегии для разрешения конфликтов между планами, а также рассматривает рекуррентные и кон- курентные планы. Одно и то же знание представлено в декла- ративной форме в двух различных программах РАМ и PANDORA. Одна из них составляет планы для решения задач, другая должна его понять и составить планы для участвующих в действии объектов. 7.8. Заключение Итак, системы, использующие декларативные базы данных, а также продукционные правила, отношения, прототипы, схемы и семантические сети для представления и использования со- держащихся в них знаний, открывают действительно новый под- ход к программированию, который заключается в возможности передачи от человека к программе наиболее простым образом знаний неупорядоченной структуры в произвольных областях. Взаимодействие с экспертными системами происходит на декла- ративном языке, который по сути предназначен для выражения знаний. Подобный подход представляется совершенно необхо- димым в области искусственного интеллекта, и на этой основе уже созданы эффективные системы (разд. 7.2 и 7.3). В разд. 7.4 и 7.5 показано, что подобный подход имеет два преимущества. Во-первых, полная независимость элементарных фактов знания, представленных в соответствующей форме, и, во-вторых, единый и жесткий синтаксис формы. Эти свойства позволяют хорошо организованной системе иметь общее пред- ставление о содержании своего знания, а также анализировать и структурировать его с помощью метаправил, правил или схем. Крайняя простота представления знаний не ставит ограни- чений перед программистом или специалистом, скорее наобо-
ЭКСПЕРТНЫЕ СИСТЕМЫ 441 рот, она требует от нас мыслить наиболее естественным обра- зом. Среди многих преимуществ подобного представления зна- ний, как мы видели в разд. 7.6 и 7.7, находится и обсуждаемое в современных работах одновременное решение задач и пони- мание естественного языка. Кроме того, экспертные системы предоставляют в наше распоряжение специализированные базы знаний: система PROSPECTOR охватывает знания в области геологии, MYCIN используется для обучения в медицине, a PECOS оказывает по- мощь в программировании. Наконец, при изучении этих систем становится очевидным, что существенной особенностью нашего интеллекта является способность управлять большим объемом элементарных состав- ляющих информации. Поэтому одним из предметов исследова- ний в области искусственного интеллекта еще долгое время бу- дут три фундаментальные проблемы, уже встречавшиеся при рассмотрении продукционных систем. Они имеют отношение к примитивным действиям, связанным с обработкой любой ин- формации: сформулировать — запомнить — использовать • Сформулировать Мы постоянно оказываемся в новых ситуациях. Приходящий к нам опыт заключается прежде всего в способности абстраги- роваться от этих ситуаций и описать их с помощью общих пред- ставлений, которые могут быть элементами обычного языка. Однако во многих областях этого недостаточно, так как обычно имеется много неточностей или делается слишком много ссы- лок на обстоятельства, не связанные с данной конкретной си- туацией. Каждый специалист постоянно совершенствуется в своей области и вырабатывает собственный жаргон. В некоторых книгах часто встречаются советы описывать ситуацию и предпринимаемые действия с очень высокой сте- пенью детализации, однако в этом случае трудно достигнуть нужного эффекта обобщения. Становится сложно использовать всю накопленную информацию. Автоматический поиск концептов, полезных в примитивных ситуациях, безусловно, возможен (как это возможно и для ода- ренных личностей), однако, с нашей точки зрения, в области искусственного интеллекта в ближайшем будущем этого ожи- дать не следует. • Запомнить Запоминание информации технологически ограничено и связано прежде всего с эффективностью используемой информа-
442 ГЛАВА 7 ционной системы. Если для удобства работы требуется, чтобы элементы знания вводились в продукционные системы неза- висимым образом, как это делается в словарях, то храниться они должны в упорядоченном виде. Правила, сгруппированные в древовидные структуры, представляют собой сеть, узлы которой являются моделями, содержащими описание пра- вил. Кроме того, необходимо, чтобы система умела инвертировать правила, т. е. умела определять, в каких ситуациях данное пра- вило окажется полезным. Инверсия — непростая операция, свя- занная с обобщением, и с ее помощью осуществляется узнава- ние концептов, кратких дескрипторов всех возможных ситуаций в процессе обработки информации. Для того чтобы уменьшить издержки, связанные с инверсией, иногда допускается излиш- ний расход памяти. Ясно, что в интеллектуальных, эффективно работающих системах одна и та же информация может быть представлена в нескольких различных форматах (гл. 9). • Использовать При Доступе к информации возникают проблемы распозна- вания форм, которые использовались на предыдущем этапе дЛя образования древовидных структур, прямых и инверсных эле- ментарных Правил. Управление поиском идет с помощью мета- правил и в более общем виде с помощью моделей знаний высо- ких уровней, которые позволяют проводить распознавание в за- висимости от стратегии, связанной с контекстом, и задерживать выбор на возможно более долгое время. Многие экспертные системы, основанные на продукционных правилах, в частности GRYSALIS, ARGOS II, POLITICS, OPS, TANGO, SNARK, уже содержат элементы ответов на поставлен- ные три вопроса. Этому способствует прежде всего четкое раз- деление между самим знанием и обработкой с помощью итера- ционной интерпретации, которая позволяет четко разделить и анализировать эти три проблемы. Таким образом, экспертные системы предлагают качественно новый подход к программированию. Из двух главных управляю- щих структур — проверки и цикла — они оставляют только пер- вую, которая позволяет довольно легко формулировать элемен- тарные факты для интерпретатора, а также повторять циклы выполнения проверок и обработку. Таким образом устраняются два неизбежных недостатка классического программирования: последовательный порядок выполнения операций и приказной характер элементарных инструкций. Вместо инструкций — не- упорядоченные отдельные данные, порядок использования ко- торых заранее Нельзя предвидеть.
ЭКСПЕРТНЫЕ СИСТЕМЫ 443 Но в еще большей степени экспертные системы позволяют обойтись без, всех средств произвольных языков программиро- вания. Действительно, пользователь, эксперт по мере потребно- стей определяют собственные концепты, специальную термино- логию, выбирая подходящий для себя уровень детализации, при- годный для решения поставленных задач. В отличие от этого и к большому неудобству исследователей в области искусственного интеллекта современные языки про- граммирования являются языками слишком низкого уровня. Простое действие, элементарный факт чаще всего оказываются растворенными в большом числе инструкций, и каждая их мо- дификация оказывается трудоемкой и опасной. Таким образом, основной целью исследователей в области искусственного ин- теллекта является создание форм представления и интерпрета- ции знаний типа экспертных систем, которые можно назвать языками будущего. Им присущи абсолютная модульность, чет- кость, полное разделение между данными и управлением, болрг шие возможности по обработке информации, эффективное взаи- модействие между человеком и программой, возможность со- ставления программного обеспечения очень больших объемов, имеющего не обязательно алгоритмическую природу. ' Для того чтобы подобные системы были полезны и за пре- делами разработавших их лабораторий, осталось выполнить оп- ределенный объем работ. В частности, необходимо решить две проблемы. Во-первых, исследовать формальные законы языков, на которых выражаются правила и метаправила, их синтаксис и семантику, типы логических связей, основные примитивы. Не- обходимо выполнить работу, аналогичную той, которая уже про- делана для классических языков программирования, но с уче- том интерпретаторов и современных ЭВМ. Во-вторых, вывести работы в области искусственного интел- лекта за пределы университетских лабораторий, в частности для экспертных систем разработку эффективных интерпретато- ров и .механизмов вывода, которые должны найти новых пользователей, как это было при разработке компилято- ров. Экспертные системы доказали возможность совершенно но- вого подхода к развитию информатики. Он заключается в фор- мализации нашего знания с помощью декларативных независи- мых понятий, в организации четко определенных структур, таких, как продукционные правила, фреймы, скрипты и семанти- ческие сети, с помощью которых можно подучить изящное решение поставленных задач. Для таких систем характерны простота использования, эффективное представление знаний й
444 ГЛАВА 7 отсутствие трудностей, присущих программированию на клас- сических языках, что позволяет взаимодействовать с такими си- стемами с помощью обычных слов. 7.9. Конкретный пример машины вывода экспертной системы Ограничимся случаем, когда все факты из базы фактов имеют вид a R Ь, где а и b — две константы (произвольные слова), независимые друг от друга и связанные в базе фактов отношением /?, напри- мер “является”, “принадлежит к”, “равно”, “содержит”, “сле- / Определить подходящие факты и правила 2. Выдрать правило и попытаться еео выполнить в, выполнить, запомнить t________________________._____ Рцс. 7.16. Базовый цикл эксперной системы. дует” и т. д., которое определяется экспертом. Другими сло- вами факт aRb соответствует обычному логическому предложе- нию, которому можно присвоить значение “истина” или “ложь”, например “Анемона является двусемядольным цветком” или “Организм имеет грамположительный тип”. Аналогично каждое правило из базы правил имеет вид трип- лета (слово, отношение, слово) A Pi -> A qt, в котором посылки pi и следствия qi являются предложениями. Остановимся на препозициональной логике — логике нулевого уровня, не содержащей переменных. На этом уровне задача со- стоит в том, чтобы из начальных фактов и данных правил вы- вести новые факты, выполняя каждое правило из базы правил, посылки которого удовлетворяются. Следствия, полученные из правила, добавляются к базе фактов. Основным циклом является цикл, приведенный на рис. 7.16. В данном случае возможны две стратегии: • Движение по цепочке правил вперед. Начинают от из- вестных фактов, данных экспертом, и выполняют каждое пра.
ЭКСПЕРТНЫЕ СИСТЁМЫ 445 вило, посылки которого удовлетворяются, добавляя полученные фанты. Так продолжают до насыщения системы (отсутствия но- вых выводов). • Движение по цепочке правил назад. Начинают с поиска ответа на вопрос эксперта, предполагая, что число возможных ответов ограниченно. Целью является получение первого из них. Затем рассматривают все правила, имеющие отношение к этой цели. Если таковых не оказывается, то переходят к сле- дующей цели. В противном случае если в базе фактов все по- сылки удовлетворены, то цель достигнута, а если нет, то неиз- вестные посылки регистрируются как новые цели и все повто- ряется сначала. Таким образом доходят до цели из начальных фактов. Кроме того, система может задать вопрос эксперту, если в этом возникает необходимость в процессе вывода, свя- занная с отсутствием факта или невозможностью его использо- вания. Общая процедура является рекурсивной, поскольку про- верка факта происходит с помощью проверки правил, которые включают этот факт. На рис. 7.17 приведена рекурсивная функция ПРОВЕРИТЬ, вызываемая из главной программы в виде: Результат = ПРОВЕРИТЬ (Ь, БФ, БП) где b является иско- мой целью, БФ — начальная база фактов, БП — база пра- вил. Синтаксис правила имеет вид (Правило) =ЕСЛИ (посылка) ТО (следствие) (Посылка) . =(факт)/(факт) (посылка) (Факт) = (слово)/(слово) (Следствие) = (посылка) Функция ПРОВЕРИТЬ отыскивает значение истинности b продвижением по цепочке правил назад. Результат является бу- левой величиной (“истина” или “ложь”), зависящей от истин- ности величины Ь, Эта функция вызывает саму себя для про- верки совокупности целей. Функции ПРОВЕРИТЬ и ДОКАЗАТЬ работают с объектами трех типов: ПРЕДЛОЖЕНИЕ, ПРЕДЛОЖЕНИЕ-МНОЖЕ- СТВО и ПРАВИЛО. Каждый объект типа ПРАВИЛО обладает двумя свойствами: ПОСЫЛКИ (г) и СЛЕДСТВИЯ (г), кото- рые принадлежат к типу ПРЕДЛОЖЕНИЕ-МНОЖЕСТВО. Некоторые предложения отнесены к множеству ТРЕБУЕ- МЫЕ и могут напрямую запрашиваться экспертом. Функция
446 ГЛАВА 7 ВОПРОС (р) задает вопрос р и возвращает значения “истина” или “ложь” в зависимости от ответа эксперта. Истинность пред- ложения р можно доказать Тремя способами: Функций ПРОВЕРИТЬ возвращает булево значение Глобальные константы база правил: множество ПРАВИЛ требуемые множество ПРЕДЛОЖЕНИЙ Данные цель, база фактов: множество ПРЕДЛОЖЕНИЙ ( Цель рекурсивно выводится из базы фактов (БФ) и базы правил (БП) I с возможными вопросами к эксперту. переменная ok: БУЛЕВА; ой-«-ложь ЕСЛИ b е БФ ТО ok — истина {Ь уже установлено} КОНЕЦ ЕСЛИ {первый случай тривиального успеха} {Иначе проверяется, можно ли вывести} ПОВТОРЯТЬ ДЛЯ всех г е БП и Ь<= последовательность (г) ПОКА ой=ложь ой=ДОКАЗАТЬ (Посылки (г)) {Вызов функции ДОКАЗАТЬ, которая проверяет, что все посылки истинны. Это второй случай возможного успеха} КОНЕЦ ПОВТОРЯТЬ {иначе см. является ли b требуемым} ЕСЛИ ой=ложь и если b е требуемый ТО задать вопрос; ой-<-'оТвет (6) КОНЕЦ ЕСЛИ {во всех случаях успеха запомнить в БФ} ЕСЛИ ok = истина ТО БФ-»-БФи {6} КОНЕЦ ЕСЛИ Передать (b, ok) КОНЕЦ ПРОВЕРИТЬ Функция ДОКАЗАТЬ возвращает булево значение {Те же глобальные константы} Данные: В множестство целей ok истина ПОВТОРЯТЬ ДЛЯ всех ЬеВи ПОКА ой=истина ok -f- ПРОВЕРИТЬ (Ь) • КОНЕЦ ПОВТОРЯТЬ {необходимо, чтобы все цели В были доказаны} Передать ok КОНЕЦ ДОКАЗАТЬ Рис. 7.17. Пример из области логики предложений. • прямой проверкой БФ; • рекурсивным выводом с помощью БП: • прямым вопросом для р из множества ТРЕБУЕМЫЕ. Функция ПРОВЕРИТЬ представляется в виде последова- тельности, в которой обозначения принадлежности и примитивы высокого уровня (Меуег, 1978) имеют ясное и краткое пред- ставление. Ниже приведен пример программы для персональной ЭВМ экспертной системы нулевого уровня со следующим набором
ЭКСПЕРТНЫЕ СЙСТЕМЫ 447 правил (предложение aRb здесь выражено словами “на рас- тений-имеется цветок” и сОкр-ащено до “цветок”). а) ЕСЛИ цветок А зерно ТО явнобрачный Ь) ЕСЛИ явнобрачный Д голосемянный ТО пихта с) ЕСЛИ явнобрачный А 1-семядольный ТО моносемядольный d) ЕСЛИ явнобрачный А 2-семядольный ТО двусемядольный е) ЕСЛИ моносемядольный А ризома ТО ландыш f) ЕСЛИ двусемядольный ТО анемона g) ЕСЛИ односемядольный А-] ризома ТО лилия h) ЕСЛИ лист А~| цветок ТО тайнобрачный i) ЕСЛИ тайнобрачный А~| корень ТО мох j) ЕСЛИ тайнобрачный Д корень ТО папоротник k) ЕСЛИ И листья Д растение ТО таллофиты I) ЕСЛИ таллофиты Д хлорофилл ТО водоросль m) ЕСЛИ таллофиты А~| хлорофилл ТО гриб n) ЕСЛИ “) лист Д“| цветок А растение ТО колибацилла Если начальной базой фактов является: {корневище, цве- ток, односемядольный, зерно} и цель = гриб, то функция ПРО- ВЕРИТЬ выведет вопрос: таллофиты? (случай 3, система, должна спросить то, что она не может вывести). Если эксперт- дает положительный ответ, функция возвращает значение “ис-‘ тина”. Если цель = ландыш, функция ПРОВЕРИТЬ вызывает функцию ДОКАЗАТЬ для проверки посылок единственного пра- вила е), которое позволяет сделать этот вывод. К функции ПРОВЕРИТЬ обращаются для проверки первой подцели — од- носемядольные, которую можно осуществить, только используя правило с). Снова вступает в действие функция ДОКАЗАТЬ над данными {явнобрачный и 1-семядольный}. Первая цель дости- гается с помощью правила а), две посылки которого уже при- сутствуют в базе фактов (первый успех), в которую добавляет- ся понятие явнобрачный. Затем, поскольку “1-семядольный” известно, добавляется также моносемядольный. Углубляя рекур- сию, приходим ко второй посылке правила е), которая известна, и система выдает окончательный ответ “иртина”. Отметим, что окончательное определение способа использо- вания дерева возможных предложений происходит с помощью операции “принадлежит целям”. Если цель управляется как стек, действует правило “сначала в глубину” (см., например, версию для микроЭВМ, содержащую около 400 строк на Бейси- ке, в журнале BYTE, сентябрь 1981 или EARRENY, 1985).
448 ГЛАВА 7 Эффективность функции ПРОВЕРИТЬ можно повысить с помощью преобразования двух параметров — цели и базы фак- тов— в глобальные переменные с явным управлением из про- граммы. И наконец, для того чтобы не повторять бесполезные зада- ния, необходимо различать недостоверные и неизвестные факты. В частности, можно проверять негативные условия в правилах, находя недостоверные факты среди известных. Кроме того, не- трудно на нулевом уровне продвигаться по цепочке правил вперед. Тогда па мере продвижения по дереву поиска правила выполняются в зависимости от получаемых выводов до насыще- ния базы фактов (до невозможности получения новых выводов).
Глава 8 ИНФОРМАЦИОННАЯ СИСТЕМА ALICE Дело не в том, какая система является искусствен- ной, какая — естественной, а в том, поддается ли она программированию. Герберт А. Саймон (1977 г.) . ALICE — информационная система, которая работает с язы- ком высокого уровня, позволяющим формулировать задачи, и содержит модуль решения задач, использующий методы искус- ственного интеллекта. При разработке системы принимались в расчет следующие два соображения: 1. Классическое программирование требует больших затрат. Действительно, для каждой новой задачи программист пишет новую программу. За любое изменение в программе приходится платить слишком дорого: 75 долл, за каждую вновь написанную инструкцию и 4000 долл, зй каждую инструкцию в отлаженной программе (данные министерства обороны США, 1972 г.). Это объясняется двумя причинами: а) Плохо поддаются контролю побочные эффекты. В современ- . ных процедурных языках любое изменение может иметь не- предсказуемые последствия, даже если применяемая методо- логия программирования и предусматривает определенную защиту (структурное программирование, модульное програм- мирование, абстрактные типы данных). б) Вносимые в программы изменения могут на самом деле при- вести к существенным изменениям в структуре данных и в алгоритме решения задачи. Так, в книгах обычно приводятся академические примеры программ, а каждый реальный слу- чай не соответствует этому идеалу и требует перепрограмми- рования. 2. Все современные языки программирования являются импе- ративными (т. е. приказными). Это означает, что нужно шаг за шагом сообщать машине, что она должна делать. Но для про- граммиста единственно важными вещами являются формулиров- ка задачи и результат ее решения, а постоянное отслеживание всех промежуточных этапов по существу излишне. Другими сло- вами, наиболее приемлемым был бы такой метод обработки ин- формации, при котором формулировка задачи была полностью отделена от ее решения. В идеальном случае пользователь смог бы ввести свою формулировку задачи, разговаривая с машиной на описательном языке, близком к естественному. После этого ЭВМ в реальном времени получает решение, которое пользова- тель анализирует и в случае необходимости исправляет первую 15 Ж.-Л. Лорьер
450 ГЛАВА 8 формулировку и решает задачу еще раз. Время полного реше- ния уменьшается от нескольких недель (или нескольких меся- цев) до нескольких минут. Такой подход заложен .при разработ- ке системы ALICE. В действительности эти соображения диктуют использование описательного (декларативного) языка для формулировки про- извольных задач чисто формальным образом и достаточно общей системы решения, способной удовлетворить все пожелания поль- зователя и учесть все особенности решаемой задачи, связанные с ее формальным определением, объемом выполняемой работы и имеющимися ресурсами. Первое соображение связано с работа- ми по описательным языкам, второе — с методологией програм- мирования и общего решения задач. Система ALICE понимает формально заданную задачу и до- водит ее до окончательного решения. Кроме того, в разд. 8.9 показано, как в определенных случаях решаются задачи, сфор- мулированные прямо на французском языке. Замечание. Описание системы ALICE состоит из двух частей. Первая часть излагается в разд. 8.1 и 8.2 и представляет круг задач, решаемых системой, входной язык, используемые методы решения, примеры решения трех задач. Вторая часть изложена в разд. 8.3—8.5 и содержит описание процедур, критериев, ис- пользуемых представлений, управления перебором и возникаю- щих ограничений, которое носит Фолее технический характер. В разд. 8.8 обсуждаются результаты, а в разд. 8.9 приводятся результаты исследований ввода формулировок задач на фран- цузском языке. 8.1. Общее описание системы Человек является специалистом по неспециалькому. Конрад Лоренц (1950 г.) К особенностям данной системы относятся, во-первых, спо- собность воспринимать чисто декларативные формулировки, что делает ненужным использование алгоритмов и инструкций, и, во-вторых, возможность решения довольно общего класса за- дач, не исключая трудных и требующих больших машинных ре- сурсов задач. Язык, На котором формулируется задача, должен только ее определить. Его основу составляет язык обычной мате^ матики. Для разработки системы решения можно было выбрать два пути. Первый состоит в жестком переводе исходной формулировт
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 451 ки в специальный алгоритм, предназначенный для решения поставленной задачи, а второй — в интеллектуальной интерпре- тации формулировки и данных с помощью некоторого общего модуля. Второй путь, в тех случаях когда он возможен, оказы- вается значительно более эффективным, потому что система, по- добно человеку, становится способной постоянно приспосабли- ваться к конкретной задаче и учитывать ее особенности. В этом случае не создается единственный и заранее выбранный алго- ритм, а на каждом шаге обработки используется соответствую- щая процедура. При этом достигается удивительный результат. Оказывается, что во многих случаях при решении трудных задач такая об- щая программа является более производительной, чем лучшие специальные программы, доступные в настоящее время. С по- мощью этой системы уже успешно решено более сотни задач из различных областей (разд. 8.7). 8.2. Язык системы ALICE Название системы ALICE происходит от первых букв ее названия (A Language for Intelligent Combinatorial Explora- tion). Общую основу языка составляет словарь теории множеств й классической логики. В нем использованы также многие по- лезные элементы теории графов, в частности понятия пути и преемника. Использование множеств, функций, декартовых про- изведений, матриц позволяет описывать объекты в конкретных приложениях. Связи между этими объектами определяются с помощью обычных операторов, таких, как е, V, В, =>, -Ф=>, и, или, ~|, =, =#, 5s, +> —, *, /, 2, модуль. Таким образом, класс задач, решаемых системой ALICE, может быть выражен в общем виде: Найти величину х, х е X, где X — конечное данное, которое удовлетворяет совокупности ограничений К(х). Этот класс задач является очень общим. Он включает все классические алгоритмические задачи (бухгалтерский учет, управление, решение алгебраических систем и т. д.), задачи, связанные с операционными исследованиями и оптимизацией (взимание налогов, планирование, контроль -за ходом выполне- ния заказов и т. д.), а также множество других, менее класси- ческих .задач. Единственное ограничение состоит в том, что не- известный вектор х должен принадлежать конечному множе- ству X. 15»
452 .ГЛАВА 8 Формулировки на языке ALICE Формулировка задачи состоит из четырех частей: 1) определение, задаваемое ключевым словом “пусть”, опи- сывает объекты, участвующие в решении задачи, и задает их типы; 2) с помощью ключевого слова «найти» задаются цель, ко- торую необходимо достигнуть, и неизвестные величины, значе- ния которых необходимо определить; 3) с ключевого слова “с” начинается часть ограничений, ко- торые необходимо учесть при решении задачи (здесь полностью уточняются все остальные особенности решаемой задачи, связи, существующие между различными величинами). В этой части может быть задана оптимизация какой-либо функции, например стоимости; 4) наконец, задаются числовые или формальные данные в соответствии с описаниями, приведенными в первой части, на чем полностью завершается формулировка решаемой задачи. Пример 1. В многопроцессорной ЭВМ запускается на выпол- нение одновременно N заданий, длительность выполнения кото- рых с помощью одного процессора известна. Задания могут быть запущены каждое на своем процессоре, но требуется, чтобы вся обработка завершилась не позднее фиксированного момента L. Кроме того, необходимо минимизировать число используемых процессоров и определить оптимальный порядок выполнения за- даний. Этот обычный текст преобразуется в ALICE в следующий: Определим множество Т заданий, которые перенумеруем от 1 до N. Для каждого задания t из Т найти процессор, на кото- ром задание t должно выполняться; номер этого процессора обозначим через р(/). Нужно, чтобы на множестве заданий ве- личина. p(t} была минимальной с учетом заданного предельного времени L. Другими словами, нужно, чтобы maxp(Z) для эле- мента t из Т была минимальной со следующим ограничением предельного времени: если длит (/) является длительностью выполнения задания t, то длит (/)<L, где сумма берется по всем заданиям, выполняющимся на дан- ном процессоре. Окончательно формулировка задачи для си- стемы ALICE имеет следующий вид: ПУСТЬ КОНСТАНТЫ Af, L Число заданий, предельное ’ время
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 453 МНОЖЕСТВО Г = {1, N] КОЭФФИЦИЕНТ длительность НА Т НАЙТИ ФУНКЦИЮ р- Т^Т С Vr, ге? У, длит (/) < L teT P(t) = r С MIN MAXр (fl р КОНЕЦ Задания, перенумерованные от 1 до А N, L длительность вводятся Заранее ясно, что потребуется N процессоров. (для каждого процессора) (Число процессоров должно быть минимизировано) Это — строгая формулировка проблемы. Мы видели, что ALICE работает с числовыми данными, которые вводятся в чет- вертой части в том порядке, в котором они были указаны в тексте: сначала А и L, затем вектор длительностей. Система ис- пользовалась для обработки ситуаций, в которых число заданий доходило до нескольких сотен (см. разд. 8.7); здесь приводится пример, содержащий только девять заданий, длительности кото- .рых составляют соответственно 6, 2, 8, 3, 6, 15, 6, 9 и 13, а значение L = 18, что даст нам возможность в разд. 8.3 просле- дить за полным решением задачи системой. Тогда три послед- ние строки формулировки будут такими: 9, 18 (Значения N и L) 6, 2, 8, 3, 6, 15, 6, 9, 13 (длительности) КОНЕЦ Отметим, что для различных значений длительностей решения существенно различаются, в частности, если длительность за- ' Дания 1 изменится с 6 до 7. Мы увидим, что система адапти- руется к входным данным, но не опирается на использование какого-то определенного метода для формального решения этой задачи (разд. 8.3). Пример 2. Существуют программы типа “Численный анализ” для решения линейных или нелинейных задач в области
454 ГЛАВА 8 математического программирования. Например, найти в буле- вых переменных все решения системы О + Зх2х5 — xt — 2х3 — х4х5 — 1, О 2х, + 5х3 — 2х4 — Зх5 — 2, О х2х4 + + 2 — 5xj. В разд. 8.3 мы увидим все преимущества неалгоритмических формулировок системы ALICE и ее эффективность при обра- ботке символьных выражений. В данном случае формулировка выглядит просто: ПУСТЬ МНОЖЕСТВО 7 = [1,5] МНОЖЕСТВО В = [0, 1] НАЙТИ ФУНКЦИЮ x-.I^B С 0 х (1) * х (4) + 3 * х (2) * х (5) — х (1) — 2 * х(3) — — х(4) * х (5) — 1 О < 2 * х (1) + 5 * х (3) — 2 * х (4) - 3 * х (5) - 2 О ^х(2) * х(4) + х (1) * х(4) + 2 — 5 * х(1) КОНЕЦ Числовых данных здесь нет. Пример 3. В городе необходимо наилучшим образом распо- ложить центры аварийных служб (медицинской помощи, по- жарной команды и т. д.). Для каждого возможного размеще- ния центра в прилегающем районе определяется задержка, как показано на рис. 8.1. Этими службами должны быть обеспече- ны все районы. Кроме того, необходимо обеспечить минималь- ную общую стоимость организации всех центров при известной стоимости каждого из них. (Встречаются также аналогичные задачи без оптимизации.) Через ei.е8 обозначены возмож- ные места расположения центров, окружности показывают гра- ницы обслуживаемых районов, а и, ..., г3 — сами районы. Вве- дем также обозначения R = {и, ..., гб}. Стоимости Ci, ..., С3 организации центров на указанных местах обозначим с по- мощью вектора (3, 7, 5, 8, 10, 4, 6, 9). В данном случае требуется найти функцию f, которая свя- зывает каждый район по крайней мере с одним центром. Кроме того, нужно обеспечить соответствие между районами и центра- ми служб, приведенное на рис. 8.1. На языке ALICE это огра- ничение можно выразить, при описании функции f с помощью понятия “преемник”. Например, преемниками района г3 (т. е. возможными отображениями г3 с помощью функции f) будут
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 455 Рис. 8.1. Размещение центров аварийных служб. е2, е4, е6. Теперь сформулируем задачу, используя указанные обозначения: ’ ПУСТЬ КОНСТАНТЫ: NR, NE число районов и центров МНОЖЕСТВО /? = [1, NR] E — [l,NE\ КОЭФФИЦИЕНТ С из £ (стоимости центров) НАЙТИ ФУНКЦИЮ Е: R-+E преемник С Vr, re/? f (г) ==£>=>. Vs, se/?, e = преемник(и), f(s)=e (если преемником района s является центр <?, то этот район также обслуживается центром е) С MIN£c(e) (минимизация стоимости) е е Е Эг, г е/? f (г) = е КОНЕЦ 5,8 (значения NR и NE) 3,7,5,8,10,4,6,9 (вектор стоимости) 1,2 3,4,5 4,5,6 7,8 2,4,6 Список преемников •КОНЕЦ
456 ГЛАВА 8 Таблица 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 и j разъединены, если 0 ‘ ¥= f(i) VAL стоимость, связанная скаж- дым образом 0 DMA f максимальная и , мини- 0 < мальная степень в про- DMI 1 странстве образов 0 CHE путь 2 ARB дерево 0 CIR схема 0 MIN минимум 2 MAX максимум 0 , >, ¥=, =, +, —, *, / в обычном смысле 0 MOD ’ модуль о OBJETS определение множества че- п рез его элементы SUR связать коэффициент/мно- 1 жество PDT декартово произведение 2 INC включено в 1 APP принадлежит 2 —> от ... к определение функции 1 QQS каким бы ни был 2 EXI существует 2
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 457 Продолжение табл. 8.1 Слово Значение Комментарий Ранг NON логическое отрицание 1 UN объединение 2 IN пересечение 2 И, ИЛИ, в обычном смысле 2 SIG сигма то же 2 Таблица 8.2. Синтаксис языка ALICE (формулировка) фраза) (описание) = (фраза)*(данные) = (описание) [(ограничение) (КОНЕЦ — ПУСТЬ CST (имя константы) | ПУСТЬ ENS (определение множества) | ПУСТЬ (вектор)(имя вектора) SUR (имя>| ПУСТЬ МАТ (имя матрицы)РВТ(имя) (имя) НАЙТИ (функция)(ймя функции) : (имя) (определение множества) ->(имя)(опция>* = [(имя константы),(имя константы)] | OBJET (имя объекта)* | UN (имя)(имя) | IN (имя)(имя> (вектор) (функция) (опция) (ограничение) (логическое выражение) СОЕ (СОА = FON | INJ|SUR(BIJ = SUC|DIS|DMI (DMA|CIR|ARB(SYM| VAL , = С (логическое выражение) = (бинарный оператор) (логическое выражение) (логическое выражение) | NON (логическое выражение) | (алгебраический оператор) (выражение вы- ражение)! MIN (выражение) |МАХ(выражение) ] (квантор) АРР(имя) (имя)(логическое выра- жение) (бинарный оператор) (квантор) (алгебраический опера- тор) (выражение) = =5-1 <=> ( OU | ЕТ == QQSIEXI = <|»|<| = |^ = (операция)(выражение) (выражение)! (число)((имя)] SIG АРР (имя)(имя)(выражение) (операция) (число) (имя) = +|-|*|/|MOD = («цифра») ((число)(«цифра»> = («буква»)|(имя)(«буква»> Обозначения. Через <х> * обозначена логическая операция объединения величины* с самой собой произвольное число раз. Вертикальной чертой | обозначены альтернативные значения.
458 ГЛАВА 8 Возможны также и другие эквивалентные формулировки. В данном слуйаеиЗыли бы пригодны и двузначные переменные, как в примере 2, но формулировка оказалась бы более громозд- кой. Эти задачи решаются достаточно быстро. Их решение систе- мой ALICE описано в разд. 8.3.2. В языке системы ALICE имеются и другие ключевые слова, которые облегчают запись классически* ограничений. Система “знает” понятия сюръекции, инъекции и биекции. Она “пони- мает” все обычные логические обозначения, знает, что такое дерево, путь, схема. Целью разработки системы являлось сохра- нение доступных, максимально понятных формулировок задач, близких к обычному разговорному языку. В табл. 8.1 приведен полный список известных ALICE слов и их значения, (ранг сло- ва представляет собой число членов, которыми оно управляет). Каждое слово, не входящее в этот список, рассматривается как новый объект, описание которого должно содержаться в части определений после слова ПУСТЬ. В табл. 8.2 приведены синтаксические правила образования предложений языка в форме Бэкуса. Система использует пре- фиксную польскую запись, которая, не нарушая однозначности выражения, позволяет записывать его единой строкой без ис- пользования скобок. Мы, однако, в тексте сохраним обычную запись для удобства восприятия. 8.3. Модуль решения задачи Ниже этот модуль описан в общих чертах. Более подробное описание приведено в разд. 8.5. Система ALICE имитирует поведение человека, приступаю- щего к решению задачи: • Постоянно контролируется общий ход решения задачи: на каждом этапе решается наиболее простая подзадача, на- сколько это оказывается возможным в процессе решения. Поря- док решения определяется на ходу в зависимости от действую- щих ограничений и числовых значений переменных, а не так, как в классическом программировании, где порядок выполне- ния инструкций раз и навсегда определен программистом. На каждый момент ALICE выбирает такую степень трудности, с которой она сможет справиться, что очень похоже на действия человека. Мы, например, при решении задачи не используем единый алгоритм, но уточняем метод, решения в зависимости от имеющихся данных й даже изменяем его в процессе решения. • Для различных типов ограничений предусматривается свой подход к решению задачи. Все простые ограничения, т. е. затрагивающие не более двух объектов, находят непосредствен-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 459 ное отражение во внутреннем представлении системы с по- мощью гиперграфа (разд. 8.5). Другие ограничения обрабаты- ваются в форме, эквивалентной обычной алгебраической записи. • Составляется план решения. В его основе лежит углуб- ленный анализ начальной ситуации, в частности он зависит от оценки трудности задачи, от переменных и ограничений, имею- щих важное значение, на основе которых устанавливаются кри- терии, определяющие решение задачи. . В процессе решения системой предпринимаются три .основ- ных действия. • Перенос ограничений Речь идет о таком использовании доступной системе инфор- мации, которое позволяет получить наибольшее количество но- вых сведений. Анализ выполняется от наиболее простого к наи- более сложному: чем более коротким является выражение для ограничения, тем больше вероятность его использования. Пере- нос осуществляется с помощью указателя во внутреннем графи- ческом представлении для ограничений с двумя переменными, для других он осуществляется в алгебраической записи. В фазе переноса ограничений система ALICE остается максимально возможное время. Тем не менее для многих задач (все NP-пол- ные задачи, разд. 8.4.4) этого недостаточно для получения ре- зультата. • Построение гипотез Итак, ALICE откладывает перебор насколько это возможно. Если оказывается, что таким образом решить задачу невоз- можно, ей необходимо попытаться сделать интеллектуальный поиск. Вместо того чтобы заниматься слепым перебором, ALICE определяет наиболее вероятное значение для наиболее важного элемента (разд. 8.5,3). После этого ALICE возвращается к ана- лизу и переносу ограничений. И наконец, при решении опреде- ленных задач остается найти наилучшее решение с учетом дан- ной функции стоимости. • Получение и доказательство оптимального решения Кроме установления критериев, оптимизирующих стоимость каждого этапа выбора,. ALICE доступны методы усиления и ослабления ограничений, которые позволяют определять окрест- ность оптимального значения и определять само это значение, входя еще раз в фазу переноса. 8.3.1. Перенос ограничений Эта фаза основана на алгоритме унификации (гл. 3), кото- рый позволяет выполнять операции с выражениями так же, как
460 ГЛАВА 8 мы это делаем вручную. Он позволяет также упрощать выра- жения типа 4<3 -^ЛОЖЬ, 2х— Зу 4~ х =/= 0 —> Зх— Зу =/= 0, а затем х =£ у. Специальные процедуры, которые уточнены в разд. 8.5.2, позволяют, кроме того, получить необходимые условия выпол- нимости. Например, если ALICE среди прочих известны также соотношения 2<х<5, 0<у<2, 0 <9, 0 = 2х + у — z — 9, где х, у и z — целые, то она выводит из них новую информацию (х = 4 илих = 5) и (z^3). Возвращаясь к первому примеру (разд. 8.2), из алгебраического ограничения на величину вектора длительностей Vr, г ^.Т У, длит (?) L, it=T p(t)-r выполняя суммирование по г, ALICE выводит У длит = 68 р* * L, t^T где р* является оптимальной величиной числа процессоров. При L — 18 получаем р* 4. Для лучшего понимания этой фазы приведем полное решение примера 2 с булевыми перемен- ными, которое осуществляется с помощью переноса. Напомним условие: найти решение системы уравнений, в которой перемен- ные принимают значения 0 или 1. Итак, 0 х;х4 + Зх2х5 — xt — 2х3 — х4х5 — 1, (1) 0 2xj + 5х3 — 2х4 — Зх5 — 2, (2) 0 <^х2х4 + xtx4 + 2 — 5хь . (3) ALICE анализирует ограничения одно за другим в порядке их сложности. Ограничение (2) оценивается как наиболее про- стое, т. е. способное дать наибольшее количество полезной информации (разд. 8.5.3). Из него ALICE по формальным пра- вилам выводит новое ограничение 2 2х1 + 5х3, (2i) которое приводится к виду 1^Х[ + х3, а затем к виду (х1 = 1) ИЛИ (х3 —1). (2ii)
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 461 Затем анализируется ограничение (3), которое дает 5xt 4; отсюда xt — 0. С учетом ограничения (2ii) находим х3 = 1. Получается система уравнений, эквивалентная исходной: 0 ^Зх2х5 — х4х5 — 3, (liii) 0 3 —- 2х4 — Зх5, (2iii) 0^х2х4 + 2. (3iii) Последнее ограничение можно исключить, потому что оно удовлетворяется всегда. Из первого неравенства находим 3 Зх2х5, (liv) а также x4xg + 3^3, (lv) или, упрощая выражение (lif), получаем (х2 — 1) И (х5 = 1). Из ограничения (1у) следует (х4 == 0) ИЛИ (х5 = 0), и при- ходим к окончательному результату х4 = 0. С уже имеющимися результатами это дает единственное ре- шение: (01101). 8.3.2. Перебор вариантов В обычных программах получить решение можно только с помощью полного перебора, при этом стоимость решения резко возрастает при увеличении числа вариантов. В более совершен- ных программах, использующих методы возврата управления или неявного перебора, Дерево поиска определяется раз и на- всегда и не предпринимается никаких попыток для устранения бесполезных выборов в процессе решения, что на практике при- водит к большим потерям. Действительно, если необходимо п раз сделать выбор и при этом пространство поиска каждый раз делить на два, то время вычислений достигает порядка 2п. В системе ALICE используется другая процедура поиска. Для того чтобы избежать экспоненциального увеличения вре- мени вычислений, выбор варианта осуществляется с учетом кон- текста, благодаря чему становится доступным большое коли- чество полезной информации и оптимизируется процесс даль- нейшего решения задачи, а кроме того, максимально умень- шается полное число этапов выбора. Это возможно потому, что как только сделан выбор, система возвращается к фазе пере- носа- ограничений. Более того, ход решения задачи постоянно контролируется с помощью общего плана. Различные типы и критерии выбора Оригинальность системы ALICE заключается в постоянном самопрограммировании. Схема поиска решения не является
462 ГЛАВА 8 заранее заданной, система ,на каждом шаге сама выбирает наи- лучший путь. Но при этом ей приходится решать два вопроса: 1) Какого типа выбор должен быть сделан? 2) Какие критерии можно использовать, осуществляя выбор? Выбор. Выбор соответствует временному присоединению ограничения. При этом интуитивно ясно, что пространство по- иска должно быть распределено наиболее оправданным обра- зом. Для этого можно использовать классический способ, кото- рый состоит в присвоении переменной произвольного значения. Временно ~тт—исключенное у пространство Исходное I лространст&л. ---------- Пространство после Вь/дора Рис. 8.2. Результат выбора в пространстве поиска. В системе ALICE он применяется только при последнем прохо- де, так как его недостатком является рассмотрение слишком малой части пространства. Система отдает предпочтение менее жесткому выбору, состоящему, например, в задании границ из- менения переменной или в задании ее четности (рис. 8.2). Другой способ, принятый в системе ALICE, заключается в выполнении вывода в обратном направлении, когда в качестве цели выступает множество возможных предшественников. При этом система ограничивает затраты своих ресурсов, оставляя их в разумных пределах. Наконец, система оказывает предпоч- тение разъединительным ограничениям типа «из двух элементов один или А, или В», которые для нее наиболее понятны. Критерии. ALICE продвигается в решении задачи, постоянно руководствуясь главной стратегией: делай то, что наиболее информативно. В ходе решения задачи эта стратегия реализуется с помощью критериев: так же как наиболее эффективными являются огра- ничения, содержащие одну или две переменные, так и наиболее информативным является выбор в том случае, если переменная может принимать только небольшое число значений. Всякие элементы, ограничения или переменные, которые выделяются из общей массы, привлекают к себе внимание системы, и она их анализирует с помощью переноса или выбора в зависимости от
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 463 обстоятельств. Целая группа критериев постоянно участвует в анализе каждой из величин, связанных с решением задачи, но на конкретном этапе выделить нужную величину можно только с помощью контекста, численных данных и текущего состояния. Приведем краткие формулировки некоторых критериев: 1. Число ограничений, в которых участвует одна и та же пере- менная. 2. Сложность ограничений. 3. Число значений, еще возможных для переменной. 4. Число множеств, отображения которых должны быть разъ-л единены. 5. Значения коэффициентов. 6. Значения второго члена. 7. Границы изменения переменной. 8. Различие между локальными оптимальными затратами и вторичными затратами. 9. Число возможных предшественников. Все эти критерии просты и естественны. Идея их исполь- зования состоит в том, что они присутствуют все вместе, а на каждом шаге применяется только наиболее значимый. Но крите- рий, который был вполне приемлем вначале, может впослед- ствии утратить свое значение, поэтому в системе ALICE пре- дусмотрена оценка их полезности и замена одного на другой в случае необходимости. Это происходит всякий раз, когда решение достигнуто и нужно перейти к новой цели или когда оценка, на которой основана эвристика, потеряла значение. В разд. 8.6 показано преимуще- ство системы над жестким класси- ческим программированием на при- мере анализа трудной проблемы из области исследования возмущений. Общий план решения (рис. 8.3) Прежде чем приступить к реше- нию задачи, система ALICE пред- принимает ее полный анализ. Сна- чала она записывает задачу во вну- треннем представлении. При этом ограничения представляются в наи- более удобной для системы форме. Предпочтение отдается гра- фической, а не обычной алгебраической форме. ALICE про- веряет ограничения на непротиворечивость и оценивает труд- ность решения задачи, а также проверяет некоторые стандарт- ные значения для того, чтобы сразу найти очевидные ре- шения. Лер вы й эта/г: доступное ______ решение —.. _ ♦ Зторой этап; хорошее решение Третий этап: доказа- тельство оптиналь- ности 8.3. Общий план решения [ системы ALICE.
464 ГЛАВА 8 Определяются подходящие для данного случая критерии. В максимальном объеме выполняется перенос информации, и, если это не приводит к нахождению решения, система перехо- дит в фазу выбора с последующим возвратом к переносу ин- формации. Если задача не допускает оптимизации функции стоимости, поиск прекращается после нахождения первого ре- шения (или после нахождения всех решений по требованию пользователя). В противном случае ALICE изменяет порядок использования критериев для минимизации этой функции. Си- стема в данном случае выступает в роли пессимиста и ставит перед собой цель уменьшения стоимости в зависимости от труд- ности задачи и оценки числа решений в рабочем пространстве. Наконец, система показывает оптимальность решения с по- мощью одного из следующих трех аргументов: 1. Она нашла нижнюю границу стоимости и умеет находить решение, стоимость которого в точности равна этой границе (см. пример 1). 2. Она показывает, что если к исходной задаче добавить ограничение (при этом полная стоимость ниже наилучшего из- вестного значения), то не существует никакого решения, т. е. найденное решение является оптимальным (см. пример 1 и разд. 8.6.2). 3. Для получения оптимального значения она полностью анализирует пространство поиска. Система делает удачный вы- бор, дерево поиска часто остается разумным,, а иногда возмож- но и его неявное, но полное изучение (см. ниже пример 3). Решение примеров Напомним, что работа системы ALICE подробно описана в разд. 8.5. Пример 1. План решения: 1) анализ трудности задачи; 2) поиск хорошего решения; 3) доказательство его оптималь- ности. Критерии, подходящие для данного случая; длительность вы- полнения заданий; доступное место в процессоре; справедливое .распределение заданий по процессорам. Этап 1. Как только задача выражена во внутреннем пред- ставлении, становится очевидным тривиальное решение — каж- дое задание выполняется на отдельном процессоре. В этом случае p(i) = i, стоимость решения равна 9. Задача оценива- ется как легкая, требующая небольших ресурсов. Этап 2. Сейчас ALICE пытается найти наиболее экономичное решение. Задание с наибольшей длительностью она размещает на уже занятом процессоре с тем расчетом, чтобы не превысить
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 463 3. 4. 5. 6. 7. 8. 9. обстоятельств. Целая группа критериев постоянно участвует в анализе каждой из величин, связанных с решением задачи, но на конкретном этапе выделить нужную величину можно только с помощью контекста, численных данных и текущего состояния. Приведем краткие формулировки некоторых критериев: 1. Число ограничений, в которых участвует одна и та же. пере- менная. 2. Сложность ограничений. Число значений, еще возможных для переменной. Число множеств, отображения которых должны быть разъ-; единены. Значения коэффициентов. Значения второго члена. Границы изменения переменной. Различие между локальными оптимальными затратами и вторичными затратами. Число возможных предшественников. Все эти критерии просты и естественны. Идея их исполь- зования состоит в том, что они присутствуют все вместе, а на каждом шаге применяется только наиболее значимый. Но крите- рий, который был вполне приемлем вначале, может впослед- ствии утратить свое значение, поэтому в системе ALICE пре- дусмотрена оценка их полезности и замена одного на другой в случае необходимости. Это происходит всякий раз, когда решение достигнуто и нужно перейти к новой цели или когда оценка, на которой основана эвристика, потеряла значение. В разд. 8.6 показано преимуще- ство системы над жестким класси- ческим программированием на при- мере анализа трудной проблемы из области исследования возмущений. Общий план решения (рис. 8.3) Прежде чем приступить к реше- нию задачи, система ALICE пред- принимает ее полный анализ. Сна- чала она записывает задачу во вну- треннем представлении. При этом ограничения представляются в наи- более удобной для системы форме. Предпочтение отдается гра- фической, а не обычной алгебраической форме. ALICE про- веряет ограничения на непротиворечивость и оценивает труд- ность решения задачи, а также проверяет некоторые стандарт- ные значения для того, чтобы сразу найти очевидные ре- шения. Рис. 8.3. Общий план решения для системы ALICE.
466 ГЛАВА 8 ленно оптимизировать слишком рано, когда еще нет ни одного решения или имеется только одно решение! ALICE будет искать наиболее информативные ограничения, даже если для этого придется преодолеть значительные трудности программного ха- рактера. Формальные преобразования выражений позволяют из'- бежать использования обычных численных методов, последова- тельных и слепых (симплексного метода, градиентных методов). Рис. 8.5. Локализация (внутреннее представление): район г5 не может быть обслужен с помощью е2, е4 или еб. Пример 3. Его формулировка в действительности целикрм взята из графического представления в системе ALICE, кото- рое приведено на рис. 8.5. На первом этапе находим очевидное решение: для размеще- ния каждого центра аварийной службы берется первая попав- шаяся подходящая точка (первый преемник). Допустим, что f(I) = 1, f(2) = 3, f(3) = 4, f(4) = 7, f(5) = 2. Тогда полная стоимость 20 = 3 + 5 + 8 + 6 + 7 = 29. На втором этапе в качестве критерия берется минимальная стоимость для области, которая имеет наименьшее число пре- емников. В этом случае ALICE полагает f(l) = l, 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* должна удовлетво- рять условию - Г>6+.3+ 4+ 4 или Z’>17. (r4) (rl) (г5) (г2)
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 467 Кроме того, из этих минимальных стоимостей можно всякий раз вычитать начальную стоимость без изменения решения. Далее будем рассматривать работу ALICE с новыми уменьшенными стоимостями: (0, 0, 1, 0, 6, 0, 0, 3). Этап. 3. Остаточная стоимость размещения центра 5 недопу- стима из-за того, что она больше разности zO— 17, то же можно сказать о центре 8. Отметим, что даже в тех случаях, когда в оптимизации нет необходимости, ALICE дает относительное рас- стояние до оптимума. На этом этапе автоматизации главным критерием становит- ся следующий: если решение с наиболее высокой стоимостью не принимается, брать любую дугу, которая эту стоимость .умень- шает. В данном случае выбор f(4) — 7 является вынужденным. Если бы /(2) отличалось от 4, то полная стоимость с необходи- мостью увеличилась бы на 1. Если же f(2) —4, то области 3 и 5 также охватываются обслуживанием. И наконец, f(l) = 1 с нулевой приведенной стоимостью, так что расположение мест 1, 4 и 7 является оптимальным со стоимостью 17. 8.4. Результаты На сегодняшний день более сотни задач из самых различ- ных областей были решены с помощью системы ALICE. Эти за- дачи связаны с такими разделами дискретной математики, как оптимальная связь, диофантовы уравнения, пути Эйлера и Га- мильтона, а также с практическими приложениями, такими, как распределение тока высокого напряжения по сетям французской государственной компании “Электриситэ де Франс” (EDF), планирование, организация снабжения, составление расписаний, помощь в архитектурных разработках с элементами оптимиза- ции, оптимальное обнаружение аварий, использование накопи- телей на магнитных дисках в операционных системах, коммер- ческая деятельность, организация обслуживания. Решение последней задачи весьма трудоемко, требует больших вычисли- тельных ресурсов, и на этом примере можно оценить эффектив- ность системы ALICE. Кроме того, с помощью этой системы было решено около пя- тидесяти головоломок и логических задач (магические квадра- ты и кубы, задача с 8 ферзями, головоломки Льюиса Кэрролла, Сэма Лойда и Мартина Гарднера), что свидетельствует о боль- шой гибкости программы и мощности языка. Список решенных задач с комментариями и решениями можно найти в разд. 8.7. Отметим небольшое число выборов и малое время вычис- лений. После испытаний и экспериментов на этой системе в
468 ГЛАВА 8 реальных условиях в течение нескольких лет я смог убедиться в ее устойчивости и высоких эксплуатационных качествах. Ос- новное ее преимущество состоит, несомненно, в ее практической пользе. Время, которое она тратит от получения формулировки задачи до выдачи решения, составляет от нескольких секунд до нескольких минут. Класс задач, для которых применим такой подход, огромен; Другое преимущество системы лежит в области теории. Оно состоит в совершенно новом и открытом направлении програм- мирования. Показана возможность создания систем, для кото- рых достаточно дать только формулировку задачи, а ход реше- ния полностью определяется самой программой, которая выби- рает наиболее эффективный и подходящий путь. 8.5. Работа системы ALICE Нам осталось рассмотреть следующее: внутреннее представ- ление задач, обработку алгебраических ограничений, процедуры выбора. 8.5.1. Представление задач Обычно программа разрабатывается для решения одного типа задач и используется одно представление. В данном слу- чае необходимо уметь представлять произвольные задачи с ко- нечными множествами и произвольными .ограничениями. В иде- альном случае; как в примере 3, все формулировки надо выра- жать в компактной форме, предусматривающей предварительную компиляцию, хотя для выражений типа Vz, z е£, S а (г’> /) • х (/) > ь (/) j eF не существует другого представления, кроме приведенного клас- сического алгебраического. Для системы ALICE наиболее под- ходящим является представление в форме “изображений” (гра- фов и гиперграфов) во всёх случаях, когда это допустимо, т. е. при наличии простых ограничений, связывающих не более двух переменных и при сохранении всех остальных в алгебраической форме. Графическое представление На рис. 8.6а приведено общее представление организации информации. Для этого используется в основном двухчастичный граф: все точки слева, принадлежащие множеству D, являются начальными объектами, значения которых должны быть най-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 469 Мсходное множество Dp (fc*1'<.... св) Коме иное множество вг. Множества разъединения Уменьшение оценок аре, исходящих из i Коэффициен- ты на I Указатель на множе- ство огра- нииений,ко- да входи Hi i Указатель списка мно- жеств разъ- единения Коэ<р<рици-. енты на j \\рценна г/] \Нзовражения, связанные ли- \нейным соот- ношением Минималь- ное и макси- мальное наела пред- шествен- ников j в решении Список воз- . меняемых ' список пред- изовраже- шественни- Числовое зна- чение вер- шины j Рис. 8.6а. Схема двухчастичного графа внутреннего представления задачи. дены. Точки справа, принадлежащие множеству 7, являются возможными изображениями этих Объектов. Если в формулировке задачи нет других указаний, возмож- но существование всех дуг, исходящих из каждой точки и, и е е D и приходящих в каждую точку v, ге7. С дугами и точ- ками связана определенная информация — значения коэффи- циентов и других величин. В процессе решения задачи некото- рые значения могут оказаться запрещенными. Постоянно до- ступной является важная информация: возможные предельные значения переменных, число преемников для всех и из D, число предшественников для всех и из 7. Когда искомые функции принадлежат особому типу — инъ- екции или сюръекции, опции “вынужденная степень” мини- мального или максимального числа точек изображения, — то такая информация выражается локально: два вектора, связан- ные с точками множества 7, указывают на минимальное (со- ответственно максимальное) число разрешенных предшествен- ников. Например, для биекции они оба принимают- значе- ние 1.
470 ГЛАВА 8 Что касается гиперграфа, то он строится на вершинах мно- жества D: если он существует, то выражает разъединение, или, что то же самое, ограничения, которые требуют, чтобы одно се- мейство точек представляло собой совершенно различные изо- бражения (задачи перестановок, окрашивания, планирования). Эти семейства (или гиперграни: они связаны с произвольным числом вершин) запоминаются. В завершение интерпретации формулировки с помощью специальной процедуры отыскивается наиболее экономичное множество разъединений, для того чтобы охватить множество D максимальными семействами. Такого рода “собирание крошек” служит, в частности, для того, чтобы затем быстрее выполнять выводы при наличии разъединяющих ограничений. Формальное представление Другие ограничения обрабатывают с помощью алгоритма унификации. Выражения могут быть, в частности, нормализо- ваны с помощью правил перезаписи, приведенных в табл. 8.3. Начальные связи всегда выражаются с помощью символов =/=, или =, а второй член всегда равен 0. С помощью табл. 8.3 можно осуществить некоторые типы унификаций второго порядка (над операторами). Например, символ OS1 в действительности означает +, X, / или модуль; OS2 означает — или =/=; OS3 означает =, =/= или Ф; OS4озна- чает = или -+ (перезапись самого себя); fff означает произ- вольную функцию. Предусмотрены фильтры для уменьшения числа попыток унификации. С каждым выражением связан характеристиче- ский вектор, учитывающий головной оператор, наличие число- вой константы в первом члене, частоту появления каждой пере- менной. В зависимости от этого вектора выбираются соответст- вующие правила. Наличие кода CSPi указывает, что при унификации вызывается процедура численных вычислений. Передача информации между двумя представлениями • Все ограничения, содержащие единственную переменную, исключаются из пакета алгебраических ограничений и запоми- наются в графе. Таким образом, соотношения f (1) = 3, f(2) #= 4 и f (3)^2 означают соответственно назначение, исключение дуги, перемещение указателя в графе. • В графе представляются также линейные соотношения между переменными типа f(4)=f(5)+6, неравенства типа f(6) (7), разъединения типа Д2) =/=f(4). Таким образом, чем дальше продвигается решение задачи, тем большее число ограничений упрощается и большим стано-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 471 Таблица 8.3 О * х -> О О 4- х - х — (~х)->х — х > 0 —> х = О c*(x+i/)->c*x4-c*z/ — (X * у) -> —X * у X * —у -> —X * у х * (у * — z)->— x*(y*z) О 0S2 с 4-х->0 0S2 — с 4" х О 0S2 с + — х4"1/->0 0S2 — с 4* х 4-у О 0S2 cl 4- (—с2 *х) -» О 0S2 — cl 4- с2 * х О — с * fff х ->О = fff х истина =>х ->х ложь => х -> истина истина <=> х -> х ложь <=> х ”| х (V ху) -> зх у -Д(ЗхуУ^^х~\у ~1(х ИЛИ у) ->Г\х) И (~| у) Д(х И //)->(Пх) ИЛИ (“]«/) "1 (х = у} -> X ~1 = у (О< = х) -> О < = —1 4- —х истина ИЛИ х -> истина ложь ИЛИ х —> х с 0S4 с -> истина cl 0S4 й2->ложь х > i/-->O<x 4- —у 4- — 1 X < у ->О < — X — у 4- —1 X — у->х + — у —x0SO->O0S2x (х'4- у} 4- z -> х 4- {у 4- z) (x*y)*z->x*(y*z) х4-^х->0 X 4- (—X 4- у) ~> у X * (z//x) -> у —х*(у/х)-+—у — (х1у)->—х1у х1-у->~х1у х * (y/z) -+(х * y)/z x/z 4- y/z -> (х 4- y)fz х 4- х -> 2 * х х 4~ (х 4~ у) -> 2 * х 4- у х 4- с * х -> (с 4- 1) * х х 4-{(с * х) 4- у) (с 4- I) * х 4- у —х 4- с *х-> (с — 1) * х —X 4- ((с * х) 4- у) -> (с — 1) * X 4- у с 1 * х 4- с2 * х -> (cl 4- с2) * х cl * х 4- (с2 * х 4" у) (cl 4- с2) * х 4- у — (х-у у) — V 4-— У — о -> о 1 * х->х — 1*х->— х
472 ГЛАВА 8 Продолжение табл. 8.3 (cl-> fff с2)-> {fff с2с\) (cl -> с2 + fff х) -> {fff х -> cl + —с2) (х -> х) -> истина cl 0S1 c2->CSP 1 cl n OCQ , ccp 9 ri * * 0 0S3 cl + c2*fffx->CSP 3 0S3 cl c2*fffx О = — fff x + ggg У -> CSP 4 = fffgggx у coa x 0S3 c->CSP 5 0S3 c coa x fff x 0S3 c->CSP 6 0S3 c fff x coe x 03 c->CSP 7 0S3 с coe x mat cl x 0S3 c2->CSP 8 0S3 c2 mat cl x mat x cl 0S3 c2—>CSP 9 0S3 c2 mat xcl 0 <= cl + c2 * x-> CSP 10 cl c2 * x Xi «= EQ CSP 11 ie=EQ Vi c= EQ-> CSP 12 ie=£Q 3» e= EQ CSP 13 i e= EQ Vi <= SUC j Q -> CSP 14 i SUC j Q Vie PRE j Q->CSP 15 i PRE j Q вится их число, непосредственно представленное в графе. В конце решения вся информация содержится только в графе. В процессе каждой модификации графа специальные про- цедуры выполняют выводы, связанные с контекстом: • при назначении f(u) =v для всех объектов, находящихся в разъединении с и, запрещено изображение и. Если достигнута максимальная степень v, то все предшественники запрещены; • при запрещении дуги производится проверка оставшихся возможных изображений. Если осталось только одно из них, выполняется соответствующее назначение. То же происходит, если одна из вершин множества / достигает минимальной сте- пени; ' • при выражении равенств типа х = у одна вершина иск- лючается, вычисляются и запоминаются грани разъединения и пересечения изображений. В определенных случаях в процессе рекурсивного обраще- ния к этим процедурам может быть обнаружена невозможность дальнейшего выполнения обработки, связанная с противоре- чиями, пустым множеством преемников, неудовлетворительной экстремальной степенью. Это сообщается монитору, который бе- рет управление на себя, возвращается в решении задачи назад, восстанавливая состояние графа и ограничений, которое было перед последним выбором. Отметим, что теперь в графе содер- жится информация, на основе которой производится локальный анализ ограничений.
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 473 8.5.2. Обработка алгебраических ограничений Общая процедура анализа ограничений Эта процедура применяется ко всем ограничениям вида Гр-Гп>0 или Гр-Тга = 0, (С) в которых все члены со знаком + сгруппированы в Тр, а ос- тальные— в Тп. Когда Тр или Тп содержит не более одного члена, обработка ограничений происходит специальным образом, описание кото- рого приведено ниже. В общем случае обработка ограничений ЕСЛИ А > в ТО НАЧАЛО (Пересечение пусто) ЕСЛИ А = Р И ЕСЛИ оператором является ТО (С) тривиально выполняется. Исключить (С). ИНАЧЕ (С) не может быть удовлетворено. НЕУДАЧА. КОНЕЦ ЕСЛИ А = В ТО НАЧАЛО (Пересечение уменьшено на одну точку) ЕСЛИ А = Р И ЕСЛИ оператором является ТО (С) является истиной. Исключить (С). ИНАЧЕ добавить два новых ограничения: ТР=А и Тп=А КОНЕЦ ЕСЛИ А < В ТО НАЧАЛО (Общий случай) ЕСЛИ ТО добавить: ТР^А ИНАЧЕ ЕСЛИ оператором является = ТО добавить: Тп^А ЕСЛИ РР < NN ТО добавить: Тп В . ИНАЧЕ ЕСЛИ оператором является = ТО добавить: ТР^В КОНЕЦ Рис. 8.66. Алгоритм общего анализа. происходит в зависимости от информации, содержащейся в гра- фе, для того чтобы получить новые ограничения, обязательно удовлетворяющиеся, как и исходное. По структуре эти ограничения оказываются более простыми, а содержащуюся в них информацию можно непосредственно исйользовать. Основная информация связана с интервалами из- менений двух вершин Тр и Тп. Для выполнения ограничения (С) необходимо, чтобы оба интервала имели относительное распо- ложение в соответствии с основным соотношением (С). Установлено стандартом, что ALICE всегда использует по- ложительные переменные. Тогда процедура анализа легко за- писывается с помощью обозначений этих, интервалов, как и их пересечений. Обозначим эти интервалы через [Р, РР] для Тр и
474 ГЛАВА 8 [АА, NN] для Тп, а также А = sup IP, N) и В — inf(PP, NN) и [А, В] = [В, РР] П [AZ, AW]. Тогда алгоритм общего анализа принимает вид, приведенный на рис. 8.66. Специальные случаи 1) В первом случае член Тр или Тп является нулевым, при этом очевидно, что соотношение (С) является истиной или ложью. Если одна из этих сумм содержит только один член, то процедура упрощается и порождает столько ограничений, сколько членов содержится в другой сумме. Если Тп содержит один член, то ALICE записывает для каждого t из Тр новое ограничение: t^NN- Е maxf. t'^t Пример. Из ограничения 2х{ + х2 — 9^0 при Xi е [2, 5] и х2 е [0, 2] следует 2x^9 — 2 и x2L>9—10, т. е. Xi :=s 4 и ничего нового для х2. 2) Случай диофантовых уравнений вида ах + by = с обра- батывается отдельно с помощью классической процедуры кон- груэнции. В данном случае особенно полезны значения, кото- рые отмечены в графе как запрещенные. Во всех ограничениях на равенство отыскиваются общие целые коэффициенты и здесь тоже приходим к уравнениям конгруэнции. Пример. Ограничение 15х + 18у — 4z — 6 = 0 приводит к х s 0 (mod 2) иг = 0 (mod 3), что сразу отра- жается в графе исключением дуг, которые не удовлетворяют этим соотношениям. 3) Равенства позволяют исключить переменные. Тем не ме- нее это исключение предпринимается только в линейном слу- чае и когда каждая переменная появляется не менее двух раз в совокупности ограничений (в противном случае подобные подстановки не приводят к получению дополнительной инфор- мации). Пример. Из системы ( x+z/ = 2 X х + 2у 3z 3 '
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 475 приходим К X -> 2 — у и, следовательно, у + 3z 1. 4) Неявные ограничения, в которых неизвестно точное имя объекта. Например, Vo, v^I, У с (и) ^6. ' (1) и D f (и) = о Мы уже видели, что подобные ограничения могут накапливаться и приводить к возникновению общих необходимых условий, ко- торые ALICE использует еще и как проверку на исключение. Вообще говоря, каждое ограничение такого типа, которое на- кладывает условие на множество W объектов w, обладающих свойством Q(w), анализируется при каждой модификации на- значений в W. Одно из таких ограничений записывается в виде У с (w)< b, w: Q(w) где запись w: Q(w) обозначает множество объектов w, которые удовлетворяют свойству Q. Если на данный момент существует такой объект w0, для которого известно, что с(®о)+ У c(w)>b, w: Qfw) to Wo не удовлетворяет свойству Q. Пример. В предыдущем случае в процессе каждого назначе- ния f(u0) =.Vo неравенство (1) проверяется для значения v0. Стоимость k объектов, для которых v0 является изображением, подсчитывается следующим образом: k = У с (и). f (и)=Оо Для каждого удовлетворяющего условию с(и\) > b — k, свойство f(ui)—v0 не может б^ыть выполнено. Соответствую- щая дуга исключается из графа. Порядок обработки ограничений . Множество ограничений в системе ALICE является динами- ческим с двойным заголовком. На первом месте, как мы уже видели, постоянно находятся ограничения, связанные с добавле- нием или отсечением, переходами из одного представления в дру- гое. Этим система отличается от классических программ в об- ласти операционных исследований или численного программи- рования. Во вторую очередь в данный момент времени система обрабатывает ограничение, которое она считает наиболее инте- ресным, в соответствии с процедурой, описанной ниже<
476 ГЛАВА 8 Прежде всего отметим, что приоритет отдается графу. Со- здается записная книжка задания, и до тех пор, пока она не исчерпана, единственной выполняющейся работой являются процедуры вывода на графе. Когда управление передается ал- гебраической обработке, исследуются ограничения, получившие наибольшее количество информации со времени последнего ана- лиза. В частности, приоритетными являются такие, у которых по крайней мере одна из неизвестных получила значение. Если Рис. 8.7. Функция Грунди. таковые не имеются, вступает в игру число исключенных значе- ний с помощью графа. Для определения порядка работы с этими ограничениями ALICE распределяет их по трудности. Чем с большим трудом поддается удовлетворению какое-либо ограничение, тем более стеснительным оно является и тем большую информацию из него можно получить. Трудность d(C) любого алгебраического ограничения С вида Тр — Тп^0 можно представить в виде эмпирической формулы t/(Q = max(0, Z>)/max(l, S — b), где b — постоянный член Тп и S — сумма коэффициентов поло- жительных членов, поделенных на степени членов. Чем больше b и меньше S, тем легче найти набор значений для неизвестных, удовлетворяющий ограничению (С). Система ALICE использует также тот факт, что каждая пе- ременная из Тп несет информацию о переменной из Тр, а имен- • но верхняя граница значений переменной из Тп ограничивает верхнюю границу значений переменной из Тр, и наоборот. На рис. 8.7 приведена схема, дающая практическое пред-, ставление о функции Грунди. Последняя отражает логический ’' порядок, в котором информация об этих граничных значениях может изменяться допустимым образом. Сначала рассматриваются' нижние границы, затем верхние. Сначала изучаются ограничения в значениях переменных, от которых не ожидается получить никакой дополнительной инфор-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 477 мации. Затем новые вычисленные. границы переносятся на те переменные, которые зависят только от уже известных. Покажем это для случая линейных ограничений. Предполо- жим, что в системе в числе прочих рассматриваются три сле- дующих ограничения: f(l) + f(2)-f(3)-f(4)-3>0, (Cl) f(l)-f(2)-l>0, (С2) f(3)-f(4)-2>0. (СЗ) На рисунке стрелками указаны зависимости между нижними и верхними границами для различных значений неизвестных, ко- Рис. 8.8. Общая схема управления системы ALICE. торые соответствуют дугам, соединяющим вершины f(i) и /(/), принадлежащие члену Тр в том же ограничении (С). Допустим, известно, что нижняя граница /(3) несет инфор- мацию о нижних границах f(2) и f(l). Одна из вершин — f(4)—ничего не получает от вершин f(3), f(2) и f(l); она не имеет предшественников. В этом случае ALICE обрабатывает сначала наиболее простое ограничение, в котором в части Тп присутствует f (4), т. е. ограничение (СЗ). Предположим, что реальная нижняя граница f(4) равна 5. Тогда из ограничения (СЗ) следует, что /(3) ^7. Таким обра- зом, следующим обрабатывается ограничение (С1), так как его члены больше не содержат неизученных предшественников. Из него следует f(l) + f(2)>3 + 5 + 7. Предположим также, что из графа следует f (1) ig 8. Тогда /(2) ^7. Таким образом, все ограничения учтены в правильном порядке и с получением максимальной информации. Из послед- него оставшегося ограничения (С2) следует, что f(l) =8, и окончательно получаем /(2) =7, f(3) =7, f(4) = 5. С помощью графа и подобного анализа можно получить верхние границы и извлечь новую информацию. Система ALICE в фазе вывода
478 ГЛАВА 8 остается максимально долгое время, переходя попеременно от графа к алгебраическим процедурам, максимально откладывая выбор. Однако, когда уже невозможно получить никакой новой информации, необходимо сделать какое-либо предположение, вводящее дополнительные небольшие ограничения в задачу и позволяющее продвинуться в ее решении. Система ALICE не- пременно должна сделать выбор (рис. 8.8). 8.5.3. Процедура выбора В системе предусмотрены семь различных типов выбора. Приведем их в приоритетном для системы порядке. 1. Выбрать одну из альтернативных ветвей в ограничении типа ИЛИ. 2. Зафиксировать нижнюю или верхнюю границу значения пе- ременной. 3. Установить предел стоимости назначения. 4. Ввести локальную нумерацию для уравнений двух или трех переменных. 5. Ввести глобальную нумерацию, когда размер задачи превы- шает фиксированный порог. 6. Назначить предшественника для точки из представляемого множества. 7. Выбрать изображение точки исходного множества. Выбор типа выбора Тип 1. Выбрать одну из альтернативных ветвей в ограниче- нии типа ИЛИ. ALICE выбирает его всякий раз, когда одна из ветвей ограничения типа ИЛИ содержит не более двух пере- менных. Тип 2, Зафиксировать нижнюю или верхнюю границу значе- ния переменной. В выборе этого типа используется переменная, которая участвует в максимальном числе ограничений и имеет наибольшее множество изображений. Затем это множество де- лится на два. Выбор имеет смысл только тогда, когда множе- ство изображения является числовым множеством. Тип 3. Установить предел стоимости назначения. Этот выбор является оптимистическим. Он осуществляется на втором эта- пе, когда уже найдено очевидное решение. Друг за другом исключаются максимальные стоимости до тех пор, пока для каждой точки множества D множество дуг не будет уменьшено наполовину. Типы 4 и 5. Ввести локальную нумерацию для уравнений двух или трех переменных. Ввести глобальную нумерацию,, когда размер задачи превышает фиксированный порог. Эти
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 479 типы зависят от производительности ЭВМ. Бесполезно произво- дить сложную формальную обработку, если задача стала не- большой по размеру. Чем меньше ограничений и чем меньше дуг из множества D к множеству /, тем более выражено стремление ALICE останавливаться на этих типах выбора. ALICE всегда знает, что она умеет делать, и это принимается в расчет при оценке предельного размера. Ограничения равен- ства связаны с наибольшим числом формальных средств анализа, и наоборот, ограничения неравенства, а тем более огра- ничения типа ИЛИ, не принадлежащие к типу 1, требуют мень- шего числа средств. Чем большее число ограничений принадле- жит к двум последним типам, тем быстрее достигается пре- дельный размер, инициирующий нумерацию. Типы 6 и 7. Назначить предшественника для точки из пред- ставляемого множества. Выбрать изображение точки исходного множества. В данном случае речь идет об определении пары (объект из D, изображение из /). Эти процедуры применимы только к последнему состоянию, когда пространство поиска уже достаточно уменьшено. Типу 6 отдается предпочтение во всех случаях, когда множество I должно быть получено целиком, существует хотя бы одна точка множества I, у которой меньше предшественников, чем минимальное число преемников у точек множества D, или ALICE отдает предпочтение точке с наиболь- шими ограничениями. В обоих случаях ALICE использует на- бор критериев для выбора пары (исходная точка, точка изоб- ражения), которая даст наибольшее количество информации при последующем решении задачи. На различных стадиях решения задачи каждый критерий применяется только в том случае, когда для этого имеется не- сколько причин. Обозначим через т цену наилучшего кандида- та по этому критерию. ALICE считает данный критерий выде- ленным тогда и только тогда, Когда менее четверти кандидатов имеют цену, превышающую т—(zn/4). Таким образом, эта процедура исключает критерии с плоской зависимостью (все цены имеют близкие значения) или слабые критерии (слишком много высоких цен). Подмножество кандидатов, отобранных с помощью одного критерия, затем фильтруется с помощью вто- рого критерия и так до тех пор, пока не останется один канди- дат (рис. 8.9). Список критериев, используемых системой ALICE, приведен в табл. 8.4. Они работают и в графическом, и в алгебраическом представлениях. Затем будут приведены продукционные пра- вила, определяющие стратегию, т. е. порядок, в котором эти критерии рассматриваются в системе.
ГЛАВА 8 Трудность ограничения была определена в разд. 5.2.3. Гло- бальная трудность ограничений на переменную из множества D представляет собой сумму элементарных трудностей. Целью Значение критерия Рис. 8.9. Значения трех критериев для 4 переменных. Выбор системы — пе- ременная 3. всех критериев является выделение наиболее трудных точек. Таким образом, критерий (6) принимает во внимание точки с Таблица 8.4 Список критериев для .выбора точки в исходном множестве а. Минимальное число преемников. Ь. Максимальное число точек в разъединении. с. Максимальное число алгебраических ограничений, в которых эти точки появляются. d. Минимальное значение глобальной трудности для этих ограничений. е. Максимальное значение коэффициентов на этих точках. f. Максимум минимального значения оценки дуг преемников *. g. Максимальное значение отрыва *. h. Максимальное значение значимости *. Список критериев для выбора точки из множества изображения а. Число возможных предшественников *. Р- Число реальных предшественников *. V. Числовое значение этой точки. 6. Значения коэффициентов этой точки. * Объяснения приведены в тексте. наибольшей - минимально возможной стоимостью. Критерий (7) оказывает влияние на проблемы оптимизации. Отрыв точки — разность между наиболее низкой стоимостью и стоимостью, которая следует непосредственно за ней. Чем выше отрыв, тем более критической является точка.
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 481 Критерий (8) относится к алгебраическим ограничениям. Значимость переменной х определяется суммой изменений трудностей при изменении х от минимального до максимального значения. Сумма берется по множеству тех ограничений, в ко- торых присутствует переменная х. Значимость х возрастает, когда глобальная трудность ограничений по переменной х уменьшается. Критерий (9) относится к предшественникам и, ue D и также возможен для каждой точки v из I, тогда как реальными предшественниками из критерия (10) являются точки и из D, для которых точки v являются изображением. Упорядочивание критериев и стратегия ALICE Порядок, в котором располагаются критерии, выбирается самой системой. Он зависит, с одной стороны, от типа решае- мой задачи (уже по формулировке ALICE знает, что определен- ные критерии не подходят для данного случая), а с другой— от стадии, на которой находится .решение задачи. Два метаэвристических правила, имеющие весьма общий характер, используются для выбора стратегии: 1) сделать наиболее информативный набор; 2) сделать выбор наименьшей стоимости. Вытекающий из них порядок критериев определяется сле- дующими продукционными правилами: • ЕСЛИ этап = 0 (Чтение формулировки) А неизвестные являются булевыми ТО исключить критерий (а) КОНЕЦ ЕСЛИ • ЕСЛИ не имеется ни одного разъединения ИЛИ ЕСЛИ все вершины имеют одинаковое число разъединений ТО исключить критерий (Ь) КОНЕЦ ЕСЛИ • ЕСЛИ не имеется ни одного алгебраического ограничения | ТО исключить критерии (с), (d) и (А) КОНЕЦ ЕСЛИ • ЕСЛИ все ограничения являются алгебраическими 4 ограничения являются линейными ТО для. вычисления трудностей использовать ' упрощенные формулы, первым использовать критерий (/г). КОНЕЦ ЕСЛИ 16 Ж.-Л. Лорьер
482 ГЛАВА 8 • ЕСЛИ решаемая задача не связана с оптимизацией ИЛИ ЕСЛИ не имеется оценок по дугам D'XI | ТО исключить критерии (f) и (g) КОНЕЦ ЕСЛИ • ЕСЛИ не существует коэффициента на D | ТО исключить критерий (е) КОНЕЦ ЕСЛИ • ЕСЛИ не существует коэффициента на I ТО исключить критерий (б) КОНЕЦ ЕСЛИ • ЕСЛИ должны быть получены все точки | ТО установить критерий (а) на минимум КОНЕЦ ЕСЛИ • ЕСЛИ требуются максимальные степени на Z{Z>AfA = O} ТО в качестве формулы для (а) взять: число предшественников (о) —макси- мальная степень (о) установить критерий (а) на максимум КОНЕЦ ЕСЛИ • ЕСЛИ задача является оптимизационной 4 требуется минимизация функции f (D) ТО установить критерий (0) на максимум ИНАЧЕ установить критерий (0) на минимум КОНЕЦ ЕСЛИ • ЕСЛИ существуют ограничения на {соответственно на^>} Л эти ограничения действуют на числовые значения {соответственно на коэффициенты} точек‘О ТО установить критерий (у) {соответственно (б)} на максимум {соответственно на минимум} ИНАЧЕ исключить критерий (у) {соответственно (б)} КОНЕЦ ЕСЛИ • ЕСЛИ этап = 1 (исследование выполнимости задачи) И ЕСЛИ не существует тривиального решения | ТО вначале использовать критерии (a),(b),(с),(d) и (е) КОНЕЦ ЕСЛИ
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 483 • ЕСЛИ этап = 2 (решение задачи) ТО осуществить выбор типа 3, использовать вначале критерии и (h) КОНЕЦ ЕСЛИ • ЕСЛИ этап = 3 ТО ЕСЛИ полное число возвратов назад меньше D ТО вначале использовать критерии (/),(§) и (А) КОНЕЦ ЕСЛИ ЕСЛИ число возвратов назад меньше 2 X D ТО вначале использовать критерии (a),(A),(g) и (А) ИНАЧЕ сохранить только критерии (а), (6), (с), (А) и (е) КОНЕЦ ЕСЛИ КОНЕЦ ЕСЛИ Таким образом, по мере перехода от одного этапа к дру- гому программа сначала является «подозрительной», затем,как только найдено решение, “оптимистичной” и снова “подозри- тельной” при увеличении числа неудачных выборов, когда число ограничений возрастает. Подчеркнем, что хотя сами критерии и их упорядочивание являются всего лишь эвристическими пра- вилами, но ALICE находит безупречно оптимальные решения. Другими словами, у нее не возникает противоречия между эври- стикой и строгостью решения. Перейдем к рассмотрению средств, используемых в системе ALICE для доказательства оп- тимальности решения, полученного с помощью этих эвристиче- ских правил. Доказательства оптимальности Как только получено решение, полная стоимость которого равна ZO, добавляется ограничение Z ZO ко всем задачам минимизации, для которых Z является функцией стоимости. Если функция имеет полиномиальный вид, это ограничение до- бавляется к исходным алгебраическим ограничениям. Доказа,- тельство оптимальности производится в том случае, когда встре- чается неразрешимая задача. Рассмотрим два часто встречающихся частных случая, обра- ботка которых выполняется по-разному. Один из них относится к функции стоимости вида Zl=min X стоим {и, f (и)), f ut=D 16*
484 ГЛАВА 8 который встречается каждый раз, когда определены дуги (в ча- стности, в задачах о коммивояжере, о вращении, о распределе- нии), а для другого функция стоимости имеет вид Z2 = min max а («) * f {и) f u^D и он относится к задачам, в которых играет роль только наибо- лее высокая стоимость с учетом весового коэффициента а (и) (задачи упорядочивания, окрашивания, разрезания). Случай 1. На этапе 3 ALICE обычным образом добивается уменьшения стоимости. Каждая точка и из D приводит к мини- мальной стоимости, равной min стоим (u, v). V Эта величина разделяется между всеми стоимостями дуг, исхо- дящих из и таким образом, чтобы минимальная стоимость для каждой точки была нулевой. Если в последующем соответствую- щая дуга исключается, то ALICE осуществляет новое уменьше- ние стоимостей. Полученная таким образом полная сумма принимается за текущую, нижнюю границу Z решения. Опти- мальность доказывается исключением дуг со стоимостью, превы- шающей Z0 — Z до тех пор, пока одна из точек не будет иметь преемника. Случай 2. Для получения решения, лучшего в строгом смысле, чем известное решение для величины Z0, для всех и из D изображения v должны удовлетворять следующему соот- ношению: v < a (u) * Z0. Это неравенство настолько же уменьшает множество возмож- ных изображений в каждой точке. Более того, нижняя граница оптимального значения Z вычисляется, исходя из всех ограни- чений вида Vu, v^D, Р(и, п) =>Q(«X как в случае 1. Если для точек изображения устанавливаются максимальные степени DMA(v), то ALICE уменьшает также нижнюю границу Z, где Z представляет собой ближайшее целое w, такое, что сумма i £ DMA(v) 0—1
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 485 превышает число точек в D, каждая из которых должна иметь изображение. Вычисления границ имеют важное значение лишь в том слу- чае, если они позволяют на достаточно раннем этапе прекратить дальнейший поиск и доказательства оптимальности. Отметим, что они всегда основываются на необходимых условиях, кото- рым должно удовлетворять каждое решение, т. е. они выпол- няются с помощью погружения пространства поиска в более Расширенное простран- ство R реше- ния z Начальное -пространство £ Найти x/Hfay, решение г* Рис. 8.10. Ограничения пространства поиска. обширное пространство с меньшим числом ограничений (рис. 8.10). Таким образом, по построению каждое решение из R яв- ляется по крайней мере таким же хорошим, как и лучшее ре- шение из Е. Вычисление нижней границы является двойственной задачей по отношению к процессу выбора и ограничивает снизу реаль- ное значение Z*: Z > Z‘ > Z0. 8.6. Подробные примеры решения 8.6.1. Логическо-арифметическая головоломка Франсуа и Жорж играют в теннис. Франсуа побеждает Жоржа со счетом шесть три. Подающие проигрывают четыре раза. У кого была первая подача? Для постановки задачи нам потребуется вектор, показываю- щий, чья была /-я подача (/= 1, , 9), и еще один вектор, показывающий, кто выиграл. Введем обозначения: { ФП(/)—!, если /-я подача у Франсуа, 0 в противном случае; ЖП(/) = 1, если /-я подача у Жоржа, 0 в противном случае;
486 ГЛАВА 8 ФВ (/)=1, если у-й раз выиграл Франсуа, 0 в противном случае; ЖВ(у) = 1, если у-й раз выиграл Жорж, 0 в -противном случае. Из правил игры следует: ФП (у) = 1 — ЖП (у) (подает ф или Ж) ЖП (у) = 1 — ЖП (у — 1), для У ¥= 1 (Ф и Ж подают по очереди) ФВ (у) — 1 — ЖВ (у) (выигрывает Ф или Ж) ФВ(9)=1 (последний раз выигры- вает Ф) Полная формулировка задачи для ALICE выглядит следую- щим образом: ПУСТЬ МНОЖЕСТВО ИГРА = [1,9] BOOL = [0,1] НАЙТИ ФУНКЦИИ ФП.ЖП.ФВ.ЖВ ИГРА-* BOOL С Vy у 6= ИГРА (ФП (у) = 1 - ЖП (/)) А (1) ((у =# 1) =>ЖП (у) = I - ЖП (у - 1)) Л (2) (ФВ(у) = 1-ЖВ(у)) (3) С £ ФВ(/) = 6 (4) с S . [ФП(у)*ЖВ(у)4-ЖП(у)*(у)] = 4 (5) j <= ИГРА (ограничения по проигранным подачам) С ФВ (9) = 1 (6) КОНЕЦ Задача может быть решена без перебора, как это и делает ALICE. Сначала из условий (1) и (3) исключаются перемен- ные ФП(у) и ФВ(у’). После подстановки в (4) и (5) получаем Е.ЖВ(у)=3 (4z) 1ЖП(у)-2-ЖП(у)-ЖВ(у) + ЖВ(у) = 4 (50 Кстати сказать, все ЖП(у') получены из одного значения ЖП(1) с помощью соотношения (2): ЖП (у) = 1 — ЖП (1) для четных у, ЖП(у) = ЖП(1) для нечетных у.
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 487 Подставляя эти значения в выражение (5!)^ получаем 5ЖП (1) + 4 - 4ЖП (1) - 2 Z (ЖП (/) - ЖВ (/)) + £ ЖВ(/) = 4. (5ii) Затем, используя выражение (4т), находим ЖП(1)-2Е(ЖП(/)-ЖВ (/)) + 3 = 0. (5Ш) Анализ с помощью модуля конгруэнции этого равенства пока- зывает, что ЖП(1) является нечетным и в графе этот факт от- ражается в выражении ЖП(1) = (1). Таким образом, первая подача была у Жоржа. Замечание. Сумма У (ЖП (/) • ЖВ (/)), таким образом, равна 2, и, поскольку ЖП (j) = 1 при нечетном /, число нечетных игр, выигранных Жоржем, также равно 2. Так как девятая игра с необходимостью была выиграна Франсуа, у Жоржа имеется 4-3/2 возможностей выигрыша в нечетных играх и 4 в четных, т. е. в общей сложности для данной ситуации возможны 24 пар- тии, хотя ALICE дает решение без единого выбора. 8.6.2. Задача из области производства бумаги Предприятие должно выполнить заказ по производству п различных сортов бумаги. Каждый из сортов может быть по- лучен на любой одной из М бумагоделательных машин. Из-за высокой стоимости изменения состава бумажной массы каждый сорт бумаги должен быть обязательно произведен целиком на одной и той же машине. Известно количество бумаги в тоннах q(i), которое нужно произвести для каждого сорта i при усло- вии, что максимальная производительность каждой машины со- ставляет p(j), j — 1, т. И наконец, известна полная стои- мость c(t,/) производства бумаги сорта i на машине / для каж- дой пары (i,/). Требуется в указанных условиях организовать производство с наименьшими затратами. Примем следующие числовые данные (реальный случай, предложенный Н. Sandi): п = 10 сортов, т — 4 машины. На входном языке ALICE задача формулируется сразу: Р (j) 1 2 3 4 5 6 7 8 9 10 4 3 5 10 1 2 3 5 3 8 2 <- <7 (0 1 9 13 9 1 3 14 15 7 9 15 8 2 . 10 13 9 20 6 17 7 9 16 17 1 3 20 18 15 11 14 13 8 8 12 17 12 4 3 5 4 19 2 6 15 19 4 . 15 20 с V, /)
488 ГЛАВА 8 Формулировка задачи: ПУСТЬ множество Бумага = [1,п] Машина — [1 ,т] Коэффициент q Бумага р Машина с Бумага * Машина НАЙТИ функцию f: Бумага-*Машина С V/e Машина Е i е Бумага я (О < р (/) f(0 = / С КОНЕ! min 2 f j Z е Бумага с (.i, f (0) 10, 4 3, 5, 10, 1, 2, 3, 5, 3, 8, 2. 9, 10, 20, 3. 13, 9, 1, з, 14, 15, 7, 9, 15, 8. 13, 9, 20, 6, 17, 7, 9, 16, 17, 1. 18, 15, П, 14, 13, 8, 8, 12, 17, 12. 5, 4, 19, 2, 6, 15, 19, 4, 15, 20. Первая фаза. В самом начале первой фазы программа пы- тается определить, существует ли реализуемое решение, т. е. функция производства f, удовлетворяющая всем ограничениям, кроме оптимизации: min с (г, f (0)- f Ограничение, накладываемое на производительность Е?(0^ sC р(г), определяет необходимое условие выполнимости задачи, которое достигается путем расйространения этого ограничения на все множество машин. Из него получаем Е q(i)< Е р(/)- Ze Бумага /е Машина С приведенными числовыми значениями обе эти суммы совпа- дают, их значения равны 42. Из этого программа делает вы- воды: 1) Нельзя заранее сказать о невозможности решения задачи. 2) Для всех j знак должен быть заменен на строгое ра- венство, исключение недопустимо.
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 489 3) Тем не менее определенные назначения запрещены в тех случаях, когда значение q(i) превышает связанное с ним значе- ние p(j). Для таких случаев имеем q(i) > p(j) => f (i)#= j. Из этого следует, что f(3)=/= 1 и /(2), f(3), /(7), f(9)y=4. Больше здесь ничего сделать нельзя, и программа должна сде- лать выбор. Выбор по ограничению ИЛИ не может быть выпол- нен, так как не имеется ни одного ограничения такого типа. Вы- бор по малым значениям в принципе возможен, но исключается программой, которая считает пространство поиска достаточно малым (410 = 1 048 576), для того чтобы сделать более точный выбор типа f(i) = j. Напомним критерии, которыми здесь рас- полагает программа для определения выбора. Критерии для выбора в предшествующей вершине i: at min преемников b: max разъединений с: max число ограничений ci d: max трудности ограничений е: max max коэффициентов f: max min оценки g: max отрыва h: max значимости При каждом выборе программа начинает определять рас- сматриваемый сорт бумаги в зависимости от этих критериев. Три критерия — Ь, с и d—исключаются сразу как не имеющие отношения к данной задаче: связанные значения являются и останутся в дальнейшем нулевыми для всех i. Затем на первой фазе отвергаются критерии оптимизации f, g и h. Остаются два критерия — а и е. Распределение значений для критерия е (10 8 5 5 ...) является менее значимым, чем для критерия а. Действительно, только сорт 3 имеет двух преемни- ков и распределение для этого критерия имеет вид (2 3 3 3 4...). Итак, с помощью критерия е выделяется сорт бумаги 3, кото- рому этот критерий оказывает предпочтение перед сортами 2, 7 и 9. Выбор машины j происходит с помощью следующего на- бора критериев: Критерии для вершины-преемника /: а: число возможных предшественников 0: число действительных предшественников у: численное значение, связанное с / 6: коэффициент для j Критерий а не совсем пригоден, так как выделяет от 10 до 6 предшественников. Критерий р для первого выбора вообще не
490 ГЛАВА 8 принимается во внимание, так как дает нулевые результаты. Критерий у относится к оптимизации и также не пригоден для данного случая. Подходящим оказывается толькр критерий 6, который относится к коэффициенту для /, присутствующему в данной совокупности ограничений. Для облегчения решения задачи с учетом коэффициента p(j), который является вторым членом равенства, программа оставляет максимально возможную свободу для i и сохраняет максимальное значение p(j). Таким образом, первые рассмот- ренные программой критерии для выбора i и / предусматри- вают следующее: разместить производство наиболее трудного сорта бумаги (критерий е) на наименее загруженной машине (критерий б), т. е. производство бумаги сорта 3 на ма- шине 3: 6 7 8 9 10 1 2 3 4 5 3 1 9 13 5 9 10 1 1 3 2 14 3 15 5 7 3 9 8 15 2 8 2 10 13 9 20 6 17 7 9 16 17 1 3 20 18 15 11 14 13 8 8 12 17 12 4 3 5 “2 Выбор 1: f(3) = 3. Реальная производительность 6 ЭТОЙ 15 машины 4 уменьшается 20 ДО 10. Никаких других вариантов не просматривается. Для того чтобы сделать выбор 2, программа опять последовательно ана- лизирует подходящие критерии и на первое место перед крите- рием а выходит критерий е, так как распределение становится следующим: (8 5 5 5...). Выбирается сорт бумаги 9. Крите- рии аир отдают равное предпочтение двум машинам — 2 и 3. Окончательно их выделяет критерий р: с точки зрения решения хорошей стратегией для учета ограничений на первой фазе яв- ляется максимально возможное снятие ограничений с изобра- жения. Машина 2 еще не загружена, поэтому делается следую- щий выбор: Выбор 2: f (9) = 2. Таким образом, реальная производительность машины 2 ста- новится равной 2, а программа, для того чтобы выполнить огра- ничение У, q (i) = р (/) должна запретить на этой машине про- изводство f(l), f(2), f (6), f(7) и f (8). Других возможностей не имеется и третий выбор опять ставит на первое место критерий а, поскольку два сорта бумаги — 2 и 7 — снова имеют не более двух преемников. Их нельзя выделить на основе критерия е, с помощью которого в обоих случаях получается значение 5. В конце концов вступает в действие критерий f и программа выбирает такие сорта бумаги, производство которых во всех
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 491 случаях обходится дороже. Итак, третий выбор про- граммы: Выбор 3: f(2)= 1 для стоимости, равной 9. Итак, возможность производства на машине 1 уменьшилась до 4 и программа далее выбирает /(7)=/= 1 и, следовательно, f(7) = 3. Четвертый выбор происходит с использованием тех же самых критериев. Нужно разместить производство бумаги сорта 6, и критерий f оказывает одинаковое предпочтение сразу двум машинам—1 и 4, — стоимости выполнения работ на которых равны 15. Выбирается машина 1 как менее загруженная (кри- терий б) Выбор 4: f(6)= 1. Как показано выше, ограничения на производительность яв- ляются равенствами и единственный сорт бумаги обладает еди- ничным значением q (i), которое соответствует остаточной про- изводительности машины 1. Отсюда сразу получаем f(4) = 1. Итак, для сорта 8 наименее дорогой машиной является ма- шина 4: Выбор 5: f(8) = 4. Использование машины 4 запрещается, поскольку обяза- тельным условием является f(l) = 3. Для двух оставшихся сор- тов, задания для которых равны 2, полезным критерием яв- ляется f, с помощью которого получаем Выбор 6: f (5) — 3. Отсюда окончательно находим f(10)=2. Таким образом, полное найденное решение 123456789 10 3231313422 имеет полную стоимость, равную 99. Вторая фаза. Получив подобное решение всего лишь после шести выборов и без возвращений назад, на второй фазе про- грамма предпринимает попытку получить “хорошее” решение. Для этого она использует критерии, которые связаны со стои- мостью и вначале были отвергнуты. Так, если сорт бумаги, опре- деленный в результате первого выбора по тем же причинам, по-прежнему равен 3, то машина, на которой предполагается его выпускать, выбирается программой исходя из наименьшей стоимости производства (критерий f) Выбор 1: f (3) = 3. Этот выбор совпадает с предыдущим, однако затем: Выбор 2: f (9) = 1, так как именно первая машина дает для этого сорта наимень- шую стоимость производства. Далее с необходимостью следует
492 ГЛАВА 8 f(4)=l, и применение критерия f приводит к следующей по- следовательности выборов: Выбор 3: /(2) = 2, Выбор 4: /(7) = 3, Выбор 5: f(6) = 2, Выбор 6: f (1) = 4, Выбор 7: f(8) = 3, Выбор 8: f (5) = 3, откуда следует f( 10) = 2. . Новое решение, полученное с помощью критериев оптими- зации, существенно лучше старого: 123456789 10 4231323 312 Полная стоимость производства равна 84. Третья фаза. Все проделанное до сих пор не является беспо- лезным, но как получить действительно оптимальное решение? Проследим за дальнейшим ходом действий ALICE. Каждый сорт бумаги i должен иметь изображение f(t), поэтому выра- жение функции стоимости Z c(i, i e Бумага показывает, что величина Z во всех случаях превышает сумму минимальных значений коэффициентов c(i,j) для каждого сорта бумаги I. Обозначим эту величину через Z: Z— min с (z, /) I s Бумага /е Машина и напомним еще раз, что Z Z. Но программа, кроме того, вы- полняет преобразование стоимостей, вычитая из всех значений стоимость производства бумаги сорта i (z-й столбец таблицы; для программы — это совокупность дуг, исходящих из z) — ми- нимальную стоимость для этого сорта. Тогда новые стоимости c'(z,/) получают 1 следующие значения: 8 9 10 2 3 4 5 6 Т 3 1 9 8 5 0 10 1 1 2 8 3 8 5 0 3 5 8 0 2 7 2 10 8 0 9 4 И 0 2 12 2 0 3 20 • 13 4 3 0 6 0 12 0 7 0 1 8 1 ' 8 0 2 11 19 Вычтенные 5 9 1 2 6( 7 7 4 15 1 гначения
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 493 Сумма вычтенных величин 7 = 67. Точное соотношение прини- мает вид Z = Z+ Sc'G, /). ~ i - Лучшее известное решение ZO = 84, и, поскольку все по- ложительны по определению, имеем Z<Z’<Z0 или 67 Z* «С 84, где Z* — искомое оптимальное значение. ALICE исключает, все значения стоимости, строго превышаю- щие 84 — 67— 1 = 16, которые не могут дать такого же хоро- шего решения, как в фазе 2. Дуга для данного случая проходит через точки (10,4) и определяет стоимость, уменьшенную до 19. Других вариантов нет, и первый выбор ALICE делает с по- мощью критерия оптимизации ^--максимума отрыва. При этом выбирается дуга нулевой стоимости, так как в противном слу- чае стоимость оказалась бы максимальной. Значения отрывов в данном случае равны просто следующим после минимальных значений стоимости в каждом столбце: Сорт 123456789 10 Отрыв 8091711527 Таким образом, первый выбор в последней фазе: Выбор 1: f (3) — 3, т, е. все три различных критерия дают один и тот же резуль- тат. Затем тот же критерий дает: Выбор 2: f (1) = 4. Отсюда следует /({)=+4 для всех остальных сортов бумаги. В частности, запрещено сведение к нулю стоимостей для сортов 4, 5 и 8. ALICE вычитает новые минимумы из столбцов 1, 7 и 5, Что при двух сделанных предположениях (Выбор 1, Выбор 2) дает для значения нижней границы Z: Z (Выбор 1, Выбор 2) = Z + 1 + 7 + 5 = 80. Приведенные стоимости, строго превышающие 3, необходимо исключить, так как с их помощью нельзя получить решение, удовлетворяющее программу. Остается
494 ГЛАВА 8 1 2 3 4 5 6 7 8 9 10 5 1 2 3 5 3 8 2 1 9 0 0 1 0 0 0 2 10 0 3 0 2 2 0 3 10 0 1 1 3 2 -1 —7 -5 Из сделанных исключений следует f(10) = 2, и таким же об- разом выполняется третий выбор: Выбор 3: f (8) = 1. Из ограничения на объем производства следует, что f(9)#=l. Таким образом, для этого сорта бумаги требуется новое вычи- тание. В результате Z становится равным /(Выбор 1, Выбор 2, Выбор 3) = = Z (Выбор 1, Выбор 2)-|-2 = 82, хотя разрешены только нулевые и единичные стоимости. В ча- стности, f(4)#=2, следовательно, f(4) = 1. Затем Выбор 4: f(7) = 1, из которого следует /(2)^=1 и f(5)#=l. Отсюда f(5) = 3 и f(2) = 2. Из этого в свою очередь следует: /(9)#=2 и f(6)#=3. Отсюда f(9) = 3 и f(6.) = 2. Это в конце концов дает решение стоимостью 82. • Доказательство оптимальности Теперь для ALICE остается только еще раз вернуться к сде- ланным четырем выборам для доказательства их оптимальности или найти лучшее решение. Выбор 4: f(7)=l. Анализ этого выбора является тривиаль- ным. Поскольку известно решение стоимостью 82, подходящим оказывается только нулевой отрыв, следовательно, необходимо принять f(7)=l, так как в этом случае отрыв равен 1.
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 495 Рис. 8.11. Оптимальное решение стоимостью 82. Выбор 3: f(8)=l. В данном случае верхняя граница равна 80, а отрыв равен 3. Этот выбор приводит к шагу назад. Выбор 2: f(l)==4. Верхняя граница равна 67, а связанный с ней отрыв равен 8. Исследуется случай f (1) =/= 4. При этом ве- личина Z (выбор 1) принимает значение 67 + 8 = 75. Поскольку существуют еще три другие возможности размещения производ- ства бумаги сорта 1, то ALICE приступает к повторному изуче- нию ситуации. Дуги (10, 1) и (10, 3) исключаются, из чего сле- дует f (10) = 2. Также исключаются дуги (4, 1), (5, 2), (5,3), что дает/(5) = 4. Ограничение по производительности приводит к /(4) = 4. При этом четвертая машина полностью загружена, следова- тельно, f(8)#=4. Но так как действует ограничение по стои- мости, то / (8) =/=2 и f(8)¥=3. Отсюда следует, что ,/(8)=1 и с(8, 1)==5. _ /(выбор 1) = 75+ 5 = 80. Такйм образом, завершить решение нужно только с помощью дуг стоимостью ниже 2. Но f(9)^ 1, так как оставшаяся про- изводительность первой машины является недостаточной для
496 ГЛАВА 8 этого сорта бумаги и, следовательно, таким путем завершить ре- шение задачи нельзя. Тогда остается только первый выбор: Выбор 1: f(3) = 3. Остается единственная возможность сделать f(3) = 2 с Z — = 67 + 9 = 76. Запрещены все стоимости, превышающие 5 = = 82 — 76— 1. В частности, необходимо сделать одновременно f(l) = 4 и f(5) = 4. Эти два условия несовместимы, так как предполагают общее производство 5 единиц на машине, кото- рая способна произвести не больше 3, т. е. невозможно полу- чить решение стоимостью меньше 82. Окончательный вид дерева поиска представлен на рис. 8.11, который показывает оптималь- ность полученного решения. 8.7. Задачи, решенные с помощью системы ALICE а: Число неизвестных (вершины D) -, Ь: Число возможных значений (вершины Л); с: Число алгебраических ограничений; d: Время решения в секундах на IBM 43 31; е: Число возвратов назад. а Ь с d е Пример 1: упорядочивание 9 9 1 1 0 Модифицированный пример 1 (разд. 8.2.3) 9 9 1 2 1 Пример 2: неравенства 5 2 3 1 0 Пример 3: локализация 5 8 1 2 0 Перестановки 9 9 33 4 0 Логическая головоломка (разд. 8.7.2) 25 25 14 4 1 Распределение времени 11 11 6 2 0 Восстановление 5 8 2 3 0 Восемь ферзей 8 8 1 5 0 Пять ферзей 64 64 1 1 0 Ложная информация 10 10 8 1 С Майк и Джон играют в теннис 19 6 21 3 1 send + more = money 12 18 7 4 0 Donald + Gerald = Robert 15 12 9 9 4 Lyndon*b = Johnson 16 14 7 4 0 Пересекающиеся числа 26 10 28 6 0 Пересекающиеся операции 21 20 37 7 0 Умножение 29 20 23 249 1826 Магический квадрат 3-го порядка 9 9 8 4 0 Магический квадрат 4-го порядка 16 16 10 7 0 Неоднородный квадрат 17 29 1 10 7 Куб 3-го порядка 27 27 50 18 0 Магическая сфера 26 26 8 6 0 Диски 4 8 9 3 0 Миссионеры и людоеды 80 13 10 11 4 Конь Эйлера 64 64 0 5 0 Пикник 9 6 7 4 0 Двое играют в теннис 18 18 47 3 0 Распределение ресурсов 6 3 2 1 0
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 497 • - а b с d е Разделение 15 32 1 4 4 32 327 1 47 128 43 327 1 86 628 ♦ 45 512 1 91 815 130 878 1 186 2464 Восстановление 15 32 1 4 4 130 878 1 75 429 Линейное отсечение 9 9 2 2 1 54 54 2 3 0 53 53 2 5 7 647 70 2 41 953 Вложение капитала 60 2 30 46 0 60 2 30 49 0 Линейные программы 8 2 4 3 1 10 . 2 6 2 ' 0' Тест Haldi IBM 15 35 1 120 2824 Квадратичные программы 6 2 4 4 4 18 2 4 29 37 24 2 4 39 98 32 2 4 92 411 40 2 4 309 1677 Упорядочивание 100 250 300 26 0 Разъединительное упорядочивание 100 250 310 54 27 Более короткий путь 25 25 56 17 14 Максимальный поток 15 65 28 .15 16 Назначение 20 20 0 10 18 Перенос 20 10 20 15 10 Минимальное дерево 60 60 0 6 0 Максимальная связь 110 ПО 0 5 0 Путь Эйлера 60 60 0 9 5 Отсечение в плоскости 24 20 14 4 0 30 28 23 7 .0 Расположение в плоскости земли 36 26 107 17 б Задача коммивояжера 6 6 1 1 0 10 10 1 6 27 25 25 1 47 433 Существование контура Гамильтона 10 10 0 1 0 20 20 0 2 0 64 64 0 5 0 ПО ПО 0 73 1220 150 150 0 188 2636 Поездки с ограничениями 10 10 2 13 18 25 25 2 67 625 Раскрашивание 40 40 1 17 1 ' 99 99 1 71 124- 150 130 1 162 250 40 4 1 6 0 ПО 4 1 12 . 4 150 4 1 18 24 Планирование 186 27 2 16 12 186 28 2 4 0 Максимальная связь 12 2 2 2 1 32 2. 2 2 0 80 2 2 241 2056
498 ГЛАВА 8 а Ь С d е Бумажная фабрика 4 10 2 6 1 10 30 2 17 14 Локализация 10 10 2 5 0 20 40 2 30 98 Вращение SNCF 40 40 2 17 24 40 40 2 14 47 53 53 2 31 138 8.^_ Эффективность системы и общие замечания Выше уже говорилось, что ALICE является эффективной си- стемой и ее производительность может оказаться выше, чем у хороших специальных программ. Мы попытаемся объяснить этот удивительный факт на примерах. В основе успешной ра- боты системы лежат два важных обстоятельства. Первое заклю- чается в более эффективной формальной обработке выражений по сравнению с обычно применяемыми в решении задач чис- ленными расчетами. Распространение ограничений позволяет задержать выбор на максимально долгое время. Второе обстоя- тельство связано с качеством выбора, когда без него нельзя обойтись. Набор возможных критериев является очень слож- ным, так как охватывает все семейства задач. Когда встречает- ся непредвиденный случай и начинает работать специальный алгоритм, использующий схему перебора, то его характеристики оказываются значительно хуже. В отличие от этого ALICE тщательно изучает контекст за- дачи и ищет подходящие критерии не только для задачи цели- ком, но и для каждого выбора в пределах данной задачи. В наи- худших случаях ее поведение соответствует поведению спе- циальной программы. Большую часть времени ALICE будет рассматривать, по крайней мере для некоторых выборов, неожи- данный критерий, применение которого предполагалось для сов- сем другого семейства задач, а в действительности вполне под- ходящего для данной ситуации. Для некоторых задач, решае- мых с помощью карандаша и бумаги, можно показать, что подход ALICE приводит к меньшему размеру дерева поиска, чем при решении “от руки”. 8.8.1. Пример 1 Задачи криптарифметики являются классическими, не тре- буют обширных познаний в математике и поэтому представ- ляют собой хороший пример для сравнения. Суть задач сво- дится к тому, что берется простая операция, например сложе-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 499 ние двух чисел. Затем цифры заменяются буквами, причем каж- дой букве соответствует одна цифра (по основанию 10) и двум разным буквам соответствуют две разные цифры. Требуется восстановить замененные буквами цифры, которые определяют правильное выполнение операции. Для решения задач такого рода можно составить численные программы, работающие с по- мощью перебора по классической схеме (гл. 5). Для простоты числовые значения буквам можно присваивать справа налево, последовательно определяя пригодность текущих значений. Об- щая схема алгоритма имеет вид НАЧАЛО /-1 ВЫБОР значений букв в /-м столбце Вычисление /-го результата Про-верка на выполнимость ЕСЛИ результат отличается от уже выбранных значений ТО двигаться дальше; ИНАЧЕ вернуться к последнему выбору КОНЕЦ ЕСЛИ КОНЕЦ Используем эту программу как начальную точку отсчета. Ньюэлл и Саймон (1978) в течение долгого времени изучали действия человека при решении такого типа задач. В частности, они изучили множество протоколов на эту тему и с помощью продукционной системы пытались построить модель процесса решения. Один из рассматривавшихся примеров имел следую- щий вид: GERALD + DONALD = ROBERT Буквы слева G, D и R не равны нулю. Решение занимает несколько страниц, даже если значение D дано по условию. Проверьте ваши способности на этой задаче, а затем сравните с решением, полученным системой ALICE. Если ваше простран- ство поиска, содержащее все решения, будет состоять менее чем из двадцати узлов, то вы оставите далеко позади лучшие решения, изученные Ньюэллом и Саймоном. Поясним на этом примере основной недостаток алгоритмов, действующих по методу слепого перебора. При каждом'выборе используется только небольшая часть информации и в неудач- ном порядке. Подходящий порядок в действительности зависит
500 ГЛАВА 8 от каждой операции, и может быть найден только с использо- ванием точных результатов символьной обработки ограниче- ний. Число предпринимаемых попыток зависит от числа неза- висимых букв-операндов, которых в данном случае шесть: D, L, A, N, О и G. Таким образом, число попыток, которые нужно будет сделать равно примерно 101/4! или 151200. В отличие от этого ALICE полностью решает задачу с использованием шести конечных узлов. Обозначим через а, b, с, d и е переносы в старший разряд при сложении, взятые слева направо. Тогда исходные ограниче- ния запишутся в виде 2-Р = 7’+10-е, (1) е + 2- £ = /?+ 10-d, (2) d + Ч- А = £+ 10-с, (3) с + R + N = В + 10 • Ь, (4) 6 + Е + О = О+ 10 -а, (5) а+6-4-£ = Я (6) Буквы должны соответствовать (биекция) целым числам в интервале [0, 9]. Первые выводы (в порядке, определяемом системой): Из ограничения (1) следует, что Т является четным. Из ограничения (5) следует, что (a = 0AS = 0A£ = 0) ИДИ (а = 1 A b = 1 А Е = 9). Из ограничения (2) следует, что R =s е (по модулю 2). Из ограничения (3) следует, что Е = d (по модулю 2). Кроме того, все переносы не превышают 1, так как сумма двух букв не может превышать 17. Из этих условий больше нельзя получить никаких других сведений, поэтому должен быть сделан первый выбор. Только что полученное ограничение ИЛИ может оказать в этом суще- ственную помощь. Тогда Выбор 1: £' = 0, следовательно, и а = &=0. При этом изменился вид трех ограничений, а ограничение (5) становится тривиальным. d + 2- А = 10- с, (3z) с + R + N = В, (4/) G + D = R. (6/) Следствия. Из ограничения (3i) следует, что d является чет- ным, следовательно, d — О и А — 5с. Изображение 0 уже свя-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 501 зано с Е. Тогда граф дает, что А = 5, с = 1 и ограничение (3i) исключается. Из ограничения (6i) следует, что R 3, так как G a D должны быть различны и G + D sg 9, отсюда G 8 и D 8. G + D подставим вместо R в ограничение (4Z) и с помощью арифметического модуля (описанного в разд. 4.3.2) выведем два новых ограничения: 14- G + D + АГ (значение превышает В) и В7^7, (7г) так как минимальный набор из трех различных значений в про- странстве изображений дает сумму, равную 6. Из неравенства (7г) в свою очередь следует G<5, £><5, а также G + D = R^7. Затем снова анализируются ограничения (1), (2) и (Qi), так как уточнены значения входящих в них переменных. Из ус- ловия R 7 и ограничения (6t) теперь следует, что 6^6 и D 6. Из ограничения (1) ничего нового не получается, а из ограничения (2) следует L 3, так как R 7 и L 1, так как R 3. ' Все ограничения уже проанализированы и необходимо сде- лать следующий выбор. Существует несколько кандидатов (В и переносы), имеющих только по два возможных значения, и остановиться на одном из них можно с помощью критерия трудности. Наибольшей значимостью обладает переменная е, ко- торая фигурирует в двух простых ограничениях. Выбор 1.1: е = 0. Перепишем систему ограничений: 2-D = T, | (ограничения из графа (1“) 2-L = R, ) с четными Т и R) (2U) 1 + G + D + W = B, (4ii) G + D = R (QU) Выводы. Кроме этого, граф «знает», что 4 В 9, 1<Л/<5, 3</?<7, 1 1<L<3, 1 <G<5. Анализ новых ограничений (lii) и (2U) сразу уточняет эти гра- ницы: L = 2 или 3, /? = 4 или 5. В завершение выполняется полный перебор значений наиболее простого ограничения (2U), переменным которого соответствует наименьшее пространство изображений. Если R =4, то L = 2.
502 ГЛАВА 8 Из равенства £>4-6 = 4 следует, что D 3, а Т = 6, так как значения 0, 2, 4, 8 запрещены. Таким образом, £> = 3 и 6 = 1. Но при этом все значения 0, 1, 2, 3, 4 и 5 уже использованы и ограничение (4ii) В = 5 4- N не позволяет получить решения. Если = 6, то L — 3 и {6,£)} = {2,4}, тогда Т = 8, так как зна- чение 4 уже использовано. Отсюда следует, что D = 4 и 6 = 1. И снова больше не остается свободных значений для N в уравнении 4ii: B — 7-\-N- Таким образом, последний выбор оказывается под угрозой. Ос- тается только одна возможность: Выбор 1.2: е= 1. В этом случае к ограничениям (4ii) и (6й) . добавляются 2-£) = Т4-10, (Hit) 1 4- 2 • L = /?, (2iii) т. е. должно быть нечетным. Используя вновь результаты выбора 1, получим ,3<Я<7. Значение 5 уже закреплено за А, поэтому R = 3 или 7. Но анализ уравнения (Ни) дает £> ^ 6, а из уравнения (би) полу- чаем, что R 7. Окончательно имеем /? = 7, £ = 3 и В = N 4- 8, т. е. N = 1 и В = 9. Остается £>4-6 = 7 при условии £) ^6 и 6 > 1. Но значение 1 уже присвоено N, что указывает на то, что это на- правление решения является тупиковым. Выбор 1 оказался не- удачным. Выбор 2: Е = 9, следовательно a = Z> = l. Сразу составим новые уравнения ^4-24 = 9 4-Ю с, (3iv) c4-/?4-2V = B+10, ' (4io) 1 4- 6 + £> = R. (6/v) Первым анализируется ограничение (3iv), которое по условию четности дает d = 1, отсюда следует е4-2£ = /?4-Ю ’ (2i«) и А — 4, так как Е уже равно 9 и с = 0. Отсюда получаем /? + ^ = В+10. (4v) При L <8 и/? <4 анализ уравнения (2iv) дает . 17 > R 4- 10, т. е. /?<7,
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 503 а также е + 27^ 14, т. е. L 7, L — 1 или 8. Из других огра- ничений можно получить В 5 и N 3. После этого необхо- димо сделать следующий выбор, при выполнении которого удобно использовать тот факт, что L имеет всего лишь двух преемников. Выбор 2.1: L — 7. Сначала анализируется ограничение е+ 14 = /?+ Ю. (2о), Но А — 4, поэтому необходимо, чтобы R — 5 и е — 1. Подстав- ляя эти данные в уравнения (4п) и (6ш), получаем N' = В + 5, и D + G = 4. И далее D 3 и G 3. С другой стороны, огра- ничение 20 = 7+10 (In) требует, чтобы D 5, что приводит к противоречию. Остается последний случай: Выбор 2.2: L = 8. Имеем е + 6 = /?, . (2vi) ‘ R + N = B+IO, • (4ш) 1 + G + D = /?. (6vi) Из ограничения (2vi) следует, что ‘одновременно должно выпол- няться 7? = 6 или 7, а также G + D = 5 + е, откуда ALICE вы- водит С^5иД^5. Решение уравнения (2ui) путем перебора дает 1. Если 7? = 7, то е=1, G + D = 6, 20 = 7+10, следовательно, D — Ъ и 7 = 0, а также G — Г и N = В + 3. Затем В — 3 и N == 6. Решение задачи выглядит следующим образом: (GERALDON ВТ} (1 97 4 852 6 3 0) 2. Если 7? = 6, то е = 0, G + D = 5, 2D = Т, следовательно, D = 1 и 7 = 2, так как значения 4 и 6 уже за- няты. Но тогда G =5 — D—4, которая уже использована для значения А, откуда следует невозможность решения. Таким образом, найденное решение является единственным, дерево поиска приведено на рис. 8.12. Дерево имеет шесть
504 ГЛАВА 8 листьев, полное время его обработки составляет 9 с, что меньше времени, которое требуется программе, работающей по прин- Е=о £= 9 е=о e=f* L*7* L-8 —Ш* ----/? = <?* Решение — БЕЗ —— R- 6 Рис. 8.12. Дерево поиска системы ALICE для решения задачи GERALD + DONALD = ROBERT. Ветви, помеченные звездочкой, не приводят к решению. ципу перебора, типа приведенной в гл. 5 (1 мин и 10 с на ЭВМ IBM 4331). 8.8.2. Пример 2 Рассмотрим более сложную задачу — проблему перестано- вок, которая была предложена Марселем Шутценбергером. Найти все р перестановок п первых целых чисел, которые соответствуют двум ограничениям, накладываемым с помощью двух векторов т и а на интервале [1, п— 1]. Вектор монотонности т задает соответствие [1,п—1]-> —>{0, 1} и определяет следующее ограничение: 1) больше чём p(i) тогда и только тогда, когда m(i) = 1, или в формаль- ной записи V/, /е[1, п — 1], т (i) — 1 <=^p(i + 1) > р (i).1 Вектор опережения а[1,п—1] определяет: если а(г) = 0, то р (i) -f-1 расположен слева от р(/); если a(Z)=l, то р(0 + I расположен справа от p(i), кроме того, p(i)#= п. В формальной записи VZ, Ze[l, п— 1], а([) — 0 =>V/, у е [г 4-1, п] р (/)=/= р (0 + 1, ' (I) a (;) = 1 => [V/, / £= [ 1, i — 1] р (/) =/= р (Z) + 1} и р (/)=/= п: (2) Таким образом, вектор т определяет направление изменения величин^! соседних элементов, а вектор а указывает, что эле- мент р(|)+1 должен располагаться либо до, либо после эле- мента p(t) в искомой перестановке.
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 505 Рассмотрим простой числовой пример. Возьмем в качестве данных tn = [0 11] и а == [1 1 0]. Тогда из /п(1) = 0 следует р (2) </?(!), (а) из т(2)=1 следует р(3)>р(2), (Ь) из т (3) = 1 следует р (4) > р (3). (с) Отсюда р (4) > р (3) > р (2), следовательно, р (4) 3, (d) р(3)>2, (е) р(3)<3. (f) Теперь из ограничения (а) получаем р(1)>2, (g) и только элемент р(2) может быть равным единице Р(2) = 1; (h) С другой стороны, из а (1) = 1 следует р(1) 4, (i) из а(2) = 1 следует р (1) #= р (2) + 1, т. е. р(1)=#2, (j) и р (2) =# 4 (уже известно), ' из а (3) = 0 следует р (4) #= р (3) + 1. (к) Из ограничений (f) и (i) видно, что единственным возможным предшественником для 4 является р(4) = 4. Из ограничения (/) в свою очередь следует . Р(1) = 3, откуда р (3) = 2, что приводит к удовлетворению всех ограничений. Таким обра- зом, определяется единственная перестановка, удовлетворяющая условию задачи: р = [3 12 4]. Выводы ALICE в точности совпадают с ходом наших рас- суждений при решении этой задачи в уме. Если же мы хотим составить программу, специально предназначенную для реше- ния этой задачи, то тут же появляется принцип перебора, кото- рый, как обычно, можно представить в виде следующей схемы: А: Присвоить значения всем элементам. В: Проверить частичное решение и продвинуться дальше в слу- чае успеха.
506 ГЛАВА 8 С: В случае неудачи, но если надежда на получение решения еще не потеряна, вернуться назад. Этап А соответствует нахождению следующего элемента. Для естественного порядка на интервале [/, п] имеем A: z*-z’+l и р (z) *-р (z) + 1, начиная с нулевых начальных значений. Этап В является более тонким, так как порядок, в котором выполняются различные тесты, определяет эффективность на- шей программы. Должны быть предусмотрены три теста: /1: является ли р перестановкой? 12: удовлетворено ли ограничение на монотонность? /3: удовлетворено ли ограничение на опережение? Во избежание бесполезной работы эти тесты должны быть проведены как можно раньше. Тест t\ может быть выполнен сразу после нахождения p(z'), т. е. перед /3. Выполнение теста /3 вызывает затруднения при a(z)—О, так как не известны эле- менты р с индексами, превышающими I. В данном случае можно использовать следующие элементарные соображения. Поскольку р является перестановкой (следовательно, биекцией), из того что все р(/) отличны от p(z) + 1 для j е [i + 1, «]» следует, что либо p(z) + 1 встречалось перед I, т. е. уже размещенным эле- ментом, либо p(i) равно п. Таким образом, тест /3 может быть использован в нашем алгоритме. Тест /2, наоборот, очень прост. В среднем он исключает большее число случаев, чем тест 11, поэтому будем использовать его первым. Приведем теперь уточненную схему программы. Процедура PERM: Определить все перестановки п первых целых чисел с учетом данных булевых векторов а и т. р == 0; z <-1; р (0) *- 2; ПОКА i>0 /«- множество целых чисел от 1 до i — 1; (Проверить монотонность и убедиться, что р(/) можно увеличивать). ПОКА (т (г - 1) = 1 И р (z) < п) ИЛИ (m(z — 1) = 0 И p(z) < p(z — 1) — 1) р (z)«-р (z) + 1; (Проверка перестановки) ЕСЛИ p(j) ¥= Р (z) ТО {проверять опережение] q р (z). + 1; ok *- ложь ЕСЛИ d(i)'—Q {q входит в I или
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 507 Р V) "} ТО ЕСЛИ (p(i) = n) ИЛИ (3/ е/ Р (/) = <?) ТО ок <- истина; КОНЕЦ ЕСЛИ ИНАЧЕ {a(z):=l, q не входит в / и р (г) #= п} ЕСЛИ (p(z)=^n) И (Vje=Z Р (/) =И= <?) ТО ок-«-истина; КОНЕЦ ЕСЛИ КОНЕЦ ЕСЛИ ЕСЛИ ок {продвижение по i} ТО ЕСЛИ i = n ТО печатать решение; р(0<-«; {возврат назад} ИНАЧЕ 7*-z+1; КОНЕЦ ЕСЛИ КОНЕЦ ЕСЛИ КОНЕЦ ЕСЛИ {возврат в случае неудачи} КОНЕЦ ПОКА {возврат если p(i) не может больше увеличиваться} р (г)«- 0; i -«— z — 1; КОНЕЦ ПОКА КОНЕЦ PERM Программу можно улучшить, если в нее включить несколько специальных случаев. Однако необходимо сделать одно заме- чание. Эта программа является жесткой, она составлена без учета числовых данных... Все перестановки определяются в од- ном и том же порядке, какими бы ни были векторы а и т. Это может привести к неприятным последствиям, так как опреде- ленные значения p(z) могут быть жестко связаны с данными. И эти значения вполне могут оказаться в числе последних, на- ходящихся справа. Сколько же при этом будет бесполезной ра- боты! Однако не исключено (даже при решении этой задачи ме- тодом перебора, который ведет к экспоненциальному возраста- нию времени), что конкретные данные задачи могут привести
508 ГЛАВА 8 к такому ограничению числа перестановок, что время решения будет возрастать в соответствии с полиномиальной зависи- мостью. 8.8.3. Решение задачи системой ALICE Система ALICE при решении задачи учитывает все сказан- ное выше. Приступая к работе, она начинает вовсе не с построе- ния алгоритма, а с анализа данных. Предположим, например, что п = 9 и векторы а и т заданы в следующем виде: а = (1 1 1 1 0 1 1.0), т = (1 10 10 10 1). При m(i) = 0 ограничения, накладываемые вектрром т, дают “1 (Р 0 + О > Р 0)) или p(i+l)<p(l). Но р должно удовлетворять биекции, поэтому рО+1)<рО)- Отсюда следует р(2)>р(1), р (3) > р (2), р(4)<р(3), р(5)>р(4), р(6)<р(5), р(7)>р(6), р(8)<р(7), р(9)>р(8). Дуги (i, 9) в графе отсутствуют для всех i, для которых выпол- няется условие a(t)=l. Ограничения, накладываемые векто- ром а, приводят к 22 неравенствам: a (2) — 1 => р(1)#=р(2)+1; а(3) = 1=> р(1) =#= р(3) + 1, р(2)^=р(3)+1, a(4)=I=> Р(1) ¥=р(4)+ 1, р(2) =#= р (4) + 1, р(3)^р(4)+1, а (5) = 0 => Р (6) ¥= р(5) + 1, р (7) Ф р(5) + 1, р(8) ¥= р(5)+1, р (9) р (5) + 1, а (6) =£= 1 => р (1) р (6) +1, р (2) р (6) + 1, р (3) #= р (6) + 1, р (4) р (6) + 1, Р (5) =#= Р (6) + 1 > а(7)=1=Ф-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 509 р(1) ¥= р(7) + 1, р(2) р(7) +.1, р(3) р(7) + 1, р(4) =и= р(7) + 1, р(5)#=р(7)+ 1, р(6)¥=р(7)+ 1, д(8) — 0=> р(9) =/= р (8) + 1. Ограничения типа система предпочитает ограничениям типа =/=. Эти ограничения ALICE анализирует в порядке, кото- рый считает для себя удобным. Он задается вычислением функ- ции Грунди (разд. 8.5.2) и поясняется на рис. 8.13. Рис. 8.13. Граф ограничений по монотонности. Первым проверяемым ограничением является р(2)> р(1), из которого следует р(2)^ 2. Тогда р(3)> р(2) влечет за собой р(3)^3. Кроме того, p(5)^s2, р(7)^2, р(9)^2, р(4)^8, р(6)< 8, р(8)^ 8, р(2)< 8 и р(1)< 7. Теперь некоторые проанализированные ограничения с нера- венством исчезают, так как становятся тривиальными. Это от- носится, например, к р(6)=/= р(5) + 1 или к р(6)=0=р(7) + 1, по- скольку р (6) < р (5) и р (6) < р (7). На этом этапе новая информация не может быть выведена, но р является сюръекцией и точка 9 пространства изображений имеет в качестве предшественников только р(5) и р(9). Сначала выполняется выбор р(5) — 9. Он сразу приводит к тому, что исключаются пятнадцать дуг, так как помимо p(i)^9 для всех I, отличных от 5, из ограничений, определяе- мых вектором а, следует р(6)=#8, р(7)=Н=8, а из ограниче- ний, накладываемых вектором т, следует р(3) ^8, р(7) ^7, р(2)< 7, р(1)< 6, р(4)^ 7, р(6)^ 6, р(8)^ 6. Таким образом, только р(3) и р(9) могут быть равными 8. Выбор р (3) — 8 приводит к р (4) =/= 7 и р (7) 7. Точка 7 теперь имеет только двух предшественников. До- пуская, что р(2)=7, ALICE приходит к выводу, что р(1)= 6 или р (9) — 6. Положив р(1) =6, приходим к выводу, что р(4)=С4 и р (7) sg: 4, следовательно, р (6) 3, р (9) = 5. Приняв р(7) = 4 и учитывая единственное оставшееся огра- ничение р (4) =/= р (6) + 1, получаем для данного случая четыре решения 67819243 5, 67819342 5, 67829341 5, 6 7 8 3 9 1 4 2 5,
510 ГЛАВА 8 Для того чтобы найти 42 решения задач, надо вернуться только на шесть двоичных выборов, т. е. на 64 возможности вместо 9! = 362880. Для специальных программ существуют худшие случаи. Предположим на мгновение, что в качестве данных исполь- зуются /г =100 и т = а = (1с 98 нулями). Процедура PERM, будет работать всегда одинаковым обра- зом. Она последовательно находит векторы 1, 12, 123, 13, 132, 1324, 14, 142, 1423, 143, 1432, 14325 и т. д., хотя в действитель- ности, как это сразу и определяет ALICE с помощью анализа ограничений, содержащих неравенства типа с необходимо- стью следует р(2) > р(1) и р(2) > р(3) > р(4) ... > р (100), т. е. р(2)= 100. Кроме того, при этом тривиально удовлетворяются все огра- ничения, связанные с вектором опережения, так как для /^2 и i^3 выполняется соотношение р (/) < р (I). Следовательно, единственная степень свободы связана со значением р(1) в множестве [1, 99]. Имеется только 99 перестановок, удовлет- воряющих условию задач. Время, которое требуется ALICE для их нахождения, имеет полиномиальную зависимость от п. Конечно, подобный тип данных может быть специально пре- дусмотрен в программе PERM. Но с другими типами данных будет гораздо сложнее. Даже модифицированная программа PERM будет всегда Отставать для различных наборов данных, например, если в вектор а добавить несколько единиц (и задача не будет иметь решения) или заменить единицы на нули, и на- оборот. ‘Задача становится еще. более трудной, если в нее ввести новые ограничения, слегка изменив ее условия, как это часто происходит на практике. Если, например, потребовать, чтобы выполнялось условие p(n/2) = 1, то процедуру PERM будет очень трудно модифицировать, чтобы достаточно рано учесть это новое условие, тогда как ALICE его сразу использует и тем самым сокр'атит свой поиск. 8.9. Ввод условий задач на французском языке В настоящее время ведутся работы, направленные на то, чтобы условия задач вводить в наиболее естественном виде и предоставить систему в распоряжение любого пользователя, даже не специалиста по информатике. Речь в основном идет о том, чтобы снабдить систему общими знаниями, которые в бу- дущем помогут пользователю обходиться без уточнения теку-
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 511 щих объектов и их свойств. В идеальном случае это непосред- ственное восприятие французского языка в режиме интерактив- ного чтения и контроля. Прототип такой системы был реализован Лопес-Ласейком (С. Lopez-Laseica). Мы его рассмотрим ниже более подробно. Большая трудность в данном случае заключается в огромном объеме “текущих” знаний, которые мы используем во всех областях для выражения наших мыслей и взаимного обмена информацией. Каждый специалист по информатике знает, что самой сложной работой является понимание собеседника. Вместе с автором ограничим область применения системы математическими головоломками. Хотя к ним и не сводятся все возможные задачи, но тем не менее при их решении необходимо решить многие проблемы. Так, нужно глубоко понять условие задачи, не пропустить связи между фразами, которые могут на- ходиться далеко друг от друга, для того чтобы поставить, а затем и решить задачу. Достаточно краткий и сжатый язык ALICE является основой для этой системы. С использованием соответ- ствующей техники, разработанной в рамках искусственного интеллекта (различного рода словари, семантические сети), оказывается возможным с высокой эффективностью выполнить понимание условия й его перевод в традиционную форму. Для текста, занимающего половину страницы, требуется от одной до четырех секунд. 8.9.1. Принцип перевода Основную часть программы перевода составляют данные. Для каждого слова и для каждого его значения в специальном словаре указываются его синтаксические формы, семантические свойства и классы, слова, с которыми оно может быть связано в обычном смысле, выводы, которые могут из него следовать. В словаре, например, находится такая информация: ФРАНЦИЯ: определение группа следствие == элемент; = страна; = язык: французский, отношение национальность: государственный строй: = житель, страна. , француз, республика; В этом словаре содержится тысяча слов для обработки пяти- десяти формулировок. Глаголы в нем играют особую роль: с их помощью определяются действия, выражающие ограниче- ния. Например, для глагола «давать»:
512 ГЛАВА 8 ДАВАТЬ определение — глагол; группа = человек человеку; следствия = до: (дающий) имеет (предмет) после: (дающий) имеет (— предмет) (берущий) имеет (+ предмет) Для слова МЕНЯТЬ, которое соответствует синтаксической конструкции “А меняет у В X на Y”, в словаре находим МЕНЯТЬ (А В) (X У) определение = А дает X В п В дает У А. Программа, которая анализирует текст при помощи словаря, постепенно определяет подходящий смысл всех'слов, используя при этом синтаксические и семантические правила. С помощью глаголов определяется остов фразы (фаза 1). Затем обрабатываются вспомогательные слова, которые опре- деляют взаимодействие синтаксических групп друг с другом (фаза 2). Если какая-либо информация содержится в словаре, но является бесполезной в данном контексте, т. е. с ее помощью нельзя сформулировать ни одно ограничение, такая информа- ция забывается. Например, прилагательное “серый” в сочетании “серый кот” полезно только в том случае, если ниже в условии задачи говорится о “рыжем коте”. Если же цвет не упоминается, то такая информация бесполезна. • В третьей фазе программа выражает условие на языке ALIGE. Заметим, что такой перевод может быть сделан только тогда, когда правильно понят полный смысл текста. При этом сле- дует учесть, что смысл каждой фразы может зависеть от кон- текста, например фраза “Жан и профессор читают” может означать: * действие (Жан) = действие (профессор) — чтение а может означать только, что Жан =И= профессор. Исходя из оставшейся части условия программа определяет полезный смысл фразы в условии головоломки. Поясним ска- занное на примере. 8.9.2. Пример перевода Условие задачи вводится на французском языке с консоль- ного терминала. Текст условия: Пять человек различных национальностей живут в пяти пер- рых домах одной из улиц. Они являются представителями пяти
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 513 различных профессий, и у каждого из них есть свои любимые напитки и животные, среди которых нет повторяющихся. До- ма, в которых они живут, покрашены в различные цвета. Из- вестно что: Англичанин живет в красном доме. У испанца есть собака. Японец является художником. Итальянец пьет чай. Норвежец живет в первом доме слева. Владелец зеленого дома пьет кофе. Зеленый дом находится справа от белого. Скульптор разводит улиток. Дипломат живет в желтом доме. В доме посередине пьют молоко. Норвежец живет рядом с голубым домом. Скрипач пьет фруктовые соки. Лису держат в доме, соседнем с домом врача. Лошадь держат по соседству с домом дипломата. Кто держит зебру и кто пьет воду? В первой фазе интерпетатор образует именные группы. Множество “человек” объединяется в семантическую сеть с двумя свойствами: “5” и “различные национальности”. Глагол “живет” образует такую же группу по отношению к тем, к кому он относится, то же относится к артиклям французского языка, несущим определенную смысловую нагрузку. Множество “дом” также формируется вместе со своими признаками. В резуль- тате последовательного анализа всех фраз образуется внутрен- няя сеть. Для более простого описания сети вводятся стандартные обозначения. Так “жить”, “находиться в”, “обладать” заме- няются на “иметь дом”, а отношения “слева”, “рядом”, “посе- редине” заменяются числами. Окончательно, перед тем как се- мантическая сеть передается системе ALICE, устанавливается следующее соответствие между смыслом слов и целыми числами: НАЦ(1) Англичанин НАЦ(2) *—> Испанец НАЦ(З) -<—> Японец НАЦ(4) *—* Итальянец НАЦ(5) *—> Норвежец ДОМ(1) ♦—* Красный ДОМ(2) *-> Зеленый ДОМ(З) ♦—> Белый 1/2 17- Ж.-Л. Лорьер
514 ГЛАВА 8 ДОМ(4) —- Желтый ДОМ(5) *—> Голубой ПР0(1) ► Художник ПРО(2) -*—► Скульптор ПРО(З) > Дипломат ПРО(4) *—> Скрипач ПРО(5) <-> Врач НАП(1) *-> Чай НАП(2) -«-> Кофе НАП(З) *—> Молоко НАП(4) ч—> Фруктовый сок НАП(5) *—► Вода ЖИВ(1) «—> Собака ЖИВ(2) *—> Улитка ЖИВ(З) ->->- Лиса ЖИВ(4) Лошадь ЖИВ(5) <-> Зебра Теперь все ограничения выражены с помощью этих соответ- ствий и окончательная формулировка условия передается си- стеме в следующем виде: ПУСТЬ МНОЖЕСТВО ES INT = 1 5 НЦ INT= 1 5 ДМ INT = 1 5 ПР INT= 1 5 SM INT = 1 5 жв INT = 1 5 НАЙТИ НП INT = 1 5 BIJ НАЦ НЦ —> ES ДОМ ДМ-—> ES ПРО ПР —> ES НАП НП —> ES ЖИВ ЖВ —> ES НАЦ 1=ДОМ 1 НАЦ 2= ЖИВ 1 НАЦ 3 = ПРО 1 НАЦ 4 = НАП 1 НАЦ 5=1 ДОМ 2 = НАП 2 ДОМ 2 = ДОМ 3+ 1 ПРО 3 = ЖИВ 2 ПРО 3 = ДОМ 4 НАП 3 = 3
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE 515 (НАЦ 5 = ДОМ 5+1) или (НАЦ 5 = ДОМ 5-1) ПРО 4 = НАЛ 4 (ЖИВ 3 = ПРО 5+1) или (ЖИВ 3 = ПРО 5-1) (ЖИВ 4 = ПРО 3+1) или (ЖИВ 4 = ПРО 3- 1) Головоломка решается за 4 с, при этом система выполняет один-единственный выбор. Конечно, формулировки большинства задач являются более длинными, запутанными и двусмысленными. Мы же хотели только показать принципиальную возможность решения задачи, условие которой сформулировано на разговорном французском языке. 1/2 17
Глава 9 УСВОЕНИЕ ЗНАНИЙ Обучение можно определить как совершенствование, связан- ное с приобретением опыта. Эта область применений перспектив- на для систем искусственного интеллекта: знания, которые необ- ходимо усвоить, настолько разнообразны, что идеальной являет- ся информационно-вычислительная система, овладевающая ими сама на основе примеров, а не получающая эти знания от нас в виде порций. Однако желание создать за короткий срок само- обучающуюся программу там, где мы даже не представляем ме- ханизм ее функционирования, является довольно иллюзорным. Кроме того, всякий обучаемый сталкивается с проблемой забывания: по ходу возникает так много разнообразных воз- можностей, что просто необходимо уметь что-то забывать. Та- ким образом, существует важное различие технологического характера между компьютерами и людьми относительно приоб- ретения знаний вообще и подходах к решению задач в част- ности. Можно сказать, что человек “запрограммирован” на приобре- тение знаний. Он не может делать что-либо без того, чтобы не запоминать, что делает (иногда даже против своей воли). С рождения человеку присуще рефлекторное поведение, и по природе он чрезвычайно любознателен. Всю жизнь он не может противостоять желанию искать, приобретать информацию: фик- сирует взгляд на том, что движется, напрягает слух при необыч- ном звуке... Компьютер же априори лишен такой программы общего поиска и обучения. 9.1. Различные типы обучения Отметим сначала, что процедура усвоения знаний имеет иерархическую структуру (рис. 9.1). Уровень 1 представляет просто программированное обучение: специальный фиксирован- ный код управляет тем, что должно быть сделано. Все обычные программы для компьютеров относятся к этому уровню, так же как и действия большинства промышленных роботов, для кото- рых, например, рука рабочего определяет раз и навсегда необ- ходимые движения для покраски автомобиля: он будет точно имитировать их в дальнейшем независимо от того, автомобиль перед ним или что-либо другое.
УСВОЕНИЕ ЗНАНИЙ 517 Уровень 2 соответствует запоминанию наизусть: все ситуации запоминаются вместе с действиями, которые нужно предпринять в каждой из них. Здесь поведение системы может быть обуслов- лено по Павлову: она получает «наказание», если перед новой ситуацией не находит хорошего решения, и «поощрение» в про- тивном случае. Некоторое усовершенствование этого метода представляется на уровне 3 статистическим запоминанием: в системе хранится Обуvenue с преобретением нобыа: знаний Усбоение знаний на примерах Статистичесное запоминание Запоминание наизусть Орогранмируемое обучение Рис. 9.1. Процедура усвоения знаний. лишь классификация ситуаций, полученная на основе анализа достаточно большого числа случаев: запоминаются только ком- поненты, соответствующие определенному действию. Затем на уровне 4 система может усваивать знания на примерах с по- мощью «учителя» (она способна к обобщению). Наконец, на уровне 5 обучение происходит без учителя; система в состоянии индуктивным способом порождать новые ситуации, выдвигать гипотезы и новые концепции. Отметим, что каким бы ни был уровень, вопрос о том, чтобы обучаться, начиная «с нуля», не стоит и обсуждать. Именно ми- нимум знаний для процесса обучения в той среде, где мы на- ходимся, представляет основную трудность для программирова- ния системы, действительно способной к приобретению знаний. 9.2. Обучение игре в шашки А. Сэмюэль, инженер фирмы ИБМ, написал для игры в шаш- ки хорошие программы в период с 1956 по 1967 г. В шашки играют на доске 8X8. Пешки (шашки) могут ходить только вперед, дамки — через поле, вперед и назад. Возможность пре- вращения пешки в дамку требует около 8 ходов. 9.2.1. Запоминание наизусть Первая программа, написанная Сэмюэлем, относилась к уровню 2. Он просмотрел около 180 000 позиций, взятых из лучших книг, для обучения своей программы! Так как это 17 Ж.-Л. Лорьер
518 ГЛАВА 9 довольно много (особенно для машин того времени), Сэмюэль воспользовался тремя процедурами управления памятью. а) Ситуации упорядочиваются для ускорения доступа, во-первых, по числу пешек и дамок у обоих игроков и, во-вто- рых, по частоте появления в опыте, т. е. в собственных играх программы. б) Симметричные ситуации, получаемые заменой белых по- лей на черные, рассматриваются одновременно. в) С того момента, как состояние памяти приближается к переполнению, вступает в действие процедура сброса позиций, 1 2 3 4 5 в 7 8 10 11 12 13 14 15 18 17 18 20 21 22 23 24 25 28 28 29 30 31 32 33 34 35 Рис. 9.2. Схема игровой доски. наименее часто встречающихся в самых последних партиях (так что Сэмюэль придумал на 15 лет раньше алгоритм заме- щения страниц для компьютеров с виртуальной памятью). Кроме того, некоторые полагают, что его идеи имеют отно- шение и к размеру слов на машинах ИБМ серий 700 и 7000, когда ему удалось найти хорошее представление для игровой доски (так как пешки ходят только по черным полям). Сэмюэль занумеровал поля расширенной схемы доски так, как показано на рис. 9.2. Четыре дополнительных поля 9, 18, 27 и 36 играют роль огра- ничителей и вся доска может быть представлена в виде вектора [1, 36] в одном машинном слове. Чтобы получить допустимые правилами ходы (без взятия), достаточно к номерам черных полей добавлять цифру 4 или 5 (Перемещение и превращение). За этой первой программой последовала следующая, усовер- шенствованная. В самом деле, было жаль терять имеющуюся информацию после записи позиции в память. Тогда Сэмюэль ввел дерево поиска для оценки будущих позиций. По глубине оно ограничивалось тремя полуходами, не считая взятия на последнем ходе или подстановки под удар черной пешки (эти ограничения иногда вынуждали к просмотру до двадцати полу- ходов). Наконец, Сэмюэль ввел полиномиальную функцию оце- нивания F = piPt.
УСВОЕНИЕ ЗНАНИЙ 519 Он выбрал 38 параметров р, и 38 характеристик Pi, среди которых отметим материальный выигрыш, контроль центра, число выдвинутых пешек, мобильность, число V-позиций (сво- бодное поле, окаймленное тремя черными пешками), число уг- роз, относительную продвинутость обоих лагерей. Таким образом, Сэмюэль был первым, кто запрограммировал процедуру альфа — бета, проявившуюся в шахматных програм- мах. Воспользуемся описанной программой в трех различных слу- чаях. 9.2.2. Усвоение знаний из книг Поскольку в памяти находятся все позиции, программа мо- жет оценить их во время каждой игры, пользуясь минимаксной процедурой с функцией оценивания F. Она подсчитывает по F число Н ходов, лучших по сравнению с хранящимися в памяти, и число худших ходов L. Если Н мало, a L велико, между реко- мендацией из книг и произведенным оцениванием наблюдается соответствие. В противном случае коэффициент «корреляции» С C = (L-H)/(L + H), равный 1 для случая полного соответствия, может измениться до —1, указывая на полное расхождение между книжным зна- нием и результатом оценивания по F. При С, отличном от 1, ситуация считается переоцененной при Н > 0, недооцененной при Н < 0. Отношение С,- для каждого параметра Pt вычисляет- ся по формуле _ Li-Ht Lt + Hi' где Hi — число-хбдов, стоящих в соответствии с piPi перед наи- лучшим ходом с pt < 0; Li — число ходов, стоящих в соответ- ствии с piPi после наилучшего хода с pi < 0. Если Ci отрицательно, нужно уменьшить значения положи- тельных pi. Если Ci положительно, нужно увеличить значения отрицательных р(-. Таким образом, программа обучения по кни- гам «решает» заменить параметр р* с наибольшим абсолютным значением коэффициента Ck, полагая Pt = 1, а для i #= k Pi = 2", если /г В результате программа сохраняет лишь 16 из 38 исход- ных характеристик. В каждый момент 22р/ имеют значение 0. Для каждой партии наименьшее С, дает штрафное очко 17*
520 ГЛАВА 9 соответствующей характеристике: после трех штрафных очков характеристика отбрасывается и заменяется на ту, которая на- ходится дольше всех в очереди ожидания. После двадцати партий программа усвоения знаний по кни- гам выходит на достаточно высокий уровень. 9.2.3. Обучение без учителя Так как речь идет об игре, то программа может играть сама против себя. Пользуясь разными значениями pit она может в этом случае усваивать знания самостоятельно! Пусть А и В— две версии программы с функциями оцени- вания Fa и Fb- Если А выигрывает, то слегка изменяются пара- метры Fb, если А проигрывает, она получает штрафное очко. После трех штрафных очков производят взаимный обмен функ- циями Fa и Fb и существенно изменяют параметры Fb. Этот ва- риант представляет собой попытку использовать классический метод градиента с возмущениями в невыпуклом пространстве. Используя эту идею и минимаксный подход, Сэмюэль напи- сал свою четвертую программу. 9.2.4. Обобщенное обучение Именно так определил Сэмюэль возможности новой про- граммы. Он не хотел согласиться с тем, что ни одна из его пре- дыдущих программ не могла обучаться во время сеанса игры. Ведь мы отдаем себе отчет в совершении ошибки уже через не- сколько часов и избегаем ее повторения в текущей партии. Про- грамма с использованием функций оценивания и процедурой альфа — бета также обладает свойством апостериорного.оцени- вания ходов: один раз она встречается с определенной позицией во время оценивания, а другой — через несколько' ходов на реальной игровой доске (рис. 9.3). В случае когда F представляет идеальную оценку и все про- исходит так, как и предвидели, мы должны получить F (S) = = F'(S). Если же F(S) > F'(S), оценка оказывается слишком оптимистичной и противник играет лучше, чем мы рассчитывали. В случае же усвоения знаний из книг программа уменьшает положительные веса и увеличивает отрицательные. Аналогично предыдущей процедуре снова вычисляются коэффициенты С^Ц-Н^Ц + Н^, где Hi теперь обозначает число случаев с начала партии, в ко- торых для i-й характеристики выполнялись неравенства рЛ-<0 и F(S)>F'(S).
УСВОЕНИЕ ЗНАНИЙ 521 Для F(S) < F'($) алгоритм тот же, но с учетом симме- трии. Напомним, что сама программа может играть и за “против- ника”. Эта возможность используется в середине партии, когда число возможных позиций особенно велико. В начале характеристики игры этой последней программы Сэмюэля относительно нестабильны, но в ее распоряжении уже Рис. 9.3. Два примера оценивания одной позиции. я—-ситуация, встречаемая при поиске с использованием процедуры альфа —бета.Ее оценка представляется F (S). б~та же ситуация во время реальной игры: оценка F' (S). имеется 180 000 ходов, введенных ранее для предыдущей про- граммы, и ночами она может играть против себя. В результате Сэмюэль постоянно стал проигрывать в шашки своей собствен- ной программе. Несколько позже эта программа, достигнув беспрецедентного для игровых программ уровня, выиграла у чемпиона штата Коннектикут (К. Nealey, 1962), оказала достойное сопротивле- ние чемпиону мира, хотя и проиграла ему по переписке четыре партии (W. Hellman, 1965). Программа играла все лучше и быстрее (вероятность нали- чия текущей позиции среди имеющихся в памяти возрастает с течением времени). Однако такое обобщенное обучение вклю- чало определенный риск, и Сэмюэлю повезло его обнаружить: обучение зависит от качества игры противника: если тот играет плохо, то и в программе устанавливаются плохие параметры. Действительно, использование минимаксной процедуры предпо- лагает, что противник играет наилучшим для себя образом. Если же противник играет плохо, программа делает из этого вывод (и неверный), что позиция была недооценена и меняет пара- метры. А так как обучение связано с каждым ходом (даже в течение партии), то совокупность параметров может быть полностью изменена уже через пятнадцать ходов. И тогда про- грамма начинает сама играть плохо, так что противнику доста- точно “неожиданно” начать играть хорошо для выигрыша всей партии!
522 ГЛАВА 9 Сэмюэль первым внес технические изменения в альфа — бе- та-процедуру: постоянное усечение дерева поиска в ширину и глу- бину, сортировку ходов на первом уровне. Но основное внима- ние он обратил на более важную проблему. Отметим сле- дующее: • По построению функция оценивания является линейной по каждой из характеристик. Однако некоторые характеристики Рис. 9.4. Иерархия сигнатур на трех уровнях. должны усиливаться. Так, если Pi и Р/ дают преимущество чер- ным, то член с Pi\Pj должен выражать такое преимущество. • По определению общая функция может быть представ- лена в табличной форме. Так как на учете имеются 38 характе- ристик, идеальной была бы таблица, соответствующая отобра- жению N38 b ’N. • При необходимости должен быть найден компромисс между слишком грубым линейным изменением, с одной сто- роны, и такой большой таблицей — с другой. Сэмюэль использовал идею таблиц сигнатур — иерархии таблиц, представляющей хорошее приближение к рассматривае- мой выше общей функции: 38 характеристик группируются по типу "(некоторые могут входить в разные группы); к одному типу относятся те характеристики, которые считаются, по мне- нию экспертов и самого Сэмюэля, взаимосвязанными. Каждая из них ограничена тем, что может принимать не более семи различных значений. В то же время коэффициент теперь припи- сывается всей комбинации значений внутри одного типа. На рис. 9.4 приведена общая схема расположения таблиц сигнатур.
УСВОЕНИЕ ЗНАНИЙ 523 Сэмюэль вновь ввел 180 000 экспертных ходов и рассчитал параметры с использованием метода корреляции. Было установ- лено, что примерно после 80000 ходов ситуация стабилизи- руется. В действительности все происходит так, как если бы каждый матричный элемент был единственным элементом: имеется 315 X 9 элементов для типа А, 125 X 3 для типа В и 343 для типа С, т. е. около 3500 элементов вместо 16 в программе 1. Так как большинство характеристик участвуют только в оп- ределенных фазах игры, ход всей партии делится на шесть фаз в зависимости от числа продвигающихся пешек и степени про- двинутости. Такое деление дополнительно уменьшает время расчетов. Отметим, что это время весьма незначительно, потому что оценивание представляет просто поиск в таблице. Вычисление F(S) происходит по одной инструкции: р2, р3, р4), Д2(.), Л9(.)), В2(.), в3(.)). Эта программа стала и останется настоящим чемпионом мира игры в шашки. Без использования процедуры альфа — бета она выбирает наилучший ход в 68 % случаев (против 32 % с поли- номиальным оцениванием и 16 % со случайным выбором), а с использованием процедуры альфа — бета существенно улучшает ее показатели. Кроме того, рассмотренный подход придает игре регулярность — исключает плохие ходы в течение всей партии. Большим недостатком игровых программ является необходи- мость в задании исходных характеристик pt без возможности их сгенерировать самой программой. Поэтому такое статистическое обучение является хорошим приемом и даже довольно часто ис- пользуется людьми на практике. Коллектив исследователей продолжил поиски в этом направ- лении и спроектировал систему, способную порождать некото- рую совокупность действий, полезных для целого ряда ситуаций. Это исследование проводилось в области робототехники, и си- стема называлась STRIPS (Stanford Research Institute Plan- ning System) (Fikes, Nilson, 1973). 9.3. Обучение робота полезным действиям. Система STRIPS Элементарные операции (или операторы) в окружающей ро- бота среде вначале описываются как тройки списков: • Первый список содержит условия, при которых может выполняться каждая операция. • Второй и третий списки уточняют факты, которые должны быть соответственно изъяты или добавлены к описанию среды,
524 ГЛАВА 9 если робот действительно использует рассматриваемую опера- цию. Необходимые модификации производятся в системе STRIPS с помощью процедуры доказательства теорем, основан- ной на методе резолюции (гл. 3) (рис. 9.5). Оператор 27: (переместить объект в комнате). Список С (условия) : Робот на полу. Робот в комнате х в месте Z1. Объект О на полу в Z1. Объект О переме- щаемый. Места Z1 и Z2 в комнате х. Список — ’ : Робот в Z1. Объект О в Z1. Список + : Робот в Z2. Объект О в Z2. Рис. 9.5. Пример описания элементарной операции в системе STRIPS. Обучение проводится каждый раз, как только система эф- фективно решает задачу. Она обращается к последовательности использованных элементарных операций, чтобы попытаться из- влечь дополнительную информацию. План, оказавшийся успеш- ным через п шагов, предположительно будет образцом для до- стижения аналогичных целей, образцом, который система STRIPS отбирает для дальнейшего использования. Последова- тельность таких операторов О\, ..., Оп сначала группируется в треугольную таблицу (рис. 9.6). По построению в этой таблице на пересечении строки i и столбца k располагаются факты, которые добавляются операто- ром ki и сохраняются до момента применения оператора i. Если теперь в строке j встречается описание, которое совпадает с опи- санием цели в некоторой новой задаче, достаточно извлечь на по- следовательности 01, ..., Оп нужную подпоследовательность. По- ловина работы уже сделана, и О/— последний используемый Рис: 9.6. Последовательности операторов в системе STRIPS.
УСВОЕНИЕ ЗНАНИЙ 525 оператор. Поднимаясь по таблице, теперь достаточно определить первый оператор Oi, условия которого удовлетворяют новой среде. Последовательность О„ 0,+ь • • •, О/ может быть непосред- ственно использована для достижения новой цели. Это макро- действие соответствует, например, тому, чтобы “взять объект О, открыть дверь, зажечь свет, подняться по лестнице, положить О, выключить свет, конец”; робот научился этому действию и его запомнил. Другая программа, разработанная Уотерманом для игры в покер, обучается с помощью апостериорного анализа своего собственного опыта. 9.4. Усвоение правил игры Уотерман исследовал игры в -покер для двух игроков при решении вопроса о ставках. Игрок может удвоить ставку, по- просить открыть карты противника, уравняв ставки, или сдать- ся. После открытия карт выигрыш переходит к игроку с более сильной картой и в это же время можно увидеть, существовала ли возможность выиграть больше или проиграть меньше. Такую информацию будет использовать программа для' последующих модификаций своих действий. Процесс замены карт осуществ- ляется здесь с помощью алгоритма, который максимально по- вышает надежду на индивидуальный выигрыш каждого игрока независимо от противника. Общая идея заключается в том, чтобы описать игру с по- мощью характеристического вектора и решений, принимаемых по совокупности правил продукций, отделенных от программы и по желанию изменяемых. Покер является игрой с неполной ин- формацией, которая требует оценки как карт, так и стиля игры противника. Ситуации здесь менее четко определены, чем в шашках, и можно продемонстрировать всю полезность правил продукций по сравнению с таблицами сигнатур. Минимаксная процедура в действительности не может играть обычную защит- ную роль: каждый ход является единственным и никогда боль- ше не встречается в партии. Вектор описания игры (дескриптивный вектор) обычно со- держит шесть компонент: — значение очков, определяющее достоинство данного соче- тания карт (УМ); — количество денег в банке (ИР)-, — предыдущая ставка противника (DR); — число карт, замененных противником (СЕ); — вероятность возможного блефа противника (ЕВ);
526 ГЛАВА 9 — стиль игры противника: более или менее консерватив- ный (СА). С другой стороны, программой вычисляются по совокупности партий с данным противником статистические характеристики: зависимость между ставками и действительным достоинством карт, число замеченных блефов, число решений сдаться. Правила продукций имеют вид Характеристический вектор ситуации—► объявление ставки Они являются упорядоченными: правило i может быть исполь- зовано только после правил с номерами от 1 до i— 1. Так, следующее правило (задаваемое учителем): “Игрок с надежно выигрышной комбинацией карт на руках должен максимально поднимать ставки, стараясь не рисковать заставить противника сдаться. Однако, если банк уже очень большой, следует попросить открыться” будет переведено для программы в следующей форме: RI: (SG‘, *, г, ♦ , РВ, СА)—>Мах R2: (SG*, Thaut, г, *, *, *)-> Открыться R2 будет рассматриваться перед R1 (Звездочка означает, что соответствующий параметр не яв- ляется существенным.) Значение параметра Thaut фиксируется заранее, например, ‘ положим Thaut — 100. Наличие г означает, что противник дей- ствительно пошел на повышение ставки (г > 0).'Значение Мах (максимальный уровень повышения без риска сдачи противни- ка) фиксируется другим правилом и зависит, в частности, от значений РВ и СА. Наконец, отметим, что такое правило может быть уточнено или изменено самой программой. Обучение с ис- пользованием учителя продолжается путем накопления знаний: хорошие правила получают большой приоритет, а область при- менения других ограничивается. Предполагается, что следующая информация дается учите- лем после каждого хода: — текущий вектор подходящих параметров; — хорошее решение; — причина этого решения. Рассмотрим три случая: 1 ) Программой принято хорошее решение по хорошим пра-( вилам, и в этом случае ничего не меняется. • 2 ) Ни один из членов, стоящих справа, не соответствует хо- j рошему решению, и применялось i-e правило: программа встав-д ляет на (i — 1)-е место правило, указанное учителем.
УСВОЕНИЕ ЗНАНИЙ 527 3 ) Перед применяемым правилом Rd или после него суще- ствует правило Rj, которое могло бы привести к хорошему ре- шению: параметры правил, которые помешали применению Rj, автоматически изменяются. Пример. Рассмотрим правила RI (al, *, с2, *, *, *) —> повысить на 5 R2(al, ftl, *, *, el, *)-> увеличить (РВ) на 0,5 (вероятность блефа противника) R3(a2, *, cl, *, el, *)—>повысить на 5 R4(al, *, *, *, *, *) —>увеличить (РВ) на 0,5 вместе с ограничениями, налагаемыми по определению: al >8, a2 < 10, Ы > 9, cl < 3, с2 > 11, el =0 и вектором (9, 4, 5, 7, 0, 5), соответствующим ситуации. Значение (VA1), следовательно, соответствует al или a2; (HP) и (DR) не пред- ставляют ни Ы, ни 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. В приведенной процедуре возможны две опасные ситуации. Первая связана со сверхограничениями правил и возникает при излишне пунктуальном учителе. Число правил возрастает до бесконечности, и каждое может быть применено только к од- ному случаю. Чтобы избежать этого, число правил ограничи- вают некоторым произвольным образом и последнее из них с вектором (», *, *, *, *) дает случайно выбранное решение.
528 ГЛАВА 9 Ввод вектора ситуации и хорошего решения Отработка правил 1СЛИ решение хорошее . ТОГДА КОНЕЦ ИНАЧЕ сконструировать новое подходящее правило Rp Пусть — правило, вызвавшее неверное решение ЕСЛИ существует правило 7?1, которое: — имеет в правой части такой же член, как и Rp — определяется неравенствами, совместимыми с неравенствами Rp ТОГДА ЕСЛИ /?1 находится перед Rd: ТОГДА обобщить опреде- ления Ri П Rp ИНАЧЕ (Ri расположено после Rp): ограничить определения всех параметров для правил, расположенных между Rd и Ri с тем, чтобы к ним не происходило обращение от текущего вектора КОНЕЦ-ЕСЛИ Иначе добавить новое правило Rp сразу за Rd КОНЕЦ_ЕСЛИ • <ОНЕЦ_ЕСЛИ Рис. 9.7. Процедура обучения правилам игры в покер. Это, впрочем, то единственное правило, с которого начинается здесь всякое обучение. Вторая ситуация связана с избыточностью: правило R\ мо- жет превратить любое следующее за ним правило R2 в беспо- лезное, так как область изменения параметров, соответствую- щая R2, включается в область правила для любых решений по /?1 или R2. Возможна и обратная ситуация, когда R1 обес- ценивает R0, которое предшествует ему, так как то же решение было бы принято системой, если бы R0 и не существовало. 1 Такая избыточность периодически проверяется и устраняется системой. (Указанный процесс осуществляется не в конце тур-
УСВОЕНИЕ ЗНАНИЙ 529 нира, а после каждой партии, так как правила могут изме- няться быстро.) Пример. Рассмотрим правила 7?1(а1, 61, *, *, *, *)—>dl. 7?2(а2, 62, cl, *, *, fl)->d2 7^3 (*, 62, *, *, *, /2) —> d3 7?4(*, 61, *, *, *, *)->d4 при ограничениях al >5, a2>10, 61 < 9, 62 < 4, cl <5, fl > 15 и f2 < 7. Правило /?1 превращает R2 в недостаточное, так как a2 > al и 62 < 61 и /?2 тем самым теряет смысл. Правило R4 превра- щает R3 в избыточное, так как 62 < 61 и f2 не используются, и R3 становится бесполезным. Заметим, что теперь все находится на своих местах и можно усваивать знания без учителя: каждый раз, когда открываются карты противника и программа проиграла партию, она сама трансформирует последнее правило в диалоге на правило сда- чи. Наоборот, если она выиграла, то поднимает ставки послед- него хода. Таким образом, в конце концов Уотерман придумал пять разных программ для игры в покер. Они играют: а) случайным образом; б) используя учителя; в) обучаясь автономно; г) Ис- пользуя правила, предоставленные хорошим игроком; д) с пол- ным обучением без задания характеристик вектора ситуации. Число правил никогда не превышает 30 и соответствие с игрой экспертов (после обучения) достигает 96 % (автономная программа). Программа по самому алгоритму довольно часто меняет решения для сходных ситуаций и легко блефует, не до- пуская ошибок и приводя некоторых игроков, в замешательство. Программы тестировались с помощью случайного набора из 25 комбинаций карт в игре против людей. Затем через некото- рое время роли сторон менялись. Программы легко выигрывали у игроков среднего класса и вели игру почти на равных с экс- пертами. Замечания. Программы Уотермана имеют два недостатка. Во-первых, как и в программах Сэмюэля, обучение происходит на числовых параметрах. Определяющие символические элемен- ты задаются априори. Во-вторых, неизменяемый порядок пра- вил усложняет работу программы и вызывает непредсказуемые явления: игра с упорядоченными правилами в действительности -подобна некоторой процедуре и всякое изменение вызывает
530 ГЛАВА 9 неконтролируемые граничные эффекты. Правила продукций те- ряют свои преимущества (гл. 7). Итак, существенные моменты усвоения знаний следующие: прежде всего необходимо определить понятия. Затем нужно уметь делать выводы (обычно по одному единственному слу- ' чаю) об определяющих характеристиках ситуации. Именно так в действительности поступает человек: никому не нужно дваж- ды объяснять, что не следует совать руку в огонь. Рассмотрим программу игры в шахматы, которая старается, исходя из од- ного единственного примера, понять и обобщить. 9.5. Обучение планам Эта программа Жака Питра воспринимает партии, реально сыгранные мастерами, пытается разобраться в них и вывести планы игр для других партий. Сначала она реализует лишь две элементарные стратегии: 1) если фигура находится под ударом противника, ее следует переместить; 2) если своя фигура Р1 атакует фигуру противника Р2, рас- смотреть ход Р\ * Р2. Пользуясь этими стратегиями, программа пытается разо- брать варианты атаки и защиты гает этого даже в том случае, Рис. 9.8. Начало партии. Ход белых. каждой из сторон, и она дости- когда угрозы, возникающие на доске, не приводятся в испол- нение. В работе ррограммы мож- но выделить три этапа: 1) разбор ситуации; 2) упрощение и обобще- ние последовательностей дей- ствий; 3) запоминание и исполь- зование найденного плана. Разбор ситуации Здесь можно отметить два интересных случая: 1. Пусть последний сыгранный ход — взятие фигуры против- ника. Рассмотрим, например, позицию на рис. 9.8 и следующие три хода: I. Cfe5 X сб, II. d7Xc6, III, Kf3Xg5 (ход, разбираемый программой).
УСВОЕНИЕ ЗНАНИЙ 531 Исходная ситуация Ход III Ход I IV-Дерево ответов противника (если сразу пошел К, по- следовательность действий нарушает- ся) V-Дерево ходов про- тивника (если про- тивник делает ход, отличный от хода II, он проигрывает) Ход II VI-Дерево ходов про- тивника (реальная ситуация) Рис. 9.9. Дерево разбора хода (шахматы). В действительности, для того чтобы понять ход III, нужно по- нять ход I, который его подготовил, а также ответный ему ход II. Поэтому, чтобы разобрать возможность такого взятия фи- гуры, программа порождает некоторым стандартным образом дерево, приведенное на рис. 9.9. В начале партии, которое нас интересует, мы находим для хода черных IV (пользуясь минимаксной процедурой): КХКе5 или же аб X С65; для хода V мы встречаем: & X сб (иначе бе- лые выигрывают фигуру), и при ходе VI черным становится ясно, что они теряют пешку. Урок, извлекаемый из ситуации (позже мы увидим, как программа его формирует и запоми- нает), можно сформулировать так: “чтобы Выиграть пешку, ох- раняемую только одной фигурой, надо пойти на обмен этой фигуры”. 2. Ходы второго типа, которыми интересуется программа,— угрозы, т. е. такие перемещения, которые на следующем ходу ведут к захвату фигуры, если противник не отреагирует соот- ветствующим образом. Программа констатирует угрозу, рас- сматривает, как и почему противник отражает ее, и обучается даже в том случае, если в действительности на шахматной дос- ке ничего серьезного не произошло (рис. 9.10). Ход I Угроза 0 Дерево своих ходов Дерево ходов про- тивника Е Рис. 9.10. Дерево исследования угрозы. Ход II парирует ход I Первый ход Е Дерево своих ходов
532 ГЛАВА 9 Таким образом, программа формирует и запоминает потен- циальные действия, сразу обучаясь атаковать и защищаться, даже если на реальной доске подобные комбинации не возни- кают. В каждом из рассмотренных случаев минимаксная про- цедура служит для объяснения сделанных ходов в той мере, в какой для всех других ходов она приводит к отрицательному результату. Упрощение и обобщение То дерево поиска, которое было рассмотрено выше и уточ- нено в текущей игре, сохраняется в памяти. Однако в шахма- тах мало шансов, чтобы два раза встретить одну и ту же си- туацию, поэтому запоминать нужно лишь характерные элементы ситуации. Это более сложная операция, чем при игре в шашки или покер, потому что даже пешка может изменить всю игру. Например, не возникает и вопроса, чтобы повторить схе- му игры в ситуации, представленной на рис. 9.8, если е5 заме- нить на еб. Следовательно, процедура упрощения сначала должна за- носить в дерево поиска лишь ’самые лучшие ходы каждой из сторон. В действительности здесь сохраняются только те ходы, которые создают или уничтожают возможности захвата фигур противника. После этого программа обобщает дерево ходов, которое она только что построила, ориентируясь на положитель- ный результат для однрго из соперников. При этом, во-первых, цвет фигур не учитывается и становится параметром, размещен- ным в корне дерева. Во-вторых, поля и сами фигуры представ- ляются следующими переменными: • Координаты поля не имеют значения, запоминаются лишь отношения между полями и условия расположения фигур. Так, начальная позиция Белые: Kpgl, Jlfl, d2. Черные: Кре8, Ке4 приводит к исход- ному дереву .0-лх^ (Л1) Ке4 перемещается — Л X Кре8 Это дерево обобщается следующим образом. Начальные усло- вия: своя ладья Л на поле а, конь противника на поле у, король противника на поле б; р, у, б расположены на одной линии. В результате получаем новое дерево . .0 - Л X Ку К перемещается — Л X Кр 6 которое связано с запиранием коня ладьей. лд (Д1) (Д2) Ла — р
УСВОЕНИЕ ЗНАНИЙ 533 • Имена фигур могут быть обобщены при некоторых усло- виях: каждая фигура, взятая у противника, может быть вна- чале заменена на фигуру той же или большей силы при сохра- нении положительного итога. Наоборот, каждая собственная фигура может быть заменена на свою же более слабую. Дере- во (А2) обобщается таким образом и дает дерево (ЛЗ): ----0 - РА X РЕу РА а - р (43) -----РЕ перемещается — РА X RE6 где РА выступает в роли своей фигуры, меньшей или равной ладье; РЕ — фигура противника, болёе сильная или равная коню; РЕ — король противника. Итак, концепция запирания найдена программой исходя из од- ного случая. , В некоторых ситуациях, когда фигура, например, просто бе- рется (она даже не вступала еще в игру), возможно дальней- шее обобщение. Этой фигуре приписывается произвольное значение (обычно нулевое), и ее поле рассматривается как неза- нятое. Деревья, обобщенные таким образом, представляют на- стоящие планы действий. Каждый из них соответствует некото- рому материальному выигрышу с последовательностями атак и защит и может быть использован независимо любым из про- тивников. Однако одного усвоения недостаточно, нужно еще уметь так представлять усвоенные знания в машине, чтобы использовать их эффективно: ведь будут порождены тысячи разных планов, и их структурирование (а может быть, и “забывание” некоторой части) совершенно необходимо. Изменение и использование планов Обобщенные деревья размещаются в памяти в форме, ана- логичной схемам Минского (М. Minsky, 1972). Каждая схема состоит из трех разных частей — обобщенные ходы, поля, само дерево. Поле -отыскивается по формальному имени, которое рассматривается как переменная, и по одному из состояний: V = пусто, А — своя фигура, Е = фигура противника с указа- нием соответствующего значения в двух последних случаях. Обобщенный ход определяется значением (обобщенным) и стоимостью фигуры, начальным и конечным полями хода и при необходимости условиями на промежуточных полях. Пример. ЛА а — d — хЕ С означает, что своя ладья, на- ходящаяся на поле а, берет фигуру противника на поле е по
534 ГЛАВА 9 силе, превышающей или равной слону, и что существует по крайней мере одно промежуточное пустое поле d. Наконец, дерево размещено в. памяти и в каждой вершине стоит номер соответствующего хода. Для данной позиции на шахматной доске теперь нужно найти все подходящие схемы. Однако это может оказаться дорогой операцией, если не при- нять мер предосторожности. Предположим, что первым ходом в дереве для некоторой схемы будет ЛА а — р. Если в текущий момент на доске име- ется ладья, то переменная а принимает некоторое значение, Таблица 9.1 Поля Ходы Дерево а Л4 (1) ЛА р — у — хЪ —(4)— Пусто (2) Е'^С играет f (2) I V У RE (3) ЛА р X V (4) ЛД а — р (3) 1 (1) после чего для Р возникает до четырнадцати возможных вариан- тов. Ясно, что нужно так организовать поиск, чтобы отбро- сить неподходящие планы как можно скорее (за минимальное число попыток). Прежде всего сохраняются только те планы, которые в принципе соответствуют имеющимся данным. Затем первыми рассматриваются наиболее выгодные обобщенные ходы, которые одновременно являются и наименее вероятными. Наименее вероятный ход определяется в каждой схеме с по- мощью функции оценивания следующего вида: min (значение полей хода) * [значение фигуры, min (значения других полей)], где значение (стоимость) поля тем больше, чем менее оно оп- ределено. Принимается следующая система: 32 очка за пустое поле; 8 очков за поле, занятое пешкой; 4 очка за поле, занятое фигурой; по 1 очку за поле короля, ферзя или уже известное поле. Наименее вероятный ход определяется по минимуму этой функции, и по ней упорядочиваются ходы в самой схеме. Тем самым план дерева (Л2) приводит к схеме (табл. 9.1), которая соответствует рис. 9.11 при ходе черных. Столбец “поля” схемы указывает прежде всего, что весь материал в наличии; затем придается значение переменной б (допустим, /t2). Столбец “Ходы” при упорядочении по реально-
УСВОЕНИЕ ЗНАНИЙ 535 му дереву начинался бы ходом (4) Ла —0, что приводило бы к 14 вариантам. Однако, упорядочив ходы по рассмотрен- ной выше функции, следует сначала рассмотреть ход (1) ЛА р — у — xh2. Изучение позиции путем анализа ходов ладьи, которые ведут к полю /г 2 через поле, занятое фигурой противника по силе, не уступающей коню, оставляет только ход (1) ЛИ а2— с2 — xh2. Ход ЛЛ8 — Й4— h2 связан с белой пешкой й4, которая не имеет большого значения. Теперь пе- ременные ходы (3) ЛЛрху полностью известны: это мо- жет быть только Ла2 X с2. Следовательно, исходное поле ладьи должно .быть а8 и ход (4) должен быть Ла8а2. Соответствие схемы с имею- щейся позицией успешно уста- новлено, и план, заложенный в дереве, должен быть испы- тан. Чтобы убедиться, что он приводит к успеху, программа обращается ко всем планам Рис. 9.11. Использование плана (ход черных). защиты черных и соответст- вующим схемам. Если конечный результат, оцененный мини- максной процедурой, является положительным для своего ла- геря, то исходный план принимается к действию. В противном случае рассматриваются другие планы первого уровня. Эта про- цедура уже использовалась в другой программе Ж. Питра (разд. 6.3). Заключение. Программа обучается лишь после того, как она разобралась в ситуации. Она нечувствительна к плохим хо- дам: если в реальной партии хороший ход не был найден, обу- чения не произойдет, если же был найден лучший ход, чем вы- полненный, то программа кое-чему научится. Усвоение новых знаний зависит от наличного багажа, потому что для разбора новой ситуации программа использует те схемы, которые уже зарегистрированы. Таким образом, может случиться, что на оп- ределенной стадии своего развития программа не сделает труд- ного хода, а выберет его позже после ряда других партий. Другим важным моментом является то, что рассмотренная процедура может быть применена для многих других игр. Ус- военные планы достаточно гибки: в противоположность про- граммам Уотермана они не императивны, а дают лишь указа- ние на возможные хорошие ходы. Решение принимается
536 ГЛАВА 9 минимаксной процедурой в соответствии с внешними факторами или на основе другой долговременной стратегии. Однако остается одна серьезная трудность — громадное чис- ло схем порождаемых планов (порядка десятков тысяч для всей игры), которое связано с наличием множества возможных вариантов для каждой ситуации и многообразием самих ситуа- ций в шахматах. Кроме того, довольно трудно отбрасывать по- сторонние ходы для рассматриваемых планов, чтобы в значи- тельной степени их упростить. Итак, программа усваивает новые знания, но не может эф- фективно их использовать. Эта фундаментальная проблема, и в настоящее время она не решена. Как ни странно, это скорее не проблема обучения, а “просто” проблема управления огром- ной базой знаний. Ее можно включить в проблематику метазна- ний и экспертных систем. 9.6. Учет характеристик С детского возраста человек учится вырабатывать понятия и ставить им в соответствие названия: он знает, что такое иг- рушка, дерево, дом, человек... Каким образом мы можем соот- носить с одним понятием различные примеры? Как выделяем мы характеристики этого понятия? П. Уинстон написал программу (Р. Winston. 1970), которая частично ответила на эти вопросы. С. Вере (S. Vere, 1979) пред- ложил в 1979 г. более совершенный вариант программы, кото- рый описан ниже. Программа П. Уинстона анализирует с помощью кинока- меры сцены, составленные из простых объектов: кубов, брусков, призм, пирамид. Вначале сцена обрабатывается с целью форми- рования некоторого разумного представления: каждый объект изолируется и отношения между объектами запоминаются с по- мощью размеченного графа, вершины которого соответствуют объектам. Выделяются следующие отношения: СВЕРХУ, РЯДОМ, ПОДДЕРЖИВАЕТСЯ, СЛЕВА_ОТ, ПЕРЕД и ОТНОСИТЬСЯ_К_ПОНЯТИЮ Сцена на рис. 9.12, а представлена графом на рис. 9.12,6. Система способна с помощью преподавателя различать понятия сцены, используя для этого ряд примеров и контрпримеров. Вся- кий опыт здесь в определенном смысле приближается к рассуж- дению по аналогии, используемому в сценах тестов на интеллек- туальный коэффициент. Речь идет о поиске закона на основе первых предъявленных примеров. В гл. 3 мы видели, каким об-
УСВОЕНИЕ ЗНАНИЙ 537 разом часть этой работы может быть выполнена с помощью алгоритма унификации и как программа Т. Эванса решает та- кие тестовые задачи. В системе П. Уинстона рассматривается последовательность сцен, которая начинается с некоторой типичной ситуации. Затем ПОНЯТИЮ ПОНЯТИЮ Брусок Призма Рис. 9.12. Анализ и представление сцены. вводится важное изменение условий опыта: преподаватель мо- жет предлагать системе сцены, которые не являются подходя- щими примерами для усваиваемого понятия. Система обучается теперь, исходя одновременно как из примеров, так и контрпри- меров. Основной идеей здесь является использование “почти при- меров”. Если предлагается ситуация, которая радикально отли- чается от всех других, то об ее использовании мало информа- ции. Если же, напротив, ситуация близка к рассмотренным, си- стема будет выявлять отличия от внутренней модели и отмечать их, постепенно усваивая существенные и второстепенные харак- теристики понятия. Предположим, что сначала преподаватель предлагает сле- дующую сцену: Система воспринимает и описывает ее как два стоящих бруска, которые поддерживают один брусок, лежащий на них боком. 18 Ж.-Л. Лорьер
538 ГЛАВА 9 Если в качестве контрпримера дается следующая сцена: то система отметит в соответствующем графе, что отношение поддержки является необходимым для изучаемого понятия. Если появляется третья сцена, которая опять является контр- примером, программа добавляет на этот раз к внутреннему представлению отношение HE-РЯДОМ для стоящих брусков. Если в дальней- шем дается пример, в котором лежащий брусок заменен на призму, производится обобщение: лежащим может быть любой объект с плоским основанием (чтобы его можно было поддер- живать стоящими брусками). В результате понятие “арка” мо- жет быть усвоено в форме, представленной на рис. 9.13: Рис. 9.13. Понятие арки. В том случае когда соответствие между текущей сценой и моделью может быть установлено несколькими путями, реше- ние принимается с помощью функции оценивания, которая вво- дит приоритеты для объектов и отношений.
УСВОЕНИЕ ЗНАНИЙ 539 Пределы применимости рассмотренной программы опреде- лился двумя факторами. Во-первых, бедность рабочей среды. Зависимости, касающиеся только попарных отношений между эбъектами, весьма немногочисленны; их не намного больше, чем :амих объектов. Контрпримеры наивны, и неизвестно, каким об- эазом их можно “хорошо выбирать”. Во-вторых, исключительно эмпирический характер приобретения знаний: ничем не обеспе- швается сходимость к результату через какое-то количество пагов. Наконец, как поступать при распознавании объекта, юли в распоряжении имеется не одна, а тысяча моделей? На самом деле такая система в пределе ни к чему не прихо- 1ит и все модели для нее эквивалентны. Дело в том, что в па- мяти хранится последняя модель, а не примеры, которые при- вели к ее появлению, и поэтому нет возможности возвратиться зазад. Например, когда добавляется отношение НЕ-РЯДОМ, зельзя проверить, удовлетворяет ли оно всем предыдущим при- мерам. Поэтому при появлении противоречия нужно уметь об- ращаться к другим средствам, которые не применяются, если пользоваться функцией оценивания. В программе С. Вере (S. Vere, 1979) факторы не играют большой роли. 9.7. Усвоение понятий Обучение в основном заключается в том, чтобы путем абст- ракции и индукции усвоить общую ситуацию, исходя из неволь- ного числа примеров. Этот процесс можно направлять и уско- рять, используя контрпримеры, которые будут теперь произ- вольными, а не только “почти примерами”. Рассматриваемые ситуации могут быть достаточно сложными, и для их представ- пения может применяться несколько вложенных уровней с опе- рациями разъединения и отрицания. Это позволяет, в частно- сти, хранить в резерве все возможности проверки сходства и различия между ситуациями. Сначала обратим внимание на механизм абстрагирования. Абстракция и обобщение Обычная унификация основана на подстановке термов на место переменных. Такие подстановки по природе являются де- дуктивными и строгими. Обобщать — это идти как раз в проти- воположном направлении: рассматриваемый терм становится абстрактным, когда он заменяется на. переменную. В подста- новке такого типа, которую называют индуктивной, необходимо уточнять, в каком случае данный терм нужно заменить, так как в отличие от унификации здесь нет вынужденных подстановок. 5*
540 ГЛАВА 9 Например, ничто не обязывает повсюду заменять некоторый терм одной и той же переменной. Индуктивная подстановка О характеризуется, следователь- но, последовательностью троек: О = {(^1, (/„, on/vn)}, где t\ — терм, Oi —экземпляр, iii — замененная переменная. Пусть имеется следующее выражение Е: Е = ((пьеса) Вольтер Кандид) А (француз Вольтер) Д Д (писатель Вольтер)) Дедуктивная подстановка О = {(Вольтер, (1, 3)/х); (Кандид, 1/г/)}) преобразует Е в выражение ОЕ О£ — ((пьеса) ху). А (француз Вольтер) Д (писатель х)) Отметим, что если не принять мер предосторожности, то не обя- зательно получается дедуктивная подстановка D, которая поз- воляет по обобщенному выражению найти оригинал. Так, в на- шем примере для этого достаточно заменить терм Кандид на ту же переменную х. Так как для проверки соответствия системы необходимо воз- вращаться к исходным примерам, в дальнейшем в индуктивных подстановках мы потребуем следующее: 1) двум разным объектам соответствует одна переменная; 2) повторно используются переменные того выражения, ко- торое обобщается. Воспользовавшись определением с такими ограничениями, мы получаем следующий механизм обобщения: выражение fl будем называть более общим, чем выражение Е2, тогда и толь- ко тогда, когда существует индуктивная подстановка О, такая, что El s ОЕ2. Здесь предполагается, что Е1 и ОЕ2 имеют нор- мальную конъюнктивную форму и знак включения понимается в смысле теории множеств: каждый множитель из £1 принад- лежит и ОЕ2. Порядок множителей в рассматриваемых выра- жениях несуществен. Таким образом, выражение £1 =(хф) А (уй А (*>*/) является более общим, чем £2 = (Tt) A (Kt) A (10t) A (Kt) А (Д|) А (Т > К) А (К>Д), потому что существует постановка О = {Т, 1, 2/х, К (1, 2, 3, 4)/у}, такая, что £1 <= О£2.
УСВОЕНИЕ ЗНАНИЙ 541 В дальнейшем мы будем писать Е\ £2 для обозначения того, что £1 является более общим, чем £2, и будем говорить, что £1 покрывает £2. Для данных £1, £2 и О будем называть сцеплением часть О£2, которая принадлежит £1, а дополнение этой части будем называть остатком. В нашем примере сцеплением является (х t) Л (.У I) Л U > У), а дополнением — (г/ПЛ(10ПЛ(Д|)Л(г/>Д). Разумеется, для данных £1 и £2 может существовать не- сколько подстановок О/, которые удовлетворяют соотношению £1 OiE2. В частности, они могут давать одинаковые сцепления и разные остатки. Можно рассматривать разные подходы к определению ин- дуктивных подстановок: от жестких, когда требуется минималь- ное число изменений, до самых свободных, разрешающих любые подстановки. Мы ограничимся классом допустимых подстановок, которые по определению удовлетворяют (кроме указанных вы- ше требований 1) и 2)) еще двум новым требованиям: 3) один и тот же терм заменяется во всех подстановках на одну и ту же переменную; 4) терм заменяется только в случае необходимости, в част- ности терм из остатка заменяется только в том случае, если он заменен в сцеплении. Теперь можно не указывать разные случаи расположения тер- мов в допустимых подстановках. Из этого определения следует, что всякое выражение явля- ется собственным обобщением, а также обобщением любого вы- ражения, выводимого из него простым переименованием пере- менных. Обобщение £1 выражения £2 будет строгим тогда и только тогда, когда 30, для которого £1 < 0£2 (строго) или £1 — — 0Е2 при условии, что О =/= переименование. Отношение < влечет за собой отношение но не наобо- рот. Так же как в арифметике вводится наибольший общий де- литель или максимум в булевой алгебре, можно определить £ — общее максимальное обобщение двух выражений £1 и £2 сле- дующим образом: ( £^£1 и не существует ( £ <£^£1 и 1 £<£2 Е' такого, что ( £'<£<£2.
542 ГЛАВА 9 Понятие представляет, таким образом, общее максимальное обобщение соответствующих примеров. Примеры рассматри- ваются попарно, -и все сцепления систематически запоминаются. Процедура повторяется до получения совокупности разъединен- ных подмножеств для выражений, которые обобщают все предъявленные примеры. Таким образом, общее максимальное обобщение состоит, возможно, из отдельных частей. Подключе- ние контрпримеров к этому процессу уточняет и усложняет анализ. Контрпримеры, очевидно, приводят к появлению отрицаний, которые могут присутствовать в описании понятия совместно с разделениями. В результате такого перемешивания обобще- ния становятся достаточно сложными. Например, (х НА у) Д (красный у) А ~| (((г НА у) /\ (куб г)) V (куб у)). “Некоторое тело находится на красном объекте, И на этом красном объекте нет другого объекта, отличного от куба, ИЛИ же у не является кубом”. Заметим, что в этих описаниях обозначение А А ~1 (В А 1 С) более предпочтительно, чем (А А Л В) V (Л А В А С) из-за простоты процесса обучения, связанного с первым ва- риантом. Система получает одновременно целое семейство примеров р(- (i=l, ..., р) с семейством контрпримеров V/ (/ = 1, ... ..., <?). Вначале изучаются примеры и по ним формируется общее максимальное обобщение Р1, которое является излишне широким множеством: оно позволяет описывать и некоторые контрпримеры. Из анализа последних получают некоторый кор- ректирующий член АЧ, очевидно, не входящий в разбираемое понятие. В выражении CI, которое описывает это понятие, АТ входит с отрицанием С1 = Р1 A ~| AU- Однако член ~1АЧ может теперь поправить Р1 слишком сильно, что приведет к исключению некоторых примеров. Так появляется новое условие с отрицанием и т. д. Так как исходные формулы конечны и общее число возможных случаев также конечно, процесс обязательно сходится к некоторому конечному выражению. В наихудшем случае оно будет представлять про- сто объединение всех отдельных предъявленных ситуаций. В об-
УСВОЕНИЕ ЗНАНИЙ 543 щем случае Е будет трансформироваться в более компактное выражение С, которое в сжатой форме отразит характеристики, разделяющие примеры и не встречающиеся в контрпримерах. Общая форма С имеет вид С = Р1 АП (Ml Л “|(JV2A “К... AIM))). Она сразу указывает на аналогию со знакопеременными сходя- щимися рядами вида а0 — + а2х2 — ...+(—1)& akxh. Последовательные члены представляют собой символические выражения, а не мономы, принимающие числовые значения. Проиллюстрируем процедуру построения общего макси- мального обобщения С на следующем примере. Система полу- чает описания pi, р2, Рз и р4; vt, v2, v3 и V4 четырех примеров и четырех контрпримеров (рис. 9.14). Общим максимальным обобщением (ОМО) для четырех примеров будет Р1: Р1 =(х НА у) Л (КУБ у) Л (ЗЕЛЕНЫЙ у), Контрпример v2 исключается, так как куб в v2 не зеленый. Од- нако vl, уЗ и v4 покрываются и^их следует исключить добавле- нием корректирующего члена 1М1. Этот член должен устра- нить остатки pH — (yi — О1Р1) для i = 1, 3 и 4 и соответст- вующих 01 р'1=(ШАР х) (ГОЛУБОЙ х) с Ol={Ql/x, Q2/y), p'3 = (Q7 НА х)(КУБ р7)(КУБ х) (ЖЕЛТЫЙ Q7)(ГОЛУБОЙ х) с 03 = {Q5/x, Q6/y}, р'4 = (КУБ х) (ГОЛУБОЙ х) с 04 = {Q8/x, Qtyy}. Выражение А/Т должно покрывать эти три новых примера; оно принимает значение их общего максимального выражения ОМО, которое в данном случае достаточно простое: 0М0(р'1, р'З, р'4) = АН = (ГОЛУБОЙ х). Описание искомого понятия принимает вид С1 =(х НА у) Л (КУБ у) Л (ЗЕЛЕНЫЙ у) Д П(ГОЛУБОЙ х). Выражение СТ по-прежнему покрывает исходные примеры pl, рЗ и р4, так как ни в один из них не входит множитель (ГОЛУ- БОЙ х). В то же время оно исключает р2, где этот множитель присутствует. Для того чтобы его возвратить, образуют новый остаток из множителей, не покрываемых ни положительными, ни отрицательными членами из С1. В нашем случае в р2
544 ГЛАВА 9 Рис. 9.14. Примеры (а) и контр-примеры (б) при изучении понятия. а) Примеры Описание: pl = (01 НА 02) Д (ШАР 01) Д (КУБ 02) А (ЗЕЛЕНЫЙ 01) А А (ЗЕЛЕНЫЙ 02). р2 = (03 НА 04) А (ПИРАМ 03) А (КУБ 04) А (ГОЛУБОЙ 03) А А (ЗЕЛЕНЫЙ 04), рЗ = (О5 НА 06) А (КУБ 05) А (КУБ 06) А (ЖЕЛТЫЙ 05) А А (ЗЕЛЕНЫЙ 06). р4= (07 НА 08) А (09 НА 07) А (КУБ 07) А (КУБ 08) А (КУБ 09) А А (КРАСНЫЙ 07) А (ЗЕЛЕНЫЙ 08) А (ЗЕЛЕНЫЙ 09). б) Контр-примеры Описание: vl = (Q1 НА Q2) А (ШАР Q1) А (КУБ Q2) А (ГОЛУБОЙ Q1) А А (ЗЕЛЕНЫЙ 02). v2== (Q3 НА Q4) А (ШАР Q3) А (КУБ Q4) А (ЗЕЛЕНЫЙ Q3) А А (ГОЛУБОЙ Q4). v3 = (Q5 НА Q6) A (Q7 НА Q5) А (КУБ Q7) А (КУБ Q5) А (КУБ Q6)A А (ЖЕЛТЫЙ Q7) А (ГОЛУБОЙ Q5) А (ЗЕЛЕНЫЙ Q6). v4 = (Q8 НА Q9) А (КУБ Q8) А (КУБ Q9) А (ГОЛУБОЙ Q8) А А (ЗЕЛЕНЫЙ Q9). остается множитель (ПИРАМ х), который является собственным ОМО и последним корректирующим членом. Таким образом, описание понятия, которое определяется рис. 9.14, принимает окончательную форму С1 = (х НА у) К (КУБ у) Д (ЗЕЛЕНЫЙ у) А А П ((ГОЛУБОЙ х) А 1 (ПИРАМ х)). Может оказаться, что процедура формирования общего мак- симального обобщения приведет на каком-то этапе не к одно- му, а к нескольким выражениям. Разъединения в таком случае
УСВОЕНИЕ ЗНАНИЙ 545 вводятся в описание. Кроме того, возможно, что ни одного об- щего максимального обобщения не образуется либо из-за того, что исходные множители не входят ни в одно отношение, либо из-за ограничений унификаций. Тогда единственным обобщен- ным выражением будет пустое, т. е. не существует эффективно- го понятия, покрывающего примеры и одновременно исключаю- щего контрпримеры. Это обусловлено противоречиями для остатков типа остаток положительный = (х НА #) (ЗЕЛЕНЫЙ х), остаток отрицательный = = (х НА у) (ЗЕЛЕНЫЙ х) (КРАСНЫЙ у). Программа С. Вере написана на языке ICECUBE — диалек- те языка SNOBOL — и производит обобщения за несколько се- кунд на машине IBM 370/158. Она также способна обобщать правила повторной записи, описывающие, например, сборку конструкций из кубиков и обратную процедуру разбора. Хотя эту программу следовало бы усовершенствовать, обогатив сло- варь описаний другими типами отношений, она представляется одной из лучших программ, хорошо формализованных и при- годных для задач обучения. Усваиваемые при этом понятия об- ладают достаточной сложностью, которая, возможно, превы- шает сложность тех понятий, которые может сформировать и запомнить сам человек.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Агенда 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 —^об оптимальном гамильтоновом цикле ---«эйлеровом цикле» на графе 197 — о взвешивании 244, 245 ---восьми ферзях 250 --- гамильтоновом цикле 278 ---коммивояжере 278 ---раскраске географической карты 267 •— разрешимости логического выражения 214 Зацикливание 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 Модели правил 377 Моделирование 38 Модульность 435 л-арный оператор 41 Невязка 231 Недетерминированная машина Тьюринга (НДТМ) 208, 214, 215 Недетерминированные алгоритмы 208 — полиномиальные задачи 208 Недетерминированный полиномиальный алгоритм 210 Нелинейные формы записи 44 Необязательные правила вывода 145 Нормализация 130
566 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Обучающиеся системы 397—400 Общее максимальное обобщение 543 Общий алгоритм неявного перебора 249 Обязательные правила вывода 146 Опасный ход 355 Оперативная память 335 Операторы 79 Отношение сводимости 218 Отношения 431 Отрыв точки 480 Оценивание позиции 318 Парадокс Ришара 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 Продукционные правила 438, 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 — МЕСНО 405 — MYCIN-TEI RESIAS 365 — ONOCIN 391 — PEACE 403 — POLITICS 427 — PROLOG 400 — PROSPECTOR 425 — TEIRESIAS 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 Управление с помощью метаправил 396 Формальная арифметика ЮЗ — система 81 -- первого порядка 102 Формальное доказательство 82 Формула Бине 181 Фрейм 387, 433 Функция Грунди 476 — дохода 231 — оценивания 519 Цикл 192 — Гамильтона 212 — Эйлера 197 Эвристика 432 Эвристический поиск 236 Эквивалентные задачи 213 Экспертные правила 40 — системы 363, 400 — — производительность 424 --управляющие структуры 421 Экстенсивные правила 140 Элементарные единицы информации 337 Эффект горизонта 332 Язык Лисп 59 — Пролог 401 — SNARK 413